国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

k-近鄰算法概述,k-means與k-NN的區(qū)別對比

這篇具有很好參考價值的文章主要介紹了k-近鄰算法概述,k-means與k-NN的區(qū)別對比。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

目錄

k-近鄰算法概述

k-近鄰算法細(xì)節(jié)

k值的選取

分類器的決策

k-means與k-NN的區(qū)別對比


k-近鄰算法概述

k近鄰(k-nearest neighbor, ?k-NN)算法由 Cover 和 Hart 于1968年提出,是一種簡單的分類方法。通俗來說,就是給定一個訓(xùn)練數(shù)據(jù)集,對新的輸入實(shí)例,在訓(xùn)練數(shù)據(jù)集中找到與該實(shí)例最鄰近的 k 個實(shí)例,這 k 個實(shí)例的多數(shù)屬于某個類,就把該輸入實(shí)例分類到這個類中(類似于投票時少數(shù)服從多數(shù)的思想)。接下來讀者來看下引自維基百科上的一幅圖:

k-近鄰算法概述,k-means與k-NN的區(qū)別對比,2023 AI,人工智能,機(jī)器學(xué)習(xí)

圖1:數(shù)據(jù)

如上圖 1 所示,有兩類不同的樣本數(shù)據(jù),分別用藍(lán)色的小正方形和紅色的小三角形表示,而圖正中間的那個綠色的圓所示的數(shù)據(jù)則是待分類的數(shù)據(jù),那它的類別是什么?下面根據(jù) k 近鄰的思想來給綠色圓點(diǎn)進(jìn)行分類。

如果 k=3,綠色圓點(diǎn)的最鄰近的 3 個點(diǎn)是 2 個紅色小三角形和 1 個藍(lán)色小正方形,根據(jù)少數(shù)服從多數(shù)的思想,判定綠色的這個待分類點(diǎn)屬于紅色的三角形一類。如果 k=5,綠色圓點(diǎn)最鄰近的 5 個鄰居是 2 個紅色三角形和 3 個藍(lán)色的正方形,根據(jù)少數(shù)服從多數(shù)的思想,判定綠色的這個待分類點(diǎn)屬于藍(lán)色的正方形一類。

上面的例子形象展示了 k 近鄰的算法思想,可以看出 k 近鄰的算法思想非常簡單。

k-近鄰算法細(xì)節(jié)

k值的選取

假設(shè)有訓(xùn)練數(shù)據(jù)和待分類點(diǎn)如下圖 2,圖中有兩類,一個是黑色的圓點(diǎn),一個是藍(lán)色的長方形,待分類點(diǎn)是紅色的五邊形。根據(jù) k 近鄰算法步驟來決定待分類點(diǎn)應(yīng)該歸為哪一類。讀者能夠看出來五邊形離黑色的圓點(diǎn)最近,k 為1,因此最終判定待分類點(diǎn)是黑色的圓點(diǎn)。假設(shè) k=1,那么測試樣本的分類結(jié)果只受距離最近的一個樣本影響,這種情況下模型很容易學(xué)習(xí)到噪聲,出現(xiàn)過擬合。

k-近鄰算法概述,k-means與k-NN的區(qū)別對比,2023 AI,人工智能,機(jī)器學(xué)習(xí)

圖2:訓(xùn)練數(shù)據(jù)

明顯這樣分類是錯誤的,此時距離五邊形最近的黑色圓點(diǎn)是一個噪聲,如果?k 太小,分類結(jié)果受距離最近的一些樣本影響,這種情況下模型很容易學(xué)習(xí)到噪聲,出現(xiàn)過擬合。

如果k大一點(diǎn),k 等于8,把長方形都包括進(jìn)來,很容易得到正確的分類應(yīng)該是藍(lán)色的長方形!如下圖:

k-近鄰算法概述,k-means與k-NN的區(qū)別對比,2023 AI,人工智能,機(jī)器學(xué)習(xí)

圖3:k=8

如果K與訓(xùn)練樣本的總數(shù)相等,那會出現(xiàn)什么樣的分類結(jié)果呢?

如果 k=N(N為訓(xùn)練樣本的個數(shù)),那么無論輸入實(shí)例是什么,都將簡單地預(yù)測它屬于在訓(xùn)練實(shí)例中最多的類。這相當(dāng)于沒有訓(xùn)練模型!直接拿訓(xùn)練數(shù)據(jù)統(tǒng)計了一下各個數(shù)據(jù)的類別,找最大的而已!如下圖所示:

