逻辑函数

逻辑回归模型

不打扰是莪最后的温柔 提交于 2019-12-30 12:02:19
逻辑回归模型 - zgw21cn - 博客园 逻辑回归模型 1. 逻辑 回 归 模型 1.1逻辑回归模型 考虑具有p个独立变量的向量 ,设条件概率 为根据观测量相对于某事件发生的概率。逻辑回归模型可表示为 (1.1) 上式右侧形式的函数称为称为逻辑函数。下图给出其函数图象形式。 其中 。如果含有名义变量,则将其变为dummy变量。一个具有k个取值的名义变量,将变为k-1个dummy变量。这样,有 (1.2) 定义不发生事件的条件概率为 (1.3) 那么,事件发生与事件不发生的概率之比为 (1.4) 这个比值称为事件的发生比(the odds of experiencing an event),简称为odds。因为0<p<1,故odds>0。对odds取对数,即得到线性函数, (1.5) 1.2极大似然函数 假设有n个观测样本,观测值分别为 设 为给定条件下得到 的概率。在同样条件下得到 的条件概率为 。于是,得到一个观测值的概率为 (1.6) 因为各项观测独立,所以它们的联合分布可以表示为各边际分布的乘积。 (1.7) 上式称为n个观测的似然函数。我们的目标是能够求出使这一似然函数的值最大的参数估计。于是,最大似然估计的关键就是求出参数 ,使上式取得最大值。 对上述函数求对数 (1.8) 上式称为对数似然函数。为了估计能使 取得最大的参数 的值。 对此函数求导,得到p+1个似然方程

以变制变——前端动态化代码保护方案探索

强颜欢笑 提交于 2019-12-26 03:45:17
欢迎大家前往 腾讯云+社区 ,获取更多腾讯海量技术实践干货哦~ 本文分享了腾讯防水墙团队关于机器对抗的动态化思路,希望能抛砖引玉,给现在正在做人机对抗的团队一些启发,帮助更多中小型公司的业务摆脱机器和爬虫之痛。 0x00 前言 浏览器作为当今互联网的一大流量入口,正在变得越来越强大。为了有更好的Web体验,各类新的标准被制定并实施。PWA的出现,更是把移动端H5的体验推向了另一个极致。越来越多业务使用H5作为主要入口的同时,也带来了另一个问题:机器行为泛滥。只要有利益的地方就会有恶意,登录注册、投票领券等页面很容易成为机器刷量的重灾区,如今写一个普通刷投票脚本的难度基本就跟写一个“Hello World!”的难度差不多。在与机器对抗的历程中,Web前端一直是非常薄弱的一环。浏览器毫无保留地把所有前端代码拉取到本地并执行、所有前端代码均透明可见,拿什么拯救前端代码安全? 0x01 名词解释 代码安全 本文中所提及的代码安全,是指前端JavaScript代码的安全。通常,如果一段JavaScript代码只能在正常的浏览器中运行,无法或尚未在非正常浏览器的运行环境执行得到结果、无法被等价翻译成其他编程语言的代码,则认为这段代码是安全的。 一段重要的JavaScript逻辑被置于其他环境以高于正常浏览器几个数量级的效率运行并得到正确的结果,对于服务端及后面的业务来说,几乎是一个灾难。

Linux 内核中的 Device Mapper 机制

瘦欲@ 提交于 2019-12-25 16:11:08
Device Mapper 是 Linux2.6 内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构,如图 1。 图1 Device Mapper的内核体系架构 在内核中它通过一个一个模块化的 target driver 插件实现对 IO 请求的过滤或者重新定向等工作,当前已经实现的 target driver 插件包括软 raid、软加密、逻辑卷条带、多路径、镜像、快照等,图中 linear、mirror、snapshot、multipath 表示的就是这些 target driver。Device mapper 进一步体现了在 Linux 内核设计中策略和机制分离的原则,将所有与策略相关的工作放到用户空间完成,内核中主要提供完成这些策略所需要的机制。Device mapper 用户空间相关部分主要负责配置具体的策略和控制逻辑,比如逻辑设备和哪些物理设备建立映射,怎么建立这些映射关系等等,而具体过滤和重定向 IO 请求的工作由内核中相关代码完成。因此整个 device mapper 机制由两部分组成–内核空间的 device mapper 驱动、用户空间的device mapper 库以及它提供的 dmsetup 工具。在下文中,我们分内核和用户空间两部分进行介绍。 内核部分 Device mapper

处理分类问题常用算法(二)-----算法岗面试题

