scikit-learn之降维之LDA

线性判别分析LDA原理总结

LDA 既可以用于分类又可以用于降维,应用场景最多的还是降维。和 PCA 类似,LDA 降维基本也不用调参,只需要指定降维到的维数即可。

class sklearn.discriminant_analysis.LinearDiscriminantAnalysis

solver=’svd’:即求LDA超平面特征矩阵使用的方法。可以选择的方法有奇异值分解”svd”,最小二乘”lsqr” (仅适用于分类)和特征分解”eigen”。一般来说特征数非常多的时候推荐使用svd,而特征数不多的时候推荐使用eigen。主要注意的是,如果使用svd,则不能指定正则化参数shrinkage进行正则化;

shrinkage=None:正则化参数,可以增强 LDA 分类的泛化能力。如果仅仅只是为了降维,则一般可以忽略这个参数。默认是None,即不进行正则化。可以选择 “auto”,让算法自己决定是否正则化。当然我们也可以选择不同的 [0,1] 之间的值进行交叉验证调参。注意 shrinkage 只在 solver 为最小二乘 “lsqr” 和特征分解 “eigen” 时有效;

priors=None: array,shape (n_classes,) 类别权重,可以在做分类模型时指定不同类别的权重,进而影响分类模型建立。降维时一般不需要关注这个参数;

n_components=None:即我们进行 LDA 降维时降到的维数。在降维时需要输入这个参数。注意只能为 [1,类别数-1) 范围之间的整数。如果我们不是用于降维,则这个值可以用默认的None;

store_covariance=False: bool,额外计算每类样本的协方差矩阵,只有在 solver 为 “svd” 时起作用;

tol=0.0001: float,秩估计的阈值,只有在 solver 为 “svd” 时起作用;

你可能感兴趣的:(机器学习)