按照Elder博士的总结,这10大易犯错误包括:

0. 缺乏数据(Lack Data)

1. 太关注训练(Focus on Training)

2. 只依赖一项技术(Rely on One Technique)

3. 提错了问题(Ask the Wrong Question)

4. 只靠数据来说话(Listen (only) to the Data)

5. 使用了未来的信息(Accept Leaks from the Future)

6. 抛弃了不该忽略的案例(Discount Pesky Cases)

7. 轻信预测(Extrapolate)

8. 试图回答所有问题(Answer Every Inquiry)

9. 随便地进行抽样(Sample Casually)

10. 太相信最佳模型(Believe the Best Model)

数据挖掘中易犯的十大错误

详情如下:

0. 缺乏数据(Lack Data)

对于分类问题或预估问题来说,常常缺乏准确标注的案例。

例如:欺诈侦测(Fraud Detection)——在上百万的交易中,可能只有屈指可数的欺诈交易,还有很多的欺诈交易没有被正确标注出来,这就需要在建模前花费大量人力来修正;信用评分(Credit Scoring)——需要对潜在的高风险客户进行长期跟踪(比如两年),从而积累足够的评分样本。

1. 太关注训练(Focus on Training)

IDMer:就象体育训练中越来越注重实战训练,因为单纯的封闭式训练常常会训练时状态神勇,比赛时一塌糊涂。实际上,只有样本外数据上的模型评分结果才真正有用!(否则的话,直接用参照表好了!)

例如:癌症检测(Cancer detection)——MD Anderson的医生和研究人员(1993)使用神经网络来进行癌症检测,惊奇地发现,训练时间越长(从几天延长至数周),对训练集的性能改善非常轻微,但在测试集上的性能却明显下降;机器学习或计算机科学研究者常常试图让模型在已知数据上表现最优,这样做的结果通常会导致过度拟合(overfit)。欢迎加入大数据学习交流分享群: 658558542   一起吹水交流学习(☛点击即可加入群聊)

解决方法:

解决这个问题的典型方法是重抽样(Re-Sampling)。重抽样技术包括:bootstrap、cross-validation、jackknife、leave-one-out...等等。

2. 只依赖一项技术(Rely on One Technique)

IDMer:这个错误和第10种错误有相通之处,请同时参照其解决方法。没有对比也就没有所谓的好坏,辩证法的思想在此体现无遗。“当小孩子手拿一把锤子时,整个世界看起来就是一枚钉子。”要想让工作尽善尽美,就需要一套完整的工具箱。不要简单地信赖你用单个方法分析的结果,至少要和传统方法(比如线性回归或线性判别分析)做个比较。

研究结果:按照《神经网络》期刊的统计,在过去3年来,只有1/6的文章中做到了上述两点。也就是说,在独立于训练样本之外的测试集上进行了开集测试,并与其它广泛采用的方法进行了对比。

解决方法:

使用一系列好的工具和方法。(每种工具或方法可能最多带来5%~10%的改进)。

3. 提错了问题(Ask the Wrong Question)

IDMer:一般在分类算法中都会给出分类精度作为衡量模型好坏的标准,但在实际项目中我们却几乎不看这个指标。为什么?因为那不是我们关注的目标。

a)项目的目标:一定要锁定正确的目标

例如:欺诈侦测(关注的是正例!)(Shannon实验室在国际长途电话上的分析):不要试图在一般的通话中把欺诈和非欺诈行为分类出来,重点应放在如何描述正常通话的特征,然后据此发现异常通话行为。

b)模型的目标:让计算机去做你希望它做的事

大多数研究人员会沉迷于模型的收敛性来尽量降低误差,这样让他们可以获得数学上的美感。但更应该让计算机做的事情应该是如何改善业务,而不是仅仅侧重模型计算上的精度。欢迎加入大数据学习交流分享群: 658558542   一起吹水交流学习(☛点击即可加入群聊)

4. 只靠数据来说话(Listen (only) to the Data)

IDMer:“让数据说话”没有错,关键是还要记得另一句话:兼听则明,偏听则暗!如果数据+工具就可以解决问题的话,还要人做什么呢?

4a.投机取巧的数据:数据本身只能帮助分析人员找到什么是显著的结果,但它并不能告诉你结果是对还是错。

4b.经过设计的实验:某些实验设计中掺杂了人为的成分,这样的实验结果也常常不可信。

5. 使用了未来的信息(Accept Leaks from the Future)

