分类数据建模的 Scikit 替代方案?

数据挖掘 Python scikit-学习 分类数据
2022-03-03 23:04:41

因此,sklearn其模型中不支持分类数据。Python 的分类数据建模(例如随机森林等)是否有已知的替代方案?

2个回答

肯定有一些方法可以处理您的数据以使分类数据与 sklearn 兼容(例如 one-hot 编码)。您可以研究的另一种选择是 h2o,它本身支持分类特征(尽管它不提供 sklearn 模型的广度)。

statsmodel支持使用 R 样式公式拟合模型:

In [5]: df = sm.datasets.get_rdataset("Guerry", "HistData").data

In [6]: df = df[['Lottery', 'Literacy', 'Wealth', 'Region']].dropna()

In [7]: df.head()
Out[7]: 
   Lottery  Literacy  Wealth Region
0       41        37      73      E
1       38        51      22      N
2       66        13      61      C
3       80        46      76      E
4       79        69      83      E

您可以在不处理分类数据的情况下拟合模型

In [11]: res = smf.ols(formula='Lottery ~ Literacy + Wealth + C(Region)', data=df).fit()

In [12]: print(res.params)
Intercept         38.651655
C(Region)[T.E]   -15.427785
C(Region)[T.N]   -10.016961
C(Region)[T.S]    -4.548257
C(Region)[T.W]   -10.091276
Literacy          -0.185819
Wealth             0.451475
dtype: float64