❶ 无监督和有监督算法的区别
1、有监督学习 :通过已有的训练样本去训练得到一个最优模型,再利用这个模型将所有的输入映射为相应的输出,对输出进行简单的判断从而实现预测和分类的目的,也就具有了对未知数据进行预测和分类的能力。就如有标准答案的练习题,然后再去考试,相比没有答案的练习题然后去考试准确率更高。又如我们小的时候不知道牛和鸟是否属于一类,但当我们随着长大各种知识不断输入,我们脑中的模型越来越准确,判断动物也越来越准确。
有监督学习可分为 回归和分类 。
回归: 即给出一堆自变量X和因变量Y,拟合出一个函数,这些自变量X就是特征向量,因变量Y就是标签。 而且标签的值 连续 的,例LR。
分类 :其数据集,由特征向量X和它们的标签Y组成,当你利用数据训练出模型后,给你一个只知道特征向量不知道标签的数据,让你求它的标签是哪一个?其输出结果是 离散 的。例如logistics、SVM、KNN等。
2、无监督学习: 我们事先没有任何训练样本,而需要直接对数据进行建模。比如我们去参观一个画展,我们完全对艺术一无所知,但是欣赏完多幅作品之后,我们也能把它们分成不同的派别。无监督学习主要算法是聚类,聚类目的在于把相似的东西聚在一起,主要通过计算样本间和群体间距离得到,主要算法包括Kmeans、层次聚类、EM算法。
❷ 降维算法之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关注分类能力,不保证投影到的坐标系是正交的 。