Python机器学习标签和功能

kx7yvsdv  于 2023-05-16  发布在  Python
关注(0)|答案(3)|浏览(114)

假设一个数据集有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, )
ubbxdtey

ubbxdtey1#

您可以通过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,)
4nkexdtk

4nkexdtk2#

第二个
假设75%/25%的列车/测试分配
这意味着75%的数据集用于训练,其余用于测试。你有10000个观察结果,所以7500个用于训练,2500个用于测试。
一般来说,当我们说A/B分裂是X%/Y%。这意味着A得到X%B得到Y%。一直都是,而且X+Y应该是100.

6ioyuze2

6ioyuze23#

您应该更喜欢使用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/test拆分方法“train_size”和“test_size”的内部。您可以在此设置其他值。
random_state参数也用于打乱数据集部分

相关问题