葡萄酒质量预测:处理不平衡数据集与模型构建
1. 处理不平衡类别
在处理葡萄酒质量数据时,通过观察葡萄酒质量直方图,我们发现大部分质量集中在 5、6 和 7 这几个区间。这使得预测边缘质量区间变得更具挑战性,因为模型缺乏足够的案例来学习。为解决这个问题,有以下几种方法:
- 平衡数据集 :对于关键建模项目,可以通过移除一些中间类别或获取更多边缘案例来平衡数据集。
- 移除弱特征 :在某些情况下,弱特征会使模型产生混淆。通过移除它们,不仅可以提高模型得分,还能加快模型运行速度。可以使用基于树的模型,这些模型会返回某种形式的变量重要性。具体操作步骤如下:
1. 获取按重要性降序排列的特征列表。
2. 仅使用最佳特征尝试模型。
3. 不断添加特征,直到得分不再提高,最终得到一组有效的特征(这称为前向特征选择)。
我们尝试将所有类别数据上限设置为 500 行,代码如下:
# 查看数据分布
wine_balanced_df['quality'].value_counts()
输出结果:
7 500
6 500
5 500
4 216
8 193
3 30
9 5
Name: quality, dtype: int64
这种方法使中心类别周围的数据趋于平缓,但边缘仍然极度不平衡。更好的方法是对质量类