如何为 test_train_split 选择数据框中的数据列和目标列?

问题描述 投票:0回答:2

我正在尝试使用从 csv 读取到 pandas 数据帧的数据来设置

test_train_split
。我正在读的书说我应该分为
x_train
作为数据和
y_train
作为目标,但是如何定义哪一列是目标,哪一列是数据?到目前为止我有以下

import pandas as pd
from sklearn.model_selection import train_test_split
Data = pd.read_csv("Data.csv")

我已经阅读了按以下方式进行分割,但是以下使用了一堆已经定义了

data
target
的内容:

X_train, X_test, y_train, y_test = train_test_split(businessleisure_data['data'],
                                                    iris_dataset['target'], random_state=0)
python machine-learning scikit-learn sklearn-pandas
2个回答
10
投票

你可以这样做:

Data = pd.read_csv("Data.csv")    
X = Data.drop(['name of the target column'],axis=1).values
y = Data['name of the target column'].values
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=0)

在大多数情况下,目标变量是数据集的最后一列,因此您也可以尝试以下操作:

Data = pd.read_csv("Data.csv")
X = Data.iloc[:,:-1]
y = Data.iloc[:,-1]
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=0)

0
投票

我搜索了我的问题,这个问题出现在搜索结果中。 然后我看了rrrrttt的评论 并发现它很有用。但需要一些改变。

X = data.drop(['Outcome'],axis=1).values
y = data['Outcome'].values
X_train ,X_test, y_train, y_test = train_test_split(X,y,test_size=0.2) 

上面提到的是对我有用的代码,它在 80% 的数据上训练模型并在 20% 的数据上测试它。

© www.soinside.com 2019 - 2024. All rights reserved.