Python TypeError:/:';str';和';长';

Python TypeError:/:';str';和';长';,python,scikit-learn,Python,Scikit Learn,我正在使用sklearn构建一个朴素贝叶斯分类器: . 代码如下: import numpy as np import pandas as pd from sklearn.naive_bayes import GaussianNB col = ['ID','a1','a2','a3','a4','a5','a6','a7','a8','a9','class'] data =pd.read_csv("data.csv",names = col,header =None) data = data.

我正在使用sklearn构建一个朴素贝叶斯分类器: . 代码如下:

import numpy as np
import pandas as pd
from sklearn.naive_bayes import GaussianNB

col = ['ID','a1','a2','a3','a4','a5','a6','a7','a8','a9','class']
data =pd.read_csv("data.csv",names = col,header =None)
data = data.drop('ID',axis =1)
msk = np.random.rand(len(data)) < 0.66
train =  data[msk]
test = data[~msk]
y = train['class']
X = train.drop('class',axis = 1)
labels = test['class']
test = test.drop('class',axis = 1)
clf = GaussianNB()
'''
y1 = np.array(y, dtype=pd.Series)
X1 = np.array(X,dtype = pd.Series)
'''
clf.fit(X, y)
将numpy导入为np
作为pd进口熊猫
从sklearn.naive_bayes导入GaussianNB
col=['ID','a1','a2','a3','a4','a5','a6','a7','a8','a9','class']
data=pd.read\u csv(“data.csv”,name=col,header=None)
data=data.drop('ID',轴=1)
msk=np.random.rand(len(data))<0.66
列车=数据[msk]
测试=数据[~msk]
y=列车[‘等级’]
X=列车下降('等级',轴=1)
标签=测试['class']
测试=测试下降('class',轴=1)
clf=GaussianNB()
'''
y1=np.数组(y,dtype=pd.系列)
X1=np.数组(X,dtype=pd.系列)
'''
clf.配合(X,y)
数据集分为66%的训练集和33%的测试集比率。我使用高斯NB分类器使用sklearn。 当我运行它时,会出现以下错误:

Traceback (most recent call last):

  File "<ipython-input-9-3c90e612af8d>", line 1, in <module>
    runfile('C:/Users/Keshav/Desktop/Spring/ML/Project/Breast Cancer/main1a.py', wdir='C:/Users/Keshav/Desktop/Spring/ML/Project/Breast Cancer')

  File "C:\Users\Keshav\Anaconda\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 580, in runfile
    execfile(filename, namespace)

  File "C:/Users/Keshav/Desktop/Spring/ML/Project/Breast Cancer/main1a.py", line 37, in <module>
    clf.fit(X, y)

  File "C:\Users\Keshav\Anaconda\lib\site-packages\sklearn\naive_bayes.py", line 163, in fit
    self.theta_[i, :] = np.mean(Xi, axis=0)

  File "C:\Users\Keshav\Anaconda\lib\site-packages\numpy\core\fromnumeric.py", line 2727, in mean
    out=out, keepdims=keepdims)

  File "C:\Users\Keshav\Anaconda\lib\site-packages\numpy\core\_methods.py", line 69, in _mean
    ret, rcount, out=ret, casting='unsafe', subok=False)

TypeError: unsupported operand type(s) for /: 'str' and 'long'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
runfile('C:/Users/Keshav/Desktop/Spring/ML/Project/breatcare/main1a.py',wdir='C:/Users/Keshav/Desktop/Spring/ML/Project/breatcare')
文件“C:\Users\Keshav\Anaconda\lib\site packages\spyderlib\widgets\externalshell\sitecustomize.py”,第580行,在runfile中
execfile(文件名、命名空间)
文件“C:/Users/Keshav/Desktop/Spring/ML/Project/Breast Cancer/main1a.py”,第37行,在
clf.配合(X,y)
文件“C:\Users\Keshav\Anaconda\lib\site packages\sklearn\naive\u bayes.py”,第163行,在fit中
self.theta_[i,:]=np.平均值(Xi,轴=0)
文件“C:\Users\Keshav\Anaconda\lib\site packages\numpy\core\fromneric.py”,第2727行,意思是
out=out,keepdims=keepdims)
文件“C:\Users\Keshav\Anaconda\lib\site packages\numpy\core\\u methods.py”,第69行,单位为
ret,rcount,out=ret,casting='safe',subok=False)
TypeError:/:“str”和“long”的操作数类型不受支持
在相同的训练集和测试集下,我能够成功地运行SVM(sklearn),但在GaussianNB上则不然


你知道怎么解决吗

X1=np.array(X,dtype=pd.Series)
似乎是错误的
np.Series
不是有效的数据类型,您将以dtype
object
@cel OK结束。。。X也会出现同样的错误!您应该确保您的输入具有数字数据类型,如
np.float64
。sklearn在未来将更加强大,但您仍应努力确保。