機器知識學習聚類算法實現(xiàn)_第1頁
機器知識學習聚類算法實現(xiàn)_第2頁
機器知識學習聚類算法實現(xiàn)_第3頁
機器知識學習聚類算法實現(xiàn)_第4頁
機器知識學習聚類算法實現(xiàn)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

**《人工智能與機器學習》實驗報告年級__ xxxx班____________專業(yè)___________xxxxx_________謝謝閱讀學號____________6315070301XX___________感謝閱讀姓名_____________gllh________________感謝閱讀**日期___________2018-5-12 __實驗五聚類算法實現(xiàn)一、實驗目的1、了解常用聚類算法及其優(yōu)缺點2、掌握k-means聚類算法對數(shù)據(jù)進行聚類分析的基本原理和劃分方法謝謝閱讀3、利用k-means聚類算法對已知數(shù)據(jù)集進行聚類分析謝謝閱讀實驗類型:驗證性計劃課間:4學時二、實驗內容1、利用python的sklearn庫函數(shù)對給定的數(shù)據(jù)集進行聚類分析精品文檔放心下載2、分析k-means算法的實現(xiàn)流程3、根據(jù)算法描述編程實現(xiàn),調試運行4、對所給數(shù)據(jù)集進行驗證,得到分析結果三、實驗步驟1、k-means算法原理2、k-means算法流程**3、k-means算法實現(xiàn)4、對已知數(shù)據(jù)集進行分析四、實驗結果分析利用python的sklearn庫函數(shù)對給定的數(shù)據(jù)集進行聚類分析:感謝閱讀其中數(shù)據(jù)集選取iris鳶尾花數(shù)據(jù)集importnumpyasnpfromsklearn.datasetsimportload_iris精品文檔放心下載iris=load_iris()defdist(x,y):returnsum(x*y)/(sum(x**2)*sum(y**2))**0.5精品文檔放心下載defK_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)、設置k類別數(shù)為3,最大迭代次數(shù)為100K_means(data=iris.data,k=3,ping=0,maxiter=100):精品文檔放心下載**(3)、設置樣本個數(shù)、屬性個數(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ù)據(jù)集進行聚類分析并進行可視化:#-*-coding:utf-8-*-importnumpyasnpimportpandasaspdfromsklearn.clusterimportBirch感謝閱讀fromsklearn.clusterimportKMeans謝謝閱讀**frommatplotlibimportpyplotasplt精品文檔放心下載frommatplotlib.font_managerimportFontProperties謝謝閱讀df=pd.read_csv("fa.csv",encoding="utf-8")精品文檔放心下載X=df[['height','weight']].values精品文檔放心下載clf=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ù)集使用男性女性身高體重數(shù)據(jù)集,k值為2,就是講數(shù)據(jù)聚合為2類,看身高體重分布結果。感謝閱讀**從此次實驗看出,聚類數(shù)據(jù)集必須可以分類才能使用此算法,否則就會產(chǎn)生如下結果:謝謝閱讀**此數(shù)據(jù)集為UCI香水數(shù)據(jù),無法進行聚類分析五、實驗心得**通過這次實驗,使用K-means算法對數(shù)據(jù)集進行聚類分析,了解了算法的過程,謝謝閱讀首先選擇K個點作為初始質心,之后進行重復并將每個點指派到最近的質心,形成K個簇感謝閱讀后重新計算每個簇的質心直到簇不發(fā)生變化或達到最大迭代次數(shù)為止,首先我們要直到有感謝閱讀多少種分類,選擇K個初始質心,其中K是指定的參數(shù),即所期望的簇的個數(shù)。這樣做的謝謝閱讀前提是我們已經(jīng)知道數(shù)據(jù)集中包含多少個簇,但很多情況下,我們并不知道數(shù)據(jù)的分布情感謝閱讀況,實際上聚類就是我們發(fā)現(xiàn)數(shù)據(jù)分布的一種手段,之后質心的選取也非常重要,選擇適謝謝閱讀當?shù)某跏假|心是基本kmeans算法的關鍵,一般是隨機的選取

溫馨提示

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

評論

0/150

提交評論