一、无监督学习
- 无监督学习:与监督学习不同,数据没有标签,训练集仅包含输入特征,没有输出标签。
- 任务:让算法发现数据的内在结构,比如聚类。
- 应用场景:
- 市场细分:将客户分成不同群体,做个性化营销。
- 社交网络分析:找关系密切的人群。
- 计算机集群资源优化:根据协作频率重新分配资源。
- 天文学研究:星系形成研究等。
二、K-均值算法
K-均值简介:最常用的聚类算法,把数据分为 K 个簇。
算法步骤:
- 随机选择K个聚类中心(centroids)。
- 对每个样本,将其归类到最近的聚类中心。
- 更新每个簇的聚类中心为该簇所有点的均值。
- 重复步骤 2 和 3 直到聚类中心不再变化。
伪代码:
Repeat { for i = 1 to m: c(i) := index of closest cluster centroid to x(i) for k = 1 to K: μ_k := mean of points assigned to cluster k }
三、优化目标
代价函数(畸变函数):
J ( c ( 1 ) , … , c ( m ) , μ 1 , … , μ K ) = 1 m ∑ i = 1 m ∥ x ( i ) − μ c ( i ) ∥ 2 J(c^{(1)}, \dots, c^{(m)}, \mu_1, \dots, \mu_K) = \frac{1}{m} \sum_{i=1}^m \| x^{(i)} - \mu_{c^{(i)}} \|^2 J(c(1),…,c(m),μ1,…,μK)=m1i=1∑m∥x(i)−μc(i)∥2目标是最小化所有样本到其最近聚类中心的距离平方和。
每次迭代通过更新簇分配和簇中心,保证代价函数单调递减。
四、随机初始化
- 先随机选择 K 个训练样本作为初始聚类中心。
- K-均值可能陷入局部最小值,结果依赖初始化。
- 常用做法:多次运行 K-均值算法,选择代价函数最小的结果。
五、选择聚类数
- 无最佳选择 K 的方法,需结合实际应用场景判断。
- 肘部法则(Elbow Method):
- 运行不同 K 值的 K-均值,计算代价函数(畸变值)。
- 画出 K 值与代价函数的曲线,寻找 “肘部” 点(代价函数下降趋势变缓处)。
- “肘部” 对应的K值常作为较合理的聚类数。
参考资料
相似度/距离计算方法
闵可夫斯基距离(Minkowski distance)
D ( x , y ) = ( ∑ i = 1 n ∣ x i − y i ∣ p ) 1 / p D(x,y) = \left( \sum_{i=1}^n |x_i - y_i|^p \right)^{1/p} D(x,y)=(i=1∑n∣xi−yi∣p)1/p- 欧式距离是 p = 2 p=2 p=2 特例。
杰卡德相似系数(Jaccard similarity)
J ( A , B ) = ∣ A ∩ B ∣ ∣ A ∪ B ∣ J(A,B) = \frac{|A \cap B|}{|A \cup B|} J(A,B)=∣A∪B∣∣A∩B∣余弦相似度(Cosine similarity)
cos ( θ ) = x ⋅ y ∥ x ∥ ∥ y ∥ \cos(\theta) = \frac{x \cdot y}{\|x\| \|y\|} cos(θ)=∥x∥∥y∥x⋅yPearson相关系数
- 测量两个变量的线性相关性。
聚类的衡量指标
- 均一性(Homogeneity)
一个簇中只包含单一类别的样本。 - 完整性(Completeness)
同一类别的样本尽可能被归为同一簇。 - V-measure
均一性和完整性的调和平均。 - 轮廓系数(Silhouette Coefficient)
衡量聚类的紧密度和分离度,值范围 [-1,1],越接近1越合理。 - ARI (Adjusted Rand Index)
衡量两个聚类结果的相似度。
六、数据压缩
- 目的:减少特征数量,降低存储和计算成本。
- 示例:长度用厘米和英寸两个特征,冗余,可以降至一个维度。
- 降维可以简化模型,去除冗余信息,提高算法效率。
七、数据可视化
- 高维数据难以直观展示,降维到2维或3维方便可视化。
- 注意:降维后新特征的意义需要人为解释。
八、主成分分析问题(PCA)
- 目标:找到方向向量,使数据投影到该方向时,投影误差最小。
- 投影误差指数据点到该方向向量垂直距离的平方和。
- PCA与线性回归区别:
- PCA最小化投影误差,不做预测。
- 线性回归最小化预测误差。
- PCA可用于数据压缩,保持最大数据方差。
九、主成分分析算法
- 步骤:
- 均值归一化:对每个特征减去均值,除以标准差。
- 计算协方差矩阵 Σ = 1 m ∑ i = 1 m x ( i ) x ( i ) T \Sigma = \frac{1}{m} \sum_{i=1}^m x^{(i)} x^{(i)T} Σ=m1∑i=1mx(i)x(i)T。
- 奇异值分解(SVD) 计算特征向量矩阵 U U U。
- 选取前 k k k 个特征向量构成矩阵 U reduce U_{\text{reduce}} Ureduce,用于降维。
- 新数据表示: z ( i ) = U reduce T x ( i ) z^{(i)} = U_{\text{reduce}}^T x^{(i)} z(i)=UreduceTx(i)。
十、选择主成分的数量
选择使得保留的方差比例满足一定阈值(例如 95%)。
计算投影后的方差占总方差比例:
∑ i = 1 k S i i ∑ i = 1 n S i i ≥ threshold \frac{\sum_{i=1}^k S_{ii}}{\sum_{i=1}^n S_{ii}} \geq \text{threshold} ∑i=1nSii∑i=1kSii≥threshold