当前位置: 首页 > 编程日记 > 正文

简单粗暴理解与实现机器学习之逻辑回归:逻辑回归介绍、应用场景、原理、损失以及优化...

作者 | 汪雯琦

责编 | Carol

来源 | CSDN 博客

出品 | AI科技大本营(ID:rgznai100)

学习目标

  • 知道逻辑回归的损失函数

  • 知道逻辑回归的优化方法

  • 知道sigmoid函数

  • 知道逻辑回归的应用场景

  • 应用LogisticRegression实现逻辑回归预测

  • 知道精确率、召回率指标的区别

  • 知道如何解决样本不均衡情况下的评估

  • 了解ROC曲线的意义说明AUC指标大小

  • 应用classification_report实现精确率、召回率计算

  • 应用roc_auc_score实现指标计算

逻辑回归介绍

逻辑回归(Logistic Regression)是机器学习中的一种分类模型,逻辑回归是一种分类算法,虽然名字中带有回归,但是它与回归之间有一定的联系。由于算法的简单和高效,在实际中应用非常广泛。

逻辑回归的应用场景:

  • 广告点击率

  • 是否为垃圾邮件

  • 是否患病

  • 金融诈骗

  • 虚假账号

看到上面的例子,我们可以发现其中的特点,那就是都属于两个类别之间的判断。逻辑回归就是解决二分类问题的利器。


逻辑回归的原理

要想掌握逻辑回归,必须掌握两点:

  • 逻辑回归中,其输入值是什么

  • 如何判断逻辑回归的输出

1、输入

逻辑回归的输入就是一个线性回归的结果。

2、激活函数

  • sigmoid函数

  • 判断标准

  • 回归的结果输入到sigmoid函数当中

  • 输出结果:[0, 1]区间中的一个概率值,默认为0.5为阈值

逻辑回归最终的分类是通过属于某个类别的概率值来判断是否属于某个类别,并且这个类别默认标记为1(正例),另外的一个类别会标记为0(反例)。(方便损失计算)

输出结果解释(重要):假设有两个类别A,B,并且假设我们的概率值为属于A(1)这个类别的概率值。现在有一个样本的输入到逻辑回归输出结果0.6,那么这个概率值超过0.5,意味着我们训练或者预测的结果就是A(1)类别。那么反之,如果得出结果为0.3那么,训练或者预测结果就为B(0)类别。

所以接下来我们回忆之前的线性回归预测结果我们用均方误差衡量,那如果对于逻辑回归,我们预测的结果不对该怎么去衡量这个损失呢?我们来看这样一张图。

那么如何去衡量逻辑回归的预测结果与真实结果的差异呢?

损失以及优化

1、损失

逻辑回归的损失,称之为对数似然损失,公式如下:

  • 分开类别:

怎么理解单个的式子呢?这个要根据log的函数图像来理解

  • 综合完整损失函数

看到这个式子,其实跟我们讲的信息熵类似。

接下来我们就带入上面那个例子来计算一遍,就能理解意义了。

我们已经知道,log§, P值越大,结果越小,所以我们可以对着这个损失的式子去分析

2、优化

同样使用梯度下降优化算法,去减少损失函数的值。这样去更新逻辑回归前面对应算法的权重参数,提升原本属于1类别的概率,降低原本是0类别的概率。

【end】

原力计划

《原力计划【第二季】- 学习力挑战》正式开始!即日起至 3月21日,千万流量支持原创作者!更有专属【勋章】等你来挑战

推荐阅读

  • Python数据清理终极指南(2020版)

  • 无需3D运动数据训练,最新人体姿势估计方法达到SOTA | CVPR 2020

  • 前端 Webpack 工程化的最佳实践

  • 如何与亦敌亦友的 null 说拜拜?大神原来是这么做的!

  • 从哈希函数、哈希冲突、开散列出发,一文告诉你哈希思想与哈希表构造到底是什么!

  • 罗永浩欲直播带货,京东说可以帮忙联系

  • 你点的每个“在看”,我都认真当成了AI

相关文章:

生命的脆弱——悼念朋友

生命的脆弱让我们敲希望的钟啊多少祈祷在心中让大家看不到失败叫成功永远在让地球忘记了转动啊四季少了夏秋冬让宇宙关不了天窗叫太阳不西沉让欢喜代替了哀愁啊微笑不会再害羞让时光懂得去倒流叫青春不开溜让贫穷开始去逃亡啊快乐健康留四方让世界找不到黑暗幸福像花开放让大家…

VMware Tools手动下载

2019独角兽企业重金招聘Python工程师标准>>> VMware自己下载VMware Tools非常慢。你可以自己手动下载它。 下载地址为: version: 8.8.2 http://softwareupdate.vmware.com/cds/vmw-desktop/ws/8.0.3/ 选择最新的build,例如: http:…

