你说得很有道理:在处理股价这类回归问题(连续值预测)时,sigmoid、softmax、tanh 这些非线性函数通常不是首选的变换方式**。
🚫 为什么这些激活函数不适合直接处理股价:
| 函数 | 范围 | 用途 | 为什么不适合预测股价 |
|---|---|---|---|
sigmoid | (0, 1) | 二分类/概率输出 | 会把数值压缩到 (0,1),丢失价格尺度信息 |
tanh | (-1, 1) | 中心对称/情绪类模型 | 同样压缩幅度大,难以还原价格本身 |
softmax | 所有值加和为1 | 多分类,输出概率分布 | 完全不适合回归,输出的是类别分布概率 |
✅ 那股价处理用什么?
预测股价属于回归问题,目标是还原一个真实的连续值。
推荐方法:
| 方法 | 说明 |
|---|---|
| 不加激活函数 | 回归模型最后一层通常直接输出线性值 |
| 标准化/归一化输入 | 比如 MinMaxScaler 或 StandardScaler |
| log return | 对数收益率,适合处理价格的相对变化 |
🎯 所以应该怎么做?
- 输入变换:
- 可以使用
log return/MinMaxScaler/StandardScaler
- 可以使用
- 输出层:
- 用
nn.Linear(...)输出连续值,不加激活
- 用
- loss 函数:
- 使用
MSELoss,MAE,HuberLoss等回归损失
- 使用