利用sklearn库来给PCA和LDA做一个比较。首先先了解一下这两个库,然后通过(iris)鸢尾花数据集来进行实践操作。
【PCA】
主要参数:
n_components
int, float, None or string
这个参数类型有int型,float型,string型,默认为None。
它的作用是指定PCA降维后的特征数(也就是降维后的维度)。
若取默认(None),则n_components==min(n_samples, n_features),即降维后特征数取样本数和原有特征数之间较小的那个;
若n_components}设置为‘mle’并且svd_solver设置为‘full’则使用MLE算法根据特征的方差分布自动去选择一定数量的主成分特征来降维;
若 0< 0 < n_components <1 < 1 <script id="MathJax-Element-20" type="math/tex"><1</script>并且svd_solver设置为‘full’,则n_components为主成分方差的阈值;
若n_components ≥1 ≥ 1 ,则降维后的特征数为n_components;
若svd_solver设置为‘arpack’,则n_components不能等于n_features。
copy
bool (default True)
在运行算法时,将原始训练数据复制一份。参数为bool型,默认是True,传给fit的原始训练数据X不会被覆盖;若为False,则传给fit后,原始训练数据X会被覆盖。
whiten
bool, optional (default False)
是否对降维后的数据的每个特征进行归一化。参数为bool型,默认是False。
svd_solver
string {‘auto’, ‘full’, ‘arpack’, ‘randomized’}
指定奇异值分解SVD的方法,参数为string类型,可选择‘auto’,‘full’,
‘arpack’,‘randomized’。默认是‘auto’。‘auto’适用于输入数据大于500 × × 500且要提取的成分低于最小维数数据的80%。
注:前面的PCA方法那篇中,对PC