0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【每天學(xué)點(diǎn)AI】KNN算法:簡(jiǎn)單有效的機(jī)器學(xué)習(xí)分類(lèi)器

華清遠(yuǎn)見(jiàn)工控 ? 2024-10-31 14:09 ? 次閱讀

想象一下,你正在計(jì)劃一個(gè)周末的戶(hù)外活動(dòng),你可能會(huì)問(wèn)自己幾個(gè)問(wèn)題來(lái)決定去哪里:

"今天天氣怎么樣?"如果天氣晴朗,你可能會(huì)選擇去公園野餐;如果天氣陰沉,你可能會(huì)選擇去博物館。

這個(gè)決策過(guò)程,其實(shí)就是一個(gè)簡(jiǎn)單的分類(lèi)問(wèn)題,而KNN(K-Nearest Neighbors算法正是模仿這種人類(lèi)決策過(guò)程的機(jī)器學(xué)習(xí)算法。

| 什么是KNN?

KNN(K-Nearest Neighbors)算法是一種基本的分類(lèi)與回歸方法,屬于監(jiān)督學(xué)習(xí)范疇。它的核心思想是“物以類(lèi)聚”,即相似的數(shù)據(jù)應(yīng)有相似的輸出。對(duì)于任意n維輸入向量,分別對(duì)應(yīng)于特征空間中的一個(gè)點(diǎn),輸出為該特征向量所對(duì)應(yīng)的類(lèi)別標(biāo)簽或預(yù)測(cè)值。

| KNN的工作原理

KNN算法通過(guò)測(cè)量不同特征值之間的距離來(lái)進(jìn)行分類(lèi)。對(duì)于一個(gè)新的輸入樣本,KNN算法會(huì)在訓(xùn)練數(shù)據(jù)集中尋找與該樣本最近的K個(gè)樣本(即K個(gè)鄰居),然后根據(jù)這些鄰居的類(lèi)別來(lái)預(yù)測(cè)新樣本的類(lèi)別。在分類(lèi)問(wèn)題中,常見(jiàn)的做法是通過(guò)“投票法”決定新樣本的類(lèi)別,即選擇K個(gè)鄰居中出現(xiàn)次數(shù)最多的類(lèi)別作為新樣本的預(yù)測(cè)類(lèi)別。

wKgZomcjHy6ANdEZAAE9KVCoApQ653.png

舉個(gè)例子:想象一下,你是一個(gè)新來(lái)的大學(xué)生,想要加入一個(gè)社團(tuán)。但是,你對(duì)這個(gè)大學(xué)里的社團(tuán)不太了解,所以你想找一個(gè)和你興趣最接近的社團(tuán)加入。你決定問(wèn)問(wèn)你周?chē)耐瑢W(xué),看看他們都加入了哪些社團(tuán)。

①你首先會(huì)找到幾個(gè)你認(rèn)識(shí)的同學(xué)(比如5個(gè)),這些同學(xué)就像是你的“鄰居”,因?yàn)樗麄冸x你最近,你最容易從他們那里得到信息。

②然后,你問(wèn)問(wèn)這些同學(xué)他們都加入了哪些社團(tuán),可能是籃球社、舞蹈社、棋藝社等等。

③統(tǒng)計(jì)一下這些同學(xué)中,哪個(gè)社團(tuán)被提到的次數(shù)最多。比如,有3個(gè)同學(xué)提到了籃球社,2個(gè)提到了舞蹈社。

④根據(jù)這個(gè)“投票”結(jié)果,你決定加入籃球社,因?yàn)檫@是被提到次數(shù)最多的社團(tuán),你覺(jué)得這個(gè)社團(tuán)可能最符合你的興趣。

