机器学习线性回归模型不要Scikit-learn库,输出系数与检验拟合效果的代码,我要手敲完整的Python代码
时间: 2024-09-17 12:06:40 浏览: 46
机器学习系列6 使用Scikit-learn构建回归模型:简单线性回归、多项式回归与多元线性回归
当然可以。在Python中,我们可以使用内置的`numpy`库来创建和训练简单的线性回归模型,而不依赖于`scikit-learn`。这里是一个基本的示例:
```python
import numpy as np
# 创建随机数据集(假设我们有x和y变量)
np.random.seed(0)
x = np.linspace(0, 10, 50) # x轴范围从0到10,共有50个点
y = 2 * x + 1 + np.random.randn(*x.shape) # 线性关系加上一些噪声
# 定义模型参数 (w 是斜率,b 是截距)
w = 2
b = 1
# 模型预测函数
def predict(x, w, b):
return w * x + b
# 训练过程:最小二乘法求解最优系数
n_samples, n_features = x.shape
theta = np.zeros(n_features + 1) # 初始化权重向量,包括常数项
theta[0] = b # 常数项直接设为b
for _ in range(100): # 可以适当增加迭代次数提高精度
y_pred = predict(x, theta[:-1], theta[-1]) # 预测值不包括偏置
dw = (-2 / n_samples) * np.sum((y - y_pred) * x)
db = (-2 / n_samples) * np.sum(y - y_pred)
theta[1:] += dw
theta[-1] += db # 更新权重
# 输出系数
print("模型系数:", theta)
# 检验拟合效果:计算均方误差 (MSE)
mse = np.mean((y - predict(x, theta[:-1], theta[-1])) ** 2)
print("均方误差(MSE):", mse)
阅读全文