一、交叉验证
目的:为了让被评估的模型更加准确可信 做法:所有数据分成n份,其中一份作为验证集,其他份作为训练集。经过n次的数据轮换测试,得到n组模型的结果,取平均值作为最终结果,称为n折交叉验证。 意义:使所有数据既有当训练集的机会,也有当验证集的机会。最后将求出平均值模型结果。 https://blog.csdn.net/qq_32419125/article/details/114212101
二、网格搜索
由于部分模型中有超参数,即需要手动指定的参数,而手动过程繁杂,所以我们对模型预设几种超参数组合,并使用网格搜索进行超参数寻优。每组超参数都采用交叉验证来进行评估,最后选出最优参数组合建立模型。 目的:寻找最优参数,也称为超参数调整 超参数:需要手动指定的参数 需要调整参数的模型:k近邻等具有超参数的模型
knn = KNeighborsClassifier()
param = {"n_neighbors": [3, 5, 10]}
gc = GridSearchCV(knn, param_grid=param, cv=2)
gc.fit(x_train, y_train)
print("在测试集上准确率:", gc.score(x_test, y_test))
print("在交叉验证当中最好的结果:", gc.best_score_)
print("选择最好的模型是:", gc.best_estimator_)
print("每个超参数每次交叉验证的结果:", gc.cv_results_)
|