【影像组学】影像组学特征筛选和降维(T检验+LASSO+PCA)

本文介绍了影像组学中特征筛选和降维的方法,包括T检验(单样本、配对样本、两独立样本)、LASSO特征筛选以及主成分分析(PCA)。通过T检验进行初步筛选,LASSO进一步收缩并选择重要特征,PCA则用于降低特征维度。文中还详细阐述了Python中实现这些方法的步骤和函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


1. T 检验

三种 T 检验

  • 单样本 T 检验:检验样本均值与已知总体均值的差异性,要求样本服从正态分布。
  • 配对样本 T 检验:检验配对样本均值是否有显著性差异,要求差值服从正态分布无方差齐性要求
    例:同一组病人术前、术后某指标分布的差异性检验
  • 两独立样本 T 检验:检验非配对样本均值是否有显著性差异,要求两样本均服从正态分布,要求方差齐
    例:某指标在不同性别间的分布差异性检验

T 检验在 Python 中实现

  • 正态性检查K-S 检验 (p > 0.05,则服从正态分布), 样本量较大时可不做
    • Python 函数:scipy.stats.kstest(sample, cdf = 'norm')
    • 函数输出:统计量,p 值
  • 方差齐性检验levene 检验 (p > 0.05,则具有方差齐性)
    • Python 函数:scipy.stats.levene(sample1, sample2)
  • 两独立样本 T 检验 (p < 0.05 具有显著性差异)
    • Python 函数:scipy.stats.ttest_ind(sample1, sample2, equal_var)
    方差齐 equal_var = Ture,执行 T 检验;否则,equal_var = False,执行 Welch’s 检验
  • 不服从正态分布的数据,应使用配对 Wilcoxon 秩和检验

2. LASSO 特征筛选

  • LASSO = Least Absolute Shrinkage and Selection Operator,套索算法
  • 一种嵌入式特征选择方法
  • LASSO 核心原理:把不重要的特征系数变为 0
    在这里插入图片描述

LASSO 特征筛选时到底干了啥?

在这里插入图片描述


3. T 检验结合 LASSO 实现影像组学特征筛选

  • 导入包

    import pandas as pd
    import numpy as np
    from sklearn.preprocessing import StandardScaler #用于数据归一化处理
    from scipy.stats import ttest_ind, levene  # T 检验 方差齐性检验
    from sklearn.linear_model import LassoCV 
    from sklearn.utils import shuffle  # 数据混序
    
  • 导入数据

    xlsx_a = 'data/featureTable/aa.xlsx'
    xlsx_b = 'data/featureTable/bb.xlsx'
    data_a = pd.read_excel(xlsx_a)
    data_b = pd.read_excel(xlsx_b)
    print(data_a.shape,data_b.shape)
    # (212, 30) (357, 30)
    
  • t 检验特征筛选

    print(levene(data_a['A'], data_b['A']))  # a,b 样本的 A 特征方差齐性检验
    # LeveneResult(statistic=90.47705934341127, pvalue=5.279775501703329e-20) 
    # p < 0.05 不符合方差齐性
    
    print(ttest_ind(data_a['A'], data_b['A'], equal_var=False))
    # Ttest_indResult(statistic=22.208797758464524, pvalue=1.6844591259582747e-64)
    # p < 0.05,A 特征在 a,b 样本之间存在显著性差异。
    
    index = []
    for colName in data_a.columns[:]:  # 遍历所有特征
        if levene(data_a[colName], data_b[colName])[1] > 0.05: # 有方差齐性
            if ttest_ind(data_a[colName]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值