Machine Learning | 机器学习简介
Machine Learning | (1) Scikit-learn与特征工程
Machine Learning | (2) sklearn数据集与机器学习组成
Machine Learning | (3) Scikit-learn的分类器算法-k-近邻
Machine Learning | (4) Scikit-learn的分类器算法-逻辑回归
Machine Learning | (5) Scikit-learn的分类器算法-朴素贝叶斯
Machine Learning | (6) Scikit-learn的分类器算法-性能评估
Machine Learning | (7) Scikit-learn的分类器算法-决策树(Decision Tree)
Machine Learning | (8) Scikit-learn的分类器算法-随机森林(Random Forest)
Machine Learning | (9) 回归算法-线性回归
Machine Learning | (10) 回归算法-岭回归
Machine Learning | (11) 回归性能评估与欠拟合、过拟合
K-means通常被称为劳埃德算法,这在数据聚类中是最经典的,也是相对容易理解的模型。算法执行的过程分为4个阶段。
K均值等于具有小的全对称协方差矩阵的期望最大化算法
class sklearn.cluster.KMeans(n_clusters=8, init='k-means++', n_init=10, max_iter=300, tol=0.0001, precompute_distances='auto', verbose=0, random_state=None, copy_x=True, n_jobs=1, algorithm='auto')
"""
:param n_clusters:要形成的聚类数以及生成的质心数
:param init:初始化方法,默认为'k-means ++',以智能方式选择k-均值聚类的初始聚类中心,以加速收敛;random,从初始质心数据中随机选择k个观察值(行
:param n_init:int,默认值:10使用不同质心种子运行k-means算法的时间。最终结果将是n_init连续运行在惯性方面的最佳输出。
:param n_jobs:int用于计算的作业数量。这可以通过并行计算每个运行的n_init。如果-1使用所有CPU。如果给出1,则不使用任何并行计算代码,这对调试很有用。对于-1以下的n_jobs,使用(n_cpus + 1 + n_jobs)。因此,对于n_jobs = -2,所有CPU都使用一个。
:param random_state:随机数种子,默认为全局numpy随机数生成器
"""
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,y=None)
使用X作为训练数据拟合模型
kmeans.fit(X)
predict(X)
预测新的数据所在的类别
kmeans.predict([[0, 0], [4, 4]])
array([0, 1], dtype=int32)
clustercenters
集群中心的点坐标
kmeans.cluster_centers_
array([[ 1., 2.],
[ 4., 2.]])
labels_
每个点的类别
kmeans.labels_
from sklearn.metrics import silhouette_score
from sklearn.cluster import KMeans
def kmeans():
"""
手写数字聚类过程
:return: None
"""
# 加载数据
ld = load_digits()
print(ld.target[:20])
# 聚类
km = KMeans(n_clusters=810)
km.fit_transform(ld.data)
print(km.labels_[:20])
print(silhouette_score(ld.data,km.labels_))
return None
if __name__=="__main__":
kmeans()