我一直在努力使用pybrain创建一个神经网络,并且由于某种原因训练后传播它无法训练我的网络.我在out维度中使用两个以上类的任何数据集都会将我的所有观察结果都集中到一个类别中.有谁知道为什么会这样?代码和一些输出如下.
import scipy
import numpy
from pybrain.datasets import ClassificationDataSet
from pybrain.utilities import percentError
from pybrain.tools.shortcuts import buildNetwork
from pybrain.supervised.trainers import BackpropTrainer
from pybrain.structure.modules import SoftmaxLayer
from sklearn.metrics import precision_score,recall_score,confusion_matrix
def makeDataset(CSVfile,ClassFile):
#import the features to data, and their classes to dataClasses
data=numpy.genfromtxt(CSVfile,delimiter=",")
classes=numpy.genfromtxt(ClassFile,delimiter=",")
print("Building the dataset from CSV files")
#Initialize an empty Pybrain dataset, and populate it
alldata=ClassificationDataSet(len(data[0]),1,nb_classes=3)
for count in range(len((classes))):
alldata.addSample(data[count],[classes[count]])
return alldata
def makeNeuralNet(alldata,trainingPercent=.3,hiddenNeurons=5,trainingIterations=20):
#Divide the data set into training and non-training data
testData, trainData = alldata.splitWithProportion(trainingPercent) …Run Code Online (Sandbox Code Playgroud)