当前位置: 首页 > 知识库问答 >
问题:

如何按科目拆分培训数据和测试数据(一个变量)

严亮
2023-03-14

我正在努力适应逻辑回归。我想按帐户(一个在拟合中不起作用的变量)划分培训和测试数据。我希望他们被帐户分割,每个帐户可以有很多变量。例如,80%的客户将接受培训,20%的客户将接受测试。

我已经尝试了下面的代码,但是这段代码只给了我80%的训练和20%的随机测试。然后在训练数据中,它会给我一些解释,但在测试数据中,它也会给我一个不同变量的精确解释。那不是我想要的。

X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.20,random_state=0)

请告知。非常感谢。

共有1个答案

陈成济
2023-03-14

这个怎么样

import numpy as np

def group_train_test_split(X, y, test_size, random_state, stratify):
    X = X.copy()
    X['_target'] = y

    X = X.set_index(stratify)
    index = X.index

    index_values = index.unique().values
    np.random.seed(random_state)
    np.random.shuffle(index_values)

    cut = np.round(index_values.shape[0] * test_size).astype('<i4')

    X_test, X_train = X.loc[index_values[:cut]], X.loc[index_values[cut:]]

    return X_test['_target'], X_train['_target'], X_test.drop('_target', axis=1), X_train.drop('_target', axis=1)

y_test, y_train, X_test, X_train = group_train_test_split(X=X, y=y, test_size=0.2, random_state=41, stratify='account')

这样,它将把20%的帐户放入测试数据,而其余的将在训练数据中。

 类似资料:
  • 培训数据和测试数据是机器学习中的两个重要概念。 本章将详细讨论它们。 培训数据 训练集中的观察结果形成了算法用于学习的经验。 在监督学习问题中,每个观察包括观察到的输出变量和一个或多个观察到的输入变量。 测试数据 测试集是一组观察结果,用于使用某些性能指标评估模型的性能。 重要的是,测试集中不包括来自训练集的观察结果。 如果测试集确实包含来自训练集的示例,则难以评估算法是否已经学会从训练集中推广或

  • 我刚刚开始使用R,我不确定如何将我的数据集与以下示例代码结合起来: 我有一个数据集,我需要将其放入训练(75%)和测试(25%)集中。我不确定应该将哪些信息放入x和大小?x是数据集文件吗?我有多少样本?

  • 为了评估我们的监督模型的泛化能力,我们可以将数据分成训练和测试集: from sklearn.datasets import load_iris iris = load_iris() X, y = iris.data, iris.target 考虑如何正常执行机器学习,训练/测试分割的想法是有道理的。真实世界系统根据他们拥有的数据进行训练,当其他数据进入时(来自客户,传感器或其他来源),经过训

  • 我想创建一个程序来使用SVM对文本数据进行分类。但在此之前,我必须使用StratifiedKFold()将数据拆分为列车数据和测试数据。 但最终却出现了这样的错误: 如何解决此代码中的此错误? 这是在Python3.7上运行的代码 我希望结果是分类性能和分类的混淆矩阵。

  • 问题内容: 我有一个很大的数据集,想将其分为训练(50%)和测试集(50%)。 假设我有100个示例存储了输入文件,每一行包含一个示例。我需要选择50条线作为训练集和50条线测试集。 我的想法是首先生成一个长度为100(值范围从1到100)的随机列表,然后将前50个元素用作50个训练示例的行号。与测试集相同。 这可以在Matlab中轻松实现 但是如何在Python中完成此功能?我是Python的新

  • 问题内容: 因此,我对此有疑问,一直在寻找答案。所以问题是我何时使用 这之后,我将训练和测试模型(,作为特征,如标签),并得到一些准确度得分。现在我的疑问是,当我必须预测新数据集的标签时会发生什么。说, 因为当我规范化列时,和的值将根据新数据而不是将在其上训练模型的数据来更改。因此,现在将是下面的数据准备步骤之后的数据。 的价值和将关于改变和价值。的数据准备是关于的。 有关不同数字的数据准备如何有

  • 我有列。 如何根据值将其拆分为2? 第一个将包含

  • 有一个数据帧,它总共由14列组成,最后一列是整数值为0或1的目标标签。 我已经定义了- X=df。iloc[:,1:13]——由特征值组成 两者的长度相同,X是由13列组成的数据帧,shape(159880,13),y是具有shape(159880,)的数组类型 但是,当我在X,y上执行列车测试分割时,该功能无法正常工作。 下面是简单的代码- X_序列,y_序列,X_测试,y_测试=序列测试分割(