我有一个数据集(有10000行):
0 1 2 3 4 ... 53 54 55 56 57 0 10309 0 402.64 263.65 134.99 ... 0.39 263.65 134.99 401.833548 0 1 10310 0 398.64 263.65 134.99 ... 0.39 263.65 134.99 401.833548 0 2 10311 0 398.64 263.65 134.99 ... 0.39 263.65 134.99 401.833548 0 3 10312 0 398.64 263.65 134.99 ... 0.39 263.65 134.99 401.833548 0 4 10313 0 403.64 263.65 134.99 ... 0.39 263.65 134.99 401.833548 0
我必须建立一个神经网络来预测第1列的值(可以是0或1)。
我创建了一个两层神经网络。
model = Sequential()
model.add(Dense(128, activation='relu', input_shape=(x_train.shape[1],)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse', metrics=['mae'])
得到一个输出:
[[-1.57625228e-03 1.61733944e-04 -1.49833616e-02 1.79843791e-03 -2.96636093e-02 -6.63164817e-03 -9.47585609e-03 5.64101897e-03 5.64101897e-03 -1.29007865e-02 5.64101897e-03 3.58308945e-03 -9.53195766e-02 -1.32898521e-02 5.22762071e-04 4.18396108e-03 -2.88559217e-02 -2.44860705e-02 -1.18804779e-02 7.53945857e-02 -2.02486850e-03 -2.17353478e-02 -7.60783181e-02 -5.02919555e-02 7.87826702e-02 -3.26374844e-02 6.09703511e-02 3.32313627e-02 1.42815514e-02 3.70703414e-02 5.64101897e-03 9.96760353e-02 -2.02211499e-01 -1.06276069e-02 -1.71094477e-01 6.36711642e-02 -9.27114673e-03 -8.05514529e-02 -1.24936230e-01 -9.09972191e-02 -9.61129889e-02 -9.41279978e-02 -9.14852545e-02 -1.23843096e-01 -4.96111661e-02 -7.75326695e-03 -3.41935158e-02 -6.24957904e-02 -3.43749672e-03 -6.50173202e-02 7.04494305e-04 -6.82023242e-02 -6.80137798e-02 -5.75559661e-02 3.78455073e-02 -4.41458300e-02 -3.51775438e-02 -1.93608720e-02 -7.32456967e-02 -5.12493961e-03 -3.92356515e-02 -3.91514003e-02 -5.93186915e-03 -7.00767413e-02 -4.91175205e-02 -3.92843783e-02 -1.70611106e-02 -6.61014542e-02 -1.65037028e-02 -3.93037796e-02 -3.91289964e-02 -1.61894206e-02 -3.40123251e-02 -2.89186090e-03 3.31846252e-03 -5.55966273e-02 3.67479622e-02 -6.71871677e-02 -1.06477588e-01 -1.19096853e-01 3.82361114e-02 -5.07725924e-02 3.69399088e-03 4.46796566e-02 -2.69809160e-02 3.70123982e-02 1.08064897e-03 -3.58955748e-03 8.01469535e-02 7.87181482e-02 -4.26483620e-03 4.88822088e-02 1.59037113e-02 5.56310862e-02 1.58798099e-02 1.58805288e-02 1.58808343e-02 -2.12251153e-02 1.56732872e-02 1.39700407e-02]]
但是我必须得到类似的东西:
0 0 0 0 1 0 0 0 0 ... 0 0 0 0 1 0 0 0 1
答案 0 :(得分:0)
对于二进制结果,您需要S型激活函数。 Softmax提供介于(0,1)之间的数字,可以轻松将其转换为二进制预测。
如果您的分类问题有两个以上的类,则最后一层需要具有与类数一样多的神经元。激活函数仍然是S形的,但是您需要在最后一层的结果之上使用softmax来获得实际的类作为预测
答案 1 :(得分:0)
您的输出很好。用于二进制分类的神经网络不会返回“干净”的整数输出。一个好的二进制分类器是一个可以预测此一键编码矢量的模型:
[0, 1]
为:
[0.00001, 0.99999]
如果在底部放置 softmax 层,则可以将这些值解释为“概率为0或1”。