機器學習(3):KNN算法-分類

一、KNN算法?

?K-近鄰算法(K-Nearest Neighbors,簡稱KNN),根據K個鄰居樣本的類別來判斷當前樣本的類別;如果一個樣本在特征空間中的k個最相似(最鄰近)樣本中的大多數屬于某個類別,則該類本也屬于這個類別。

一些距離:?

距離類型核心特點典型應用場景
歐式距離直線距離,直觀但受尺度影響圖像識別、聚類分析(需先標準化)
曼哈頓距離網格距離,計算快,抗異常值路徑規劃、高維數據分類
切比雪夫距離最大維度差異,關注極端值質量檢測、棋盤類問題
余弦距離方向相似度,忽略長度文本分類、推薦系統(如用戶興趣匹配)
馬氏距離考慮協方差,消除相關性和尺度異常檢測、金融風險評估
import joblib#用來保存模型
from sklearn.datasets import load_wine#加載紅酒數據集
from sklearn.model_selection import train_test_split#引入數據集劃分
from sklearn.neighbors import KNeighborsClassifier#KNN算法模型
from sklearn.preprocessing import StandScaler#標準化
import numpy as np#加載數據集
x,y = load_wine(return_X_y=True)
x_train,x_test,y_train,_y_test = train_test_split(x,y,test_size=0.2,random.state=42)#特征工程化——標準化
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)
#fit(x_train) 會計算訓練集的均值和標準差
# transform(x_train) 會用訓練集的均值和標準差對訓練數據標準化
# transform(x_test) 同樣用訓練集的均值和標準差對測試數據標準化#訓練
model = KNeighborsClassifier(n_neighbors=7)#查詢的近鄰數為7
model.fit(x_train,x_test)#預測
y_p = model.predict(x_test)print(model.score(x_test,y_test))#計算準確率#模型保存
joblib.dump(model,'../src/model/KNN.pkl')
joblib.dump(transfer,'../src/model/transfer.pkl')

我們用紅酒的數據集訓練好模型后并保存,可在其他地方引用這個模型來進行測試?

import joblib
model = joblib.load('../src/model/KNN.pkl')
transfer = joblib.load('../src/model/transfer.pkl')
x_new = [[5.1,3.5,1.4,0.2,1,2,3,4,5,6,7,8,9],[5.9,3.0,5.1,1.8,2,3,4,5,6,7,8,9,10],
]
x_new = transfer.transform(x_new)
y_predict = model.predict(x_new)

二、KNN算法的缺點:

1、對于大規模數據集,計算量大,因為需要計算測試樣本與所有訓練樣本的距離

2、對于高維數據,距離度量可能變得不那么有意義,數值很大相差不大。

3、需要選擇合適的k值和距離度量,這可能需要一些實驗和調整

三、API

class sklearn.neighbors.KNeighborsClassifier(n_neighbors=5, algorithm='auto')
參數: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
(1)n_neighbors:?
int, default=5, 默認情況下用于kneighbors查詢的近鄰數,就是K
(2)algorithm:
{‘auto’, ‘ball_tree’, ‘kd_tree’, ‘brute’}, default=’auto’。找到近鄰的方式,注意不是計算距離?? ??? ?的方式,與機器學習算法沒有什么關系,開發中請使用默認值'auto'
方法:
(1) fit(x, y)?
使用X作為訓練數據和y作為目標數據 ?
(2) predict(X)?? ?預測提供的數據,得到預測數據 ?

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

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

相關文章

Redis Windows遷移方案與測試

我想將開源軟件Redis的主程序和附屬程序遷移到Windows平臺,目前它只能在Linux上運行,讓它可以在Windows 11和Windows Server 2025上運行,這需要考慮Linux操作系統和Windows操作系統的差異,請列舉出將Redis在Linux系統上運行的GCC的…

信息安全概述--實驗總結

