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

关于合适回归模型选择及sigmoid建模准确率为0的技术求助

常见问题排查点

准确率为0基本都是基础逻辑错误,和模型本身无关,先逐一核对:

  • 自变量因变量传反:你提到数据集包含5个因变量、1个自变量,常规预测任务是输入自变量、输出因变量,若拆分x、y时把两者位置写反,模型完全无法学习映射关系,会直接输出全错结果
  • 标签不符合sigmoid输出要求:sigmoid输出值范围是[0,1],如果是分类任务,标签必须编码为0/1格式;如果是回归任务,因变量范围不在[0,1]区间的话不能直接用sigmoid做输出层激活
  • 数据未做标准化:输入值绝对值过大时sigmoid会进入梯度饱和区,参数无法更新,模型会一直输出固定初始值
  • 阈值/评估逻辑错误:如果是自己手写sigmoid模型,输出概率转类别时的阈值写反(比如正类标签是1,你把概率小于0.5的判为1),也会出现全错
  • 训练参数错误:学习率过大导致震荡不收敛、迭代轮次太少参数没更新到有效状态,都会让模型输出完全随机甚至全错
可直接运行的基准预测代码

以下代码基于sigmoid激活的逻辑回归实现,适配单自变量输入、多/单因变量二分类场景,替换你自己的数据集路径和列名即可运行:

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.multioutput import MultiOutputClassifier
from sklearn.metrics import accuracy_score

# 加载数据集,替换为你本地的数据集路径
df = pd.read_csv("your_dataset_path.csv")

# 拆分特征和标签,务必替换为你自己表格里的实际列名
X = df[["your_independent_variable_column"]].values  # 1个自变量
y = df[["dependent_var_1", "dependent_var_2", "dependent_var_3", "dependent_var_4", "dependent_var_5"]].values  # 5个因变量,单标签任务只取1列即可

# 划分训练集、测试集
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42,
    stratify=y if y.ndim == 1 else None
)

# 特征标准化,必须做,避免sigmoid梯度饱和
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

# 初始化模型:底层用sigmoid激活做二分类,多标签任务用MultiOutputClassifier包装
model = MultiOutputClassifier(
    LogisticRegression(max_iter=1000, random_state=42)
)
model.fit(X_train_scaled, y_train)

# 预测并计算准确率
y_pred = model.predict(X_test_scaled)
test_acc = accuracy_score(y_test, y_pred)
print(f"测试集准确率:{test_acc:.4f}")

# 新数据预测示例
new_sample = np.array([[new_input_value]])  # 替换为待预测的自变量值
new_sample_scaled = scaler.transform(new_sample)
print(f"新样本预测结果:{model.predict(new_sample_scaled)}")
调试建议
  • 先跑通上述基准代码,确认数据读取、x/y拆分、标签编码环节没有问题,再调试你自己手写的sigmoid模型,不建议一开始就直接写自定义模型,很容易出现反向传播、梯度计算的低级错误
  • 如果跑基准代码准确率还是为0,先打印训练集前10个标签、模型对训练集前10个样本的预测结果,直接对比就能定位是标签反了、编码错了还是模型没训练
  • 不需要发邮箱传代码和数据集,直接把你现有代码片段、数据集前5行样例、标签取值范围补充到问题里,公开排查效率更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 03:54:32