''' 线性回归, 用于回归任务, 通过线性方程预测连续值 ''' import numpy as np import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error, r2_score # 生成示例数据 # 假设我们有一些数据点 (X, y),其中 X 是输入特征,y 是目标变量 # 设置随机种子, 不然每次运行程序结果都不一样 np.random.seed(0) # 生成形状为[100, 1] 值为[0, 1)均匀分布的数组 X = 2 * np.random.rand(100, 1) y = 4 + 3 * X + np.random.randn(100, 1) print(X) print(y) # 将数据分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 创建线性回归模型 model = LinearRegression() # 训练模型 model.fit(X_train, y_train) # 使用模型进行预测 y_pred = model.predict(X_test) # 评估模型 mse = mean_squared_error(y_test, y_pred) r2 = r2_score(y_test, y_pred) print(f"Mean Squared Error: {mse}") print(f"R^2 Score: {r2}") # 可视化结果 plt.scatter(X_test, y_test, color='black', label='Actual data') plt.plot(X_test, y_pred, color='blue', linewidth=3, label='Fitted line') plt.xlabel('X') plt.ylabel('y') plt.legend() plt.savefig('./output/linear.png')