当前位置:   article > 正文

机器学习之linear regression(线性回归)_应为类型 'int',但实际为 'linearregression

应为类型 'int',但实际为 'linearregression

线性回归

前言

我们需要了解分类算法解决的目标值是离散的问题;而回归算法解决的是目标值连续的问题

什么是线性回归?

定义:线性回归通过一个或者多个自变量与因变量之间之间进行建模的回归分析。其中特点为一个或多个称为回归系数的模型参数的线性组合。

一元线性回归:涉及到的变量只有一个
多元线性回归:涉及到的变量两个或两个以上

在这里插入图片描述

注:线性回归需要进行标准化,避免单个权重过大,影响最终结果

举例

在这里插入图片描述

单个特征:

  • 试图去寻找一个k,b值满足:
  • 房子价格 = 房子面积*k+b(b为偏置,为了对于单个特征的情况更多通用)

在这里插入图片描述

多个特征:(房子面积、房子位置,…)

  • 试图去寻找一个k1,k2,…,b值满足:
  • 房子价格 = 房子面积*k1 + 房子位置 *k2 +…+b

线性关系模型

试图找到一种属性和权重的组合来进行预测结果:
在这里插入图片描述

但是预测值总是会存在误差,所以需要利用损失函数计算误差

损失函数(最小二乘法)

在这里插入图片描述

如何去求模型当中的W(权重),使得损失最小? (目的是找到最小损失对应的W值)

优化

最小二乘法之正规方程(不太推荐)

在这里插入图片描述
缺点:

  • 当特征过于复杂,求解速度太慢
  • 对于复杂的算法,不能使用正规方程求解(逻辑回归等)

损失函数直观图(单变量举例),如下:

损失函数直观图(单变量举例)

最小二乘法之梯度下降(❤️ ❤️ ❤️ )

在这里插入图片描述
理解:沿着这个函数下降的方向找,最后就能找到函数的最低点,然后更新W值。(不断迭代的过程)
在这里插入图片描述

知识储备

sklearn线性回归正规方程API

  • sklearn.linear_model.LinearRegression()
    coef_:回归系数

sklearn线性回归梯度下降API

  • sklearn.linear_model.SGDRegressor()
    coef_:回归系数

代码演示

正规方程案例


from sklearn.datasets import load_boston
from sklearn.linear_model import LinearRegression,SGDRegressor
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler


def mylinear():
    '''
    线性回归预测房价
    :return: None
    '''

    # 加载数据
    lb = load_boston()

    # 分割数据集到训练集和测试集
    x_train, x_test, y_train, y_test = train_test_split(lb.data, lb.target, test_size=0.25)

    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/829945
推荐阅读
相关标签
  

闽ICP备14008679号