discriminant_analysis.LinearDiscriminantAnalysis
)和二次判别分析( discriminant_analysis.QuadraticDiscriminantAnalysis
)是两个经典的分类器。顾名思义,它们分别代表了线性决策面和二次决策面。 这些分类器十分实用,因为它们具有易于计算的封闭式解决方案,且本质上是多种类别的,它们已被证明在实践中能很好地工作并且没有任何超参数要调整。 该图显示了线性判别分析和二次判别分析的决策边界。由图可得,线性判别分析只能学习线性边界,而二次判别分析则可以学习二次边界,因此它更加灵活。 例子: 协方差椭圆形的线性和二次判别分析:LDA和QDA在合成数据上的比较。
discriminant_analysis.LinearDiscriminantAnalysis
通过将输入数据投影到一个线性子空间来进行有监督的降维,该线性子空间由类间距离最大化的方向组成(在下面的数学部分中有对其进行精确的讨论)。输出的维数必须小于原来类别的数量,因此,通常这会缩减相当多的维数,并且仅在多类别中才有意义。 这是函数 discriminant_analysis.LinearDiscriminantAnalysis.transform
的实现。可以使用构造函数的 n_components
参数来设置要降到多少维。此参数对 discriminant_analysis.LinearDiscriminantAnalysis.fit
或 discriminant_analysis.LinearDiscriminantAnalysis.predict
没有影响 。 例子: 鸢尾属植物数据集的LDA和PCA二维投影的比较:在鸢尾属植物数据集上使用LDA和PCA算法的降维比较。
naive_bayes.GaussianNB
。
discriminant_analysis.LinearDiscriminantAnalysis.transform
方法中使用的 n_components
参数 。请参见3来获得有关更多详细信息。
discriminant_analysis.LinearDiscriminantAnalysis
的 shrinkage
参数设置为“自动(auto)”,根据Ledoit 和 Wolf [4] 的介绍,这样做可以以解析的方式自动确定最优的收缩参数。需要注意的是,目前收缩(Shrinkage)只能在求解器 solver
的参数为 “lsqr” 或 “eigen”的时候才能发挥作用。 该 shrinkage
参数也可以手动设置在0和1之间。0对应于无收缩(这意味着将使用经验协方差矩阵),1对应于完全收缩(这意味着对角矩阵的方差将用作协方差矩阵的估计值)。将参数 shrinkage
的取值设定在0到1之间的话,就可以估计出一个收缩(Shrinkage)版的协方差矩阵。
shrinkage
参数同时使用。 “ lsqr”求解器(solver)是仅适用于分类的高效算法。它支持收缩(Shrinkage)。 “eigen”求解器(solver)是一种通过优化类间散度(between class scatter)与类内散度(within class scatter)的比率进行求解的方法,它也支持收缩(Shrinkage),“eigen” 求解器(solver)需要计算协方差, 因此这种求解器不适用于高维特征的情况。 案例: 应用于分类任务的正常(Normal)和缩减(Shrinkage)的LDA: 具有和不具有收缩(Shrinkage)的LDA分类器的比较。 参考文献: “The Elements of Statistical Learning”, Hastie T., Tibshirani R., Friedman J., Section 4.3, p.106-119, 2008. Ledoit O, Wolf M. Honey, I Shrunk the Sample Covariance Matrix. The Journal of Portfolio Management 30(4), 110-119, 2004. ☆☆☆为方便大家查阅,小编已将scikit-learn学习路线专栏 文章统一整理到公众号底部菜单栏,同步更新中,关注公众号,点击左下方“系列文章”,如图:
欢迎大家和我一起沿着scikit-learn文档这条路线,一起巩固机器学习算法基础。(添加微信:mthler,备注:sklearn学习,一起进【sklearn机器学习进步群】开启打怪升级的学习之旅。)