这里记录一些平时读到的数据相关的思考和总结,以便用到的时候方便查阅。
1. 机器学习到底需要多少数据
参考知乎文章《「机器学习」到底需要多少数据》
(1) 数据的粒度是否满足问题的需要。
(2) 考虑数据量和维度的关系,这里考虑维度灾难。
(3) 数据的重复性,包括样本之间的重复性和特征之间的重复性。
(4) 数据的有效性,两个看似关联的数据实际上没啥关系,所以千万不要简单的看相关性和绘图趋势,要从实际的业务上去思考。
(5) 数据量和模型选择,虽然sk-learn中有一个模型选择图,但是实际上我们还是需要经验和不断地尝试。
数据量很小,用朴素贝叶斯、逻辑回归或支持向量机
数据量适中或者较大,用树模型,优先 xgboost和lightgbm
数据量较大,尝试使用神经网络
2. 模型选择
没有免费的午餐理论告诉我们机器学习模型其实没有定式:具体问题具体分析。
奥卡姆剃刀原则告诉我们,满足预测性能的前提下,模型要尽量简单,以提高泛化能力。
现实中我们有很多学习算法可供选择,甚至同一学习算法的不同参数配置也会产生不同模型。如何进行模型选择或者使用哪种参数配置,这就是模型选择问题。
2.1 正则化
模型选择最典型的方法就是正则化,这是奥卡姆剃刀原则的一种实现方式。
L1 L2 正则化,L1 会有特征选择的作用优于L2。
2.2 交叉验证
最理想的解决方案:对候选模型的泛化误差进行评估,选择泛化误差最小的模型。
所以模型选择问题,就转化为模型评估问题。它是一个不断试错,不断调优的过程。
常用评估方法:
- 留出法
简单的分成训练集和测试集 - 交叉验证
k折划分,多次验证 - 自助法
重复采样
评估方法有了,那么涉及到不同模型的评估指标。评估指标很多,我想这个需要涉及到不同模型不同业务考虑采用不同的评估指标。后边将会写一篇文章,对评估指标做总结。