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

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

這篇具有很好參考價值的文章主要介紹了K-means算法(知識點梳理)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

一.K-means算法的原理和工作流程

1.算法原理

2.工作流程

二.K-means中常用的距離度量方法

1.歐幾里得距離(歐氏距離)

2.曼哈頓距離

3.切比雪夫距離

三.K-means算法中K值的選擇

1.手肘法

2. 輪廓系數(shù)

? ? ? ? 手肘法和輪廓系數(shù)的實現(xiàn)

四.初始點的選擇

1.隨機選擇

2.最遠距離?? ? ??

3.層次聚類或canopy預(yù)處理

五.陷入質(zhì)心的循環(huán)停不下來怎么辦

1.原因

2.怎么辦?

六.K-means算法與KNN算法的共同點與區(qū)別

1.區(qū)別

2.共同點

七.K-means算法的優(yōu)缺點

1.K-means算法的優(yōu)點

2.K-means算法的缺點

八.根據(jù)K-means算法的缺點,有哪些改進的算法

1.K-means++

2.ISODATA

3.Kernel K-means

九.如何對K-means進行算法調(diào)優(yōu)

十.K-means算法實現(xiàn)


一.K-means算法的原理和工作流程

1.算法原理

????????K-means算法是基于原型的,根據(jù)距離劃分組的無監(jiān)督聚類算法,對于給定的樣本集,按照樣本間的距離大小,將樣本劃分為K個簇,使得簇內(nèi)的點盡量緊密相連,而簇間的點距離盡量大。

2.工作流程

????????step1:隨機選取K個點作為聚類中心,即k個類中心向量

????????step2:分別計算其他樣本點到各個類中心向量的距離,并將其劃分到距離最近的類

????????step3:更新各個類的中心向量

? ? ? ? step4:判斷新的類中心向量是否發(fā)生改變,若發(fā)生改變則轉(zhuǎn)到step2,若類中心向量不再發(fā)生變化,停止并輸出聚類結(jié)果

二.K-means中常用的距離度量方法

1.歐幾里得距離(歐氏距離)

????????k-means算法,k-means,kmeans

? ? ? ? 衡量多維空間中的兩點間距離,也是最常用的距離度量方法。

2.曼哈頓距離

? ? ??k-means算法,k-means,kmeans

? ? ? ? ?曼哈頓距離也叫出租車距離,用來標明兩個點在標準坐標系上的絕對軸距總和。

3.切比雪夫距離

????????k-means算法,k-means,kmeans

三.K-means算法中K值的選擇

? ? ? ? 思考:如果我們的數(shù)據(jù)是關(guān)于色彩RGB數(shù)據(jù),我們可以直接設(shè)置K為3對圖片的參數(shù)進行聚類分析,這是在我們已知數(shù)據(jù)基本信息的前提下采取的策略。但是,如果我們并不知道數(shù)據(jù)的基本信息,怎么分類,分成幾類就是我們不得不思考的問題,這時,我們更希望能夠從數(shù)據(jù)的角度出發(fā),判斷這一組數(shù)據(jù)希望自己分成幾類,即K為幾時分類效果最好。

1.手肘法

? ? ? ? 1.簡單描述手肘法

????????手肘法是最常用的確定K-means算法K值的方法,所用到的衡量標準是SSE(sum of the squared errors,誤差平方和)??

? ? ? ? 主要思想:當k小于真實聚類數(shù)時,隨著k的增大,會大幅提高類間聚合程度,SSE會大幅下降,當k達到真實聚類數(shù)時,隨著k的增加,類間的聚合程度不會大幅提高,SSE的下降幅度也不會很大,所以k/SSE的折線圖看起來像一個手肘,我們選取肘部的k值進行運算。

????????????????

2. 輪廓系數(shù)

? ? ? ? 1.簡單描述輪廓系數(shù)

