机器学习:线性回归模型(python)
目录
一、线性回归模型(Linear regression model)
符号
以下是本文所需要用到的符号
符号 描述 python(如果适用)
x 特征值 x_train
y 目标值 y_train
示例 x_i
m 示例数量 y_i
w 参数:权重 m
b 参数:偏移 n
模型预估值 f_wb
一、线性回归模型(Linear regression model)
(1)什么是线性回归模型
线性回归模型是一种用于建立输入和连续输出之间关系的模型。它假设输入和输出之间存在线性关系。该模型可以用于预测连续变量的值,例如房价、销售额、股票价格等。
(2)线性回归模型的数学形式
理论
线性回归的模型函数(这是一个从映射到的函数)表示为xy

python中可表示为:
f_wb = w * x[i] + b
实践

# 导入numpy、matplotlib模块
import numpy as np
from matplotlib import pyplot as plt
# 设定特征值
x = np.array([1, 2, 3, 4, 5])
# 设定权重、偏移
w=1
b=0
# 设定线性回归函数
f_wb = w*x+b
# 绘制数据点
plt.scatter(x, f_wb)
# 绘制回归线
plt.plot(x, f_wb, color='red')
# 添加标题和标签
plt.title('Linear Regression')
plt.xlabel('x')
plt.ylabel('f_wb')
# 显示图形
plt.show()
二、成本函数(Cost function)
(1)什么是成本函数
在线性回归模型中,成本函数(Cost function)通常采用最小二乘法(Least Square Method)来定义。
(2)成本函数的数学形式
理论
成本函数就是所有训练样本的预测值与实际值之间的误差平方和。

:目标值和预测之间的平方差。
:每个目标值和预测之间平方差的和
:总的平均方差
请注意,求和范围通常从1到m,而代码将从0到m-1。
实践

由上图可以清晰看到随着w的变化,总的平均方差也在改变,因此可以通过梯度下降的方法最小化成本来改变w和b就可以得到一条与数据完美拟合的线
# 导入numpy、matplotlib模块
import numpy as np
from matplotlib import pyplot as plt
# 设定特征值
x_train = np.array([1, 2 , 3])
y_train = np.array([1, 2 , 3])
x = np.array([1, 2, 3])
# 设定权重
w=[]
for n in range(-1,6,1):
w.append(n/2)
# 设定偏移
b=0
# 获取x(特征值)数量
m = len(x)
# 定义变量
cost_sum = 0
J_wb=[]
# 计算成本函数
for j in range(len(w)):
for i in range(m):
f_wb = w[j] * x[i] + b
cost = (f_wb - y_train[i]) ** 2
cost_sum = cost_sum + cost
j_wb = (1 / (2 * (m+1))) * cost_sum
cost_sum = 0
J_wb.append(j_wb)
# 绘制成本函数点
plt.scatter(w, J_wb)
# 绘制成本函数线
plt.plot(w, J_wb, color='red')
# 添加标题和标签
plt.title('Cost function')
plt.xlabel('w')
plt.ylabel('J_wb')
# 显示图形
plt.show()