该做的都做了,为什么模型预测数据的准确率依旧上不去呢?

该做的都做了,为什么模型预测数据的准确率依旧上不去呢?

版权声明

本文首发于微信公众号
这样和数据相处(data_gentleman)
无需授权即可转载
转载时请注明出处


“小明,这周我们需要预测一下xx平台上的消费者复购情况,这是交易数据……”总监说。

小明,公司新入职的数据分析师,略显慵懒的靠着椅背,头也不抬,说:“好的,老大。”

一般说来,会有两个结果。

1. 小明运气爆棚,搭建的预测模型完美的解决了问题;
2. 模型搭建失败,在预测未知数据时的准确率低的感人。

而这第二种情况,出现的频次相对高一些。

倒不是搭建模型的难度太大。这可能是因为太依赖数据处理的套路了,导致自己没有深入理解数据集,也就更别说挖掘出数据集的价值信息了。

诚然,和其他行业一样,数据分析师搭建模型预测数据的过程也是有套路的。

看吧,从原始数据集到最后的部署监测,概括起来就两步:一步是数据准备(也叫数据清洗);另一步是训练模型。如果训练模型的结果不满意,那就返回到数据清洗阶段,重新开始。

相信你也发现了,数据准备在整个过程中的占了60%以上的比重。重要性可见一斑。

当然,我们在准备数据的时候,也是有套路的。主要由两个阶段:数据预处理与特征工程。先来说说数据预处理的套路,一般说来,有以下六步:

1. 选择子集。
2. 列表重命名。
3. 处理缺失数据。
4. 转换数据类型。
5. 数据排序。
6. 处理异常值。

特征工程也不例外:

1. 特征处理。主要有三方面内容,1)处理不均衡样本、异常样本;2)对已有特征进行归一化或标准化处理;3)特征降维。
2. 特征选择。在sklearn官网文档中,给了我们3种选择方案:移除低方差的特征、使用SelectFromModel选择特征、融合为pipeline的一部分选择特征( 传送门)
3. 特征提取。在第二步的基础上,提取出恰当的数据特征,以便更好的训练模型。

是不瞬间觉得整个世界都光明了?你看,就算我们以后拿到原始数据,即便没有思路,也可以按照上面的这些个套路,一步一步的往下做,直至得出结果。爽的不要不要的。

如果你是这样想的话,其实我也可以理解你的本意是说:数据分析师与其他人的区别,就在于如何运用好处理数据的这些套路吧。

其实并不是这样。

因为套路终究是套路,它只普适于符合某种前提的一般情况。而且,我们拿到的数据,要解决的问题,在每个人身上,每个时刻都是不同的,因此也就不能对数据处理做一般化定义。

换句话说,数据分析师存在的价值不是在于他们处理数据的能力,而是挖掘数据价值的思维。我甚至认为,这是每个数据分析师的核心竞争力。好的数据分析师,是有能力在一堆数据垃圾里挖出金矿的。

当然,我也并不是说上面说的套路不正确,毕竟它是经过很多实践检验的,值得信任。

只不过,作为一名数据分析师,在进行数据清洗之前,应该有一个意识:对原始数据进行试探性分析(Exploratory Data Analysis)的意识。这非常重要。

为什么要对数据进行EDA?

在统计学中,试探性数据分析(EDA)是分析数据集并总结出它们的主要特征的一个方法。即通过汇总统计、图表可视化、方程拟合等方式,初步调查现有数据,探索数据结构与规律的关键过程。

特别是在我们对数据中的信息没有足够经验,不知怎么入手分析的时候,尤为有效。

同时,它对绝大多数的数据科学项目来说是很宝贵的。

因为它不仅可以让我们知道未来的结果是否能有效、正确、可解释并且适用于所需的业务环境。

而且,我们可以界定和提炼出更多、更好的可用于机器学习的特征变量。毕竟数据集最初的特征可能并不能达到我们预期的目的。因此,一旦我们深入理解了数据集,也就不得不回到数据加工这一步,评估缺失值和异常值的处理是否得当,评估新提炼的特征是否有效,等等。

