机器学习训练集测试集划分-按比例抽取,交叉检验?

1.打乱数据 shuffle

我们有下面以个DataFrame


机器学习训练集测试集划分-按比例抽取,交叉检验?

我们可以看到BuyInter的数值是按照0,-1,-1,2,2,2,3,3,3,3这样排列的,我们希望不保持这个次序,但是同时列属性又不能改变。

方法1:sample

 df.sample(frac=1这样对可以对df进行shuffle。其中参数frac是要返回的比例,比如df中有10行数据,我只想返回其中的30%,那么frac=0.3。

补充:

DataFrame.sample(n=Nonefrac=Nonereplace=Falseweights=Nonerandom_state=Noneaxis=None)

random_state:随机种子,固定值,控制每次随机抽样产生的结果相同


方法2:sklearn(机器学习的库)中也有shuffle的方法

  1. from sklearn.utils import shuffle  
  2. df = shuffle(df)