日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

数学建模——K-means聚类模型Python代码

發布時間:2025/3/21 python 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数学建模——K-means聚类模型Python代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、簡介
K均值聚類算法是先隨機選取K個對象作為初始的聚類中心。然后計算每個對象與各個種子聚類中心之間的距離,把每個對象分配給距離它最近的聚類中心。聚類中心以及分配給它們的對象就代表一個聚類。每分配一個樣本,聚類的聚類中心會根據聚類中現有的對象被重新計算。這個過程將不斷重復直到滿足某個終止條件。終止條件可以是沒有(或最小數目)對象被重新分配給不同的聚類,沒有(或最小數目)聚類中心再發生變化,誤差平方和局部最小。
二、
1.便于理解,首先創建一個明顯分為2類20*2的例子(每一列為一個變量共2個變量,每一行為一個樣本共20個樣本):

import numpy as np c1x=np.random.uniform(0.5,1.5,(1,10)) c1y=np.random.uniform(0.5,1.5,(1,10)) c2x=np.random.uniform(3.5,4.5,(1,10)) c2y=np.random.uniform(3.5,4.5,(1,10)) x=np.hstack((c1x,c2x)) y=np.hstack((c2y,c2y)) X=np.vstack((x,y)).T print(X)

結果:
[[1.4889993 4.18741329]
[0.73017615 4.07842216]
[1.15522846 4.05744838]
[1.40768457 3.76674812]
[1.376212 3.95063903]
[1.20821055 4.34138767]
[0.73898392 3.55026013]
[0.97116627 3.65432314]
[0.98267302 4.16731561]
[1.06346541 4.44383585]
[4.10945954 4.18741329]
[3.75288064 4.07842216]
[4.29638229 4.05744838]
[3.95221785 3.76674812]
[4.09826192 3.95063903]
[4.04840874 4.34138767]
[4.29594009 3.55026013]
[3.56931245 3.65432314]
[3.57962941 4.16731561]
[3.65208848 4.44383585]]

  • 引用Python庫將樣本分為兩類(k=2),并繪制散點圖:
    #只需將X修改即可進行其他聚類分析
  • import matplotlib.pyplot as plt from sklearn.cluster import KMeanskemans=KMeans(n_clusters=2) result=kemans.fit_predict(X) #訓練及預測 print(result) #分類結果plt.rcParams['font.family'] = ['sans-serif'] plt.rcParams['font.sans-serif'] = ['SimHei'] #散點圖標簽可以顯示中文x=[i[0] for i in X] y=[i[1] for i in X] plt.scatter(x,y,c=result,marker='o') plt.xlabel('x') plt.ylabel('y') plt.show()

    結果:
    [0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1]

  • 如果K值未知,可采用肘部法選擇K值(假設最大分類數為9類,分別計算分類結果為1-9類的平均離差,離差的提升變化下降最抖時的值為最優聚類數K):
  • import matplotlib.pyplot as plt from sklearn.cluster import KMeans from scipy.spatial.distance import cdistK=range(1,10) meanDispersions=[] for k in K:kemans=KMeans(n_clusters=k)kemans.fit(X)#計算平均離差m_Disp=sum(np.min(cdist(X,kemans.cluster_centers_,'euclidean'),axis=1))/X.shape[0]meanDispersions.append(m_Disp)plt.rcParams['font.family'] = ['sans-serif'] plt.rcParams['font.sans-serif'] = ['SimHei'] #使折線圖顯示中文plt.plot(K,meanDispersions,'bx-') plt.xlabel('k') plt.ylabel('平均離差') plt.title('用肘部方法選擇K值') plt.show()

    三、實例分析(對某網站500家飯店價格及評論進行聚類)

    import numpy as np from sklearn.cluster import KMeans from scipy.spatial.distance import cdist import matplotlib.pyplot as plt import pandas as pddata=pd.read_excel('data.xlsx',header=0).iloc[:501,3:5] per_25=data.describe().iloc[4,1] per_75=data.describe().iloc[6,1] data=data[(data.iloc[:,1]>=per_25)&(data.iloc[:,1]<=per_75)] #選擇位于四分位數之內的數 X=np.array(data)K=range(1,10) meanDispersions=[] for k in K:kemans=KMeans(n_clusters=k)kemans.fit(X)meanDispersions.append(sum(np.min(cdist(X,kemans.cluster_centers_,'euclidean'),axis=1))/X.shape[0])plt.rcParams['font.family'] = ['sans-serif'] plt.rcParams['font.sans-serif'] = ['SimHei'] plt.plot(K,meanDispersions,'bx-') plt.xlabel('k') plt.ylabel('平均離差') plt.title('用肘部方法選擇K值') plt.show()具體聚類過程from sklearn.cluster import KMeans import matplotlib.pyplot as pltkemans=KMeans(n_clusters=3) result=kemans.fit_predict(X) print(result) x=[i[0] for i in X] y=[i[1] for i in X] plt.scatter(x,y,c=result,marker='o') plt.xlabel('avgPrice') plt.ylabel('llCommentNum') plt.title('對500家飯店價格與評論數進行聚類')

    聚類結果:
    [2 0 0 0 0 1 0 0 2 0 0 2 1 2 0 1 2 0 2 2 2 0 0 0 0 1 2 0 1 0 0 2 2 2 2 2 2
    2 2 0 1 0 0 0 1 0 2 2 0 2 2 0 0 2 2 2 1 0 1 1 1 0 0 0 0 1 2 1 2 0 2 1 0 0
    2 1 1 0 0 1 2 2 0 2 2 1 0 2 1 0 2 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 2 1 2 1
    1 0 0 1 0 1 2 1 0 1 1 0 1 1 0 1 0 2 1 1 0 1 0 2 0 2 1 2 1 1 0 0 1 0 1 0 1
    0 2 0 1 1 0 1 0 0 1 1 1 1 0 0 0 0 1 0 0 0 2 0 1 1 0 1 0 1 0 0 0 0 1 1 0 1
    2 0 1 1 2 0 1 0 0 1 1 1 1 1 0 0 0 1 1 1 2 0 1 1 1 2 2 0 0 2 1 1 2 1 1 1 0
    1 1 0 1 2 2 0 2 2 2 0 1 0 1 1 2 1 1 1 0 1 1 1 1 0 0 0 0 1]

    總結

    以上是生活随笔為你收集整理的数学建模——K-means聚类模型Python代码的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 无码熟妇αⅴ人妻又粗又大 | 99精品久久99久久久久 | 跪求黄色网址 | 一区二区三区免费观看视频 | 伊人久久久久久久久久久久 | 打白嫩屁屁网站视频短裙 | 日韩一区二区中文字幕 | a色网站| 国产精品久久久久久久久久久免费看 | 日本天堂在线 | 精品国产一区二区三区日日嗨 | 一区二区三区av在线 | 国产精品第八页 | 国产污污在线观看 | 情侣黄网站免费看 | 中国一级特黄毛片 | 在线sese| 亚洲狼人色 | 制服.丝袜.亚洲.另类.中文 | 厕拍极品 | 性欧美lx╳lx╳ | 国产一区导航 | 天堂成人在线观看 | 在线欧美视频 | 在线观看免费视频一区 | 国产91免费看 | av片手机在线观看 | 亚洲AV无码国产精品午夜字幕 | 高跟鞋av| 中文字幕人妻一区二区三区 | 精品一区二区日韩 | 污片免费在线观看 | 高清av免费观看 | 国产毛片3 | 中文字幕乱妇无码av在线 | 希岛婚前侵犯中文字幕在线 | 国产一区二区影院 | 草莓巧克力香氛动漫的观看方法 | 草久久免费视频 | 色网站免费 | 中文字幕一本 | 亚洲激情区| 国产精品嫩草影院av蜜臀 | 伦理一级片 | 成年女人18级毛片毛片免费 | 欧美一区影院 | 国产精品丝袜视频 | 九色91丨porny丨丝袜 | 日韩在线不卡一区 | 亚洲欧美另类中文字幕 | 亚洲中字| 日韩中文字幕影院 | 久久毛片网站 | 国产a精品 | 欧美日韩一级视频 | 91视频国产免费 | 乌克兰性极品xxxhd | 中文字幕35页 | 久久精品国内 | 天天射天天爽 | 中文字幕狠狠 | 97在线免费 | 青青草视频| 九一精品国产 | 黄色一级片欧美 | 色综合天天综合网国产成人网 | 欧美精品乱码久久久久久 | 精品午夜一区二区三区在线观看 | www.我爱av| 国产又黄又嫩又滑又白 | 日韩精品久久久久久 | 黄瓜视频在线观看污 | 亚洲射射 | 在线天堂一区 | 伊人影视大全 | 久久精品黄色 | www日韩| 一级欧美一级日韩片 | 国产欧美一区二 | 欧美三级手机在线观看 | 久久国产一区二区三区 | 国产成人无码av在线播放dvd | 久久久久九九 | 欧美香蕉| 国产免费一级视频 | 国产18一19sex性护士 | 99久久婷婷国产综合精品电影 | 美女露胸软件 | 久久国产片 | 久久久久久久麻豆 | 成人在线不卡 | 国语精品 | 波多野结衣中文字幕一区二区三区 | 亚洲网站在线免费观看 | 久久久夜夜 | 激情视频网站在线观看 | 黄色日批 | 亚洲精品日本 | 97色干 |