You need to enable JavaScript to run this app. Keras基于FIFA19数据集训练模型时loss为nan、准确率为0问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Keras基于FIFA19数据集训练模型时loss为nan、准确率为0问题求助

问题排查及解决方案

1. 空值处理逻辑失效

data.dropna().replace(np.nan, 0) 未赋值回原data变量,pandas的此类操作默认返回新DataFrame,原数据集的空值没有被处理,训练时输入空值会直接导致损失为nan。
修正方式:将该行改为 data = data.dropna().replace(np.nan, 0)

2. 归一化逻辑错误

你使用的归一化公式存在两处问题:

  • 公式写反:常规min-max归一化应该是 (样本值 - 最小值)/(最大值 - 最小值),你写为了减最大值,会导致所有输入特征为非正数,后续经过ReLU激活时容易出现神经元坏死、梯度消失的问题
  • 除零风险:如果某特征的最大值等于最小值,分母为0会生成inf值,输入模型后直接导致损失为nan
    修正方式:替换归一化逻辑,也可以直接用sklearn的MinMaxScaler避免手动计算出错:
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

3. 评估指标选择错误

accuracy是分类任务专属的评估指标,你当前做的是连续值预测的回归任务,预测值几乎不可能和真实标签完全相等,所以accuracy恒为0属于正常现象。
修正方式:编译模型时更换为回归类指标,比如metrics=["mae"]

4. 输出层激活函数不合理

回归任务预测的是无边界的连续值,输出层不需要加ReLU激活函数,否则会强制截断负输出,影响拟合效果。
修正方式:将输出层改为 keras.layers.Dense(1)


修正后可运行的核心代码片段

# 数据清洗部分修正
data = pd.read_csv("./data.csv")
data = data.dropna().replace(np.nan, 0) # 新增赋值操作
data.columns = [x.lower() for x in data.columns]
data = data.select_dtypes(include="number").drop(columns = ["id", "unnamed: 0"], axis=1)

y = data["overall"]
X = data[["crossing", "headingaccuracy", "standingtackle", "gkreflexes"]]
X_train, X_test, y_train, y_test = train_test_split(X,y, random_state=45)

# 归一化修正
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
y_train = np.array(y_train, dtype = 'float32')

# 模型部分修正
model = keras.models.Sequential([
    keras.layers.Dense(4, input_shape=(4,), activation='relu'), # 给第一层添加激活函数优化拟合效果
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(1) # 移除输出层的relu激活
])
# 更换评估指标,优化器替换为Adam降低调参难度
model.compile(optimizer="adam", loss="mean_squared_error", metrics=["mae"])
model.fit(X_train, y_train, epochs=20, validation_split=0.2)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 21:06:02