琪了个大怪 2024-04-20 21:29 采纳率: 0%
浏览 3

请教如何输出随机划分的测试集和训练集

目前使用以下指令进行划分测试集以及训练集

img


,但是输出检查后发现测试集和训练集的比例是对的,但是被试和他所以对应的特征值是混乱的,并且特征名和特征值也对应不上,现在的诉求是不知道是这样划分测试集和训练集的方法是错的,还是输出过程中有弄错了,一直没有办法解决这个问题

  • 写回答

6条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-20 21:29
    关注

    引自免费微信小程序:皆我百晓生

    根据您提供的信息,看起来在将特征与对应的 subj 列合并时出现了混淆。这可能是因为在第1行和第2行代码中对 x_trainx_test 的处理方式不正确。为了确保每个测试样本都保留其原始的 subj 列,我们需要先将 subj 列从原始数据集中提取出来,然后分别将其添加到训练集和测试集的数据帧中。以下是修改后的代码:

    import pandas as pd
    from sklearn.model_selection import train_test_split
    
    # 假设你的原始数据集为 df,其中包含 subj 列和其它特征列
    df = pd.read_csv('your_dataset.csv')  # 替换为实际数据文件路径
    
    # 提取 subj 列
    subjs = df['subj']
    
    # 划分训练集和测试集
    x_train, x_test, y_train, y_test = train_test_split(df.drop(['subj', 'group'], axis=1), df['group'], test_size=0.2, random_state=42)
    
    # 将 subj 列添加回训练集和测试集
    x_train_with_subj = pd.concat([subjs.iloc[x_train.index], pd.DataFrame(x_train, columns=x_train.columns)], axis=1)
    x_test_with_subj = pd.concat([subjs.iloc[x_test.index], pd.DataFrame(x_test, columns=x_test.columns)], axis=1)
    
    # 创建包含 subj、特征和标签的训练集、测试集 DataFrame
    train_data = pd.concat([x_train_with_subj, pd.Series(y_train, name='group')], axis=1)
    test_data = pd.concat([x_test_with_subj, pd.Series(y_test, name='group')], axis=1)
    
    # 保存训练集和测试集数据到 Excel 文件
    output_folder = r"D:\graduate\1\artical\ADNI_radiomic\ext_feature\ext_results\"
    train_output_path = os.path.join(output_folder, 'train_data.xlsx')
    test_output_path = os.path.join(output_folder, 'test_data.xlsx')
    
    train_data.to_excel(train_output_path, index=False)
    test_data.to_excel(test_output_path, index=False)
    

    这段代码首先从原始数据集中提取出 subj 列,然后按照你原来的逻辑划分子集。接下来,我们使用 iloc 根据索引将 subj 列添加回训练集和测试集。这样可以确保每个样本的 subj 列与其相应的特征保持一致。

    请注意,你需要替换 'your_dataset.csv' 为你的实际数据文件路径。另外,如果你的数据集已经包含了预处理(例如标准化)步骤,那么确保在提取 x_trainx_test 之前完成这些预处理操作。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月20日

悬赏问题

  • ¥15 List<Class>有参构造
  • ¥20 搭建三相栅极电路后高侧浮动地VS存在电容特性
  • ¥20 云卓h12pro 数传问题
  • ¥20 请问有人知道怎么用工艺库里面的sdb文件通过virtuoso导出来library里面每个cell的symbol吗?
  • ¥20 海思 nnie 编译 报错
  • ¥50 决策面并仿真,要求有仿真结果图
  • ¥15 springboot接入微信支付SDK
  • ¥50 大区域的遥感影像匹配 怎么做啊
  • ¥15 求解答:pytorch跑yolov8神经网络受挫
  • ¥20 Js代码报错问题不知道怎么解决