基本抽样函数sample
sample(x,size,replace=F/T)
x是数据集,
size规定了从对象中抽出多少个数
replace 为F时候,表示每次抽取后的数就不能在下一次被抽取;T表示抽取过的数可以继续拿来被抽取。
不平衡数据的问题
以某两类数据为目标做抽样,其中一类样本数量特别小,一类样本数特别大,这就是不平衡的情况。对应处理方式是做欠抽样处理,按照样本量小的类的数量,从大类中抽取样本。
以kaggle的信用卡欺诈案例为例,该项目欺诈的样本为492个,非欺诈样本284807个,对应处理方式为:
# 设定分层抽样 set.seed(1234) index<-sample(x=1:nrow(card_data2),size = nrow(card_data1),replace = T) # 非欺诈类对应的平衡后数据集为 card_data3<-card_data2[index,] # head(card_data3) # 合并欺诈样本和非欺诈样本,得到新数据集 new_card<-rbind(card_data1,card_data3) # 其中card_data2为非欺诈样本集,card_data1为欺诈样本集