笑着哭i 提交于 2019-12-25 12:56:51
● 分层抽样的适用范围 参考回答: 分层抽样利用事先掌握的信息,充分考虑了保持样本结构和总体结构的一致性,当总体由差异明显的几部分组成的时候,适合用分层抽样。 ● LR的损失函数 参考回答: M为样本个数, 为模型对样本i的预测结果, 为样本i的真实标签。 ● LR和线性回归的区别 参考回答: 线性回归用来做预测,LR用来做分类。线性回归是来拟合函数,LR是来预测函数。线性回归用最小二乘法来计算参数,LR用最大似然估计来计算参数。线性回归更容易受到异常值的影响,而LR对异常值有较好的稳定性。 ● 生成模型和判别模型基本形式,有哪些? 参考回答: 生成式:朴素贝叶斯、HMM、Gaussians、马尔科夫随机场 判别式:LR,SVM,神经网络,CRF,Boosting 详情:支持向量机 ● 核函数的种类和应用场景。 参考回答: 线性核、多项式核、高斯核。 特征维数高选择线性核 样本数量可观、特征少选择高斯核(非线性核) 样本数量非常多选择线性核(避免造成庞大的计算量) 详情:支持向量机 ● 分类算法列一下有多少种?应用场景。 参考回答: 单一的分类方法主要包括:LR逻辑回归,SVM支持向量机,DT决策树、NB朴素贝叶斯、NN人工神经网络、K-近邻;集成学习算法:基于Bagging和Boosting算法思想,RF随机森林,GBDT,Adaboost,XGboost。 ●

逻辑回归

