最近遇到知识点总结
最近实习做项目的时候遇到了一些很多细碎的知识点,总结一下。
1 调参方法
之前面试也被问过:你知道的调参方法有哪些啊?
- 记得当时自己的回答就只有网格调参。但其实之前参加一个风控沙龙,听说过贝叶斯调参,附上文章链接:贝叶斯调参1- https://mp.weixin.qq.com/s/wHtiZlzHENCcLXosOA3Xbw ; 贝叶斯调参2 - https://mp.weixin.qq.com/s/H6vprWzsZdGmoZQgrQUt6Q
- 但最近项目中自己就用到了另外的调参方式。
总的来说,调参方式有下面三种:
- 网格搜索。对应sklearn中的GridSearchCV
- 随机搜索。对应sklearn中的RandomizedSearchCV
- 贝叶斯调参。见上面两个链接。
参考资料:
- https://blog.csdn.net/juezhanangle/article/details/80051256
- https://blog.csdn.net/qq_36810398/article/details/86699842
- https://blog.csdn.net/gzj533/article/details/77734310
- https://blog.csdn.net/luanpeng825485697/article/details/79831703
2 样本不平衡问题的处理方式
2.1 场景
最近刚好做的项目是一个二分类问题,全量数据中正负样本比超过了5:1,一般认为超过4:1则是样本不平衡,因此需要进行处理。
2.2 对训练集还是测试集用?还是全量用?
仅针对训练集进行样本不平衡问题的处理,测试集不用动,使用平衡后的训练集来训练模型,然后喂给测试集即可。
2.3 处理方法有哪些?
根据周志华老师的西瓜书上描述,大概有两种方法:
- 过采样。增加少类样本。典型算法是SMOTE算法
- 欠采样。减小多类样本。典型算法是EasyEnsemble算法。
详细的介绍参考以下博文:
- https://blog.csdn.net/qq_27802435/article/details/81201357#commentBox
- https://blog.csdn.net/heyongluoyao8/article/details/49408131
3 SQL的相关问题
3.1 缺失值的处理
今天做特征工程用SQL提数的时候,需要计算一个指标,最大值/平均值,这时候遇到了一个问题,如果平均值为0的时候,返回结果就是NaN,当然,后续我们在Python本地去做完全没有问题,自己之前有个博客就总结过缺失值的处理方式:Python处理缺失数据
但如果用SQL怎么处理呢?有如下几个函数可以处理:即如果为缺失值 可以赋一个值。
- ISNULL()
- NVL()
- COALESCE()
- IFNULL()
具体用法见下面SQL:
COALESCE(max(session_count)/avg(session_count),0) h_m_w2_session_count
参考资料见:
3.2 遇到的坑
- 后面的表如果字段要用到,记得在最前面的时候写上,全部用就是 .*
- 多层left join的时候,要选择合适的主表
- 确认数据的对应性
4 Python
4.1 一个贼牛逼的三方库
今天刚用的,很好用,pandas_profiling!生成动态交互的数据探索报告
参考:其实也就是一两行代码
https://mp.weixin.qq.com/s/gJC3DDXOnwCAZHcLp2oYFQ
4.2 小技巧
数据预处理清洗完毕后,使用一个函数封装一下,能节省不少时间。
5 机器学习
5.1 模型融合方法
多模型做完之后,希望能融合多模型结果。大概有三种方法:
- 分类问题:Voting
- 回归问题:Averaging
- Stacking方法。
前两种都比较好理解,就是最后一种Stacking 没怎么看懂!
参考资料:
- https://blog.csdn.net/willduan1/article/details/73618677
- https://zhuanlan.zhihu.com/p/25836678
- https://blog.csdn.net/qq_18916311/article/details/78557722
5.2 评价指标
分类问题的模型做完之后,需要进行评价,而且不同的业务问题对应的评价方式应该是不一样的,因为侧重点不同,所以需要从多种评价指标中选择你所需要的。
参考资料:
- https://blog.csdn.net/login_sonata/article/details/54288653
- https://scikit-learn.org/stable/modules/generated/sklearn.metrics.classification_report.html
暂时这么多,后面继续补充扩展!加油!