0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

十大机器学习算法中的线性判别分析的详细介绍

牵手一起梦 来源:网络整理 作者:佚名 2020-02-03 07:28 次阅读

先前呢,我们在最受欢迎的十大机器学习算法-part1和最受欢迎的十大机器学习算法-part2两篇文章中简单介绍了十种机器学习算法,有的读者反映看完还是云里雾里,所以,我会挑几种难理解的算法详细讲解一下,今天我们介绍的是线性判别分析。

线性判别分析(Linear Discriminant Analysis)简称LDA,是分类算法中的一种。LDA通过对历史数据进行投影,以保证投影后同一类别的数据尽量靠近,不同类别的数据尽量分开。并生成线性判别模型对新生成的数据进行分离和预测。

LDA投影矩阵

在维基百科中对投影的定义是:“投影是从向量空间映射到自身的一种线性变换,是日常生活中“平行投影”概念的形式化和一般化”。例如,在日常生活中,阳光会在大地上留下各种物体的影子。阳光将三维空间中的物体映射到影子的二维空间中,而影子随着一天中太阳照射角度的变化也会发生变化。

如果你玩过游戏《Shadowmatic》就能理解LDA投影的过程。《Shadowmatic》是一款由TRIADA Studio开发的3D解谜游戏。游戏需要玩家在灯光下旋转,扭动悬浮在空中的不明物体,并通过灯光的投影在墙上寻找不明物体的真面目。只要找对角度就能成功。如下面的游戏截图中,不明物体在某个角度的投影是一只可爱的小兔子。

LDA投影矩阵与《Shadowmatic》相似。其中的不明物体是历史数据样本。我们需要通过“旋转”和“扭动”这些历史数据,找到正确的角度发现其中的模式。以下是银行对企业贷款的样本数据,其中包含了企业经营时间和拖延还款天数以及最终是否还款的数据。

十大机器学习算法中的线性判别分析的详细介绍

我们把这些样本数据生成散点图,其中X轴是企业经营时间,Y轴是拖延还款天数,蓝色三角表示未还款数据,红色方框表示已还款数据。在散点图中未还款和已还款数据相互交织,无法发现其中的模式。这就是游戏中的不明物体。

十大机器学习算法中的线性判别分析的详细介绍

与游戏中不同的是我们无法“旋转”和“扭动”样本数据,而是要通过移动背景墙的位置来发现最终的“小兔子”。在下面的图中,无论我们将样本数据投影到X轴,还是Y轴,已还款和未还款的两类数据都交织在一起,我们无法发现其中的模型。更无法对数据进行分类和预测。因为任何一个单独的维度都无法判断企业最终是否会还款。我们需要变换投影背景墙的位置来找到能将两类数据分离的“角度”。

十大机器学习算法中的线性判别分析的详细介绍

在LDA中这个投影背景墙是一个新的Y轴,角度是向量W。我们通过计算获得向量W并生成新的Y轴,使两个类别的样本数据在新Y轴的投影中能最大程度的分离。计算向量W的方法是使用两类数据的平均值差的平方除以两类数据各自的方差之和。在这个公式中,我们希望分母越小越好,分子越大越好。换句话说就是两类数据的均值相差的越大越好,这样可以保证两类数据间的分离程度。而同一类数据的方差越小越好,这样可以保证每一类数据都不会太分散。这样我们就可以找出一个W使J(W)的值最大。而这个最大值就是新的投影背景墙Y轴的方向。(这里需要通过拉格朗日来求W的最大值)

十大机器学习算法中的线性判别分析的详细介绍

当历史样本数据被投影到新的Y轴背景墙时,可以看到数据与之前的情况不同,被明显的分为了两组。并且两组数据间的交叉很少。这符合了LDA的预期,不同类别的数据间分离的越远越好,同一类别的数据越集中越好。

十大机器学习算法中的线性判别分析的详细介绍

到这里我们对两类数据进行了分离,但这还不能实现对数据分类和预测。因此我们还需要找到一个点来区分这两类数据。这个点就是线性辨别模型中。

LDA模式分类

线性辨别模型(Z=b1x1+b2x2)是一条直线方程,通过这条直线方程我们可以在散点图中发现可以将两组数据进行区分的数据点。并对新产生的数据进行分类和预测。如下图所示,我们通过线性辨别模型获得一条可以区分不同类别的直线。其中X1是企业经营时间,X2是拖延还款天数。而b1和b2是我们所要求的模型系数。

十大机器学习算法中的线性判别分析的详细介绍

方差,协方差,协方差矩阵

在求线性辨别模型中的b1和b2时,需要用到协方差矩阵,因此我们先来简单介绍与协方差有关的一些概念和计算方法。

