【发布时间】:2019-12-25 16:55:40
【问题描述】:
我最初有一个维度为 (13961,48 ) 的数据,经过一次热编码和基本的数据按摩后,在 (13961,862) 周围观察到维度。数据不平衡,两类“保留”约占 6%,“未保留”约占 94%。
在运行任何算法(如逻辑、knn、决策树、随机森林)时,即使没有执行任何特征选择过程,数据也会产生非常高的准确率,并且除了“朴素偏差分类器”之外,准确率大多超过 94%。
这看起来很奇怪,甚至随机包含任意两个特征-->准确率超过 94%,这通常看起来不现实。
同样应用 SMOTE,即使对于上述任何算法的基线模型,如逻辑、knn、决策树、随机森林,也能提供超过 94% 的准确率结果
在去除前 20 个特征后,这给出了超过 94% 的良好结果的准确率(检查了解真实性)
g = data[Target_col_Y_name]
df = pd.concat([g.value_counts(),
g.value_counts(normalize=True).mul(100)],axis=1, keys=('counts','percentage'))
print('The % distribution between the retention and non-retention flag\n')
print (df)
# The code o/p to show the imbalance is
The % distribution between the retention and non-retention flag
counts percentage
Non Retained 13105 93.868634
Retained 856 6.131366
我的数据有 7 个数值变量,例如月份、金额、利率和所有其他变量(大约 855 个)作为 one-hot-encoding 转换的分类变量。
有什么方法可以处理此类关于基线、特征选择或不平衡优化技术的数据?请通过查看每个级别的维度和不平衡计数来指导。
【问题讨论】:
-
准确性不是(高度)不平衡数据集的合适评估指标,因为结果由多数类确定,而少数类被忽略。在您的情况下,请考虑对于任何输入的常量分类器,预测输出是
Non Retained类。准确度是多少?
标签: python classification feature-selection imbalanced-data smote