Python机器学习标签和功能

时间:2017-09-02 15:43:13

标签: python python-3.x machine-learning scikit-learn

给定一个包含10,000个观测值和50个特征加上一个标签的数据集,X_train,y_train,X_test和y_test的维数是多少,假设列车/测试分割为75%/ 25%?应该是

X_train:(2500, 50)
y_train: (2500, )
X_test: (7500, 50)
y_test: (7500, )

X_train: (7500, 50)
y_train: (7500, )
X_test: (2500, 50)
y_test: (2500, )

3 个答案:

答案 0 :(得分:1)

您可以使用sklearn中的train_test_split来查看自己:

import numpy as np
from sklearn.model_selection import train_test_split

n = 10000
p = 50
X = np.random.random((n,p))
y = np.random.randint(0,2,n)

test = 0.25
d = {}
d["X_train"], d["X_test"], d["y_train"], d["y_test"] = train_test_split(X,y,test_size=test)

for split in d:
    print(split, d[split].shape)

X_train (7500, 50)
X_test (2500, 50)
y_train (7500,)
y_test (2500,)

答案 1 :(得分:0)

第二个。

  

假设列车/测试分成75%/ 25%

这意味着75%的数据集用于培训,其余用于测试。 你有10000个观测值,因此7500用于训练,2500用于测试。

一般情况下,当我们说A / B拆分为X% / Y%时。这意味着A得到X%B得到Y%。总是。此外,X+Y应为100。

答案 2 :(得分:0)

对您来说可能为时已晚。但是,我想回答这个问题;

您应该首选使用75%数据作为训练集,其余25%是测试集。这通常会给您带来良好的效果。 (这也取决于您的数据集数量。)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, train_size=0.75, random_state=101)
X_train: (7500, 50)
y_train: (7500, )
X_test: (2500, 50)
y_test: (2500, )

考虑训练/测试拆分方法“ train_size”和“ test_size”的内部。您可以为此设置其他值。

random_state参数也可用于改组数据集部分