PyBrain - Trabalhando com conjuntos de dados

Conjuntos de dados são dados de entrada a serem fornecidos para testar, validar e treinar redes. O tipo de conjunto de dados a ser usado depende das tarefas que faremos com o aprendizado de máquina. Neste capítulo, vamos dar uma olhada no seguinte -

  • Criando conjunto de dados
  • Adicionando dados ao conjunto de dados

Vamos primeiro aprender como criar um conjunto de dados e testar o conjunto de dados com a entrada fornecida.

Criando conjunto de dados

Para criar um conjunto de dados, precisamos usar o pacote de conjunto de dados pybrain: pybrain.datasets.

Pybrain suporta classes de conjuntos de dados como SupervisedDataset, SequentialDataset, ClassificationDataSet. Vamos fazer uso deSupervisedDataset , para criar nosso conjunto de dados. O conjunto de dados a ser usado depende da tarefa de aprendizado de máquina que o usuário está tentando implementar. O conjunto de dados supervised é o mais simples e vamos usar o mesmo aqui.

UMA SupervisedDataset datasetprecisa de entrada e destino de parâmetros. Considere uma tabela de verdade XOR, conforme mostrado abaixo -

UMA B A XOR B
0 0 0
0 1 1
1 0 1
1 1 0

As entradas fornecidas são como uma matriz bidimensional e obtemos 1 saída. Portanto, aqui a entrada torna-se o tamanho e o destino é a saída que é 1. Portanto, as entradas que irão para o nosso conjunto de dados serão 2,1.

createdataset.py

from pybrain.datasets import SupervisedDataSet
sds = SupervisedDataSet(2, 1)
print(sds)

Isso é o que obtemos quando executamos o código acima python createdataset.py -

C:\pybrain\pybrain\src>python createdataset.py
input: dim(0, 2)
[]
target: dim(0, 1)
[]

Ele exibe a entrada de tamanho 2 e destino de tamanho 1 conforme mostrado acima.

Adicionando dados ao conjunto de dados

Vamos agora adicionar os dados de amostra ao conjunto de dados.

createdataset.py

from pybrain.datasets import SupervisedDataSet
sds = SupervisedDataSet(2, 1)
xorModel = [
   [(0,0), (0,)],
   [(0,1), (1,)],
   [(1,0), (1,)],
   [(1,1), (0,)],
]
for input, target in xorModel:
sds.addSample(input, target)
print("Input is:")
print(sds['input'])
print("\nTarget is:")
print(sds['target'])

Criamos uma matriz XORModel conforme mostrado abaixo -

xorModel = [
   [(0,0), (0,)],
   [(0,1), (1,)],
   [(1,0), (1,)],
   [(1,1), (0,)],
]

Para adicionar dados ao conjunto de dados, estamos usando o método addSample () que recebe a entrada e o destino.

Para adicionar dados ao addSample, faremos um loop pela matriz xorModel conforme mostrado abaixo -

for input, target in xorModel:
   sds.addSample(input, target)

Após a execução, o seguinte é a saída que obtemos -

python createdataset.py

C:\pybrain\pybrain\src>python createdataset.py
Input is:
[[0. 0.]
[0. 1.]
[1. 0.]
[1. 1.]]
Target is:
[[0.]
[1.]
[1.]
[0.]]

Você pode obter os detalhes de entrada e destino do conjunto de dados criado simplesmente usando o índice de entrada e destino conforme mostrado abaixo -

print(sds['input'])
print(sds[‘target’])