大量数据建模经验分析

什么样的处理才算是正确的处理呢?为了目的不择手段?只要得到好的预测性能就万事大吉?事实确实如此,但是这么做的关键在于,你能确保未知数据也能有个不错的表现。就像我经常说的那样,你很容易就会受到它的蒙蔽,在分析训练结果的时候,轻易地就相信了你选择的方法。以下三点很重要:

1.模型评价是关键

数据分析/机器学习/数据科学专业(或任何你能想到的领域)的主要目标,就是建立一个系统,要求它在预测未知数据上有良好的表现。区分监督学习(像分类)和无监督学习(如聚合)其实没有太大的意义,因为无论如何你总会找到办法来构建和设计你的数据集。方法行不行最后还是得看它在未知数据上的表现,你得保证它能得出同你过去的训练集一样的结果。

初学者最常犯一个错误就是看到已知数据的表现,就想当然的认为未知数据也会一样。通常你会发现,现实是很骨感的。这里我们就只说监督学习,任务就是根据你的输入预测输出,例如把电子邮件分成垃圾邮件和非垃圾邮件。

如果你只考虑训练数据,通过让机器记住一切,很轻松的就能得到完美的预测结果(除非这些数据自相矛盾)。这并不是什么新鲜事儿,人类自己就是这样的。还记得你学外语背单词的苦逼时光么,你必须检查单词字母的顺序,因为你的大脑需要按正确的顺序记住他们。

机器在存储和检索大量数据上的优势是人类拍马不及的。但这也带来了过拟合和泛化能力差的问题。

所以,一个好的评价方法是模拟未知数据的影响来分割数据,一部分用来训练,一部分用来检测效果。通常,用较大的训练集建模,然后用小的那部分进行预测,经过多次迭代来得到一个较稳定的模型。这个过程就是我们常说的交叉验证。

为了模拟未知数据的表现,把数据集分为两个部分,一部分用于训练,一部分用于预测。

就算我们这么做了,还是很有可能出问题,特别是在数据非平稳的时候,数据的潜在分布会随着时间变来变去。利用真实数据预测时经常会碰到这种情况,同样是销售数据,六月和七月的就可能差别巨大。

还有数据点间的相关性,如果你知道了一个数据点那么你肯定对另一个数据点也有了一些了解。好比股票价格,他们通常不会在两天之间任意的大幅波动,因此如果你胡乱的拆分训练/预测数据,就会破坏这种相关性。

每当出现这种情况,你得到的结果就会过于乐观,而你的模型似乎不打算在现实应用中也这么给你面子。最糟糕的情况就是,你千辛万苦终于说服人们认可你的方法,结果下水一试,它当掉了……

所以学习如何正确的进行模型评价是关键!

2.特征提取是天

学习一种新的算法感觉总是很棒,但现实是,最复杂的算法执行起来和那些老办法几乎没什么两样,真正的区别在于原始数据的特征学习。

现在的模型功能看起来非常强大,随随便便就能处理成千上万的特征和数据点,其 实本质上并没聪明到哪里。特别是线性模型(像logistic回归或线性支持向量机),就是个傻乎乎的计算器。

这些统计学专业知识中的模型确实很擅长在数据充足的情况下识别信息的特征,但是如果信息不充足,或者不能按线性组合的特征来表示,那基本就没什么可玩了。同样这些模型也不能通过“洞察”自行简化数据。

换句话说,你可以通过寻找合适的特征,来大量简化数据。坦白来讲,如果你能为想做预测的功能简化掉所有特征,那还有什么需要学习的呢?!这就是多么强大的特征提取啊!

这意味着两件事情:首先,你应该确保你确实掌握了这些几乎相同的方法中的一种,并且始终不抛弃它。你真的不需要同时掌握逻辑回归和线性支持向量机,你只要选择一个就够了。这些方法几乎都是相似的,关键的不同就在于底层模型。深度学习还有些特别的东西,但线性模型在表现能力上几乎都是相同的。虽然,训练时间、解决方案的稀疏度等可能会有些不同,但在大多数情况下你会得到相同的预测性能。

其次,你应该了解所有的特征工程。这是一门艺术,不幸的是,几乎所有的教科书都没有涵盖这一点,因为关于它的理论太少了。它的常规化就像我们的雾霾一样,还有很长的路要走。有时,特征需要取对数。每当降低一定的自由度,就是摆脱那些与预测任务不相关的数据,可以显著降低你所需的训练集数量。

有些情况下这种类型的转化会不可思议的简单。例如,如果你正在做手写字体识别,你就会发现有没有一个识别度高的颜色并不重要,你只要有一个背景和前景就OK了。

我知道,教科书往往将算法模型描述的异常强大,好像只要你把数据扔给模型,他们就会把一些都做了。从理论和无限的数据源上看它可能是对的。但很遗憾,我们的时间和数据都是有限的,所以寻找包含信息大的特征是绝对有必要的。

3.最耗神的是模型选择,而不是数据集的大小

在大数据时代,很多你不想被人知道的事情都被你的主内存以数据集的方式完美的记录下来。你的模型可能不需要花太多时间就能跑完这些数据,但是却要花费非常多的时间从原始数据中提取特征,利用交叉验证的方法来比较不同学习模型的渠道和参数。

DataScience 统计·数据科学
链接:https://exp.newsmth.net/topic/b6d819c32961de8e77f6c6be51bffa1d

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值