可能没有不知道 excel 的了,但是仅仅靠excel就能玩转逻辑回归?有的小伙伴真想有人把这个做一下。

今天这篇文章,晓文带咱们就先来用Excel来实现一个简单的逻辑回归模型。咱们由简到繁,一步步来

1、Base模型

咱们先来尝试实现一个Base的逻辑回归模型,即单步更新的模型。这里咱们使用鸢尾花数据集。但鸢尾花数据集中一共三类,咱们图个简单,使用前两类的数据集,把setosa类标记为0,另一类标记为1,并选择正负样本各10条。excel中的数据如下:

然后,设定一个初始的预估值,咱们争取让预估值在[-0.5,0.5)之间:

每个参数都这么处理后,咱们复制粘贴一遍得到的参数,要不每次动excel,参数都会跟着刷新,粘贴方式选择只有值:

有了样本和参数,咱们可以来计算预估值了,先回顾一下逻辑回归的预估值(即预测为1的概率)计算公式:

在excel中,实现类似这种w*x,需要使用sumproduct函数,举个简单的例子:

这样的结果就是2 * 2 + 3 * 3 + 4 * 4 + 5 * 5 = 54

因此,计算逻辑回归的预估值,在excel中可用下面的公式:

这样,咱们就计算好每个样本的预估值了:

下一步是计算单样本的loss,公式如下(少了一个负号):

在excel中,使用下面的公式:

可以看到,这里加入了一个if判断,如果预估值和实际值相同,则误差为0,如果不加这个,会出现什么情况呢:

所以一定要加上这个IF判断

好了,这时候,咱们已经计算好单个样本的预估值及损失了:

模型的总损失就是单样本损失的平均值。

接下来的任务是通过梯度下降法对参数进行更新。首先设定一个学习率:

这里学习率不宜设置的太大。

随后时计算梯度,逻辑回归中,每个参数的梯度计算如下:

上面的式子意思就是说,当要更新第j个参数时,对每个样本i,我们先计算其预估值和实际值的差,再乘上样本i第j个特征值,随后对每个样本计算后再取平均值作为第j个参数的梯度。咱们可以把平均值拆分为两部分,一部分是预估值 * 特征值,一部分是实际值 * 特征值,因此,我们之前讲过的sumproduct函数又派上用场了,梯度计算如下:

对每个参数都执行一次,我们就得到了每个参数的梯度:

接下来,咱们要计算更新后的参数,计算公式如下:

那么,在excel中,同样对参数进行更新(下图中的K11,应该用$进行锁定):

接下来,要把“更新后参数”那一行对应的参数,复制到“参数”那一行。直接复制是不行的,会出现下面的问题:

我们要选择只粘贴值:

你有没有发现,但我们粘贴值过去的时候,“梯度”和“更新后参数”那一行变了,没错,因为参数那一行的变动,导致整个梯度、预估值、损失等都变了,此时的梯度等已经是下一轮的梯度了。

所以!要想实现不断的更新,其实关键的一步就是把“更新后参数”那一行只复制值到“参数”那一行,但我们总不能手动复制吧,想要更方便的话,就是将其变为一个快捷键,实现一键更新!这时候录制宏功能就来了!

接下来我们就可以通过刚才设置的快捷键command + option + e来不断更新参数了,也可以发现,咱们的loss在不断下降。这样一个简单的逻辑回归过程就实现了!

咱们现在实现的一个功能,还比较简单,只能通过单步运算来优化参数。像一次运行多步、正则项、early stop、绘制损失函数等等还没有实现。


推荐阅读:

如何拿下10个算法工程师offer,不可错过!

Python绘制玫瑰和佩奇

Python数据分析学习路线个人总结

Python与算法社区

 点个好看

