У меня есть следующий код в Python 2.7, целью которого является создание сюжета о результатах SVM с использованием NumPy, pylab и sklearn:sklearn ошибка синтаксиса, несмотря на существующий рабочий код
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()
Код был первоначально размещенный на this blog, который хорошо описывает каждую часть кода. Я оставил все по существу так же, как и в примере кода, но я все еще получаю синтаксическую ошибку в строке GridEvaluation = TrainedSVC.predict(numpy.c_[xx.ravel(),yy.ravel()]).reshape(xx.shape)
Что меня смущает, так это то, что эта ошибка не появилась в вышеупомянутом сообщении в блоге, несмотря на то, что строка это происходит при копировании дословно из сообщения. Если это помогает, я использую дистрибутив Anaconda Python со Spyder IDE.
UPDATE: После принятия во внимание ответ ниже я теперь получаю ответ:
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)))
К сожалению, делая эти изменения я получаю TypeError ошибки: неподдерживаемый тип операнда (ов) для -: «ул» и «ул» – 114
Что ваши входные данные? Является ли TypeError исправленной строкой кода? Если это так, кажется, вы читаете строки, а не числовые значения. Возможно, проверьте свой файл ввода – user3590169
Да, это исправленная строка кода. Возможно, вы правильно относитесь к входному файлу, позвольте мне проверить, чтобы быть уверенным. UPDATE: все значения являются числовыми, кроме заголовков. – 114