朴素贝叶斯高斯抛出ValueError:无法将字符串转换为float:'M'

时间:2019-10-03 05:05:25

标签: python python-3.x gaussian naivebayes valueerror

将某些特征的值从整数替换为字符串后,在执行fit()命令后出现错误:

  

错误-ValueError:无法将字符串转换为浮点数:“ M”

replace_val_sex = {0:'F', 1:'M'}
df = df.replace({"Sex": replace_val_sex})
.
.
.
GNB = GaussianNB().fit(x_train, y_train)
<ERROR>

注意:当我不替换值时,不会发生这种情况。

  

Blockquote

1 个答案:

答案 0 :(得分:1)

据您所知,您对朴素贝叶斯算法和高斯朴素贝叶斯算法感到困惑。让我们在遇到问题的情况下一个接一个地查看

朴素贝叶斯: 朴素贝叶斯或朴素贝叶斯分类器算法是关于计算具有条件独立性的事件的概率。因此,概率是使用要素中的类数来计算的。这些功能的输入取决于您使用的工具。

高斯朴素贝叶斯: 此算法的基本假设是所有功能都是连续的。术语“高斯”是连续的。在这种算法中,我们试图与其他连续输出特征一起预测连续输出特征。因此,无论我们使用什么软件(或使用何种工具),都将特征限制为数值(或)连续的。

在使用GaussianNB时(预期这来自ScikitLearn),输入功能应为“数值”