scikit-learn中有非常多的曲线,对于调参非常有用处,我经常用到的曲线是学习曲线,验证曲线以及交叉验证曲线。
使用这些曲线的代码格式非常固定:
返回值 = 曲线名字(模型对象,X, Y, 交叉验证数量,评分标准.....)
它们只是返回值不同以及其中设置的参数略有不同。
学习曲线:(learning curve)这条曲线的主要作用是观察数据集的大小对于模型性能的影响。
使用代码如下:
train_sizes, train_scores, valid_scores = learning_curve(SVC(kernel='linear'), X, y, train_sizes=[50, 80, 110], cv=5,scoring='r2')其中train_sizes=[50, 80, 110]的意思是选择50个、80个、110个样本数据,还可以[0.1,0.2,1.0]这样设置,这就是按照比例来分割数据的意思。
验证曲线:(validation curve)这条曲线的用处主要是观察超参数对模型带来的影响,为模型选择合适的超参数。
使用代码如下:
sklearn.learning_curve.validation_curve(estimator, X, y, param_name, param_range, cv=None, scoring=None, n_jobs=1, pre_dispatch='all', verbose=0)
train_scores, valid_scores = validation_curve(Ridge(), X, y, "超参数的名称", np.logspace(-7, 3, 3)) 交叉验证曲线 (cross_val_score)
from sklearn.cross_validation import cross_val_score
以上是调节模型参数的三种曲线,使用非常方便。