逻辑回归(Logistic Regression)

逻辑回归(Logistic Regression)是通过回归来解决分类问题,为监督学习方法,比较线性回归与逻辑回归,线性回归当变量有较好的线性关系时,比如收入与消费等,通过拟合样本点,来预测模型的未来区域,而逻辑回归主要解决当因变量为分类变量,比如类别为患病与不患病,手机偏好喜欢iPhone、三星或者小米等,如图显示仅有两个类别的时,这个时候传统线性回归无法解决问题,从图可以直观感觉出,逻辑回归通过将线性回归做了一次函数变换,来重新构造函数,拟合并解释模型,如何将线性回归转换为非线性函数?

逻辑回归推导如下

几率表示某件事情发生的概率§与不发生概率(1-p)之间的比率,在几率的基础上取(自然底数)对数,则构成该事件的对数几率(logit),经过转换,两边取自然底数 ,逻辑回归基本模型方程形成,这样就y取值由原来的的(-∞,+∞)映射为(0,1)区间,如图最后逻辑回归图形取值为(0,1)之间。(逻辑回归模型和逻辑这个词语本身没有任何关系,类似还有鲁棒性这种翻译,从图示推导中看出两边取了对数,与概率相关,正确应该称为对数几率模型)

Sigmod激活函数与逻辑回归

Sigmod函数表示的S型曲线的总称,在神经网络里实际可以看成为逻辑回归,将变量映射到0-1之间,Sigmod函数作用是将是将输入的数据通过非线性映射,使得神经网络逼近任何非线性函数。

如图,红色的曲线是需要拟合的曲线,红色的曲线可以表示为一堆函数的集合+常数项,在红色的曲线不断取点,这样可以把红色曲线拟合出来,这样的红色曲线就可以表示出来。为什么不用线性激活函数去拟合这条曲线?线性激活函数通过不断叠加,最后本质还是线性回归,导致神经网络隐藏层消失了,失去神经网络多层的意义,非线性函数更加具有拓展性。

逻辑回归损失函数(极大似然估计,交叉熵)

极大似然函数估计,根据伯努利分布通过极大似然估计来推导损失函数,假设预测的表现ŷ=1的概率为P,ŷ=0的概率就是1-P,假设预测标签结果Y={Y0,Y1,……,Yn},根据伯努利实验得出每次实验的概率质量函数PMF:P(yi)=pyi(1-p)1-yi 通过连乘,通过极大似然函数参数估计推导损失函数如下:

交叉熵,根据交叉熵的公式,P,Q代表时观察和预测两个标签集合,交叉熵反映的是宏观两个集合的接近程度,通过不断将所有样本点交叉熵取均值

这里发现极大似然函数估计与交叉熵构造的损失函数式一样的,不同学科之间很多方法时相通的,可能只是表述不一样

机器学习逻辑回归与计量经济学logit模型

机器学习中的逻辑回归与计量经济学logit模型,构造损失函数是一样的,如图,根据伍德里奇书给出的表述,这段文字描述与随机变量都是满足伯努利分布介绍相似,通过极大似然函数构造损失函数,来求解参数,不过计量经济学的参数结合理论,侧重对参数进行解释,会对参数的会做各种假设,并对参数及模型本身进行各种检验。

logit模型解释,如图,采用美国劳动市场数据,进行logit回归处理的数据如下,明显可以看出,LR检验结果表示,各变量参数拒绝了各变量0假设,教育等变量通过了5%显著性性水平,进一步对模型结果截图,从教育水平来看,每增加1年教育,就业市场增加4.2%的就业机会(实际得出这些结论没有这么简单,此外,还需对变量进行一系列的深度处理,还需引入probit模型进行对比分析,当然现实大部分时候运用的时候都不太严谨,呵呵,懂王)

逻辑回归优点 1.不需要太多的计算资源,易于实现 2.因为输出的概率,通常不需要对特征进行标准化处理

逻辑回归缺点 1.无法处理大量的特征变量,容易过拟合 2.对于特征与目标变量不相关或者特征之间高度相似,逻辑回归效果不是很好

采用数据集为心脏病数据集,数据本身经过已经处理过,直接上模型,超参数为默认(因为模型训练结果还可以,不再进一步结合网格搜索进行调参处理)

import pandas as pd
import numpy as np
from sklearn import metrics
from sklearn.metrics import classification_report
from sklearn.model_selection import train_test_split
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'SimHei'
import seaborn as sns
df = pd.read_csv("heart.csv")
X = df.drop(['target'],axis=1)
y = df.target.values
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=16)
logreg = LogisticRegression()
logreg.fit(X_train, y_train)
y_pred = logreg.predict(X_test)
cnf_matrix = metrics.confusion_matrix(y_test, y_pred)
class_names=[0,1]
fig, ax = plt.subplots()
tick_marks = np.arange(len(class_names))
plt.xticks(tick_marks, class_names)
plt.yticks(tick_marks, class_names)
sns.heatmap(pd.DataFrame(cnf_matrix), annot=True, cmap="YlGnBu" ,fmt='g')
ax.xaxis.set_label_position("top")
plt.tight_layout()
plt.title('混淆矩阵', y=1.1)
plt.ylabel('真实标签')
plt.xlabel('预测标签')

#进一步分析其指标
target_names = ['without heart disease ', 'heart disease']
print(classification_report(y_test, y_pred, target_names=target_names))

模型准确率80%,recall等各指标表现还可以,进一步通过ROC曲线表示真阳性与假阳性关系图

