数据挖掘中易犯的10大错误
来源:CIO时代网 更新时间:2014-06-29
 
不要简单地信赖你用单个方法分析的结果,至少要和传统方法(比如线性回归或线性判别分析)做个比较。
    1. 太关注训练(Focus on Training)
    IDMer:就象体育训练中越来越注重实战训练,因为单纯的封闭式训练常常会训练时状态神勇,比赛时一塌糊涂。
    实际上,只有样本外数据上的模型评分结果才真正有用!(否则的话,直接用参照表好了!)
    例如:
    -癌症检测(Cancer detection):MD Anderson的医生和研究人员(1993)使用神经网络来进行癌症检测,惊奇地发现,训练时间越长(从几天延长至数周),对训练集的性能改善非常轻微,但在测试集上的性能却明显下降。
    -机器学习或计算机科学研究者常常试图让模型在已知数据上表现最优,这样做的结果通常会导致过度拟合(overfit)。
    解决方法:
    解决这个问题的典型方法是重抽样(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:一般在分类算法中都会给出分类精度作为衡量模型好坏的标准,但在实际项目中我们却几乎不看这个指标。为什么?因为那不是我们关注的目标。
    项目的目标:一定要锁定正确的目标
    例如:
    (1)欺诈侦测(关注的是正例!)(Shannon实验室在国际长途电话上的分析):不要试图在一般的通话中把欺诈和非欺诈行为分类出来,重点应放在如何描述正常通话的特征,然后据此发现异常通话行为。
    (2)模型的目标:让计算机去做你希望它做的事
    大多数研究人员会沉迷于模型的收敛性来尽量降低误差,这样让他们可以获得数学上的美感。但更应该让计算机做的事情是如何改善业务,而不是仅仅侧重模型计算上的精度。
    4. 只靠数据来说话(Listen (only) to the Data)
    IDMer:“让数据说话”没有错,关键是还要记得另一句话:兼听则明,偏听则暗!如果数据+工具就可以解决问题的话,还要人做什么呢?
    (1)。投机取巧的数据:数据本身只能帮助分析人员找到结果是什么,但它并不能告诉你结果是对还是错。
    (2)。经过设计的实验:某些实验设计中掺杂了人为的成分,这样的实验结果也常常不可信。
    5. 使用了未来的信息(Accept Leaks from the Future)
    IDMer:看似不可能,却是实际中很容易犯的错误,特别是你面对成千上万个变量的时候。认真、仔细、有条理是数据挖掘人员的基本要求。
    预报(Forecast)示例:预报芝加哥银行在某天的利率,使用神经网络建模,模型的准确率达到95%,但在模型中却使用了该天的利率作为输入变量。
    金融业中的预报示例:使用3日的移动平均来预报,但却把移动平均的中点设在今天。
    解决方法:
    要仔细查看那些让结果表现得异常好的变量,这些变量有可能是不应该使用,或者不应该直接使用的。
    给数据加上时间戳,避免被误用。