CatBoost内部工作机制的全面(并且有插图)解析
CatBoost(即Categorical Boosting)是一种强大的机器学习算法,在处理分类特征和生成准确预测方面表现出色。传统上,处理分类数据相当棘手,需要进行独热编码、标签编码或其他可能扭曲数据固有结构的预处理技术。为了解决这个问题,CatBoost采用了自己内建的编码系统,称为有序目标编码(Ordered Target Encoding)。
让我们通过构建一个模型来预测某人根据其在Goodreads上的平均图书评分和最喜欢的流派对《谋杀:她发短信了》这本书的评级进行了解CatBoost的实际工作过程。
我们请6个人对《谋杀:她发短信了》进行评分,并收集了关于他们的其他相关信息。
这是我们当前的训练数据集,我们将用它来训练(当然是咯)数据。
步骤1:对数据集进行洗牌并使用有序目标编码对分类数据进行编码
我们预处理分类数据的方式对于CatBoost算法至关重要。在这种情况下,我们只有一个分类列——最喜欢的流派。该列被编码(即转换为离散整数),编码方式取决于它是回归问题还是分类问题。由于我们处理的是回归问题(因为我们要预测的变量《谋杀:她发短信了》的评级是连续的),我们按照以下步骤进行。
1 — 对数据集进行洗牌:
2 — 将连续目标变量放入离散的桶中:由于这里的数据非常少,我们将创建相同大小的两个桶来对目标进行分类。(了解如何创建桶的更多信息请点击此处)。
我们将《谋杀:她发短信了》的评级的三个最小值放入桶0,其余放入桶1。