均值

首先是均值,均值的计算很简单。但要了解协方差和方差的概念,就必须先从均值开始。以下是均值的计算公式。均值表示一组数的集中程度。

十大机器学习算法中的线性判别分析的详细介绍

方差

方差与均值正好相反,用来表示一组数的离散程度,也就是一组数中每一个数到均值的距离。由于均值通常是一组数的中心点,为了避免左右两侧的数据由于正负相互抵消无法准确的表示平均距离。我们先对距离取平方在进行汇总,汇总的结果就是方差的值。方差开平方就是标准差。

十大机器学习算法中的线性判别分析的详细介绍

协方差

协方差是在方差的基础上扩展得到的,从计算公式中就能看出来。协方差与方差有两个最大的区别,第一个区别是方差是用来描述一组数的而协方差是用来描述两组数的。第二个区别是方差用来描述一组数的离散程度,也就是离均值的距离,而协方差是用来描述两组数直接的联系的。

方差与协方差计算公式:

十大机器学习算法中的线性判别分析的详细介绍

十大机器学习算法中的线性判别分析的详细介绍

协方差是一种用来度量两个随机变量关系的统计量。

当cov(X, Y)>0时,表明 X与Y 正相关;

当cov(X, Y)<0时,表明X与Y负相关;

当cov(X, Y)=0时,表明X与Y不相关。

协方差矩阵

协方差只能处理两组数(两维)间的关系,当要计算的数据多于两组(多维)时,就要用到协方差矩阵。协方差矩阵其实是分别计算了不同维度之间的协方差。通过下图可以发现协方差矩阵是一个对称的矩阵,对角线是各个维度上的方差。

十大机器学习算法中的线性判别分析的详细介绍

计算线性辨别模型

在开始计算线性辨别模型之前,我们按企业是否还款将历史数据分为已还款和未还款两个类别。用以进行后面的计算。

十大机器学习算法中的线性判别分析的详细介绍

计算均值,概览及协方差矩阵

我们分别计算出已还款和未还款两个类别中条目的数量,在整体样本数据中出现的概率以及企业经营时间和拖延还款天数的均值。

十大机器学习算法中的线性判别分析的详细介绍

按照前面介绍的协方差矩阵公式分别计算出两个类别的协方差矩阵。从下图中可以发现,协方差矩阵是一个对称的矩阵,并且对角线上的两个数字就是企业经营天数和拖延还款天数的方差值。

十大机器学习算法中的线性判别分析的详细介绍

合并协方差矩阵

按照合并协方差的公式我们将两个类别的协方差矩阵按出现的概率合并为一个协方差矩阵。以下是合并协方差的公式。

十大机器学习算法中的线性判别分析的详细介绍

按照上面的公式,将每个类别的协方差矩阵乘以该类别的概率我们获得了合并协方差矩阵。

十大机器学习算法中的线性判别分析的详细介绍

逆协方差矩阵

最后我们对两个类别的协方差矩阵求他的逆协方差矩阵。。

十大机器学习算法中的线性判别分析的详细介绍

这是我们求得的合并协方差矩阵的逆矩阵。

十大机器学习算法中的线性判别分析的详细介绍

计算线性辨别模型系数

求得逆协方差矩阵后,就可以通过两个类别的均值差和逆协方差矩阵计算线性辨别模型的系数。下面分别给出了两个类别的均值,逆协方差矩阵的对应表。

十大机器学习算法中的线性判别分析的详细介绍

十大机器学习算法中的线性判别分析的详细介绍

通过公式分别求出线性辨别模型的两个系数b1和b2,以下是公式和计算步骤。

十大机器学习算法中的线性判别分析的详细介绍

b1=0.0001(116.23-115.04)+0.0003(16.89-55.32)=-0.009696

十大机器学习算法中的线性判别分析的详细介绍

b2=0.0003(116.23-115.04)+0.0037(16.89-55.32)=-0.143453

两个系数分别为b1=-0.009696,b2=-0.143453。将系数值代入到模型中,就是我们所求的线性辨别模型。

十大机器学习算法中的线性判别分析的详细介绍

十大机器学习算法中的线性判别分析的详细介绍

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 3D
    3D
    +关注

    关注

    9

    文章

    2755

    浏览量

    106442
  • 游戏
    +关注

    关注

    2

    文章

    696

    浏览量

    26039
  • 机器学习
    +关注

    关注

    66

    文章

    8116

    浏览量

    130550
