前言
回归问题主要研究,根据已有的数据点的分布,拟合最佳曲线来确定数据点的分布趋势,一般用于连续值的预测。
一、基础概念
1.回归问题定义
- 作用:实现对连续值的预测,如股票价格、房价趋势等。
- 示例:房屋面积和价格的对应关系,通过已知房屋面积和价格数据,预估未知房屋的价格。
2.线性回归过程
- 作用:找到一条直线拟合数据点的分布趋势,以进行预测。
- 关键点:“线性” 指线性关系,即所绘制的直线。需要找到最适合拟合数据的直线。
二、一元线性回归
1.生成示例数据
- 函数:使用
numpy.array
生成数据 - 作用:生成房屋面积和房价变化的示例数据
- 参数说明:无
- 示例代码
import numpy as np
x = np.array([56, 72, 69, 88, 102, 86, 76, 79, 94, 74])
y = np.array([92, 102, 86, 110, 130, 99, 96, 102, 105, 92])
- 关键点:
x
为房屋面积,y
为房价 - 注意事项:确保数据的对应关系正确
2.绘制数据点
- 函数:
matplotlib.pyplot.scatter
- 作用:绘制数据点,直观展示数据分布
- 参数说明:
x
为横坐标数据,y
为纵坐标数据 - 示例代码
from matplotlib import pyplot as plt
%matplotlib inline
plt.scatter(x, y)
plt.xlabel("Area")
plt.ylabel("Price")
- 关键点:正确设置横纵坐标标签
- 注意事项:确保
matplotlib
库已正确导入
3.定义线性方程
- 函数:
f(x, w0, w1)
- 作用:实现一元一次函数表达式
- 参数说明:
x
为自变量,w0
为截距,w1
为斜率 - 示例代码
def f(x, w0, w1):
y = w0 + w1 * x
return y
- 关键点:理解一元一次函数的表达式
- 注意事项:参数传递顺序和类型要正确
三、平方损失函数
定义平方损失函数
- 函数:
square_loss(x, y, w0, w1)
- 作用:计算所有样本点的残差平方和,即平方损失函数
- 参数说明:
x
为自变量数据,y
为因变量数据,w0
为截距,w1
为斜率 - 示例代码
def square_loss(x, y, w0, w1):
loss = sum(np.square(y - (w0 + w1*x)))
return loss
- 关键点:使用残差平方和保证损失始终为正数,避免正负残差抵消
- 注意事项:确保
numpy
库已正确导入