Linux查看多核CPU利用率

1.top 使用权限:所有使用者 使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b] 说明:即时显示process的动态 d :改变显示的更新速度,或是在交谈式指令列( interactive command)按s q :没有任何延迟的显示速度&#xf…

仓央嘉措《那一天,那一月,那一年,那一世》

那一天,   我闭目在经殿的香雾中,   蓦然听见你颂经中的真言;     那一月,   我摇动所有的经筒,   不为超度,   只为触摸你的指尖;     那一年,   磕长头匍匐在…

AI+大数据助力抗疫,带你认识百度地图的新玩法!

作者 | Aholiab责编 | Carol出品 | AI科技大本营(ID:rgznai100)“喂,你好,我是百度地图的客服,请问是xx店铺对吗?”“嗯,什么事?”“您家在疫情期间还照常营业,对吗&…

Coursera Machine Learning 作业提交问题

关于作业提交问题的解决办法 Octave 4.0.0无法正常提交 解决办法:打两个补丁 补丁1:平台通用补丁2:Win,Linux or Mac 注:补丁文件中有安装说明

Linux查看进程内存状况

查看全部进程 通过top或ps -ef | grep 进程名 得到进程的PID。该命令可以提供进程状态、文件句柄数、内存使用情况等信息。 #pa aux 先查看进程 nginx的工作进程是5757 pmap命令 可以显示一个或多个进程所使用的内存数量。你可以使用这个工具来了解服务器上的某个进程分配…

用于小型图形挖掘研究的瑞士军刀:空手道俱乐部的图表学习Python库

作者 | Benedek Rozemberczki译者 | 天道酬勤 责编 | Carol出品 | AI科技大本营(ID:rgznai100)空手道俱乐部(Karate Club)是NetworkX Python软件包的无监督机器学习扩展库。详细可以参阅此处的文档:https://github.com…

电子商务创造的第二次产业机会

即将迎来冬至节气的这个周末,天寒地冻,却是电子商务的饕餮之季。淘宝网商交易大会刚刚在成都落下帷幕,而比网货交易会更令业界期待的“2009中国电子商务创新发展高峰论坛”也在北京顺利召开。大会由国内最大的电子商务软件及服务提供商ShopEx…

C#趣味程序---个位数为6,且能被3整出的五位数

using System;namespace ConsoleApplication1 {class Program{static void Main(string[] args){int count 0;int k;for (int i 1000; i < 9999; i){k i * 10 6;if (k % 3 0){Console.WriteLine(k);count;}}Console.WriteLine(count); }} }

c# winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值

