• Linear Regression 线性回归


    Motivation 问题描述

    收集到某一地区的房子面积和房价的数据(x, y)42组,对于一套已知面积的房子预测其房价?
    房价数据
    房价数据可视化
    由房价数据可视化图可以看出,可以使用一条直线拟合房价。通过这种假设得到的预测值和真实值比较接近。

    Model 模型

    将现实的问题通过数学模型描述出来。
    m 个 样本(example)组成训练集(training set),每一个样本有n个特征(feature)和一个标签(label)。目的是,通过一个数学模型(algorithm)和参数(parameters)将每一个样本和标签映射。这样,给定一个未知的样本就可以通过建立的数学模型预测其标签。

    参数解释
    m 样例数 training set
    n 特征数 no. of features
    X (m*(n+1))
    (m*1)
    (Theta) ((n+1)*1) (X heta=y)

    Hypothesis 假设

    假设房价由此方程拟合
    [h_ heta(x) = heta_0+ heta_1x]
    其中( heta_0)为偏置bias,( heta_1)为因变量的权重weight

    Cost function 损失函数

    需要一个函数评价拟合函数的预测效果如何。直观的,我们可以计算真实房价和预测房价的差值平方和J,J越小预测效果越好。所以,可以通过最小化J可以求出参数( heta_0)和( heta_1)的值。
    [J( heta_0, heta_1)=frac 1 {2m}sum_{i=1}^m(h_ heta(x^{(i)})-y^{(i)})^2]

    Gradient descent 梯度下降

    这是一个二元函数求极值的问题。可以使用求偏导的方法找出所有极值点,然后代入损失函数求出最小值。一般的做法是采用梯度下降法。梯度下降选择一个系数alpha,和迭代次数。
    repeat until convergence {
    [ heta_0 := heta_0 - alphafrac 1 {2m}sum_{i=1}^m(h_ heta(x^{(i)})-y^{(i)})]
    [ heta_1 := heta_1 - alphafrac 1 {2m}sum_{i=1}^m(h_ heta(x^{(i)})-y^{(i)})cdot{x^{(i)}}]
    }
    下图是二维梯度下降可视化


    通过这种方式可以得出假设的参数。对于已知房子面积的房子就可以使用假设估计房价了。值得一提的是预测的房价不可能是100%准确,但是可以认为是在给定条件下最接近真实房价的值。
    注意,梯度下降求的的只是极值点,有可能陷入局部最优,但是对于凸函数,极值点就是最值点,因为极值点只有一个。

    LG with multiple variables 多元线性回归

    更一般的情况是房价可能由多种因素综合决定,像房子年龄,卧室数目和楼层数。

    这时hypothesis变为
    [h_ heta = heta_0 + heta_1x_1 + cdots + heta_nx_n]
    cost function变为
    [J( heta_0, heta_1, cdots , heta_n)=frac 1 {2m}sum_{i=1}^m(h_ heta(x^{(i)})-y^{(i)})^2] gradient descent变为
    [ heta_j := heta_j - alphafrac 1 {2m}sum_{i=1}^m(h_ heta(x^{(i)})-y^{(i)})cdot{x^{(i)}_j}]
    注意使用feature scaling将不同范围的特征映射到相近的范围。

    Polynomial regression多项式回归

    更一般的情况是房价和面积是如下图的关系。解决方法转化为多元线性回归。

    在这种情况下,一种可能是选择以下特征
    [x_1=size,x_2=(size)^2]
    hypothesis
    [h_ heta(x)= heta_0+ heta_1(size)+ heta_2(size)^2]
    即为
    [h_ heta(x)= heta_0+ heta_1x_1+ heta_2x_2]
    通过这种方法就可以转换为多元线性回归问题。

    Normal Equation

    使用多元函数求极值的方法。只是以向量的方式表示。
    当除了使用梯度下降外,还可以使用normal equation求参数。

    [X heta=y]
    解得
    [ heta=(X^TX)^{-1}X^Ty]
    注意当features数多于样本数的情况
    解决办法增加样本数,减少特征数,使用normalization

    References

    1. Machine Learning by Andrew Ng
    2. 机器学习 周志华
    Three passions, simple but overwhelmingly strong, have governed my life: the longing for love, the search for knowledge, and unbearable pity for the suffering of mankind
  • 相关阅读:
    oschina 终端/远程登录
    oschina文档/文本编辑
    oschinaIM/聊天/语音工具
    oschina浏览器开发
    oschina P2P/BT开源软件
    oschina图形和图像工具开源软件
    java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)
    java之jvm学习笔记三(Class文件检验器)
    手把手教popupWindow从下往上,以达到流行效果
    java实现代理domino web邮件下载
  • 原文地址:https://www.cnblogs.com/s3abiscuit/p/Linear-Regression-xian-xing-hui-gui.html
Copyright © 2020-2023  润新知