<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>刘思喆 @ 贝吉塔行星 &#187; datamining</title>
	<atom:link href="http://www.bjt.name/tag/datamining/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bjt.name</link>
	<description>R 语言，数据挖掘，数据可视化</description>
	<lastBuildDate>Wed, 30 Nov 2011 15:43:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>数据挖掘之R与SQL</title>
		<link>http://www.bjt.name/2011/08/r-and-sql-datamining/</link>
		<comments>http://www.bjt.name/2011/08/r-and-sql-datamining/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 17:29:15 +0000</pubDate>
		<dc:creator>刘思喆</dc:creator>
				<category><![CDATA[R 语言]]></category>
		<category><![CDATA[数据挖掘]]></category>
		<category><![CDATA[datamining]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://www.bjt.name/?p=10874</guid>
		<description><![CDATA[今天看到老同学@JulieJulieJulieJulie 的浪漫求婚，真的很浪漫、很唯美、很感动。正如评论说的，我们又相信爱情了！于是，小兴奋，睡不着，爬起来补一篇文章。 ## 正文开始 最近在数据挖掘专业网站 KDnuggets 上刊出了2011年度关于数据挖掘/分析语言流行度的调查，不出意料R、SQL、Python果然排在了前三位。当然有看官说了，参与调查的样本数量太少，而且以登录KDnuggets网站的用户为主，样本的信息显然是有偏的。实话说，我也对KDnuggets网站的Poll持保留态度，但它的结果毕竟代表了某一类人群的使用偏好，尤其是在语言角度。 我们看排名前5位的语言： R：世界范围内的标准统计语言，以快速更新的算法，灵活的编程，广泛的扩展，绚丽的图形著称，遵循GPL协议的开源软件 SQL：大部分企业使用的，数据仓库、集市的通用查询语言，在大型数据应用上有极大的优势，同时也是数据分析/挖掘的基础 Python：传说中的Google的三大开发语言，适用于粘合一些复杂应用，我这里工作暂时没有涉及过 Java：太多的应用都基于Java的，不然Oracle也不会花上74亿美元收购SUN了 SAS：曾经的数据分析领域老大，当然现在市场份额依旧非常高。但SAS昂贵的使用费用迫使更多的分析工作者转到了开源领域，比如R 后四种语言同R语言还都有一些关系，闲扯起来还真是没完没了，这里就不再赘述，各位可以在搜索引擎上搜索R+XXX。如果我们将范围限制在数据挖掘这个主题，R同SQL的关系则变得非常非常紧密。 众所周知，R的强项在于灵活的算法，以及开发速度，但其所有的计算都是在内存中进行，一旦数据量达到了内存上限，基本上就是叫天天不灵，叫地地不应了。所以在使用R做数据挖掘时，就必须考虑使用其他的数据工具弥补R在这方面的劣势。尤其是在商业应用上，不能搭建R环境的条件下，SQL语言是提供挖掘结果的不二选择。 支持SQL的商用数据库比如Oracle、DB2性能优异，但对系统的占用非常厉害，假如本地装了Oracle，又开了点其他应用，2G的内存很快就会吃到1.5G甚至以上，再想用R做分析那只能用“捉襟见肘”这个词来形容了。当然如果在办公条件下有相应的服务器环境最好，在某些应用环境下，甚至可以通过本地多开R进程来达到并行计算的目的。 或者本地分析比较多，但数据量又时常上到百兆，虽然R也能够处理，但依然建议将数据移植到本地构建的轻量数据库环境，比如MySQL环境。从我的经验上看，虽然MySQL对比Oracle、DB2来说小巧很多，但在同R语言配合的本地应用上，性能更加有保证。 有了支持SQL的数据库环境，就要聊一聊R语言到底和SQL有什么关系： 各大数据库厂商已经开发了相关的支持R语言的数据挖掘套件，比如Oracle的RODM，Teradata的 teradataR等。 R本身就可以通过扩展包来对数据库执行SQL，这时你可以把R语言作为调度环境。R的计算过程结果可以直接作为参数传递到数据库中，并将相应的结果返回，供R环境使用。 通过sqldf包，在R内部使用标准SQL对数据进行预处理，包括group by，order by，join，where等操作。 当然R最重要的用途是将数据挖掘的结果转义为标准SQL语言，利用数据库来实现挖掘结果。当然有人说了，不是有pmml可以将模型嵌入到数据库么？！扯！到现在我也没见pmml成为应用标准，老老实实的将模型结果转义到SQL才是王道。比如用于概率预测的Logistic回归或者分类模型的Tree-based Models，这些模型的转义工作都不难，这样最终的工程实施都脱离了R环境，更具通用性，且利用了数据库的高速性能。 说句题外话：不知道哪位看官见过70万字符长度的庞大SQL语句——是的，你没看错，70w，R转义的，可以执行，对于数据库而言不过是半分钟的事情。 相关文章： Oracle数据库开始支持R语言 KDnuggets 关于数据挖掘软件的调查 2006年至今国内货币供应量的Motion Chart]]></description>
			<content:encoded><![CDATA[<p>今天看到老同学<a href="http://weibo.com/n/JulieJulieJulieJulie" target="_blank">@JulieJulieJulieJulie</a> 的<a href="http://www.tudou.com/programs/view/g52FYAg63Kg/" target="_blank">浪漫求婚</a>，真的很浪漫、很唯美、很感动。正如评论说的，我们又相信爱情了！于是，小兴奋，睡不着，爬起来补一篇文章。</p>
<p>## 正文开始</p>
<p>最近在数据挖掘专业网站 KDnuggets 上刊出了2011年度关于数据挖掘/分析语言流行度的<a href="http://www.kdnuggets.com/2011/08/poll-languages-for-data-mining-analytics.html" target="_blank">调查</a>，不出意料R、SQL、Python果然排在了前三位。当然有看官说了，参与调查的样本数量太少，而且以登录KDnuggets网站的用户为主，样本的信息显然是有偏的。实话说，我也对KDnuggets网站的Poll持保留态度，但它的结果毕竟代表了某一类人群的使用偏好，尤其是在语言角度。</p>
<p><a href="http://www.bjt.name/wp-content/uploads/2011/08/182924.png"><img class="aligncenter" title="data mining survey" src="http://www.bjt.name/wp-content/uploads/2011/08/182924.png" alt="" width="492" height="305" /></a></p>
<p>我们看排名前5位的语言：</p>
<ol>
<li>R：世界范围内的标准统计语言，以快速更新的算法，灵活的编程，广泛的扩展，绚丽的图形著称，遵循GPL协议的开源软件</li>
<li>SQL：大部分企业使用的，数据仓库、集市的通用查询语言，在大型数据应用上有极大的优势，同时也是数据分析/挖掘的基础</li>
<li>Python：传说中的Google的三大开发语言，适用于粘合一些复杂应用，我这里工作暂时没有涉及过</li>
<li>Java：太多的应用都基于Java的，不然Oracle也不会花上74亿美元收购SUN了</li>
<li>SAS：曾经的数据分析领域老大，当然现在市场份额依旧非常高。但SAS昂贵的使用费用迫使更多的分析工作者转到了开源领域，比如R</li>
</ol>
<p>后四种语言同R语言还都有一些关系，闲扯起来还真是没完没了，这里就不再赘述，各位可以在搜索引擎上搜索R+XXX。如果我们将范围限制在数据挖掘这个主题，R同SQL的关系则变得非常非常紧密。</p>
<p>众所周知，R的强项在于灵活的算法，以及开发速度，但其所有的计算都是在内存中进行，一旦数据量达到了内存上限，基本上就是叫天天不灵，叫地地不应了。所以在使用R做数据挖掘时，就必须考虑使用其他的数据工具弥补R在这方面的劣势。尤其是在商业应用上，不能搭建R环境的条件下，SQL语言是提供挖掘结果的不二选择。</p>
<p>支持SQL的商用数据库比如Oracle、DB2性能优异，但对系统的占用非常厉害，假如本地装了Oracle，又开了点其他应用，2G的内存很快就会吃到1.5G甚至以上，再想用R做分析那只能用“捉襟见肘”这个词来形容了。当然如果在办公条件下有相应的服务器环境最好，在某些应用环境下，甚至可以通过本地多开R进程来达到并行计算的目的。</p>
<p>或者本地分析比较多，但数据量又时常上到百兆，虽然R也能够处理，但依然建议将数据移植到本地构建的轻量数据库环境，比如MySQL环境。从我的经验上看，虽然MySQL对比Oracle、DB2来说小巧很多，但在同R语言配合的本地应用上，性能更加有保证。</p>
<p>有了支持SQL的数据库环境，就要聊一聊R语言到底和SQL有什么关系：</p>
<ul>
<li>各大数据库厂商已经开发了相关的支持R语言的数据挖掘套件，比如Oracle的<a href="http://ftp.ctex.org/mirrors/CRAN/web/packages/RODM/index.html">RODM</a>，Teradata的 <a id="download-6865-7769-0" href="https://downloads.teradata.com/download/applications/teradata-r/1.0">teradataR</a>等。</li>
<li>R本身就可以通过扩展包来对数据库执行SQL，这时你可以把R语言作为调度环境。R的计算过程结果可以直接作为参数传递到数据库中，并将相应的结果返回，供R环境使用。</li>
<li>通过sqldf包，在R内部使用标准SQL对数据进行预处理，包括group by，order by，join，where等操作。</li>
<li>当然R最重要的用途是将数据挖掘的结果转义为标准SQL语言，利用数据库来实现挖掘结果。当然有人说了，不是有pmml可以将模型嵌入到数据库么？！扯！到现在我也没见pmml成为应用标准，老老实实的将模型结果转义到SQL才是王道。比如用于概率预测的Logistic回归或者分类模型的Tree-based Models，这些模型的转义工作都不难，这样最终的工程实施都脱离了R环境，更具通用性，且利用了数据库的高速性能。</li>
</ul>
<p>说句题外话：不知道哪位看官见过70万字符长度的庞大SQL语句——是的，你没看错，70w，R转义的，可以执行，对于数据库而言不过是半分钟的事情。<br />
<h3 class='related_post_title'>相关文章：</h3>
<ul class='related_post'>
<li><a href='http://www.bjt.name/2010/06/oracle-data-mining-r/' title='Oracle数据库开始支持R语言'>Oracle数据库开始支持R语言</a></li>
<li><a href='http://www.bjt.name/2009/05/kdnuggets-datamining-survey/' title='KDnuggets 关于数据挖掘软件的调查'>KDnuggets 关于数据挖掘软件的调查</a></li>
<li><a href='http://www.bjt.name/2011/07/money-supply-motion-char/' title='2006年至今国内货币供应量的Motion Chart'>2006年至今国内货币供应量的Motion Chart</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.bjt.name/2011/08/r-and-sql-datamining/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>史上最强悍的数据挖掘介绍</title>
		<link>http://www.bjt.name/2010/12/toronto-data-mining-intro/</link>
		<comments>http://www.bjt.name/2010/12/toronto-data-mining-intro/#comments</comments>
		<pubDate>Mon, 06 Dec 2010 16:00:33 +0000</pubDate>
		<dc:creator>刘思喆</dc:creator>
				<category><![CDATA[数据挖掘]]></category>
		<category><![CDATA[crisp-dm]]></category>
		<category><![CDATA[datamining]]></category>
		<category><![CDATA[mindmap]]></category>

		<guid isPermaLink="false">http://www.bjt.name/?p=10715</guid>
		<description><![CDATA[（我承认，这个是标题党！） 今儿看到 Ajay Ohri 那儿推荐了多伦多大学 S. Sayad 教授的关于数据挖掘的一个在线介绍。这个介绍包含了完整的数据挖掘过程，以及数据挖掘技术的分类，并且每一项都可以通过超链接到相应的分支。让人爱不释手，大赞之！ S. Sayad 教授在数据挖掘过程定义上同从比较流行的 CRISP-DM（Cross Industry Standard Process for Data Mining）有些区别： Problem Definition Data Preparaion Data Exploration Modelling Evaluation Deployment (但个人认为这两种说法其实没有脱离问题的本质，是一致的)。 而重头戏则是关于数据挖掘（统计分析）技术的两大领域 描述 推断 挖掘（分析）技术的对应关系（超链接的脑图？）， 首先是——描述： 然后是——推断： 最后是 S. Sayad 教授的数据挖掘在线 intro，请猛击之！ 再补一句：关于数据挖掘软件的介绍，没有 R，抱怨一下～～ 附1： 标准的“商业”数据挖掘过程： Business Understanding Data Understanding Data Preparaion Modelling Evaluating Deployment 固定链接：http://www.bjt.name/2010/12/toronto-data-mining-intro/‎ 相关文章： Oracle数据库开始支持R语言 从一等奖出现的概率看中国福利彩票的公正性 <a href='http://www.bjt.name/2010/12/toronto-data-mining-intro/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>（我承认，这个是标题党！）</p>
<p>今儿看到 <a href="http://decisionstats.com/" target="_blank">Ajay Ohri</a> 那儿推荐了多伦多大学<a href="mailto:saed.sayad@utoronto.ca"> S. Sayad</a> 教授的关于数据挖掘的一个在线介绍。这个介绍包含了完整的数据挖掘过程，以及数据挖掘技术的分类，并且每一项都可以通过超链接到相应的分支。让人爱不释手，大赞之！</p>
<p><a href="mailto:saed.sayad@utoronto.ca"> S. Sayad</a> 教授在数据挖掘过程定义上同从比较流行的 CRISP-DM（Cross Industry Standard Process for Data Mining）有些区别：</p>
<ol>
<li>Problem Definition</li>
<li>Data Preparaion</li>
<li>Data Exploration</li>
<li>Modelling</li>
<li>Evaluation</li>
<li>Deployment</li>
</ol>
<p>(但个人认为这两种说法其实没有脱离问题的本质，是一致的)。</p>
<p>而重头戏则是关于数据挖掘（统计分析）技术的两大领域</p>
<ul>
<li>描述</li>
<li>推断</li>
</ul>
<p>挖掘（分析）技术的对应关系（超链接的脑图？），</p>
<p>首先是——描述：</p>
<p><a href="http://www.bjt.name/wp-content/uploads/2010/12/dm1.png"><img class="aligncenter size-full wp-image-10716" title="description" src="http://www.bjt.name/wp-content/uploads/2010/12/dm1.png" alt="" width="687" height="480" /></a>然后是——推断：</p>
<p><a href="http://www.bjt.name/wp-content/uploads/2010/12/dm2.png"><img class="aligncenter size-full wp-image-10717" title="inference" src="http://www.bjt.name/wp-content/uploads/2010/12/dm2.png" alt="" width="645" height="703" /></a></p>
<p>最后是<a href="mailto:saed.sayad@utoronto.ca"> S. Sayad</a> 教授的数据挖掘<a href="http://chem-eng.utoronto.ca/~datamining/dmc/data_mining_map.htm" target="_blank">在线 intro</a>，请猛击之！</p>
<p>再补一句：关于数据挖掘软件的介绍，没有 <a href="http://www.r-project.org" target="_self">R</a>，抱怨一下～～</p>
<p>附1：</p>
<p>标准的“商业”数据挖掘过程：</p>
<ol>
<li>Business Understanding</li>
<li>Data Understanding</li>
<li>Data Preparaion</li>
<li>Modelling</li>
<li>Evaluating</li>
<li>Deployment</li>
</ol>
<p>固定链接：http://www.bjt.name/2010/12/toronto-data-mining-intro/‎<br />
<h3 class='related_post_title'>相关文章：</h3>
<ul class='related_post'>
<li><a href='http://www.bjt.name/2010/06/oracle-data-mining-r/' title='Oracle数据库开始支持R语言'>Oracle数据库开始支持R语言</a></li>
<li><a href='http://www.bjt.name/2009/07/welfare-lottery-justice/' title='从一等奖出现的概率看中国福利彩票的公正性'>从一等奖出现的概率看中国福利彩票的公正性</a></li>
<li><a href='http://www.bjt.name/2009/04/hoopchina-single-index-yaoming/' title='关于在hoopchina上发帖的回答'>关于在hoopchina上发帖的回答</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.bjt.name/2010/12/toronto-data-mining-intro/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Oracle数据库开始支持R语言</title>
		<link>http://www.bjt.name/2010/06/oracle-data-mining-r/</link>
		<comments>http://www.bjt.name/2010/06/oracle-data-mining-r/#comments</comments>
		<pubDate>Tue, 08 Jun 2010 15:41:51 +0000</pubDate>
		<dc:creator>刘思喆</dc:creator>
				<category><![CDATA[数据挖掘]]></category>
		<category><![CDATA[杂七杂八]]></category>
		<category><![CDATA[datamining]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[R 语言]]></category>
		<category><![CDATA[甲骨文]]></category>

		<guid isPermaLink="false">http://www.bjt.name/?p=10654</guid>
		<description><![CDATA[一则令人兴奋的简讯： 据Oracle官方博客 最近更新的 New R Interface to Oracle Data Mining Available for Download，甲骨文开始正式支持R语言在Oracle数据库中的应用（简单的非官方说法是：甲骨文贡献了一个提供Oracle和R之间接口的附加包）。 援引博客中对R-ODM(R-Oracle Data Mining)的介绍： R-ODM is especially useful for: Quick prototyping of vertical or domain-based applications where the Oracle Database supports the application Scripting of “production” data mining methodologies Customizing graphics of ODM data mining results (examples: classification, regression, anomaly detection) 众所周知，R在实现原型算法方面有着不可替代的巨大优势。诚然，通过R实现的一般性数据挖掘算法都可以嵌入到数据库中，但Oracle提供的这个接口，极大地提高了挖掘算法的部署效率。 今天（2010.06.08），CRAN上更新了RODM包的1.0-2版本，支持Windows、Linux、MacOS X系统。 下面是RODM包帮助文档中的一个例子，可以初步地体会算法高效的部署： ### <a href='http://www.bjt.name/2010/06/oracle-data-mining-r/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>一则令人兴奋的简讯：</p>
<p>据<a href="http://blogs.oracle.com/" target="_blank">Oracle官方博客</a> 最近更新的 <a href="http://blogs.oracle.com/datamining/2010/05/new_r_interface_to_oracle_data_mining_available_for_download.html" target="_self">New R Interface to Oracle Data Mining Available for Download</a>，甲骨文开始正式支持R语言在Oracle数据库中的应用（简单的非官方说法是：甲骨文贡献了一个提供Oracle和R之间接口的附加包）。</p>
<p>援引博客中对R-ODM(R-Oracle Data Mining)的介绍：</p>
<p>R-ODM is especially useful for:</p>
<ul>
<li>Quick prototyping of vertical or domain-based applications where the Oracle Database supports the application</li>
<li>Scripting of “production” data mining methodologies</li>
<li>Customizing graphics of ODM data mining results (examples: <a href="http://www.oracle.com/technology/products/bi/odm/images/rodm_classification.jpg">classification</a>, <a href="http://www.oracle.com/technology/products/bi/odm/images/rodm_regression.jpg">regression</a>, <a href="http://www.oracle.com/technology/products/bi/odm/images/rodm_anomaly_detection.jpg">anomaly detection</a>)</li>
</ul>
<p>众所周知，R在实现原型算法方面有着不可替代的巨大优势。诚然，通过R实现的一般性数据挖掘算法都可以嵌入到数据库中，但Oracle提供的这个接口，极大地提高了挖掘算法的部署效率。</p>
<p>今天（2010.06.08），<a href="http://cran.r-project.org/" target="_self">CRAN</a>上更新了<a href="http://cran.r-project.org/web/packages/RODM/index.html" target="_self">RODM</a>包的1.0-2版本，支持Windows、Linux、MacOS X系统。</p>
<p>下面是RODM包帮助文档中的一个例子，可以初步地体会算法高效的部署：</p>
<pre lang="rsplus">### GLM Regression
## Not run:
x1 &lt;- 2 * runif(200)
noise &lt;- 3 * runif(200) - 1.5
y1 &lt;- 2 + 2*x1 + x1*x1 + noise
dataset &lt;- data.frame(x1, y1)
names(dataset) &lt;- c("X1", "Y1")
RODM_create_dbms_table(DB, "dataset")   # Push the training table to the database

glm &lt;- RODM_create_glm_model(database = DB,    # Create ODM GLM model
                             data_table_name = "dataset",
                             target_column_name = "Y1",
                             mining_function = "regression")

glm2 &lt;- RODM_apply_model(database = DB,    # Predict training data
                             data_table_name = "dataset",
                             model_name = "GLM_MODEL",
                             supplemental_cols = "X1")
windows(height=8, width=12)
plot(x1, y1, pch=20, col="blue")
points(x=glm2$model.apply.results[, "X1"],
       glm2$model.apply.results[, "PREDICTION"], pch=20, col="red")
legend(0.5, 9, legend = c("actual", "GLM regression"), pch = c(20, 20),
                col = c("blue", "red"),
                pt.bg =  c("blue", "red"), cex = 1.20, pt.cex=1.5, bty="n")

RODM_drop_model(DB, "GLM_MODEL")            # Drop the model
RODM_drop_dbms_table(DB, "dataset")   # Drop the database table
RODM_close_dbms_connection(DB)
RODM_close_dbms_connection(DB)</pre>
<blockquote><p>说一句题外话：<br />
R的影响力除了在统计分析领域（SAS、SPSS、Statistica已经都开始支持R接口）外，已然发展到了商业数据库领域。</p></blockquote>
<p>永久链接：http://www.bjt.name/2010/06/oracle-data-mining-r/<br />
<h3 class='related_post_title'>相关文章：</h3>
<ul class='related_post'>
<li><a href='http://www.bjt.name/2011/08/r-and-sql-datamining/' title='数据挖掘之R与SQL'>数据挖掘之R与SQL</a></li>
<li><a href='http://www.bjt.name/2009/05/kdnuggets-datamining-survey/' title='KDnuggets 关于数据挖掘软件的调查'>KDnuggets 关于数据挖掘软件的调查</a></li>
<li><a href='http://www.bjt.name/2010/12/toronto-data-mining-intro/' title='史上最强悍的数据挖掘介绍'>史上最强悍的数据挖掘介绍</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.bjt.name/2010/06/oracle-data-mining-r/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

