【机器学习】线性回归
来源:互联网 发布:c语言中‖是什么意思 编辑:程序博客网 时间:2024/05/15 01:57
监督学习问题(supervised learning)
讲线性回归之前先说一下监督学习问题(supervised learning),我们的目标是给定一个训练集(training set)根据一种学习算法(learning algorithm)去训练函数h(function h ),使得h(x)能够较好的预测y的值。
训练集(training set)的定义如下:
x(i)为输入样例,y(i)为输出样例。x(i)中上标i代表第几个输入样例,y(i)相应的输出样例。
训练函数h(function h )是一个由输入值X预测输出值Y的函数h(x),其中h(x)里含有不确定的参数。训练的过程即为确定h(x)参数的过程。
学习算法(learning algorithm)是一种由训练集作为输入,h(x)的参数作为输出的一种方法。可以把学习算法(learning algorithm)当成一个函数来看待。
监督学习的过程如下:
当y的值是连续的我们称之为回归问题(regression problem),当Y的值只能取离散的值我们称之为分类问题(classification problem)。
线性回归问题(linear regression)
称为线性的原因是因为我们在监督学习问题中所用的训练函数(function h)是一个线性函数,称为回归的原因是因为h(x)是一个连续的函数。
我们定义这个线性函数如下:
其中xi为训练集(training set)中一个输入样例,i代表输入样例中的第i个特征,为相应的参数,为不确定的量。
为了求出这些不确定的量,或者说求出使得预测值h(x)最接近真值y的参数。我们首先要有一个评判标准,或者有一个可以作为评判的值,这个值可以用来表示取不同的值时,h(x)和y的接近程度。代价函数(cost function)就是作为评判用的,它的定义如下:
从式子中可以看出,如果的值取得不好,预测值与真实值的值相差就会越大,最后导致的值就会越大。相反,如果的值取得好,就会很小。我们的目的在于寻求最优的,使得的值最小。
梯度下降算法(gradient descent algorithm)
在机器学习:线性回归(2)中,讲到了代价函数(cost function)。这个函数可以评价值取得好坏,但是我们无法计算每个的取值,即使我们令为0,因为有多个值,一个方程多个未知数是解不出来的。另外一个原因是这个方程还不一定有解。下面就介绍梯度下降算法(gradient descent algorithm),这个算法可以根据训练集(training set)求得最优的,使得的值最小。算法的思想是,首先给每个取一个随机或者统一的初始值,然后根据更新规则将每个的值进行更新,直到每个的值趋向于最优。
更新规则的推导过程:
代价函数(cost function)的定义如下:
式(1)
假设我们只有一个训练样例(x,y),这样我们可以忽略式(1)等号右边的求和符号。然后我们对式(1)两边对求导:
因此对于只有一个训练样例的情况,更新规则是这样的:
式(2)
式(2)中,alpha称为学习率(learning rate),它决定了theta的更新速率。alpha后面的部分是cost function对求偏导的相反的值。接下来解释为什么更新规则要写成这样的形式。
首先,当只有一个训练样例的时候,关于是一个二次函数,而且是开口向上的二次函数,也就是说有极小值,当然这个极小值不一定等于0。我们的目的在于寻求使得取极小值时的的值。这个求的过程根据式(2)是通过不断更新的值求得的一个相对稳定的。
当cost function对的偏导数大于0时,说明此时的是在取得极小值时的位置的右面,也就是取得的太大了,所以要减少的值。减少的速率是由alpha控制的。当cost function对的偏导数小于0时,说明此时的是在取得极小值时的位置的左面,也就是取得的太小了,所以要增加的值。减少的速率是由alpha控制的。
的变化速率不仅要看alpha,还要看的大小,因为当和的值差距很小的时候,说明此时的已经迭代的很好了,所以就趋向于0,所以的更新速率就会较慢。当和的值差距较大的时候,说明此时的不太好,所以的绝对值就会较大,所以的更新速率就会较快。
- 机器学习-线性回归
- 【机器学习】线性回归
- 机器学习-线性回归
- 机器学习 线性回归
- 机器学习-线性回归
- 机器学习--线性回归
- 机器学习---线性回归
- 机器学习----线性回归
- 机器学习--线性回归
- 机器学习--线性回归
- 机器学习-线性回归
- 机器学习---线性回归
- 机器学习-线性回归
- 【机器学习】线性回归
- 机器学习--线性回归
- 机器学习--线性回归
- 【机器学习】线性回归
- 机器学习--线性回归
- 用户体验至上——Web客户端
- 程序员的成功是否有规律可循?
- (Errcode: 13) when executing 'SELECT INTO OUTFILE'
- 9、决不在构造函数和析构函数中调用virtual函数
- 125个基本的C#面试问答
- 【机器学习】线性回归
- Binder Java层的使用介绍
- jQuery幻灯片插件Skippr
- 使用OpenSessionInViewFilter解决lazy failed问题
- 技术总结--android篇(二)--布局的优化
- hd 2187 悼念512汶川大地震遇难同胞——老人是真饿了
- eclipse中的Java文件自动根据svn版本号生成注释
- abercrombie online italia the Japanese steel powerless because of the lack of new stadiums
- 杭电acm1008 hdu-acm-1008解题报告