
目录
3.蒙特卡洛Dropout:预测时启用Dropout评估不确定性
一、市场背景:从美股史诗级暴跌看AI预测的必要性
2025年4月3日,美股遭遇自2020年"疫情熔断"以来最惨烈暴跌,纳斯达克指数单日跌幅达5.97%,英伟达市值蒸发超1万亿元人民币,特斯拉单日换手率飙升300%。这场由"特朗普关税新政"引发的系统性风险,让传统技术分析彻底失效。本文将使用**LSTM(长短期记忆网络)**构建能够捕捉非线性波动的预测模型,并附完整可运行的Python代码。
二、数据准备:让机器看懂市场语言
1. 数据采集(以特斯拉TSLA为例)
import yfinance as yf
import pandas as pd
# 获取2010-2025年特斯拉日线数据(包含最新暴跌数据)
df = yf.download('TSLA', start='2010-01-01', end='2025-04-07')
df = df[['Open', 'High', 'Low', 'Close', 'Volume']]
# 添加暴跌标记(当日跌幅超5%记为1)
df['Crash'] = (df['Close'].pct_change() < -0.05).astype(int)
2. 特征工程:超越简单收盘价
# 计算技术指标
def add_technical_features(df):
# 移动平均线
df['MA7'] = df['Close'].rolling(7).mean()
df['MA21'] = df['Close'].rolling(21).mean()
# MACD指标
exp12 = df['Close'].ewm(span=12, adjust=False).mean()
exp26 = df['Close'].ewm(span=26, adjust=False).mean()
df['MACD'] = exp12 - exp26
df['Signal'] = df['MACD'].ewm(span=9, adjust=False).mean()
# 波动率指标
df['Volatility'] = df['Close'].rolling(20).std()
return df
df = add_technical_features(df).dropna()
3. 数据预处理:让模型更好学习
from sklearn.preprocessing import MinMaxScaler
import numpy as np
# 特征归一化(保留暴跌标记不归一化)
features = ['Open', 'High', 'Low', 'Close', 'Volume', 'MA7', 'MA21', 'MACD', 'Signal', 'Volatility']
scaler = MinMaxScaler(feature_range=(0,1))
scaled_features = scaler.fit_transform(df[features])
# 构造时间窗口(用60天数据预测第61天)
X, y = [], []
window_size = 60
for i in range(window_size, len(scaled_features)):
X.append(scaled_features[i-window_size:i])
y.append(scaled_

&spm=1001.2101.3001.5002&articleId=147048160&d=1&t=3&u=838e6315463b42e092c7d427f9a7504d)
935

被折叠的 条评论
为什么被折叠?



