多元统计分析 Python 主成分分析 PCA

图像分类

二值图像(黑白图像):图像像素只有两种元素(黑色、白色),0表示黑色、1表示白色,没有过度

灰度图像:图像像素由量化的灰度级来描述图像,没有彩色信息,灰度级分256等,0表示黑色, 255表示白色

彩色图像(RGB图像):RGB表示红色、绿色和蓝色三色通道,计算机里所有颜色都是按不同比 例组成,RGB是图像处理中最基本、最常用、面向硬件的颜色空间的光混合体系

降维思想

在实际问题中,变量之间可能存在一定的相关性,即多变量中可能存在信息的重叠。人们自然希望通过克服相关性、重叠性,用较少的变量来代替原来较多的变量,而这种代替可以反映原来多个变量的大部分信息,这实际上是一种“降维” 的思想。

主成分分析

在数据各变量相关的情况下,将原始变量做线性加权形成少数几个线性无关的综合变量,并反映出原变量的大部分信息。

具体方法:当第一个线性组合不能提取更多的信息时,再考虑用第二个线性组合继续这个快速提取的过程,直到所提取的信息与原指标相差不多时为止。其中,这些线性组合称为主成分

数据的特征或信息由各个变量描述。

基本步骤

先找出所有主成分 → 主成分信息量的大小筛选出少数主成分

①寻找p个线性无关的综合变量(即主成分), 满足各成分反映原始变量信息量呈是递减的,            information()≥ information(+1) 且与( ≠ )是线性无关

②依据各主成分反映原始变量信息量的大小,确定哪几个主成分可以反映原始变量的大部分信息

③利用选择出的主成分(综合变量1, 2, . . ) 重新表示原始数据

定义

定义:设X = (X_{1},...,X_{p})'为p维随机向量,称Z_{i} = a_{i}'X为X的第i 主成分(i=1,2,…,p)

如果: ① a_{i} 'a_{i} = 1(i = 1,2,...,p) 

         ② 当>1时 a_{i}^{}\sum a_{j}^{} 0 (j = 1,...,i-1)

         ③ Var(z_{i}^{}) = max_{a\in R^{m}}^{} Var(a'X)

sklearn.decomposition.PCA(n_components=None, copy=True, whiten=False)

n_components : int, float, None or string,降维后的主成成分数量

              若 0 < n_components < 1,则方差和需要大于 n_components 所指定的阈值,                      PCA 会自动地选择下降维数

              如果 n_components 取整数,则事先指定主成分个数

              意义:PCA算法中所要保留的主成分个数n,也即保留下来的特征个数n

              类型:int 或者 string,缺省时默认为None,所有成分被保留。

                        赋值为int,比如n_components=1,将把原始数据降到一个维度。

                        赋值为string,比如n_components='mle',将自动选取特征个数n,使得满足                          所要求的方差百分比。

 copy:bool,True 或 False,默认为 True,即是否需要将原始训练数据复制
            意义:表示是否在运行算法时,将原始训练数据复制一份

            若为True,则运行PCA算法后,原始训练数据的值不会有任何改变,因为是在原始                数据的副本上进行运算

            若为False,则运行PCA算法后,原始训练数据的值会改,因为是在原始数据上进行              降维计算

 whiten:bool,True 或 False,默认为 False

              意义:是否白化,使得每个特征具有相同的方差

components_ :返回具有最大方差的成分。

explained_variance_ratio_:返回 所保留的n个成分各自的方差百分比。

n_components_:返回所保留的成分个数n。

mean_:

noise_variance_

PCA方法

fit(X,y=None):fit(X),表示用数据X来训练PCA模型。

函数返回值:调用fit方法的对象本身。比如pca.fit(X),表示用X对pca这个对象进行训练。

fit_transform(X):用X来训练PCA模型,同时返回降维后的数据。

                               newX=pca.fit_transform(X),newX就是降维后的数据。

inverse_transform():将降维后的数据转换成原始数据,X=pca.inverse_transform(newX)

transform(X):将数据X转换成降维后的数据。当模型训练好后,对于新输入的数据,都可以用                               transform方法来降维。

import sklearn.decomposition as dp
pca=dp.PCA(n_components=0.90) 
reduced_x=pca.fit_transform(data)      #压缩后的数据
                                       #fit_transform():fit找到数据转换规则,并将数据标准化
reduced_x= np.dot(data,pca.components_)
pca.components_                                 #各主成分的权向量
pca.n_components                                #在此临界值下筛选出主成分个数
print(pca.n_component)

你可能感兴趣的:(Python,python,sklearn)