A. 降维算法之LDA(线性判别降维算法)--有监督
LDA在模式识别领域( 比如人脸识别,舰艇识别等图形图像识别领域 )中有非常广泛的应用,因此我们有必要了解下它的算法原理。
不同于PCA方差最大化理论, LDA算法的思想是将数据投影到低维空间之后,使得同一类数据尽可能的紧凑,不同类的数据尽可能的分散 。因此,LDA算法是一种有监督的机器学习算法。同时,LDA有如下两个假设:(1)原始数据根据样本均值进行分类。(2)不同类的数据拥有相同的协方差矩阵。当然,在实际情况中,不可能满足以上两个假设。但是 当数据主要是由均值来区分的时候,LDA一般都可以取得很好的效果 。
(1)计算类内散度矩阵
(2)计算类间散度矩阵
(3)计算矩阵
(4)对矩阵 进行特征分解,计算最大的d个最大的特征值对应的特征向量组成W。
(5)计算投影后的数据点
以上就是使用LDA进行降维的算法流程。实际上LDA除了可以用于降维以外,还可以用于分类。 一个常见的LDA分类基本思想是假设各个类别的样本数据符合高斯分布 , 这样利用LDA进行投影后,可以利用极大似然估计计算各个累呗投影数据的均值和方差,进而得到该类别高斯分布的概率密度函数 。当一个新的样本到来后,我们可以将它投影,然后将投影后的样本特征分别带入各个类别的高斯分布概率密度函数,计算它属于这个类别的概率,最大的概率对应的类别即为预测类别。LDA应用于分类现在似乎也不是那么流行。
class sklearn.discriminant_analysis.LinearDiscriminantAnalysis(solver='svd', shrinkage=None, priors=None, n_components=None, store_covariance=False, tol=0.0001)
参数:
(1)solver: str类型,默认值为"svd",
svd:使用奇异值分解求解,不用计算协方差矩阵,适用于特征数量很大的情形,无法使用参数收缩(shrinkage)。
lsqr:最小平方QR分解,可以结合shrinkage使用。
eigen:特征值分解,可以结合shrinkage使用。
(2)shrinkage: str or float类型,默认值为None
是否使用参数收缩
None:不使用参数收缩
auto:str,使用Ledoit-Wolf lemma
浮点数:自定义收缩比例。
(3)components:int类型,需要保留的特征个数,小于等于n-1
属性:
(1)covariances_:每个类的协方差矩阵,shape = [n_features, n_features]
(2)means_:类均值,shape = [n_features, n_feateures]
(3)priors_:归一化的先验概率。
(4)rotations_:LDA分析得到的主轴,shape = [n_features, n_component]
(5)scalings_:数组列表,每个高斯分布的方差σ
特点:
降维之后的维数最多为类别数-1。所以当数据维度很高,但是类别数少的时候,算法并不适用 。LDA算法既可以用来降维,又可以用来分类。但是目前来说,主要还是用于降维。在我们 进行图像识别相关的数据分析时,LDA是一个有力的工具 。
优点:
(1) LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优 。
(2)在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习则无法使用类别先验知识。
缺点:
(1)LDA不适合非高斯分布样本进行降维,PCA也存在这个问题。
(2)LDA降维最多降到类别数K-1的维数,如果我们降维的维度大于k-1,则不能使用LDA。 当然目前有一些LDA的进化版算法可以绕过这个问题 。
(3) LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好 。
(4)LDA可能过度拟合数据。
二者都有 降维 的作用。
1.左 边是PCA,属于无监督方法 ,当数据没有标签时可以用它。 右边是LDA,属于监督学习方法 。考虑了数据的分类信息,这样数据在低维空间上就可以分类了,减少了很多的运算量。
2. PCA主要是从特征的协方差角度考虑,追求的是在降维之后能够最大化保持数据的内在信息 。它不考虑分类信息,因此降低维度后,信息损失降到最低,但分类上可能会变得更加困难。 LDA追求的是降维后的数据点尽可能容易被区分 。降维后的样本数据在新的维度空间有最大的类间距离和最小的类内方差,数据在低维空间有最佳的可分离性。
3. PCA降维后的维度数目是和数据维度相关的 ,原始数据是n维,那么PCA后维度为1、2~n维。 LDA后的维度数目是和类别的个数相关的 ,原始数据是n维,一共有C个类别,那么LDA后维度为1、2~C-1维。
4. PCA投影的坐标系都是正交的 。 LDA关注分类能力,不保证投影到的坐标系是正交的 。
B. 有监督和无监督的算法分别有哪些
有监督学习算法:
聚类分析(Cluster Analysis)
关联规则挖掘(Association Rule Mining)
主成分分析(Principal Component Analysis,PCA)
独立成分分析(Independent Component Analysis,ICA)
降维(Dimensionality Rection)
奇异值分解(Singular Value Decomposition,SVD)
非负矩阵分解(Non-negative Matrix Factorization,NMF)
概率图模型(Probabilistic Graphical Models)
C. 有监督分类的算法
监督分类(supervisedclassification)又称训练场地法,是以建立统计识别函数为理论基础,依据典型样本训练方法进行分类的技术。
回归:在建模的过程中需同时具备自变量x和因变量y,属于有监督的学习算法。输出变量为离散型。
主要介绍:Logistic,决策树,随机森林,KNN,朴素贝则仿叶斯
tips:决策树,随机森林,KNN也可用于连续型变量的预测。
Logistic回归:
思想:
高低。
Logistic针对坦盯此离散型因变量的判别,如客户是否优质,客户的流失率概率等。
将线性回归的预测值经过非线性的Logit函数转换为[0,1]之间的概率值。参数求解:结合迭代对每一个未知的参数做梯度下降,学习率的步长通常可以取0.1,0.05,0.01,太小时需要迭代太多次收敛速度过慢,过大时难以得到理想的值可能只是局部最小。参数解释:优势比/发生比之比,如肿瘤体积每增加一个单位让迅,将会使癌症发生比变化e参数次倍。
D. knn算法是有监督还是无监督
knn算法是有监督机器学习算法。
KNN法即K最邻近法,最初由 Cover和Hart于1968年提态搏出,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一。KNN是通过测量不同特征值之间的距离进行分类州迟。
E. 有监督和无监督
1).监督式算法:
具有一个标准的本体,算法通过学习对数据进行预测,从而与本体进行比较。(我知道我想要得到什么)对数据,一部分数据用于训练模型,另一部分用于比较模型的正确率,有多少的匹配度就是多少的正确率。
2).无监督式算法:
不具有标准的本体,对于数据量庞大的数据集,我们想要找到其中隐藏的一些关系,则采用无监督式算法。需要将数据转化为一种有意义可比较的格式,最终得到的会是具有一定关系的集合。但是是否是我们想要的集合取决于我们自己。可以进行强制的删减某些数据以达到我们预期的特定分割。
3).强化式算法:
研究试图对强化学习模型进行逆向反馈以改进问题和技术的一种算法。是一种延时的机制。是一个连续做决策的过程,在一个过程中输入的数据的返回值会影响到下一个输入数据的返回值。算法定义了reward,由于自己能够察觉到signal并进行自己定义的action,算法需要将结果与reward进行比较,最终反馈以改进模型。RL没有被严格地监督,因为它不严格地依赖于受监督(或标记)数据集(训练集)。它实际上依赖于能够监控所采取行动的反应,并根据对奖励的定义来衡量。但这也不是没有监督的学习,因为我们知道,当我们对学习者进行建模时,这就是预期的回报。