对不平衡的数据进行平衡
当数据中类的分布不均匀时,就会出现不平衡的数据。如果在不平衡的数据集上构建预测模型,则会导致模型看起来可产生高准确度,但不能很好地推广到少数类中的新数据。为了防止创建具有错误准确度的模型,您应该在创建预测模型之前对不平衡的数据进行重新平衡。
开始示例之前,请加载机器学习示例数据。您会在金融交易数据中看到很多不平衡的数据,其中大多数交易不是欺诈性的,少数交易是欺诈性的,如下例所示。
-
查看类的分布。
=> SELECT fraud, COUNT(fraud) FROM transaction_data GROUP BY fraud; fraud | COUNT -------+------- TRUE | 19 FALSE | 981 (2 rows)
-
使用 BALANCE 函数创建更平衡的数据集。
=> SELECT BALANCE('balance_fin_data', 'transaction_data', 'fraud', 'under_sampling' USING PARAMETERS sampling_ratio = 0.2); BALANCE -------------------------- Finished in 1 iteration (1 row)
-
查看分类器的新分布。
=> SELECT fraud, COUNT(fraud) FROM balance_fin_data GROUP BY fraud; fraud | COUNT -------+------- t | 19 f | 236 (2 rows)