当前位置: 首页 > news >正文

机器学习——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

相关文章:

  • 【用 Trace读源码】PlanAgent 执行流程
  • AMD公司
  • 附——教6
  • Windows faster whisper GUI-v0.8.5-开源版[AI支持超过100种语言的人声分离/声音转文本字幕]
  • 【Java篇】静动交融,内外有别:从静态方法到内部类的深度解析
  • STM32复位
  • 小米AX6000上安装tailscale
  • 【机器学习】机器学习工程实战-第2章 项目开始前
  • Lineageos 22.1(Android 15)制定应用强制横屏
  • Redis Cluster 详解
  • 维普AIGC降重方法有哪些?
  • 查找重复代码[A卷-hw_od]
  • 冒排排序相关
  • dubbo版本与分组
  • 大模型-提示词链
  • 【前端工程化】
  • 【嵌入式学习2】C语言 - VScode环境搭建
  • UE AI 模型自动生成导入场景中
  • 安装过程中,如何防止丝杆推入支撑座时损坏油封?
  • 【算法工程】大模型开发之windows环境的各种安装
  • 张文宏团队公布广谱抗猴痘药物研发进展,将进入临床审批阶段
  • 研讨会丨明清区域史研究的比较与对话
  • 乌代表团与美特使在伦敦举行会谈,双方同意继续对话
  • 从“龙队”到“龙副主席”,国乒这批退役球员为何不当教练了
  • 灰鹦鹉爆粗口三年未改?云南野生动物园:在持续引导
  • “电化长江”的宜昌成果:船舶航运停靠都能用电,助力一江清水向东流