IDMer:看似不可能,却是实际中很容易犯的错误,特别是你面对成千上万个变量的时候。认真、仔细、有条理是数据挖掘人员的基本要求。预报(Forecast)示例:预报芝加哥银行在某天的利率,使用神经网络建模,模型的准确率达到95%。但在模型中却使用了该天的利率作为输入变量。金融业中的预报示例:使用3日的移动平均来预报,但却把移动平均的中点设在今天。

解决方法:

要仔细查看那些让结果表现得异常好的变量,这些变量有可能是不应该使用,或者不应该直接使用的。给数据加上时间戳,避免被误用。

6. 抛弃了不该忽略的案例(Discount Pesky Cases)

IDMer:到底是“宁为鸡头,不为凤尾”,还是“大隐隐于市,小隐隐于野”?不同的人生态度可以有同样精彩的人生,不同的数据也可能蕴含同样重要的价值。异常值可能会导致错误的结果(比如价格中的小数点标错了),但也可能是问题的答案(比如臭氧洞)。所以需要仔细检查这些异常。研究中最让激动的话语不是“啊哈!”,而是“这就有点奇怪了……”数据中的不一致性有可能会是解决问题的线索,深挖下去也许可以解决一个大的业务问题。

例如:在直邮营销中,在对家庭地址的合并和清洗过程中发现的数据不一致,反而可能是新的营销机会。

解决方法:

可视化可以帮助你分析大量的假设是否成立。

7. 轻信预测(Extrapolate)

IDMer:依然是辩证法中的观点,事物都是不断发展变化的。人们常常在经验不多的时候轻易得出一些结论。即便发现了一些反例,人们也不太愿意放弃原先的想法。维度咒语:在低维度上的直觉,放在高维度空间中,常常是毫无意义的。

解决方法:进化论。没有正确的结论,只有越来越准确的结论。

8. 试图回答所有问题(Answer Every Inquiry)

IDMer:有点像我爬山时鼓励自己的一句话“我不知道什么时候能登上山峰,但我知道爬一步就离终点近一步。”“不知道”是一种有意义的模型结果。模型也许无法100%准确回答问题,但至少可以帮我们估计出现某种结果的可能性。

9. 随便地进行抽样(Sample Casually)

9a降低抽样水平。例如,MD直邮公司进行响应预测分析,但发现数据集中的不响应客户占比太高(总共一百万直邮客户,其中超过99%的人未对营销做出响应)。于是建模人员做了如下抽样:把所有响应者放入样本集,然后在所有不响应者中进行系统抽样,即每隔10人抽一个放入样本集,直到样本集达到10万人。但模型居然得出如下规则:凡是居住在Ketchikan、Wrangell和Ward Cove Alaska的人都会响应营销。这显然是有问题的结论。(问题就出在这种抽样方法上,因为原始数据集已经按照邮政编码排序,上面这三个地区中不响应者未能被抽取到样本集中,故此得出了这种结论)。

解决方法:“喝前摇一摇!”先打乱原始数据集中的顺序,从而保证抽样的随机性。9b提高抽样水平。例如,在信用评分中,因为违约客户的占比一般都非常低,所以在建模时常常会人为调高违约客户的占比(比如把这些违约客户的权重提高5倍)。建模中发现,随着模型越来越复杂,判别违约客户的准确率也越来越高,但对正常客户的误判率也随之升高。(问题出在数据集的划分上。在把原始数据集划分为训练集和测试集时,原始数据集中违约客户的权重已经被提高过了)

解决方法:先进行数据集划分,然后再提高训练集中违约客户的权重。

10. 太相信最佳模型(Believe the Best Model)

IDMer:还是那句老话-“没有最好,只有更好!”可解释性并不一定总是必要的。看起来并不完全正确或者可以解释的模型,有时也会有用。“最佳”模型中使用的一些变量,会分散人们太多的注意力。(不可解释性有时也是一个优点)一般来说,很多变量看起来彼此都很相似,而最佳模型的结构看上去也千差万别,无迹可循。但需注意的是,结构上相似并不意味着功能上也相似。

解决方法:把多个模型集装起来可能会带来更好更稳定的结果。

结语

感谢您的观看,如有不足之处,欢迎批评指正。

如果有对大数据感兴趣的小伙伴或者是从事大数据的老司机可以加群:

658558542    (☛点击即可加入群聊)

里面整理了一大份学习资料,全都是些干货,包括大数据技术入门,海量数据高级分析语言,海量数据存储分布式存储,以及海量数据分析分布式计算等部分,送给每一位大数据小伙伴,这里不止是小白聚集地,还有大牛在线解答!欢迎初学和进阶中的小伙伴一起进群学习交流,共同进步!

最后祝福所有遇到瓶颈的大数据程序员们突破自己,祝福大家在往后的工作与面试中一切顺利。

