Есть ли способ передать несколько входных меток, чтобы предсказать одну метку, используя SVM - PullRequest
0 голосов
/ 22 декабря 2018

Пример данных:
название, описание, местоположение
Роза, вид цветка Кашмир, ути
Лук Вид овоща Гуджарата

Мне нужно пропустить одну запись (строка1, строка2). Эта две строки набора данных содержат как

name    description

Но я попытался передать одну метку и предсказать другую метку, используя svm в python

#Python CODE
data=pandas.csv(data.csv)
data_1=data[0:800]
data_2=data[800:1000]
svm.fit(data_1['name'], data_1['description'])
svm.predict(data_2['name'])
print("enter the name")
i=str(input())
predicted=svm.predict(i)
print("predicted description is")
print(predicted)  #here the description will be predicted

Но в приведенном выше коде я передаютолько заголовок в качестве входных данных и предсказание описания.

Я расширил набор данных, добавив еще один столбец как местоположение

Таким образом, в наборе данных будет три столбца, например

name,description,location

Поэтому мне нужно передать имя и описание в качестве входных данных, и мне нужно предсказать местоположение как результат

Я не знаю, как передать две метки (имя, описание) в метод предиката (), чтобы предсказать местоположениекак результат или любое другое доступное решение, если применимо, пожалуйста, опубликуйте решение.

РЕДАКТИРОВАТЬ:

Я изменил код согласно комментариям:

#Python CODE  
data=pandas.csv(data.csv)  
data_1=data[0:100]  
data_2=data[50:100]  
svm.fit(data_1[['name','description']], data_1['location'])   
svm.predict(data_2['location'])  
print("enter the name")  
i=str(input())  
print("enter the description")  
j=str(input())      
predicted=svm.predict(i)  
print("predicted location is")  
print(predicted)    #here the location will be predicted  

AfteПри выполнении этого кода появляется ошибка ниже:

ValueError: Найдены входные переменные с непоследовательным количеством выборок [2100] в svm_fit (data_1 [['name', 'description']], data_1 ['location'])

Ответы [ 2 ]

0 голосов
/ 23 декабря 2018

Следующий код неверен:

print("enter the name")  
i=str(input())  
print("enter the description")  
i=str(input())      
predicted=svm.predict(i)  

Вы должны использовать:

print("enter the name")  
i=str(input())  
print("enter the description")  
j=str(input())  # using i here will lose name string.
predicted=svm.predict([i,j])  # send both name and description now;

Но, похоже, ошибка исходит из следующего утверждения:

svm.fit(data_1[['name','description']], data_1['location']) 

ТочноОшибка может быть найдена, только если вы разместите образец данных.

0 голосов
/ 23 декабря 2018

Похоже, ошибка в следующей строке

svm.predict(data_2['location']) 

Вам необходимо указать входные данные data_2, как этот!

svm.predict(data_2[['name','description']])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...