# Ideone机器学习实验模板
print("=" * 70)
print(" 机器学习线性回归实验报告")
print("=" * 70)
# 1. 环境检查
try:
import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score
print("✅ 环境检查通过")
except ImportError as e:
print(f"❌ 环境错误: {e}")
exit()
# 2. 数据生成
np.random.seed(42)
X = np.random.normal(5, 2, 100)
y = 2.5 * X + 1.0 + np.random.normal(0, 1, 100)
print(f"\n📊 实验数据:")
print(f"• 样本数量: {len(X)}")
print(f"• 特征范围: {X.min():.1f} ~ {X.max():.1f}")
print(f"• 目标范围: {y.min():.1f} ~ {y.max():.1f}")
# 3. 模型训练
from sklearn.model_selection import train_test_split
X_reshaped = X.reshape(-1, 1)
X_train, X_test, y_train, y_test = train_test_split(X_reshaped, y, test_size=0.2)
model = LinearRegression()
model.fit(X_train, y_train)
# 4. 结果分析
y_pred = model.predict(X_test)
r2 = r2_score(y_test, y_pred)
print(f"\n📈 实验结果:")
print(f"• 回归方程: y = {model.coef_[0]:.3f}x + {model.intercept_:.3f}")
print(f"• 模型准确率: {r2:.1%}")
print(f"• 特征重要性: {model.coef_[0]:.3f}")
print(f"\n💡 结论:")
if r2 > 0.8:
print("模型拟合优秀,可用于实际预测")
elif r2 > 0.6:
print("模型拟合良好,具有参考价值")
else:
print("模型需要进一步优化")
print("\n" + "=" * 70)
print(" 实验完成")
print("=" * 70)
IyBJZGVvbmXmnLrlmajlrabkuaDlrp7pqozmqKHmnb8KcHJpbnQoIj0iICogNzApCnByaW50KCIgICAgICAgICAgICAg5py65Zmo5a2m5Lmg57q/5oCn5Zue5b2S5a6e6aqM5oql5ZGKIikKcHJpbnQoIj0iICogNzApCgojIDEuIOeOr+Wig+ajgOafpQp0cnk6CiAgICBpbXBvcnQgbnVtcHkgYXMgbnAKICAgIGZyb20gc2tsZWFybi5saW5lYXJfbW9kZWwgaW1wb3J0IExpbmVhclJlZ3Jlc3Npb24KICAgIGZyb20gc2tsZWFybi5tZXRyaWNzIGltcG9ydCByMl9zY29yZQogICAgcHJpbnQoIuKchSDnjq/looPmo4Dmn6XpgJrov4ciKQpleGNlcHQgSW1wb3J0RXJyb3IgYXMgZToKICAgIHByaW50KGYi4p2MIOeOr+Wig+mUmeivrzoge2V9IikKICAgIGV4aXQoKQoKIyAyLiDmlbDmja7nlJ/miJAKbnAucmFuZG9tLnNlZWQoNDIpClggPSBucC5yYW5kb20ubm9ybWFsKDUsIDIsIDEwMCkKeSA9IDIuNSAqIFggKyAxLjAgKyBucC5yYW5kb20ubm9ybWFsKDAsIDEsIDEwMCkKCnByaW50KGYiXG7wn5OKIOWunumqjOaVsOaNrjoiKQpwcmludChmIuKAoiDmoLfmnKzmlbDph486IHtsZW4oWCl9IikKcHJpbnQoZiLigKIg54m55b6B6IyD5Zu0OiB7WC5taW4oKTouMWZ9IH4ge1gubWF4KCk6LjFmfSIpCnByaW50KGYi4oCiIOebruagh+iMg+WbtDoge3kubWluKCk6LjFmfSB+IHt5Lm1heCgpOi4xZn0iKQoKIyAzLiDmqKHlnovorq3nu4MKZnJvbSBza2xlYXJuLm1vZGVsX3NlbGVjdGlvbiBpbXBvcnQgdHJhaW5fdGVzdF9zcGxpdApYX3Jlc2hhcGVkID0gWC5yZXNoYXBlKC0xLCAxKQpYX3RyYWluLCBYX3Rlc3QsIHlfdHJhaW4sIHlfdGVzdCA9IHRyYWluX3Rlc3Rfc3BsaXQoWF9yZXNoYXBlZCwgeSwgdGVzdF9zaXplPTAuMikKCm1vZGVsID0gTGluZWFyUmVncmVzc2lvbigpCm1vZGVsLmZpdChYX3RyYWluLCB5X3RyYWluKQoKIyA0LiDnu5PmnpzliIbmnpAKeV9wcmVkID0gbW9kZWwucHJlZGljdChYX3Rlc3QpCnIyID0gcjJfc2NvcmUoeV90ZXN0LCB5X3ByZWQpCgpwcmludChmIlxu8J+TiCDlrp7pqoznu5Pmnpw6IikKcHJpbnQoZiLigKIg5Zue5b2S5pa556iLOiB5ID0ge21vZGVsLmNvZWZfWzBdOi4zZn14ICsge21vZGVsLmludGVyY2VwdF86LjNmfSIpCnByaW50KGYi4oCiIOaooeWei+WHhuehrueOhzoge3IyOi4xJX0iKQpwcmludChmIuKAoiDnibnlvoHph43opoHmgKc6IHttb2RlbC5jb2VmX1swXTouM2Z9IikKCnByaW50KGYiXG7wn5KhIOe7k+iuujoiKQppZiByMiA+IDAuODoKICAgIHByaW50KCLmqKHlnovmi5/lkIjkvJjnp4DvvIzlj6/nlKjkuo7lrp7pmYXpooTmtYsiKQplbGlmIHIyID4gMC42OgogICAgcHJpbnQoIuaooeWei+aLn+WQiOiJr+Wlve+8jOWFt+acieWPguiAg+S7t+WAvCIpCmVsc2U6CiAgICBwcmludCgi5qih5Z6L6ZyA6KaB6L+b5LiA5q2l5LyY5YyWIikKCnByaW50KCJcbiIgKyAiPSIgKiA3MCkKcHJpbnQoIiAgICAgICAgICAgICAgICAg5a6e6aqM5a6M5oiQIikKcHJpbnQoIj0iICogNzAp