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

高维二分类数据集探索咨询:13特征千余样本的可视化难题

针对13维二分类数据集的探索性可视化方案

嘿,针对你这个1000+样本、13维特征的二分类数据集探索需求,我来分享几个亲测有效的可视化思路,不用一下子盯着所有维度发愁——咱们拆开来、降维来,慢慢挖规律:

1. 单特征-目标变量的关联分析

先逐个摸透每个特征和分类的关系,单维度的图最直观,一眼就能看出两类样本的差异:

  • 数值型特征:用箱线图或小提琴图,把每个特征按目标值0/1分组展示。比如你能快速发现“是不是类别1的样本在某特征上的中位数明显高于类别0”。
    用Python的seaborn快速实现:
    import seaborn as sns
    import matplotlib.pyplot as plt
    
    # 假设df是你的数据集,最后一列是目标列'target'
    for feature in df.columns[:-1]:
        plt.figure(figsize=(8, 4))
        sns.boxplot(x='target', y=feature, data=df)
        plt.title(f'{feature} 分布与目标类别的关联')
        plt.show()
    
  • 类别型特征(如果有的话):用堆叠柱状图展示每个类别下0/1的占比,直接看类别和分类的对应关系。

2. 双特征组合的可视化

你最初想的“每次选不同特征组合画图表”完全可行!13个特征总共78对组合,1000+样本的话画图速度很快,重点看两类样本在二维空间的聚类趋势:

  • 散点图:两个特征作为x/y轴,用颜色区分目标值,能直观看到“是不是某块区域集中了大量类别1的样本”。
  • 二维密度图:如果散点太拥挤,用密度图展示两类样本的分布重叠度,更清晰看特征组合的区分度。
    示例代码:
    # 可以手动选重点特征对,或者遍历所有组合
    feature_pairs = [('feature_0', 'feature_1'), ('feature_5', 'feature_10')]
    for feat1, feat2 in feature_pairs:
        plt.figure(figsize=(8, 6))
        sns.scatterplot(x=feat1, y=feat2, hue='target', data=df, alpha=0.7)
        plt.title(f'{feat1} vs {feat2} 按目标类别分布')
        plt.show()
    

3. 降维后全局可视化

既然13维没法直接看,用降维算法把维度降到2/3维,就能全局观察样本的聚类情况:

  • PCA(主成分分析):线性降维的首选,能保留数据最大方差的信息,适合看全局分布。
  • t-SNE/UMAP:非线性降维,对局部聚类结构捕捉更好,1000+样本计算完全无压力。
    PCA实现示例:
    from sklearn.decomposition import PCA
    import pandas as pd
    
    # 分离特征和目标
    X = df.drop('target', axis=1)
    y = df['target']
    
    # 降维到2维
    pca = PCA(n_components=2)
    X_pca = pca.fit_transform(X)
    pca_df = pd.DataFrame(X_pca, columns=['主成分1', '主成分2'])
    pca_df['target'] = y
    
    # 可视化
    plt.figure(figsize=(8, 6))
    sns.scatterplot(x='主成分1', y='主成分2', hue='target', data=pca_df, alpha=0.7)
    plt.title('PCA二维投影下的数据集分布')
    plt.show()
    

4. 特征相关性热力图

用热力图展示所有特征之间、以及特征与目标变量的相关性,快速找出:

  • 高度相关的特征(后续可以考虑合并或剔除,避免冗余)
  • 和目标变量相关性高的特征(重点关注这些特征的建模潜力)
    代码示例:
    corr_matrix = df.corr()
    
    plt.figure(figsize=(12, 10))
    sns.heatmap(corr_matrix, annot=True, cmap='coolwarm', fmt='.2f')
    plt.title('特征相关性热力图')
    plt.show()
    

内容的提问来源于stack exchange,提问作者Pierre P.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:29:52