首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >预测大小为40的二进制向量

预测大小为40的二进制向量
EN

Data Science用户
提问于 2021-10-01 13:58:53
回答 1查看 116关注 0票数 1

我有一个形状数据集(2600,95),前55列是特征,40列是标签。

标签是一个大小为10x4的二进制矩阵,它是扁平的,特征是实值数字,范围是(0.0009,0.6)。目标是用DNN预测这个向量。

以下是模型:

代码语言:javascript
复制
model = Sequential()
model.add(Dense(128, activation='tanh', input_shape=(55,)))
model.add(Dense(64, activation='tanh'))
model.add(Dense(40, activation='sigmoid'))
optimizer = keras.optimizers.Adam(learning_rate=0.001)
model.compile(loss='binary_crossentropy',
              optimizer=optimizer,
              metrics=['accuracy'])
history = model.fit(X_train, y_train,epochs=50, batch_size=4,validation_data=(X_test, y_test), verbose=1)

但结果并不令人满意

几个问题:

我是在为问题建模吗?

我应该使用什么样的架构?

什么损失函数更有意义?

我还应该考虑什么?

EN

回答 1

Data Science用户

发布于 2021-10-01 15:10:13

一般来说,我不认为你的方法有什么大问题。不过,你可以做一些修改。

首先,您可能需要缩放您的数据。您可以使用0-1缩放或-1,1,应该没有多大关系。当然,每一列都需要单独缩放。我假设你的列之间没有关系,如果有一个特定的结构,你最好在完全连接的层之前使用卷积: CNN不仅用于图像,还可以提取任何类型的具有“特征”的数据。但是,如果不知道列的具体情况,就不可能说出任何话。

我还建议你在你的模型中包括辍学层。您说您尝试过ReLU,但是您可能希望在缩放和添加退出后再次检查。同时也给了ReLU的其他变体一个机会: leakyReLU,ELU,SiLU等。

最后,确保您的模型没有比您的数据具有更多的可训练参数。在我看来,你的模型太大了,不适合你的数据。您可以使用model.summary()来获取参数的计数。

票数 0
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/102691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档