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.pngOvO的存储开销比较大,时间开销更小,由于用所有类别训练,结果比一对多更准。
MvM 多对多
每个分类器对所有类进行划分,分为-和+。有二元编码和三元编码,三元编码多了个「停用类」。
方法称作「纠错输出码」EOOC。
这三个方法很难说出谁更强。
网友评论