顾名思义,这是一个切分训练集与测试集的工具
from sklearn.model_selection import train_test_split
如果我们不使用,而是手动进行划分,要么进行简单的操作——划去前80%为训练集,后20%为测试集,这样会带来很多的问题,因为这样做,我们切出来的会让训练集和测试集的分布很不一致,我们可以看一下简单粗暴方法切出来的分布图:
train, test = train_test_split(data_all, test_size=0.2, random_state=10)
红色的训练集,蓝色是测试集(点击图片放大可以看得很清楚,直接看博客好像图片模糊)
然后我们看一下使用这个工具切出来的数据分布
我们看到这个切出来的分布,是非常一致的,效果很好,如果我们想手动自己下随机抽取的方法切分,这当然可以办到,但是似乎太费事了,何不利用现成的工具呢?
画上面分布图的代码:
plt.figure(figsize=[6,120])
for i in range(25):
ax = plt.subplot(25,1,i+1)
pd.DataFrame(train).iloc[:,i].plot(kind='kde',ax=ax,color="red")
pd.DataFrame(test).iloc[:,i].plot(kind='kde',ax=ax)
ax.set_title(train.columns[i])