您至少有两个选择:
通过为每个连续变量计算百分位数,然后使用百分位数作为bin边界对连续变量进行装箱,将所有数据转换为分类表示。例如,对于一个人的身高,请创建以下分类箱:“非常小”,“很小”,“常规”,“大”,“非常大”,以确保每个分类箱包含大约20%的训练集人口。我们没有任何实用程序可以在scikit-learn中自动执行此操作,但是您自己做起来应该不会太复杂。然后在数据的这些分类表示上拟合唯一的多项式NB。
在数据的连续部分上独立拟合高斯NB模型,在分类部分上独立拟合多项式NB模型。然后通过将类分配概率(带有
predict_proba
方法)作为新特征来转换所有数据集:np.hstack((multinomial_probas, gaussian_probas))
然后在新特征上重新拟合新模型(例如新的高斯NB)。



