You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为4维输入输出数据集建模预测y_test,现有全连接模型调整遇阻

4分类预测建模优化方案

你的任务属于4分类任务,标签采用独热编码格式,现有模型配置不匹配分类任务要求,可按以下步骤调整:

  • 输出层配置修正:输出层新增softmax激活函数,输出4个类别的概率,概率和为1,是转换为你需要的独热格式的基础
  • 损失函数替换:原MSE损失适用于回归任务,分类场景下替换为categorical_crossentropy,适配独热编码的标签格式
  • 训练&结构优化:输入特征仅4维,无需过多隐藏层,可简化结构降低过拟合风险;batch_size设为1会导致训练波动大、效率低,调整为32或64更合理
  • 预测后处理:模型预测输出为4个类别的概率,取概率最大值对应的位置,转换为独热编码即可得到(1,0,0,0)、(0,1,0,0)类的预期格式
from numpy import array
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.callbacks import EarlyStopping
import sys
import pandas as pd

es = EarlyStopping(monitor='val_loss', mode='min', verbose=1, patience=10)

# 此处保持你原有数据加载逻辑不变
X_train, y_train, X_valid, y_valid, X_test, y_test, tr_set_size = loaddata(filename)

# 调整后的模型结构
model = Sequential()
model.add(Dense(32, activation='relu', input_shape=(X_train.shape[1],)))
model.add(Dense(16, activation='relu'))
model.add(Dense(4, activation='softmax')) # 新增softmax输出分类概率

model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])

hist = model.fit(X_train, y_train, epochs=100, batch_size=32, verbose=1, validation_data=(X_valid, y_valid), callbacks=[es])

result = model.evaluate(X_test, y_test)
prediction_prob = model.predict(X_test)
# 将概率转为独热格式的预测结果
prediction = np.eye(4)[np.argmax(prediction_prob, axis=1)]
print(prediction)

内容的提问来源于stack exchange,提问作者BeTree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 14:24:03