当前位置: 首页 > 面试题库 >

使用scikit-learn在朴素贝叶斯分类器中混合分类数据和连续数据

吴缪文
2023-03-14
问题内容

我正在Python中使用scikit-learn开发分类算法,以预测某些客户的性别。除其他外,我想使用Naive
Bayes分类器,但是我的问题是我混合使用了分类数据(例如:“在线注册”,“接受电子邮件通知”等)和连续数据(例如:“年龄”,“长度”成员资格”等)。我以前没有使用过scikit,但我想高斯朴素贝叶斯适用于连续数据,而伯努利朴素贝叶斯可以用于分类数据。但是,由于我想在模型中
同时包含 分类数据和连续数据,所以我真的不知道该如何处理。任何想法将不胜感激!


问题答案:

您至少有两个选择:

  • 通过为每个连续变量计算百分位数,然后使用百分位数作为bin边界对连续变量进行装箱,将所有数据转换为分类表示。例如,对于一个人的身高,请创建以下分类箱:“非常小”,“很小”,“常规”,“大”,“非常大”,以确保每个分类箱包含大约20%的训练集人口。我们没有任何实用程序可以在scikit-learn中自动执行此操作,但是您自己做起来应该不会太复杂。然后在数据的这些分类表示上拟合唯一的多项式NB。

  • 在数据的连续部分上独立拟合高斯NB模型,在分类部分上独立拟合多项式NB模型。然后通过将类分配概率(带有predict_proba方法)作为新特征来转换所有数据集:np.hstack((multinomial_probas, gaussian_probas))然后在新特征上重新拟合新模型(例如新的高斯NB)。



 类似资料:
  • 上例的数据格式如下: both sedentary moderate yes i100 both sedentary moderate no i100 health sedentary moderate yes i500 appearance active moderate yes i500 appearance moderate aggressive yes i500

  • 当用整个集合测试时,当使用分类器对一组新的tweet进行测试时,它只返回“中性”作为标签,但当使用30个时,它只返回正,这是否意味着我的训练数据不完整或过于“加权”中性条目,以及我的分类器在使用大约4000个tweet时只返回中性的原因? 我已经在下面包括了我的完整代码。

  • 我正在开发一个朴素的贝叶斯分类器使用简单的词袋概念。我的问题是,在朴素贝叶斯或任何其他机器学习中,senario'训练‘分类器是一个重要的问题。但是当我已经有了一个不同类别的词包时,如何训练朴素贝叶斯分类器呢?

  • 1 介绍   朴素贝叶斯是一种构建分类器的简单方法。该分类器模型会给问题实例分配用特征值表示的类标签,类标签取自有限集合。它不是训练这种分类器的单一算法,而是一系列基于相同原理的算法:所有朴素贝叶斯分类器都假定样本每个特征与其他特征都不相关。 举个例子,如果一种水果其具有红,圆,直径大概3英寸等特征,该水果可以被判定为是苹果。尽管这些特征相互依赖或者有些特征由其他特征决定,然而朴素贝叶斯分类器认为

  • 参考资料地址: http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html 我的数据挖掘算法实现源码地址:https://github.com/linyiqun/DataMiningAlgorithm 介绍 要介绍朴素贝叶斯算法(Naive Bayes),那就得先介绍贝叶斯分类算法,贝叶斯分类算法