机器学习(5)降维 -- 特征选择(低方差过滤与相关系数)与主成分分析(PCA降维)
目录
一、基础理论
1、降维定义
2、降维对象及目标
二、低方差过滤
1、基础理论
2、API
过程:
1、读取待处理数据集
2、创建低方差过滤转换器(设置过滤阈值)
3、低方差过滤处理
代码
三、相关系数
1、基础理论
2、API
计算相关系数
四、主成分分析(PCA降维)
1、基础理论
1、定义
2、作用
3、过程
2、API
过程:
1、获取数据
2、实例化降维转换器类
3、降维处理
代码
总代码
一、基础理论
1、降维定义
降维是指在特定条件下,降低随机变量(特征)个数,得到一组“不相关”变量的过程。(不仅仅是降低纬度)
(显示中拍照,就是三维降至二维)
零维:标量
一维:向量
二维:矩阵
三维:多个二维数组嵌套
......
相关特征:例如相对湿度与降水量。
2、降维对象及目标
降维对象:二维数组。
降维目标:得到不相关特征变量。(太多相关特征会造成特征冗余(即特征过多))
二、低方差过滤
1、基础理论
低方差过滤,过滤掉不太重要的特征。
特征方差小:大多数样品该特征差距不大。
特征方差大:很多样品该特征差距较大。(区分度高)
2、API
sklearn.feature_selection.VarianceThreshold
过程:
1、读取待处理数据集
这里如果直接读取数据集会遇到“玄学”错误。
# 1、读取数据集data = pd.read_csv("factor_returns.csv")
显而易见,上面的数据是存在字符串的。
但是这里方差过滤特征值是基于数据进行过滤。数据处理自然没办法处理字符串。
所以我们重新读取数据:
# 1、读取数据集data = pd.read_csv("factor_returns.csv")data = data.iloc[:, 1:-2] #从第2列到倒数第3列print(data)
成功过滤掉无法进行数据处理的字符串。
2、创建低方差过滤转换器(设置过滤阈值)
# 2、创建低方差过滤转换器(设置过滤阈值)transfer = VarianceThreshold(threshold=500) #设置过滤阈值
3、低方差过滤处理
# 3、低方差过滤处理new_data = transfer.fit_transform(data)print(new_data)
可以对比结果,成功过滤掉很多的冗余特征。
代码
# 低方差过滤
def Variance_Filter():# 1、读取数据集data = pd.read_csv("factor_returns.csv")data = data.iloc[:, 1:-2] #从第2列到倒数第3列print(data)# 2、创建低方差过滤转换器(设置过滤阈值)transfer = VarianceThreshold(threshold=500) #设置过滤阈值# 3、低方差过滤处理new_data = transfer.fit_transform(data)print(new_data)
三、相关系数
1、基础理论
皮尔逊相关系数:反映变量之间相关关系密切程度的统计指标。
相关系数性质:
(正相关:一个变量增长,另一个变量随之增长)
、
2、API
scipy.stats.pearsonr
计算相关系数
# 计算相关系数r = pearsonr(data['pe_ratio'], data['pb_ratio'])print('相关系数\n', r)
四、主成分分析(PCA降维)
1、基础理论
在降维的过程中,保留尽可能多的信息。
1、定义
高维数据转化为低维数据的过程,在此过程中可能会舍弃原有数据,创造新的变量。
2、作用
数据维数压缩,尽可能降低数据的维数(复杂度),损失少量信息。
3、过程
找到合适的曲线,通过距离运算得到主成分分析的结果。
2、API
sklearn.decomposition.PCA
过程:
1、获取数据
# 1、获取数据data = [[2,8,4,5], [6,3,0,8], [5,4,9,1]]print(data)
2、实例化降维转换器类
n_components为整数:保留几个参数
n_components为小数:保留百分比的信息
# 2、实例化降维转换器类# 整数:表示参数下降# 小数:表示保留百分比的信息# transfer = PCA(n_components=2) #参数降至2(从4->2)transfer = PCA(n_components=0.95) #保留0.9的信息
3、降维处理
# 3、降维处理new_data = transfer.fit_transform(data)print(new_data)
代码
# PCA降维
def PCA_Reduction():# 1、获取数据data = [[2,8,4,5], [6,3,0,8], [5,4,9,1]]print(data)# 2、实例化降维转换器类# 整数:表示参数下降# 小数:表示保留百分比的信息# transfer = PCA(n_components=2) #参数降至2(从4->2)transfer = PCA(n_components=0.95) #保留0.9的信息# 3、降维处理new_data = transfer.fit_transform(data)print(new_data)
总代码
# 降维(特征选择:低方差过滤和相关系数)(主成分分析:PCA降维)
from sklearn.feature_selection import VarianceThreshold
import pandas as pd
from scipy.stats import pearsonr
from sklearn.decomposition import PCA# 低方差过滤
def Variance_Filter():# 1、读取数据集data = pd.read_csv("factor_returns.csv")data = data.iloc[:, 1:-2] #从第2列到倒数第3列print(data)# 2、创建低方差过滤转换器(设置过滤阈值)transfer = VarianceThreshold(threshold=500) #设置过滤阈值# 3、低方差过滤处理new_data = transfer.fit_transform(data)print('低方差过滤处理\n', new_data)# 计算相关系数r = pearsonr(data['pe_ratio'], data['pb_ratio'])print('相关系数\n', r)# PCA降维
def PCA_Reduction():# 1、获取数据data = [[2,8,4,5], [6,3,0,8], [5,4,9,1]]print(data)# 2、实例化降维转换器类# 整数:表示参数下降# 小数:表示保留百分比的信息# transfer = PCA(n_components=2) #参数降至2(从4->2)transfer = PCA(n_components=0.95) #保留0.9的信息# 3、降维处理new_data = transfer.fit_transform(data)print(new_data)if __name__ == '__main__':# 低方差过滤Variance_Filter()# PCA降维PCA_Reduction()
机器学习(5)降维 -- 特征选择(低方差过滤与相关系数)与主成分分析(PCA降维)相关推荐
- 【视频】主成分分析PCA降维方法和R语言分析葡萄酒可视化实例|数据分享
最近我们被客户要求撰写关于主成分分析PCA的研究报告,包括一些图形和统计输出.降维技术之一是主成分分析 (PCA) 算法,该算法将可能相关变量的一组观察值转换为一组线性不相关变量.在本文中,我们将讨论 ...
- 特征选择过滤法-方差过滤、F检验、互信息法
过滤法 过滤法通常用作预处理步骤,特征选择完全独立于任何机器学习算法.它是根据各种统计检验分数和相关性指标来选择特征. 全部特征--->最佳特征子集--->算法---> ...
- pca降维的基本思想_一文读懂 PCA 降维算法
转自:chenbjin https://www.cnblogs.com/chenbjin/p/4200790.html 主成分分析(PCA)是一种基于变量协方差矩阵对数据进行压缩降维.去噪的有效方法, ...
- 主成分分析——PCA降维Python实现及碎石图
引言 降维的思想: 多元统计分析处理的是多变量问题.由于变量较多,增加了分析问题的复杂性.但在实际问题中,变量过多会存在一定的相关性,因此,多变量中可能会存在信息的重叠.在我们进行数据处理的时候为了提 ...
- pca 对图像降维matlab,Matlab用处理后的数据进行PCA降维
我现在找到一些相关代码 但不知道如何用于我现在的数据中 请教! 代码为 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ...
- 机器学习中的数学(4)-线性判别分析(LDA), 主成分分析(PCA)
前言: 第二篇的文章中谈到,和部门老大一宁出去outing的时候,他给了我相当多的机器学习的建议,里面涉及到很多的算法的意义.学习方法等等.一宁上次给我提到,如果学习分类算法,最好从线性的入手,线性分 ...
- [学习笔记] [机器学习] 8. 聚类算法(聚类算法:K-means、K-means++;聚类算法评估;特征降维:特征选择(Pearson相关系数、Spearman相关系数)、PCA主成分分析)
视频链接 数据集下载地址:无需下载 1. 聚类算法简介 学习目标: 掌握聚类算法实现过程 知道 K-means 算法原理 知道聚类算法中的评估模型 说明 K-means 的优缺点 了解聚类中的算法优化 ...
- pca降维的基本思想_百面机器学习 第四章 降维 PCA
降维:用低维度向量表示高纬度特征. 主成分分析PCA.线性判别分析LDA.等距映射.局部线性嵌入.拉普拉斯特征映射.局部保留投影. 1.PCA PCA是一种线性.非监督.全局的降维算法. 推理: (1 ...
- 机器学习-Sklearn(第三版)Day4 主成分分析PCA与奇异值分解SVD
目录 一.简介 什么是维度 sklearn中的降维算法 二.PCA与SVD 0.如何实现降维算法 思考:PCA和特征选择技术都是特征工程的一部分,它们有什么不同? 1.重要参数n_components ...
最新文章
- python导入模块快捷键_Python中的模块导入和读取键盘输入的方法
- 【dmp文件还原到oralce数据库】
- SQL Server遍历表的几种方法
- - (BOOL)shouldInvalidateLayoutForBoundsChange:(CGRect)newBounds
- C++知识总结(2)--字符串和数组
- 28 FI配置-财务会计-外币评估-检查分配到分类账组的会计核算原则
- c语言综合作业答案,C语言作业答案
- 【VS开发】文件夹和文件选择EditBrowe控件使用
- Kali Linux Web 渗透测试秘籍 第一章 配置 Kali Linux
- hdu 2438 Turn the corner [ 三分 ]
- python职业发展规划书范文_职业生涯规划书范文 3篇
- 多元回归理论及R语言实现
- SQL必知必会知识点汇总
- ADS仿真过孔阻抗(via designer)
- 也谈USB重定向的方式
- 详解线上线下收单业务(2)
- 现代软件工程 -- 第一周 -- 介绍自己
- 一年级计算c语言编程,用C语言switch语句做一年级算术题。
- Fine Dining G
- 毕业设计 基于STM32单片机的二轮平衡小车