analyze_dimensions.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import pandas as pd
  2. # 读取决策文件
  3. df = pd.read_csv('outputs/reports/llm_decisions_20260415.csv')
  4. # 只分析智能判断的行
  5. llm_df = df[df['source'] == '智能判断'].copy()
  6. print(f"总智能决策数:{len(llm_df)}")
  7. print("\n=== 多维度使用率分析 ===")
  8. # 分析每个维度的使用
  9. dimensions = {
  10. 'bid_increased_7d': 'bid_increased_7d',
  11. 'creative_changed_7d': 'creative_changed_7d',
  12. 'stable_spend': 'stable_spend',
  13. 'ad_age': 'ad_age'
  14. }
  15. for name, keyword in dimensions.items():
  16. count = llm_df['reason'].str.contains(keyword, na=False).sum()
  17. pct = count / len(llm_df) * 100
  18. print(f"{name}: {count}条 ({pct:.1f}%)")
  19. print("\n=== 降价幅度分布 ===")
  20. bid_down_df = llm_df[llm_df['action'] == 'bid_down']
  21. print(bid_down_df['recommended_change_pct'].value_counts().sort_index())
  22. print("\n=== 特殊场景识别 ===")
  23. print(f"调价无效场景: {llm_df['dimension'].str.contains('调价无效', na=False).sum()}条")
  24. print(f"创意问题场景: {llm_df['reason'].str.contains('creative_changed_7d=true但', na=False).sum()}条")
  25. print(f"数据不稳定场景: {llm_df['reason'].str.contains('数据不稳定', na=False).sum()}条")
  26. print("\n=== 示例决策(调价无效) ===")
  27. invalid_price = llm_df[llm_df['dimension'].str.contains('调价无效', na=False)]
  28. for _, row in invalid_price.head(3).iterrows():
  29. print(f"ad_id={row['ad_id']}: {row['reason']}")