使用pandas创建两个数据框:train_df和test_df,其中 train_df有80%的数据是随机均匀选择的 替换
此处," 数据随机均匀选择,无需替换"意思?
另外,我该怎么做?
由于
答案 0 :(得分:2)
"随机统一选择"意味着每一行都有相同的概率被选入80%
"无需更换"表示每行只考虑一次。一旦将其分配给培训或测试集,它就不是
例如,请考虑以下数据:
A B
0 5
1 6
2 7
3 8
4 9
如果将此数据集拆分为80%的训练集和20%的测试集,那么我们最终会得到4行训练集(80%的数据)和1行的测试集(20%)数据)
无替换 假设第一行被分配给训练集。现在训练集是:
A B
0 5
当下一行被分配到训练或测试时,将从剩余的行中选择: A B
1 6
2 7
3 8
4 9
有替换 假设第一行被分配给训练集。现在训练集是:
A B
0 5
但是下一行将使用整个数据集分配(即第一行已放回原始数据集中)
A B
0 5
1 6
2 7
3 8
4 9
你怎么能这样做: 您可以使用scikit-learn:http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html
中的train_test_split函数或者你可以使用pandas和Numpy来做到这一点:
df['random_number'] = np.random.randn(length_of_df)
train = df[df['random_number'] <= 0.8]
test = df[df['random_number'] > 0.8]