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

在R中拆分Wisconsin数据集为训练/测试集并关联对应class列

没问题,我来帮你搞定这个关联class列并生成目标向量的事儿!

关联class列并生成分类目标向量的解决方案

核心思路是利用数据框的索引/行位置来匹配拆分后的特征集和原数据中的class列,下面分两种常见场景给你具体实现方式:

场景1:用scikit-learn的train_test_split拆分特征集

如果你已经用train_test_split拆分好了移除ID和class后的特征集(记为X),可以通过索引快速匹配对应的class:

import pandas as pd
from sklearn.model_selection import train_test_split

# 假设你的原数据集叫df
# 先把原数据中的class列单独存好(其实这一步放在拆分前更合理!)
original_y = df['class']

# 你已经完成的步骤:移除ID和class得到特征集X,拆分训练/测试集
X = df.drop(['ID', 'class'], axis=1)
X_train, X_test = train_test_split(X, test_size=0.2, random_state=42)

# 通过索引匹配提取对应class
y_train = original_y.loc[X_train.index]
y_test = original_y.loc[X_test.index]

# 验证一下:训练集特征和目标的样本数要一致
print(f"训练集特征数:{X_train.shape[0]},训练集目标数:{y_train.shape[0]}")

👉 小建议:以后做分类任务时,最好先把特征X和目标y分开,再一起拆分,一步到位更省心:

X = df.drop(['ID', 'class'], axis=1)
y = df['class']
# 直接同时拆分特征和目标,自动对应
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

场景2:手动按比例拆分特征集

如果是手动按行位置切片拆分的(比如前80%做训练集),直接按相同的行位置提取class即可:

# 假设原数据集叫df,X是移除ID和class后的特征集
train_size = int(len(X) * 0.8)
X_train = X[:train_size]
X_test = X[train_size:]

# 按相同行位置提取class
y_train = df['class'][:train_size]
y_test = df['class'][train_size:]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:51:41