在這個(gè)例子中,你就是那個(gè)“新的輸入樣本”,你的同學(xué)就是“訓(xùn)練數(shù)據(jù)集”,你選擇社團(tuán)的過(guò)程就是KNN算法的“分類(lèi)”過(guò)程。你通過(guò)了解你周?chē)瑢W(xué)的選擇(即尋找最近的K個(gè)鄰居),然后根據(jù)他們的選擇來(lái)決定你自己的選擇(即根據(jù)鄰居的類(lèi)別來(lái)預(yù)測(cè)你的類(lèi)別)。這個(gè)過(guò)程就是KNN算法的核心思想:通過(guò)觀(guān)察和你相似的人的選擇,來(lái)預(yù)測(cè)你可能會(huì)做出的選擇。

| 如何構(gòu)建KNN模型?

構(gòu)建KNN模型也不是簡(jiǎn)單地像上述例子分幾個(gè)步驟,需要有完整科學(xué)的流程。

  • 選擇距離度量:KNN算法需要一個(gè)距離度量來(lái)計(jì)算樣本之間的相似度,常見(jiàn)的距離度量包括歐氏距離、曼哈頓距離等。
  • 確定K值:K值的選擇對(duì)算法的性能有重要影響,通常通過(guò)交叉驗(yàn)證來(lái)選擇最佳的K值。
  • 尋找最近鄰:對(duì)于每一個(gè)新的數(shù)據(jù)點(diǎn),算法會(huì)在訓(xùn)練集中找到與其距離最近的K個(gè)點(diǎn)。
  • 分類(lèi)決策:根據(jù)K個(gè)最近鄰的類(lèi)別,通過(guò)多數(shù)表決等方式來(lái)決定新數(shù)據(jù)點(diǎn)的類(lèi)別。

| KNN的應(yīng)用

KNN(K-Nearest Neighbors)算法在日常生活中的應(yīng)用非常廣泛,比如:

推薦系統(tǒng)

當(dāng)你在電商平臺(tái)上購(gòu)物時(shí),系統(tǒng)會(huì)根據(jù)你過(guò)去的購(gòu)買(mǎi)記錄和瀏覽習(xí)慣,推薦與你之前購(gòu)買(mǎi)或?yàn)g覽過(guò)的商品相似的其他商品。這里,KNN算法通過(guò)分析用戶(hù)行為數(shù)據(jù),找到與當(dāng)前用戶(hù)行為最相似的其他用戶(hù),然后推薦那些相似用戶(hù)喜歡的商品。

餐廳評(píng)分

當(dāng)你使用美食應(yīng)用尋找餐廳時(shí),應(yīng)用可能會(huì)根據(jù)你的位置和偏好,推薦附近的高分餐廳。KNN算法在這里通過(guò)分析其他用戶(hù)的評(píng)價(jià)和評(píng)分,找到與你的搜索條件最匹配的餐廳,并預(yù)測(cè)它們的受歡迎程度。

房?jī)r(jià)預(yù)測(cè)

如果你想出售或購(gòu)買(mǎi)房屋,KNN算法可以幫助你估計(jì)房屋的價(jià)值。通過(guò)輸入房屋的特征(如面積、位置、建造年份等),KNN算法會(huì)找到附近相似房屋的銷(xiāo)售價(jià)格,然后根據(jù)這些最近鄰居的價(jià)格來(lái)預(yù)測(cè)目標(biāo)房屋的價(jià)格。

| KNN與其他算法的比較

KNN算法與其他常見(jiàn)的機(jī)器學(xué)習(xí)算法相比,有獨(dú)特的優(yōu)勢(shì)和局限性。

與決策樹(shù)(Decision Trees)比較

優(yōu)勢(shì):

  • KNN不需要訓(xùn)練過(guò)程,可以立即對(duì)新數(shù)據(jù)做出預(yù)測(cè)。
  • KNN可以處理非線(xiàn)性數(shù)據(jù),而決策樹(shù)在處理非線(xiàn)性數(shù)據(jù)時(shí)可能需要更復(fù)雜的模型。

劣勢(shì):

  • 決策樹(shù)模型更易于解釋和可視化,而KNN的預(yù)測(cè)過(guò)程可能不夠直觀(guān)。
  • 決策樹(shù)通常對(duì)噪聲數(shù)據(jù)和異常值更魯棒,而KNN對(duì)這些數(shù)據(jù)更敏感。

