【发布时间】:2017-11-14 22:09:04
【问题描述】:
我的数据在 csv 文件中,格式如下:
45,45,34,34,34,56,52,88,50,46,46,1
28,26,23,22,32,36,21,18,8,28,40,0
28,46,57,42,46,51,48,48,40,46,34,1
11,11,11,34,17,13,11,46,11,33,40,0
42,36,46,32,28,51,48,56,38,46,40,1
等等。
我正在尝试使用二进制分类器,它可以对作为输入的数据进行分类,如前 11 列所示,第 12 列表示接受(1)或拒绝(0)。我正在使用 python 的 pandas、numpy 模块。如何对数据实施朴素贝叶斯?
我收到数据转换错误:
ValueError: could not convert string to float
到目前为止,这是我的代码:
import pandas as pd
import numpy as np
from sklearn.cross_validation import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score
df = pd.read_csv(r'file.csv')
features=df.values[:,:11]
target=df.values[:,12]
features_train, features_test, target_train, target_test =
train_test_split(features, target, test_size = 0.33, random_state = 10)
clf=GaussianNB()
clf.fit(features_train, target_train)
target_pred = clf.predict(features_test)
【问题讨论】:
-
如果您的代码出现错误,请包含所有产生此错误的代码。我们无权访问您的计算机。请包括加载此 csv 的代码、尝试训练/适应此数据的代码等。
-
另外,第一行的位置 1 有一个空单元格。
float('')失败。 -
@EdChum 添加了代码
-
@Kendas 修复了它
标签: python pandas numpy scikit-learn anaconda