模型选择
1 模型的错误类型 :
欠拟合(过度简化了要解决的问题 又称为高偏差模型) 和 过拟合(过度复杂化了要解决的问题,在验证集上表现好,测试集上表现不好 只是记住了数据,而非学习了数据特征 又称为高方差模型)
2 交叉验证
黄金法则 : 永远不能将测试数据用于训练
3 交叉验证集
训练集用于训练参数 交叉验证集用于对模型做出决定,例如多项式的次数
4 K折交叉验证
循环利用数据
将数据分为K个包 将模型培训K次 每次将不同的包作为测试集 剩下的 为训练集 然后求结果的 平均值 ,来得最终模型
from sklearn.model_selection import KFold
创建一个KFold 对象
kf = KFold(12,3,shuffle = True ) 参数 为 数据的大小 和 测试集数据的大小 ,初始化KFold 对象 时 将 shuffle 参数 设为 true 即可
for train_indices, test_indices in kf: print train_indices , test_indeices
5 学习曲线
通过学习曲线判断 过拟合 欠拟合 ,合适
6 网格搜索 评估并选出合适的参数 (不是很懂!!!!!)
sklearn 中的网格搜索
以SVC为例
参数 : kernel : poly 和 rbf
C: 0.1 1 10
1 导入 GridSearchCV
from sklearn.model_selection import GridSearchCV
2 选择参数
parameters = {'kernel ':[poly','rbf'], 'C':[0.1,1,10]}
3 创建 一个评分机制
from sklearn.metrics import make_scorer
form sklearn.metrics import f1_score
scorer = make_scorer(f1_score)
4 使用参数和评分机制创建 一个 GridSearch 对象 。使用此对象 与数据保存一种(fit the data)
grid_obj = GridSearchCV(clf,parameters,scoring = scorer)
grid_fit = gird_obj.fit(X,y)
5 获得 最佳 估算器
best_clf = grid_fit.best_estimator_
网友评论