Python 之 sklearn 实现 PCA 降维
来源:互联网 发布:windows telnet服务器 编辑:程序博客网 时间:2024/06/05 08:01
关于 PCA 算法的讲解文章不胜枚举,这里主要谈一谈 基于 Python 中 sklearn 模块的 PCA 算法实现。Explained Variance 累计贡献率 又名 累计方差贡献率 不要简单理解为 解释方差,它是 PCA 降维维度的重要指标,一般选取累计贡献率在90%左右的维度作为PCA 降维的参考维度。在识别算法的实现过程中,当我们求得某一数据库各类别特征参考维度时,取最大维度作为每一类特征的维度,即可实现数据降维。现对数据求取累计贡献率,算法实现如下。
import numpyfrom sklearn import decomposition# 构造聚类 类别数据Data_Set = []for k in range(5): arr = numpy.random.random([3000,45]) for i in numpy.arange(0,3000): j = i%3 arr[i,k*9+j*3:k*9+j*3+3] = arr[i,k*9+j*3:k*9+j*3+3]+k*0.25 print arr.shape Data_Set.append(arr)Dim_Set = []for Cat_Num in range(len(Data_Set)): pca = decomposition.PCA() pca.fit(Data_Set[Cat_Num]) # 累计贡献率 又名 累计方差贡献率 不要简单理解为 解释方差!!! EV_List = pca.explained_variance_ EVR_List = [] for j in range(len(EV_List)): EVR_List.append(EV_List[j]/EV_List[0]) for j in range(len(EVR_List)): if(EVR_List[j]<0.10): Dim = j break Dim_Set.append(Dim)
此时,即可根据参考维度,求得亟待处理数据的降维维度。sklearn 对数据的降维实现,函数详述如下。
sklearn.decomposition.PCA(n_components=None, copy=True, whiten=False)
参数说明:
n_components:
类型:int 或者 string,缺省时默认为None,所有成分被保留。
赋值为int,比如n_components=1,将把原始数据降到一个维度。
赋值为string,比如n_components='mle',将自动选取特征个数n,使得满足所要求的方差百分比。
意义:PCA算法中所要保留的主成分个数n,也即保留下来的特征个数n
copy:
类型:bool,True或者False,缺省时默认为True。
意义:表示是否在运行算法时,将原始训练数据复制一份。若为True,则运行PCA算法后,原始训练数据的值不会有任何改变,因为是在原始数据的副本上进行运算;若为False,则运行PCA算法后,原始训练数据的值会改,因为是在原始数据上进行降维计算。
whiten:
类型:bool,缺省时默认为False
意义:白化,使得每个特征具有相同的方差。
Dim = max(Dim_Set)pca = decomposition.PCA(n_components=Dim, copy=True, whiten=False) for k in range(len(Data_Set)): Data_Set[k] = pca.fit_transform(Data_Set[k])
- Python 之 sklearn 实现 PCA 降维
- Python 之 sklearn 实现 PCA 降维
- python sklearn PCA库
- PCA降维 python实现
- 【降维】之sklearn中PCA库讲解与实战
- sklearn PCA
- python之sklearn
- 机器学习(28)【降维】之sklearn中PCA库讲解与实战
- python 实现PCA
- python中实现PCA
- PCA的Python实现
- PCA python代码实现
- PCA python实现
- 决策树之 sklearn 实现
- PCA降维以及Kmeans聚类实例----python,sklearn,PCA,Kmeans
- PCA(sklearn参数详解)
- sklearn PCA使用
- sklearn中的PCA
- Redis使用误区
- 27-网络编程-19-网络编程(TCP协议-练习-服务端多线程技术)
- Tsung负载测试工具
- cocosdx里面A*算法的实现#ifndef __CAT_SPRITE_H__ #define __CAT_SPRITE_H__ #include "HelloWorldScene.h" #incl
- git push origin master
- Python 之 sklearn 实现 PCA 降维
- IntelliSense: #error 指令: Please use the /MD switch for _AFXDLL builds
- 多式样ProgressBar
- Android4.3 蓝牙BLE初步
- .net 读取独立的配置文件
- Fragment的应用
- 笔记
- Mysql组合查询-UNION-多个SELECT语句作为单个查询结果返回
- Matlab连接数据库mysql