python如何求两个变量线性回归的斜率,截距以及均方误差?请给出实现函数。
时间: 2024-03-03 10:46:49 浏览: 198
可以使用 `sklearn` 库中的 `LinearRegression` 模型来求解线性回归的斜率、截距和均方误差。具体实现函数如下:
```python
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
def linear_regression(x, y):
# 创建线性回归模型
lr = LinearRegression()
# 训练模型
lr.fit(x, y)
# 获取斜率和截距
slope = lr.coef_[0]
intercept = lr.intercept_
# 预测结果
y_pred = lr.predict(x)
# 计算均方误差
mse = mean_squared_error(y, y_pred)
return slope, intercept, mse
```
其中,`x` 和 `y` 分别为两个变量的样本数据,`slope` 表示斜率,`intercept` 表示截距,`mse` 表示均方误差。使用方法如下:
```python
import numpy as np
# 生成样本数据
x = np.array([[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]])
y = np.array([2, 4, 5, 7, 8, 10, 11, 13, 14, 16])
# 计算线性回归
slope, intercept, mse = linear_regression(x, y)
# 输出结果
print("斜率:", slope)
print("截距:", intercept)
print("均方误差:", mse)
```
阅读全文