與支持向量機(jī)(SVM)比較

優(yōu)勢(shì):

  • KNN算法實(shí)現(xiàn)簡(jiǎn)單,易于理解和使用。
  • KNN可以很好地處理多分類(lèi)問(wèn)題,而SVM在多分類(lèi)問(wèn)題上需要額外的技術(shù)如一對(duì)一或一對(duì)多。

劣勢(shì):

  • SVM在高維空間中表現(xiàn)更好,尤其是在特征空間很大時(shí)。
  • SVM可以提供更好的泛化能力,而KNN可能會(huì)過(guò)擬合,尤其是在樣本數(shù)量較少時(shí)。

與隨機(jī)森林(Random Forest)比較

優(yōu)勢(shì):

  • KNN不需要訓(xùn)練時(shí)間,而隨機(jī)森林需要構(gòu)建多個(gè)決策樹(shù)并進(jìn)行聚合
  • KNN可以處理非線(xiàn)性和高維數(shù)據(jù)。

劣勢(shì):

  • 隨機(jī)森林在處理大型數(shù)據(jù)集時(shí)通常更快,而KNN在大數(shù)據(jù)集上可能會(huì)非常慢。
  • 隨機(jī)森林提供了更好的泛化能力,并且對(duì)噪聲和異常值更魯棒。

神經(jīng)網(wǎng)絡(luò)(Neural Networks)比較

優(yōu)勢(shì):

  • KNN算法簡(jiǎn)單,不需要復(fù)雜的模型訓(xùn)練過(guò)程。
  • KNN可以很容易地解釋和理解模型的預(yù)測(cè)過(guò)程。

劣勢(shì):

  • 神經(jīng)網(wǎng)絡(luò)可以捕捉更復(fù)雜的模式和非線(xiàn)性關(guān)系,尤其是在深度學(xué)習(xí)模型中。
  • 神經(jīng)網(wǎng)絡(luò)通常在大規(guī)模數(shù)據(jù)集上表現(xiàn)更好,尤其是在圖像和語(yǔ)音識(shí)別等領(lǐng)域。

與梯度提升機(jī)(Gradient Boosting Machines, GBM)比較

優(yōu)勢(shì):

  • KNN不需要訓(xùn)練,可以快速對(duì)新數(shù)據(jù)進(jìn)行預(yù)測(cè)。
  • KNN可以處理分類(lèi)和回歸問(wèn)題,而GBM主要用于回歸問(wèn)題。

劣勢(shì):

  • GBM通常在預(yù)測(cè)準(zhǔn)確性上優(yōu)于KNN,尤其是在結(jié)構(gòu)化數(shù)據(jù)上。
  • GBM可以處理更復(fù)雜的數(shù)據(jù)模式,并且對(duì)噪聲和異常值更魯棒。

KNN算法在需要快速原型開(kāi)發(fā)和對(duì)模型解釋性要求較高的場(chǎng)合很適用,在需要處理大規(guī)模數(shù)據(jù)集、高維數(shù)據(jù)或需要更強(qiáng)泛化能力的場(chǎng)景下,可能需要考慮其他更復(fù)雜的算法。

所以在實(shí)際應(yīng)用中,應(yīng)該根據(jù)具體問(wèn)題的數(shù)據(jù)特征、解釋性需求以及計(jì)算資源等方面的考量,選擇更合適的算法,提升模型的效果和應(yīng)用的可行性。

KNN屬于機(jī)器學(xué)習(xí)算法,在AI全體系課程中,它不僅是機(jī)器學(xué)習(xí)入門(mén)者最先接觸的算法之一,也是理解其他更復(fù)雜機(jī)器學(xué)習(xí)算法的基礎(chǔ),對(duì)于深入學(xué)習(xí)機(jī)器學(xué)習(xí)和理解其他更高級(jí)的算法有著重要的意義。

AI體系化學(xué)習(xí)路線(xiàn)