仅用Excel就可玩转逻辑回归?!相关推荐

  1. sklearn实战-----5.逻辑回归与评分卡

    1 概述 1.1 名为"回归"的分类器 在过去的四周中,我们接触了不少带"回归"二字的算法,回归树,随机森林的回归,无一例外他们都是区别于分类 算法们,用来处理 ...

  2. sklearn专题五:逻辑回归

    目录 1 概述 1.1 名为"回归"的分类器 1.2 为什么需要逻辑回归 2 linear_model.LogisticRegression 2.1 二元逻辑回归的损失函数 2.1 ...

  3. sklearn实战之逻辑回归与制作评分卡

    sklearn实战系列: (1) sklearn实战之决策树 (2) sklearn实战之随机森林 (3) sklearn实战之数据预处理与特征工程 (4) sklearn实战之降维算法PCA与SVD ...

  4. 《菜菜的机器学习sklearn课堂》逻辑回归

    逻辑回归 概述:名为"回归"的分类器 为什么需要逻辑回归? sklearn中的逻辑回归 linear_model.LogisticRegression 二元逻辑回归的损失函数 损失 ...

  5. 风控评分卡模型——逻辑回归

    目录 1.评分卡模型解释 2.探索性数据分析 3.数据预处理 4.构建逻辑回归模型 数据集:数据 1.评分卡模型解释 一个用户总的评分等于基准分加上对客户各个属性的评分.客户评分=基准分+年龄评分+性 ...

  6. 不会Python没问题!用Excel实现简单的逻辑回归!

    作者|石晓文 来源|小小挖掘机(ID:wAIsjwj) 上一篇文章中,咱们通过Excel来演示了一下Transformer,有群友反馈: 所以,今天这篇文章中,咱们就先来用Excel来实现一个简单的逻 ...

  7. R语言使用broom包将回归模型(线性回归、逻辑回归、比例风险回归)的结果整理成dataframe并导出到excel等文件中:基于mtcars和colon数据集

    R语言使用broom包将回归模型(线性回归.逻辑回归.比例风险回归)的结果整理成dataframe并导出到excel等文件中:基于mtcars和colon数据集 目录

  8. 【Lyra UI】UI 玩法逻辑小结

    [Lyra UI]UI 玩法逻辑小结 UI 这块分两个部分:功能版逻辑 + 材质效果 本篇讨论逻辑,即怎么组织UI结构,代码怎么串联事件和逻辑 笔者之前并没有用UE开发过游戏,也算是从零开始,所以并不 ...

  9. 计算机表格嵌套,Excel中轻松玩转“动态”表格嵌套EXCEL基本教程 -电脑资料

    使用Excel做表格,真是好处多多,也可以说是"地球人都知道",但是如何有效提高办公效率,做出即美观效率又高的表格就不是每个人都知道的了, 应用场合:某表格中有一部分内容是需要经常 ...

最新文章

  1. 清华硕士在家造了一辆车,从设计到加工一个人完成,轻松穿沙漠爬岩石,还人人可拆装...
  2. 我司那产品经理丨第一期
  3. ElementUI中的el-table实现多选框不勾选的提示
  4. Multimedia Event Extraction (M2E2) Annotation Guideline V0.1
  5. Android中导入第三方jar
  6. 15分钟从零开始搭建支持10w+用户的生产环境(一)
  7. IIS7.0站点/虚拟目录中访问共享
  8. python:就喜欢看你看不惯我又干不掉我的样子
  9. 【报告分享】2021年小红书美妆护肤洞察报告.pdf(附下载链接)
  10. 梯度锐化拉普拉斯锐化比较_锐化斧头
  11. 计算机的软硬件发展进程,计算机软件的发展演变简介
  12. elk日志系统中elasticsearch 索引read only 解决
  13. 傻瓜看完都可以简单使用Git
  14. 用C#实现***程序
  15. 对项目工时的估算: PERT(计划评审技术) 三点估算法
  16. 层次化网络设计(三层网络结构)
  17. ios android与wp,在iOS与Android间选择WP
  18. Java多线程--概述-转自Kyrie lrving
  19. 图表绘制与处理的常用软件
  20. Java指令全集_Java的JVM字节码指令集详解

热门文章

  1. python画企鹅_相信你也可以,一文学会如何用Python绘制分块图
  2. 【微机汇编语言学习笔记(一)】DOS功能调用——INT 21H功能调用显示A~Z
  3. 汇编语言——更灵活定位内存地址(基于8086CPU)
  4. TensorFlow详解猫狗识别 (三)--训练过程
  5. 陈越数据结构_第一周
  6. Android Binder通信学习
  7. 后来的小程序什么都有了,就是没有了「张小龙」
  8. 说说Kindle那些事
  9. 《曾文正公嘉言钞》摘录
  10. 3dmax:成功解决3dmax三维设计软件中的VR渲染设置出图为黑色(一片漆黑)