一、kmeans.fit什麼意思
kmeans.fit是sklearn.cluster中KMeans聚類演算法的一部分,其作用是通過對數據的聚類分析,將數據分為k個不同的類別,使得每個類別內的數據相似度儘可能高,而不同類別之間的相似度儘可能低。事實上,在無監督學習演算法中,kmeans演算法無疑是最常用且效果良好的一種演算法。
二、kmeans.fit菜鳥教程
kmeans.fit是基於數據的不同特徵維度之間的歐幾里得距離進行計算的。下面我們通過一個簡單例子來體驗一下KMeans演算法。
我們首先定義一個包含四個點的數據集:
import numpy as np X=np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]])
定義完畢之後,我們可以使用KMeans進行初步聚類嘗試,這裡我們指定數據集分為兩個簇:
from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
其中,n_clusters代表數據分為的簇數。運行結果如下:
KMeans(init='k-means++', max_iter=300, n_clusters=2, n_init=10, n_jobs=1, precompute_distances='auto', random_state=0, tol=0.0001, verbose=0)
接下來,我們可以通過kmeans.labels_來查看分類情況:
kmeans.labels_ array([1, 1, 1, 0, 0, 0], dtype=int32)
從結果可知,這個演算法把數據集分成了兩個不同的簇,其中一類包括了索引為3,4,5的數據,而另一個類別包括了索引號為0,1,2的數據。
三、kmeans.fit函數
KMeans類中的fit函數用於聚類過程的實現,它輸入的是一個樣本矩陣,其中每一行代表一個樣本,每個樣本包含多個特徵。KMeans.fit()生成聚類模型,程序會依據聚類模型對每一個樣本進行分類,對於每個樣本,函數通過計算距離找到它的最近的質心,而質心則是用來代表樣本的類別的中心點。
下面是一個示例代碼:
import numpy as np from sklearn.cluster import KMeans X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]]) kmeans = KMeans(n_clusters=2, random_state=0).fit(X) print(kmeans.labels_)
運行結果與前面的一致,不再贅述。
四、kmeans.fit_predict方法
fit_predict()函數的作用和調用kmeans.fit()後再kmeans.predict()效果是一樣的,用於將所有的數據聚類。
import numpy as np from sklearn.cluster import KMeans X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]]) kmeans = KMeans(n_clusters=2, random_state=0) y_pred = kmeans.fit_predict(X) print(y_pred)
運行結果:
array([1, 1, 1, 0, 0, 0], dtype=int32)
五、kmeansfit方法
可以選擇自己的演算法實現的kmeans方法kmeans_fit,方法實現的過程和Algorithm的源碼相似,首先以一些數據和K值參數為輸入,然後實現各自的功能,輸出為各個簇心,簇調整和簇標識。
import numpy as np from sklearn.cluster import kmeans_fit X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]]) centroid, adjust, label = kmeans_fit(X, 2) print(label)
運行結果和前面例子一致,不再贅述。
原創文章,作者:LGSD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/133706.html