首先来看一些基本概念

1.概率:

1.1 定义:概率(P)probability:对一件事情发生的可能性的衡量

1.2 范围:0<=P<=1

1.3 计算方法:

1.3.1 根据个人置信

1.3.2 根据历史数据

1.3.3 根据模拟数据

1.4 条件概率:

逻辑回归 处理非线性特征 逻辑回归 非线性问题_逻辑回归

2. Logistic Regression(逻辑回归)

2.1 例子

逻辑回归 处理非线性特征 逻辑回归 非线性问题_深度学习_02

如上图所示,假设现在有一些肿瘤数据,单一变量x表示肿瘤大小,另一组变量表示肿瘤是恶性还是良性的,恶性为1,良性为0,收集八个病人肿瘤数据,上图表示上面四个为恶性,下面四个为良性。为了区分这组数据我们以0.5为界限,大于0.5为恶性,小于0.5为良性。看起来我们用线性回归的方式也可以分析这组数据,但是如果再引入一组病人数据呢?

逻辑回归 处理非线性特征 逻辑回归 非线性问题_机器学习_03


如上图所示,我们引入了第九个病人的数据,肿瘤尺寸很大,应该是恶性的,现在的情况是调整阈值为0.2比较合理,大于0.2为恶性,小于0.2为良性。

但是我们不能随时调整阈值,所以这种情况下单纯使用线性模型是不合理的。

2.2 基本模型

测试数据为X(逻辑回归 处理非线性特征 逻辑回归 非线性问题_深度学习_04)

要学习的参数为:

逻辑回归 处理非线性特征 逻辑回归 非线性问题_逻辑回归 处理非线性特征_05


建立方程式:

逻辑回归 处理非线性特征 逻辑回归 非线性问题_逻辑回归 处理非线性特征_06


向量表示:

逻辑回归 处理非线性特征 逻辑回归 非线性问题_逻辑回归_07


处理二值数据,引入sigmoid函数时曲线平滑化

逻辑回归 处理非线性特征 逻辑回归 非线性问题_深度学习_08


现在就形成了我们要讨论的logistic regression方程,函数图像如下:

逻辑回归 处理非线性特征 逻辑回归 非线性问题_逻辑回归_09


预测函数:

逻辑回归 处理非线性特征 逻辑回归 非线性问题_python_10


也可以用概率表示:

正例(y=1):

逻辑回归 处理非线性特征 逻辑回归 非线性问题_逻辑回归_11


反例(y=0):

逻辑回归 处理非线性特征 逻辑回归 非线性问题_逻辑回归_12


ok,现在我们可以构造出Cost函数2.3 Cost函数

首先来回顾一下线性回归:

逻辑回归 处理非线性特征 逻辑回归 非线性问题_机器学习_13


如上图所示,有一些散落的点,我们用线性回归的方法对它们进行分类,目标函数:

逻辑回归 处理非线性特征 逻辑回归 非线性问题_python_14


将以上式子最小化,来找到最优分界线,上面函数其实就对应于我们之前的函数:

逻辑回归 处理非线性特征 逻辑回归 非线性问题_逻辑回归 处理非线性特征_15

找到合适的参数使上式最小

Logistic Regression:

Cost函数:

逻辑回归 处理非线性特征 逻辑回归 非线性问题_深度学习_16


可以把以上两个方程合并为一个Cost方程:

逻辑回归 处理非线性特征 逻辑回归 非线性问题_深度学习_17


目标:找到合适的参数,使上式最小

用对数是因为对数有很多非常友好的性质,比如对数可以把乘积转化为加减法,对数是单调的,我们对对数最大最小化与对原函数最大最小化是一样的,但是对数的运算会比较简单。

2.4 解法:梯度下降(gradient decent)

逻辑回归 处理非线性特征 逻辑回归 非线性问题_逻辑回归_18


这个算法很难,我也没学会,┭┮﹏┭┮,大概就是通过求导数和偏导这些,在第一张图上面找到最低点对应的参数吧,也相当于等高线,对每一个点求导数,通过一定的更新法则不断地找最低点书面表示法:

逻辑回归 处理非线性特征 逻辑回归 非线性问题_逻辑回归 处理非线性特征_19


通过一定的运算我们得到如下的更新法则:

逻辑回归 处理非线性特征 逻辑回归 非线性问题_python_20


α:学习率

同时对所有的参数进行更新,重复更新直到收敛