1、线性回归和逻辑回归

1、什么是机器学习

利用大量的数据样本,使得计算机经过不断的学习得到一个模型,用来对新的未知数据作预测。html

  • 有监督学习(分类、回归)

同时将数据样本和标签输入给模型,模型学习到数据和标签的映射关系,从而对新数据进行预测。
这里写图片描述web

  • 无监督学习(聚类)

只有数据,没有标签,模型经过总结规律,从数据中挖掘出信息。
这里写图片描述算法

  • 强化学习

强化学习会在没有任何标签的状况下,经过先尝试作出一些行为获得一个结果,经过这个结果是对仍是错的反馈,调整以前的行为,就这样不断的调整,算法可以学习到在什么样的状况下选择什么样的行为能够获得最好的结果。app

就比如你有一只尚未训练好的小狗,每当它把屋子弄乱后,就减小美味食物的数量(惩罚),每次表现不错时,就加倍美味食物的数量(奖励),那么小狗最终会学到一个知识,就是把客厅弄乱是很差的行为。机器学习

2、线性回归

利用大量的样本 D = ( x i , y i ) i = 1 N D={(x_i,y_i)}_{i=1}^N ,经过有监督的学习,学习到由x到y的映射 f f ,利用该映射关系对未知的数据进行预估,由于y为连续值,因此是回归问题。svg

  • 单变量状况:
    这里写图片描述函数

  • 多变量状况:学习

二维空间的直线,转化为高维空间的平面
这里写图片描述优化

2.1 线性回归的表达式

机器学习是数据驱动的算法,数据驱动=数据+模型,模型就是输入到输出的映射关系。spa

模型=假设函数(不一样的学习方式)+优化

1. 假设函数

线性回归的假设函数( θ 0 \theta_0 表示截距项, x 0 = 1 x_0=1 ,方便矩阵表达): f ( x ) = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 . . . + θ n x n f(x)=\theta_0x_0+\theta_1x_1+\theta_2x_2...+\theta_nx_n

向量形式( θ , x \theta,x 都是列向量): f ( x ) = θ T x f(x)=\theta^Tx

2. 优化方法

监督学习的优化方法=损失函数+对损失函数的优化

3. 损失函数

如何衡量已有的参数 θ \theta 的好坏?

利用损失函数来衡量,损失函数度量预测值和标准答案的误差,不一样的参数有不一样的误差,因此要经过最小化损失函数,也就是最小化误差来获得最好的参数。

映射函数: h θ ( x ) h_{\theta}(x)

损失函数: J ( θ 0 , θ 1 , . . . , θ n ) = 1 2 m i = 1 m ( h θ ( x ( i ) ) y ( i ) ) 2 J(\theta_0,\theta_1,...,\theta_n)=\frac{1}{2m}\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})^2

解释:由于有m个样本,因此要平均,分母的2是为了求导方便

损失函数:凸函数

4. 损失函数的优化

损失函数如右图所示,是一个凸函数,咱们的目标是达到最低点,也就是使得损失函数最小。
这里写图片描述
多元状况下容易出现局部极值

这里写图片描述

求极值的数学思想,对公式求导=0便可获得极值,可是工业上计算量很大,公式很复杂,因此从计算机的角度来说,求极值是利用梯度降低法。

这里写图片描述

① 初始位置选取很重要

② 复梯度方向更新,二维状况下,函数变换最快的方向是斜率方向,多维状况下就成为梯度,梯度表示函数值增大的最快的方向,因此要在负梯度方向上进行迭代。

θ \theta 的更新公式如上图,每一个参数 θ 1 , θ 2 . . . \theta_1,\theta_2... 都是分别更新的

高维状况:梯度方向就是垂直于登高线的方向
这里写图片描述
参数更新示例:
这里写图片描述
对每一个theta都进行更新:
这里写图片描述

学习率:

① 学习率太大,会跳过最低点,可能不收敛
② 学习率过小收敛速度过慢

