Entries Tagged '机器学习与数据挖掘' ↓
October 5th, 2011 — CDISC, SAS, 人物, 机器学习与数据挖掘, 统计备忘录, 胡说
大半年没跟新了。一些个人技术方面的动向在英文博客里:
1. CDISC Express
CDISC Express是一款开源的SDTM转化器,基于SAS和Excel(其实背后是XML)。我为这个产品写了一系列的入门教程,并参加了一个相应的比赛(赢了一台iPad)。益辉最近也抽中了一台Kindle,加上上半年在SAS Global Forum拎回来的一台Kindle,不禁感慨,知识(和概率)真是咱农民的第一生产力呀。对着手头这台上世纪的诺基亚6300,我坚定的目光瞄上了iPhone5。有一句话说,做自己喜欢的事,然后找一个人或机构买单,人生一乐也。
又,把临床数据自动导入到符合CDISC标准的数据集,现在有不少vendor在做,很多药厂内部也有开发。感兴趣的朋友不妨也鼓捣鼓捣。
2. Big Data
现在还提这个概念就较不时尚了,重要的是如何做,或者如何为以后做些准备。SAS也将加入对Hadoop的支持,不过现在Hadoop的框架还是基于Java,拣回来些C/C++、Java或者Python还是很有戏场的(甚至R也能够玩会Hapoop),对一个SAS程序员来说,是时候更新自个的工具箱了。
迄今为止,这个领域还是IT人士的天下。这一方面说明了我们这些传统的数据分析人员还需要夯实技术(去看看Hadoop的‘hello world’, 所有的操作都要分解为map()和reduce(),而这并不是所有人都习惯的),也说明目前这一块,发展还在起步阶段,因为这些框架,最终都是要为了让数据产生价值,而这就不可能有数据分析师的缺席。
3. SAS之外
这些日子,在SAS之外,试图拣回来些数据挖掘的东西。本来准备四月份在拉斯维加考下SAS数据挖掘的认证,后来还是被其他事情给挪掉了。最后所得就是,还是稍微看了下这块的东西,在概念上是过了一遍。这次在拉斯维加,碰到以前在北大一起做SAS俱乐部的朋友光辉,他现在加拿大工作。光辉说他趁着开会的缝隙,随手把SAS的数据挖掘认证(SAS Certified Predictive Modeler using SAS Enterprise Miner 5 or 6 Credential)给考了。这叫行动力啊。
机缘巧合,这上半年有朋友给我介绍Feature Selection(大白话就叫变量选择,在数据挖掘里面属于前期的工作),我就对着一个R的包看了一遍,也就是在脑袋里过一下,最后没有什么成果出来。另一个额外的好处是,这次我是对R在学习方面的优势有了切身体验,对R算是有了些个人感情。一边找论文看,然后几乎就能找到一个相应的R包跑一跑,增加些手感,这效果真是不错。
再说些R。我还真尝试过认真学一学R。做为一个SAS程序员,想,还是从input/output开始吧,就先研读官方文档R Data Import/Export,转了一圈,发现,这数据读取转存还是SAS更为方便有效,对我来说,鼓捣这个有点得不偿失,遂罢。
又想,R对SAS的一个优势在于它支持多种数据结构,像array、list之类,就从这入手了。不知道怎么搞的,在学习R的数据结构时,可能是我学习不够深入,修为不够,总觉得有些不够畅快——具体我说不上来。想,我还是把自己的Python拣回来吧,R跟Python有类似的地方。后来我就能说上来了,Python的List等数据结构,对我来说,的确是更为优雅(换一种说法,或者是因为我还没有读到一本“优雅地”介绍R数据结果的文档)。好吧,到此为止,我的R还停留在用它尝试算法的阶段。
然后就是捡回Python。我两年多的SAS程序员工作经历,一个直接的后果就是把之前学过的一点C++、Java和Python又打回“hello world”的水平,手都生疏了。我读了很多Jian Dai(他在加州做SAS程序员)的代码,包括Perl, C, JavaSAcript等等,想,做SAS程序员也不至于把其他的语言都丢掉,为了方便,又重新学习下Python。
为学而学毕竟有局限,在工作中使用当然来得最快。现在我还没有这机会,除了翻文档之外,就尝试用Python写些小东西,把它就当一回事一样。其实,除了工作中直接使用,还有一项就是参加开源运动——我看益辉这几年写R代码是风生水起,一个极大的外部刺激就是参与开源运动,整个积极性都给起来了。一个普通的统计学博士生,用不了那个多的代码量,那动力,就在于统计之外。
统计。今年的基础统计学习,没有去年那么饱满。每天跟统计师打交道,就想好好学习一下他们的语言。今年,到现在为止,算是在工作中(向统计师)学习,整了下CI calculation和euivalence and noninferiority test。下一步准备鼓捣些Sample Size之类。有个哥们写了一篇文章叫Programmers Need To Learn Statistics Or I Will Kill Them All,好吧,作为一个程序员,为了生命安全,每天跟统计师打交道,还是学下统计了。
4. 工作
不是说自己的工作,是说工作与实习机会。感兴趣的朋友,不妨跟我联系。中南大学统计系的本科生韩帅,不久前结束在我公司的实习,在Sxlion主持的SAS中文门户写了两篇非常有价值的总结文章,大伙可以去看看:
一个SAS菜鸟的故事 学习篇
一个SAS菜鸟的故事 实习篇
人是这样的,只有经历过了(我说的是第一份实习或其他),才能自信地自称“菜鸟”,否则就真是论坛里“弱弱地问”的菜鸟。我推荐我公司,当然是因为最熟悉。说实在的,在北京,在药厂,对SAS程序员来说,这的确是一份不错的的实习机会。去年我也推荐了汤耀华来我公司做实习生,他现在中科院读研。这两位都来自中南大学,怎么说?对我和我的同事来说,他们提升了中南大学在我们心目中的分量。在上海,我想,很多SAS程序员对中南大学也很有兴趣。
一些大学生朋友给我写邮件打电话,说些职业或技术选择的事。这不是选择两个到手的offer,大哥,随便扎进一个方向,都比在那犹豫强。
5. SAS
还是得提一下SAS。现在用上SAS9.2了(然后SAS9.3就华丽丽地发布了。。。),对我来说,直接地,有两个触动:
1)SAS9.2及以后,作图更漂亮,我终于有些动力研究下SAS作图了。在公司,去年与宾州的同事一道,把公司作图的macro(基于9.1.3)的更新以后,以后都直接调用,压根就没写过proc gplot之类,然后我就发现自己作图的那一点点手艺正在迅速凋零。。。
2)SAS9.2中,BASE中正式支持自定义函数(仿佛听到其他门类的程序员在冷笑,我弱弱地辩解一下,SAS/IML早就可以自定义函数,而且对SAS程序员来讲,一直使用macro写一种叫function-like macro,而且,macro也支持递归。。。)。这将给我们的编程生活带来不少乐趣,其中之一就是可以把以前的一些macro改写成函数(方便debug啊)。
在写函数之前,我把SAS BASE里面的函数都看了一遍,省得以后重复造轮子:
把所有的函数分门别类导入到Excel,然后动用一点VBA,把每个函数的解释都搁进每个函数名的comments里。这么一梳理,又发现不少有趣的东西,再议。
December 31st, 2008 — 机器学习与数据挖掘
ROC
上回我们提到,ROC曲线就是不同的阈值下,以下两个变量的组合(如果对Sensitivity和Specificity两个术语没有概念,不妨返回,《分类模型的性能评估——以SAS Logistic回归为例(1): 混淆矩阵》,强烈建议读者对着看):
Sensitivity(覆盖率,True Positive Rate)
1-Specificity (Specificity, 负例的覆盖率,True Negative Rate)
二话不说,先把它画出来(以下脚本的主体是标红部分,数据集valid_roc,还是出自上面提到的那篇):
axis order=(0 to 1 by .1) label=none length=4in;
symbol i=join v=none c=black;
symbol2 i=join v=none c=black;
proc gplot data = valid_roc;
plot _SENSIT_*_1MSPEC_ _1MSPEC_*_1MSPEC_
/ overlay vaxis=axis haxis=axis;
run; quit;

