Logistic回归(Logistic Regression)算法笔记(一)-Python

写在前面的话:哈喽,大家早安、午安、晚安喽,欢迎大家指点,也希望我的内容可以温暖、帮助同在学习路上的人们~再次申明:本文的理论知识来自Peter Harrington的《机器学习实战》和李航的《统计学习方法》,非常感谢这些优秀人物和优秀书籍。正文开始~~


今天主要分享Logistic回归(LR)的基础知识。首先简答介绍一下回归的概念。

回归:回归分析是一种统计学分析数据的方法,目的在于了解两个或多个变数间是否相关、相关方向与强度,并建立数学模型以便观察特定变数来预测研究者感兴趣的变数。回归在数学上来说就是给定一个点集合,能够用一条曲线去拟合。根据曲线的差异分为线性回归,二次回归,Logistic回归等。

Logistic回归工作原理:根据现有数据对分类边界线建立回归公式,以此进行分类。‘回归’源于最佳拟合,表示要找到最佳拟合参数集。训练分类器时的做法就是寻找最佳拟合参数,使用的是最优化算法。见图1,Logistic回归就是为了找到这样的分类边界(Decision Boundary)备注:如果是二维情况,那么就是找到如图0中的分类曲线,如果是多维,那么就是找到可以分类的平面

Logistic回归(Logistic Regression)算法笔记(一)-Python_第1张图片
图1 Logistic回归分类功能演示

辣么,接下来就是求解这条曲线了,如果是Y=0,1两种类型的,可以见图2。(备注:很遗憾,因为我刚开始学,所以这篇暂不考虑多类型分类的问题。)

Logistic回归(Logistic Regression)算法笔记(一)-Python_第2张图片
图2 Logistic回归计算公式推导(Y=0,1)

Logistic回归公式中这些θ参数的设置,常用方法有:牛顿法、拟牛顿法、梯度上升方法(或梯度下降方法)、随机梯度上升方法(或随机梯度下降方法)等。比如如果求函数的最大值,那么就利用梯度上升方法来求解;如果要找函数的最小值,那么就利用梯度下降方法来求解。

辣么,具体的实现过程如下:

1)构造预测函数,用h(θ)表示,其实此处的θ和图1中的w是一个意思,均表示特征值的参数。h(θ)与特征值X可能是线性关系,也可能是非线性关系,见图3-图4。

Logistic回归(Logistic Regression)算法笔记(一)-Python_第3张图片
图3 线性关系
Logistic回归(Logistic Regression)算法笔记(一)-Python_第4张图片
图 4 非线性关系

2)构造求解参数的代价函数

在线性规划中,代价函数的思想是要使得预估结果h(θ)与实际y差距最小,见图5

图5 线性回归中的代价函数

那么,在Logistic回归中,可以将J(θ)表示为如下图6中的形式:

图6 Logistic回归中的代价函数

3)利用梯度下降法求解J(θ)的最值

应该通过拟合参数,使得J(θ)达到最值,这时候就需要求函数的梯度。为了简化求导的计算,可以考虑以下的代价函数:

Logistic回归(Logistic Regression)算法笔记(一)-Python_第5张图片
图7 代价函数
图8 参数计算中的循环迭代方法

因为图8中对θ的求导刚好可以消去求导的因子,实际每次参数θ的迭代见图9

Logistic回归(Logistic Regression)算法笔记(一)-Python_第6张图片
图9 基于图7中的代价函数得到的参数迭代计算法

4)基本思想就是这样啦,开始写代码验证啦~~

(1)准备数据

Logistic回归(Logistic Regression)算法笔记(一)-Python_第7张图片
图10 Logistic回归-准备数据

(2)通过梯度下降来获取参数

Logistic回归(Logistic Regression)算法笔记(一)-Python_第8张图片
图11 梯度下降法求解参数

(3)基于求出的参数θ向量,根据新的特征值来预测分类

Logistic回归(Logistic Regression)算法笔记(一)-Python_第9张图片
图12 预测分类

好哒,关于Logistic回归的初级学习基本就是这些,以后我会更加深入的学习,请大神轻拍,也希望自己总结的内容对大家有所帮助,谢谢

另外,学习Logistic回归的不错的资料,可以查看从初等数学视角解读逻辑回归、浅析Logistic Regression  等

你可能感兴趣的:(Logistic回归(Logistic Regression)算法笔记(一)-Python)