Logistic回归学习思路

逻辑斯谛回归是经典的分类方法,它属于对数线性模型,原理是根据现有的数据对分类边界线建立回归公式,以此进行分类。(主要思想)
定义:
在线性回归模型的基础上,使用Sigmoid函数,将线性模型的结果压缩到[0,1]之间,使其拥有概率意义,它可以将任意输入映射到[0,1]区间,实现值到概率转换。
- 属于概率性判别式模型
- 线性分类算法
在学习逻辑回归模型之前,先来看一下逻辑斯谛分布,因为我们的逻辑斯蒂模型就是根据逻辑斯蒂分布得到的;通过参数估计方法直接估计出参数,从而得到P(Y|X)。
下面给出《统计学习方法》上逻辑斯蒂分布的定义:

为了实现根据所有输入预测出类别,为此引入了sigmoid函数p=1/(1+exp(-z)),sigmoid函数刚好也有二分类的功能。
1. 为什么要使用sigmoid函数作为假设?
因为线性回归模型的预测值为一般为大于1的实数,而样本的类标签为(0,1),我们需要将分类任务的真实标记y与线性回归模型的预测值联系起来,也就是找到广义线性模型中的联系函数。如果选择单位阶跃函数的话,它是不连续的不可微。而如果选择sigmoid函数,它是连续的,而且能够将z转化为一个接近0或1的值。
当z=0时,p=0.5
当z>0时,p>0.5 归为1类
当z<0时,p<0.5 归为0类
确定了分类器的函数形式,最佳回归系数是多少,如何确定?
sigmoid函数的输入记为z,将线性模型结果赋值到z,即:
z=w0x0+w1x1+w2x2+w3x3...wnxn
如果采用向量的写法,
上述公式写成z=WT*X,
其中向量X是分类器的输入数据,即为特征值;向量W就是我们要找到的最佳参数,从而使得分类器尽可能精确。
为了找出最佳的回归系数,所以我们可以对两种损失函数进行优化算法
①均方差 (后面会介绍舍弃使用这种作为损失函数)
②对数极大似然估计法
二项逻辑斯蒂回归模型
知道分布的定义和推导过程之后,就是给出我们的逻辑斯蒂模型了:
引用了李航的《统计学习方法》书中如下

注意:(1)最终的结果是通过比较P(Y=1|X)和P(Y=0|X)的大小来确定类别的(类似于朴素贝叶斯);
(2)b在这里其实可以看做是w0x0,其中x0 = 1;
(3)其实本质上这个就是一个二项分布,所以遵循二项分布的分布律。
事件的对数几率(log odds)


也就是说,如果我的模型是逻辑回归模型,那么事件{Y=1|X}发生的对数几率就是输入X的线性函数(模型),反之,知道了这个推论,我们是可以反推出逻辑斯蒂模型的形式的

求目标参数,常用目标函数的选取:
①损失函数:均方差(标准值-预测值)


②对数似然函数
首先极大似然函数是一种确定模型参数的方法,它确定参数值的方法是通过找到最大化模型产生真实数据的那一组参数。
最大似然估计就是通过已知结果去反推最大概率导致该结果的参数。
极大似然估计是概率论在统计学中的应用,它提供了一种给定观察数据来评估模型参数的方法,即 “模型已定,参数未知”,通过若干次试验,观察其结果,利用实验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。逻辑回归是一种监督式学习,是有训练标签的,就是有已知结果的,从这个已知结果入手,去推导能获得最大概率的结果参数,只要我们得出了这个参数,那我们的模型就自然可以很准确的预测未知的数据了。(对极大似然函数的详细理解可以参考:https://blog.csdn.net/_/article/details/)
通过极大似然推导得出逻辑回归的目标函数,这里我给出手写的推导:

极大似然函数是概率论在统计学中的应用,它提供了一种给定观察数据来评估模型参数的方法,即 “模型已定,参数未知”,通过若干次试验,观察其结果,利用实验结果得到某个参数值能够使样本出现的概率为最大,则称为极大似然估计。通过求极大似然函数来得到参数w的估计值。

以上就是通过极大似然函数作为目标函数,得出了参数向量w值
综上logistic回归模型的目标函数是极大似然函数
源码:
运行结果:

用示例来解释代码的执行过程:


逻辑回归主要是解决二分类问题
项目描述
二元分类是机器学习中最基础的问题之一,在这份教学中,你将学会如何实作一个线性二元分类器,来根据人们的个人资料,判断其年收入是否高于 50,000 美元。我们将用 logistic regression 来达成以上目的,你可以尝试了解、分析两者的设计理念及差别。 实现二分类任务:
- 个人收入是否超过50000元?
数据集介绍
这个资料集是由UCI Machine Learning Repository 的Census-Income (KDD) Data Set 经过一些处理而得来。为了方便训练,我们移除了一些不必要的资讯,并且稍微平衡了正负两种标记的比例。事实上在训练过程中,只有 X_train、Y_train 和 X_test 这三个经过处理的档案会被使用到,train.csv 和 test.csv 这两个原始资料档则可以提供你一些额外的资讯。
- 已经去除不必要的属性。
- 已经平衡正标和负标数据之间的比例。
特征格式
- train.csv,test_no_label.csv。
- 基于文本的原始数据
- 去掉不必要的属性,平衡正负比例。
- X_train, Y_train, X_test(测试)
- train.csv中的离散特征=>在X_train中onehot编码(学历、状态...)
- train.csv中的连续特征 => 在X_train中保持不变(年龄、资本损失...)。
- X_train, X_test : 每一行包含一个510-dim的特征,代表一个样本。
- Y_train: label = 0 表示 "<=50K" 、 label = 1 表示 " >50K " 。
项目要求
- 请动手编写 gradient descent 实现 logistic regression
- 请动手实现概率生成模型。
- 单个代码块运行时长应低于五分钟。
- 禁止使用任何开源的代码(例如,你在GitHub上找到的决策树的实现)。
数据准备
项目数据集以及源码:https://e.coding.net/xucancan1/logistic/logistic.git。
源码:
逻辑回归也可以做以下的二分类问题:
1.区分是否是垃圾邮件
2.银行判断是否给用户办信用卡
3.从氙气病症预测病马的死亡率
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/14417.html