在“训练-测试-分割-学习”中随机定义训练规模

2024-10-06 13:59:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将我拥有的数据分成40%训练和60%验证,然后我想重复这个30次,每次都是随机训练和不同的验证。我该怎么做?(不使用Kfold

这是我写的,但我每次都得到相同的结果,准确性,我不知道如何做到这与不同的培训和验证每次。我每次迭代的精确度都是一样的,我不知道为什么。在

for i in range (30):
      X_train, X_test, y_train, y_test =train_test_split(df,y, 
      train_size=0.4, shuffle=True)
      metrics.accuracy_score(linsvc.predict(X_train), R_train)

Tags: 数据intesttruedfforsizerange
1条回答
网友
1楼 · 发布于 2024-10-06 13:59:00

为了实现30次迭代中每个迭代的随机训练大小,可以使用随机生成器,然后将其用作训练集大小的一部分。在


使用这个:

from sklearn.model_selection import train_test_split
import random
import numpy as np

X = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])
y = np.array([1, 2, 1, 2, 1, 2])

for i in range(30):
    # the training size will vary between 0.2 and 0.5 randomly
    random_portion = round(random.uniform(0.2, 0.5) , 3)
    X_train, X_test, y_train, y_test =train_test_split(X,y, train_size= random_portion, shuffle=True)

您可以相应地修改代码。在


编辑1

您可以根据需要只使用numpy执行相同操作。

^{pr2}$

相关问题 更多 >