尽管存在工作代码,但 sklearn 语法错误

sklearn syntax error despite existing working code

我在 Python 2.7 中有以下代码,其目标是使用 numpy、pylab 和 sklearn 创建 SVM 结果图:

import numpy, pylab
from sklearn.svm import SVC

DataTable = numpy.genfromtxt('path/data.csv',delimiter=',',dtype=None)[1:]

DataPoints,TruthValues = (DataTable[:,[1,2] ]).astype(numpy,float), (DataTable[:,0]=='1')

TrainedSVC = SVC(C = 100, kernel = 'linear').fit(DataPoints,TruthValues)

x_max,y_max,x_min,y_min = DataPoints[:, 0].max(),DataPoints[:, 1].max(),DataPoints[:, 0].min(),DataPoints[:, 1].min()

xx, yy = numpy.meshgrid(numpy.arange(x_min, x_max, (int(x_max)-int(x_min)/200.0), numpy.arange(y_min, y_max, (int(y_max)-int(y_min)/200.0))

GridEvaluation = TrainedSVC.predict(numpy.c_[xx.ravel(),yy.ravel()]).reshape(xx.shape)

pylab.pcolormesh(xx, yy, GridEvaluation, alpha=0.1)
pylab.scatter(DataPoints[:, 0], DataPoints[:, 1], c=TruthValues)
pylab.xlabel('crp');pylab.ylabel('income');pylab.show()

代码最初是 posted on this blog,它很好地解释了代码的每一部分。我保留了与示例代码基本相同的所有内容,但我仍然在行 GridEvaluation = TrainedSVC.predict(numpy.c_[xx.ravel(),yy.ravel()]).reshape(xx.shape)

上遇到语法错误

让我感到困惑的是,这个错误并没有出现在上面的博客 post 中,尽管它出现的行是从 post 中逐字复制的。如果有帮助,我正在使用 Python 的 Anaconda 发行版和 Spyder IDE.

更新:考虑到下面的答案后,我现在得到了回复:

TypeError: unsupported operand type(s) for -: 'str' and 'str'

上线:

xx, yy = numpy.meshgrid(numpy.arange(int(x_min), int(x_max), (int(x_max)-int(x_min)/200.0)), numpy.arange(y_min, y_max, (int(y_max)-int(y_min)/200.0)))

我认为您在上面的行中转换为 int 时漏掉了一些括号。

xx, yy = numpy.meshgrid(numpy.arange(x_min, x_max, (int(x_max)-int(x_min)/200.0)), numpy.arange(y_min, y_max, (int(y_max)-int(y_min)/200.0)))