數據鏈路層--ARP欺騙ARP欺騙原理XP2要與XP3通信,要發送ARP請求,詢問XP3的MAC地址kali冒充XP3持續給XP2發送ARP應答,XP2會以為收到的MAC地址是XP3的,實際是kali的之后XP2發送的數據都是發給kali的如果說XP2需要想要訪問互聯網&…

【Electron】打包后圖標不變問題,圖標問題

windows上圖標未更換。圖標已經換了,但新打出的包或是安裝后的 exe 圖標沒有更換。這個時候可以右擊你的exe或是安裝包點屬性,看看圖標是否正常,如果這里的圖標正常,那其實就是成功的了。主要原因是因為 windows 圖標緩存機制導致…

單詞拆分 II

題目&#xff1a;思考&#xff1a; 本質上和單詞拆分1沒什么區別單詞拆分1是問能不能拆單詞拆分2是問把所有拆的方案列出來要列出所有方案&#xff0c;采用字典樹回溯 實現&#xff1a; class Node { public:vector<Node*> check;bool isEnd;Node(int num){for (int i0;i…

國產三防平板電腦是什么?三防平板推薦

國產三防平板電腦&#xff0c;專為應對極端工作環境而生。這類設備集防水、防塵、防摔三大防護性能于一體&#xff0c;通過IP67/IP68防護認證及MIL-STD-810軍規標準測試&#xff0c;能在建筑工地、油田勘探、應急救援等惡劣場景中穩定運行。其核心價值在于將消費級平板的智能體…

優思學院|什么是精益生產管理?原則與方法詳述

在企業經營中&#xff0c;「利潤&#xff1d;價格&#xff0d;成本」這條公式可謂家喻戶曉。傳統的成本思維通常認為價格由公司設定&#xff0c;而成本則是難以撼動的既定事實。然而&#xff0c;隨著市場經濟與自由定價機制的成熟&#xff0c;企業逐漸意識到——價格其實是由市…

【銀行測試】銀行票據項目業務+票據測試點分析(四)

目錄&#xff1a;導讀 前言一、Python編程入門到精通二、接口自動化項目實戰三、Web自動化項目實戰四、App自動化項目實戰五、一線大廠簡歷六、測試開發DevOps體系七、常用自動化測試工具八、JMeter性能測試九、總結&#xff08;尾部小驚喜&#xff09; 前言 1、提示付款 功能…

基于華為開發者空間的Open WebUI數據分析與可視化實戰

1 概述 1.1 案例介紹 本案例演示如何在華為開發者空間云主機上搭建Open WebUI環境&#xff0c;結合DeepSeek-R1模型進行數據分析、統計建模、數據可視化和業務洞察挖掘等實際數據科學任務。 1.2 適用對象 數據分析師業務分析師數據科學工程師市場研究人員統計學專業學生 1…

【HZ-T536開發板免費體驗】Cangjie Magic調用視覺語言大模型(VLM)真香,是不是可以沒有YOLO和OCR了?

目錄 引言 編寫視覺語言大模型&#xff08;VLM&#xff09;程序 交叉編譯Cangjie Magic到T536開發板 對cjpm.toml文件的修改 stdx庫的配置 拷貝libsecurec.so到cangjie的庫文件中 開始交叉編譯 部署到開發板 拷貝所需要的庫文件 安裝curl 運行程序 結束語 本文首發…

最長連續序列(每天刷力扣hot100系列)

目錄 題目介紹&#xff1a; 哈希表法&#xff1a; 復雜度分析&#xff1a; 思路分析&#xff1a; unordered_set 和 unordered_map的比較&#xff1a; 1. 核心區別 2. 使用場景 3. 在本題中的選擇 4. 性能對比 5. 成員函數差異 unordered_table.begin()函數是返回的鍵…

國標渠道研究:專業為渠道策略提供數據支持(渠道調研)

