机器学习sklearn-降维
降维就是降低特征矩阵中特征的数量
sklearn.decomposition 降维(矩阵分解)
主成分分析 PCA
因子分析 FactorAnalysis
独立成分分析 FastICA
字典学习DictionaryLearning
高级矩阵分解 LDA LatentDirichletAllocation
其他矩阵分解 SparseCoder稀疏编码
PCA与SVD
降维 减少特征的数量 能够既减少特征点额数量,又保留大部分有效信息。
PCA使用的信息量衡量指标,就是样本方差,又称可解释性方差,方差越大特征所带的信息量越多。
方差计算公式中为什么是除以n-1? 为了得到样本方差的无偏估计
降维 sklearn.decomposition.PCA
选取第1个方差最大的特征向量,删掉没有被选中的特征
PCA使用方差作为信息量的衡量指标 SVD使用奇异值分解来找出空间V
特征选择是从已存在的特征中选取携带信息最多的,选完之后的特征依然具有可解释性。
PAC是将已存在的特征进行压缩,降维完毕后的特征不是原本的特征矩阵中的任何一个特征,而是通过某些方式组合起来的新特征。新的特征矩阵生成之前我们无法知晓PCA都建立了怎样额新特征向量,新特征矩阵生成之后也不具有可读性和可解释性。
可以视为特征创造的一种。不适用于探索特征和标签之间的关系的模型,因为无法解释新特征和标签之间的关系。线性回归等模型中使用特征选择。
重要参数 n_components 是降维后需要的维度,即降维后需要保留的特征数量
实例化-fit-transform
PCA.explained_variance_ 属性 可解释方差
选择最好的n_compoents 累计可解释方差贡献率曲线,降维的每个特征带了多少信息量
np.cumsum
PCA最大似然估计自选超参数
按照信息量的占比选择超参数
SVD在矩阵分解中的过程比PCA简单快速,奇异值分解可以不计算协方差矩阵等结构复杂计算冗长的矩阵,直接求出新特征空间降维后的特征矩阵。
PCA和SVD的合作降维
重要参数svd_solver 与 random_state
svd_solver 在降维过程中用来控制矩阵分解的一些细节的参数 有四种模式可选
模式auto full arpack randomized
重要属性 components_ 使我们要将原始数据进行映射的哪些新特征向量组成的矩阵
[*xxx.xxx] 查看惰性对象
enumerate(xxx.xxx)
高级人脸识别的核心是瞳孔 虹膜识别
重要接口 inverse_transform
降维不是完全可逆的
总结:重要参数 n_components svd_solver
重要属性 components explained_variance explained_variance_ratio