【发布时间】:2020-03-07 18:42:16
【问题描述】:
我有一个蘑菇数据集,有 8124 行和 23 列。第一列称为“类”,有两种类型的值:“p”(毒药)和“e”(可食用)。我想使用前 6000 行训练朴素贝叶斯。但我不知道如何使用分类特征来做到这一点。我的数据集中的所有元素都有 str 类型。
import pandas as pd
from sklearn.naive_bayes import GaussianNB
df = pd.read_csv('/home/mot/PythonFiles/Mushrooms/mushrooms.csv', delimiter=',')
df_train = df.loc[:6000]
df_test = df.loc[6000:]
df_train_values = df_train.loc[:, 'cap-shape'::]
df_train_answers = df_train['class']
df_test_values = df_test.loc[:, 'cap-shape'::]
df_test_answers = df_test['class']
clf = GaussianNB()
clf.fit(df_test_values, df_test_answers)
这就是我得到的:ValueError: could not convert string to float: 'p'
【问题讨论】:
-
创建
dummies或使用one-hot-encoding
标签: string pandas naivebayes