最通俗的 LDA 线性判别分析教程
最通俗的 LDA 线性判别分析教程本科生/研究生都能懂大家好今天我们来彻底吃透LDA线性判别分析。这是机器学习、模式识别、数据降维里必考、必用、必懂的算法面试、比赛、写论文都高频出现。我会用大白话 简单数学 代码实战让你从零到会。一、LDA 到底是什么一句话讲明白LDA 带标签的降维算法它的目标只有一句话把高维数据投影到低维让同类越紧、异类越远同类类内越紧凑越好异类类间越分开越好二、LDA 和 PCA 的区别面试必考这是最容易混淆的两个算法我给你总结成最简单的对比项目PCA主成分分析LDA线性判别分析学习方式无监督不要标签有监督必须要标签目标保留最大方差最大化类间距离最小化类内距离用途降维、去噪、可视化分类前的特征提取、类别分离适合场景不知道类别、只想压缩维度已知类别、想让类别更分开一句话总结PCA 保信息LDA 保分类三、LDA 的核心思想超通俗想象你有两类数据苹果、香蕉。它们在高维空间里混在一起。LDA 要做的就是找一条直线把所有点投影上去让苹果堆成一团、香蕉堆成一团两类离得越远越好四、LDA 的数学原理只讲关键不讲废话LDA 只围绕两个矩阵展开1. 类内散布矩阵 SwWithin-Class衡量同类内部紧不紧凑同类越紧凑越好值越小越好。公式SW∑k1K∑x∈Ck(x−μk)(x−μk)TS_W \sum_{k1}^K \sum_{x \in C_k} (x-\mu_k)(x-\mu_k)^TSW∑k1K∑x∈Ck(x−μk)(x−μk)T2. 类间散布矩阵 SbBetween-Class衡量类别之间离得远不远类别越远越好值越大越好。公式SB∑k1KNk(μk−μ)(μk−μ)TS_B \sum_{k1}^K N_k (\mu_k-\mu)(\mu_k-\mu)^TSB∑k1KNk(μk−μ)(μk−μ)T五、LDA 的优化目标最核心我们要找一个投影方向 w让J(w)wTSBwwTSWwJ(w) \frac{w^T S_B w}{w^T S_W w}J(w)wTSWwwTSBw这个比值越大越好分子越大类间越远分母越小类内越紧六、LDA 怎么求解非常简单对 Sw⁻¹ Sb 做特征值分解取最大特征值对应的特征向量步骤总结算每类均值 μk、总体均值 μ算类内散布 Sw算类间散布 Sb求 Sw⁻¹ Sb 的特征向量取前 r 个特征向量做降维七、LDA 优点 缺点面试必背✅ 优点带标签降维比 PCA 更适合分类任务类别分离极强计算快就是矩阵特征分解结果可解释性高对高斯分布数据效果特别好❌ 缺点只能线性非线性不行最大只能降到 K-1 维K类别数对噪声、异常值敏感要求数据近似高斯分布小样本情况下矩阵容易不可逆八、LDA 适用场景直接背分类任务前的特征降维人脸识别经典 Fisherface 就是 LDA特征解耦、类别增强数据可视化让类别分得更开高维数据预处理九、代码实战Iris 数据集 LDA 降维可直接复制importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.datasetsimportload_irisfromsklearn.discriminant_analysisimportLinearDiscriminantAnalysisasLDAimportseabornassns# 加载数据dataload_iris()Xdata.data ydata.target labelsdata.target_names# LDA 降维 ldaLDA(n_components2)X_ldalda.fit_transform(X,y)# 可视化 plt.figure(figsize(10,6))colors[red,blue,green]fori,colorinenumerate(colors):plt.scatter(X_lda[yi,0],X_lda[yi,1],ccolor,labellabels[i],alpha0.7)plt.title(LDA 降维可视化4D → 2D,fontsize14)plt.xlabel(LDA Component 1)plt.ylabel(LDA Component 2)plt.legend()plt.grid(alpha0.3)plt.show()# 密度分布图 plt.figure(figsize(10,4))foriinrange(3):sns.kdeplot(X_lda[yi,0],fillTrue,alpha0.5)plt.title(LDA 第一分量类别密度分布)plt.legend(labels)plt.show()十、效果说明原始 4 维数据LDA 降到 2 维三类花几乎完全分开这就是 LDA 的强大之处让类别更可分十一、总结一句话记住 LDALDA 是带标签的监督降维算法目标是同类越紧、异类越远非常适合分类任务的特征提取与数据可视化。十二、你可以直接复制到 CSDN 的标题机器学习降维算法三LDA 线性判别分析超通俗教程面试必考PCA 与 LDA 的区别一篇彻底讲懂从数学到代码LDA 线性判别分析完全教程本科生友好LDA 人脸识别原理 Python 实现经典 Fisherface
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2495117.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!