Exemplo n.º 1
0
def test():
    DS = loadPybrainData()
    train, test = DS.splitWithProportion(0.1)
    fnn = joblib.load(PKL)
    # 预测test情况
    output = fnn.activateOnDataset(test)
    # ann.activate(onedata)可以只对一个数据进行预测
    outputs = []
    target = []
    count = 0
    for out in output:
        outs = out.argmax()
        outputs.append(outs)
    for tar in test['target']:
        ta = tar.argmax()
        target.append(ta)
    for i in range(0, len(target)):
        if outputs[i] == target[i]:
            count += 1

    right = count / len(target)  #单个字符正确率
    rate = (right**4)
    print("分类正确率是:%.4f%%" % (rate * 100))
    v = Validator()
    print(u'均方和差为:', v.MSE(output,
                           test['target']))  #计算test的原始值和预测值的均方差和,两者格式必须相等
Exemplo n.º 2
0
def nn():
    DS = ClassificationDataSet(28, 1, nb_classes=4)
    train = pickle.load(open('train_extracted_df.pkl', 'r'))
    y = train["median_relevance"]
    kfold_train_test = pickle.load(open('kfold_train_test.pkl', 'r'))
    features = ['query_tokens_in_title', 'query_tokens_in_description', 'percent_query_tokens_in_description', 'percent_query_tokens_in_title', 'query_length', 'description_length', 'title_length', 'two_grams_in_q_and_t', 'two_grams_in_q_and_d', 'q_mean_of_training_relevance', 'q_median_of_training_relevance', 'avg_relevance_variance', 'average_title_1gram_similarity_1', 'average_title_2gram_similarity_1', 'average_title_1gram_similarity_2', 'average_title_2gram_similarity_2', 'average_title_1gram_similarity_3', 'average_title_2gram_similarity_3', 'average_title_1gram_similarity_4', 'average_title_2gram_similarity_4', 'average_description_1gram_similarity_1', 'average_description_2gram_similarity_1', 'average_description_2gram_similarity_2', 'average_description_1gram_similarity_2', 'average_description_1gram_similarity_3', 'average_description_2gram_similarity_3', 'average_description_1gram_similarity_4', 'average_description_2gram_similarity_4']
    train = train[features]
    for i in range(len(y)):
        DS.addSample(train.values[i],y[i])
     X = DS['input']
    Y = DS['target']
    dataTrain, dataTest = DS.splitWithProportion(0.8)
    xTrain, yTrain = dataTrain['input'], dataTrain['target']
    xTest, yTest = dataTest['input'], dataTest['target']
    #fnn = RecurrentNetwork()
    fnn = FeedForwardNetwork()
    #fnn=buildNetwork(1,40,1,hiddenclass=TanhLayer, bias=True, outclass=SoftmaxLayer)
    #fnn=buildNetwork(1,40,1,hiddenclass=LSTMLayer, bias=True, outclass=SoftmaxLayer)
    inLayer = LinearLayer(28, name='inLayer')
    hiddenLayer = SigmoidLayer(40, name='hiddenLayer0')
    outLayer =LinearLayer(4, name='outLayer')

    fnn.addInputModule(inLayer)
    fnn.addModule(hiddenLayer)
    fnn.addOutputModule(outLayer)

    in_to_hidden = FullConnection(inLayer, hiddenLayer)
    hidden_to_out = FullConnection(hiddenLayer, outLayer)

    fnn.addConnection(in_to_hidden)
    fnn.addConnection(hidden_to_out)
    fnn.sortModules()

    trainer = BackpropTrainer(fnn, DS, verbose = True, learningrate=0.01)
    #trainer.trainUntilConvergence(maxEpochs=1000)
    trainer.trainEpochs(epochs=5)
    prediction = fnn.activateOnDataset(dataTest)
    out=[]
    total_score = 0
    for i in prediction:
        class_index = max(xrange(len(i)), key=i.__getitem__)
        out.append(class_index+1)
        print str((class_index+1-yTest[class_index+1])/yTest[class_index+1])
    df=pd.DataFrame(out,columns=['predict'])
    df['real']=dataTest['target']
    coun = 0
    for i,row in df.iterrows():
        if  row[0]== row[1]:
            coun+=1
    print coun
    print "df['real']", df['real'],type(df['real'][0])
    print "df['predict']",df['predict'],type(df['predict'][0])
    print df

    v=Validator()
    #v.MSE(out,dataTest['target'])
    print "out",out
    print "dataTest['target']",dataTest['target']
Exemplo n.º 3
0
        pylab.plot(tsts['input'], ctsts, c='g')

    pylab.xlabel('x')
    pylab.ylabel('y')
    pylab.title('Neuron Number:' + str(nneuron))
    pylab.grid(True)
    plotname = os.path.join(plotdir, ('jpq2layers_plot' + str(iter)))
    pylab.savefig(plotname)


# set-up the neural network
nneuron = 5
mom = 0.98
netname = "LSL-" + str(nneuron) + "-" + str(mom)
mv = ModuleValidator()
v = Validator()

#create the test DataSet
x = numpy.arange(0.0, 1.0 + 0.01, 0.01)
s = 0.5 + 0.4 * numpy.sin(2 * numpy.pi * x)
tsts = SupervisedDataSet(1, 1)
tsts.setField('input', x.reshape(len(x), 1))
tsts.setField('target', s.reshape(len(s), 1))
#read the train DataSet from file
trndata = SupervisedDataSet.loadFromFile(os.path.join(os.getcwd(), 'trndata'))

myneuralnet = os.path.join(os.getcwd(), 'myneuralnet.xml')
if os.path.isfile(myneuralnet):
    n = NetworkReader.readFrom(myneuralnet, name=netname)
    #calculate the test DataSet based on the trained Neural Network
    ctsts = mv.calculateModuleOutput(n, tsts)