误差原因
模型预测中,模型可能出现的误差来自两个主要来源:
- 因模型无法表示基本数据的复杂度而造成的偏差(bias)
数据足够,模型不够复杂(过度简化),欠拟合
- 因模型对训练它所用的有限数据过度敏感而造成的方差(variance)。
预测结果对于任何给定的测试样本会出现多大的变化
对训练集高度敏感——过拟合(overfitting)
- 可通过更多的数据进行训练,以降低模型预测结果的方差并提高精度。
- 如果没有更多的数据可以用于训练,还可以通过限制模型的复杂度来降低方差。
学习曲线
可以利用sklearn中的学习曲线来辨别模型表现的好坏。
引入模块:
from sklearn.model_selection import learning_curve
文档中一个合理的实现:
learning_curve(
estimator, X, y, cv=cv, n_jobs=n_jobs, train_sizes=train_sizes)
estimator
是我们正在用来预测的模型,例如它可以是GaussianNB()
X
和y
是特征和目标cv
是交叉验证生成器,例如KFold()
'n_jobs'
是平行运算的参数train_sizes
是多少数量的训练数据用来生成曲线
偏差、方差和特征数量
特征数较少(如:十个特征中的一两个特征)时会导致:high bias(高偏差)