fork download
  1. # Ideone机器学习实验模板
  2. print("=" * 70)
  3. print(" 机器学习线性回归实验报告")
  4. print("=" * 70)
  5.  
  6. # 1. 环境检查
  7. try:
  8. import numpy as np
  9. from sklearn.linear_model import LinearRegression
  10. from sklearn.metrics import r2_score
  11. print("✅ 环境检查通过")
  12. except ImportError as e:
  13. print(f"❌ 环境错误: {e}")
  14. exit()
  15.  
  16. # 2. 数据生成
  17. np.random.seed(42)
  18. X = np.random.normal(5, 2, 100)
  19. y = 2.5 * X + 1.0 + np.random.normal(0, 1, 100)
  20.  
  21. print(f"\n📊 实验数据:")
  22. print(f"• 样本数量: {len(X)}")
  23. print(f"• 特征范围: {X.min():.1f} ~ {X.max():.1f}")
  24. print(f"• 目标范围: {y.min():.1f} ~ {y.max():.1f}")
  25.  
  26. # 3. 模型训练
  27. from sklearn.model_selection import train_test_split
  28. X_reshaped = X.reshape(-1, 1)
  29. X_train, X_test, y_train, y_test = train_test_split(X_reshaped, y, test_size=0.2)
  30.  
  31. model = LinearRegression()
  32. model.fit(X_train, y_train)
  33.  
  34. # 4. 结果分析
  35. y_pred = model.predict(X_test)
  36. r2 = r2_score(y_test, y_pred)
  37.  
  38. print(f"\n📈 实验结果:")
  39. print(f"• 回归方程: y = {model.coef_[0]:.3f}x + {model.intercept_:.3f}")
  40. print(f"• 模型准确率: {r2:.1%}")
  41. print(f"• 特征重要性: {model.coef_[0]:.3f}")
  42.  
  43. print(f"\n💡 结论:")
  44. if r2 > 0.8:
  45. print("模型拟合优秀,可用于实际预测")
  46. elif r2 > 0.6:
  47. print("模型拟合良好,具有参考价值")
  48. else:
  49. print("模型需要进一步优化")
  50.  
  51. print("\n" + "=" * 70)
  52. print(" 实验完成")
  53. print("=" * 70)
Success #stdin #stdout 3.28s 110912KB
stdin
Standard input is empty
stdout
======================================================================
             机器学习线性回归实验报告
======================================================================
✅ 环境检查通过

📊 实验数据:
• 样本数量: 100
• 特征范围: -0.2 ~ 8.7
• 目标范围: 0.7 ~ 23.3

📈 实验结果:
• 回归方程: y = 2.414x + 1.565
• 模型准确率: 92.4%
• 特征重要性: 2.414

💡 结论:
模型拟合优秀,可用于实际预测

======================================================================
                 实验完成
======================================================================