基本抽樣函數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為欺詐樣本集