上图那条曲线就是ROC曲线,横轴是1-Specificity,纵轴是Sensitivity。以前提到过,随着阈值的减小(更多的客户就会被归为正例),Sensitivity和1-Specificity也相应增加(也即Specificity相应减少),所以ROC呈递增态势(至于ROC曲线凹向原点而非凸向原点,不知道有无直观的解释,不提)。那条45度线是作为参照(baseline model)出现的,就是说,ROC的好坏,乃是跟45度线相比的,怎么讲?更多,见COS:
http://cos.name/2008/12/measure-classification-model-performance-roc-auc/
del.icio.us Tags:
AUC,
Confusion Matrix,
覆盖率,
Logistic回归,
Receiver Operating Characteristic Curve,
ROC,
SAS,
Sensitiveity,
Specificity,
Wilcoxon-Mann-Whitney,
分类模型,
命中率,
接受者操作特性曲线,
数据挖掘,
混淆矩阵
January 28th, 2008 — 机器学习与数据挖掘
昨天整洗衣机。看着大大小小新新旧旧,机身多赫然印一大字:
Fuzzy
Fuzzy Logic,模糊逻辑控制, 大概说"只需按下启动键,从选择程序到漂洗、脱水,实现了全自动的控制。这种模糊逻辑控制的洗衣机可以自动检测洗衣内的衣物重量,从而自动选择水位和洗涤程序,这样不但大大简化了操作步骤,而且可以比较准确的配置水位和洗涤时间,节约了能源。"
看了这些就乐了。原来洗衣机还是这么一个机器学习/数据挖掘的物理模型,一个分类模型吧,输入是一大堆衣物和污渍。一个好的分类模型(洗衣机)要把衣服和污渍尽可能地分离出来,这样洗衣机的输出就是一个二分类变量,比如1代表没有污渍的衣物,0代表污渍。对照洗衣机这么个物理模型,很多问题就可以说开去了。
比如数据挖掘的流程。先从客户手里拿来数据,他们说这衣服你要洗成什么样什么样,如果他们没有见解,我们就说我们能把你们的衣服洗成如何如何。定义好问题,就得准备洗衣粉、脸盆之类的吧。衣服也要进行些预处理,比如一个小物件不适合放进洗衣机,就直接剔掉了。清洗数据,把衣服口袋里的钥匙、小纸条都掏出来,进行分组,比如牛仔裤放一起,床单被罩搁一块。还有一些肉眼就能识别的模式,比如那件裤子上粘的一块大口香糖,用手拨出来就是。诸如此类,数据可以丢进我们的洗衣机了。选用哪个模型?决策树?神经网络?手洗模式?儿童模式?还是Logistic回归?选上一个,我们来设置参数,洗衣机控制面板上那些按钮狂摁一通就是。有时还需要设置阀值,规定模型停止计算的条件,选"洗衣定时"就可以。不管了,把电脑合上,让它跑就是。一个小时后过去看看,电脑屏幕刷出一大块结果,说衣服洗好了。不满意,再加水添洗衣粉。如此反复,期限也快到了,衣服怎么着也得拿出来晾了。衣服洗好了,但还是乱七八糟地躺在洗衣机里,整理一下结果喽,以清晰的方式摆在衣架上,就等着人家来评估实施了。
还拿洗衣机说事,为什么有些人那么相信挖掘模型?这个问题还可以这么表述,为什么我那么相信洗衣机,即使是我以前那台老破旧笨?
- 数据量庞大,衣服床单一大堆,手工计算几乎不可能。要手洗,耗水耗时间,对我而言,洗干净也几乎不可能。还有,看大伙都用上数据挖掘了,我的衣服还手洗就显得落伍了;
- 洗衣机自称"模糊控制",挺咋呼的听着。决策树、神经网络、最大熵、支持向量机,一个个听着也是能耐大,衣服放进去,有指望;
- 洗衣机跟所有算法一样,都是一个黑箱,把衣服丢进去,设好参数,就等着结果了。要是不满意,再把衣服丢到模型里跑。既然决定不手洗了,而且结果也一定要在某日赶出来,那么你总要把衣服拿出来晾,那时自己也会觉得这模型是好用啊。洗衣店为什么都用洗衣机?似乎手洗的客户不放心,不代表先进生产力。
这样的附会可以一直说开去,大伙可以补充,懒得发挥了,随手记一些:
- 一些小件衣物不适合放洗衣机,羽绒服最好也不要机洗,说明数据挖掘也不是什么都能对付;
- 以前听一个商业案例,说某家的某款洗衣机可以洗土豆。好东西。
- Fuzzy听着挺厉害,现在还有厂家推出NEURO&FUZZY的概念,好像是三洋吧,据说更加智能更加精确。然后LG也有CHAOS&FUZZY,不知道是炒概念还是真有用。这些我是在说BI界的事,潮流瞬息万变。
- ……
吃饭去了。这篇随感写得挺顺,就是老把"洗衣机"敲成"冰箱"。一会想想冰箱像什么。
********这篇小随感刚发布在TTNN,留在这里做个备份。***************
November 21st, 2007 — 机器学习与数据挖掘
与ttnn的几个朋友一起翻译的一篇稿子,是SAS公司Doug Wielenga在今年SAS全球论坛的一篇会议论文,Identifying and Overcoming Common Data Mining Mistakes.翻译这篇文章得到了SAS公司与作者本人的许可,并许诺不做于商业用途。
你可以自由散发这个译本,并保证不用做商业用途,引用时请注明“《ttnn BI 观点》集体翻译”。有任何问题可以与译者联系,联系信息在文档的末尾。
翻译这篇文字的过程,见《常见数据挖掘错误:识别和纠正》翻译告捷!》;
译稿下载,在http://groups.google.com/group/ttnn/web/kuihuabaodian.pdf;
原稿,在http://www.iapa.org.au/Environments/edoras/Resources/IAPA/SAS%20Global%20Forum%200732007.pdf.
附,这篇文章的结构如下:
Abstract
Introduction
1. Preparing The Data
1.1 Failing To Consider Enough Variables
1.2 Incorrectly Preparing Or Failing To Prepare Categorical Predictors
1.2.1 Too Many Overall Levels
1.2.2 Levels That Rarely Occur
1.2.3 One Level That Almost Always Occurs
1.3 Incorrectly Preparing Or Failing To Prepare Continuous Predictors
1.3.1 Extremely Skewed Predictors
1.3.2 A Spike And A Distribution
1.3.3 One Level That Almost Always Occurs
1.3.4 Ignoring Or Misusing Time-Dependent Information
2 Defining Roles, Performing Sampling, And Defining Target Profiles
2.1 Inappropriate Metadata
2.2 Inadequate Or Excessive Input Data
2.3 Inappropriate Or Missing Target Profile For Categorical Target
2.4 Target Variable Event Levels Occurring In Different Proportions
2.5 Differences In Misclassification Costs
3 Partitioning The Data
3.1 Misunderstanding The Roles Of The Partitioned Data Sets
3.2 Failing To Consider Changing The Default Partition
4 Choosing The Variables
4.1 Failing To Evaluate The Variables Before Selection
4.2 Using Only One Selection Method
4.3 Misunderstanding Or Ignoring Variable Selection Options
4.3.1 Choosing Settings In The ??2 Mode
4.3.2 Choosing Settings In The R2 Mode
5 Replacing Missing Data
5.1 Failing To Evaluate Imputation Method
5.2 Overlooking Missing Value Indicators
6 Fitting Linear Regression Models
6.1 Overusing Stepwise Regression
6.2 Inaccurately Interpreting The Results
7 Fitting Decision Tree Models
7.1 Ignoring Tree Instability
7.2 Ignoring Tree Limitations
8 Fitting Neural Network Models
8.1 Failing To Do Variable Selection
8.2 Failing To Consider Neural Networks
9 Comparing Fitted Models
9.1 Misinterpreting Lift
9.2 Choosing The Wrong Assessment Statistic
10 Scoring New Data
10.1 Generating Inefficient Score Code
10.2 Ignoring The Model Performance
11 Clustering Your Data
11.1 Building One Cluster Solution
11.2 Including (Many) Categorical Variables
12 Performing Association And Sequence Analysis
12.1 Failing To Sort The Data Set
12.2 Failing To Manage The Number Of Outcomes
Conclusion
References
Acknowledgments
Contact Information
October 18th, 2007 — 机器学习与数据挖掘
以前写过一篇关于最大熵模型的读书笔记。刚翻陈家鼎和郑忠国两位老师合编的教材《概率与统计》(北大出版社,2007),看到关于信息熵的详细数学表述,不妨转述一下,算是不在场的课堂笔记。
概率与信息
事件A的概率P(A)是A发生可能性的大小的度量。
问题:A的发生带给我们多大的信息呢?
结论
P(A)越大,则A发生带来的信息越少;反之,P(A)越小,则A的发生带来的信息越大。
例子
有人对你说“某日巴西足球队战胜了中国队”,你觉得他没有给你多少信息,因为这件事发生的概率非常大,结果几乎在预料当中。但如果他说巴西负于某个亚洲队,你会感觉得到的信息不少。
猜想
- 事件A发生所带来的信息量H(A)应该是它发生的概率P(A)的严格减函数,而且A是必然事件时H(A)=0(“巴西队战胜中国队”)。
- 若事件A与事件B相互独立,则A与B都发生带来的信息量应该是H(A)与H(B)之和,即H(AB)=H(A)+H(B)。
引理1—H(u)=-clnu
设H(u)是(0,1]上的严格减函数,H(1)=0,则为了满足H(uv)=H(u)+H(v),对一切0<u,v<1,必须且只需存在c>0,使得H(u)=-clnu,写得更清楚些是—c*ln(u)。
(这里c是一个正的常数,它的大小涉及信息量的单位。为简单起见,一般取c=1)
定义1—信息量的表示
设事件A的概率是P(A),P(A)>0,则称H(A)=-lnP(A)为A带来的信息量。
定义2—完备事件组的熵
设A1到An(n>=2)是条件S下的完备事件组,P(Ai)>0,对i=1,…n,则称P(A1…An)=-sumP(Ai)lnP(Ai),为完备事件组A1…An的熵。
定理1—事件有相等的概率时结果的不确定性最大
设A1到An(n>=2)是完备事件组,则当且仅当P(A1)=…P(An)时熵最大。
即,若条件S下可能发生的互不相容的事件至少有两个,则当且仅当这些事件有相等的概率时结果的不确定性最大。
September 20th, 2007 — 机器学习与数据挖掘
以前写过一个小笔记,《三个有名的决策树算法:CHAID、CART和C4.5》,说些它们的区别,刚找到一些树叶,可以辅助理解。曰:


CHAID (chi-squared automatic interaction detection,卡方自动交互检测)的前身是AID,主要特征是多向分叉,前向修剪,其标准如名所示,就是卡方检测;另外,CHAID只能处理类别型的输入变量,因此连续型的输入变量首先要进行离散处理。
标准的CARTclassification and regression trees)又不一样,它只能进行二部分叉,后向修剪,分割标准用的是基尼系数(Gini Index);
C4.5源自有名的ID3,它只能进行L型分叉,后向修剪,标准乃是基于信息论的“熵”(Entropy)。
September 14th, 2007 — 机器学习与数据挖掘
这个观点来自Hand等人的《数据挖掘原理》(机工,2003)。
说数据挖掘是对已经存在的数据进行分析(比如说“[原有]数据库中的知识发现”,KDD),而统计会为了回答某一个特定问题而专门去采集数据。也就是说,数据挖掘所分析处理的数据,不是为挖掘本身而收集的。
企业为了别的目的建立数据库,为了挖掘,它再从数据库的基础上建立起为分析服务的数据仓库。
September 13th, 2007 — 机器学习与数据挖掘
KDNuggets今年对业界人士采用何种数据挖掘方法论的调查,CRISP-DM又一次遥遥领先。
What main methodology are you using for data mining?
|
[150 votes total](Aug 2007)
CRISP-DM (63) 42%
My own (29) 19%
SEMMA (19) 13%
KDD Process (11) 7%
My organizations’ (8) 5%
Domain-specific methodology (7) 5%
Other methodology, not domain-specific (6) 4%
None (7) 5%
|
1.NCR、SPSS等多家公司大力推广的CRISP-DM(数据挖掘的跨行业标准流程),它将数据挖掘过程分为以下6个阶段: -商业理解(Business Understanding) -数据理解(Data Understanding) -数据准备(Data Preparation) -建立模型(Modeling) -模型评估(Evaluation) -结果部署(Deployment)
2.SAS公司鼓吹的SEMMA是Sample(抽样)、Explore(探索)、Modify(修正)、Model(建模)以及Assess(评估)的缩写
3.数据挖掘经常被置于更广阔的数据库知识发现(knowledge discovery in database, KDD)的大背景下,KDD过程包括几个阶段:选择目标数据、预处理数据、转化数据、进行数据挖掘以提取模式和关系、解释并评估发现的结构 |
可以对照前几年的投票结果,注意其实很多人使用不只一种方法论,当然它们也大同小异。
|
[170 votes total](Apr 2004)
CRISP-DM (72) 42%
SEMMA (17) 10%
My organization’s (11) 6%
My own (48) 28%
Other (10) 6%
None (12) 7%
|
[189 votes total](Jul 2002)
CRISP-DM (96) 51%
SEMMA (22) 12%
My organization’s (13) 7%
My own (43) 23%
Other (8) 4%
None (7) 4%
|
附:
CRISP-DM:
商业理解——商业理解是从业务角度来理解数据挖掘的目标和要求,再转化为数据挖掘问题;
数据理解——数据理解的任务是对原始数据进行收集和熟悉,检查数据质量,对数据进行初步探索,并发现可能存在的、有分析价值的数据特征,以形成对隐藏信息的假设;
数据准备——数据准备阶段初步完成变量的选择和导出变量的生成,同时对一些存在数据质量问题的字段进行相应的处理;
建立模型——建立预测模型,比如回归模型、决策树、神经网络等等;
模型评估——选择最好的最终模型,需要快速简单地应用和比较不同方法,比较产生的结果,然后对得到的不同规则给予商业评价。从可用的统计和非统计模型中找到最好的分析模型,对于产生最终决策是必需的;
结果部署——结果部署的目标是将预测模型生成的结果以一定的形式展现给业务人员使用。因此,应当从业务的角度来关注模型发布的形式。
SEMMA:
抽样——确认输入数据、取样、数据分割(把数据分割为训练、验证和测试样本);
探索——利用统计技术和可视化技术对原始数据进行探索性分析,以找出重要的变量,以及得出粗糙的直觉性结论;
修正——数据准备,如数据转换、确认野码、缺失值处理等等;
建模——建立预测模型,比如回归模型、决策树、神经网络等等;
评估——比较不同的模型。
September 11th, 2007 — 机器学习与数据挖掘
捡回神经网络。这个和以后讲的“神经网络”,都指人工神经网络(Artificial Neural Network, ANN),那就先要知道些生物神经网络(Biological Neural Network, BNN)。
想一个神经元,由下面三部分组成:
- 细胞体:就是我们想像的那东西
- 树突(Dendrite):树状的神经纤维,负责接收,将信号传送给细胞体
- 轴突(Axon):单根长长的纤维,负责输出,讲细胞体的输出信号导给其他神经元
一个神经细胞(神经元)的轴突和另一个神经细胞的树突的结合点称为突触(Synapse,也称神经键)。
对一个感知器来说,权值可以对应于突触的连接强度,累加器和传输函数相当于细胞体,而神经元的输出则代表轴突的信号。
参考资料:
- Hagan等《神经网络设计》(戴葵等译,北京:机械工业出版社,2002)
- 马尽文“人工神经网络”讲义,北京大学数学系2007年秋季学期
August 21st, 2007 — 机器学习与数据挖掘
数据管理工具及编程语言
Data Manipulation Tools/Languages (June 2007)
What tools/languages you typically use for data manipulation [307 voters]
http://www.kdnuggets.com/polls/2007/data_manipulation_tools.htm
|
Use SQL / database system (116) 37.8%
Do data manipulation within data mining tool (95) 30.9%
Excel (84) 27.4%
SAS (75) 24.4%
Java (50) 16.3%
R (39) 12.7%
Perl (39) 12.7%
MATLAB (35) 11.4%
Python (34) 11.1%
C++/C# (30) 9.8%
shell/awk/gawk (29) 9.4%
C (19) 6.2%
Other (17) 5.5%
Other statistical languages (15) 4.9%
S-PLUS (11) 3.6%
Other compiled languages (11) 3.6%
Other scripting languages (9) 2.9%
Ruby (1) 0.3%
|
1.这次调查有307人响应,但这些百分比相加,粗看一下就超出100%很远,说明大伙都不会局限于用一种工具/语言来管理数据。
2.这些管理数据的工具/语言大概分为三种:
─数据库(SQL) ─统计软件包(如SAS、R、Matlab、S-Plus) ─编译语言(C、Java)
─脚本语言(Perl、Python、 Ruby、awk)
在这些响应者中,用数据库、Excel和SAS系统管理数据的人最多,但看着这些人不乏程序员,不但有用传统的编译语言C、Java,还有用脚本语言Perl、Python、Ruby,甚至还有用流语言awk的。
|
数据挖掘和数据分析工具
Data Mining / Analytic Software Tools (May 2007)
Data Mining (Analytic) tools you used in 2007: [534 voters]
http://www.kdnuggets.com/polls/2007/data_mining_software_tools.htm
|
Commercial Data Mining Software
SPSS Clementine 116, 73 alone or with SPSS
Salford CART/MARS/TreeNet/RF 106, 54 alone
Excel 94, 2 alone
SPSS 91, 49 alone or with Clementine
SAS 80, 8 alone or with SAS E-Miner
Angoss 78, 50 alone
KXEN 70, 51 alone
SQL Server 38, 2 alone
MATLAB 30, 1 alone
SAS E-Miner 25, 8 alone or with SAS
Other commercial tools 21, 0 alone
Statsoft Statistica 15, 2 alone
Insightful Miner/S-Plus 14, 0 alone
Oracle DM 12, 0 alone
Tiberius 11, 3 alone
FairIsaac Model Builder 3, 2 alone
Xelopes 2, 2 alone
Miner3D 2, 0 alone
Bayesia 2, 0 alone
Megaputer 1, 1 alone
your own code 61, 7 alone
|
商业数据挖掘软件包
1.这些商业数据挖掘工具大概包括:
—统计软件包和来自统计软件包生产厂商的数据挖掘套件SPSS、SAS、Statistica、S-Plus、SPSS Clementine、SAS E-Miner、Insightful Miner
—其他专业的数据挖掘软件包,SalfordCART/MARS/TreeNet/RF、
Angoss、KXEN
—电子表格Excel
—数学软件Matlab
—特定行业的数据挖掘软件包FairIsaac Model Builder (金融业)
—基于数据库的数据挖掘套件
SQL Server(应该是其中的Analysis Service)、Oracle DM
2.看着几乎是统计软件包及其相应的数据挖掘套件如SPSS和SAS的天下,基于数据库的如SQL Server、Oracle DM 也有一席之地。
Free Data Mining Software
Yale 103, 70 alone
Weka 48, 3 alone
R 42, 0 alone
Other free tools 30, 0 alone
C4.5/C5.0/See5 14, 0 alone
Orange 12, 0 alone
KNIME 2, 0 alone
|
数据挖掘方法
Data Mining Methods (Mar 2007)
Data mining/analytic methods you used frequently in the past 12 months: [203 voters]
http://www.kdnuggets.com/polls/2007/data_mining_methods.htm
|
Decision Trees/Rules (127) 62.6%
Regression (104) 51.2%
Clustering (102) 50.2%
Statistics (descriptive) (94) 46.3%
Visualization (66) 32.5%
Association rules (53) 26.1%
Sequence/Time series analysis (35) 17.2%
Neural Nets (35) 17.2%SVM (32) 15.8%
Bayesian (32) 15.8%
Boosting (30) 14.8%
Nearest Neighbor (26) 12.8%
Hybrid methods (24) 11.8%
Other (23) 11.3%
Genetic algorithms (23) 11.3%
Bagging (22) 10.8%
|
1.这些方法包括:
─传统统计方法
Regression(回归)、Statistics (descriptive)(描述性统计)、
Boosting()、Visualization(可视化)
─分类
Decision Trees/Rules(决策树和规则)、Neural Nets(神经网络)、Bayesian(贝叶斯)、Genetic algorithms (遗传算法)
─聚类
Clustering(聚类)、Nearest Neighbor(最近邻)
─关联(Association rules)
─时间序列(Sequence/Time series analysis ) ─其他(Hybrid methods、Bagging)
2.结论之一,简单的、直观的、容易解释的方法用得较多,比如决策树、回归、描述性统计……
|
行业
Data Mining Applications by Industry (June 2007)
Industries/fields where you applied data mining in the past 12 months [138 voters]
http://www.kdnuggets.com/polls/2007/data_mining_applications.htm
|
CRM (36) 26.1%
Banking (33) 23.9%
Direct Marketing/ Fundraising (28) 20.3%
Science (26) 18.8%
Fraud Detection (26) 18.8%
Telecom (21) 15.2%
Credit Scoring (19) 13.8%
Other (18) 13.0%
Biotech/Genomics (16) 11.6%
Web usage mining (14) 10.1%
Retail (14) 10.1%
Medical/ Pharma (13) 9.4%
Insurance (12) 8.7%
|
Health care/ HR (10) 7.2%
Government/Military (10) 7.2%
Financials/Lending (10) 7.2%
Web content mining/Search (9) 6.5%
Manufacturing (9) 6.5%
e-commerce (8) 5.8%
Entertainment/ Music (6) 4.3%
Social Policy/Survey analysis (5) 3.6%
Security / Anti-terrorism (5) 3.6%
Investment / Stocks (4) 2.9%
Travel/Hospitality (3) 2.2%
Junk email / Anti-spam (3) 2.2%
|