k-近鄰算法概述,k-means與k-NN的區(qū)別對比,2023 AI,人工智能,機(jī)器學(xué)習(xí)

圖3:k=N

為了避免出現(xiàn)以上兩種極端情況,實(shí)踐中我們會用到交叉驗(yàn)證,即從 k=1 開始,使用驗(yàn)證集去估計分類器的錯誤率,然后將 k?依次加1,每次計算分類器的整體錯誤率,不斷重復(fù)這個過程,最后就能得到錯誤率最小的 k 值,這就是我們要找的合適的 k 值。需要注意的是,一般 k 的取值不超過20,并且要盡量取奇數(shù),以避免在最終分類結(jié)果中出現(xiàn)樣本數(shù)相同的兩個類別。

k-近鄰算法概述,k-means與k-NN的區(qū)別對比,2023 AI,人工智能,機(jī)器學(xué)習(xí)

分類器的決策

在上面幾個例子中,判斷待決策樣本屬于哪一類時,都是根據(jù)少數(shù)服從多數(shù)的思想。為什么根據(jù)這種思想做分類決策,背后的原理是什么呢?

假設(shè)分類的損失函數(shù)為0-1損失函數(shù),分類函數(shù)為

?k-近鄰算法概述,k-means與k-NN的區(qū)別對比,2023 AI,人工智能,機(jī)器學(xué)習(xí)

k-means與k-NN的區(qū)別對比

k-means與k-NN是經(jīng)常容易被混淆的兩個算法,即使是做了多年機(jī)器學(xué)習(xí)的老江湖,也可能嘴瓢或者忘記兩個算法的區(qū)分。

兩種算法之間的根本區(qū)別是:

k-means是無監(jiān)督學(xué)習(xí),k-NN是監(jiān)督學(xué)習(xí);

k-means解決聚類問題,k-NN解決分類或回歸問題。

k-近鄰算法概述,k-means與k-NN的區(qū)別對比,2023 AI,人工智能,機(jī)器學(xué)習(xí)

k-means算法把一個數(shù)據(jù)集分割成簇,使得形成的簇是同構(gòu)的,每個簇里的點(diǎn)相互靠近

k-NN算法嘗試基于其k個(可以是任何數(shù)目)周圍鄰居來對未標(biāo)記的實(shí)例進(jìn)行分類。

k-means算法的訓(xùn)練過程需要反復(fù)的迭代操作(尋找新的質(zhì)心),但是k-NN不需要。

k-means中的k代表的是簇中心

k-NN的k代表的是選擇與測試樣本距離最近的前k個訓(xùn)練樣本數(shù)。

k-means

k-NN

學(xué)習(xí)范式

無監(jiān)督學(xué)習(xí)算法

監(jiān)督學(xué)習(xí)算法

提出時間

1967年

1968年

適用問題

解決聚類問題

解決分類或回歸問題

核心思想

物以類聚,人以群分

近朱者赤,近墨者黑

算法原理

k-means是基于中心的聚類方法,通過迭代,將樣本分到k個類中,使得每個樣本與其所屬類的中心或均值最近;得到k個類別,構(gòu)成對空間的劃分。

k-NN算法簡單、直觀,給定一個訓(xùn)練數(shù)據(jù)集,對新的輸入實(shí)例,在訓(xùn)練數(shù)據(jù)集中找到與該實(shí)例最近鄰的k個實(shí)例,這k個實(shí)例的多數(shù)屬于某個類,就把該輸入實(shí)例分為這個類。

算法流程

k-means聚類的算法是一個迭代過程,每次迭代包括兩個步驟。首先選擇k個類的中心,將樣本逐個指派到與其最近的中心的類中,得到一個聚類結(jié)果;然后更新每個類的樣本的均值,作為類的新的中心;重復(fù)上述步驟,直到收斂為止。

(1)當(dāng)有新的測試樣本出現(xiàn)時,計算其到訓(xùn)練集中每個數(shù)據(jù)點(diǎn)的距離;(距離度量)

(2)根據(jù)距離選擇與測試樣本距離最小的前k個訓(xùn)練樣本;(k值選擇)

(3)基于這k個訓(xùn)練樣本的類別來劃分新樣本的類別,通常選擇這k個訓(xùn)練樣本中出現(xiàn)次數(shù)最多的標(biāo)簽作為新樣本的類別。(決策規(guī)則)

算法圖示

k-近鄰算法概述,k-means與k-NN的區(qū)別對比,2023 AI,人工智能,機(jī)器學(xué)習(xí)

