leonsimon23 commited on
Commit
3a3505d
·
verified ·
1 Parent(s): abb49ca

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +6 -1
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"计算得到的最优滑动窗口为: {OPTIMAL_WINDOW} 天")
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):