k-means法
>>> from sklearn.cluster import KMeans
>>> import numpy as np
>>> 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)
>>> kmeans.labels_
array([0, 0, 0, 1, 1, 1], dtype=int32)
>>> kmeans.predict([[0, 0], [4, 4]])
array([0, 1], dtype=int32)
>>> kmeans.cluster_centers_
array([[ 1., 2.],
[ 4., 2.]])
批量 K-means 法 MiniBatchKMeans
相似性傳播 Affinity Propagation
適合中小型的數據集
均值漂移 MeanShift
回歸
用到的回歸類
regr = linear_model.LinearRegression()
線性回歸的多分類
OvO 一對一
把類別兩兩配對,制造N(N-1)個分類器。所有分類器預測結果最重合的那個類別,即為此點的分類。
OvR 一對多
共有N個分類器,每個分類器把一個類別記為‘+’的,其他類別一塊記為‘-'的。預測時,若有一個分類器預測結果為+,則把它當做最終結果。
Paste_Image.png
OvO的存儲開銷比較大,時間開銷更小,由于用所有類別訓練,結果比一對多更準。
MvM 多對多
每個分類器對所有類進行劃分,分為-和+。有二元編碼和三元編碼,三元編碼多了個「停用類」。
方法稱作「糾錯輸出碼」EOOC。
這三個方法很難說出誰更強。