模型的选择与调优:
主要方法:1.交叉验证
2.网格搜索
交叉选择和网格搜索的结合是为了能够寻找一个合适的超参数。
交叉验证:
数据分为:训练集与测试集。现在我们撇开测试集,只是对训练集进行操作,将训练集分为训练集与验证集。
网格搜索:
调参数 K-近邻的超参数K值的选择。
通常情况下,有很多参数是需要手动指定的(如k-近邻算法中的K值),
这种叫超参数。但是手动过程繁杂,所以需要对模型预设几种超参数组
合。每组超参数都采用交叉验证来进行评估。最后选出最优参数组合建
立模型。
API:
sklearn.model_selection.
GridSearchCV
API解释:
sklearn.model_selection.GridSearchCV
(
estimator,
param_grid
=
None
,
cv
=None
)
对估计器的指定参数值进行详尽搜索
estimator
:估计器对象,也就是需要参数的实例化对象
param_grid
:估计器参数
(
dict
){“
n_neighbors
”:[1,3,5]}。需要用字典格式,可提前编辑好!!!
cv
:指定几折交叉验证
fit
:输入训练数据
score
:准确率
结果分析:
best_score
_:
在交叉验证中测试的最好结果
best_estimator
_
:最好的参数
模型
cv_results
_:
每次交叉验证后的测试集准确率结果和训练集
准确率
结果
算法:
"""
# 进行算法流程
knn = KNeighborsClassifier(n_neighbors=5)
# fit, predict, ````
knn.fit(train_x, train_y)
# 得出预测结果
y_predict = knn.predict(test_x)
print("预测结果", y_predict)
# 预测准确率
print("准确率:", knn.score(test_x, test_y))
"""
# K值选择
dict = {"n_neighbors": [1,2,3,5,10]}
# 进行算法流程交叉验证和网格搜索进行K值的选择
knn = KNeighborsClassifier()
gv = GridSearchCV(knn, param_grid=dict, cv= 10)
# fit, predict, ````
gv.fit(train_x, train_y)
# 得出预测结果
y_predict = gv.predict(test_x)
print("预测结果", y_predict)
# 预测准确率
print("准确率:", gv.score(test_x, test_y))