尽管存在工作代码,但 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)))
我在 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)))