k-近鄰算法概述,k-means與k-NN的區(qū)別對比,2023 AI,人工智能,機(jī)器學(xué)習(xí)

k的意義

k是類的數(shù)目

k是用來計算的相鄰數(shù)據(jù)數(shù)

k的選擇

k是類的數(shù)目,是人為設(shè)定的數(shù)字??梢試L試不同的k值聚類,檢驗(yàn)各自得到聚類結(jié)果的質(zhì)量,推測最優(yōu)的k值。聚類結(jié)果的質(zhì)量可以用類的平均直徑來衡量。一般地,類別數(shù)變小時,平均直徑會增加;類別數(shù)變大超過某個值以后,平均直徑會不變;而這個值正式最優(yōu)的k值。實(shí)驗(yàn)時,可以采用二分查找,快速找到最優(yōu)的k值。

k值的選擇會對k-NN的結(jié)果產(chǎn)生重大影響。

·如果選擇較小的k值,就相當(dāng)于用較小的鄰域中的訓(xùn)練實(shí)例進(jìn)行預(yù)測,“學(xué)習(xí)”的近似誤差(approximation error)會減小,只有與輸入實(shí)例較近的(相似的)訓(xùn)練實(shí)例才會對預(yù)測結(jié)果起作用。但缺點(diǎn)是“學(xué)習(xí)”的估計誤差(estimation error)會增大,預(yù)測結(jié)果會對近鄰的實(shí)例點(diǎn)非常敏感。如果鄰近的實(shí)例點(diǎn)恰巧是噪聲,預(yù)測就會出錯。換句話說,k值的減小就意味著整體模型變得復(fù)雜,容易發(fā)生過擬合。

·如果選擇較大的k值,就相當(dāng)于用較大鄰域中的訓(xùn)練實(shí)例進(jìn)行預(yù)測。其優(yōu)點(diǎn)是可以減少學(xué)習(xí)的估計誤差,但缺點(diǎn)是學(xué)習(xí)的近似誤差會增大。這時與輸入實(shí)例較遠(yuǎn)的(不相似的)訓(xùn)練實(shí)例也會對預(yù)測起作用,使預(yù)測發(fā)生錯誤。k值的增大就意味著整體的模型變得簡單。

·如果k=n,那么無論輸入實(shí)例是什么,都將簡單地預(yù)測它屬于在訓(xùn)練實(shí)例中最多的類。這時,模型過于簡單,完全忽略訓(xùn)練實(shí)例中的大量有用信息,是不可取的。

·在應(yīng)用中,k值一般取一個比較小的數(shù)值。通常采用交叉驗(yàn)證法來選取最優(yōu)的k值。

k與結(jié)果

k值確定后每次結(jié)果可能不同,從 n 個數(shù)據(jù)對象任意選擇 k 個對象作為初始聚類中心,隨機(jī)性對結(jié)果影響較大。

k-NN算法中,當(dāng)訓(xùn)練集、距離度量(如歐氏距離)、k值和決策規(guī)則(如多數(shù)表決)確定后,對于任何一個新輸入的實(shí)例,它所屬的類唯一確定。

復(fù)雜度

時間復(fù)雜度:O(n*k*t),n為訓(xùn)練實(shí)例數(shù),k為聚類數(shù),t為迭代次數(shù)。

線性掃描時間復(fù)雜度:O(n)

kd樹方法時間復(fù)雜度:O(logn)

算法特點(diǎn)

是基于劃分的聚類方法;類別數(shù)k事先指定;以歐氏距離平方表示樣本之間的距離,以中心或樣本的均值表示類別;以樣本和其所屬類的中心之間的距離的總和為最優(yōu)化的目標(biāo)函數(shù);得到的類別是平坦的、非層次化的;算法是迭代算法,不能保證得到全局最優(yōu)。

k-NN算法沒有顯式的學(xué)習(xí)過程;實(shí)現(xiàn)k-NN時,主要考慮問題是如何對訓(xùn)練數(shù)據(jù)進(jìn)行快速k近鄰搜索。

算法優(yōu)點(diǎn)

1、解決聚類問題的經(jīng)典算法,簡單、快速;

2、當(dāng)處理大數(shù)據(jù)集時,算法保持可伸縮性和高效率;

3、當(dāng)簇近似為高斯分布時,效果較好;

4、時間復(fù)雜度近于線性,適合挖掘大規(guī)模數(shù)據(jù)集。

