(我承认,这个是标题党!)

今儿看到 Ajay Ohri 那儿推荐了多伦多大学 S. Sayad 教授的关于数据挖掘的一个在线介绍。这个介绍包含了完整的数据挖掘过程,以及数据挖掘技术的分类,并且每一项都可以通过超链接到相应的分支。让人爱不释手,大赞之!

S. Sayad 教授在数据挖掘过程定义上同从比较流行的 CRISP-DM(Cross Industry Standard Process for Data Mining)有些区别:

  1. Problem Definition
  2. Data Preparaion
  3. Data Exploration
  4. Modelling
  5. Evaluation
  6. Deployment

(但个人认为这两种说法其实没有脱离问题的本质,是一致的)。

而重头戏则是关于数据挖掘(统计分析)技术的两大领域

  • 描述
  • 推断

挖掘(分析)技术的对应关系(超链接的脑图?),

首先是——描述:

然后是——推断:

最后是 S. Sayad 教授的数据挖掘在线 intro,请猛击之!

再补一句:关于数据挖掘软件的介绍,没有 R,抱怨一下~~

附1:

标准的“商业”数据挖掘过程:

  1. Business Understanding
  2. Data Understanding
  3. Data Preparaion
  4. Modelling
  5. Evaluating
  6. Deployment

固定链接:http://www.bjt.name/2010/12/toronto-data-mining-intro/‎

 

一则令人兴奋的简讯:

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: classificationregressionanomaly detection)

众所周知,R在实现原型算法方面有着不可替代的巨大优势。诚然,通过R实现的一般性数据挖掘算法都可以嵌入到数据库中,但Oracle提供的这个接口,极大地提高了挖掘算法的部署效率。

今天(2010.06.08),CRAN上更新了RODM包的1.0-2版本,支持Windows、Linux、MacOS X系统。

下面是RODM包帮助文档中的一个例子,可以初步地体会算法高效的部署:

### GLM Regression
## Not run:
x1 <- 2 * runif(200)
noise <- 3 * runif(200) - 1.5
y1 <- 2 + 2*x1 + x1*x1 + noise
dataset <- data.frame(x1, y1)
names(dataset) <- c("X1", "Y1")
RODM_create_dbms_table(DB, "dataset")   # Push the training table to the database

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

glm2 <- 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)

说一句题外话:
R的影响力除了在统计分析领域(SAS、SPSS、Statistica已经都开始支持R接口)外,已然发展到了商业数据库领域。

永久链接:http://www.bjt.name/2010/06/oracle-data-mining-r/

 

深圳福彩3000万巨奖诈骗案发生后,好多朋友开始质疑中国福利彩票的公正性,并向我询问福利彩票是不是真的如传闻那样–福利彩票自产自销?。由于身在中福彩的原因,很多支持福彩公正的内情不太合适发布在网上,但–数据一汇总,上帝也会发笑。这篇博文从一等奖中奖概率分布的角度给各位童鞋聊聊福彩的公正性。

现在每一期的福彩双色球销售额大概是2亿左右(已持续很长时间),每注双色球为2元,就是说每期双色球的销售大概会有1亿人次参与。

在随机选择,且每次抽取都是等概率的的假定条件下,理论的重复彩票注数的分布(0注至41注)如下:


一等奖是完全随机出现的,那么在假设条件下,一等奖同时出现五注的概率最高,六注、四注其次,再次为七注、三注,类推……当然理论上,没有中奖(0注)和中12注以上的概率相比其他情形低了很多。

那么我们再看一看福利彩票双色球每期中一等奖(2008年1月1日至2009年7月23日)的实际分布情况:

thunderball2.png


有童鞋看出端倪了:实际数据的分布同理论上的分布是不一致的!理论上的一等奖出现概率最大在出现五注的位置,而实际上一等奖出现的最大概率出现在了两注的位置。

为什么会出现这样的情况?主要是因为我们最开始的假设是有问题。

双色球每期销售会有1亿人次的彩民参与?不可能!双色球的覆盖度没有那么大。

一些彩民为了提高中奖概率(或者说迷信一些选号方法),会采用”复式”、”胆拖”、”倍投”等方式投注,当然大部分彩民还是会老老实实的买一注。综合考虑到这些因素以后,凭经验估计样本量应该为现在的一半左右,即5000万。这样看来较为合理的一等奖中奖概率理论上分布为:

此时理论分布同实际分布已经非常相似。

实际双色球一等奖分布的右边尾巴上恰恰显示了”复式”、”胆拖”、”倍投”的投注效果。

再插一句:

深圳福彩3000万大奖诈骗犯身份曝光一文中提到:

警方调查发现,程某先是编写了一个可以自动运行的木马软件,然后利用与福彩中心合作的机会,进入福彩中心机房,植入自动运行的木马程序。一旦摇奖结果出来,这个程序会自动将程某所购买的彩票修改成一等奖的号码。

这里可以推测程某天真地以为满足兑大奖的条件为:

  1. 数据库里的数据正确;
  2. 实体彩票存在。

恩,没有问题!但,这两个条件可是通过很多很多很多的手段来监管的。

 

5月份,KDnuggets 给出了近六个月用于实际数据挖掘(非评估)项目中使用的挖掘工具调查,共364个投票人。

DM toolkit

  1. SPSS (PA)和 SAS(BA) 没啥可说的,老牌的商业数据分析软件商,尤其是 SPSS,去年就是 KDnuggets 这项调查的第一位,SPSS 的销售常拿这个说事;
  2. Excel(spreadshit),可进行“简单数据操作”的 MS 产品;
  3. RapidMiner,比较流行的开源数据挖掘软件;
  4. R ? 为数据分析而生的开源软件。说到这儿,我突然卡壳了,它能做的事情太多……。R 更贴近于数据的本质(继续鼓吹)~~

SAS、SPSS、Statistica 陆续增加了对 R 语言的支持,从这个角度来讲,这几大厂商自己都心虚了,几年后数据挖掘领域必定是 R 的天下。

原文:http://www.kdnuggets.com/polls/2009/data-mining-tools-used.htm

 

具体内容请详见:

姚明单一关键指标对比赛结果影响分析(20090409)

1、这篇文章上,我只是提了一个思路,而并没有给出完整结论(有评论说“欲言又止”)。

合理推论必须经过一系列假设,而这个假设恰恰是我不想抛出来的——Yao的发挥绝对地影响了球队战绩。

2、任何模型都是对现实的模拟。模型是用来简化现实,辅助 decision making 的手段。说白了就是加深或降低决策者认为事件发生的先验概率。

3、我很讨厌 DM 人员动辄就说“啤酒与尿布”的故事,这个 Teradata 杜撰的故事该收收了!并且请注意:故事背景不是在沃尔玛,而是 Osco Drugs。

4、有人提信度、效度。Sorry,这里用的不是传统统计方法。

5、相关?correlation 的定义可不是这样的!

6、因果?因果在逻辑上是没有意义的。正如只有在人类世界才会存在“是非”一样,因果只是一种流行的妄想。但如果我们硬要给 correlationcauses 一个关系的话:

Correlation is not causation, but it sure is a hint.

© 2012 刘思喆 @ 贝吉塔行星 Suffusion theme by Sayontan Sinha