python 中处理不同数据类型的 NaiveBayes 分类器

NaiveBayes classifier handling different data types in python

我正在尝试在 Python 中实现朴素贝叶斯分类器。我的属性有不同的数据类型:Strings、Int、float、Boolean、Ordinal

我可以使用高斯朴素贝叶斯分类器(Sklearn.naivebayes : Python 包),但我不知道如何处理不同的数据类型。分类器抛出错误,指出无法处理 Int 或 float

以外的数据类型

我可能想到的一种方法是将字符串编码为数值。但我也怀疑,如果我这样做的话,分类器的表现会有多好。

是的,您需要将字符串转换为数值 朴素贝叶斯分类器无法处理字符串,因为字符串无法进入数学方程式。

如果您的字符串有一些 "scalar value",例如 "large, medium, small",您可能希望将它们分类为“3,2,1”, 但是,如果您的字符串是没有顺序的东西,例如颜色或名称,您可以这样做或分配二进制变量,每个变量都引用一种颜色或名称,如果它们不多的话。

例如,如果您对汽车进行分类,它们可以是红色、蓝色和绿色,您可以定义变量 'Red' 'Blue' 'Green' 取值 0/1,具体取决于你的车的颜色。

不要手动转换数据类型,而是使用字典向量化。

http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.DictVectorizer.html