我正在使用以下代码学习我的数据集。
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
np.random.seed(5)
dataset = np.loadtxt('path to dataset', delimeter=',')
x_train=dataset[:700,0:3]
y_train=dataset[:700,3]
x_test=dataset[700:,0:3]
y_test=dataset[700:,3]
model =Sequential()
model.add(Dense(12, input_dim=3, activate='relu'))
model.add(Dense(8, activate='relu'))
model.add(Dense(1, activate='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer = 'adam', metrics = ['acuuracy'])
model.fit(x_train,y_train,epochs = 100, batch_size =24)
score = model.evaluate(x_test,y_test)
以上学习数据由三个属性和两个类组成。
我想使用上面学习的模型来确定该类不包含的数据。
例如,学习数据是(1,34,23,0)。
我在输入中输入的数据是(3,56,33),所以我想对类进行分类
将学习的模型与这些属性信息一起使用。
如果你能给我一个具体的方法,我将非常感激。
答案 0 :(得分:1)
您可以使用model.predict()函数来确定任何新数据点的类。在你的情况下,如果你想预测类(3,56,33),你可以在拟合模型后写这个,
model.fit(x_train,y_train,epochs = 100, batch_size =24)
prediction_prob = model.predict(np.array([3,56,33]))
由于您在最后一层使用sigmoid激活,因此输出将是0到1之间的单个概率值。然后,您可以对预测进行阈值处理以获得最终的类值。
prediction_prob = model.predict(np.array([3,56,33]))
class_name = int(round(prediction_prob[0]))
print(class_name)
请记住,model.predict()将numpy数组作为输入并输出另一个numpy预测数组。