开个系列《刷B站学数分》,总结整理B站上优质的数据分析资源~
0 参考资料
1 数据分析项目流程
1.1 明确项目背景和需求
- 常见误区:一拿到项目就想着怎么建模,而未明确实际需求是什么,这样容易“做着做着不知道自己在做什么”
- 明确实际需求,后续环节都按照主线走
1.2 数据集摸底(EDA)
- 常用python可视化工具
- 数据集多大、多少变量,结合项目背景看变量含义
- 数据分布,eg 分类型变量 有多少取值、占多少比例;eg 时间变量 是否有趋势
- 明确预测标的,eg 是离散 or 连续变量,决定后续模型选择分类 or 回归
1.3 数据清洗
(1)挑选搭建模型会使用到的有效变量,组建新的数据集
- 只是初步筛选,后续建模时候还会剔除变量,或进行特征工程构造新变量
- 这步主要基于已有知识判断,eg 贷款预测 挑选购房信息,而微信步数可能就是无关变量
(2)缺失值处理
- 本身数据量大:可用dropna函数把所有缺失值清理掉
- 本身数据量不大:用fillna函数进行填充
-
-
(3)异常值处理
- 如何定义异常值?
-
- IQR定义:异常值通常被定义为小于QL-1.5IQR或大于QU+1.5IQR的值
-
-
- 实际工作中,1/4和3/4以外的数据都可以归为异常值,之间这一段都属于正常数值
-
1.4 模型搭建
(1)数据集划分
- 划分训练集、测试集
- 划分比例:训练集vs测试集 = 8:2 或7:3
- 常用函数:sklearn中 train_test_split()
(2)模型选择
- 根据目的选择合适的模型,eg 分类 or 回归
- 不用太纠结模型方法,都可以尝试使用,最终决定模型精度的更在于变量的选择、参数的调整
(3)模型拟合
(4)模型预测
(5)模型评估
- 分类型预测
-
- 常用混淆矩阵confusion matrix,判断precision、recall、f1-score
-
- 回归
常用平均绝对误差 MAE(mean absolute error)
(6)超参数调整
- 调参,进一步提高模型准确性
- 根据具体的算法,调参
-
- eg 随机森林:选择多少决策树、每个决策树节点数量、每棵树的最大深度……
1.5 回到项目进行发散
- 数据分析画龙点睛之笔,发散后的结论才是面试官感兴趣的结论
- 技巧:一直反问自己“然后呢?”,直到问不出问题
通过不断反问,输出基于预测结果,而对实际场景产生帮助的有价值的结论 - 把观点放到简历上,就能体现出是有价值的项目
- eg 贷款申请数据分析项目
-
- 我最后预测出了每个user id所对应的违约概率是多少,预测模型的精度达到85%,auc值达到0.87。
-
-
- 然后我发现,违约概率比较高的人,学历普遍低;他们在月收入水平上有一定分布,可以按照月收入水平进行一定程度的分类
-
-
- 然后我还发现,贷款违约率比较高的人,他们的app安装列表中比较多出现像和“借”、“贷”、“融”、“花”等金融类有关的app;他们的出行app也比贷款违约率低的那一批用户更多
2 脑图总结
PS 红色字体为个人重难点
|