机器学习 | k均值聚类算法
Posted 好记性不如烂笔心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习 | k均值聚类算法相关的知识,希望对你有一定的参考价值。
输入:
输出:样本集合的聚类
为实现上述结果,主要分为四个步骤:
初始化。随机选择
对样本进行聚类。计算每个样本到类中心的距离,将每个样本指派到与其最近的中心的类中,构成聚类结果
计算新的聚类中心。对聚类结果
如果迭代收敛或符合则停止,输出
example
给定含有10个无标签样本的集合:
解:本文利用
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns; sns.set() # 设置绘图风格
import numpy as np
X = np.array([[1,0],[3,3],[4,1],[5,7],[7,9],[6,8],[2,1],[3,1],[5,9],[6,10]])
from sklearn.cluster import KMeans
Kmeans = KMeans(n_clusters=2)
Kmeans.fit(X)
y_kmeans = Kmeans.predict(X)
fig = plt.figure()
plt.scatter(X[:, 0], X[:, 1], c=y_kmeans,s=50,cmap='viridis')
centers = Kmeans.cluster_centers_
plt.scatter(centers[:, 0], centers[:, 1], c='black', s=200, alpha=0.5)
上述代码的运行结果如下:
通过
k均值聚类算法中常见的问题:
1. 聚类的类别数
解决办法:k均值聚类算法其实也是一个求解最优化的问题,即代价函数(cost function)最小化,Andrew Ng提到了一种Elbow method的选择方法,当然此方法也只是参考的一种而已,有些情况需要不断尝试
2. 同时需要注意的是,选择不同的初始化中心,会得到不同的聚类结果。
本文笔记整理于Andrew Ng教授的ML课程、李航教授的《统计学习方法 第2版》以及《python数据科学手册》,有想一起学习数据科学的朋友可以关注或随时私信小编交流噢~今天的学习笔记就先到这里啦~
以上是关于机器学习 | k均值聚类算法的主要内容,如果未能解决你的问题,请参考以下文章