转载于:https://my.oschina.net/u/4055005/blog/3007694

数据挖掘中最容易犯的几个错误,你知道吗?相关推荐

  1. html mebed高度问题,高中英语中最易犯的100个错误,看看你有多少?

    原标题:高中英语中最易犯的100个错误,看看你有多少? 同学们在考试的过程当中经常暴露一些弱点.犯一些错误.今天老师对大家英语考试中的常见错误按语法类别进行归纳,并举以实例,希望同学们能够由此发现自己 ...

  2. 在数据挖掘中,经常犯的错误有哪些?

    1.太关注训练(FocusonTraining) IDMer:就象体育训练中越来越注重实战训练,因为单纯的封闭式训练常常会训练时状态神勇,比赛时一塌糊涂. 实际上,只有样本外数据上的模型评分结果才真正 ...

  3. SearchHit转成java对象_Java开发中最常犯的10个错误,你中招了吗?

    http://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/ 阅读目录 Array转ArrayList 判断一个数 ...

  4. Java开发中最常犯的10个错误,你中招了吗?

    http://www.programcreek.com/2014/05/top-10-mistakes-java-developers-make/ 阅读目录 Array转ArrayList 判断一个数 ...

  5. A/B测试中我们都会犯的十个常见错误

    2019-11-29 20:51:46 作者:Romain AYRES 编译:ronghuaiyang 导读 这篇博客文章的目的不是告诉你在运行A/B测试时应该做什么,而是告诉你不应该做什么. &qu ...

  6. 数据挖掘中易犯的10大错误

    0. 缺乏数据(Lack Data) 1. 太关注训练(Focus on Training) 2. 只依赖一项技术(Rely on One Technique) 3. 提错了问题(Ask the Wr ...

  7. 数据挖掘易犯的11大错误与数据分析技能

    0. 缺乏数据(Lack Data) 对于分类问题或预估问题来说,常常缺乏准确标注的案例. 例如: -欺诈侦测(Fraud Detection):在上百万的交易中,可能只有屈指可数的欺诈交易,还有很多 ...

  8. 数据挖掘中分类算法小结

    数据挖掘中分类算法小结   数据仓库,数据库或者其它信息库中隐藏着许多可以为商业.科研等活动的决策提供所需要的知识.分类与预测是两种数据分析形式,它们可以用来抽取能够描述重要数据集合或预测未来数据趋势 ...

  9. 请在请求中携带deviceid参数_日常工作中最容易犯的几个并发错误,你中了几个?...

    作者:Jay_huaxiao 前言 列举大家平时在工作中最容易犯的几个并发错误,都是在实际项目代码中看到的鲜活例子,希望对大家有帮助. First Blood 线上总是出现:ERROR 1062 (2 ...

最新文章

  1. 为什么电脑不能打字_为什么新电脑不能安装win7系统?
  2. 宝塔php open_basedir restriction in effect
  3. php对连接加密后传,PHP 加密解密和解决URL传输问题
  4. win10 自定义分辨率
  5. 别再问我如何双击打开.ipynb文件了!
  6. android 书架菜单,Android入门3--做一个书架
  7. 软件工程综合实践专题——个人博客作业1
  8. 深入浅出谈CUDA(二)
  9. (转)Android studio 使用心得(五)—代码混淆和破解apk
  10. ENVI学习总结(七)——图像融合
  11. 什么是浏览器指纹识别
  12. 技术人员的价值是什么?技术的价值体现在赋能业务
  13. 锐捷交换机忘记密码解决方案:恢复出厂设置、重置配置文件
  14. Android WebView 进价高级使用
  15. wps 邮件合并 mysql_笔记13 - 邮件合并
  16. 【语音识别】基于MFCC的GMM实现语音识别matlab源码
  17. 常见哈希算法、Hmac算法和BouncyCastle
  18. Flutter获取焦点
  19. java 高德地图路线规划_高德地图 web 页面里的出行路线规划
  20. 《算法0基础100讲》(第7讲)素数判定——866.回文素数

热门文章

  1. Winsock 的初始化
  2. PLC滑动平均值滤波(SMART 200梯形图篇)
  3. Atomic类如何保证原子性
  4. c语言能求50的阶乘吗,c语言50的阶乘,这个for循环什么意思啊,有没有大佬解释一下...
  5. 网络数据请求(unity)
  6. C语言编写程序:判断某年份是否为闰年
  7. 什么是拦截器?什么是过滤器?
  8. 举例说明计算机在现实应用中的作用,,谈一谈‘‘九思’’述说的内容在今天有什么现实意义?...
  9. 计算机组成原理 — GPU 图形处理器
  10. mkvirtualenv: command not found 问题解决