首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第二篇:《机器学习之线性回归》

“线性回归是啥?”

这是你们即将学习的第一个最基础的机器学习算法

在它的基础之上发展得到的便是逻辑回归算法——构建神经网络模型最为基础的单元

让我们来深入地学习它吧!

第二篇还是以概念和公式为主

因为这是很基础的知识,一定要掌握哦

学术上:

线性回归属于回归问题

它包含一元线性回归和多元线性回归

形象讲解开始:

我们先从一元的线性回归下手

参见上一篇《初探篇》里对用于模型训练的样本的定义,样本可以是音频、图片、点集等等,这里我用一个简单的点集作为我们的样本解释,如图

你们看这些离散的点有各自的坐标值,其实这就是一组很小型的数据了,你完全可以类比实际应用的值

(这里用Andrew Ng教授很喜欢的房价比喻来解释吧)

你们看这些离散的点有各自的坐标值,其实这就是一组很小型的数据了,你完全可以类比实际应用的值

(这里用Andrew Ng教授很喜欢的房价比喻来解释吧)

比如这些点的横轴值

你可以理解为某地的房屋使用面积

纵轴值表示的是对应的价格

可以看到随着面积的增长,价格的波动上涨

(暂时不考虑其他影响价格发展不均匀的因素或者特征值吧)

在这里面积就是要输入模型里的特征值,未来神经网络就会经过这些面积的反复训练,让自己得到的房价(预测值)不断地接近纵轴的房价(实际的值)

其实一元线性回归也在干这样的事情

我们要如何得出自己的预测数据用来和真实值比较呢?答案是,画一条直线呗,如图

开始的时候这条直线和真实值的差距可能很大,经过我们的训练(调整这条直线的参数)使得我们的直线(预测值)和真实值的差距不断趋向最小,就变成图中的样子了!

机器学习里一元线性回归方程的表示为:

hθ(x)=θ+ θ1*x

θθ1就是影响预测值的参数

θ1表示输入的特征值x对预测值影响的程度(权重

θ用来上下调整整个模型(截距

如果有多种特征值呢?

也就是说决定价格的有多种因素

比如有面积X1地理位置X2两个

那应该怎么解决呢?——画一个切面

Y还是我们的房价

受两种参数影响的离散分布如图

我们通过调整三个参数得到一个切面

表示对于每一组特征值(X1 X2)的预测值

二元的线性回归方程

令X0 =1便得到第二行和的形式

后面是向量化表示便于矩阵运算

θ是一个(3x1)的矩阵/列向量,T表示转置

X是样本的特征集合(3x1)的矩阵/列向量

多元的线性回归其实就是增加了特征值的维度

输入值X1 X2 `````Xn

真实值是多维离散点——由多个X值决定

那么得到的预测值模型就是多维表面了

(这里只需理解即可)

它的参数θ则有n+1个

θi表示Xi对改变预测值hθ(x)的影响力

θ0为整个模型的上下调整

最后还有两个问题:

1.参数是怎么调整的呢?

让预测值表面和真实值表面拟合(误差接近最小)

说用眼睛看出来的那位同学你是认真的吗

简言之就是对代价函数求偏导,算出每一个权重对于误差的影响力,然后不断迭代更新趋于最小值

篇幅限制,我们将在下一篇中详细讲解

2.预测值的面都是平面的吗?

在二元线性回归里我们就发现有些点和平面的距离挺大的,这已经使得模型的预测不够准确了。其实我们可以将X进行调整,比如方程中的参数X1变为X1平方我们便可以得出一个曲面,一元线归里则是抛物线的样子了

可见确定特征值X的形式非常重要

总结一下:如何使用线性回归

1.首先对于数据选择特征值的维度

2.确定每个特征值的形式

3.建立一般的线性方程表示模型

4.把所有的参数值随机初始化

5.计算代价函数(预测值与真实值的误差)

6.梯度下降调整参数

可能你们觉得这些理论部分很无聊吧

那我们从下一篇开始

在每一篇的最后用Python编程实现这些算法吧

在耐心学完逻辑回归后

你们很快就可以着手写神经网络了哦,加油

下一篇我们将学习

1.学习计算代价函数

2.直观理解梯度下降

3.使用Python写线性回归方程

自主学习部分:(Homework)

1.通过安装Anacanda(强烈推荐哦)

2.学习使用Jupyter Notebook(强烈推荐哦)

3.了解Python语法特性(对有编程基础的同学是容易的)

4.在Jupyter Notebook里使用Python

Anacanda就像大礼包一样

可以快速安装Python和JupyterNotebook

从官网下载慢,给大家一个链接

https://pan.baidu.com/s/1yxhoxo8cWKINiHyU0MIOrw

JupyterNotebook的使用教程

https://www.jianshu.com/p/86117613b7a6

JupyterNotebook是一种交互式的Python编辑器,目前非常非常流行,强烈推荐大家使用,如果只喜欢使用Eclipse等也可以

下一篇:《代价函数和梯度下降》

下下一篇:《强大的逻辑回归》

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180705G1TJHQ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券