爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      聚类算法之特征降维-特征选择、主成分分析

      首页 知识中心 大数据 文章详情页

      聚类算法之特征降维-特征选择、主成分分析

      2023-08-03 08:01:02 阅读次数:433

      python,算法

      聚类算法之特征降维-特征选择、主成分分析

      1 降维

      1.1 定义      【就是改变特征值,选择哪列保留,哪列删除;目标是得到一组“不相关”的主变量】

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

      • 降低随机变量的个数

      聚类算法之特征降维-特征选择、主成分分析

      • 相关特征(correlated feature)
        • 相对湿度与降雨量之间的相关
        • 等等

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

      1.2 降维的两种方式

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

      2 特征选择       【剔除数据中的冗余变量】

      2.1 定义

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

      聚类算法之特征降维-特征选择、主成分分析

      2.2 方法

      • Filter(过滤式):主要探究特征本身特点、特征与特征和目标值之间关联
        • 方差选择法:低方差特征过滤
        • 相关系数
      • Embedded (嵌入式):算法自动选择特征(特征与目标值之间的关联)
        • 决策树:信息熵、信息增益
        • 正则化:L1、L2
        • 深度学习:卷积等

      2.3 低方差特征过滤      【把方差比较小的某一列进行剔除;因为不能按意愿进行删除,所以平时不会常用】

      删除低方差的一些特征,前面讲过方差的意义。再结合方差的大小来考虑这个方式的角度。

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

      2.3.1 API

      • sklearn.feature_selection.VarianceThreshold(threshold = 0.0)     【threshold这个参数必须得传】
        • 删除所有低方差特征
        • Variance.fit_transform(X)
          • X:numpy array格式的数据[n_samples,n_features]
          • 返回值:训练集差异低于threshold的特征将被删除。默认值是保留所有非零方差特征,即删除所有样本中具有相同值的特征。

      2.3.2 数据计算

      我们对某些股票的指标特征之间进行一个筛选,除去'index,'date','return'列不考虑(这些类型不匹配,也不是所需要指标)

      一共这些特征

      pe_ratio,pb_ratio,market_cap,return_on_asset_net_profit,du_return_on_equity,ev,earnings_per_share,revenue,total_expense
      index,pe_ratio,pb_ratio,market_cap,return_on_asset_net_profit,du_return_on_equity,ev,earnings_per_share,revenue,total_expense,date,return
      0,000001.XSHE,5.9572,1.1818,85252550922.0,0.8008,14.9403,1211444855670.0,2.01,20701401000.0,10882540000.0,2012-01-31,0.027657228229937388
      1,000002.XSHE,7.0289,1.588,84113358168.0,1.6463,7.8656,300252061695.0,0.326,29308369223.2,23783476901.2,2012-01-31,0.08235182370820669
      2,000008.XSHE,-262.7461,7.0003,517045520.0,-0.5678,-0.5943,770517752.56,-0.006,11679829.03,12030080.04,2012-01-31,0.09978900335112327
      3,000060.XSHE,16.476,3.7146,19680455995.0,5.6036,14.617,28009159184.6,0.35,9189386877.65,7935542726.05,2012-01-31,0.12159482758620697
      4,000069.XSHE,12.5878,2.5616,41727214853.0,2.8729,10.9097,81247380359.0,0.271,8951453490.28,7091397989.13,2012-01-31,-0.0026808154146886697
      • 分析

      1、初始化VarianceThreshold,指定阀值方差

      2、调用fit_transform       【在特征降维中,不需要对目标值进行降维,只对特征值进行特征降维】

      import pandas as pd
      from sklearn.feature_selection import VarianceThreshold
      
      
      def variance_demo():
          """
          删除低方差特征--特征选择
          :return: None
          """
          data = pd.read_csv('./factor_returns.csv')
          print(data)
          #  1.实例化一个转换器类
          transfer = VarianceThreshold(threshold=1)
          #  2.调用fit_transform
          data = transfer.fit_transform(data.iloc[:, 1:10])  # 除去'index,'date','return'列不考虑(这些类型不匹配,也不是所需要指标)
          print('删除低方差特征的结果:\n', data)
          print("形状:\n", data.shape)
          return None
      
      
      variance_demo()
      

      运行结果:

                  index  pe_ratio  pb_ratio  ...  total_expense        date    return
      0     000001.XSHE    5.9572    1.1818  ...   1.088254e+10  2012-01-31  0.027657
      1     000002.XSHE    7.0289    1.5880  ...   2.378348e+10  2012-01-31  0.082352
      2     000008.XSHE -262.7461    7.0003  ...   1.203008e+07  2012-01-31  0.099789
      3     000060.XSHE   16.4760    3.7146  ...   7.935543e+09  2012-01-31  0.121595
      4     000069.XSHE   12.5878    2.5616  ...   7.091398e+09  2012-01-31 -0.002681
      ...           ...       ...       ...  ...            ...         ...       ...
      2313  601888.XSHG   25.0848    4.2323  ...   1.041419e+10  2012-11-30  0.060727
      2314  601901.XSHG   59.4849    1.6392  ...   1.089783e+09  2012-11-30  0.179148
      2315  601933.XSHG   39.5523    4.0052  ...   1.749295e+10  2012-11-30  0.137134
      2316  601958.XSHG   52.5408    2.4646  ...   6.009007e+09  2012-11-30  0.149167
      2317  601989.XSHG   14.2203    1.4103  ...   4.132842e+10  2012-11-30  0.183629
      
      [2318 rows x 12 columns]
      删除低方差特征的结果:
       [[ 5.95720000e+00  1.18180000e+00  8.52525509e+10 ...  1.21144486e+12
         2.07014010e+10  1.08825400e+10]
       [ 7.02890000e+00  1.58800000e+00  8.41133582e+10 ...  3.00252062e+11
         2.93083692e+10  2.37834769e+10]
       [-2.62746100e+02  7.00030000e+00  5.17045520e+08 ...  7.70517753e+08
         1.16798290e+07  1.20300800e+07]
       ...
       [ 3.95523000e+01  4.00520000e+00  1.70243430e+10 ...  2.42081699e+10
         1.78908166e+10  1.74929478e+10]
       [ 5.25408000e+01  2.46460000e+00  3.28790988e+10 ...  3.88380258e+10
         6.46539204e+09  6.00900728e+09]
       [ 1.42203000e+01  1.41030000e+00  5.91108572e+10 ...  2.02066110e+11
         4.50987171e+10  4.13284212e+10]]
      形状:
       (2318, 8)
      

      【从运行结果可以看出,列数减少了,由本来的12列,经过代码处理选择1:10列,代码降维处理是减少了1列】

      2.4 相关系数

      • 主要实现方式:
        • 皮尔逊相关系数
        • 斯皮尔曼相关系数

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

      1.作用

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

      2.公式计算案例

      公式

      聚类算法之特征降维-特征选择、主成分分析

      举例

      • 比如说我们计算年广告费投入与月均销售额

      聚类算法之特征降维-特征选择、主成分分析

      那么之间的相关系数怎么计算

      聚类算法之特征降维-特征选择、主成分分析

      最终计算:

      聚类算法之特征降维-特征选择、主成分分析

      所以我们最终得出结论是广告投入费与月平均销售额之间有高度的正相关关系。

      3.特点

      相关系数的值介于–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为高度线性相关

      4.api

      • from scipy.stats import pearsonr
        • x : (N,) array_like
        • y : (N,) array_like Returns: (Pearson’s correlation coefficient, p-value)

      5.案例

      from scipy.stats import pearsonr
      
      x1 = [12.5, 15.3, 23.2, 26.4, 33.5, 34.4, 39.4, 45.2, 55.4, 60.9]
      x2 = [21.2, 23.9, 32.9, 34.1, 42.5, 43.2, 49.0, 52.8, 59.4, 63.5]
      
      ret = pearsonr(x1, x2)
      print(ret)
      

      运行结果:

      聚类算法之特征降维-特征选择、主成分分析

      2.4.2 斯皮尔曼相关系数(Rank IC)

      1.作用:

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

      2.公式计算案例

      公式:

      聚类算法之特征降维-特征选择、主成分分析

      n为等级个数,d为二列成对变量的等级差数

      举例:

      聚类算法之特征降维-特征选择、主成分分析

      3.特点

      • 斯皮尔曼相关系数表明 X (自变量) 和 Y (因变量)的相关方向。 如果当X增加时, Y 趋向于增加, 斯皮尔曼相关系数则为正
      • 与之前的皮尔逊相关系数大小性质一样,取值 [-1, 1]之间

      斯皮尔曼相关系数比皮尔逊相关系数应用更加广泛

      4.api

      • from scipy.stats import spearmanr

      5.案例

      from scipy.stats import spearmanr
      
      x1 = [12.5, 15.3, 23.2, 26.4, 33.5, 34.4, 39.4, 45.2, 55.4, 60.9]
      x2 = [21.2, 23.9, 32.9, 34.1, 42.5, 43.2, 49.0, 52.8, 59.4, 63.5]
      
      ret = spearmanr(x1, x2)
      print(ret)
      

      运行结果:

      聚类算法之特征降维-特征选择、主成分分析

      3 主成分分析

      3.1 什么是主成分分析(PCA)        【高维数据转换为低维数据,然后产生了新的变量】

      • 定义:高维数据转化为低维数据的过程,在此过程中可能会舍弃原有数据、创造新的变量
      • 作用:是数据维数压缩,尽可能降低原数据的维数(复杂度),损失少量信息。
      • 应用:回归分析或者聚类分析当中

      那么更好的理解这个过程呢?来看一张图

      聚类算法之特征降维-特征选择、主成分分析

      3.2 API

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

      3.3 数据计算

      先拿个简单的数据计算一下

      from sklearn.decomposition import PCA
      
      
      def pca_demo():
          """
          对数据进行PCA降维
          :return: None
          """
          data = [[2, 8, 4, 5], [6, 3, 0, 8], [5, 4, 9, 1]]
      
          #  1.实例化PCA,小数--保留多少信息
          transfer = PCA(n_components=0.9)
          #  2.调用fit_transform
          data1 = transfer.fit_transform(data)
          print("保留90%的信息,降维结果为:\n", data1)
      
          #  1.实例化PCA,整数--指定降维到的维数
          transfer2 = PCA(n_components=3)
          #  调用fit_transform
          data2 = transfer2.fit_transform(data)
          print("降维到3维的结果:\n", data2)
      
          return None
      
      
      pca_demo()
      

      运行结果:

      保留90%的信息,降维结果为:
       [[ 1.28620952e-15  3.82970843e+00]
       [ 5.74456265e+00 -1.91485422e+00]
       [-5.74456265e+00 -1.91485422e+00]]
      降维到3维的结果:
       [[ 1.28620952e-15  3.82970843e+00  5.26052119e-16]
       [ 5.74456265e+00 -1.91485422e+00  5.26052119e-16]
       [-5.74456265e+00 -1.91485422e+00  5.26052119e-16]]
      

       

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.csdn.net/weixin_44799217/article/details/115790554,作者:IT之一小佬,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:聚类算法实现流程

      下一篇:Pytorch完成基础的模型-线性回归

      相关文章

      2025-05-19 09:04:14

      《剑指Offer》搜索算法题篇——更易理解的思路~

      《剑指Offer》搜索算法题篇——更易理解的思路~

      2025-05-19 09:04:14
      算法
      2025-05-19 09:04:14

      复杂度的OJ练习

      复杂度的OJ练习

      2025-05-19 09:04:14
      代码 , 复杂度 , 思路 , 数组 , 算法
      2025-05-19 09:04:14

      背包问题——“0-1背包”,“完全背包”(这样讲,还能不会?)

      背包问题——“0-1背包”,“完全背包”(这样讲,还能不会?)

      2025-05-19 09:04:14
      动态规划 , 算法
      2025-05-16 09:15:17

      多源BFS问题(2)_飞地的数量

      多源BFS问题(2)_飞地的数量

      2025-05-16 09:15:17
      bfs , grid , 单元格 , 算法
      2025-05-16 09:15:17

      BFS解决最短路问题(4)_为高尔夫比赛砍树

      BFS解决最短路问题(4)_为高尔夫比赛砍树

      2025-05-16 09:15:17
      BFS , lt , 复杂度 , 算法
      2025-05-16 09:15:17

      递归,搜索,回溯算法(3)之穷举,暴搜,深搜,回溯,剪枝

      递归,搜索,回溯算法(3)之穷举,暴搜,深搜,回溯,剪枝

      2025-05-16 09:15:17
      回溯 , 子集 , 数组 , 算法 , 递归
      2025-05-16 09:15:17

      多源BFS问题(4)_地图分析

      多源BFS问题(4)_地图分析

      2025-05-16 09:15:17
      单元格 , 算法 , 网格 , 距离
      2025-05-16 09:15:10

      BFS解决FloodFill算法(3)_岛屿的最大面积

      BFS解决FloodFill算法(3)_岛屿的最大面积

      2025-05-16 09:15:10
      grid , 复杂度 , 算法
      2025-05-14 10:33:31

      【数据结构】第一章——绪论(2)

      【数据结构】第一章——绪论(2)

      2025-05-14 10:33:31
      函数 , 实现 , 打印 , 理解 , 算法 , 输入 , 输出
      2025-05-14 10:33:31

      【数据结构】详细介绍串的简单模式匹配——朴素模式匹配算法

      【数据结构】详细介绍串的简单模式匹配——朴素模式匹配算法

      2025-05-14 10:33:31
      下标 , 元素 , 匹配 , 子串 , 模式匹配 , 算法
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5253641

      查看更多

      最新文章

      《剑指Offer》搜索算法题篇——更易理解的思路~

      2025-05-19 09:04:14

      背包问题——“0-1背包”,“完全背包”(这样讲,还能不会?)

      2025-05-19 09:04:14

      多源BFS问题(2)_飞地的数量

      2025-05-16 09:15:17

      BFS解决最短路问题(4)_为高尔夫比赛砍树

      2025-05-16 09:15:17

      递归,搜索,回溯算法(3)之穷举,暴搜,深搜,回溯,剪枝

      2025-05-16 09:15:17

      多源BFS问题(4)_地图分析

      2025-05-16 09:15:17

      查看更多

      热门文章

      5、使用PyTorch 实现线性回归

      2023-02-27 09:14:47

      Lc70_爬楼梯

      2024-06-27 09:20:52

      python使用numpy保存字典格式的数据

      2023-04-17 10:55:24

      pandas Dataframe读取数据表是自定义列名

      2023-04-19 09:36:36

      利用函数求出一个数组最大三个数的乘积

      2023-02-13 08:10:07

      冒泡排序法解析

      2024-07-01 01:30:59

      查看更多

      热门标签

      算法 leetcode python 数据 java 数组 节点 大数据 i++ 链表 golang c++ 排序 django 数据类型
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      【Leetcode】python哈希表

      【编译原理】-- 第二章(二)(短语、简单短语、句柄、文法二义性、语法树、例题)

      5、使用PyTorch 实现线性回归

      文心一言 VS chatgpt (9)-- 算法导论2.3 7题 3.1 1题

      【算法入门01】二维数组中的查找

      猜字母问题

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号