【问题标题】:Found input variables with inconsistent numbers of samples: [799996, 199999]发现样本数量不一致的输入变量:[799996, 199999]
【发布时间】:2020-10-21 10:40:54
【问题描述】:

我正在拆分单个 df,那么为什么它在 X_train、X_test 中给出 Inconsistent no of samples(如果这是错误的意思)?

X_train, X_test = train_test_split(df[categorical_cols+ numeric_cols], test_size=0.2, random_state=4)
regression = LinearRegression().fit(X_train, X_test)
regression.score(X)

【问题讨论】:

    标签: python-3.x linear-regression train-test-split


    【解决方案1】:

    在您的示例中,该方法将执行大致相当于以下内容的操作:

    1. 为每条记录生成一个介于 0 和 1 之间的随机数

    2. 将随机数低于 .2 的记录放入测试集中

    3. 将其余部分放入训练集中

    实际放入训练/测试集中的数量存在一定的随机性,因为 0.2 以下的随机数并不总是正好是 20%。

    【讨论】:

    • 谢谢 - 我现在了解该参数的工作原理。这留下了一个问题,你如何获得平等的分裂?尤其是当您的数据中的记录数量不均时?
    • 例如指定 test_size = 200000。如果你给它一个整数,它会在测试集中给你那个数字。
    • 这似乎不起作用。它使用剩余的数据作为训练我通过使用 train_size=400000,test_size=400000 解决了这个问题
    • 我现在明白了。我没有意识到您想让训练数据和测试数据的记录数相同。这通常不需要。根据我拥有的数据量,我使用介于 70/30 和 90/10 之间的任何位置。我更喜欢尽可能多的训练数据,所以我进行了拆分,以便我有足够的测试数据是可信的。最美好的祝愿!
    • 如果我没有它们,我就会收到错误 - 还是由其他原因引起的?
    猜你喜欢
    • 2021-06-20
    • 2018-06-25
    • 1970-01-01
    • 2021-05-06
    • 2020-11-19
    • 2019-12-11
    • 2020-03-14
    • 2020-10-26
    • 2023-03-22
    相关资源
    最近更新 更多