? ? ? ? ? ? ? ? 使用輪廓系數(shù)時,先假設(shè)已經(jīng)將樣本集分成了k個簇,針對每個點,計算其輪廓系數(shù)

? ? ? ? ? ? ? ? 輪廓系數(shù)公式:

????????????????????????k-means算法,k-means,kmeans

? ? ? ? ? ? ? ? 其中a(i)是樣本點x(i)對同簇其他樣本點的平均距離,稱為凝聚度;b(i)是樣本點x(i)到最近簇所有樣本的平均距離,稱為分離度。

? ? ? ? ? ? ? ? 最近簇定義如下:

????????????????????????

?????????????????就是用Xi到某個簇所有樣本平均距離作為衡量該點到該簇的距離后,選擇離Xi最近的一個簇作為最近簇。

? ? ? ? ? ? ? ? 求出所有點的輪廓系數(shù)再求平均值就得出了平均輪廓系數(shù),平均輪廓系數(shù)的取值在[-1,1],顯然,由輪廓系數(shù)公式可以觀察出,凝聚度越小,分離度越大,分類效果越好,平均輪廓系數(shù)也越大,所以,取平均輪廓系數(shù)最大的點的k值時,分類效果越好

? ? ? ? 手肘法和輪廓系數(shù)的實現(xiàn)

import matplotlib.pyplot as plt
import pandas as pd
from sklearn.metrics import silhouette_score
from sklearn.cluster import KMeans

data=pd.read_excel(r'C:\Users\21091\Downloads\wine.xlsx')

scores=[]  #存放輪廓系數(shù)
distortions=[]#簇內(nèi)誤差平方和  SSE
for i in range(2,10):
    Kmeans_model=KMeans(n_clusters=i)
    predict_=Kmeans_model.fit_predict(data)
    scores.append( silhouette_score(data,predict_))
    distortions.append(Kmeans_model.inertia_)
print("輪廓系數(shù):",scores)
print("簇內(nèi)誤差平方和:",distortions)

#SSE  手肘法
plt.plot(range(2,10),distortions,marker='x')
plt.xlabel('Number of clusters')
plt.ylabel('Distortion')
plt.title('distortions')
plt.show()

#輪廓系數(shù)法
plt.plot(range(2,10),scores,marker='x')
plt.xlabel('Number of clusters')
plt.ylabel('scores')
plt.title('scores')
plt.show()

運行結(jié)果

k-means算法,k-means,kmeans

k-means算法,k-means,kmeans

????????????????????????

四.初始點的選擇

1.隨機選擇

? ? ? ? ? ?顧名思義,隨機選取k個點作為初始點

2.最遠距離?? ? ??

? ? ? ? 先選取1個點作為聚類中心,遍歷其余所有樣本點,選擇距離最遠的樣本點作為第二個聚類中心,計算這兩個點的中心向量,再次遍歷樣本點,找到最遠的點作為第三個聚類中心,迭代直至找到k個點。

3.層次聚類或canopy預(yù)處理

? ? ? ? 先得到k個簇,再從每個簇中選擇一個點,該點可以是中心點,也可以是離中心點最近的點。

五.陷入質(zhì)心的循環(huán)停不下來怎么辦

1.原因

? ? ? ? 可能樣本數(shù)據(jù)本身不收斂

2.怎么辦?

? ? ? ? 1.進行迭代次數(shù)設(shè)置

? ? ? ? 2.設(shè)定收斂判斷距離

六.K-means算法與KNN算法的共同點與區(qū)別

1.區(qū)別

? ? ? ? 1.K-means算法是聚類算法,無監(jiān)督學習;KNN算法是分類算法,監(jiān)督學習

? ? ? ? 2.K-means算法與KNN算法中的K值含義不同

? ? ? ? ? ? ? ? K-means算法是將樣本聚類成K個類;KNN算法是將輸入數(shù)據(jù)的特征與樣本集中數(shù)據(jù)的特征進行比較,取最相似的K個數(shù)據(jù),若其中X類數(shù)據(jù)占大部分,則將這個輸入數(shù)據(jù)劃分為X類。