北京國標市場調查有限公司是一家專業的市場調查公司&#xff0c;&#xff08;線上問卷調查&#xff09;&#xff08;第三方市場咨詢&#xff09;&#xff08;消費者調查研究&#xff09;專注于為企業提供全方位的渠道研究服務。服務范圍包括渠道策略研究、渠道銷售數據分析和渠…

深入理解 C 語言中的拷貝函數

目錄1. C 語言中的主要拷貝函數2. strcpy&#xff1a;字符串拷貝函數簽名示例局限性3. strncpy&#xff1a;指定長度的字符串拷貝函數簽名示例局限性4. memcpy&#xff1a;通用內存拷貝函數簽名示例優勢局限性5. memmove&#xff1a;支持重疊內存拷貝函數簽名示例優勢局限性6. …

主數據變更流程

主數據&#xff08;如客戶、供應商、產品等&#xff09;的變更流程&#xff08;新增、更新、停用等&#xff09;是主數據管理&#xff08;MDM&#xff09;的核心環節&#xff0c;其設計需兼顧數據質量&#xff08;準確性、一致性&#xff09;、業務合規&#xff08;審批權限、審…

VUE2 學習筆記 合集

???????VUE2 學習筆記1 VUE特點、開發者工具、入門Demo-CSDN博客 VUE2 學習筆記2 數據綁定、數據代理、MVVM_vue2的數據綁定-CSDN博客 VUE2 學習筆記3 v-on、事件修飾符、鍵盤事件_vue2組件 點擊事件-CSDN博客 VU2 學習筆記4 計算屬性、監視屬性-CSDN博客 VUE2 學習…

【motion】HumanML3D 的安裝1:環境搭建

https://github.com/EricGuo5513/HumanML3D/issues/10 (base) root@k8s-master-pfsrv:/home/zhangbin/perfwork/01_ai/15_HumanML3D# conda env create -f environment.yaml Retrieving notices: ...working... done Channels:- defaults Platform: linux-64 Collecting

Pig Cloud遇到websocket不能實現同一個用戶不同瀏覽器接受到廣播的消息解決方案

自定義SecuritySessionKeyGenerator類,為每個客戶端連接建立唯一的keypackage com.pig4cloud.plugin.websocket.custom;import com.pig4cloud.plugin.websocket.holder.SessionKeyGenerator; import org.springframework.web.socket.WebSocketSession;import java.util.UUID; p…

藍訊hifi添加自定義算法

總結 自己定義算法要添加在hifi工程里 hifi工程在wiki上可以下載,名字叫做project 在main.c里添加了自己的算法,算法的執行涉及到通道與effect_id 編譯hifi項目需要安裝 XtensaTool 與hifi4 configuration file 編譯成功后移植bin文件 通過hifi4_effect_audio_process調用hifi…

【軟考中級網絡工程師】知識點之 STP 協議,網絡的 “交通協管員”

目錄一、STP 協議初相識二、STP 協議登場&#xff0c;網絡環路難題迎刃而解2.1 網絡環路困境2.2 STP 協議閃亮登場三、STP 協議核心探秘&#xff1a;生成樹算法3.1 選舉根網橋3.2 確定根端口3.3 選定指定端口四、STP 協議端口狀態解析4.1 阻塞狀態4.2 監聽狀態4.3 學習狀態4.4 …

分布式網關技術 + BGP EVPN,解鎖真正的無縫漫游

無線漫游的核心挑戰與標準化協議支持在構建高性能無線網絡時&#xff0c;實現用戶終端&#xff08;STA&#xff09;在不同接入點&#xff08;AP&#xff09;之間平滑、快速的漫游是核心目標之一。我們的無線AP產品原生支持業界標準的802.11k/v/r協議&#xff08;常稱為“快速漫…

廣東省省考備考(第六十七天8.5)——資料分析、數量(強化訓練)

資料分析 錯題解析解析今日題目正確率&#xff1a;87% 數量&#xff1a;數學運算 錯題解析解析解析解析標記題解析解析今日題目正確率&#xff1a;73%