坊间不有这么一句话么?数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。如果整体数据的质量不好,特征不优,那你也就别想要得到一个理想结果了。而试探性数据分析恰好就能解决这类问题。

既然EDA如此重要,我们应该怎样进行EDA呢?

怎样进行EDA?

一般说来,使用EDA理解数据的方法有两大类:一类是非图形的或图形的;另一类是单变量或是多变量的。

非图形的分析方法主要包含汇总统计计算,也称描述统计;而图形类方法则主要用图表、图形来汇总数据,俗称可视化统计。

除此之外,还有两种常用的方法:

1. 降维。是指在某种限定条件下,降低随机变量个数,得到一组“不相关”主变量的过程。
2. 聚类分析。它是把相似变量通过静态分类方法,分成不同组别或者更多的子集的分析过程。

但回过头来,我们做好了EDA,提炼了更有用的特征,就能提升模型的准确率了吗?尽管大概率如此。这还是不够的。因为影响模型准确率的,不仅仅是特征,还有这几个方面:

1. 数据量。不用多说,数据量越大,你能预测的结果也就越加准确。

2. 缺失值与异常值的处理。针对缺失值,我们可以用均值、中位数、众数等方式来填补,也可以搭建算法预测缺失值,甚至可以直接删掉。而对于异常值,除了用处理缺失值那套方法之外,还可以转换、合并或者分别处理。

3. 特征工程。即从现有数据中提取更多信息,再经过分析提炼出新特征。比如说我们要根据交易日期来预测店铺成交量,可能从日期中很难得到答案。但同时,有了日期,也就等于说知道了每月和每周的情况,这就是一个隐含的特征。

4. 特征选择。找到最好属性子集的过程,以便更好解释自变量与目标变量的关系。

5. 多种算法组合。选择正确的机器学习算法是实现模型高精度的理想方法,但由于选择的过程是很难的,它需要你有大量的实战经验。因此,我们通常会用多个算法进行对比选择。

6. 算法优调。也被称为调参。因为算法是由参数控制的,因此更优的参数值通常能带来更准确的预测结果。

7. 集成方法。即融合多个弱模型来得到更好的结果。

8. 交叉验证。即我们在训练模型之前,将数据集切割成多个子集(一般为两个)。先在一个子集上做训练分析,而后用其他子集做后续对比分析的确认及验证。

换句话说,虽然经过深入理解数据,我们挖掘出了一些有效特征,能帮助我们在提升模型准确度方面跨了一大步。但是对完美来说,仍然还是有很多可提升的地方。比如说算法,比如说数据量。

但如果我们已经竭力做了自己该做的,模型准确度也是没有提升太多,其实也不用在意了。因为那很可能就是数据集本身的问题了,不是你的可控范围。毕竟你已经在自己的可控领域,做到了让自己不遗憾了。

当然,如果你想要了解到更多关于大数据的有趣事件,或是数据分析师入门与进阶的相关讯息,欢迎轻戳文末二维码。


参考资料
1. InData Labs, Exploratory Data Analysis: the Best way to Start a Data Science Project.
2. Jean-leah Njoroge PhD, Significance of Exploratory Data Analysis (EDA).
3. KGzhang, 8中提升模型精度的方法。

weixin.qq.com/r/ADhaQob (二维码自动识别)

深圳SEO优化公司铁岭网页制作哪家好南通英文网站建设报价张家口关键词按天扣费杭州网站开发推荐莆田企业网站制作推荐廊坊百度关键词包年推广公司沈阳模板推广推荐邯郸如何制作网站推荐鄂州网站优化按天扣费公司张家界模板推广海西百度竞价公司榆林关键词按天扣费公司通辽设计网站多少钱哈密阿里店铺托管推荐南山网站改版哪家好兴安盟百度竞价哪家好宿州企业网站制作报价昌吉网站优化排名公司淮北网站优化软件报价临猗seo排名公司营口百度关键词包年推广延安网站优化排名推荐永新外贸网站建设吉安模板网站建设张家口网站优化按天收费公司延边百度seo报价坑梓企业网站建设福田网站建设哪家好揭阳百度关键词包年推广推荐甘孜百度爱采购多少钱歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化