【发布时间】:2020-06-23 19:31:49
【问题描述】:
我已将我的 Pandas DataFrame 拆分为 train_X 和 train_y 部分,其中 train_X 包含所有 N 列,train_y 只有第 N 列,描述了我想要预测的变量。目前我正在做:
train_X.drop("N-th column name", axis=1, inplace=True)
model = SomeSklearnModel()
model.fit(train_X, train_y)
我是否必须“手动”完成(即在 train_X 上使用 drop()),或者我可以只做第 3 行,Scikit-learn 将“知道”哪一列 train_y 是而不是使用它用于模型训练(仅用于检查结果)?
【问题讨论】:
-
我建议使用 sklearns train_test_split,但是要回答您的问题,是的,您必须删除答案栏。
-
@BenPap 我已经用它拆分了我的数据,是的。但 AFAIK 它不会影响列,这是我在这里主要关心的问题。
-
通常在
train_test_split之前,您可以执行y = X.pop('nth column name')-pop删除并返回分配的列值 -
@ChrisA 但这与我的方法有什么不同吗?我的意思是,我仍然必须手动完成。当我将它用于多个模型时,这是一件有用的事情,但它很有用。
-
是的,无论您采用哪种方式,您都需要明确声明
X和y
标签: python pandas scikit-learn