线性判别分析 (LDA) 是一种在监督机器学习中用于解决多类分类问题的方法。LDA 可通过数据降维对具有多个特征的多个类进行分离。此技术在数据科学中非常重要,因为它有助于优化机器学习模型。
线性判别分析也称为正态判别分析 (NDA) 或判别函数分析 (DFA),它采用生成式模型框架。这意味着 LDA 算法对每个类别的数据分布进行建模,并使用贝叶斯定理1 对新数据点进行分类。贝叶斯定理计算条件概率,表示在某个事件发生的情况下另一个事件发生的概率。LDA 算法使用贝叶斯定理计算输入数据集是否属于特定输出的概率来进行预测。有关贝叶斯统计数据的回顾以及它如何影响监督学习算法,请参阅朴素贝叶斯分类器。
LDA 的工作原理是识别分离或表征两类或多类对象或事件的特征的线性组合。LDA 通过将具有两个或多个维度的数据投影到一个维度中来实现这一点,以便可以更轻松地对其进行分类。因此,这种方法有时称为降维方法。这种多功能性确保 LDA 可用于多类数据分类问题,而不像逻辑回归那样仅限于二元分类。因此,LDA 通常用于增强决策树、随机森林或支持向量机 (SVM) 等其他学习分类算法的运行。
线性判别分析 (LDA) 以 Fisher 的线性判别为基础,这是一种由 Ronald Fisher 爵士在 20 世纪 30 年代开发出的统计方法,并在后来由 C. R. Rao 简化为一种多类版本。Fisher 方法旨在识别用于区分两类或多类标记对象或事件的特征的线性组合。
Fisher 方法通过分离投影后的数据的类别来降低维度。分离意味着最大限度地提高投影均值之间的差别并最大限度地降低类内的投影方差。
假设一家银行正在决定是批准还是拒绝贷款申请。该银行使用两个特征来做出此决定:申请人的信用评分和年收入。
在这里,两个特征或类别被绘制在一个带有 X-Y 轴的二维 (2D) 平面上。如果我们尝试只用一种特征对批准进行分类,可能会发现重叠现象。通过应用 LDA,可以绘制一条直线,将这两类数据点完全分开。LDA 通过使用 X-Y 轴创建一个新轴,用直线分隔不同类别,并将数据投影到新轴上来实现这一点。
为了创建该新轴并降低维度,LDA 遵循以下标准:
LDA 的工作原理是在不丢失类别信息的情况下,将特征空间(即具有 n 维的数据集)投影到一个更小的空间“k”(其中 k 小于等于 n – 1)。LDA 模型包括针对每一类数据计算的统计属性。在存在多个特征或变量的情况下,这些属性是根据多元高斯分布3 计算的。
多变量包括:
通过数据集中估计的统计属性被馈送到 LDA 函数中,以进行预测并创建 LDA 模型。由于该模型假设如下,因此需要牢记一些限制:
由于这些原因,LDA 在高维特征空间中可能表现不佳。
降维涉及用直线分离数据点。从数学角度来说,我们会使用特征向量和特征值来分析线性变换。假设绘制了一个具有多个特征的数据集,从而形成了一个多维散点图。特征向量可提供散点图中的“方向”。特征值则表示该方向数据的重要性。特征值越高表示相关特征向量越重要。
在降维过程中,特征向量会根据数据集进行计算,并在两个散点矩阵中进行收集:
要有效地使用 LDA,必须事先准备数据集。以下是实施 LDA 的步骤和最佳实践:
1. 对这些数据进行预处理,以确保其被规范化和中心化
这是通过传递 LDA 的 n 分量参数来实现的,该参数用于标识要检索的线性判别器的数量。
2. 为低维空间选择一个适当的维数
这是通过传递 LDA 的 n 分量参数来实现的,该参数用于标识要检索的线性判别器的数量。
3. 对此模型进行正则化
正则化旨在防止过拟合,即统计模型与训练数据完全拟合,从而降低准确度。
4. 使用交叉验证来评估模型性能
可以通过绘制混淆矩阵来评估如 LDA 等分类器,将实际类值作为行,预测类值作为列。利用混淆矩阵,可以很容易地看出分类器是否混淆了两个类,即,将一个类错误地标记为另一个类。例如,有一个 10 x 10 混淆矩阵,预测从 0 到 9 的图像。在 y 轴上将实际值绘制为行。在 x 轴上将预测结果绘制为列。要查看分类器在 10 x 10 混淆矩阵示例中混淆 4s 和 9s 图像的次数,需要查看第 4 行和第 9 列。
线性判别函数可根据特征对数据点进行分离并将其归入不同的类或类别,从而帮助做出针对分类问题的决策。其计算流程可概括为以下几个关键步骤:
类间方差是指不同类之间的可分离性,即类均值之间的距离。
类内方差是类均值与样本之间的差别。
这样可以实现类间方差最大,类内方差最小。我们可以用以下等式按照数学方法表示两个类的线性判别函数。
δ(x) = x * ( σ2 * (μ0-μ1) - 2 * σ2 * (μ02-μ12) + ln(P(w0) / P(w1)))
其中:
我们使用此方程式来研究某一贷款审批示例。概括而言,银行正在决定是批准还是拒绝贷款申请。银行使用两个特征来做出此决策:申请人的信用评分 (x) 和年收入。银行已收集先前贷款申请人的历史数据,以及相关贷款是否已获得批准。
利用线性判别函数,银行可以计算出每个贷款申请的分数 (δ(x))。
线性判别函数的等式可能如下所示:
δ(x) = x * ( σ2 * (μ0-μ1) - 2 * σ2 * (μ02-μ12) + ln(P(w0) / P(w1)))
银行计算每笔贷款申请的线性判别函数。
于是,银行可自动运行其贷款审批流程,从而做出更快、更一致的决策,同时最大限度减少人为偏见。
这些是 LDA 可用于解决复杂问题,并帮助组织做出更好决策的典型场景。
为了降低风险,金融机构必须识别并最大限度地减少信用违约。LDA 可以通过筛选财务因素和行为数据,帮助从信誉良好的申请人中识别可能拖欠贷款的申请人。
快速准确的疾病诊断对于实现有效的治疗至关重要。医院和医疗保健提供方必须解读大量医疗数据。LDA 可通过识别患者数据中的模式和关系来帮助简化复杂的数据集,同时提高诊断准确性。
为了有效营销,电子商务企业必须能够对不同的客户群进行分类。LDA 在细分客户方面发挥着关键作用,使电子商务公司能够针对不同的客户群体量身定制营销策略。其结果是带来更加个性化的购物体验,提高客户忠诚度和销售额。
在生产高质量产品的同时最大限度减少缺陷是一项基本挑战。来自机械的传感器数据可与 LDA 一起使用,从而识别与缺陷相关的模式。通过实时检测异常情况,制造商可立即采取纠正措施,从而提高产品质量并减少浪费。
您可通过使用个性化内容来定位对口的受众,从而最大化您的广告预算;然而,要确定相应的受众细分群体却可能十分困难。LDA 可通过对客户属性和行为进行分类来简化此流程,从而提升广告活动的定制化程度。此方法可带来更高的投资回报率 (ROI) 和更好的客户体验。
要深入了解 Python 的线性判别分析并充分利用 scikit-learn 库,可以学习 IBM watsonx 中的教程使用 Python 和 scikit-learn 学习分类算法。该教程将帮助您掌握使用 Python 和 scikit-learn(也称为 sklearn)解决基于分类的机器学习问题的基础知识。
在此分步教程中,您首先需导入必要的 Python 库以处理 Iris 数据集、执行数据预处理,以及创建和评估 LDA 模型:
<Python 代码片段>
import numpy as np import pandas as pd import matplotlib.pyplot as plt import sklearn import seaborn as sns from sklearn.preprocessing import StandardScaler, LabelEncoder from sklearn.model_selection import train_test_split from sklearn.discriminant_analysis import LinearDiscriminantAnalysis from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score, confusion_matrix
如果未安装这些库,则可使用 pip install 解决此问题。
另请参阅此 scikit-learn 文档以了解有关使用 sklearn.discriminant_analysis.LinearDiscriminantAnalysis 的 Python 实现的关键参数、属性及一般示例的概述。
在将线性判别分析 (LDA) 应用于各种分类问题时,了解其优点和局限性至关重要。了解权衡有助于数据科学家和机器学习从业者就其是否适合特定任务做出明智决策。
- 共享均值分布:当类分布共享均值时,LDA 会遇到挑战。LDA 努力创造一个新轴,以线性方法将两个类分开。因此,LDA 可能无法有效区分具有重叠统计属性的类。例如,假设两种花的花瓣长度和宽度高度相似,那么 LDA 可能会发现很难仅根据这些特征来区分这些种类。因此,这里优先考虑替代技术,例如非线性判别分析方法。
- 不适用于未标记数据:LDA 会作为一种监督学习算法来应用;换言之,它会对已标记数据进行分类或分离。相比之下,另一种降维技术“主成分分析 (PCA)”则会忽略类标签并保留方差。
IBM Granite 是我们开放式、性能优异、值得信赖的 AI 模型系列,专门为企业量身定制,并经过优化,可以帮助您扩展 AI 应用程序。深入了解语言、代码、时间序列和护栏选项。
我们对 2,000 家组织进行了调查,旨在了解他们的 AI 计划,以发现哪些方法有效、哪些方法无效,以及如何才能取得领先。
深入探讨监督学习方法,如支持向量机和概率分类器。
学习基本概念并通过亲手实验、课程、指导项目、试用等方式培养您的技能。
1 James Joyce, Bayes' Theorem, Stanford Encyclopedia of Philosophy, 2003
2Dan A. Simovici, Lecture notes on Fisher Linear Discriminant Name, 2013
3 Penn State Eberly College of Science, Linear Discriminant Analysis, 2023
4 J. T. Oates, Lecture notes on Linear Discriminant Analysis, 2014
5 Guangliang Chen, lecture notes on Linear Discriminant Analysis (LDA), 2020
6, 7 sci-kit learn, Linear and Quadratic Discriminant Analysis, 2023
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com