Scikit learn 如何将数据分成三部分,其中一部分不使用?

Scikit learn 如何将数据分成三部分,其中一部分不使用?,scikit-learn,Scikit Learn,我有一个csv,我想将80%分为培训,10%分为开发测试,10%分为测试集。dev测试将不再使用 我已将其设置为: 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_da

我有一个csv,我想将80%分为培训,10%分为开发测试,10%分为测试集。dev测试将不再使用

我已将其设置为:

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)
但是我所看到的所有分割都只分为两组,我看不出在哪里指定分割多少分区,例如我想要80%的训练。也许我是瞎子,但有人能帮我吗?我不知道如何使用熊猫


同样,一旦我拆分了它,我如何分别访问这些集合?例如,我可以把每一条记录作为一个整体来读取,并计算条目的数量,但一旦我将其拆分,我想计算每套中有多少条记录。对不起,如果这值得它自己的帖子,但我不想垃圾邮件

不,在scikit中,可以学习直接分成三组。 典型的方法是两次拆分。80/20,然后50/50拆分20%。您想检查-函数

本质上,包含数据
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\u-train,y\u-train)
(X\u-dev,y\u-dev)
(X\u-test,y\u-test)
您可以使用两次:

  • 将数据拆分为0.8:0.2的比率
  • 将较小的集合拆分为0.5:0.5的比率