赞
踩
目录
一、线性回归模型(Linear regression model)
以下是本文所需要用到的符号
符号 描述 python(如果适用)
x 特征值 x_train
y 目标值 y_train
示例 x_i
m 示例数量 y_i
w 参数:权重 m
b 参数:偏移 n
模型预估值 f_wb
线性回归模型是一种用于建立输入和连续输出之间关系的模型。它假设输入和输出之间存在线性关系。该模型可以用于预测连续变量的值,例如房价、销售额、股票价格等。
线性回归的模型函数(这是一个从映射到的函数)表示为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)通常采用最小二乘法(Least Square Method)来定义。
成本函数就是所有训练样本的预测值与实际值之间的误差平方和。
:目标值和预测之间的平方差。
:每个目标值和预测之间平方差的和
:总的平均方差
请注意,求和范围通常从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()
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。