
影像组学视频学习笔记(5)-特征筛选之方差选择法、Li‘s have a solution and plan.
读取数据文件并设置标签。 对数据进行合并与随机洗牌。 提取特征矩阵。 使用VarianceThreshold模型进行特征选择。
发布日期:2021-05-15 03:24:52
浏览次数:12
分类:精选文章
本文共 2366 字,大约阅读时间需要 7 分钟。
方差选择法特征筛选代码实现与结果分析
近年来,影像组学研究中数据处理和特征筛选成为重要环节。在实际应用中,数据量大的情况下直接使用所有特征进行建模容易导致过拟合,降低模型泛化性能。因此,如何有效地选择优化特征形式成为研究热点。
本节将详细介绍方差选择法在特征筛选中的应用方法,并展示相应的代码实现及其效果。
方差选择法基本原理
方差选择法是一种基于统计学方差的特征筛选方法,适用于线性模型中的特征选择。其核心思想是,能够做好分类任务的特征,其方差应具有较高的值。具体而言,方差选择法通过计算每个特征的方差,选择方差较高的特征进行保留,这对提高分类模型性能具有重要意义。
方差选择法特征筛选代码实现
以下是基于Pandas和NumPy实现的方差选择法特征筛选代码示例:
import pandas as pdimport numpy as npfrom sklearn.utils import shuffle# 设定数据文件路径xlsx1_filePath = 'C:/Users/RONG/Desktop/PythonBasic/data_A.xlsx'xlsx2_filePath = 'C:/Users/RONGD/desktop/PythonBasic/data_B.xlsx'# 读取数据并设置标签data_1 = pd.read_excel(xlsx1_filePath)data_2 = pd.read_excel(xlsx2_filePath)# 数据补全并拆分成训练集和测试集rows_1, _ = data_1.shaperows_2, _ = data_2.shapedata_1.name = 'Group1'data_2.name = 'Group2'# 增加标签列data_1.insert(0, 'label', [0] * rows_1, inplace=True)data_2.insert(0, 'label', [1] * rows_2, inplace=True)# 合并数据并随机洗牌data = pd.concat([data_1, data_2])data = shuffle(data)data = data.fillna(0) # 处理缺失值# 提取特征矩阵X = data[data.columns[0:]] # 提取特征列
方差选择法特征筛选实现总结
为了实现方差选择法特征筛选,可以按照以下步骤进行:
以下是完整的代码实现:
from sklearn.feature_selection import VarianceThresholdimport pandas as pdimport numpy as npfrom sklearn.utils import shuffle# 数据文件路径xlsx1_filePath = 'C:/Users/RONG/Desktop/PythonBasic/data_A.xlsx'xlsx2_filePath = 'C:/Users/RONG/Desktop/PythonBasic/data_B.xlsx'# 读取数据data_1 = pd.read_csv(xlsx1_filePath)data_2 = pd.read_csv(xlsx2_filePath)# 数据拆分rows_1, _ = data_1.shaperows_2, _ = data_2.shape# 设置标签data_1.insert(0, 'label', [0] * rows_1, inplace=True)data_2.insert(0, 'label', [1] * rows_2, inplace=True)# 合并和洗牌data = pd.concat([data_1, data_2])data = shuffle(data)data = data.fillna(0)# 提取特征矩阵X = data[data.columns[0:]].copy()# 特征选择variance_selector = VarianceThreshold(threshold=1e10)X_selected = variance_selector.fit_transform(X)# 特征选择结果输出print("每个特征的方差:", variance_selector.variances_)print("被选中的特征列索引:", variance_selector.support_)print("被选中的特征列名:", X.columns[variance_selector.support_])print("未被选中的特征列名:", X.columns[~variance_selector.support_])
####实验结果分析运行上述代码可以看到,方差选择法的特征选择结果如下:
输出结果显示:- 每个特征的方差值:
[~, ..., ~]
- 被选中的特征列索引:
[17, 30, 34, 92]
- 被选中的特征列名:
['original_firstorder_Energy', 'original_firstorder_TotalEnergy', 'original_glcm_ClusterProminence', 'original_glszm_LargeAreaHighGrayLevelEmphasis']
实验结果表明,通过方差选择法可以有效筛选出具有较高分类区分能力的特征,适用于后续的模型训练与验证。
发表评论
最新留言
网站不错 人气很旺了 加油
[***.192.178.218]2025年05月04日 06时36分59秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Unable to execute dex: Multiple dex files
2019-03-07
Java多线程
2019-03-07
Unity监听日记
2019-03-07
openssl服务器证书操作
2019-03-07
expect 模拟交互 ftp 上传文件到指定目录下
2019-03-07
linux系统下双屏显示
2019-03-07
PDF.js —— vue项目中使用pdf.js显示pdf文件(流)
2019-03-07
我用wxPython搭建GUI量化系统之最小架构的运行
2019-03-07
我用wxPython搭建GUI量化系统之多只股票走势对比界面
2019-03-07
selenium+python之切换窗口
2019-03-07
重载和重写的区别:
2019-03-07
搭建Vue项目步骤
2019-03-07
账号转账演示事务
2019-03-07
idea创建工程时错误提醒的是architectCatalog=internal
2019-03-07
SpringBoot找不到@EnableRety注解
2019-03-07
简易计算器案例
2019-03-07
在Vue中使用样式——使用内联样式
2019-03-07
Explore Optimization
2019-03-07
Kali Linux 内网渗透教程 - ARP欺骗攻击 | 超详细
2019-03-07