全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
2769 3
2013-12-19
大家好,我们在过去几天一直忙于调试新的云端数据挖掘系统,终于在昨天让人工神经挖掘系统0.0.3版本上线了!与前面的版本相比,现在新的系统可以处理多分类(multi-class)问题,同时我们更新了“变量相对重要性指标”( variable relative importance)的计算方法,系统也可以处理在多分类情况下VRI的计算了。而且我们还添加了以神经网络为基础分类器的Boosting分析系统,使分析的精度更高,更稳定(所谓稳定是指,当训练集发生小幅变化时,模型和模型作出的预测不会发生剧烈的变化,一般来说决策树,人工神经网络都是不太稳定的模型,而k nearest neighbor(KNN)则是比较稳定的模型)

而且我们也把著名的 鸢尾花卉(Iris) 数据作为实例,重新编写了整个系统的使用指南,您将能够轻松地使用系统和编写您自己的专业数据分析报告!欢迎访问我们的网站 www.foam-buffalo.com 去体验全新的云端数据挖掘系统




广告打完了,我们今天主要谈的是数据挖掘实践中很容易犯的一个错误,即过度拟合(overfitting). 过度拟合无论是对于初学者甚至是专业数据分析人员都是极度容易陷入的一个陷阱。以前还在米国学习的时候,有一个毕业于某长春藤超级名校的教授来我们学校开讲座,但是非常不幸的是,她每拟合一次模型,就去看拟合曲线和数据的吻合程度,是典型的过度拟合,俺的教授为此还专门回头对俺回眸一笑,那一笑中蕴含了多少的深意,我至今还在回味。。。当然,讲这个小故事的目的并不是否定那位教授或者她所毕业的长春藤名校的实力,只是想说明数据挖掘远非会背得几个公式,会使用几个软件,然后把一大堆数字堆砌在报告中那么简单。数据挖掘是一个长期的累积过程,需要不断地学习新知识,也需要在实战中累积经验。 以下所谈的,也仅仅是基于我们的个人经验而已,远谈不上金科玉律,不恰当的地方,还请大家指正。 同样,本文的内容您也可以在我们网站中新开辟的 “数据挖掘挖掘随笔”栏目中找到。

%%%%%%%%%%%%%%% 浅谈过度拟合 %%%%%%%%%%%%%%

在很多时候,进行数据挖掘的第一步就是用训练集“培训”我们的分析程序,让机器从数学中学习并获得某种“智能”(比如说从照片中识别出人脸,从时间序列里预测出未来股价等等)。而这个“培训”的过程,往往也是一个模型对于数据的拟合的过程。 以最基础的线性回归(linear regression function)为例,假设您的目标是研究身高(x)和体重(y) 的关系,而您又从调查中获取了100对相应的数据 (x(1),y(1)),...,(x(100),y(100)), 则您可以在一个二维平面上把这些数据点打出来(下图蓝点)。而线性回归的目标则是去用y=a+x.b+e这个公式去拟合这100个数据点(下图红线),其中a和b是常数,而e则是随机误差。很明显绝大多数的数据点并不在红线上面,换句话说,线性回归方程对于数据的拟合并不完美。

那么有的朋友会想,我能不能用一些更复杂的方程比如说y=x^5.b5+x^4.b5+...+x.b1+a+e来更好的拟合这些数据点呢? 答案是肯定的。但是,数据挖掘的最终目标并非是去拟合数据,而是去从现有数据中获取知识,并利用这些知识去做预测。否则我们在任何时候都可以完美的拟合数据,因为我们可以设定一个离散函数:y(i)=x(i), i=1,..100, 这个函数对于数据的拟合是100%, 但是对于一个x(i+1)来说,其预测的y(i+1)通常是毫无意义的。回到线性回归方程,它虽然没有能完全拟合我们的数据,但是它还是比较刻画了数据中蕴含的趋势(身高越高,体重往往越大),而正是这个趋势让我们能够做很多有意义的事情。比如说在另外的例子中,人们证实了体重越大,血糖越高的结论,那么我们可以建议糖尿病人控制体重等等。

从哲学的角度看,在数据挖掘的世界里,“没有模型是正确的,但是有一些是有用的”,所以去追求所谓的“正确”的模型,往往就会过度拟合数据,让模型失去了弹性(flexibility),是一个无用的模型。而从比较技术的角度看,过度拟合的本质是把随机误差也就是e项考虑进了模型,最后让模型彻底迷失在了误差里面,而看不见最本质的趋势。

因此,很多时候我们并不推荐“看图说话”, 也就是看着数据选择模型和一遍又一遍的拟合数据。事实上,很多数据挖掘中的理论的推导都有一个假设是,模型的选择是在看见实际数据以前。当然,“看图说话”在数据挖掘中也发挥着重要的作用,也有很多人专门去发展所谓的“ 探索”(‘exploration')技术或者对数据进行描述性分析(descriptive analysis). 而把握好这个分析的度,在获取必要的知识的同时而又不至于过度拟合数据,很多时候得依靠研究人员的经验和感觉,这也是为什么数据挖掘即是技术也是艺术的原因。



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-12-19 15:00:36
数据挖掘只是解决问题的一种方法,但很多时候,人们对于模型的希望远高于模型本身.所以渴望拟合上更多
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-12-19 15:14:02
huntdreamer 发表于 2013-12-19 15:00
数据挖掘只是解决问题的一种方法,但很多时候,人们对于模型的希望远高于模型本身.所以渴望拟合上更多
您说的这个现象主要还是由于不少朋友对于数据挖掘的经验不足,有一些不切实际的想法。我个人来说,以前做个一个项目,也是米国一家很大的跨国巨头的分包项目。他们的目标是做药品安全分析,因为根据FDA的要求,药品在进入临床实验前,必须做毒性测试,方法很简单,就是看实验小白鼠在128周内的死亡率,如果超过某一数值,则这个药品就会被认为毒性过大直接被枪毙。但是养一群小白鼠128周,是一个非常昂贵而且耗时的过程,所以他们想对小白鼠的死亡率进行早期预测,于是邀请我们去建立贝叶斯的生存模型(Bayesian Survival Model). 但是,他们的问题就是,在前10周,小白鼠基本上都没有发生死亡,生存曲线还处于非常平的阶段,这就相当于要利用青少年的生存数据去预测80岁老年人的死亡率一样,我们的感觉这个项目的缺陷是数据,而不是模型能够解决的。当然,最后我们还是写出了一篇洋洋撒撒的报告。。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-12-19 19:06:37
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群