机器学习——KNN模型评价

一、主要函数

sklearn.metrics.accuracy_score() 是 scikit-learn 中用于计算分类模型准确率的函数,适用于评估分类任务的整体性能。

1、核心功能

  • 作用:计算模型预测的准确率,即正确分类的样本数占总样本数的比例。
  • 公式:Accuracy=TP + TN/TP + TN + FP + FNTP + TN
  • ​其中,TP(True Positive)、TN(True Negative)为正确分类的正负样本,FP(False Positive)、FN(False Negative)为错误分类的样本。

2、参数解析

accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)
  • y_true:真实标签数组(必填)。
  • y_pred:模型预测的标签数组(必填)。
  • normalize(默认 True):
    • True:返回正确分类的比例(如 0.8)。
    • False:返回正确分类的样本数(如 4)。
  • sample_weight:样本权重数组,用于对不同样本赋予不同重要性(如处理类别不平衡问题)

3、应用场景与局限性

  1. 适用场景
    • 类别分布均衡时,能较好反映模型整体性能。
    • 快速评估模型基线效果(如对比不同算法的初步结果)。
  2. 局限性
    • 类别不平衡时误导性高:例如 99% 的样本为负类,模型全预测负类时准确率仍为 99%,但实际性能差。
    • 需结合其他指标:推荐同时使用召回率(recall_score)、精确率(precision_score)或 F1 值(f1_score)综合评估。

4、扩展说明

  • 与 model.score() 的关系model.score(X_test, y_test) 默认调用 accuracy_score,两者等价。
  • 多标签任务:若需处理多标签分类,需结合 average 参数(如 micromacro)调整计算方式

二、筛选超参数

import numpy as np
from sklearn.datasets import  load_iris
 
#加载鸢尾花数据集
iris=load_iris() 
x=iris.data #数据集
y=iris.target #标签集
 
#划分数据集
from sklearn.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x,y,train_size=0.8,random_state=666)
 
#预测数据集
from sklearn.neighbors import KNeighborsClassifier #KNN均值分类函数
knn_classifier = KNeighborsClassifier(n_neighbors=5)
 
#数据适配
knn_classifier.fit(x_train, y_train)
 
#结果预测
y_predict = knn_classifier.predict(x_test) 
print(y_predict)#结果:array([1, 2, 1, 2, 0, 1, 1, 2, 1, 1, 1, 0, 0, 0, 2, 1, 0, 2, 2, 2, 1, 0,2, 0, 1, 1, 0, 1, 2, 2])

#模型评价(手动算)
accutacy = np.sum(y_predict == y_test) / len(y_test)
print(accutacy ) #结果:1.0
 
#模型评价(使用sklearn.metrics.accuracy_score函数)
from sklearn.metrics import accuracy_score
accuracy_score(y_test,y_predict) #结果:1.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

练习AI两年半

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

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

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

打赏作者

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

抵扣说明:

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

余额充值