1

我有一些代码来分析和预测数据集。在我的代码中,预测只有 0 或 1,但在我的 data.csv 中,我有 1 到 7 个输出。在详细模式下,输出可以是 0 或 1。如何解决将输出预测为 3,4 等的问题。

这是我的数据集前 10 行

1,2,4,4,1,1,3
1,2,4,4,1,2,1
1,2,4,4,1,3,2
1,2,4,4,2,1,3
1,2,4,4,2,2,2
1,2,4,4,2,3,4
1,2,4,4,3,1,3
1,2,4,4,3,2,2
1,2,4,4,3,3,4
1,2,4,5,1,1,3

下面是代码

from keras.models import Sequential
from keras.layers import Dense
from termcolor import cprint
import numpy


dataset = numpy.loadtxt("C:\\Users\\usr6907\\Desktop\\AIData\\data4.csv", delimiter=",")


X = dataset[:1500,0:6]
Y = dataset[:1500,6]


model = Sequential()
model.add(Dense(30, input_dim=6, init='uniform', activation='relu'))
model.add(Dense(20, init='uniform', activation='relu'))
model.add(Dense(12, init='uniform', activation='relu'))
model.add(Dense(6, init='uniform', activation='relu'))
model.add(Dense(1, init='uniform', activation='sigmoid'))


model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])


model.fit(X, Y, nb_epoch=150, batch_size=10,  verbose=1)


scores = model.evaluate(X, Y)

print("%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))
print("-"*150)


test_verisi = dataset[1500:1728, 0:6]
predictions = model.predict(test_verisi)
dogru = 0
yanlis = 0
toplam_veri = len(dataset[1500:1728,6])

for x, y in zip(predictions, dataset[1500:1728,6]):    
    x = int(numpy.round(x[0]))
    if int(x) == y:
        cprint("Tahmin: "+str(x)+" - Ger�ek De�er: "+str(int(y)), "white", "on_green", attrs=['bold'])
        dogru += 1
    else:
        cprint("Tahmin: "+str(x)+" - Ger�ek De�er: "+str(int(y)), "white", "on_red", attrs=['bold'])
        yanlis += 1

print("\n", "-"*150, "\nISTATISTIK:\nToplam ", toplam_veri, " Veri i�ersinde;\nDo�ru Bilme Say�s�: ", dogru, "\nYanl�� Bilme Say�s�: ",yanlis,
      "\nBa�ar� Y�zdesi: ", str(int(100*dogru/toplam_veri))+"%", sep=' ')
4

0 回答 0