Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -18,6 +18,8 @@ from joblib import Parallel, delayed
|
|
| 18 |
|
| 19 |
# 忽略所有警告,但这可能不会抑制所有来自底层库的FutureWarning
|
| 20 |
warnings.filterwarnings('ignore')
|
|
|
|
|
|
|
| 21 |
|
| 22 |
# --- 在Hugging Face上配置中文字体 ---
|
| 23 |
# 确保你已经上传了 SimHei.ttf 字体文件
|
|
@@ -90,12 +92,14 @@ def run_analysis(file_obj):
|
|
| 90 |
# 为了演示,我们仍然运行一个简化版的窗口评估
|
| 91 |
ts_values = df['Value'].values
|
| 92 |
window_sizes = range(100, 181, 20) # 减少评估点,评估100到180天窗口,步长20
|
|
|
|
|
|
|
| 93 |
# 并行评估不同窗口大小下的模型性能
|
| 94 |
results = Parallel(n_jobs=-1)(delayed(evaluate_window)(ws, ts_values) for ws in window_sizes)
|
| 95 |
results_df = pd.DataFrame(results)
|
| 96 |
# 确定最优窗口大小,如果结果为空则默认为120
|
| 97 |
OPTIMAL_WINDOW = int(results_df.loc[results_df['mae'].idxmin()]['window_size']) if not results_df.empty else 120
|
| 98 |
-
print(f"
|
| 99 |
|
| 100 |
# ----- 5. 模型预测 -----
|
| 101 |
print("----- 5. 模型预测 -----")
|
|
@@ -211,6 +215,7 @@ def evaluate_window(window_size, ts_values):
|
|
| 211 |
if window_size >= n:
|
| 212 |
return {'mae': float('inf'), 'rmse': float('inf')}
|
| 213 |
|
|
|
|
| 214 |
# 在滑动窗口上训练auto_arima模型并进行单步预测
|
| 215 |
errors = []
|
| 216 |
for i in range(n - window_size - 1):
|
|
|
|
| 18 |
|
| 19 |
# 忽略所有警告,但这可能不会抑制所有来自底层库的FutureWarning
|
| 20 |
warnings.filterwarnings('ignore')
|
| 21 |
+
# 更精确地忽略来自sklearn.utils.deprecation的FutureWarning
|
| 22 |
+
warnings.filterwarnings("ignore", category=FutureWarning, module='sklearn.utils.deprecation')
|
| 23 |
|
| 24 |
# --- 在Hugging Face上配置中文字体 ---
|
| 25 |
# 确保你已经上传了 SimHei.ttf 字体文件
|
|
|
|
| 92 |
# 为了演示,我们仍然运行一个简化版的窗口评估
|
| 93 |
ts_values = df['Value'].values
|
| 94 |
window_sizes = range(100, 181, 20) # 减少评估点,评估100到180天窗口,步长20
|
| 95 |
+
|
| 96 |
+
print(f"开始评估 {len(window_sizes)} 个滑动窗口...")
|
| 97 |
# 并行评估不同窗口大小下的模型性能
|
| 98 |
results = Parallel(n_jobs=-1)(delayed(evaluate_window)(ws, ts_values) for ws in window_sizes)
|
| 99 |
results_df = pd.DataFrame(results)
|
| 100 |
# 确定最优窗口大小,如果结果为空则默认为120
|
| 101 |
OPTIMAL_WINDOW = int(results_df.loc[results_df['mae'].idxmin()]['window_size']) if not results_df.empty else 120
|
| 102 |
+
print(f"所有滑动窗口评估完成。计算得到的最优滑动窗口为: {OPTIMAL_WINDOW} 天")
|
| 103 |
|
| 104 |
# ----- 5. 模型预测 -----
|
| 105 |
print("----- 5. 模型预测 -----")
|
|
|
|
| 215 |
if window_size >= n:
|
| 216 |
return {'mae': float('inf'), 'rmse': float('inf')}
|
| 217 |
|
| 218 |
+
print(f" - 正在评估窗口大小: {window_size} 天...") # 打印当前评估的窗口大小
|
| 219 |
# 在滑动窗口上训练auto_arima模型并进行单步预测
|
| 220 |
errors = []
|
| 221 |
for i in range(n - window_size - 1):
|