二值图像(黑白图像):图像像素只有两种元素(黑色、白色),0表示黑色、1表示白色,没有过度
灰度图像:图像像素由量化的灰度级来描述图像,没有彩色信息,灰度级分256等,0表示黑色, 255表示白色
彩色图像(RGB图像):RGB表示红色、绿色和蓝色三色通道,计算机里所有颜色都是按不同比 例组成,RGB是图像处理中最基本、最常用、面向硬件的颜色空间的光混合体系
在实际问题中,变量之间可能存在一定的相关性,即多变量中可能存在信息的重叠。人们自然希望通过克服相关性、重叠性,用较少的变量来代替原来较多的变量,而这种代替可以反映原来多个变量的大部分信息,这实际上是一种“降维” 的思想。
在数据各变量相关的情况下,将原始变量做线性加权形成少数几个线性无关的综合变量,并反映出原变量的大部分信息。
具体方法:当第一个线性组合不能提取更多的信息时,再考虑用第二个线性组合继续这个快速提取的过程,直到所提取的信息与原指标相差不多时为止。其中,这些线性组合称为主成分。
数据的特征或信息由各个变量描述。
先找出所有主成分 → 主成分信息量的大小筛选出少数主成分
①寻找p个线性无关的综合变量(即主成分), 满足各成分反映原始变量信息量呈是递减的, information()≥ information(+1) 且与( ≠ )是线性无关的
②依据各主成分反映原始变量信息量的大小,确定哪几个主成分可以反映原始变量的大部分信息
③利用选择出的主成分(综合变量1, 2, . . ) 重新表示原始数据
定义:设为p维随机向量,称为X的第i 主成分(i=1,2,…,p)
如果: ①
② 当>1时
③
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_
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)