? ? ? ? 3.K-means算法有明顯的前期訓練過程,KNN算法沒有。

2.共同點

? ? ? ? 都用到了NN(Nears Neighbor)算法 ,即根據(jù)一個點,在樣本集中找到離它最近的點。

七.K-means算法的優(yōu)缺點

1.K-means算法的優(yōu)點

? ? ? ?(1)原理簡單,容易實現(xiàn)
???????(2)可解釋度較強

2.K-means算法的缺點

????????(1)K值很難確定
????????(2)局部最優(yōu)
????????(3)對噪音和異常點敏感
????????(4)需樣本存在均值(限定數(shù)據(jù)種類)
????????(5)聚類效果依賴于聚類中心的初始化
????????(6)對于非凸數(shù)據(jù)集或類別規(guī)模差異太大的數(shù)據(jù)效果不好

八.根據(jù)K-means算法的缺點,有哪些改進的算法

1.K-means++

? ? ? ? ? ? ? 利用距離越遠越好的策略選取初始點

2.ISODATA

? ? ? ? ? ? ? ? 當屬于某個類的樣本點過少時,把這個類去掉;當屬于某個類的樣本點過多且分散時,將這個類分為兩個類

3.Kernel K-means

? ? ? ? ? ? ? ? 參照支持向量機中核函數(shù)的定義,將所有樣本映射到另外一個特征空間中再進行聚類,有可能改善聚類效果。

九.如何對K-means進行算法調(diào)優(yōu)

1.數(shù)據(jù)歸一化和離散點處理

2.合理選擇k值

3.使用核方法

十.K-means算法實現(xiàn)

? ? ? ? ? 煩請移步我的另一篇博客:

????????https://blog.csdn.net/weixin_46336091/article/details/123881505文章來源地址http://www.zghlxwxcb.cn/news/detail-595211.html

到了這里,關(guān)于K-means算法(知識點梳理)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【機器學習】十大算法之一 “K-means”

    【機器學習】十大算法之一 “K-means”

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

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

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

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

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

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

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

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

    2024年02月07日
    瀏覽(26)
  • 機器學習之K-means聚類算法

    機器學習之K-means聚類算法

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

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

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

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

    2024年03月18日
    瀏覽(21)
  • 機器學習——K-Means算法優(yōu)化(一)代價函數(shù)

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

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

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

    機器學習之K-Means(k均值)算法

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

    2024年02月03日
    瀏覽(22)
  • K-means聚類算法(附Python實現(xiàn)代碼)

    K-means聚類算法(附Python實現(xiàn)代碼)

    本文的代碼與數(shù)據(jù)地址已上傳至github:https://github.com/helloWorldchn/MachineLearning 1、基于劃分的聚類 劃分算法的思想是,將給定待挖掘數(shù)據(jù)集中的數(shù)據(jù)對象劃分成K組(k≤N,N代表數(shù)據(jù)集中對象數(shù)目),每一組表示一個聚類的簇。并且要滿足任何一個數(shù)據(jù)對象僅可以屬于一個聚類,

    2024年02月07日
    瀏覽(27)
  • 傳統(tǒng)機器學習(三)聚類算法K-means(一)

    傳統(tǒng)機器學習(三)聚類算法K-means(一)

    K-Means算法是無監(jiān)督的聚類算法,它實現(xiàn)起來比較簡單,聚類效果也不錯,因此應(yīng)用很廣泛。K-Means基于歐式距離認為兩個目標距離越近,相似度越大。 1.1.1 算法流程 (1)圖a表達了初始的數(shù)據(jù)集, 假設(shè)k=2; (2)在圖b中,隨機選擇兩個k類的對應(yīng)的類別質(zhì)心,即圖中的紅色質(zhì)

    2023年04月15日
    瀏覽(17)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包