机器学习——将数据划分为测试集和训练集

Machine Learning- Dividing data into test and train sets

如何将给定的数据集划分为训练集和测试集以及它们的正确标签。

通过 sklearn 库有一个相同的实现:

from sklearn.cross_validation import train_test_split

train, test = train_test_split(df, test_size = 0.2)

其中 df 是原始数据集....例如:字符串列表

问题在于它没有将 target/labels 与数据集一起使用。所以我们无法追踪哪个标签属于哪个数据点...

有什么方法可以绑定数据点和它们的标签,然后将数据集拆分成训练和测试?

sklearn.cross_validation.train_test_split 本质上采用可变数量的数组,它将拆分

*arrays : sequence of arrays or scipy.sparse matrices with same shape[0]

Returns:
splitting : list of arrays, length=2 * len(arrays) List containing train-test split of input array.

因此您只需在标签列表中添加:

from sklearn import cross_validation

df = ['the', 'quick', 'brown', 'fox']
labels = [0, 1, 0, 0]

>> cross_validation.train_test_split(df, labels, test_size=0.2)
[['quick', 'fox', 'the'], ['brown'], [1, 0, 0], [0]]