You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

心电宫缩图数据集离群值处理:NSP类别2、3丢失问题求解

解决心电宫缩图数据集离群值移除后分类类别丢失的问题

问题根源

你的代码错误地将分类变量NSP与数值变量一起参与了IQR离群值计算。IQR是针对连续数值变量的离群值检测方法,对离散的分类类别(比如NSP的1、2、3)来说,非占比最高的类别会被误判为离群值,最终导致2、3类被过滤删除。

解决步骤

  1. 从数据集中单独提取需要处理的数值变量,只对这些变量执行IQR离群值过滤
  2. 保留原数据中的分类变量NSP,不参与离群值计算
  3. 将处理后的数值变量与原分类变量重新合并,确保类别完整

修改后的代码

# 分离数值变量和分类变量
numeric_cols = ['ASTV','ALTV','Mean','AC.1','DP.1','MSTV','UC.1','Mode','Median']
categorical_col = ['NSP']

# 只对数值变量计算IQR
data_numeric = dataimportances_new[numeric_cols].copy()
Q1_new = data_numeric.quantile(0.25)
Q3_new = data_numeric.quantile(0.75)
IQR_new = Q3_new - Q1_new

# 过滤数值变量的离群值,保留对应行的索引
filtered_numeric = data_numeric[
    (data_numeric >= (Q1_new - 1.5 * IQR_new)) & 
    (data_numeric <= (Q3_new + 1.5 * IQR_new))
].dropna()

# 合并处理后的数值变量和原分类变量(通过索引匹配)
dataf_new_without_outliers_new = filtered_numeric.join(
    dataimportances_new[categorical_col], how='left'
)

# 检查NSP的类别是否完整
print(dataf_new_without_outliers_new['NSP'].value_counts())

代码说明

  • 先明确区分数值变量和分类变量,避免分类变量被错误处理
  • 过滤数值变量的离群值后,通过索引关联原分类变量,确保所有类别都被保留
  • 最后用value_counts()验证NSP的1、2、3类是否都存在

内容的提问来源于stack exchange,提问作者Dbe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 09:02:55