定义 : 线性回归属于监督学习,目的是在包含正确答案的数据集通过预测找到某种映射关系 x→y。
线性回归的一般形式
对于一般形式解释一下:
1.假设函数可以简单理解为拟合曲线的大致形状,如一次函数y = θx+b 二次y=θ1x^2+θ2x+θ3,然后我们通过minJ(θ)去找最合适θ值(比如梯度下降,正规方程)
2.损失函数顾名思义,就是将每个特征的预测值-实际值的和全部加起来,1/2m
的意义是尽量的减少平均误差。
3.我们的目的是尽可能的使J(θ)变小,所以我们最合适θ值
个人认为,求解最小J(θ)的方法中,重点关注梯度下降,正规方程简单了解即可。
理论知识储备:吴恩达教授的视频给出了非常容易理解且详细的理论知识(推导+详细讲解),受益匪浅。下面的代码是将视频中的知识代码化。
手撕代码系列:
最小二乘法
# -*-coding:utf-8-*-
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import leastsq
# 采样
x = np.array([1, 2, 3,4, 5, 6])
y = np.array([15, 19, 22, 27, 30, 31])
# 画出散点图
plt.scatter(x,y)
# 假设函数
def func_least(p