我正在尝试在Python中实现Naive Bayes分类器。我的属性具有不同的数据类型:字符串,Int,float,Boolean,Ordinal
我可以使用Gaussian Naive Bayes分类器(Sklearn.naivebayes:Python包),但我不知道如何处理不同的数据类型。分类器抛出一个错误,声明无法处理Int或float
以外的数据类型我可能想到的一种方法是将字符串编码为数值。但我也怀疑,如果我这样做,分类器会有多好。
答案 0 :(得分:2)
是的,您需要将字符串转换为数值 朴素贝叶斯分类器无法处理字符串,因为字符串无法输入数学方程式。
如果你的字符串有一些"标量值"例如"大,中,小"您可能希望将它们归类为" 3,2,1", 但是,如果你的字符串是没有顺序的东西,比如颜色或名字,你可以这样做,或者为每个变量指定二进制变量,如果颜色或名称不是很多的话。
例如,如果您要对汽车进行分类,它们可以是红蓝绿色,您可以定义变量'红色' '蓝色' '绿色'取值为0/1,取决于您的汽车颜色。
答案 1 :(得分:1)
请勿手动转换数据类型,而应使用dict矢量化。
http://scikit-learn.org/stable/modules/generated/sklearn.feature_extraction.DictVectorizer.html