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