我正在研究具有以下特征的二元分类不平衡营销数据集:
我将数据分为火车(80%)和测试(20%)集,然后在火车集上使用了standard_scalar和SMOTE。 SMOTE将火车数据集的“否:是”比率设为1:1。然后,我运行了一个逻辑回归分类器,如下代码所示,通过应用不带SMOTE的逻辑回归分类器,测试数据的召回得分为80%,而测试数据的召回得分仅为21%。
使用SMOTE,召回率提高了很多,但是误报率很高(请参见混淆矩阵的图片),这是一个问题,因为我们最终将针对许多假(不太可能购买)客户。有没有办法在不牺牲召回率/真实肯定的情况下减少误报?
#Without SMOTE
clf_logistic_nosmote = LogisticRegression(random_state=0, solver='lbfgs').fit(X_train,y_train)
#With SMOTE (resampled train datasets)
clf_logistic = LogisticRegression(random_state=0, solver='lbfgs').fit(X_train_sc_resampled, y_train_resampled)
答案 0 :(得分:0)
即使我有一个类似的问题,误报率也很高。在那种情况下,我在进行特征工程后就应用了SMOTE。
然后我在进行特征设计之前就使用了SMOTE,并使用了SMOTE生成的数据来提取特征。这样,它工作得很好。虽然,这将是一个较慢的方法,但是它对我有用。让我知道您的情况。