我正在使用 Keras 尝试使用一系列事件来预测分数 (0-1) 的向量。
例如,X是由 3 个向量组成的序列,每个向量包含 6 个特征,而y是一个包含 3 个分数的向量:
X
[
[1,2,3,4,5,6], <--- dummy data
[1,2,3,4,5,6],
[1,2,3,4,5,6]
]
y
[0.34 ,0.12 ,0.46] <--- dummy data
Run Code Online (Sandbox Code Playgroud)
我想将问题作为序数分类来解决,因此如果实际值是[0.5,0.5,0.5]预测值,[0.49,0.49,0.49]那么[0.3,0.3,0.3]. 我的原始解决方案是sigmoid在我的最后一层使用激活mse作为损失函数,因此每个输出神经元的输出范围在 0-1 之间:
def get_model(num_samples, num_features, output_size):
opt = Adam()
model = Sequential()
model.add(LSTM(config['lstm_neurons'], activation=config['lstm_activation'], input_shape=(num_samples, num_features)))
model.add(Dropout(config['dropout_rate']))
for layer in config['dense_layers']:
model.add(Dense(layer['neurons'], activation=layer['activation']))
model.add(Dense(output_size, activation='sigmoid'))
model.compile(loss='mse', optimizer=opt, metrics=['mae', 'mse'])
return model
Run Code Online (Sandbox Code Playgroud)
我的目标是了解WeightedKappaLoss的用法并在我的实际数据上实现它。我创建了这个 Colab …