最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python聚類(lèi)算法之基本K均值實(shí)例詳解

 更新時(shí)間:2015年11月20日 10:44:19   作者:intergret  
這篇文章主要介紹了Python聚類(lèi)算法之基本K均值運(yùn)算技巧,結(jié)合實(shí)例形式較為詳細(xì)的分析了基本K均值的原理與相關(guān)實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了Python聚類(lèi)算法之基本K均值運(yùn)算技巧。分享給大家供大家參考,具體如下:

基本K均值 :選擇 K 個(gè)初始質(zhì)心,其中 K 是用戶指定的參數(shù),即所期望的簇的個(gè)數(shù)。每次循環(huán)中,每個(gè)點(diǎn)被指派到最近的質(zhì)心,指派到同一個(gè)質(zhì)心的點(diǎn)集構(gòu)成一個(gè)。然后,根據(jù)指派到簇的點(diǎn),更新每個(gè)簇的質(zhì)心。重復(fù)指派和更新操作,直到質(zhì)心不發(fā)生明顯的變化。

# scoding=utf-8
import pylab as pl
points = [[int(eachpoint.split("#")[0]), int(eachpoint.split("#")[1])] for eachpoint in open("points","r")]
# 指定三個(gè)初始質(zhì)心
currentCenter1 = [20,190]; currentCenter2 = [120,90]; currentCenter3 = [170,140]
pl.plot([currentCenter1[0]], [currentCenter1[1]],'ok')
pl.plot([currentCenter2[0]], [currentCenter2[1]],'ok')
pl.plot([currentCenter3[0]], [currentCenter3[1]],'ok')
# 記錄每次迭代后每個(gè)簇的質(zhì)心的更新軌跡
center1 = [currentCenter1]; center2 = [currentCenter2]; center3 = [currentCenter3]
# 三個(gè)簇
group1 = []; group2 = []; group3 = []
for runtime in range(50):
  group1 = []; group2 = []; group3 = []
  for eachpoint in points:
    # 計(jì)算每個(gè)點(diǎn)到三個(gè)質(zhì)心的距離
    distance1 = pow(abs(eachpoint[0]-currentCenter1[0]),2) + pow(abs(eachpoint[1]-currentCenter1[1]),2)
    distance2 = pow(abs(eachpoint[0]-currentCenter2[0]),2) + pow(abs(eachpoint[1]-currentCenter2[1]),2)
    distance3 = pow(abs(eachpoint[0]-currentCenter3[0]),2) + pow(abs(eachpoint[1]-currentCenter3[1]),2)
    # 將該點(diǎn)指派到離它最近的質(zhì)心所在的簇
    mindis = min(distance1,distance2,distance3)
    if(mindis == distance1):
      group1.append(eachpoint)
    elif(mindis == distance2):
      group2.append(eachpoint)
    else:
      group3.append(eachpoint)
  # 指派完所有的點(diǎn)后,更新每個(gè)簇的質(zhì)心
  currentCenter1 = [sum([eachpoint[0] for eachpoint in group1])/len(group1),sum([eachpoint[1] for eachpoint in group1])/len(group1)]
  currentCenter2 = [sum([eachpoint[0] for eachpoint in group2])/len(group2),sum([eachpoint[1] for eachpoint in group2])/len(group2)]
  currentCenter3 = [sum([eachpoint[0] for eachpoint in group3])/len(group3),sum([eachpoint[1] for eachpoint in group3])/len(group3)]
  # 記錄該次對(duì)質(zhì)心的更新
  center1.append(currentCenter1)
  center2.append(currentCenter2)
  center3.append(currentCenter3)
# 打印所有的點(diǎn),用顏色標(biāo)識(shí)該點(diǎn)所屬的簇
pl.plot([eachpoint[0] for eachpoint in group1], [eachpoint[1] for eachpoint in group1], 'or')
pl.plot([eachpoint[0] for eachpoint in group2], [eachpoint[1] for eachpoint in group2], 'oy')
pl.plot([eachpoint[0] for eachpoint in group3], [eachpoint[1] for eachpoint in group3], 'og')
# 打印每個(gè)簇的質(zhì)心的更新軌跡
for center in [center1,center2,center3]:
  pl.plot([eachcenter[0] for eachcenter in center], [eachcenter[1] for eachcenter in center],'k')
pl.show()

