Day16_【機器學習—KNN算法】

一、KNN 簡介

KNN:K-近鄰算法 (K Nearest Neighbor)

算法思想:一個樣本最相似的 k 個樣本中的大多數屬于某一個類別,則該樣本也屬于這個類別

距離計算:歐氏距離

二、KNN 解決兩類問題

分類問題與回歸問題

分類流程:

  1. 計算未知樣本到每一個訓練樣本的距離
  2. 將訓練樣本根據距離大小升序排列
  3. 取出距離最近的 K 個訓練樣本
  4. 進行多數表決,統計 K 個樣本中哪個類別的樣本個數最多
  5. 將未知的樣本歸屬到出現次數最多的類別

回歸流程:

  1. 計算未知樣本到每一個訓練樣本的距離(歐式距離:對應維度差值的平方和 開平方根
  2. 將訓練樣本根據距離大小升序排列
  3. 取出距離最近的 K 個訓練樣本
  4. 把這個 K 個樣本的目標值計算其平均值
  5. 作為將未知的樣本預測的值

其中K值的選擇:需要一些方法來尋找這個最合適的K值 交叉驗證、網格搜索

  • K值過小?,過擬合,容易受到異常點的影響,整體模型變得復雜
  • K值過大 ,欠擬合,整體的模型變得簡單

三 、KNN算法API的使用

首先機器學習的開發環境,安裝:基于Python的 scikit-learn 庫

分類問題與回歸問題

分類問題

'''
分類問題
KNN算法 代碼實現步驟1:導包2:創建模型對象3:準備訓練集4:準備測試集5:模型訓練6:模型預測,并打印結果
'''
# 1:導包
from sklearn.neighbors import KNeighborsClassifier
#2:創建模型對象
estimator = KNeighborsClassifier(3)
#3、準備訓練集   列表嵌套   二維  [樣本數量,特征數量]
#外層列表  樣本數  4個
#內層列表  特征數量  1列
x_train = [[0], [1], [2], [3]]
#一維的   [樣本數量]  4個
y_train = [0, 0, 0, 1]
#4、準備測試集  易錯點2:注意這里x_test是二維的
x_test = [[4]]
#5、模型訓練
#參1:訓練集特征  參2:訓練集標簽
estimator.fit(x_train, y_train)
#6、模型預測
y_test = estimator.predict(x_test)
#打印結果
print(y_test)

回歸問題

'''回歸問題'''
#1、導包
from sklearn.neighbors import KNeighborsRegressor
#2、創建模型(算法)對象 注意!!這里是回歸問題
estimator = KNeighborsRegressor(2)
#3、準備訓練集
x_train = [[0, 0, 1],[1, 1, 0],[3, 10, 10],[4, 11, 12]]
y_train = [0.1, 0.2, 0.3, 0.4]
#4、測試集(x_test)
x_test = [[3, 11, 10]]
#5、模型訓練
estimator.fit(x_train, y_train)
#6、模型預測(y_test)
y_test = estimator.predict(x_test)
#打印結果
print(y_test)

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

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

相關文章

《架構師手記:SpringCloud整合Nacos實戰·一》

《架構師手記:SpringCloud整合Nacos實戰一》 🌈 第一章:SpringCloud與Nacos的初識之旅 引言 在微服務架構的浪潮中,服務發現和配置管理成為了每個架構師必須面對的挑戰。今天,我們將開啟一段SpringCloud與Nacos的探…

卷積神經網絡訓練全攻略:從理論到實戰

卷積神經網絡(Convolutional Neural Networks, CNN)作為深度學習的重要分支,已成為計算機視覺領域的核心技術。從圖像分類到目標檢測,從人臉識別到醫學影像分析,CNN 展現出了強大的特征提取和模式識別能力。本文將全面…

從零開始學習n8n-定時器+HTTP+飛書多維表格(上)

概述零基礎也能把自動化玩明白:本篇將從“為什么要做自動化”出發,帶你在 n8n 里新建第一個工作流,只用兩個核心節點——Schedule Trigger(定時器) 與 HTTP Request。你會學會如何按固定頻率觸發流程、向接口發起請求、…

小白成長之路-k8s原理(二)

文章目錄一、Service原理1.1概述1.2為什么需要service1.3service1.4service類型1.5service組件協同二、configMap原理2.1概述2.2命令2.3類型三、volume2.1emptydir2.2hostPath2.3pv/pvc2.4storageClass四、調度管理3.1概念3.2特點3.3親和性3.4容忍和污點3.5固定節點調度五、etc…

2025 數字化轉型期,值得關注的 10 項高價值證書解析

2025 年,數字化轉型已邁入深度滲透階段,大數據、人工智能、云計算等技術重塑各行業格局,相關領域人才缺口持續擴大。對于職場人突破瓶頸、大學生搶占就業先機而言,適配轉型需求的專業證書已成為核心競爭力。本文結合行業經驗&…

STM32 入門教程:從零基礎到項目實戰

STM32 微控制器憑借其高性能、低功耗、豐富外設以及龐大的生態系統,成為工程師和開發者的首選。對于剛接觸 STM32 的新手來說,面對復雜的芯片架構和開發流程,往往會感到無從下手。本文將以通俗易懂的語言,結合實際案例&#xff0c…

ros、slam、激光雷達、自動駕駛相關學習內容和計劃

明白 ?。你現在做的是 LHD自動駕駛,核心技術是 SLAM、LiDAR、ROS、感知與規劃控制。這類項目涉及“工程落地 學術算法 安全規范”三大方面。我給你一個循序漸進的學習方案(從基礎到應用),并附帶開源項目推薦,方便你…

Flutter 完全組件化的項目結構設計實踐

Flutter 完全組件化的項目結構設計實踐 在做 Flutter 項目的時候,隨著業務不斷擴展,如果所有代碼都堆在 lib/ 目錄里,后期維護會越來越痛苦。組件化(Componentization) 是一種常見的解決方案,它能讓項目更清…

文件上傳漏洞基礎及挖掘流程

基礎介紹定義用戶通過文件上傳的功能模塊進行文件上傳時,如果服務端沒有對上傳文件進行嚴格的驗 證和過濾,而導致的用戶可以越過其本身權限向服務器上上傳可執行的動態腳本文件。則 攻擊者可以通過上傳木馬,webshell等惡意文件,經…

【C2000】C2000的硬件設計指導與幾點意見

《C2000 MCU硬件設計指南》 提示:《C2000 MCU硬件設計指南》用于指導C2000 MCU應用中的原理圖設計與注意事項 文章目錄 《C2000 MCU硬件設計指南》 前言 1.器件選型與封裝決策 2.電源設計與去耦策略 3.時鐘與復位電路設計 4.PCB布局與接地策略 5.EMI/EMC與ESD防護 [F2800x C20…

屏隨人動+視覺魔方+多樣主題+智能留言,涂鴉Wukong AI 2.0助力打造爆款帶屏云臺相機

一、帶屏云臺機:超硬核的市場魔力 作為 IPC 消費級別里的第一大品類,云臺機市場一直處于穩步增長階段,2024 年全球出貨量達到 7000 萬臺。而其中的最強潛力股–帶屏云臺機,在 AI 大模型的強勢賦能下,更于今年迎來全新…

Polkadot - ELVES

ELVES (Endorsing Light Validity Evaluator System) 即 輕量級背書有效性評估系統 。它是 JAM 可擴展且自適應的區塊審計協議,即是JAM用于finalise區塊的協議, 確保只有有效區塊才能最終確定。 論文 – 2024-961 : Jeff Burdges、Cevallos 等人在2024年提出的 ELV…

【科研寫作自動化工具】如何??用AI技術組合(大模型+多Agent+自動化)打造一個“智能論文生產線”??,把寫作流程變成自動化

自主構建智慧科研寫作系統——融合LLM語義理解、多智能體任務協同與n8n自動化工作流n8n 是一款開源的 ??工作流自動化工具??,類似于 Zapier 或 Make(原 Integromat),但更注重靈活性和開發者友好性。在課程文件中提到的 ??n8…

window顯示驅動開發—監視器類函數驅動程序

設備節點用于表示已連接到一臺監視器的顯示適配器上的每個視頻輸出。 設備節點是顯示適配器設備節點的子節點。通常情況下,設備堆棧中只有兩個設備對象代表一對視頻輸出/監視器:物理設備對象 (PDO)。功能設備對象 (FDO)。在某些情況下,篩選器…

STM32CubeMX + HAL 庫:基于 I2C 通信的 AHT20 高精度溫濕度測量實驗

1 概述1.1 實驗目的本實驗基于 STM32CubeMX 與 HAL 庫,借助硬件 IC 接口實現對 AHT20 高精度溫濕度傳感器的測量與數據處理。實驗內容涵蓋 AHT20 的初始化流程、指令交互機制、測量數據的采集與物理量轉換等關鍵環節。通過對實驗驅動代碼與測試結果的完整展示&#…

今日分享:C++ -- vector

😎【博客主頁:你最愛的小傻瓜】😎 🤔【本文內容:C vector 😍 】🤔 --------------------------------------------------------------------------------------------------------------------…

NAS Docker 安裝N8N

NAS Docker 安裝N8Ndocker 操作中文版使用 Docker Compose(更易于管理)創建一個 docker-compose.yml 文件,內容如下:yaml version: 3services:n8n:image: n8nio/n8n:latestcontainer_name: n8nrestart: unless-stoppedports:- &q…

Node.js漢字轉拼音指南:pinyin-pro全解析

pinyin-pro 工具庫簡介核心功能:漢字轉拼音、多音字處理、音調控制、格式定制等性能特點:高效、輕量級、支持多種拼音風格應用場景:搜索優化、數據排序、中文輸入法等環境準備與安裝Node.js npm 或 yarn 安裝 pinyin-pronpm install pinyin-p…

UART-TCP雙向橋接服務

UART-TCP雙向橋接服務是一種將串口(UART)通信與TCP/IP網絡通信相互轉換的技術服務,其核心功能是實現兩種不同協議之間的數據透明傳輸。1. 基本概念UART(串口):硬件設備的傳統通信接口,常見于嵌入…

江協科技STM32學習筆記補充之001。為什么C語言在對STM32編程過程中的二進制要用十六進制來進行讀寫。而不能直接用二進制來進行讀寫。

下面給你一個“為什么嵌入式 C(如 STM32)普遍用十六進制而不是二進制來讀寫寄存器/地址”的系統性分析。核心觀點:十六進制是對底層位模式更高效、更可靠的“人類可讀編碼”,與硬件資料、編譯器和調試器生態形成了標準化協同。1&a…