第一种方法: 用委托,Form2和Form3是同一组 Form2 usingSystem; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.Text; usingSystem.Windows.Forms; namespaceTestMouseMove { pub…

TCMalloc

tcmalloc 业界最有名的内存分配库&#xff0c;当数google 的tcmalloc。Tcmalloc 在管理小 内存块时非常有效&#xff0c;而且能够避免在大内存分配时的mmap()系统调用。它在多 线程中的表现也不错能很好的减少锁碰撞(glibc 致命的问题)。Tcmalloc 现在基 本上成了mysql DBA 的标…

前沿技术探秘:知识图谱构建流程及方法

作者 | 郑毅封图| CSDN│下载于视觉中国出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;随着AI技术的发展和普及&#xff0c;当今社会已经进入了智能化时代。与以往不同的是&#xff0c;在这一波浪潮中&#xff0c;企业不仅是向数字化转型&#xff0c;更是向…

【HDOJ】3275 Light

这就是个简单线段树延迟标记。因为对bool使用了~而不是&#xff01;&#xff0c;wa了一下午找不到原因。 1 /* 3275 */2 #include <iostream>3 #include <sstream>4 #include <string>5 #include <map>6 #include <queue>7 #include <set>…

lighttpd+PHP安装

lighttpd版本&#xff1a;1.4.32 php版本&#xff1a;5.4.11 2013.2.3第一次 php版本&#xff1a;5.4.12 2013.3.14第二次修改 1.lighttpd官网地址 http://www.lighttpd.net 2.下载安装lighttpd #wget http://download.lighttpd.net/lighttpd/releases-1.4.x/lighttp…

描述C#多线程中 lock关键字

本文介绍C# lock关键字&#xff0c;C#提供了一个关键字lock&#xff0c;它可以把一段代码定义为互斥段&#xff08;critical section&#xff09;&#xff0c;互斥段在一个时刻内只允许一个线程进入执行&#xff0c;而其他线程必须等待。 每个线程都有自己的资源&#xff0c;但…

从样本处理到决策模型,如何用NLP识别盗版资源?

作者 | 阿里文娱高级开发工程师千起出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;背景随着5G时代来临&#xff0c;新媒体行业快速发展&#xff0c;盗版传播平台多样化、形式多样化&#xff0c;版权方难以通过有限的人力实现最大限度的维权。根据MUSO报告显示2017年…

利用.htaccess绑定子域名到子目录(亲测万网可用)

http://www.xmgho.com/archives/783.html 利用.htaccess绑定域名到子目录,前提你的空间服务器必须支持apache的rewrite功能&#xff0c;只有这样才能使用.htaccess。如果你的空间是Linux服务器 一般默认都开启了的。绑定域名 登陆域名管理台&#xff08;如DNSPod&#xff09; 把…

Memcached内存池分析

针对Memcacged1.4.15代码 1.完整slabs内存池图 这是我画的memcached的slabs内存池对象关系图&#xff1a; 2.内存池数据结构 typedef struct {unsigned int size; /* 每个item的大小 */unsigned int perslab; /* 每个page中包含多少个item */void *slots; …

Google重磅发布开源库TFQ,快速建立量子机器学习模型

整理 | 弯月编辑 | 郭芮出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;近日&#xff0c;Google 与滑铁卢大学、大众汽车等联合发布 TensorFlow Quantum&#xff08;TFQ&#xff09;&#xff0c;一个可快速建立量子机器学习模型原型的开源库。TFQ提供了必…

.net3.5的安装与修复

<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />.net3.5的安装与修复.net3.5正常安装的顺序是先安装windows IIS组件&#xff0c;然后再安装.net3.5安装包&#xff0c;而.net3.5安装包的下载地址可以去百度和google上搜一下&…

jquery easy ui 简单字段选择搜索实现

写的比较粗糙&#xff0c;望见谅。 要实现的效果&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>jQuery EasyUI Application Demo</title><link rel"stylesheet" t…

训练数据也外包?这家公司“承包”了不少注释训练数据,原来是这样做的……...

作者 | Lionbridge AI译者 | 天道酬勤 责编 | 徐威龙封图| CSDN│下载于视觉中国出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;在机器学习领域&#xff0c;训练数据准备是最重要且最耗时的任务之一。实际上&#xff0c;许多数据科学家声称数据科学的很…

JavaScript Switch 语句

avaScript Switch 语句如果希望选择执行若干代码块中的一个&#xff0c;你可以使用 switch 语句&#xff1a;语法&#xff1a;switch(n){case 1:执行代码块 1breakcase 2:执行代码块 2breakdefault:如果n即不是1也不是2&#xff0c;则执行此代码}工作原理&#xff1a;switch 后…

参观Speedy Cloud 有感

上周老男孩的所有学生参观了Speedy Cloud &#xff0c;在这里我首先感谢Speedy Cloud的邀请和服务&#xff0c;我们每一个同学的收获都很大&#xff0c;不管是在以后的发展&#xff0c;还是现在的学习&#xff0c;都给了我很大的推动作用&#xff0c;帮助我去了解计算机的发展的…

C语言文件操作函数大全

unix中一切皆文件&#xff0c;所以文件操作至关重要&#xff01; clearerr&#xff08;清除文件流的错误旗标&#xff09; 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * stream); 函数说明 clearerr&#xff08;&#xff09;清除参数stre…

Python进阶之递归函数的用法及其示例

作者 | 程序员adny责编 | 徐威龙封图| CSDN│下载于视觉中国出品 | AI科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;本篇文章主要介绍了Python进阶之递归函数的用法及其示例&#xff0c;现在分享给大家&#xff0c;也给大家做个参考。一起来看看吧。递归是指函数…

万科的千亿修炼

一位知名企业家说过&#xff0c;改革开放30年只是完成了市场经济的启蒙和启动&#xff0c;在未来的10至20年&#xff0c;中国将出现一批千亿级的企业。此次金融危机在为经济带来震荡的同时&#xff0c;也为我们提供了一个极佳的视角和机会&#xff0c;审视中国千亿企业的过去、…

nginx 开发一个简单的 HTTP 模块

2019独角兽企业重金招聘Python工程师标准>>> 1. 下载 Nginx http://nginx.org/ 2. 目录结构 $ tree -L 2 . ├── mytest_module │ ├── config │ └── ngx_http_mytest_module.c └── nginx ... 3. config # 在 configure 执行时使用 ngx_addon_nam…

Jquery 之Ajax方法$.get() 的运用,扩展链接模型的天地

如前文说道的那个表现层和业务层的链接模型&#xff0c;从上篇博文&#xff08;http://www.cnblogs.com/AflutterFeather/archive/2010/01/07/1641315.html&#xff09;中可以看到&#xff1a;我们通过WebService提供的方法来获取服务端的返回值。 如果不采用WebService&#…