我有一些代码来分析和预测数据集。在我的代码中,预测只有 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=' ')