2018-11-24机器学习第三天

2018-11-24  本文已影响0人  hannah1123

模型选择

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_

上一篇下一篇

猜你喜欢

热点阅读