5. 过拟合和欠拟合

这里写图片描述
过拟合的缘由:

① 若是咱们有不少的特征或模型很复杂,则假设函数曲线能够对训练样本拟合的很是好,学习能力太强了,可是丧失了通常性。
② 眼见不必定为实,训练样本中确定存在噪声点,若是全都学习的话确定会将噪声也学习进去。

过拟合形成什么结果:

过拟合是给参数的自由空间太大了,能够经过简单的方式让参数变化太快,并未学习到底层的规律,模型抖动太大,很不稳定,variance变大,对新数据没有泛化能力。

6. 利用正则化解决过拟合问题

正则化的做用:

① 控制参数变化幅度,对变化大的参数惩罚

② 限制参数搜索空间

添加正则化的损失函数:
J ( θ 0 , θ 1 , . . . , θ n ) = 1 2 m i = 1 m ( h θ ( x ( i ) y ( i ) ) 2 + λ 2 m j = 1 n θ j 2 J(\theta_0,\theta_1,...,\theta_n)=\frac{1}{2m}\sum_{i=1}^m(h_{\theta}(x^{(i)}-y^{(i)})^2+ \frac{\lambda}{2m}\sum_{j=1}^n \theta_j^2

m:样本有m个
n:n个参数,对n个参数进行惩罚
λ \lambda :对偏差的惩罚程度, λ \lambda 越大对偏差的惩罚越大,容易出现过拟合, λ \lambda 越小,对偏差的惩罚越小,对偏差的容忍度越大,泛化能力好。

3、逻辑回归

监督学习,解决二分类问题。

分类的本质:在空间中找到一个决策边界来完成分类的决策

逻辑回归:线性回归能够预测连续值,可是不能解决分类问题,咱们须要根据预测的结果断定其属于正类仍是负类。因此逻辑回归就是将线性回归的 ( , + ) (-\infty,+\infty) 结果,经过sigmoid函数映射到 ( 0 , 1 ) (0,1) 之间。

线性回归决策函数: h θ ( x ) = θ T x h_{\theta}(x)=\theta^Tx

将其经过sigmoid函数,得到逻辑回归的决策函数: h θ ( x ) = 1 1 + e θ T x h_{\theta}(x)=\frac{1}{1+e^{-\theta^Tx}}

为何使用sigmoid函数:
这里写图片描述
① 能够对 ( , + ) (-\infty,+\infty) 结果,映射到 ( 0 , 1 ) (0,1) 之间,做为几率。

x < 0 , s i g m o i d ( x ) < 1 2 ; x > 0 , s i g m o i d ( x ) > 1 2 x<0,sigmoid(x)<\frac{1}{2};x>0,sigmoid(x)>\frac{1}{2} ,能够将 1 2 \frac{1}{2} 做为决策边界。

③ 数学特性好,求导容易: g ( z ) = g ( z ) ( 1 g ( z ) ) g'(z)=g(z)\cdot(1-g(z))
这里写图片描述

3.1 逻辑回归的损失函数

线性回归的损失函数为平方损失函数,若是将其用于逻辑回归的损失函数,则其数学特性很差,有不少局部极小值,难以用梯度降低法求最优。
这里写图片描述
这里写图片描述

逻辑回归损失函数:对数损失函数

这里写图片描述

解释:若是一个样本为正样本,那么咱们但愿将其预测为正样本的几率p越大越好,也就是决策函数的值越大越好,则logp越大越好,逻辑回归的决策函数值就是样本为正的几率;

若是一个样本为负样本,那么咱们但愿将其预测为负样本的几率越大越好,也就是(1-p)越大越好,即log(1-p)越大越好。

为何要用log:

样本集中有不少样本,要求其几率连乘,几率为(0,1)间的数,连乘愈来愈小,利用log变换将其变为连加,不会溢出,不会超出计算精度。

逻辑回归损失函数:

这里写图片描述

这里写图片描述
J ( θ ) θ j = 1 m [ i = 1 m ( h θ ( x ( i ) ) y ( i ) ) x j ( i ) ] \frac{\partial J(\theta)}{\partial \theta_j}=\frac{1}{m}[\sum_{i=1}^m(h_{\theta}(x^{(i)})-y^{(i)})x_j^{(i)}]

3.2 逻辑回归实现多分类

这里写图片描述

  • 一对一(one vs one)

一对一分类,每两个类之间构建一个分类器,共须要 N ( N 1 ) 2 \frac{N(N-1)}{2} 个分类器

  • 一对多(one vs rest)

一对多分类器,每一个分类器判断是三角形仍是不是三角形,共须要N个分类器。

4、LR的特色

可解释性高,工业中可控度高。

这里写图片描述

这里写图片描述

5、 为何逻辑回归比线性回归好

虽然逻辑回归可以用于分类,不过其本质仍是线性回归。它仅在线性回归的基础上,在特征到结果的映射中加入了一层sigmoid函数(非线性)映射,即先把特征线性求和,而后使用sigmoid函数来预测。

这主要是因为线性回归在整个实数域内敏感度一致,而分类范围,须要在[0,1]以内。而逻辑回归就是一种减少预测范围,将预测值限定为[0,1]间的一种回归模型,其回归方程与回归曲线以下图所示。逻辑曲线在z=0时,十分敏感,在z>>0或z<<0处,都不敏感,将预测值限定为(0,1)。

  1. LR在线性回归的实数范围输出值上施加sigmoid函数将值收敛到0~1范围, 其目标函数也所以从差平方和函数变为对数损失函数, 以提供最优化所需导数(sigmoid函数是softmax函数的二元特例, 其导数均为函数值的f*(1-f)形式)。请注意, LR每每是解决二元0/1分类问题的, 只是它和线性回归耦合太紧, 不自觉也冠了个回归的名字(马甲无处不在). 若要求多元分类,就要把sigmoid换成大名鼎鼎的softmax了。

  2. 首先逻辑回归和线性回归首先都是广义的线性回归,其次经典线性模型的优化目标函数是最小二乘,而逻辑回归则是似然函数,另外线性回归在整个实数域范围内进行预测,敏感度一致,而分类范围,须要在[0,1]。逻辑回归就是一种减少预测范围,将预测值限定为[0,1]间的一种回归模型,于是对于这类问题来讲,逻辑回归的鲁棒性比线性回归的要好。

  3. 逻辑回归的模型本质上是一个线性回归模型,逻辑回归都是以线性回归为理论支持的。但线性回归模型没法作到sigmoid的非线性形式,sigmoid能够轻松处理0/1分类问题。

6、 LR和SVM的关系

一、LR和SVM均可以处理分类问题,且通常都用于处理线性二分类问题(在改进的状况下能够处理多分类问题)

二、两个方法均可以增长不一样的正则化项,如l一、l2等等。因此在不少实验中,两种算法的结果是很接近的。

区别:

一、LR是参数模型,SVM是非参数模型。

二、从目标函数来看,区别在于逻辑回归采用的是logistical loss,SVM采用的是hinge loss,这两个损失函数的目的都是增长对分类影响较大的数据点的权重,减小与分类关系较小的数据点的权重。

三、SVM的处理方法是只考虑support vectors,也就是和分类最相关的少数点,去学习分类器。而逻辑回归经过非线性映射,大大减少了离分类平面较远的点的权重,相对提高了与分类最相关的数据点的权重。

四、逻辑回归相对来讲模型更简单,好理解,特别是大规模线性分类时比较方便。而SVM的理解和优化相对来讲复杂一些,SVM转化为对偶问题后,分类只须要计算与少数几个支持向量的距离,这个在进行复杂核函数计算时优点很明显,可以大大简化模型和计算。

五、logic 能作的 svm能作,但可能在准确率上有问题,svm能作的logic有的作不了。