以下是完整的代码及填空部分的解答: ```python # 数据生成 x = np.linspace(10, 100, 100) # 生成等距 x 值(100 个点) # 加点噪声,并转化为 DataFrame 数据类型 np.random.seed(30) # 如果希望产生的实验数据不变,可设置随机种子 r = np.random.normal(20, 10, 100) # 生成扰动项(均值 20,标准差 10) y_data = 5 * x + r # 填空1 构造带噪声的线性数据 df = pd.DataFrame({'x': x, 'y': y_data}) # 组装成 DataFrame # 数据划分 X_train, X_test, y_train, y_test = train_test_split( df['x'].values.reshape(-1, 1), df['y'], test_size=0.2, random_state=125 ) # 填空2: 0.2, 填空3: 125 # 使用训练数据拟合线性回归模型并进行预测 clf = LinearRegression() clf.fit(X_train, y_train) # 填空4: X_train, 填空5: y_train print("回归系数:", clf.coef_[0]) # 填空6: clf.coef_[0] print("截距:", clf.intercept_) # 填空7: clf.intercept_ y_pred = clf.predict(X_test) # 填空8: X_test # 评估模型效果 mse = mean_squared_error(y_test, y_pred) # 填空9: mean_squared_error print('评价线性回归:均方误差等于', mse) print("均方根误差", np.sqrt(mse)) print('R2值:', r2_score(y_test, y_pred)) # 填空10: r2_score # 画图观察模型的拟合效果 import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['fangsong'] plt.figure(figsize=(8, 6)) plt.scatter(df['x'], df['y'], label='真实数据', alpha=0.5) plt.plot(X_test, y_pred, color='red', label='预测回归线', linewidth=2) plt.xlabel('x') plt.ylabel('y') plt.title('线性回归拟合效果图') plt.legend() plt.grid(True) plt.show() ``` 额外需要注意的逻辑点: 1. 在生成噪声时,确保随机种子固定以保证实验结果的可重复性。 2. 模型评估时,MSE 和 RMSE 的值越小越好,而 R² 越接近 1 表示模型拟合效果越好。 3. 在绘制回归线时,确保测试集的 x 值按顺序排列,以便回归线平滑显示。 [2025-06-12 13:18:59 | AI写代码神器 | 651点数解答]