wKgaombzzxSAdyb-AAILSe8A5AM65.jpeg

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    29850

    瀏覽量

    268149
  • 人工智能
    +關(guān)注

    關(guān)注

    1791

    文章

    46689

    瀏覽量

    237177
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8356

    瀏覽量

    132324
  • KNN算法
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    6133
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    人工智能、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)存在什么區(qū)別

    人工智能指的是在某種程度上顯示出類(lèi)似人類(lèi)智能的設(shè)備。AI有很多技術(shù),但其中一個(gè)很大的子集是機(jī)器學(xué)習(xí)——讓算法從數(shù)據(jù)中學(xué)習(xí)。
    發(fā)表于 10-24 17:22 ?2425次閱讀
    人工智能、<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>和深度<b class='flag-5'>學(xué)習(xí)</b>存在什么區(qū)別

    AI大模型與深度學(xué)習(xí)的關(guān)系

    AI大模型與深度學(xué)習(xí)之間存在著密不可分的關(guān)系,它們互為促進(jìn),相輔相成。以下是對(duì)兩者關(guān)系的介紹: 一、深度學(xué)習(xí)AI大模型的基礎(chǔ) 技術(shù)支撐 :深度學(xué)習(xí)
    的頭像 發(fā)表于 10-23 15:25 ?318次閱讀

    AI大模型與傳統(tǒng)機(jī)器學(xué)習(xí)的區(qū)別

    多個(gè)神經(jīng)網(wǎng)絡(luò)層組成,每個(gè)層都包含大量的神經(jīng)元和權(quán)重參數(shù)。 傳統(tǒng)機(jī)器學(xué)習(xí) :模型規(guī)模相對(duì)較小,參數(shù)數(shù)量通常只有幾千到幾百萬(wàn)個(gè),模型結(jié)構(gòu)相對(duì)簡(jiǎn)單。 二、訓(xùn)練數(shù)據(jù)需求 AI大模型 :需要大規(guī)
    的頭像 發(fā)表于 10-23 15:01 ?308次閱讀

    RISC-V如何支持不同的AI機(jī)器學(xué)習(xí)框架和庫(kù)?

    RISC-V如何支持不同的AI機(jī)器學(xué)習(xí)框架和庫(kù)?還請(qǐng)壇友們多多指教一下。
    發(fā)表于 10-10 22:24

    AI引擎機(jī)器學(xué)習(xí)陣列指南

    AMD Versal AI Core 系列和 Versal AI Edge 系列旨在憑借 AI 引擎機(jī)器學(xué)習(xí) ( ML ) 架構(gòu)來(lái)提供突破性
    的頭像 發(fā)表于 09-18 09:16 ?289次閱讀
    <b class='flag-5'>AI</b>引擎<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>陣列指南

    旗晟機(jī)器人人員行為監(jiān)督AI智慧算法

    ,以實(shí)現(xiàn)對(duì)工業(yè)場(chǎng)景巡檢運(yùn)維的高效化目標(biāo)。那么,下面我們來(lái)談?wù)勂礻?b class='flag-5'>機(jī)器AI智慧算法之一——人員行為監(jiān)督AI智慧算法。 旗晟人員行為監(jiān)督
    的頭像 發(fā)表于 07-24 17:05 ?252次閱讀
    旗晟<b class='flag-5'>機(jī)器</b>人人員行為監(jiān)督<b class='flag-5'>AI</b>智慧<b class='flag-5'>算法</b>

    深度學(xué)習(xí)中的時(shí)間序列分類(lèi)方法

    時(shí)間序列分類(lèi)(Time Series Classification, TSC)是機(jī)器學(xué)習(xí)和深度學(xué)習(xí)領(lǐng)域的重要任務(wù)之一,廣泛應(yīng)用于人體活動(dòng)識(shí)別、系統(tǒng)監(jiān)測(cè)、金融預(yù)測(cè)、醫(yī)療診斷等多個(gè)領(lǐng)域。隨
    的頭像 發(fā)表于 07-09 15:54 ?664次閱讀

    機(jī)器學(xué)習(xí)算法原理詳解

    機(jī)器學(xué)習(xí)作為人工智能的一個(gè)重要分支,其目標(biāo)是通過(guò)讓計(jì)算機(jī)自動(dòng)從數(shù)據(jù)中學(xué)習(xí)并改進(jìn)其性能,而無(wú)需進(jìn)行明確的編程。本文將深入解讀幾種常見(jiàn)的機(jī)器學(xué)習(xí)
    的頭像 發(fā)表于 07-02 11:25 ?685次閱讀

    機(jī)器學(xué)習(xí)的經(jīng)典算法與應(yīng)用

    關(guān)于數(shù)據(jù)機(jī)器學(xué)習(xí)就是喂入算法和數(shù)據(jù),讓算法從數(shù)據(jù)中尋找一種相應(yīng)的關(guān)系。Iris鳶尾花數(shù)據(jù)集是一個(gè)經(jīng)典數(shù)據(jù)集,在統(tǒng)計(jì)學(xué)習(xí)
    的頭像 發(fā)表于 06-27 08:27 ?1547次閱讀
    <b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的經(jīng)典<b class='flag-5'>算法</b>與應(yīng)用

    基于神經(jīng)網(wǎng)絡(luò)的呼吸音分類(lèi)算法

    出的方法與其他機(jī)器學(xué)習(xí)模型在不同情況下的性能和魯棒性進(jìn)行比較。1.用于初始模型檢查的簡(jiǎn)單噪聲二值分類(lèi)實(shí)驗(yàn)。2.使用個(gè)體呼吸周期作為輸入的4類(lèi)異常分類(lèi)
    發(fā)表于 05-31 12:05

    ai芯片是什么東西 ai芯片和普通芯片的區(qū)別

    AI芯片是專(zhuān)門(mén)為人工智能應(yīng)用設(shè)計(jì)的處理,它們能夠高效地執(zhí)行AI算法,特別是機(jī)器學(xué)習(xí)和深度
    的頭像 發(fā)表于 03-21 18:11 ?6138次閱讀

    分析 丨AI算法愈加復(fù)雜,但是機(jī)器視覺(jué)的開(kāi)發(fā)門(mén)檻在降低

    準(zhǔn)確判斷。此外,AI大模型近兩年受到關(guān)注,也可能被引入機(jī)器視覺(jué)領(lǐng)域,在跨模態(tài)理解和推理等方面展現(xiàn)出更強(qiáng)能力。 AI算法的復(fù)雜程度越來(lái)越高,機(jī)器
    的頭像 發(fā)表于 02-19 16:49 ?611次閱讀
    分析 丨<b class='flag-5'>AI</b><b class='flag-5'>算法</b>愈加復(fù)雜,但是<b class='flag-5'>機(jī)器</b>視覺(jué)的開(kāi)發(fā)門(mén)檻在降低

    AI算法的本質(zhì)是模擬人類(lèi)智能,讓機(jī)器實(shí)現(xiàn)智能化

    電子發(fā)燒友網(wǎng)報(bào)道(文/李彎彎)AI算法是人工智能領(lǐng)域中使用的算法,用于模擬、延伸和擴(kuò)展人的智能。這些算法可以通過(guò)機(jī)器
    的頭像 發(fā)表于 02-07 00:07 ?5565次閱讀

    什么是特征工程?機(jī)器學(xué)習(xí)的特征工程詳解解讀

    One-hot 編碼對(duì)于用機(jī)器學(xué)習(xí)模型能夠理解的簡(jiǎn)單數(shù)字?jǐn)?shù)據(jù)替換分類(lèi)數(shù)據(jù)很有用。
    發(fā)表于 12-28 17:14 ?282次閱讀
    什么是特征工程?<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>的特征工程詳解解讀

    一文詳解機(jī)器學(xué)習(xí)中的梯度提升機(jī)

    AdaBoost(自適應(yīng)增強(qiáng))是機(jī)器學(xué)習(xí)歷史上第一個(gè)將各種弱分類(lèi)組合成單個(gè)強(qiáng)分類(lèi)的增強(qiáng)
    發(fā)表于 12-19 14:24 ?1182次閱讀
    一文詳解<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>中的梯度提升機(jī)