我有一群健康和患病的患者。患者的数据集包含他的红细胞和白细胞水平。通过这种简单的经验,我想预测患者是否生病。
我试图训练一个模型,该模型具有两个分别由16个中子层和1个中子层组成的模型,带有和不带有平坦层都可以测试,但是它不起作用。我在展平层上收到错误“ ValueError:检查输入时出错:期望的flatten_input具有3个维,但获得形状为(200,2)的数组”,而没有展平层时出现以下错误“ ValueError:检查时出错”输入:期望flatten_input具有3个维度,但具有形状为(200,2)的数组”,我不明白为什么。
train_data_set_sick = np.random.randn(size, 2) + np.array([-2, -2])
train_data_set_healthy = np.random.randn(size, 2) + np.array([2, 2])
test_data_set_sick = np.random.randn(size, 2) + np.array([-2, -2])
test_data_set_healthy = np.random.randn(size, 2) + np.array([2, 2])
#print(data_set_sick, data_set_healthy)
plt.plot(train_data_set_sick[:, 0], train_data_set_sick[:, 1], 'ro')
plt.plot(train_data_set_healthy[:, 0], train_data_set_healthy[:, 1],'bo')
plt.show()
train_data_set = np.concatenate((train_data_set_sick, train_data_set_healthy))
train_data_label = np.concatenate((np.full(shape=size, fill_value=0, dtype=np.int), np.full(shape=size, fill_value=1, dtype=np.int)))
test_data_set = np.concatenate((test_data_set_sick, test_data_set_healthy))
test_data_label = np.concatenate((np.full(shape=size, fill_value=0, dtype=np.int), np.full(shape=size, fill_value=1, dtype=np.int)))
#print(train_data_set, train_data_label)
model = keras.Sequential()
#model.add(keras.layers.Flatten(input_shape=(size, 2)))
model.add(keras.layers.Dense(16, activation="relu"))
model.add(keras.layers.Dense(1, activation="sigmoid"))
model.compile(optimizer=tf.train.AdamOptimizer(),
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(train_data_set, train_data_label, epochs=5)
我希望对患者的健康状况有一个二元的预测。