Python 使用行的特定属性值拆分为训练集和测试集

Python 使用行的特定属性值拆分为训练集和测试集,python,machine-learning,split,training-data,Python,Machine Learning,Split,Training Data,我的输入文件的格式如下: gold,Attribute1,Attribute2 T,1,1 T,1,2 T,1,1 N,1,2 N,2,1 T,2,1 T,2,2 N,2,2 T,3,1 N,3,2 N,3,1 T,3,2 N,3,3 N,3,3 我试图用第二列和第三列预测第一列。我想将这个输入数据随机分成一个训练集和一个测试集,这样所有的行在测试集或训练集中都有一个特定的fall值组合。例如,所有带值的行都应归入训练集,所有带值的行都应归入测试集。这必须是随机的,这只是一个例子。如何进行这样

我的输入文件的格式如下:

gold,Attribute1,Attribute2
T,1,1
T,1,2
T,1,1
N,1,2
N,2,1
T,2,1
T,2,2
N,2,2
T,3,1
N,3,2
N,3,1
T,3,2
N,3,3
N,3,3

我试图用第二列和第三列预测第一列。我想将这个输入数据随机分成一个训练集和一个测试集,这样所有的行在测试集或训练集中都有一个特定的fall值组合。例如,所有带值的行都应归入训练集,所有带值的行都应归入测试集。这必须是随机的,这只是一个例子。如何进行这样的拆分?

拆分的简单方法是通过条件而不是预定义的方法

代码:-

import numpy as np
import pandas as pd 

df = pd.DataFrame(pd.read_csv('test.csv'))

print(df.head())
print(df.describe())
print(type(df['Attribute1']))

#For only getting values where both are less than 2 or equal to 2
df_Condition1 = df[df['Attribute1'] <= 2]
Train_Set = df_Condition1[df_Condition1['Attribute2'] <= 2]

#to subract the remaining elements 
Test_Set = df[ df.isin(Train_Set) == False]
Test_Set =Test_Set.dropna()

print(Train_Set)
print(Test_Set)
将numpy导入为np
作为pd进口熊猫
df=pd.DataFrame(pd.read\u csv('test.csv'))
打印(df.head())
打印(df.descripe())
打印(类型(df['Attribute1']))
#仅用于获取小于2或等于2的值

df_Condition1=df[df['Attribute1']一种简单的拆分方法是通过条件而不是预定义的方法

代码:-

import numpy as np
import pandas as pd 

df = pd.DataFrame(pd.read_csv('test.csv'))

print(df.head())
print(df.describe())
print(type(df['Attribute1']))

#For only getting values where both are less than 2 or equal to 2
df_Condition1 = df[df['Attribute1'] <= 2]
Train_Set = df_Condition1[df_Condition1['Attribute2'] <= 2]

#to subract the remaining elements 
Test_Set = df[ df.isin(Train_Set) == False]
Test_Set =Test_Set.dropna()

print(Train_Set)
print(Test_Set)
将numpy导入为np
作为pd进口熊猫
df=pd.DataFrame(pd.read\u csv('test.csv'))
打印(df.head())
打印(df.descripe())
打印(类型(df['Attribute1']))
#仅用于获取小于2或等于2的值

df_Condition1=df[df['Attribute1']这是你的整个数据集,还是仅仅是切片?我认为你想要的这种分割是不正确的,我想你应该得到更多的数据,然后洗牌,然后分割-洗牌应该做你需要的。你的场景看起来像是你要建立基于规则的系统。我已经对你的问题进行了编辑,以删除标签
随机林
。我想我犯了一个疯狂的错误,b但是你打算使用随机林吗?这是你的整个数据集,还是仅仅是切片?我认为你想要的这种分割是不正确的,我想你应该得到更多的数据,然后洗牌,然后分割洗牌应该做你需要的。你的场景看起来像是你要建立基于规则的系统。我已经对你的问题进行了编辑,以删除标签
random forest
。我想我搞错了,但你打算使用随机森林吗?