【Python】sklearn LinearRegression 一元线性回归预测并得出回归方程

创建模型

# 创建模型
model = LinearRegression()
# 将数据转化成DataFrame
x = pd.DataFrame({
   'salary': salary})
x = x['salary'].values.reshape((
### 一元线性回归模型的实验代码与数据分析 #### 实验概述 在一元线性回归中,目标是建立一个描述因变量 \(y\) 和自变量 \(x\) 关系的简单线性方程。该关系通常表示为: \[ y = \beta_0 + \beta_1 x + \epsilon \] 其中,\( \beta_0 \) 是截距,\( \beta_1 \) 是斜率,而 \( \epsilon \) 表示随机误差[^3]。 以下是基于 Python一元线性回归实现及其数据分析过程。 --- #### 数据准备 为了演示一元线性回归的过程,可以创建一组简单的模拟数据作为例子。假设我们有一组关于广告费用(自变量)和销售额(因变量)的数据。 ```python import numpy as np import pandas as pd from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt # 创建虚拟数据集 np.random.seed(42) X = 2 * np.random.rand(100, 1) # 自变量 (广告费用) y = 4 + 3 * X + np.random.randn(100, 1) # 因变量 (销售额),加入噪声 data = pd.DataFrame(np.c_[X.ravel(), y.ravel()], columns=['Advertising', 'Sales']) print(data.head()) ``` 上述代码生成了一个包含两列的数据框:`Advertising`(广告费用)和 `Sales`(销售额)。这些数据用于后续建模和分析。 --- #### 模型构建 利用 Scikit-Learn 库中的 `LinearRegression` 类来完成模型训练。 ```python # 初始化训练模型 model = LinearRegression() model.fit(X, y) # 输出模型参数 intercept = model.intercept_[0] coefficient = model.coef_[0][0] print(f"Intercept (β0): {intercept:.2f}") print(f"Coefficient (β1): {coefficient:.2f}") ``` 通过以上代码,我们可以得到回归方程的具体形式。例如,在本例中可能获得如下结果: \[ y = 4.18 + 2.95x \] 这表明每增加单位广告费用,预计销售额会提高约 2.95 单位[^2]。 --- #### 可视化分析 绘制散点图以及拟合后的回归直线可以帮助直观理解两者之间的关系。 ```python plt.scatter(X, y, color='blue', label="Data Points") # 散点图 plt.plot(X, model.predict(X), color='red', linewidth=2, label="Fitted Line") # 回归线 plt.xlabel('Advertising') plt.ylabel('Sales') plt.title('Simple Linear Regression Example') plt.legend() plt.show() ``` 此部分展示了如何将实际观测值与理论预测值对比,从而评估模型性能。 --- #### 模型评价 除了可视化外,还可以计算一些统计指标以量化模型的表现,比如决定系数 (\(R^2\)) 或均方根误差 (RMSE)。 ```python from sklearn.metrics import mean_squared_error, r2_score # 预测值 predictions = model.predict(X) # 计算 R² 和 RMSE r2 = r2_score(y, predictions) rmse = np.sqrt(mean_squared_error(y, predictions)) print(f"R-squared: {r2:.2f}") print(f"Root Mean Squared Error: {rmse:.2f}") ``` 这里引入了两个重要概念: - **决定系数**(\(R^2\)): 越接近于 1,则说明模型越能解释数据的变化。 - **均方根误差**(RMSE): 数值越低越好,代表平均偏差程度较小[^1]。 --- #### 结果解读 最终得出的结果不仅提供了定量衡量标准,还揭示了输入特征对于输出的影响强度。这对于进一步优化业务策略具有重要意义。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值