Python中使用sklearn进行特征降维的方法

 更新时间:2023年04月24日 10:35:28   作者:疯狂的小强呀  
在Python中,可以使用sklearn库中的特征降维方法对数据进行处理。主要包括基于PCA算法的降维、基于LDA算法的降维、以及利用特征选择方法进行降维。这些方法可以提高模型的训练效率和预测准确率,特别是在高维数据集中具有重要的作用

特征降维

0维 标量

1维 向量

2维 矩阵

概念

降维是指在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程

注:正是因为在进行训练的时候,我们都是使用特征进行学习,如果特征本身存在问题或者特征之间相关性较强,对于算法学习预测会影响较大

降维的两种方式:

特征选择主成分分析(可以理解为一种特征提取的方式)

特征选择

①定义

数据中包含冗余或相关变量(或称特征、属性、指标等),旨在从原有特征中找出主要特征。

②方法

Filter(过滤式):主要探究特征本身特点、特征与特征和目标值之间关联

  • 方差选择法:低方差特征过滤
  • 相关系数

Embedded(嵌入式):算法自动选择特征(特征与目标值之间的关联)

  • 决策树:信息熵、信息增益
  • 正则化:L1、L2
  • 深度学习:卷积等

③模块

sklearn.feature_selection

过滤式

①低方差特征过滤

删除低方差的一些特征

  • 特征方差小:某个特征很多样本的值比较相近
  • 特征方差大:某个特征很多样本的值都有差别

API

sklearn.feature_selection.VarianceThreshold(threshold=0.0)

-删除所有低方差特征
-Variance.fit_transform(X)
    X:numpy array格式的数据[n_samples,n_features]
    返回值:训练集差异低于threshold的特征将被删除。默认值是保留所有非零方差特征,即删除所有样本中具有相同值的特征

代码演示

from sklearn.feature_selection import VarianceThreshold
import pandas as pd
def variance_demo():
    #1.获取数据
    data=pd.read_csv("data.TXT")
    print("data:\n", data)
    #2.实例化一个转换器类
    transfer=VarianceThreshold(threshold=7)
    #3.调用fit_transform
    result=transfer.fit_transform(data)
    print("result:\n", result,result.shape)
    return None

②相关系数

皮尔逊相关系数(Pearson Correlation Coefficient)

反映变量之间相关关系密切程度的统计指标

公式

特点

相关系数的值介于-1与+1之间,即-1<=r<=+1,其性质如下:

  • 当r>0时,表示两变量正相关,r<0时,两变量为负相关
  • 当|r|=1时,表示两变量为完全相关,当r=0时,表示两变量间无相关关系
  • 当0<|r|<1时,表示两变量存在一定程度的相关。且|r|越接近1,两变量间线性关系越密切;|r|越接近于0,表示两变量的线性相关越弱
  • 一般可按三级划分:|r|<0.4为低度相关;0.4<=|r|<0.7为显著性相关;0.7<=|r|<1为高度线性相关

API

from scipy.stats import pearsonr
-x:array
-y:array
-Returns:(Pearson`s correlation coefficient,p-value)

代码演示

from scipy.stats import pearsonr
def p_demo():
    # 1.获取数据
    data = pd.read_csv("data.TXT")
    print("data:\n", data)
    # 2.计算两个变量之间的相关系数
    r=pearsonr(data["one"],data["two"])
    print("相关系数:\n", r)
    return None

如果特征与特征之间相关性很高,通过以下方法处理:

①选取其中一个

②加权求和

③主成分分析

③主成分分析

定义

高维数据转化为低维数据的过程,在此过程中可能会舍弃原有数据、创造新的变量

作用

是数据维数压缩,尽可能降低原数据维数(复杂度),损失少量信息

应用

回归分析或者聚类分析当中

API

sklearn.decomposition.PCA(n_components=None)

-将数据分解为较低维数空间
-n_components:
    ·小数:表示保留百分之多少的信息
    ·整数:减少到多少特征
-PCA.fit_transform(X)
    X:numpy array格式的数据[n_samples,n_features]
-返回值:转换后指定维度的array

使用

from sklearn.decomposition import PCA
def pca_demo():
    data=[[2,8,4,5],[6,3,0,8],[5,4,9,1]]
    #1.实例化一个转换器类
    transfer=PCA(n_components=2)
    #2.调用fit_transform
    result=transfer.fit_transform(data)
    print("result:\n",result)
    return None

到此这篇关于Python中使用sklearn进行特征降维的方法的文章就介绍到这了,更多相关Python sklearn特征降维内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python批量自动修改文件名,按指定的格式自动命名方式

    Python批量自动修改文件名,按指定的格式自动命名方式

    这篇文章主要介绍了Python批量自动修改文件名,按指定的格式自动命名方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • python用户自定义异常的实例讲解

    python用户自定义异常的实例讲解

    在本篇文章里小编给大家整理的是一篇关于python用户自定义异常的实例讲解,以后需要的朋友们可以跟着学习参考下。
    2021-07-07
  • 用python记录运行pid,并在需要时kill掉它们的实例

    用python记录运行pid,并在需要时kill掉它们的实例

    下面小编就为大家带来一篇用python记录运行pid,并在需要时kill掉它们的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Pandas加速代码之避免使用for循环

    Pandas加速代码之避免使用for循环

    如果你使用Python和Pandas进行数据分析,循环是不可避免要使用的。这篇文章主要给大家介绍了关于Pandas加速代码之避免使用for循环的相关资料,需要的朋友可以参考下
    2021-05-05
  • Python写的一个定时重跑获取数据库数据

    Python写的一个定时重跑获取数据库数据

    本文给大家分享基于python写的一个定时重跑获取数据库数据的方法,非常不错,具有参考借鉴价值,需要的朋友参考下
    2016-12-12
  • 10张动图学会python循环与递归问题

    10张动图学会python循环与递归问题

    今天为大家整理了十张动图GIFS,有助于认识循环、递归、二分检索等概念的具体运行情况。代码实例以Python语言编写,非常不错,感兴趣的朋友跟随小编一起学习吧
    2021-02-02
  • Python3.5多进程原理与用法实例分析

    Python3.5多进程原理与用法实例分析

    这篇文章主要介绍了Python3.5多进程原理与用法,结合实例形式分析了多进程的原理、单进程、多进程、进程类及进程队列等相关定义与使用技巧,需要的朋友可以参考下
    2019-04-04
  • 对python中数组的del,remove,pop区别详解

    对python中数组的del,remove,pop区别详解

    今天小编就为大家分享一篇对python中数组的del,remove,pop区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • Flask SocketIO实现动态绘图的示例详解

    Flask SocketIO实现动态绘图的示例详解

    Flask-SocketIO 是基于 Flask 的一个扩展,用于简化在 Flask 应用中集成 WebSocket 功能,本文主要介绍了Flask SocketIO如何实现动态绘图,需要的可以参考下
    2023-11-11
  • 一文详解Python加解压文件gzip库的操作

    一文详解Python加解压文件gzip库的操作

    Gzip是若干种文件压缩程序的简称,通常指GNU计划的实现。本文为大家介绍了Python中加解压文件gzip库的基本操作,感兴趣的小伙伴可以了解一下
    2022-11-11

最新评论