運(yùn)行效果截圖如下:

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 使用python PIL庫(kù)批量對(duì)圖片添加水印的過(guò)程詳解

    使用python PIL庫(kù)批量對(duì)圖片添加水印的過(guò)程詳解

    平常我們想給某些圖片添加文字水印,方法有很多,也有很多的工具可以方便的進(jìn)行,今天主要是對(duì)PIL庫(kù)的應(yīng)用,結(jié)合Python語(yǔ)言批量對(duì)圖片添加水印,文章通過(guò)代碼示例給大家介紹的非常詳細(xì),感興趣的同學(xué)可以參考一下
    2023-11-11
  • 導(dǎo)致python中import錯(cuò)誤的原因是什么

    導(dǎo)致python中import錯(cuò)誤的原因是什么

    在本篇文章里小編給大家整理了關(guān)于python的import錯(cuò)誤原因以及相關(guān)內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-07-07
  • Python?設(shè)計(jì)模式中命令模式

    Python?設(shè)計(jì)模式中命令模式

    這篇文章主要介紹了Python?設(shè)計(jì)模式中的命令模式,命令模式的目的是解耦調(diào)用操作的對(duì)象和提供實(shí)現(xiàn)的對(duì)象,下文介紹具有一定參考價(jià)值,需要的小伙伴可以參考一下
    2022-02-02
  • 如何將yolo格式轉(zhuǎn)化為voc格式:txt轉(zhuǎn)xml(親測(cè)有效)

    如何將yolo格式轉(zhuǎn)化為voc格式:txt轉(zhuǎn)xml(親測(cè)有效)

    這篇文章主要介紹了如何將yolo格式轉(zhuǎn)化為voc格式:txt轉(zhuǎn)xml,親測(cè)有效,可以使用,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),感興趣的朋友參考下吧
    2023-12-12
  • pytorch中nn.Sequential和nn.Module的區(qū)別與選擇方案

    pytorch中nn.Sequential和nn.Module的區(qū)別與選擇方案

    在 PyTorch 中,構(gòu)建神經(jīng)網(wǎng)絡(luò)模型有兩種主要方式:nn.Sequential 和 nn.Module,它們各有優(yōu)缺點(diǎn),適用于不同的場(chǎng)景,下面通過(guò)示例給大家講解pytorch中nn.Sequential和nn.Module的區(qū)別與選擇方案,感興趣的朋友一起看看吧
    2024-06-06
  • python判斷字符串或者集合是否為空的實(shí)例

    python判斷字符串或者集合是否為空的實(shí)例

    今天小編就為大家分享一篇python判斷字符串或者集合是否為空的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • 對(duì)dataframe進(jìn)行列相加,行相加的實(shí)例

    對(duì)dataframe進(jìn)行列相加,行相加的實(shí)例

    今天小編就為大家分享一篇對(duì)dataframe進(jìn)行列相加,行相加的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 使用python進(jìn)行圖片的文字識(shí)別詳細(xì)代碼

    使用python進(jìn)行圖片的文字識(shí)別詳細(xì)代碼

    Tesseract OCR是一款由Google團(tuán)隊(duì)開(kāi)發(fā)的開(kāi)源OCR引擎,用于將圖片、PDF 等格式中的文本轉(zhuǎn)換為可編輯的文本格式,本文主要介紹了Python進(jìn)行圖片的文字識(shí)別功能OCR的相關(guān)知識(shí),需要的朋友可以參考下
    2023-05-05
  • 在python中實(shí)現(xiàn)求輸出1-3+5-7+9-......101的和

    在python中實(shí)現(xiàn)求輸出1-3+5-7+9-......101的和

    這篇文章主要介紹了在python中實(shí)現(xiàn)求輸出1-3+5-7+9-......101的和,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • 如何用Python畫(huà)一些簡(jiǎn)單形狀你知道嗎

    如何用Python畫(huà)一些簡(jiǎn)單形狀你知道嗎

    這篇文章主要介紹了用Python作圖的一個(gè)簡(jiǎn)單實(shí)例,通過(guò)turtle模塊實(shí)現(xiàn)作圖,具有一定參考價(jià)值,需要的朋友可以了解下希望能給你帶來(lái)幫助
    2021-08-08

最新評(píng)論

安达市| 沾益县| 绥芬河市| 资兴市| 安吉县| 遂溪县| 改则县| 上林县| 方山县| 康乐县| 长岭县| 富源县| 遵义县| 永顺县| 枣庄市| 新密市| 报价| 山丹县| 康乐县| 宜君县| 饶阳县| 宝兴县| 大城县| 元阳县| 怀来县| 武夷山市| 辽阳县| 东阿县| 梁山县| 永登县| 金堂县| 旬阳县| 大足县| 神池县| 邵武市| 敦煌市| 郸城县| 淮滨县| 舟曲县| 蓝山县| 胶南市|