gpt4 book ai didi

python - 提高 DNN 模型的准确性

转载 作者:行者123 更新时间:2023-11-30 09:29:06 26 4
gpt4 key购买 nike

我有一个数据集,用于训练 DNN 模型。

我的数据集是这样的(单个示例行):

hash          name  surname  datetime                  total  nb_success  nb_loss 
axBBdnn78 aaa bbb 2016-01-01 00:01:26 50.00 1 2

我替换了 header 名称( secret 性),但它们都很重要。我尝试预测的值是 state 列(存在于数据集上),它可以采用 2 个值:“ok”和“nok”。

通过对数据集进行一些准备并使用以下代码对字符串进行一次编码:

data = data.select_dtypes(exclude=['number']).apply(LabelEncoder().fit_transform).join(data.select_dtypes(include=['number']))

然后我得到了最终的训练集,如下所示:

hash  name  surname  datetime  total  nb_success  nb_loss 
1696 4 37 01 50.00 1 2

然后我使用以下 Keras DNN 模型:

model = Sequential()
model.add(Dense(16, input_shape=(7,)))
model.add(Activation('relu'))
# model.add(Dropout(0.5))
model.add(Activation('relu'))
model.add(Dense(1)) # 2 outputs possible (ok or nok)
model.add(Activation('relu'))
model.compile(loss='mse', optimizer='sgd', metrics=['accuracy'])

但是,我的损失并没有减少,准确率也没有增加。

5000/5000 [==============================] - 0s - loss: 0.5070 - acc: 0.4930 - val_loss: 0.4900 - val_acc: 0.5100
Epoch 2/10
5000/5000 [==============================] - 0s - loss: 0.5054 - acc: 0.4946 - val_loss: 0.5100 - val_acc: 0.4900
Epoch 3/10
5000/5000 [==============================] - 0s - loss: 0.5112 - acc: 0.4888 - val_loss: 0.4140 - val_acc: 0.5860
Epoch 4/10
5000/5000 [==============================] - 0s - loss: 0.4900 - acc: 0.5100 - val_loss: 0.4660 - val_acc: 0.5340

我尝试了其他几个损失函数以及其他优化器,但每次我只能达到大约 50% 的准确率(因此,由于输出是 2 个类,所以没有任何结果)。

我有两个问题:

  1. 我的单一编码方法正确吗?
  2. 模型实际训练/收敛时我错过了哪一部分?

最佳答案

  1. 您已对数据进行标签编码,但未对其进行 one-hot 编码。对于每个功能中的每个标签,您需要创建一个二进制标签。

例如:如果您有 4 个名称,则需要 3 个二进制标签来表示 4 种可能的状态。

您可以使用 Scikit-learn 的 OneHotEncoder:http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html

原因之一是现在名称 #37 比名称 #36 或 #10 或 #5 “更多”或“更高”,这没有任何意义(因为这些是分类值而不是连续值)的)

  • 在最后一个 Dense 层上,您需要使用 sigmoid 作为激活函数。
  • 还有一件事:您可能需要增加模型大小。您的代码中有两行 model.add(Activation('relu'))

    关于python - 提高 DNN 模型的准确性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44758894/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com