機(jī)器學(xué)習(xí)聚類算法實(shí)現(xiàn)_第1頁(yè)
機(jī)器學(xué)習(xí)聚類算法實(shí)現(xiàn)_第2頁(yè)
機(jī)器學(xué)習(xí)聚類算法實(shí)現(xiàn)_第3頁(yè)
機(jī)器學(xué)習(xí)聚類算法實(shí)現(xiàn)_第4頁(yè)
機(jī)器學(xué)習(xí)聚類算法實(shí)現(xiàn)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

./《人工智能與機(jī)器學(xué)習(xí)》實(shí)驗(yàn)報(bào)告年級(jí)__xxxx班____________專業(yè)___________xxxxx_________學(xué)號(hào)____________6315070301XX________________________gllh________________日期___________2018-5-12__實(shí)驗(yàn)五聚類算法實(shí)現(xiàn)一、實(shí)驗(yàn)?zāi)康?、了解常用聚類算法及其優(yōu)缺點(diǎn)2、掌握k-means聚類算法對(duì)數(shù)據(jù)進(jìn)行聚類分析的基本原理和劃分方法3、利用k-means聚類算法對(duì)已知數(shù)據(jù)集進(jìn)行聚類分析實(shí)驗(yàn)類型:驗(yàn)證性計(jì)劃課間:4學(xué)時(shí)二、實(shí)驗(yàn)容1、利用python的sklearn庫(kù)函數(shù)對(duì)給定的數(shù)據(jù)集進(jìn)行聚類分析2、分析k-means算法的實(shí)現(xiàn)流程3、根據(jù)算法描述編程實(shí)現(xiàn),調(diào)試運(yùn)行4、對(duì)所給數(shù)據(jù)集進(jìn)行驗(yàn)證,得到分析結(jié)果三、實(shí)驗(yàn)步驟1、k-means算法原理2、k-means算法流程3、k-means算法實(shí)現(xiàn)4、對(duì)已知數(shù)據(jù)集進(jìn)行分析四、實(shí)驗(yàn)結(jié)果分析1.利用python的sklearn庫(kù)函數(shù)對(duì)給定的數(shù)據(jù)集進(jìn)行聚類分析:其中數(shù)據(jù)集選取iris鳶尾花數(shù)據(jù)集importnumpyasnpfromsklearn.datasetsimportload_irisiris=load_iris<>defdist<x,y>:returnsum<x*y>/<sum<x**2>*sum<y**2>>**0.5defK_means<data=iris.data,k=3,ping=0,maxiter=100>:n,m=data.shapecenters=data[:k,:]whileping<maxiter:dis=np.zeros<[n,k+1]>foriinrange<n>:forjinrange<k>:dis[i,j]=dist<data[i,:],centers[j,:]>dis[i,k]=dis[i,:k].argmax<>centers_new=np.zeros<[k,m]>foriinrange<k>:index=dis[:,k]==icenters_new[i,:]=np.mean<data[index,:],axis=0>ifnp.all<centers==centers_new>:breakcenters=centers_newping+=1returndisif__name__=='__main__':res=K_means<>print<res>〔1、首先求出樣本之間的余弦相似度:sum<x*y>/<sum<x**2>*sum<y**2>>**0.5〔2、設(shè)置k類別數(shù)為3,最大迭代次數(shù)為100K_means<data=iris.data,k=3,ping=0,maxiter=100>:〔3、設(shè)置樣本個(gè)數(shù)、屬性個(gè)數(shù)并初始化類中心n,m=data.shapecenters=data[:k,:]〔4、求各樣本至各類中心的距離foriinrange<n>:forjinrange<k>:dis[i,j]=dist<data[i,:],centers[j,:]>dis[i,k]=dis[i,:k].argmax<>〔5、求新類中心:各類樣本均值作為新類中心foriinrange<k>:index=dis[:,k]==icenters_new[i,:]=np.mean<data[index,:],axis=0>實(shí)驗(yàn)結(jié)果:2.使用自己的數(shù)據(jù)集進(jìn)行聚類分析并進(jìn)行可視化:#-*-coding:utf-8-*-importnumpyasnpimportpandasaspdfromsklearn.clusterimportBirchfromsklearn.clusterimportKMeansfrommatplotlibimportpyplotaspltfrommatplotlib.font_managerimportFontPropertiesdf=pd.read_csv<"fa.csv",encoding="utf-8">X=df[['height','weight']].valuesclf=KMeans<n_clusters=2>y_pred=clf.fit_predict<X>print<clf>print<y_pred>x=[n[0]forninX]print<x>y=[n[1]forninX]print<y>plt.scatter<x,y,c=y_pred,marker='o'>plt.title<"K-meansBoy/Girl-height-weightData">plt.xlabel<"Height/cm">plt.ylabel<"Weight/kg">plt.legend<["Position"]>plt.show<>本數(shù)據(jù)集使用男性女性身高體重?cái)?shù)據(jù)集,k值為2,就是講數(shù)據(jù)聚合為2類,看身高體重分布結(jié)果。從此次實(shí)驗(yàn)看出,聚類數(shù)據(jù)集必須可以分類才能使用此算法,否則就會(huì)產(chǎn)生如下結(jié)果:此數(shù)據(jù)集為UCI香水?dāng)?shù)據(jù),無法進(jìn)行聚類分析五、實(shí)驗(yàn)心得通過這次實(shí)驗(yàn),使用K-means算法對(duì)數(shù)據(jù)集進(jìn)行聚類分析,了解了算法的過程,首先選擇K個(gè)點(diǎn)作為初始質(zhì)心,之后進(jìn)行重復(fù)并將每個(gè)點(diǎn)指派到最近的質(zhì)心,形成K個(gè)簇后重新計(jì)算每個(gè)簇的質(zhì)心直到簇不發(fā)生變化或達(dá)到最大迭代次數(shù)為止,首先我們要直到有多少種分類,選擇K個(gè)初始質(zhì)心,其中K是指定的參數(shù),即所期望的簇的個(gè)數(shù)。這樣做的前提是我們已經(jīng)知道數(shù)據(jù)集中包含多少個(gè)簇,但很多情況下,我們并不知道數(shù)據(jù)的分布情況,實(shí)際上聚類就是我們發(fā)現(xiàn)數(shù)據(jù)分布的一種手段,之后質(zhì)心的選取也非常重要,選擇適當(dāng)?shù)某跏假|(zhì)心是基本k

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論