sklearn.model_selection

一、交叉验证

1.from sklearn.model_selection import train_test_split

该功能可以快速将数据随机分为训练集和测试集

#官方示例,使用鸢尾花的数据集
import numpy as np
from sklearn.datasets  import load_iris
from sklearn import svm #支持向量机
from sklearn.model_selection import train_test_split

x,y=load_iris(return_X_y=True)
x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.4,random_state=0)
x_train.shape,y_train.shape
clf=svm.SVC(kernel='linear',C=1).fit(x_train,y_train)
clf.score(x_test,y_test)

2.from sklearn.model_selection import cross_val_score

交叉验证的方法

#拟合模型并连续5次计算分数(每次都有不同的分割)
from sklearn.model_selection import cross_val_score
clf=svm.SVC(kernel='linear',C=1)
scores=cross_val_score(clf,x,y,cv=5)
scores # array([0.96666667, 1.        , 0.96666667, 0.96666667, 1.        ])

平均得分和得分估计值的95%置信区间由下式给出:

print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2)) #Accuracy: 0.98 (+/- 0.03)

交叉验证过程:

即是将数据集分为n份,n-1份为训练集,1份为测试集,这样循环计算n次,最后将n次结果求平均值

3.from sklearn.model_selection import GridSearchCV 网格搜索

sklearn.model_selection.GridSearchCV(estimator, param_grid, scoring=None, fit_params=None, n_jobs=1, iid=True, refit=True, cv=None, verbose=0, pre_dispatch=‘2*n_jobs’, error_score=’raise’, return_train_score=’warn’)

参数:

1.estimator:可认为是模型

2.param_grid :指定参数

属性:

1.cv_results_:交叉验证结果

2.best_estimator_:最佳模型

3.best_score_:最佳模型的分数

4.best_params_ :最佳参数设置

5.scorer_:分数

6.利用最佳模型来进行预测:

best_model=grid.best_estimator_

predict_y=best_model.predict(Test_X)

metrics.f1_score(y, predict_y)

原文地址:https://www.cnblogs.com/cgmcoding/p/13274112.html