要想从事数据分析相关工作,要学的东西太多了,到底该怎么学? 学哪些?
随便看一个招聘介绍,感觉啥也没说。都不知道该掌握什么技能才能达到这个标准。
但是如果此时有位来自 JD 的资深工程师给出了一份入门指南:
- 数据科学的完整学习路线
- 数据清洗(真正项目中此部分费时费力)的实施主要步骤( 5 方面展开)
- 零基础掌握 Python 核心知识
- NumPy:1 个对象和 2 大机制使用总结
- Pandas:2 个对象和 20 个常用函数总结
- Matplotlib:提炼为 100 行代码
- 机器学习以最经典的线性回归为例,从理论,公式推导,到手写代码实现算法
- 实战与分享 1 门哈佛大学的数据科学开源课程
- 分享 2 个数据科学面试经历
你还会迷茫吗?而且只要 9.9,连一杯奶茶都买不到的价格就能获得数据分析师入门必备的技巧,你还会再去浪费时间百度吗?
本场 chat 总结:1 条数据分析的入门学习路线 + 1 个数据分析核心任务的实施步骤 + Python 语言核心用法总结 + 3 个科学包的工程使用提炼总结 + 机器学习入门 + 1 门名校数据分析课程分享实战 + 2 个面试经历分享
数据分析重头戏之数据整理
数据整理,英文名称 data munging,是指在获取到的原数据基础上,理解这些业务数据,整理清洗它们,作为接下来算法建模的输入数据。在文章刚开始,我们就提到过,这部分工作的重要性,绝不亚于算法模型,时间占比可能大于算法选择和设计环节。
理解你的业务数据
我们在拿到需要分析的数据后,千万不要急于立刻开始做回归、分类、聚类分析。
第一步应该是认真理解业务数据,可以试着理解去每个特征,观察每个特征,理解它们对结果的影响程度。
然后,慢慢研究多个特征组合后,它们对结果的影响。借助上个章节提到的,常用的统计学指标,比如四分位,绘制箱形图,可以帮助我们寻找样本的取值分布。
同时,可以借助另一个强大的可视化工具: seaborn ,绘制每个特征变量间的相关系数热图 heatmap,帮助我们更好的理解数据,如下图所示:
colormap = plt.cm.RdBu
plt.figure(figsize=(14,12))
sns.heatmap(train.astype(float).corr(),linewidths=0.1,vmax=1.0, square=True, cmap=colormap, linecolor='white', annot=True)
明确各个特征的类型
明确我们的数据类型,也是数据整理阶段的必备任务之一。
如果这些数据类型不是算法部分期望的数据类型,你还得想办法编码成想要的。比如常见的数据自增列 id 这类数据,是否有必要放到你的算法模型中,因为这类数字很可能被当作数字读入。
某些列的取值类型,虽然已经是数字了,它们的取值大小表示什么含义你也要仔细捉摸。因为,数字的相近相邻,并不一定代表另一种层面的相邻。
有些列是类别型变量(categorical variable),例如著名的 Kaggle 泰坦尼克生还预测比赛中,乘客上船地点 Embarked 这个变量就是类别型变量。如果给 Embarked 变量用 Embarked 编码为 1、2、3 ,这样编码是不合理的。
一般这种类型的编码方式有 one-hot 编码,dummy variable 两种方式。
找出异常数据
有时候我们的数据存在异常值,并且这种概率挺大的。这实际上会导致结果出现偏差。比如,统计中国家庭人均收入时,如果源数据里面,有王建林,马云等这种富豪,那么,人均收入的均值就会受到极大的影响,这个时候最好,绘制箱形图,看一看百分位数。
了解数据范围,设定最大值、最小值限度是很非常重要的。
不得不面对缺失值
现实生产环境中,拿到的数据恰好完整无损、没有任何缺失数据的概率,和买彩票中将的概率差不多。
数据缺失的原因太多了,业务系统版本迭代, 之前的某些字段不再使用了,自然它们的取值就变为 null 了;再或者,压根某些数据字段在抽样周期里,就是没有写入数据…
处理缺失数据,最好弄明白它们为什么缺失了,比如,像上面说道的,如果是在抽样周期里,这些字段取值缺失了,那么可以咨询业务人员,这些字段大概率会取得哪些值。
接下来,填充缺失数据,比如均值填充,或者,为缺失的数据创建一类特殊值。
极端情况下,如果发现模型的效果受此字段影响较大,发现彻底删除此字段效果更好,那完全剔除可能是不错的选择。不过这样做也有风险,可能为模型带来更大的偏差。
…
全文字数有 3 万+,赶紧扫描二维码学习吧。