断了今生、忘了曾经 提交于 2019-12-24 19:12:47
逻辑回归 标签(空格分隔): 逻辑回归 吴恩达 分类 1. 基本内容 此处讨论的是二分类问题,即预测值 \(y\in \{0,1\}\) ,其中, \(0\) 代表Negative Class, \(1\) 代表 Positive Class。 回归一般是预测连续值,分类是预测离散值,但是逻辑回归预测的是离散值,它其实是一个分类问题,称其“回归”是历史问题。 在逻辑回归中,假设函数 \(h_\theta(x)\) 满足 \(0 \le h_\theta(x) \le 1\) 。通常选取如下形式: \[h_\theta(x) = g(\theta^Tx)\] 其中: \[ g(z) = \frac{1}{1+e^{-z}}\] \(g(z)\) 的函数图像如下所示: \(g(z)\) 被称为 Sigmoid 函数或逻辑函数。 此处的假设函数 \(h\theta(x)\) 可以理解为:在参数 \(\theta\) 下,对输入 \(x\) , 预测值 \(y\) 取值为 \(1\) 的概率。形式化的表示如下: \[h_\theta(x) = P(y=1|x;\theta)\] 显然,有: \[P(y=1|x;\theta) + P(y=0|x;\theta) = 1\] 对于假设函数 \(h_\theta(x) = g(\theta^Tx)\) , 如果当 \(h_\theta(x)

机器学习(七)逻辑回归之代价函数

筅森魡賤 提交于 2019-12-24 18:47:39
机器学习(七)逻辑回归之代价函数 前言: 由机器学习(六)我们得到了二分类问题的假设函数 hθ(x),那么下一步我们需要确定代价函数 J(θ),然后通过梯度下降法确定拟合参数θ。 一、代价函数 1、假设函数: 2、对于线性回归的代价函数 3、但是因为 hθ(x)是S型的非线性函数,因此我们得到的J(θ)图形,可能是如下图所示的非凸函数 4、那么对于这样的代价函数J(θ),我们就很难用梯度下降法得到全局收敛的最小值,我们需要代价函数是凸函数,类似下图所示,这样我们就一定可以通过梯度下降法得到代价函数的全局收敛的最小值。 5、为了解决上面提到的J(θ)是非凸函数的问题,我们寻找其它的数学等价代换,来使得逻辑回归的代价函数为凸函数, 首先,对于代价函数做如下代换: 6、我们观察如下y = -ln(x)和y = -ln(1-x)两个函数的图像 该图像最明显的特性是当x=1时,则y=0;当x=0时,则y趋向于无穷。 该图像最明显的特性是当x=0时,则y=0;当x=1时,y趋向于无穷。 7、对于cost函数 ,自变量hθ(x (i) )∈(0,1),因变量y (i) ∈ (0 | 1),因此,假设 令y=1,则cost(hθ(x (i) ),y (i) ) = -ln(hθ(x (i) )) 令y=0,则cost(hθ(x (i) ),y (i) ) = -ln(1-hθ(x (i) ))

01-01 Web应用

寵の児 提交于 2019-12-24 16:01:10
一 Web应用的组成 好看的小说 www.shupu.org 接下来我们学习的目的是为了开发一个Web应用程序,而Web应用程序是基于B/S架构的,其中B指的是浏览器,负责向S端发送请求信息,而S端会根据接收到的请求信息返回相应的数据给浏览器,需要强调的一点是:S端由server和application两大部分构成,如图所示: 上图:Web应用组成 二 开发一个Web应用 我们无需开发浏览器(本质即套接字客户端),只需要开发S端即可,S端的本质就是用套接字实现的,如下 # S端 import socket def make_server(ip, port, app): # 代表server sock = socket.socket() sock.bind((ip, port)) sock.listen(5) print('Starting development server at http://%s:%s/' %(ip,port)) while True: conn, addr = sock.accept() # 1、接收浏览器发来的请求信息 recv_data = conn.recv(1024) # print(recv_data.decode('utf-8')) # 2、将请求信息直接转交给application res = app(recv_data) # 3

【分类算法】逻辑回归

只谈情不闲聊 提交于 2019-12-23 03:54:44
目录 什么是逻辑回归 逻辑回归模型推导 为何不能用线性模型 线性模型转二分类模型(Sigmoid) 代价函数 使用最小二乘法估计 最大似然法 代码样例 总结 什么是逻辑回归 之前我们讲过 线性回归 的原理以及推导过程。今天,我们回家另外一个算法,叫逻辑回归。简单归类一下,这个算法不是归类预测算法,大家千万不要被名字不会了。它其实属于分类算法。说到 分类算法 ,大家有没有联想到?没错,逻辑回归属于监督学习。所以它需要带标签的数据。 这里简单的列举一下逻辑回归的使用场景: 垃圾邮件分类 网络诈骗分类 恶行肿瘤鉴定 逻辑回归模型推导 为何不能用线性模型 下面以恶行肿瘤来举例子。假如我们有个数据集,他们他描述的是肿瘤大小,以及是否为和兴肿瘤。大致如下: 肿瘤大小 是否恶性 1 否 5 否 10 是 10.5 否 15 是 假设x是肿瘤的大小,y代表否恶性。最终我们可以得到下图左边的8个红色交叉点。假如我们线性回归预测这8个点时,我们可以得到蓝色的一条线。若我们假设蓝色线上面的是恶行肿瘤,下面的是良性肿瘤。这里看上去预测的结果好像还可以。 但假如这时候出现一个右边蓝色肩头上点,我们重新用线性模型预测出回归线,然后得到粉色的线。这时候问题就出现了,新增的点的x其实非常的大,但是却被模型判定成良性肿瘤。这样是不是就不对了。所以,我们需要修改我们的模型。我们要把我们的线性模型改成二分类模型

[学习] 从 函数式编程 到 lambda演算 到 函数的本质 到 组合子逻辑

只愿长相守 提交于 2019-12-23 01:04:29
函数式编程 阮一峰 《 函数式编程初探 》,阮一峰是《黑客与画家》的译者。 wiki 《 函数编程语言 》 一本好书,《 计算机程序的构造与解释 》有讲到scheme lisp, 不过是作为工具。重点还是再讲方法论,虽然只看了前言,已经觉得是非常好的书,非常有高度。 写这段话的人叫 艾伦佩利 。他为这本书做的序,写的更好。非常有高度,非常有智慧,即使不读这本书,也推荐读一下序。 《解释》是作为MIT的课程教材。其中提到了另一门课 6.231 可以作为该可的前导学习。也对应了一本英文版的教材《 dynamic programing and Optimal control 》,不过我没看,也没有列入计划。 lambda演算 0 我试图想要总结或者抄录一句话来定义,什么叫lambda演算,遗憾的是没有成功找到一句简洁又明晰的。如果一定要找一个的话,可能是这样的: 1 一篇轻松又好读的译文: 我的最爱Lambda演算——开篇 2 函数式编程的重要性在于lambda演算,而lambda演算则牵扯到了数学和公理体系。 理解 函数式编程 最重要的是理解什么是 lambda演算 ,理解lambda演算最重要的是理解什么是 函数 ,以及什么是 高阶函数 。 见 << lambda.pdf >> 柯里化:把任意多参数函数都转换成单参数的高阶函数。 个人理解:原来一切都是从lambda运行演进出来的

浅谈模板引擎

家住魔仙堡 提交于 2019-12-20 20:35:16
模板原理 模板的诞生是为了将显示与数据分离,模板技术多种多样,但其本质是将模板文件和数据通过模板引擎生成最终的HTML代码。 模板技术并不是什么神秘技术,干的是拼接字符串的体力活。模板引擎就是利用正则表达式识别模板标识,并利用数据替换其中的标识符。比如: Hello, <%= name%> 数据是 {name: '木的树'} ,那么通过模板引擎解析后,我们希望得到 Hello, 木的树 。模板的前半部分是普通字符串,后半部分是模板标识,我们需要将其中的标识符替换为表达式。模板的渲染过程如下: //字符串替换的思想 function tmpl(str, obj) { if (typeof str === 'string') { return str.replace(/<%=\s*([^%>]+)\s*%>/g, function() { var key = arguments[1]; return obj[key]; }); } } var str = "Hello, <%= name%>"; var obj = {name: "Lzz"}; 模板引擎 引擎核心 上面我们演示是简单的字符串替换,但对于模板引擎来说,要做的事情更复杂些。通常需要以下几个步骤: 利用正则表达式分解出普通字符串和模板标识符, <%=%> 的正则表达式为 /<%=\s*([^%>]+)\s*%>/g .