算法03:回归算法

回归算法(Regression)是研究自变量和因变量之间关系的一种预测模型技术。回归算法与分类算法类似,是基于已有的数据样本,对未来的样本进行预测。回归算法与分类算法也有不同,主要区别在于输出变量的类型。回归是定量的输出,即连续变量的预测;分类是定性的输出,即离散变量的预测。例如:预测明天的温度,是回归任务;预测明天是晴天还是雨天,是分类任务。回归算法可以通过三种方法分类:自变量的个数、因变量的类型和回归线的形状,主要包括线性回归、逻辑回归、多项式回归、逐步回归等多种算法。

均值(mean):又称平均数或平均值

$$x=\cfrac{\sum_{i=1}^n x_i}{n}$$

中位数(median):将数据中各数值按照大小顺序排列,位于中间位置的变量

众数(mode):数据中出现次数最多的数

方差(variance):描述离散程度的衡量方式,此处的$x$为平均数

$$s^2=\cfrac{\sum_{i=1}^n (x_i-x)^2}{n}$$

标准差(standard deviation):将方差开方就得到标准差


线性回归(Linear Regression)

对于一组分布在二维坐标系上的样本,线性回归的目标是找到一条描述样本变化规律的线,使所有样本尽可能接近这条线。

例如:找到房屋的面积、房间数对价格的影响,现有以下数据:

面积 房间数 价格
210 3 40.0
160 3 33.1
240 3 36.9
141 2 23.2
300 4 54.0

假设有一个公式,能够根据面积和房间数算出价格,这个公式不仅满足现在的样本数据,在新的数据上也要尽量准确,假定这个公式是线性函数:

$$h(x)=\theta_0+\theta_1 x_1+\theta_2 x_2$$

其中,$x_1$和$x_2$分别表示面积和房间数,$\theta$表示权重,$h(x)$是房屋的价格。

首先把他看作一条$y=wx+b$的直线,其中$w$就是权重$\theta$,$x$为样本数据,$b$为截距,为了公式推导的方便,我们设$x_0=1$,上面的公式简化如下:

$$h(x)=\theta_0 x_0+\theta_1 x_1+\theta_2 x_2=\sum_{i=0}^n \theta_i x_i=\theta^Tx$$

现在只需得到$\theta$,即可得到最终的模型。想要模型能够准确描述当前数据,最理想的情况是这条线能通过所有样本数据,但实际上这几乎不可能,所以只能使$\theta$能够在当前数据集上尽可能准确。反过来想,当找到这条直线后,每个样本距离这条直线都存在一定的误差,即截距,当总截距最小时,这条直线就是我们需要的模型,所以我们只要找到截距与模型间的关系,就可以获得模型,这个关系被称为损失函数

$$J(\theta)=\cfrac{1}{2m}\sum_{i=1}^m (h(x^{(i)})-y^{(i)})^2$$

其中,$m$为样本数量,按照这个公式,求解出使损失函数最小的$\theta$。


逻辑回归(Logistic Regression)

逻辑回归就是将上面线性回归预测的值,转化为离散的结果进行输出。逻辑回归虽然名字里带回归,实际上是分类,只是过程中用到了回归算法。逻辑回归的具体算法此处暂不详述。

分享到