机器学习 分类模型的评估

本文探讨了分类模型的评估,重点是精确率和召回率的概念,以及它们在混淆矩阵中的作用。同时介绍了评估标准,如F1-score。还详细讲解了交叉验证和网格搜索在k-近邻算法调优中的应用,以提高模型的准确性和可信度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分类模型的评估

精确率(Precision)召回率(Recall)

estimator.score()

  • 一般最常见使用的时精确率,即预测结果正确的百分比

混淆矩阵
在分类任务下,预测结果与正确标记之间存在四种不同的组合,构成混淆矩阵(适用于多分类)

在这里插入图片描述

在这里插入图片描述
猫:混淆矩阵
狗:混淆矩阵

评估标准:准确率:精确率和召回率。

精确率:
预测结果为正例样本中真实为正例的比例(查的准)
在这里插入图片描述

召回率:
真实为正例的样本中预测结果为正例的比例(查的对,对正样本的区分能力)

在这里插入图片描述

其他的分类标准,F1-score,反映了模型的稳健性
在这里插入图片描述

分类模型评估API

  • sklearn.metrics.classfication_report

sklearn.metrics.classfication_report(t_true,y_target,target_names=None)

  • y_true: 真实目标值
  • y_pred: 估计器预测目标值
  • target_names: 目标类别名称
  • return: 买个类别精确率与召回率

交叉验证和网格搜索对k-近邻算法调优

交叉验证:为了让被评估的模型更加准确可信。

交叉验证:所有数据分成n等分,将拿到的训练数据,分成训练和验证集。

(4折交叉验证)
在这里插入图片描述

把这四个准确率求平均值模型结果。

网格搜索(超参数搜索):调参数 K-近邻

通常情况下,有很多参数是需要手动指定的(如K-近邻算法中的K值),这种叫超参数。但是手动过程繁杂,所以需要对模型预设几种超参数组合。每组超参数都采用交叉验证来进行评估。最后选出最优参数组合建立模型。

在这里插入图片描述
要是有两组数据,就两两组合。
在这里插入图片描述

超参数搜索-网格搜索API

  • sklearn.model_selection.GridSearchCV

在这里插入图片描述
在这里插入图片描述

源代码:

from sklearn.model_selection import GridSearchCV

def 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 None
if __name__=="__main":
    knncls()

结果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黎明之道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值