本文共 1230 字,大约阅读时间需要 4 分钟。
estimator.score()
混淆矩阵
在分类任务下,预测结果与正确标记之间存在四种不同的组合,构成混淆矩阵(适用于多分类) 猫:混淆矩阵 狗:混淆矩阵评估标准:准确率:精确率和召回率。
精确率:
预测结果为正例样本中真实为正例的比例(查的准)召回率:
真实为正例的样本中预测结果为正例的比例(查的对,对正样本的区分能力)其他的分类标准,F1-score,反映了模型的稳健性
sklearn.metrics.classfication_report
sklearn.metrics.classfication_report(t_true,y_target,target_names=None)
- y_true: 真实目标值
- y_pred: 估计器预测目标值
- target_names: 目标类别名称
- return: 买个类别精确率与召回率
交叉验证:所有数据分成n等分,将拿到的训练数据,分成训练和验证集。
(4折交叉验证)
把这四个准确率求平均值模型结果。
通常情况下,有很多参数是需要手动指定的(如K-近邻算法中的K值),这种叫超参数。但是手动过程繁杂,所以需要对模型预设几种超参数组合。每组超参数都采用交叉验证来进行评估。最后选出最优参数组合建立模型。
要是有两组数据,就两两组合。超参数搜索-网格搜索API
sklearn.model_selection.GridSearchCV
源代码:
from sklearn.model_selection import GridSearchCVdef knncls(): #进行算法流程 超参数 knn= KNeightborsClassifier(n_neighbors=) #构造一些参数的值进行搜索 param={ "n_neighbors":[3,5,10]} #进行网格搜索 gc=GridSearchCV(knn,param_grid=param,cy=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_) return Noneif __name__=="__main": knncls()
结果:
转载地址:http://gvcsi.baihongyu.com/