2015-02-17 1 views
0

У меня есть следующий код в 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)))

ответ

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))) 
+0

К сожалению, делая эти изменения я получаю TypeError ошибки: неподдерживаемый тип операнда (ов) для -: «ул» и «ул» – 114

+0

Что ваши входные данные? Является ли TypeError исправленной строкой кода? Если это так, кажется, вы читаете строки, а не числовые значения. Возможно, проверьте свой файл ввода – user3590169

+0

Да, это исправленная строка кода. Возможно, вы правильно относитесь к входному файлу, позвольте мне проверить, чтобы быть уверенным. UPDATE: все значения являются числовыми, кроме заголовков. – 114

Смежные вопросы