训练数据集中的一些疑惑?

来源:4-3 训练数据集,测试数据集

wen_0013

2020-01-28

输入正文

课程中说到 把数据乱序之后 再把数据分成两部分,一个是训练数据集 ,一个是测试数据集 ,问题是,乱序之后 

x 和y 数据之间的对应关系就和原来的不一样 ? 这里我是想不通

写回答

1回答

liuyubobobo

2020-01-29

一样的。


我们的乱序方式,是随机选择了一组索引作为训练数据的索引,叫 train_indexes,又随机选择了一组索引,作为测试数据集的索引,叫 test_indexes。

//img.mukewang.com/szimg/5e308ae5099572a203680111.jpg


之后,我们使用同样的一组训练索引,在 X 和 y 中取值。由于索引是相同的,保证了取出的 X_train 和 y_train 是对应的。

同理,我们使用同样的一组测试索引,在 X 和 y 中取值。由于索引是相同的,保证了取出的 X_test 和 y_test 是对应的。

//img.mukewang.com/szimg/5e308b4b09e184f402280110.jpg


根据上面的解释,再理解一下我们整个 train_test_split 代码的逻辑,每一行都在做什么?


如果有必要,使用一个小的数据,比如就十个数据点,然后实际看一看,最后的结果是不是对应的?为什么能保持这个对应?


继续加油!:)

0
2
wen_0013
import numpy as np x = np.array([67, 93, 33, 23, 343, 341, 3434, 23, 90, 86]) y = np.array([1, 1, 1, 1, 1, 0, 0, 0, 0, 0]) RandomIndex = np.random.permutation(len(x)) print(RandomIndex) print("#############") print(y[RandomIndex]) //我自己,写了个代码理解了,谢谢你
2020-01-29
共2条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5858 学习 · 2451 问题

查看课程