收藏 人收藏

    评论

    相关推荐

    数学建模十大算法介绍

    算法是程序的灵魂,本资料详细介绍了数学建模当中的主要几个算法的应用分析,希望对大家在编程解决其他问题的时候有所帮助
    发表于 11-11 09:40

    经典算法大全(51个C语言算法+单片机常用算法+机器十大算法

    learning),又称再励学习、评价学习学习不是单一方法,而是一种机器学习方式,在智能控制机器
    发表于 10-23 14:31

    数据挖掘十大经典算法,你都知道哪些!

    的所有需求。而这三类里又包含许多经典算法。而今天,小编就给大家介绍下数据挖掘中最经典的十大算法,希望它对你有所帮助。一、 分类决策树算法C4
    发表于 11-06 17:02

    【专辑精选】机器学习算法教程与资料

    电子发烧友总结了以“算法”为主题的精选干货,今后每天一个主题为一期,希望对各位有所帮助!(点击标题即可进入页面下载相关资料)经典算法大全(51个C语言算法+单片机常用算法+
    发表于 05-09 17:06

    基于核函数的Fisher判别分析算法在人耳识别中的应用

    针对人耳图像自身的特点,并通过对现有生物识别技术的研究,本文尝试采用了一种基于核函数的Fisher 判别分析算法对人耳进行识别。该算法不仅可以有效地提取人耳特征,获得
    发表于 05-30 11:44 29次下载

    近邻边界Fisher判别分析

    将数据集进行合理的维数约简对于一些机器学习算法效率的提高起着至关重要的影响。该文提出了一种利用数据点邻域信息的线性监督降维算法:近邻边界Fi
    发表于 11-21 11:12 7次下载

    虚电压的判别分析

    虚电压的判别分析
    发表于 08-08 17:37 1415次阅读
    虚电压的<b class='flag-5'>判别分析</b>图

    不相关判别分析算法在人脸识别中应用

    对高维数据降维并选取有效特征对分类起着关键作用。针对人脸识别中存在的高维和小样本问题,从特征选取和子空间学习入手,提出了一种L2.1范数正则化的不相关判别分析算法。该算法首先对训练样本
    发表于 11-22 14:40 1次下载

    核局部Fisher判别分析的行人重识别

    ;在度量学习方面,传统的核局部Fisher判别分析度量学习方法对所有查询图像统一映射到相同的特征空间中,忽略了查询图像不同区域的重要性,为此在核局部Fisher判别分析的基础上对特征进
    发表于 12-13 17:25 0次下载

    基于逐步判别分析的血液气味识别

    本文以血液气味色谱为基础,利用逐步判别分析法建立了血液气味识别模型,并对血液气味识别模型的建立进行了详细描述。以Matlab为计算工具,编写了血液气味识别模型的代码。以人体血液与犬、鸡的血液为例,讨论了血液气味识别模型的使用方法。血液气味识别模型能够正确区分人体血液与动物
    发表于 01-04 16:38 0次下载
    基于逐步<b class='flag-5'>判别分析</b>的血液气味识别

    如何使用谱回归核判别分析实现候机楼室内快速定位算法的论文详细说明

    针对机场候机楼客流量大、室内环境复杂多变的特点,提出了一种基于谱回归核判别分析(SRKDA)的室内定位算法。在离线阶段,采集已知位置的接收信号强度(RSS)数据,使用SRKDA算法提取原始位置指纹
    发表于 12-05 15:27 3次下载
    如何使用谱回归核<b class='flag-5'>判别分析</b>实现候机楼室内快速定位<b class='flag-5'>算法</b>的论文<b class='flag-5'>详细</b>说明

    10大常用机器学习算法汇总

    本文介绍了10大常用机器学习算法,包括线性回归、Logistic回归、线性
    发表于 11-20 11:10 2490次阅读

    使用谱回归核判别分析的候机楼室内快速定位算法

    针对机场候机楼客流量大、室内环境复杂多变的特点,提出了一种基于谱回归核判别分析(SRKDA)的室内定位算法。在离线阶段,采集已知位置的接收信号强度(RSS)数据,使用SRKDA算法提取原始位置指纹
    发表于 01-19 16:36 21次下载
    使用谱回归核<b class='flag-5'>判别分析</b>的候机楼室内快速定位<b class='flag-5'>算法</b>

    浅析机器学习必学10大算法及8种降维技术

    的性能。 机器学习必学10大算法 1.线性回归 2.Logistic 回归 3.线性判别分析 4
    的头像 发表于 01-30 17:14 981次阅读

    线性判别分析LDA背后的数学原理

    线性判别分析(LDA)是一种降维技术,其目标是将数据集投影到较低维度空间中。线性判别分析也被称为正态判别分析(NDA)或
    的头像 发表于 04-19 11:30 1028次阅读
    <b class='flag-5'>线性</b><b class='flag-5'>判别分析</b>LDA背后的数学原理