无监督学习–K-Means
聚类 | 分类 | |
---|---|---|
核心 | 将数据分成多组 探索每个组的数据是否有联系 |
从已经分组的数据中去学习 把新的数据放到已经分好的组中去 |
学习类型 | 无监督,无标签训练 | 有监督,需要标签进行训练 |
典型算法 | K-Means,DBSCAN,层次聚类,光谱聚类 | 决策树,贝叶斯,逻辑回归,KNN |
算法输出 | 聚类结果是不确定的 不一定总是能够反映数据的真实分类 同样的聚类,根据不同的业务需求,可能是好的结果也可能是不好的结果 |
分类结果是确定的 分类的优劣是客观的 不是根据业务或算法决定的 |
一:算法原理
1.概念:簇和质心
簇:即分类之后的每一类就叫簇
质心:簇的所有数据的均值,可以理解为中心点
KMeans 的核心任务就是根据我们设定好的 K,找出 K 个最优的质心,并将离这些质心最近的数据分别分配到这些质心代表的簇中去。
注意:簇的个数 K 是一个超参数,需要我们人为输入来确定
2.簇内误差平方和的定义
聚类算法的目的:簇内差异小,簇外差异大,差异的判断通过点到簇的质心的距离来衡量
所以:所有样本点到质心的距离之和越小,我们就认为这个簇中的样本越相似,簇内差异就越小
距离的集中衡量方式:
欧 几 里 得 距 离 : d ( x , μ ) = ∑ i = 1 n ( x i − μ i ) 2 曼 哈 顿 距 离 : d ( x , μ ) = ∑ i = 1 n ( ∣ x i − μ ∣ ) 余 弦 距 离 : c o s θ = ∑ 1 n ( x i ∗ μ ) ∑ 1 n ( x i ) 2 ∗ ∑ 1 n ( μ ) 2 欧几里得距离:d(x,μ) = \sqrt{ {\sum_{i=1}^{n}}{(x_i-μ_i)^2}} \\ 曼哈顿距离:d(x,μ) = \sum_{i=1}^{n}(|x_i-μ|) \\ 余弦距离: cosθ = \frac{\sum_{1}^{n}(x_i*μ)}{\sqrt{\sum_{1}^{n}(x_i)^2}*\sqrt{\sum_{1}^{n}(μ)^2}} 欧几里得距离:d(x,μ)=i=1∑n(xi−μi)2曼哈顿距离:d(x,μ)=