问题标签 [train-test-split]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
5606 浏览

python - 如何使用 sklearn 将数据拆分为 3 个或更多部分

我想将数据拆分为分层的训练、测试和验证数据集,但 sklearn 仅提供 cross_validation.train_test_split 只能分为 2 部分。如果我想这样做,我应该怎么做

0 投票
1 回答
1703 浏览

python - 将浮点值转换为 Pandas 数据框中的整数,同时忽略空值

我有两个单独的 csv 文件,我读入了 pandas 数据框。我已经做了一些清理工作,并按日期列加入了表格。我有另一列名为“ExerciseTime”,并将导入的一天中执行时间的时间格式转换为浮点格式,即 22:30:00(晚上 10:30)到 22.5(浮点值)。

我想通过比较一天中的锻炼时间与睡眠质量(这是我的 Garmin 连接数据和睡眠周期数据)来运行训练/测试拆分分析。目前几乎没有准确性/相关性,但我怀疑如果我按小时将“ExerciseTime”列变成虚拟变量,它可能会有所帮助。我想将列中的所有值转换为整数值(向上和向下舍入)并希望忽略任何有空值的实例(我没有锻炼的日子)。我目前在使用以下公式时遇到错误:

忽略空值并将浮点值转换为整数的最佳方法是什么?

此外,如果有人知道用于此类数据的最佳类型模型预测器,我将不胜感激任何想法,因为我对此仍然很陌生。我还有其他数据点,例如“总运动持续时间”、“如果我睡前饮酒”、“那天的运动类型”、“那天的月相”,我也想合并这些数据点,看看是否有任何统计数据严重影响我的睡眠质量。

0 投票
2 回答
390 浏览

python - 为什么我的模型可以处理来自 train_test_split 的测试数据,而不能处理新数据?

我是机器学习的新手。

我有一个连续的数据集。我正在尝试使用多种功能对目标标签进行建模。我利用 train_test_split 函数将训练数据和测试数据分开。我正在使用以下代码训练和测试模型:

当我使用 X_test 和 y_test 验证数据时,我可以获得很好的结果:

https://drive.google.com/open?id=0B-9aw4q1sDcgNWt5TDhBNVZjWmc

然而,当我使用这个模型来预测另一个数据 (X_real, y_real) (除了它们不是由 train_test_split 随机选择之外,它们与 X_test 和 y_test 没有太大区别)我得到了不好的结果:

https://drive.google.com/open?id=0B-9aw4q1sDcgYWFZRU9EYzVKRFk

是不是过拟合的问题?如果是这样,为什么我的模型可以与 train_test_split 生成的 X_test 和 y_test 一起工作?

0 投票
1 回答
399 浏览

python - 训练/测试矩阵图书交叉推荐系统

我想为书籍交叉数据集构建训练数据矩阵和测试数据矩阵。但是作为 ISBN 代码的 Book Id 可能包含字符。因此,我无法应用此代码(来自教程):

line[2]-1 将导致类型错误:-: 'str' 和 'int' 的操作数类型不受支持。我需要找到另一种方法来构建训练测试矩阵。还有其他构建训练/测试矩阵的方法吗?

迭代 train_data 时的打印行示例:

Pandas(Index=874192, user_id=20859, ISBN='3442248876X', rating=0, title='Die Krieger der Drachenlanze 06. Die Ritter des Schwerts.', Location='tübingen, baden-württemberg, Germany', Age= 0.0)

注意:我考虑创建一个名为 book_id 的新列,该列映射到图书 ISBN,但仅包含整数,以便代码正常工作,但我不知道该怎么做。

0 投票
4 回答
17256 浏览

python - 在 R 中拆分为训练和测试集?

如何将以下用 python 编写的代码写入 R ?

拆分为训练集和测试集 80/20 的比例。

0 投票
1 回答
1023 浏览

scikit-learn - 来自 Scikit-learn 的 train_test_split() 的行为

我很好奇 Scikit-learn 的train_test_split()方法在以下场景中的行为:

一个虚构的数据集:

说我会像这样将它分成两个单独的集合(在两者中都保留“id”):

train_test_split()并用相同random_state的将它们分开0两者的顺序是否与“id”作为参考顺序相同?(因为您正在改组相同的数据集,但省略了不同的部分)

我很好奇这是如何工作的,因为我有两个模型。第一个使用数据集进行训练并将其结果添加到数据集中,然后将其中的一部分用于训练第二个模型。

这样做时,重要的是在测试第二个模型的泛化时,不使用也用于训练第一个模型的数据点。这是因为数据“以前见过”并且模型将知道如何处理它,因此您不再测试对新数据的泛化。

如果train_test_split()将其改组相同,那就太好了,因为这样就不需要跟踪用于训练第一个算法以防止测试结果污染的数据。

0 投票
1 回答
176 浏览

python - Is K-2 cross-validation essentially equal to train-test split of 50:50?

I am working on an data project assignment where I am asked to use 50% of data for training and remaining 50% of data for testing. I would like to use the magic of cross-validation and still meet the aforementioned criteria.

Currently, my code is following:

Since I am using just 2 splits, is it considered as if I was using train-test split of 50:50? Or should I first split data into 50:50 and then use cross validation on the training part, and finally use that model to test the remaining 50% on test data?

0 投票
2 回答
1178 浏览

python - 尝试随机化数据框的列时出现 KeyError

最小示例:
考虑这个数据框temp

现在,尝试在 for 循环中一次洗牌每一列。

这完美地工作。
具体例子:

现在,如果我想获得这个数据框的一部分,用于训练和测试目的,那么我将train_test_split使用sklearn.model_selection.

现在,我们已经获得了我们的X_train数据框。为了洗牌它的每一列:

不幸的是,这会导致错误。
错误:


跟踪问题及其解决方案:

在 下SettingWithCopyWarning,我发现了这个问题,它的第一个答案下面有这一行:

但是,它可以创建一个副本来更新data['amount'] 您看不到的副本。然后你会想知道为什么它不更新。

但是,如果是这种情况,那么为什么代码对第一种情况有效?

答案中还给出了:

Pandas 几乎在所有方法调用中都会返回一个对象的副本。就地操作是一种可行的操作,但通常不清楚数据是否正在被修改并且可能在副本上工作。

np.random.shuffle因此,我们可以使用来代替使用np.random.permutation,如答案所示。所以:

但是,我SettingWithCopyWarning又得到了答案,也得到了答案。

这可能是一种解决方法。


问题:

  1. 当我使用时,为什么代码适用于第一种情况,而不适用于第二种情况train_test_split
  2. SettingWithCopyWarning当我不使用就地洗牌器时,为什么我仍然会得到np.random.shuffle

征求意见:

  1. 是否有更好(易于使用/无错误/更快)的方法来进行列改组?
0 投票
1 回答
119 浏览

python - 在 Python 中将单列拆分为多个子列/数组

我正在尝试在 Python 中实现决策树算法来预测丢失的输入数据。

假设我有一列有 99 个条目。在这 99 个条目中,有 20 个是 NaN。我想将这个单个数组分解为 x 个大小为 y(在本例中为 y = 5)的子数组。

具有完整单元格的子数组分配给特征,包含NaN的子数组分配给目标

代码一直工作到 for 循环结束。现在我有了特性目标,我尝试了下面的代码块

这产生了这个错误:

我认为错误发生在数组操作期间的某个地方。我很难修复它。有什么建议/见解/建议吗?

编辑:下面是示例“测试”列。不知道如何把它放在表格格式中。对不起,糟糕的视觉效果。

0 投票
2 回答
2302 浏览

python - 我需要帮助了解 train_test_split?

我对 sklearn 的 train_test_split 函数有疑问。首先,我们为什么要拆分数据???我们是否从中获得了测试数据。我们是否只是将数据切成两半并使用其中一些来训练和一些来测试?比没有意义,因为数据已经被填充。如果它被填满,那么我们现在预测什么?我需要帮助!