我有一个csv,我想将80%分配给培训,将10%分配给dev-test,将10%分配给测试集。开发测试将不再使用。
我已经将其设置为:
import sklearn
import csv
with open('Letter.csv') as f:
reader = csv.reader(f)
annotated_data = [r for r in reader]
并用于拆分:
import random
random.seed(1234)
random.shuffle(annotated_data)
但是我见过的所有分割仅分成2组,并且我看不到在哪里指定分割多少分割区,例如,我想要80%的训练。也许我是盲人,但是有人可以帮助我吗?我不知道怎么用熊猫。
我将其拆分后,又如何分别访问这些集?例如,我可以读取每个记录作为一个整体并计算条目的数量,但是一旦我将其拆分,我想计算每个记录集中有多少条记录。抱歉,如果这当之无愧,但我不想发送垃圾邮件。
答案 0 :(得分:0)
否,在scikit-learn中有可能直接分成三组。
典型的方法是在80/20中两次拆分两次,然后将20%的50/50拆分。您要检查train_test_split
功能。
本质上,包含数据X
和y
的代码如下所示:
import numpy as np
from sklearn.model_selection import train_test_split
X, y = np.arange(100).reshape((5, 2)), range(5)
X_train, X_tmp, y_train, y_tmp = train_test_split(X, y, test_size=0.2)
X_dev, X_test, y_dev, y_test = train_test_split(X_tmp, y_tmp, test_size=0.5)
现在,您想使用(X_train, y_train)
,(X_dev, y_dev)
和(X_test, y_test)
答案 1 :(得分:0)
您可以两次使用train_test_split: