機器學習——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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/74203.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/74203.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/74203.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

美國國家數據浮標中心(NDBC)

No.大劍師精品GIS教程推薦0地圖渲染基礎- 【WebGL 教程】 - 【Canvas 教程】 - 【SVG 教程】 1Openlayers 【入門教程】 - 【源代碼示例 300】 2Leaflet 【入門教程】 - 【源代碼圖文示例 150】 3MapboxGL【入門教程】 - 【源代碼圖文示例150】 4Cesium 【入門教程】…

Qt調用Miniconda的python方法

1、 Win 64環境下載及安裝 Miniconda 首先下載Windows 版Miniconda,https://docs.conda.io/en/latest/miniconda.html或 https://repo.anaconda.com/miniconda/ 安裝界面及選擇如下圖所示: 安裝完python3.12版報錯如下。 說明:python3.11版…

Unity 與 JavaScript 的通信交互:實現跨平臺的雙向通信

前言 在現代游戲開發和 Web 應用中,Unity 和 JavaScript 的結合越來越常見。Unity 是一個強大的跨平臺游戲引擎,而 JavaScript 是 Web 開發的核心技術之一。通過 Unity 和 JavaScript 的通信交互,開發者可以實現從 Unity 到 Web 頁面的功能擴…

汽車免拆診斷案例 | 2024 款路虎發現運動版車無法正常識別智能鑰匙

故障現象  一輛2024款路虎發現運動版車,搭載2.0 L發動機,累計行駛里程約為5 000 km。車主反映,使用遙控器無法解鎖車門,隨后使用機械鑰匙打開車門,踩下制動踏板,按壓起動按鈕,儀表盤提示“將智…

跟著StatQuest學知識06-CNN進行圖像分類

目錄 一、CNN特點 二、CNN應用于圖像分類 (一)使用過濾器 (二)通過ReLU激活函數 (三)應用新的濾波器(池化) (四)輸入 (五)輸出…

OpenHarmony 開源鴻蒙北向開發——linux使用make交叉編譯第三方庫

這幾天搞鴻蒙,需要編譯一些第三方庫到鴻蒙系統使用。 頭疼死了,搞了一個多星期總算搞定了。 開貼記坑。 一、SDK下載 1.下載 在linux下使用命令 wget https://cidownload.openharmony.cn/version/Master_Version/OpenHarmony_5.1.0.54/20250313_02…

Selenium Web UI自動化測試:從入門到實戰

引言 在當今快速迭代的軟件開發周期中,自動化測試已成為保障產品質量、提升測試效率的核心手段之一。而針對Web應用的UI自動化測試,Selenium作為最流行的開源工具之一,憑借其跨瀏覽器、多語言支持(Python、Java、C#等&#xff09…

Java 大視界 -- Java 大數據中的數據隱私保護技術在多方數據協作中的應用(147)

💖親愛的朋友們,熱烈歡迎來到 青云交的博客!能與諸位在此相逢,我倍感榮幸。在這飛速更迭的時代,我們都渴望一方心靈凈土,而 我的博客 正是這樣溫暖的所在。這里為你呈上趣味與實用兼具的知識,也…

編程考古-安德斯·海爾斯伯格(Anders Hejlsberg)回答離開Borland的原因

安德斯海爾斯伯格(Anders Hejlsberg)是著名的編程語言和工具開發者,曾主導開發了 Turbo Pascal、Delphi(Borland 時期),以及加入微軟后參與的 C# 和 TypeScript。關于他離開 Borland 的原因,可以…

西門子仿真實例位置

C:\Users\san\Documents\Siemens\Simatic\Simulation\Runtime\Persistence S7-PLCSIM Advanced V3.0 可以打開文件,刪除重建

【數據庫系統原理】Ch7 數據庫應用設計與開發實例

目錄 大綱7.1 需求描述與分析7.2 系統設計7.3 系統實現7.4 系統測試與維護 習題真題2024-102024-042023-102023-042022-10 大綱 7.1 需求描述與分析 熟悉需求描述與分析的方法,達到"領會"層次。 7.2 系統設計 熟悉根據需求的描述劃分系統的功能模塊,能夠進行初步…

使用 Python 的turtle庫繪制精美圖形

在 Python 編程的世界里,turtle庫是一個非常有趣且實用的工具,它為初學者和有經驗的開發者提供了一個簡單而直觀的方式來進行圖形繪制。本文將詳細講解如何使用turtle庫繪制不同的圖形,包括六邊形、一個特定的多邊形,以及一個由線…

基于linux平臺的C語言入門教程(5)基本數據類型

文章目錄 1. 什么是數據類型?2. C 語言的基本數據類型3. 數據類型的存儲大小4. 示例代碼代碼解析:輸出結果: 5. 常見問題問題 1:float 和 double 的區別是什么?問題 2:unsigned 類型可以存儲負數嗎&#xf…

Bellman_ford 算法——解決負權邊最短路徑問題

卡碼網:94. 城市間貨物運輸 I 94. 城市間貨物運輸 I 題目描述 某國為促進城市間經濟交流,決定對貨物運輸提供補貼。共有 n 個編號為 1 到 n 的城市,通過道路網絡連接,網絡中的道路僅允許從某個城市單向通行到另一個城市,不能反向通行。 網絡中的道路都有各自的運輸成本…

mysql——第二課

學生表 CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT,name varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,sex varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,age int(11) DEFAULT NULL,c_id int(10) DEFAULT NULL,PRIMARY KEY (id),KEY c_id (c_id),CONSTR…

圖解 ThreadLocal

在 Java 多線程編程的世界里,ThreadLocal 是一個非常實用的工具,它為每個線程提供了獨立的變量副本,避免了多線程環境下的變量共享問題。今天,我們就從內存視角出發,通過一張圖來深入理解 ThreadLocal 的工作原理&…

Sql Server 索引性能優化 分析以及分表

定位需優化語句 根據工具 skywking 或者開啟慢查詢日志 找到 慢sql 的語句根據 執行過程 來 判斷 慢的原因 row filter 指標 看查了多少數據 比例多少 type 看下是單表 還是 join聯表 比如 執行步驟多 沒索引 優化方向 減少執行次數索引 沒索引考慮加索引 加索引 盡量選擇 i…

@JsonSerialize注解

1.簡介 JsonSerialize注解可以自定義改變返回前端的內容,比如:將Student實體類的age字段的值在返回前端之前,由20改為21. 要用到jackson-databind依賴包,在Spring Boot項目中,默認已經集成了Jackson,因此你不需要手動引入Jackson庫。 2.上例子 將Stud…

Java面試黃金寶典5

1. ConcurrentHashMap 和 HashTable 有哪些區別 原理 HashTable:它繼承自 Dictionary 類,是 Java 早期提供的線程安全哈希表。其線程安全的實現方式是對每個方法都使用 synchronized 關鍵字進行同步。例如,在調用 put、get 等方法時&#xff…

vim的一般操作(分屏操作) 和 Makefile 和 gdb

目錄 一. vim的基本概念 二. vim基礎操作 2.1 插入模式 aio 2.2 [插入模式]切換至[正常模式] Esc 2.3[正常模式]切換至[末行模式] shift ; 2.4 替換模式 Shift R 2.5 視圖(可視)模式 (可以快速 刪除//注釋 或者 增加//注釋) ctrl v 三&…