有没有办法根据另一列中的值删除训练集中的某些行
Is there a way to remove some rows in the training set based on values in another column
我有一个数据框,我将其分为训练和测试 (80:20)。它看起来像这样:
V1 V2 V3 V4 V5 Target
5 2 34 12 9 1
1 8 24 14 12 0
12 27 4 12 9 0
然后我建立了一个简单的回归模型并做出了预测。
代码对我有用,但我的问题是,在我将数据拆分为训练和测试之后。我需要根据某些条件或根据另一列中的值删除(或排除)训练集中的某些数据点或某些行(删除 X_train 中的特定行及其对应的 y_train)。
例如,如果 V1 > 10,我需要删除训练集中的任何行。
结果 X_train 中的这一行及其 y_train 应删除:
V1 V2 V3 V4 V5 Target
12 27 4 12 9 0
# Split the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
print("X_train:", X_train.shape)
print("X_test:", X_test.shape)
print("y_train:", y_train.shape)
print("y_test:", y_test.shape)
# Train and fit the model
regressor = LinearRegression()
regressor.fit(X_train, y_train)
# Make prediction
y_pred = regressor.predict(X_test)
我认为这样做的方法是使用所需条件提取我们需要删除的行的索引,然后从 x_train 和 y_train
中删除它们
建议的问题没有回答我的问题,因为这是不同的情况。它没有考虑训练和测试集。我需要删除 X_train 中的一些值行及其对应的 y_train.
如果 X_train
和 y_train
是 numpy 数组,我怎么想,你可以简单地做:
y_train = y_train[X_train[:,0]<=10]
X_train = X_train[X_train[:,0]<=10]
编辑
if if X_train
是一个 pandas DataFrame 并且 y_train
是一个 pandas 系列:
y_train = y_train[X_train["V1"]<=10]
X_train = X_train.loc[X_train["V1"]<=10]
我有一个数据框,我将其分为训练和测试 (80:20)。它看起来像这样:
V1 V2 V3 V4 V5 Target
5 2 34 12 9 1
1 8 24 14 12 0
12 27 4 12 9 0
然后我建立了一个简单的回归模型并做出了预测。
代码对我有用,但我的问题是,在我将数据拆分为训练和测试之后。我需要根据某些条件或根据另一列中的值删除(或排除)训练集中的某些数据点或某些行(删除 X_train 中的特定行及其对应的 y_train)。
例如,如果 V1 > 10,我需要删除训练集中的任何行。
结果 X_train 中的这一行及其 y_train 应删除:
V1 V2 V3 V4 V5 Target
12 27 4 12 9 0
# Split the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
print("X_train:", X_train.shape)
print("X_test:", X_test.shape)
print("y_train:", y_train.shape)
print("y_test:", y_test.shape)
# Train and fit the model
regressor = LinearRegression()
regressor.fit(X_train, y_train)
# Make prediction
y_pred = regressor.predict(X_test)
我认为这样做的方法是使用所需条件提取我们需要删除的行的索引,然后从 x_train 和 y_train
中删除它们建议的问题没有回答我的问题,因为这是不同的情况。它没有考虑训练和测试集。我需要删除 X_train 中的一些值行及其对应的 y_train.
如果 X_train
和 y_train
是 numpy 数组,我怎么想,你可以简单地做:
y_train = y_train[X_train[:,0]<=10]
X_train = X_train[X_train[:,0]<=10]
编辑
if if X_train
是一个 pandas DataFrame 并且 y_train
是一个 pandas 系列:
y_train = y_train[X_train["V1"]<=10]
X_train = X_train.loc[X_train["V1"]<=10]