1、對輸入數(shù)據(jù)無假定,如不會假設(shè)輸入數(shù)據(jù)是服從正太分布;

2、k-NN可以處理分類問題,同時天然可以處理多分類問題,比如鳶尾花的分類;

3、簡單,易懂,同時也很強(qiáng)大,對于手寫數(shù)字的識別,鳶尾花這一類問題來說,準(zhǔn)確率很高;

4、k-NN還可以處理回歸問題,也就是預(yù)測;

5、對異常值不敏感;

6、可以用于數(shù)值型數(shù)據(jù),也可以用于離散型數(shù)據(jù)。

算法缺點(diǎn)

1、類別數(shù)k需要事先指定;

2、對初值敏感,即對于不同的初值,可能會導(dǎo)致不同結(jié)果;

3、不適合非凸形狀的簇或者大小差別很大的簇;

4、對噪聲和孤立點(diǎn)敏感;

5、屬于啟發(fā)式算法,不能保證得到全局最優(yōu)。

1、計算復(fù)雜度高,線性掃描方法需要計算輸入實(shí)例與每一個訓(xùn)練實(shí)例的距離,當(dāng)訓(xùn)練集很大時,計算非常耗時;可以通過kd樹等方法改進(jìn);

2、嚴(yán)重依賴訓(xùn)練樣本集,對訓(xùn)練數(shù)據(jù)的容錯性差,如果訓(xùn)練數(shù)據(jù)集中,有一兩個數(shù)據(jù)是錯誤的,剛剛好又在需要分類的數(shù)值的旁邊,就會直接導(dǎo)致預(yù)測的數(shù)據(jù)的不準(zhǔn)確;

3、距離度量方法以及k值的選取都有比較大的影響,k值選擇不當(dāng)則分類精度不能保證。

相似點(diǎn)

都包含這樣的過程,給定一個點(diǎn),在數(shù)據(jù)集中找離它最近的點(diǎn),即二者都用到了NN(Nearest Neighbor)算法,一般用kd樹來實(shí)現(xiàn)NN。文章來源地址http://www.zghlxwxcb.cn/news/detail-675051.html

