机器学习之非监督学习(一)K-means 聚类算法
0. 文章传送
机器学习之监督学习(一)线性回归、多项式回归、算法优化[巨详细笔记]
机器学习之监督学习(二)二元逻辑回归
机器学习之监督学习(三)神经网络基础
机器学习之实战篇——预测二手房房价(线性回归)
机器学习之实战篇——肿瘤良性/恶性分类器(二元逻辑回归)
机器学习之实战篇——MNIST手写数字0~9识别(全连接神经网络模型)
机器学习之监督学习(四)决策树和随机森林
1.非监督学习定义
非监督学习是一种机器学习方法,在这种方法中,模型在没有预先标记的数据的情况下进行训练。相较于监督学习(需要提供输入和对应的输出标签),非监督学习仅依赖输入数据自身的结构来发现数据内部的模式和关系。
2.非监督学习分类
2.1 聚类 Clustering
聚类的目标是将数据集划分成多个组(或簇),使得簇内的数据点彼此相似,而不同簇的数据点差异较大。常见的聚类算法有 K 均值聚类(K-Means)、层次聚类和 DBSCAN 等。
2.2 异常检测 Anomaly Detection
异常检测的目标是识别数据集中与大多数数据点显著不同的异常数据点。异常检测在网络安全、金融欺诈检测等领域有广泛应用。常见的方法有孤立森林(Isolation Forest)和基于密度的检测方法等。
3.K-means聚类算法 K-means clustering
案例引入
在购买衣物时,我们通常根据自己的身高和体重来选择合适尺码的衣服,常见的衣服衣服型号标法为小(S)、中(M)、大(L)。假设某衣服生产商收集了一些用户身高和体重的数据,如果要根据这些数据点划分三个类别,该如何实现最优划分呢?这便是典型的聚类问题,如下图所示,三个圈代表三种型号,将无标签的数据划分为三个类别。下面介绍处理聚类问题的K-means算法。
算法步骤
K-means聚类算法步骤如下:
- randomly generate cluster centroids 随机产生簇心
- assign each point to its closest centroid 将点分配到最近的簇中
- recompute the centroids 重新计算簇心 (簇内的中心点)
- repeat step2 and step3 重复步骤2和步骤3直至簇心不再移动(或点所处簇不再改变)
从上面的动图可以很直观地理解算法的思想,需要注意的是,起始点选择不同,聚类的结果也不同。
用数学语言表示如下:
m 个数据, n 个特征, m 个数据分别记为 x ( 1 ) 、 x ( 2 ) 、 . . . 、 x ( m ) ,每个数据为 n 维向量 m个数据,n个特征,m个数据分别记为x^{(1)}、x^{(2)}、...、x^{(m)},每个数据为n维向量 m个数据,n个特征,m个数据分别记为x(1)、x(2)、...、x(m),每个数据为n维向量
目标 : 将数据分为 K 部分 , 划分结果保存在 m × 1 列向量 c 中 目标:将数据分为K部分,划分结果保存在m\times1列向量c中 目标:将数据分为K部分,划分结果保存在m×1列向量c中
S t e p 1 : 随机初始化 K 个簇心 μ 1 、 μ 2 、 . . . 、 μ K Step1:随机初始化K个簇心\mu_1、\mu_2、...、\mu_K Step1:随机初始化K个簇心μ1、μ2、...、μK
S t e p 2 : 重复 c ( i ) = arg min k ∣ ∣ x ( i ) − μ k ∣ ∣ Step2:重复 \quad c^{(i)}=\argmin_{k}||x^{(i)}-\mu{_k}|| Step2:重复c(i)