以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 Web挖掘技术 』   (http://bbs.xml.org.cn/list.asp?boardid=69)
----  关于DM的一点总结  (http://bbs.xml.org.cn/dispbbs.asp?boardid=69&rootid=&id=50351)


--  作者:DMman
--  发布时间:7/22/2007 4:48:00 PM

--  关于DM的一点总结
[Nirvana 发表于 2007-6-26 21:37:00]
转自 http://www.chinabi.net/blog/user1/105/archives/2007/1515.html


原文作者注:
用IBM的IM做过一段时间的电信客户挖掘由于时间不是很长,做的挖掘模型效果还有待提高应朋友要求简单总结几点(水平有限,也希望经验丰富的朋友给些建议):

1、挖掘工具主要分商业数据产品和集成数据挖掘产品两类:商业数据挖掘产品具有代表性的SPSS Clementine,SAS Enterprise Miner,IBM Intelligent Miner;SQL Server2005属于集成了挖掘模型类的,挖掘算法与SQL数据库产品密不可分,你甚至可以把自己实现的数据挖掘算法跟SQL进行集成,Oracle也类似,DB2的BI功能没怎么用,不是很清楚。

2、数据挖掘过程的重点绝对是数据预处理,一般认为预处理工作会占60%-80%时间不等,为什么预处理会如此重要,大家都知道garbage in garbage out的道理,这在整个BI领域都是成立的。商业智能-既然提到智能层面,那就不只是展现,还要做分析和预测(不过现阶段很多BI项目确实只是在做展现,最多加点多维分析)。BI概念提出之初就是辅助战略决策的产物,当然向操作型BI发展的趋势这里不做过多介绍,经验告诉我们战略决策是基于历史和别人现成经验的,怎样从历史数据的展现和分析过程中得到有用知识,不管你是通过报表或多维分析得到企业各领域指标相关性,还是通过挖掘模型的实施来根据历史数据预测企业未来发展,这一切都是基于企业历史数据的。没有数据质量基础的保证,展现得多华丽的走势图表都是垃圾。
(1)如果是基于数据仓库或者数据集市的挖掘,那么可直接在仓库或者数据集市中建立挖掘模型源输入(也可叫临时宽表,这个表是根据挖掘业务需求对其他维度表属性的一个综合提取,合适的时间窗口在这里是个要考虑的关键因素);如果是没有仓库或集市这一数据基础,那么就需要一个针对挖掘业务需求字段属性的简单ETL过程了。
(2)上面只是挖掘源数据的建立,接下来才进入数据预处理的核心阶段,由于源数据(临时宽表)里面很多数据是有偏差的,比如空值,错误值,异常值等...这就需要根据每个业务字段属性的规范标准来进行处理,这步是一个繁杂的工程,数据预处理技术各式各样,比较有代表性的有数据清理、数据集成、数据变换、数据归约、离散化和概念分层等等;而且针对不同字段数据特征,不同的数据处理技术往往会导致挖掘的结果差异。虽然商业数据挖掘产品都提供了常用的数据预处理技术,但要用好,除了需要一些统计学,数据分布等知识外,对该字段对应的业务理解和挖掘过程的数据预处理方法差异的经验积累才是关键因素。就拿属性归约来将,很多挖掘产品有因子分析工具,貌似可以自动对所有属性字段做一个挖掘相关重要性因素从大大小的排序,但这也不能全信,毕竟工具是死的,它只能从数据本身的数理特征去理解和自动分析,例如有些业务字段可能数据分布的特征不符合因子分析的重要性条件,但对该数据挖掘模型贡献确是很大的。这样的情况虽说不多,却是值得注意的地方。

3、经过上面两步,挖掘模型数据输入算是初步建立起来了。接下来需要对所应用的挖掘模型有个初步理解,有朋友赞成挖掘模型是“黑匣子”的观点,有朋友赞成需要对挖掘模型的专业理解。我保持中庸的观点:如果不是做算法研究的朋友,只是做挖掘模型应用,却需要对挖掘模型算法有专业理解是不现实的,毕竟公司讲的效益和效率,不像是在实验室,有的是时间让你查资料,折腾进而对模型有个深入全面的理解;但完全黑匣子也是不妥的,一个对该挖掘模型完全不理解的人,指望能利用该模型挖掘出有用知识是不可能的。一是他不可能对挖掘结果有很好的理解;二是参数的调整是最大障碍,挖掘过程本来就是迭代过程,对算法完全不了解的参数设置乱设一通就指望得出较优模型更是天方夜潭。个人认为对挖掘模型大致原理是有必要了解的,再就是每个参数的范围及所代表的意义和对模型所起作用也是需要了解的。

4、数据规模也是个关键因素,训练数据,测试数据,验证数据?训练数据是选连续五个月加起来10万条记录,还是选连续三个月加起来6万条记录;测试数据是选两个月加起来2万条记录还是只选一个月?如果一个月数据就有几十万条记录,那么采取那种方式抽取几万条记录,是随机取还是写个简单选择算法?10万条记录挖掘模型跑了一晚上才出来结果,用5万条记录跑出来效果跟用10万条记录的差异大不大?抽取几千条记录完全可以用统计模型实现,为什么还要抽取上万记录用复杂的挖掘模型呢?这些因素很难说有个统一标准,相信很多人还是相信自己的经验多一点,像我等菜鸟们也只能指望经验丰富的老鸟们多出几本数据挖掘指南了。

5、不管是需求分析还是挖掘模型的评估及应用,和业务人员和决策者们的充分沟通交流是完全必要的。闭们造车的数据挖掘模型是脆弱的...



--  作者:DMman
--  发布时间:7/22/2007 4:53:00 PM

--  
成功者的经验对学习者来说是弥足珍贵的,下面顺便把原文作者博客上的留言讨论附加过来:

francois发表评论于2007-6-27 0:18:03
呵呵,IM没用过,感觉上IBM对这个软件的研发投入不是很大,毕竟只是DB2的一个附件而已。

关于你提到的“10万条记录跑一个晚上才有结果”,IM是如此之慢吗?不知道是多少个变量?用的是什么配置的机器?我最近刚用SAS EM 5.1做过性能测试,1亿条记录,大概20~30个字段,在IBM的x346机器上(双CPU,4G内存),决策树和Logistic Regression算法都是跑了6个小时左右。
以下为blog主人的回复:
你说的是,IM界面比较粗糙,但挖掘常用功能及算法都还是基本能满足需要。当时是预研性质的做,训练数据20多万,测试数据2万;也没有真正跑一晚上,只是下午要下班的时候开跑,基本都是第二天早上看结果的,属性差不多50多个,单CPU,1G内存,跑的神经网络模型

duzhaoyi2000发表评论于2007-6-28 10:05:03]

再就是训练数据规模的考量,选1亿真的有必要吗?1亿,几千万,几百万,几万,到底那种合适点?这个都没有统一的指导思想,不知道你是怎么做的?如果是少量数据能代表全局数据分布的话,是不是会节约很多时间;换个角度,数据太多,冗余太多除了时间耗费长之外,是否对模型训练有负面影响?

francois发表评论于2007-6-28 23:11:37
呵呵,这个是客户要求的性能测试。选择1亿条记录的情况很少会见到,我做过和了解到的数据挖掘项目大多以几万条到上百万条记录来训练模型。关于要抽样多少来做模型比较合适,我还没看到理论上的指导原则,常常需要多次尝试。
我以前请同事做过抽样的尝试:电信行业,客户流失预测,使用决策树模型。分别使用1万、2万、5万、10万和60万条记录来训练模型,除了1万条和2万条记录训练出来的模型不够稳定外,5万及以上的记录训练出来的模型性能都差不多。(但这依然说明不了问题,无法事先告诉你该用多大的训练集比较合适。因为你事先很难知道数据中蕴含的模式的复杂性到底有多大)
我的上述说法是个人的理解,可能在统计学上已经有相应的深入研究。如果有对此有了解的同行,欢迎提出宝贵意见。



--  作者:DMman
--  发布时间:7/22/2007 4:56:00 PM

--  
对于经验不足者来说,我觉得数据挖掘很多时候是令人沮丧的。。。
   还是需要内功修炼和实践锻炼啊
--  作者:hunterdong
--  发布时间:7/24/2007 11:19:00 PM

--  
实战最重要。

我正在找实习机会。。请大家多指点。。

用户名在hotmail。com


--  作者:DMman
--  发布时间:8/18/2007 10:00:00 PM

--  
即时没有实习的机会,也不要只看理论的书籍,用Weka运行个几十条、几百条的数据集就满足了,可以在网上找些大数据集,试着调整算法看看性能,未尝不是乐趣
--  作者:benchton
--  发布时间:8/19/2007 5:18:00 PM

--  
to 5楼
不懂weka,请指教下阿!谢谢 !
--  作者:DMman
--  发布时间:8/19/2007 6:03:00 PM

--  
以下是引用benchton在2007-8-19 17:18:00的发言:
to 5楼
不懂weka,请指教下阿!谢谢 !


请看下
http://blogger.org.cn/blog/more.asp?name=DMman&id=24009
--  作者:chsffly
--  发布时间:9/22/2007 7:38:00 PM

--  
写的不错,支持
--  作者:jingliulswww
--  发布时间:11/9/2007 3:50:00 PM

--  
多谢DMman


[此贴子已经被DMman于2007-11-9 16:36:30编辑过]

--  作者:土豆603
--  发布时间:12/16/2007 1:40:00 PM

--  
文本挖掘是不是属于数据挖掘的范畴?
--  作者:DMman
--  发布时间:12/18/2007 6:15:00 PM

--  
以下是引用土豆603在2007-12-16 13:40:00的发言:
文本挖掘是不是属于数据挖掘的范畴?


是的,带“挖掘”俩字的基本都是数据挖掘范畴,如多媒体挖掘,web挖掘,时间序列模式挖掘,图像挖掘..
--  作者:netjian
--  发布时间:12/29/2007 10:27:00 AM

--  
不错。
不知道有没有人做分布式的数据挖掘,不要求很高深,
是想做一个这样的毕业设计。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
82.031ms