zoukankan      html  css  js  c++  java
  • 线性回归

    机器学习分为有监督学习和无监督学习。

    有监督学习分为回归问题和分类问题。

    Regression 回归问题是指我们想要预测连续的数值输出

    Classification 分类是指我们设法预测一个离散值输出(0 or 1),有时也可以存在有两个以上的可能的输出值。

    设有一组数据,x为自变量,y为因变量,(x(i),y(i))代表一组数据。

    我们想要预测y,则设hθ(x(i))=θ_0+θ_1x(i)

    那么这个单变量线性回归的代价函数为J(θ_0,θ_1)=1/2m   m∑i=1 (hθ(x(i))-y(i))^2   就是用预测的减去实际的,然后让他俩的平方和尽可能的小

    我们要做的就是关于θ_0和θ_1对函数J(θ_0,θ_1)求最小值,这就是我们的代价函数也被称作平方误差函数。

    既然要求θ_0和θ_1,就要用到梯度下降算法:

    1.对θ_0,θ_1初始化,一般设为θ_0=0,θ_1=0;

    2.一点点改变θ_0,θ_1的值,来使J(θ_0,θ_1)变小,直到我们找到最小或局部最小值

    所以,一直进行以下这个公式,直到收敛。θj=θj-α(d/dθj)J(θ_0,θ_1)所有的θ同步更新

    α是学习率,为常数量,控制梯度下降时我们迈出多大的步子(控制多大幅度的更新)α的值多为0.01,0.005,python中有其默认值

    更新:正确方法:temp0=θ_0-α(d/dθ_0)J(θ_0,θ_1)      是的,我们要做到同步更新

                                temp1=θ_1-α(d/dθ_1)J(θ_0,θ_1)

                                θ_0=temp0

                                θ_1=temp1

    梯度下降时没有必要再另外减小α,因为随着梯度下降,导数会变小,更新的幅度也会变小

    对公式(d/dθj)J(θ_0,θ_1)进行计算

    α(d/dθj)J(θ_0,θ_1)=α(d/dθj)  1/2m   m∑i=1 (hθ(x(i))-y(i))^2=α(d/dθj)  1/2m   m∑i=1 (θ_0+θ_1(x(i))-y(i))^2

    带入梯度下降公式得,求的θ_0,θ_1得方法

    repeat until convergence{

    θ_0=θ_0-α  1/m   m∑i=1 (hθ(x(i))-y(i))

    θ_1=θ_1- α 1/m   m∑i=1 (hθ(x(i))-y(i)) x(i)

    }

  • 相关阅读:
    09.session #
    08.cookie
    07.中间件
    06.类视图
    374. 猜数字大小 力扣 二分 简单却易错
    278. 第一个错误的版本 力扣 二分 简单
    1449. 数位成本和为目标值的最大数字 力扣 动态规划 难 string赋值和比较
    279. 完全平方数 力扣 动态规划 中等
    518. 零钱兑换 II 力扣 动态规划,中等吧
    203. 移除链表元素 力扣
  • 原文地址:https://www.cnblogs.com/fromzore/p/10012884.html
Copyright © 2011-2022 走看看