机器学习基础知识之一元线性回归模型

一元线性回归模型

引言

机器学习基础知识之一元线性回归模型_第1张图片
问题:现在有图中的六个点,我想通过找寻图中六个点的规律,当第七个点来的时候借鉴此规律得到X7的值,我该如何操作?

一元线性回归模型

为了解决上述问题我们引入一元线性回归模型

  1. 什么是一元线性回归模型:
    一元就是有一个输入(即一个特征),通过找寻输入x与输出y的“最佳”关系,对未来的样本进行预测
  2. 大白话(个人理解):如何求解一元一次函数
    机器学习基础知识之一元线性回归模型_第2张图片
    其实一元线性回归模型与图中的例子类似,就是通过计算多个真实值与预测值来找寻最优的w,b,通过解得w,b对下一个新输入的x求解,得到y

机器学习基础知识之一元线性回归模型_第3张图片
这里我们就得到了我们的目标函数l,这里也是我们为了解决引言中的问题的第一步,找到目标函数,接下来就要求解我们的w,b喽

机器学习基础知识之一元线性回归模型_第4张图片
此时就解出了我们的w,b;引言中需要求X7的预测值,那么将X7的值代入到w,b的一元线性模型中便求得了X7的预测值Y7
补充
求解最小值的两种方法:

  1. 令导数为0
  2. 梯度下降法:循环迭代的方式来求解

手动实现一元线性回归:

import numpy as np
import matplotlib.pyplot as plt 
from sklearn.linear_model import LinearRegression 


data = np.array([[198, 75],[186, 83],[175,65],[180,55],[177,63],[179,77],[163,47],[154,65],[176,72],[177,73]]) # 创建数据集
x, y = data[:, 0],data[:, 1] # 分别得到x,y

# 根据求导得出w和b的公式,计算w,b
w = ((x*y).mean()-x.mean()*y.mean()) / ((x*x).mean()-x.mean()*x.mean())
b = y.mean() - w * x.mean()

print("通过手写一元回归得到的w,b分别为%.3f, %.3f"%(w, b))

总结:

  1. 求解一元线性回归的方法:
    1)确定目标函数
    2)对w,b进行求导
    3)令导数为0
    4)得到最优解

你可能感兴趣的:(机器学习基础知识,机器学习,线性回归,回归)