到了這里,關(guān)于k-近鄰算法概述,k-means與k-NN的區(qū)別對比的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • k-means聚類算法詳解

    k-means聚類算法詳解

    什么是特征向量? 用來描述樣本點(diǎn)的一組數(shù)據(jù),要和我們數(shù)學(xué)中的向量區(qū)別一下,本質(zhì)來說就是個數(shù)組,數(shù)組中的每個元素代表從不同角度描述樣本點(diǎn)的值。 K-means 是我們最常用的基于 歐式距離 的聚類算法,其認(rèn)為兩個目標(biāo)的距離越近,相似度越大。 聚類就是對大量末知標(biāo)

    2024年02月16日
    瀏覽(19)
  • 【g】聚類算法之K-means算法

    聚類算法是一種無監(jiān)督學(xué)習(xí)方法,它將相似的數(shù)據(jù)樣本劃分為一組,同時將不相似的數(shù)據(jù)樣本劃分為另一組。這個過程由計算機(jī)自動完成,不需要任何人為的干預(yù)。 K-means算法是一種經(jīng)典的聚類算法,它的主要思想是把數(shù)據(jù)集分成k個簇,每個簇包括距離其它各簇最近的若干個

    2024年02月08日
    瀏覽(20)
  • 無涯教程-聚類算法 - K-Means

    K-均值聚類算法計算質(zhì)心并進(jìn)行迭代,直到找到最佳質(zhì)心為止,它假定群集的數(shù)目是已知的,它也稱為扁平聚類算法。通過算法從數(shù)據(jù)中識別出的簇數(shù)以K均值中的\\\" K\\\"表示。 在該算法中,將數(shù)據(jù)點(diǎn)分配給群集,以使數(shù)據(jù)點(diǎn)和質(zhì)心之間的平方距離之和最小。應(yīng)當(dāng)理解,簇內(nèi)的較

    2024年02月10日
    瀏覽(24)
  • 【機(jī)器學(xué)習(xí)】十大算法之一 “K-means”

    【機(jī)器學(xué)習(xí)】十大算法之一 “K-means”

    ? 作者主頁: 愛笑的男孩。的博客_CSDN博客-深度學(xué)習(xí),活動,python領(lǐng)域博主 愛笑的男孩。擅長深度學(xué)習(xí),活動,python,等方面的知識,愛笑的男孩。關(guān)注算法,python,計算機(jī)視覺,圖像處理,深度學(xué)習(xí),pytorch,神經(jīng)網(wǎng)絡(luò),opencv領(lǐng)域. https://blog.csdn.net/Code_and516?type=blog 個人簡介:打工人。 持續(xù)分

    2024年02月10日
    瀏覽(18)
  • K-means算法(知識點(diǎn)梳理)

    K-means算法(知識點(diǎn)梳理)

    目錄 一.K-means算法的原理和工作流程 1.算法原理 2.工作流程 二.K-means中常用的距離度量方法 1.歐幾里得距離(歐氏距離) 2.曼哈頓距離 3.切比雪夫距離 三.K-means算法中K值的選擇 1.手肘法 2. 輪廓系數(shù) ? ? ? ? 手肘法和輪廓系數(shù)的實(shí)現(xiàn) 四.初始點(diǎn)的選擇 1.隨機(jī)選擇 2.最遠(yuǎn)距離?

    2024年02月16日
    瀏覽(23)
  • K-means++聚類算法(matlab實(shí)現(xiàn))

    K-means++聚類算法(matlab實(shí)現(xiàn))

    K-means++算法:K-means++算法是K-means算法的改進(jìn)版,其在選擇初始質(zhì)心時采用了一種更加聰明的方法,能夠有效地避免局部最優(yōu)解。具體來說,K-means++算法的初始質(zhì)心是根據(jù)距離數(shù)據(jù)點(diǎn)最遠(yuǎn)的原則來選擇的,這樣可以保證初始質(zhì)心的分布更加廣泛,從而使得算法更容易找到全局最

    2024年02月07日
    瀏覽(26)
  • K-means聚類算法原理及實(shí)現(xiàn)

    K-means聚類算法原理及實(shí)現(xiàn)

    1.1概念 聚類分析,也稱為分割分析或分類分析,可將樣本數(shù)據(jù)分成一個個組(即簇)。同一簇中的對象是相似的,不同簇中的對象則明顯不同。 Statistics and Machine Learning Toolbox? 提供了幾種聚類方法和相似性度量(也稱為距離度量)來創(chuàng)建簇。此外,簇計算可以按照不同的計

    2024年03月18日
    瀏覽(20)
  • 機(jī)器學(xué)習(xí)之K-means聚類算法

    機(jī)器學(xué)習(xí)之K-means聚類算法

    目錄 K-means聚類算法 算法流程 優(yōu)點(diǎn) 缺點(diǎn) 隨機(jī)點(diǎn)聚類 人臉聚類 旋轉(zhuǎn)物體聚類 K-means聚類算法是一種無監(jiān)督的學(xué)習(xí)方法,通過對樣本數(shù)據(jù)進(jìn)行分組來發(fā)現(xiàn)數(shù)據(jù)內(nèi)在的結(jié)構(gòu)。K-means的基本思想是將n個實(shí)例分成k個簇,使得同一簇內(nèi)數(shù)據(jù)相似度高而不同簇之間數(shù)據(jù)相似度低。 K-means的

    2024年02月11日
    瀏覽(28)
  • 機(jī)器學(xué)習(xí)——K-Means算法優(yōu)化(一)代價函數(shù)

    機(jī)器學(xué)習(xí)——K-Means算法優(yōu)化(一)代價函數(shù)

    在K-Means算法中,對K個質(zhì)心的選擇,容易陷入局部最小值,從而每次聚類得到不同的結(jié)果。 使用多次的隨機(jī)初始化,并計算每一次建模得到的代價函數(shù)值,選取最小的代價函數(shù)值作為聚類結(jié)果,代價函數(shù)公式如下 J ( c ( 1 ) , … , c ( m ) , μ 1 , … , μ K ) = 1 m ∑ i = 1 m ∣ ∣ x (

    2024年02月02日
    瀏覽(23)
  • 機(jī)器學(xué)習(xí)之K-Means(k均值)算法

    機(jī)器學(xué)習(xí)之K-Means(k均值)算法

    K-Means算法又稱K均值算法,屬于聚類(clustering)算法的一種,是應(yīng)用最廣泛的聚類算法之一。所謂聚類,即根據(jù)相似性原則,將具有較高相似度的數(shù)據(jù)對象劃分至同一類簇,將具有較高相異度的數(shù)據(jù)對象劃分至不同類簇。聚類與分類最大的區(qū)別在于,聚類過程為無監(jiān)督過程,

    2024年02月03日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包