机器学习训练集测试集划分-按比例抽取,交叉检验?
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=None, frac=None, replace=False, weights=None, random_state=None, axis=None)
random_state:随机种子,固定值,控制每次随机抽样产生的结果相同
方法2:sklearn(机器学习的库)中也有shuffle的方法
- from sklearn.utils import shuffle
- df = shuffle(df)