使用 Pandas 'categorical' dtype 和 sklearn
Using Pandas 'categorical' dtype with sklearn
sklearn 是否支持直接在拟合模型中使用 Panda 的 Categorical 数据类型?据我所知,sklearn 不支持这种数据类型,这是不幸的,因为分类数据类型既编码分类数据又包含数据的映射方案。此外,分类编码纯粹是一个数据 handling/processing 问题,因此由 Pandas.
处理似乎更自然
备注
我知道在 Pandas 和 sklearn 中有几种编码分类变量的方法——这不是我要问的。
来自 issue-tracker 的交叉发布:
我认为这些至少是两个独立的问题:
1. sklearn 可以/将支持 pandas 以分类特征作为输入的数据帧
2. 可以/将 sklearn 支持通过 pandas 分类数据类型对分类变量进行操作。
或多或少会将所有分类变量转换为单热编码特征,也称为虚拟列。这对用户来说真的很容易做到。我们可以在 scikit-learn 中做到这一点 "under the hood",但这会使代码复杂化,我看不出有什么好处。
基本上是不可能的。有一个分类数据类型对树来说很好,但我认为 pandas 没有稳定的 c 级接口,所以我们不能真正进入它。即使有,它仍然需要大量重写树代码。我认为这对非树估计器没有帮助。
sklearn 是否支持直接在拟合模型中使用 Panda 的 Categorical 数据类型?据我所知,sklearn 不支持这种数据类型,这是不幸的,因为分类数据类型既编码分类数据又包含数据的映射方案。此外,分类编码纯粹是一个数据 handling/processing 问题,因此由 Pandas.
处理似乎更自然备注
我知道在 Pandas 和 sklearn 中有几种编码分类变量的方法——这不是我要问的。
来自 issue-tracker 的交叉发布:
我认为这些至少是两个独立的问题: 1. sklearn 可以/将支持 pandas 以分类特征作为输入的数据帧 2. 可以/将 sklearn 支持通过 pandas 分类数据类型对分类变量进行操作。
或多或少会将所有分类变量转换为单热编码特征,也称为虚拟列。这对用户来说真的很容易做到。我们可以在 scikit-learn 中做到这一点 "under the hood",但这会使代码复杂化,我看不出有什么好处。
基本上是不可能的。有一个分类数据类型对树来说很好,但我认为 pandas 没有稳定的 c 级接口,所以我们不能真正进入它。即使有,它仍然需要大量重写树代码。我认为这对非树估计器没有帮助。