2016-12-05 11 views
0

Как создать набор данных со строками в pybrain.datasets.addSample()? Я получаю сообщение об ошибке «не может преобразовать строку в float: gas».Как добавить строки в ClassificationDataSet?

Я что-то упускаю, как значение индекса или определенная связь между вводом и целью? Я не уверен, как читать документацию по этому вопросу. Спасибо за вашу помощь.

import pybrain 
from pybrain.datasets import ClassificationDataSet 

#set up input and target variables 
ds = ClassificationDataSet(inp=2, target=1) 

#add data to dataset 
ds.addSample(('gas', 'blue'), ('car',)) 
ds.addSample(('desiel', 'brown'), ('truck',)) 

# error 
ValueError: could not convert string to float: gas 

ответ

0

Похоже, что пирамин использует только флоат-типы. Из-за этого вы можете создать уникальное значение float для каждой уникальной строковой переменной. Возможно, примените функцию ord() к каждому символу в строке, для каждой строки в кортеже. Лучшей практикой является использование оператора описания списка, а не map() и лямбда-функций.

>>> ord('a') 
97 
>>> ord('\u00c2') 
192 

или как

>>> [ord(c) for c in 'Hello World!'] 
[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33] 

так, может быть, как это:

>>>x = [('gas', 'blue'),] 

>>>for var in x: 
>>> # for each letter of word 
>>> for c in var: 
>>>  # list of ord() values for each letter of word 
>>>  letter = [ord(i) for i in c] 
>>>  # convert list to string 
>>>  number = [str(i) for i in letter] 
>>>  # join() to combine list into a single string 
>>>  word = ''.join(number) 
>>>  print c, word 
gas 10397115 
blue 98108117101 

Представив строки в качестве типа поплавка вместе с помощью набора Natural Language Tool для представления вхождений слов может помочь при подготовке данные для обучения модели нейронной сети.

Python3 convert Unicode String to int representation

https://stackoverflow.com/questions/36680250/pybrain-neural-network-nominal-string-inputs

https://datascience.stackexchange.com/questions/869/neural-network-parse-string-data

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

  • Нет связанных вопросов^_^