libran_x 我最近看国外的学校,把机器学习和数据发掘分开了,数据发掘主要是跟数据库打交道,学什么数据仓库,用Oracle软件。而机器学习好像是跟统计更加贴近。 我是个新人,学统计的,挺想在这个方向多学习学习,希望高手前辈们指教指教,看了一些别人的说明,也不太统一~~
yihui 统计系和计算机系在数据挖掘上做的工作有很大不同,我的感觉是,统计系把统计方法的一个子集成为数据挖掘(你看大部分数据挖掘的书所讲的不过就是那数十种方法而已),计算机系做的是数据库挖掘(软件、数据库算法); 至于机器学习呢,我引用牛津的Ripley教授的一句玩笑: To paraphrase provocatively, 'machine learning is statistics minus any checking of models and assumptions'. -- Brian D. Ripley (about the difference between machine learning and statistics) useR! 2004, Vienna (May 2004) 大致感觉就是,经典统计学猛推公式猛证明各种模型性质,机器学习不管这些,它的目的是预测性能更好的算法,这些模型(机器)有个特点,就是可以自我学习,提高预测性能,按字面意思应该这样解释,但实际上并非所有的机器学习算法都有“学习”的特征的。所以,我认为大家只是在给统计学穿外套、做包装。
shuaihuang 机器学习和数据挖掘以及统计之间的关系表面上很像,但是也有非常大的区别 相似点在于:都是数据分析的工具,三个领域内都有办法用来分析同一数据,基本原理都很浅显。 不同点在于: 统计对模型的要求比较苛刻,如谢所引,一定要对模型的各种性质,比如大样本,小样本,是否无偏,有多大的variance,是否达到c-r bound,是否一致,最后最好还要有model checking. 机器学习很少关心模型在大样本的情况下如何,也不关心estimator的传统的性质--这也可能是因为他们的模型太过复杂,无法从数学上证明,这也从一个侧面反映了为什么normal distribution在统计中的用处如此之大(有了它,很多模型的性质的研究就便的容易了),也有可能是因为他们一般都用在数据量大的地方--但是机器学习却挺关心另一个东西--error,包括empirical error and structural error。举个简单的例子,我们眼看着神经网络和支持向量机这两种网络模型很流行,很容易懂,很有用,但是很多人却不知道它们来自何处,为什么能具有对广泛的数据拥有广泛的用途,为什么精度会很高?--背后的原因很简单,它们两分别优化的是这两种error。而机器学习正是着眼于研究这两种error,通过这两种error的研究垮身为一种具有很浓数学味道的学科--用了大量的分析学--而这一点也是它与数据挖掘的本质区别--数据挖掘只需要设计一张鱼网(算法),在大量的数据中网到自己需要的模式,很多时候相当的需要运气。所以很多人都说这是渔夫的工作。
libran_x 好久没来,看到各位前辈这么耐心的解释,真是感谢啊。 我看的似懂非懂吧,基础比较差呵呵。 我还有一个弱弱的问题,就是数据发掘和机器学习是不是都需要很强的编程能力呢?我看The Elements of Statistical Learning这本书好像用的是R软件,是否还需要类似C++或者java这样的东西打基础呢? 我很想再这个领域学习一下,以后有所发展。
cyy024 刚听一个技术总监的解释 数据挖掘更多是在数据中寻找规律,给出数据特征,如关联规则挖掘。例如:超市的数据挖掘出买面包的人一般都会买牛奶,所以摆放物品时会考虑两者一起。 机器学习,则更多是预测问题。通过对数据的学习,找出规律,给出以后的趋势。 本人在机器学习领域也是有兴趣的新手,希望分享自己的理解与大家一起交流。
512002855 回复 第2楼 的 谢益辉:个人拙见:在数据挖掘中,统计专业的人和计算机专业的人承担不同的角色。学统计的主要负责建立模型(筛选变量、模型计算等等),计算机专业的主要负责数据库(ETL、数据集市等等)和模型结果的部署。当然学的好的高手也会集两种角色于一身。