y_pred_proba = logreg.predict_proba(X_test)[::,1]
fpr, tpr, _ = metrics.roc_curve(y_test,  y_pred_proba)
auc = metrics.roc_auc_score(y_test, y_pred_proba)
plt.plot(fpr,tpr,label="data, auc="+str(auc))
plt.legend(loc=4)
plt.show()

ROC曲线表示真阳性与假阳性关系图,AUC取值在0~1之间,这里为0.9,综合说明模型泛化性能还是比较好的

逻辑回归(神经网络Sigmod激活函数,计量logit模型)相关推荐

  1. 神经网络仿真逻辑回归,神经网络仿真实验matlab

    BP神经网络 网络仿真具体什么意思?为什么进行仿真?仿真有什么用?(初学BP...) 用样本去训练一个BP网络,然后用新的样本作为输入,再通过这个已经训练好的BP网络,得到的数据就是仿真的结果,这就是 ...

  2. 大数据分析案例-基于逻辑回归算法构建垃圾邮件分类器模型

  3. 神经网络动物园-逻辑回归-激活函数-梯度下降-反向传播-链式法则

    转载源自: [日更]子豪兄深度学习与神经网络系列教程_哔哩哔哩_bilibili 神经网络动物园链接: The Neural Network Zoo - The Asimov Institute 其中 ...

  4. 【数据挖掘】神经网络 后向传播算法 ( 线性回归与逻辑回归 | 单个神经元本质及逻辑 | 神经网络每一层分析 | 神经网络矩阵形式 | 线性变换与非线性变换 )

    文章目录 I . 线性回归 与 逻辑回归 II . sigmod 非线性激活函数 III . 神经元单元 逻辑 IV . 单个 神经元单元 总结 V . 神经网络 每一层分析 VI . 神经网络 矩阵 ...

  5. 一文彻底搞懂逻辑回归模型

    1.逻辑回归   逻辑回归(Logistic regression,简称LR)虽然其中带有"回归"两个字,但逻辑回归其实是一个分类模型,并且广泛应用于各个领域之中. 将线性回归模型 ...

  6. 机器学习系列7 基于Python的Scikit-learn库构建逻辑回归模型

    课前测验 本文所用数据免费下载 在本文中,你将学习: 0 用于数据可视化的新库 1 逻辑回归原理及技术 目录 一.内容介绍 二.理论知识 1.分类与回归的区别 2.逻辑回归与其他回归的区别 3.逻辑回 ...

  7. Logistic逻辑回归(sigmod二分类)成本函数推导 及其梯度下降

    logistic逻辑回归是比较常用的二分分类,其激活函数适用于各种二分类场景,但是其函数在t极大或者极小的时候趋于饱和会引发梯度消失,影响网络调参使得函数不能很好的收敛 有兴趣的同学可以参阅我的上一篇 ...

  8. logistic回归 简介_金融专业进!逻辑回归模型简述

    逻辑回归模型 逻辑回归属于机器学习中的较为经典的模型,在很多金融专业的实证部分都会用到逻辑回归.接下来分成以下几个部分对逻辑回归模型进行介绍. 1. 模型简介 逻辑回归中的"逻辑" ...

  9. Lesson 4.1-4.2 逻辑回归模型构建与多分类学习方法逻辑回归参数估计

    Lesson 4.1 逻辑回归模型构建与多分类学习方法 首先我们来讨论关于逻辑回归的基本原理,当然,在此过程中,我们也将进一步补充机器学习数学理论基础. 逻辑回归的基本原理,从整体上来划分可以分为两个 ...

最新文章

  1. 改进AI/ML部署的5种方法
  2. MySQL主从(MySQL proxy Lua读写分离设置,一主多从同步配置,分库分表方案)
  3. linux配置永久网管,企业Linux网管配置
  4. fdisk命令非交互模式及parted的mkpart命令第一个参数说明
  5. JAVA数据类型与逻辑练习
  6. RHEL 5.4下cyrus-sasl-2.1.22 的编译安装
  7. [转载] java提取字符串中的字母数字
  8. 善领dsa2020最新车机ce版_内功实力再精进 试驾上汽大通V80 PLUS城市版
  9. windows无法更改密码解决办法
  10. 希尔排序的时间复杂度为什么能小于O(n^2)
  11. Python中的关键字的用法
  12. **Python 复数计算会丢失虚部的问题**ComplexWarning: Casting complex values to real discards the imaginary part
  13. Qt QPlainTextEdit和QTextEdit区别
  14. 图像特征提取之LoG特征
  15. AutoLeader控制组——51单片机学习笔记(一)
  16. 搭建小程序(python)
  17. CV2逐步学习-1.imread()详解+cvtColor()颜色空间转换
  18. 京东数科商用智能机器人首次亮相2019CES
  19. python控制视频播放器的大小与位置_python_十几行代码实现简单播放器
  20. 十月百度,阿里巴巴,迅雷搜狗最新面试七十题(第201-270题) .

热门文章

  1. maskrcnn训练问题报错:selected_polygons.append(self.polygons[i]) IndexError: list index out of range
  2. python 借助opencv实现Gabor滤波特征提取
  3. 实名认证平台如何实现?
  4. 【转】ORA-28040: 没有匹配的验证协议
  5. 四种Linux硬盘分区方式,首次安装Linux之磁盘分区
  6. server多笔记录拼接字符串 sql_第四章、SQL Server数据库查询大全(单表查询、多表连接查询、嵌套查询、关联子查询、拼sql字符串的查询、交叉查询)...
  7. Python鼠标点击图片,获取点击点的像素坐标/像素值
  8. 小程序源码:升级版手机检测微信工具
  9. Reason: Cannot pass null or empty values to constructor in spring security
  10. @property python知乎_知乎某处XSS+刷粉超详细漏洞技术分析