在一个数据集上实现分类特征的伯努利NB和数值特征的高斯NB的混合奈夫贝叶斯。

问题描述 投票:0回答:1

我有一个由2个数字描述特征和3个分类描述特征组成的数据集。我已经对分类特征进行了编码,并对分类特征进行了缩放。现在我想使用一个混合奈夫贝叶斯分类器,分类特征使用伯努利NB,数值特征使用高斯NB。我曾尝试在sklearn模式中使用StackingClassifier的Ensemble方法,但是,它没有参数可以明确哪种奈夫贝叶斯方法用于数据集的哪一部分。有没有什么方法能够让我把这两种方法结合在一起,然后拟合数据?

python machine-learning scikit-learn classification naivebayes
1个回答
0
投票

我相信你可以创建2组特征。

使用分类器1:X[feature_group_1] -> Y[lags]作为一个分类器,分类器2:X[feature_group_2] -> Y[lags]作为另一个分类器。

对于预测,也要把测试特征分成两组:Xtest[feature_group_1] -> ytest1Xtest[feature_group_2] -> ytest2。

然后将它们的输出堆叠起来,得到你的最终答案。对于堆叠,你可以使用VotingClassifier方法。

from sklearn.ensemble import VotingClassifier

eclf2 = VotingClassifier(estimators=[
    ...         ('bnb', clf1), ('gnb', clf2)],
    ...         voting='soft')
© www.soinside.com 2019 - 2024. All rights reserved.