Keras 模型优化

问题描述 投票:0回答:1

我正在尝试使用 Google

colab
tensorflow
优化我的第一个 AI。

我有以下

dataset
示例:

分类 特点1 特点2
1 -1.1 0.22
1 0.333 -0.4
4 -0.55 0.6
  • 类别是从
    1
    4
    的值。该数据集包含每种内容的 50%。
  • Features 数组的值是真实主题参数与平均值之间的比率

示例:如果每一行都是学生数据。而

Feature 1
就是考试分数。值
-0.1
表示当前学生的成绩
10% less
高于其他学生(平均)。

特征值可以大于 1(值 1.2 表示 +120%)。


我的模型的目标是找到我们应该关心的学生。 所以基本上,我需要最大化 1 类或 2 类的

true
预测结果。而 3 类和 4 类的预测可能不那么准确。

  • 更好的是:如果真实类别是
    1
    ,但预测是
    3
    -
    4
  • 而不是:真实类别
    3
    -
    4
    被预测为
    1
    2

我有以下型号:

model = tf.keras.Sequential([
    tf.keras.layers.Dense(512, activation='tanh', input_shape=(82, )),
    tf.keras.layers.Dense(64, activation='tanh'),
    tf.keras.layers.Dense(8, activation='relu'),
    tf.keras.layers.Dense(4, activation='softmax')
])

model.compile(loss='sparse_categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

model.fit(x=features, y=labels, shuffle=True, validation_split=0.33, epochs=1)

我的问题是:

  1. 如何配置指标来计算
    class 1
  2. 的积极预测
  3. 输出神经元的数量是否应该始终与类数量相同?让+1个神经元在这里积累“噪音”数据来优化类别
    1
    2
    准确度预测是否有意义?
tensorflow keras deep-learning neural-network
1个回答
0
投票

对于问题1:

您可以在训练期间将其添加为指标,并指定

class_id = your_class_of_interest

 tf.keras.metrics.Precision(
    thresholds=None, top_k=None, class_id=None, name=None, dtype=None
)

对于问题2:

神经元的数量始终等于您尝试预测的标签的数量。如果您认为某些数据存在特定的继承噪声,您可以修改数据集,在示例中添加第五个标签并分配这些特定样本。

© www.soinside.com 2019 - 2024. All rights reserved.