将数据集拆分为训练数据集和测试数据集:
注意:不能简单将X的前N个数据集作为训练数据集,因为目标值y是排好序的,如[0, 0, ..., 1, 1, ..., 2, 2, ...],只能取到一定值。
方法:先对原始数据进行乱序化处理,再取前N个作为训练数据集。
乱序化过程中,X和y是分离的,但是又是一一对应的,所以不能将其分开随机化,会丢失对应关系。
方式一:可以先将X和y合并成一个矩阵,再对矩阵进行随机化处理,处理完再拆分开来。
方式二:对所有元素的M个索引进行乱序处理。
这里采用方式二。
permutation()函数:
permutation(x):Randomly permute a sequence, or return a permuted range.
If `x` is a multi-dimensional array, it is only shuffled along its
first index.
Parameters
----------
x : int or array_like
If `x` is an integer, randomly permute ``np.arange(x)``.
If `x` is an array, make a copy and shuffle the elements
randomly.
Returns
-------
out : ndarray
Permuted sequence or array rang