逻辑回归

一文详尽系列之逻辑回归

限于喜欢 提交于 2019-12-15 00:44:07
模型介绍 Logistic Regression 是一个非常经典的算法,其中也包含了非常多的细节,曾看到一句话:如果面试官问你熟悉哪个机器学习模型,可以说 SVM,但千万别说 LR,因为细节真的太多了。 Logistic Regression 虽然被称为回归,但其实际上是分类模型,并常用于二分类。Logistic Regression 因其简单、可并行化、可解释强深受工业界喜爱。 Logistic 回归的本质是:假设数据服从这个分布,然后使用极大似然估计做参数的估计。 1.1 Logistic 分布 Logistic 分布是一种连续型的概率分布,其 分布函数 和 密度函数 分别为: 其中, 表示 位置参数 , 为 形状参数 。我们可以看下其图像特征: Logistic 分布是由其位置和尺度参数定义的连续分布。Logistic 分布的形状与正态分布的形状相似,但是 Logistic 分布的尾部更长,所以我们可以使用 Logistic 分布来建模比正态分布具有更长尾部和更高波峰的数据分布。在深度学习中常用到的 函数就是 Logistic 的分布函数在 的特殊形式。 1.2 Logistic 回归 之前说到 Logistic 回归主要用于分类问题,我们以二分类为例,对于所给数据集假设存在这样的一条直线可以将数据完成线性可分。 决策边界可以表示为 ,假设某个样本点 那么可以判断它的类别为

协同过滤算法

ε祈祈猫儿з 提交于 2019-12-11 23:19:20
推荐算法具有非常多的应用场景和商业价值,因此对推荐算法值得好好研究。推荐算法种类很多,但是目前应用最广泛的应该是协同过滤类别的推荐算法,本文就对协同过滤类别的推荐算法做一个概括总结,后续也会对一些典型的协同过滤推荐算法做原理总结。 1. 推荐算法概述 推荐算法是非常古老的,在机器学习还没有兴起的时候就有需求和应用了。概括来说,可以分为以下5种: 基于内容的推荐 这一类一般依赖于自然语言处理NLP的一些知识,通过挖掘文本的TF-IDF特征向量,来得到用户的偏好,进而做推荐。这类推荐算法可以找到用户独特的小众喜好,而且还有较好的解释性。这一类由于需要NLP的基础,本文就不多讲,在后面专门讲NLP的时候再讨论。 协调过滤推荐 本文后面要专门讲的内容。协调过滤是推荐算法中目前最主流的种类,花样繁多,在工业界已经有了很多广泛的应用。它的优点是不需要太多特定领域的知识,可以通过基于统计的机器学习算法来得到较好的推荐效果。最大的优点是工程上容易实现,可以方便应用到产品中。目前绝大多数实际应用的推荐算法都是协同过滤推荐算法。 混合推荐 这个类似我们机器学习中的集成学习,博才众长,通过多个推荐算法的结合,得到一个更好的推荐算法,起到三个臭皮匠顶一个诸葛亮的作用。比如通过建立多个推荐算法的模型,最后用投票法决定最终的推荐结果。混合推荐理论上不会比单一任何一种推荐算法差,但是使用混合推荐

机器学习(4)之Logistic回归

我只是一个虾纸丫 提交于 2019-12-10 04:23:54
机器学习(4)之Logistic回归 1. 算法推导  与之前学过的梯度下降等不同,Logistic回归是一类分类问题,而前者是回归问题。回归问题中,尝试预测的变量y是连续的变量,而在分类问题中,y是一组离散的,比如y只能取{0,1}。   假设一组样本为这样如图所示,如果需要用线性回归来拟合这些样本,匹配效果会很不好。对于这种y值只有{0,1}这种情况的,可以使用分类方法进行。 假设 ,且使得 其中定义Logistic函数(又名sigmoid函数): 下图是Logistic函数g(z)的分布曲线,当z大时候g(z)趋向1,当z小的时候g(z)趋向0,z=0时候g(z)=0.5,因此将g(z)控制在{0,1}之间。其他的g(z)函数只要是在{0,1}之间就同样可以,但是后续的章节会讲到,现在所使用的sigmoid函数是最常用的 假设给定x以为参数的y=1和y=0的概率: 可以简写成: 假设m个训练样本都是独立的,那么θ的似然函数可以写成: 对L(θ)求解对数最大似然值: 为了使似然性最大化,类似于线性回归使用梯度下降的方法,求对数似然性对 的偏导,即:   注意:之前的梯度下降算法的公式为 。这是是梯度上升,Θ:=Θ的含义就是前后两次迭代(或者说前后两个样本)的变化值为l(Θ)的导数。 则 即类似上节课的随机梯度上升算法,形式上和线性回归是相同的,只是符号相反,

论文笔记(一)SecureML: A System for Scalable Privacy-Preserving Machine Learning

风格不统一 提交于 2019-12-08 20:57:38
SecureML:A system for Scalable Privacy-Preserving Machine Learning 1 摘要及介绍 1.1 模型的大致架构 首先,主要模型中主要有客户端和两台服务器,假设这两台服务器不会恶意合作。   整个训练过程大致分为在线和离线两个阶段,在线阶段的主要任务就是利用本文提出的安全算数技术在共享的十进制数上进行模型的更新,根据混淆电路的思想,除了最后能得到的模型,什么数据也不会暴露出来;离线阶段的主要任务是服务于在线阶段的乘法运算——利用线性同态加密或者不经意传输生成必要的三元组,因为这个开销比较大,后期还提出了一种改进,用客户端来辅助生成三元组; 1.2 主要贡献 为线性回归、逻辑回归、神经网络这三种机器学习算法开发出了新型的隐私保护的深度学习协议 开发出了支持在共享的十进制数上的安全算数操作的技术 对于那些非线性激活函数,如sigmoid softmax,提出了一种支持安全多方计算的替代方案 以上提出的所有技术相较于目前的技术,在保证安全的前提下,速度上都有很大的提升 1.2.1 为三种机器学习算法开发出的隐私保护的协议 线性回归、逻辑回归和神经网络这三种机器学习方案非常简单但也非常常用,而且他们之间思想类似且一种递进的趋势。 所谓思想类似指的是他们都是有监督的机器学习算法,思路都是先前馈,算出交叉熵之后,在利用随机梯度下降

逻辑回归的前因后果

孤人 提交于 2019-12-07 16:30:22
逻辑回归的前因后果 LR的泛化形式 – 广义线性模型 最简单的线性回归模型,函数对于 x 和 w 都是线性的: y ( x ) = w T x + w 0 //--> 它是二维坐标系中的一条直线,或者三维空间中的一个平面,在高维空间则是超平面。为了把它用于分类,可以给它加一个激活函数,把值域压缩到小区间,比如(0, 1)之间,这就是广义线性模型: y ( x ) = f ( w T x + w 0 ) //--> 当激活函数是logistic-sigmoid函数时,这个分类方法就是LR: p ( C 1 | ϕ ) = σ ( w T ϕ ) //--> 从回归方法演化而来,LR虽用于分类,它的输出却不是{0,1}两类,而是一个连续的函数,所以名字还叫“回归”而不是“分类”。 为什么用logistic-sigmoid函数 首先,LR是判别模型,即它直接求后验概率,那么想象一下,一个只有两类的后验概率 应该是什么形状 ? 用例子说明,假设男女比例相等,男女两类的先验概率:p(男人)=1/2,p(女人)=1/2 现在给先验概率加一个条件:身高,即知道一个人的身高,猜它是男的概率,是女的概率。高个子通常是男的,但也可能是女的。在各种不同身高条件下,有了一系列 后验概率 : p (男| 150 ) =1/8 | p (男| 160 ) =1/5 | p (男| 170 ) =1/2 | p

使用AI算法进行手写数字识别

a 夏天 提交于 2019-12-06 16:31:14
人工智能   人工智能(Artificial Intelligence,简称AI)一词最初是在1956年Dartmouth学会上提出的,从那以后,研究者们发展了众多理论和原理,人工智能的概念也随之扩展。由于人工智能的研究是高度技术性和专业的,各分支领域都是深入且各不相通的,因而涉及范围极广 。 人工智能的核心问题包括建构能够跟人类似甚至超越人类的推理、知识、学习、交流、感知、使用工具和操控机械的能力等,当前人工智能已经有了初步成果,甚至在一些影像识别、语言分析、棋类游戏等等单方面的能力达到了超越人类的水平 。   人工智能的分支领域非常多,主要有演绎推理、知识表示、规划、学习、自然语言处理……等十多个分支领域,而以机器学习为代表的“学习”领域,是目前研究最广泛的分支之一。 机器学习    机器学习(Machine Learning)是人工智能的一个分支,它是实现人工智能的一个途径,即以机器学习为手段解决人工智能中的问题。机器学习在近30多年已发展为一门多领域交叉性的学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。    机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法,该算法是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法。 深度学习   深度学习(Deep Learning)是机器学习的分支,是一种以人工神经网络为架构

逻辑回归模型分析

雨燕双飞 提交于 2019-12-06 16:22:26
2、逻辑(logistics)回归 逻辑回归可以进行二分类和多分类,下面分别进行讨论: 1)二项逻辑回归(二分类)   假如我们现在需要对一类物品进行二分类,首先根据物品的多个特征,然后将物品的多个特征进行线性组合,这和我们上面讨论的多元线性模型有点类似。只是我们现在不是需要拟合平面(空间)上的点,而是需要将平面(空间)上的不同类别的点区分开来。   多元线性模型为:h(x)=a 0 +a 1 x 1 +a 2 x 2 +…+a n x n   我们可以直接使用多元线性模型来对物品进行分类,通过设置一个阀值,然后将所有h(x)大于阀值的样本分为一类,其他的分为另一类。但这种方式存在一个问题,由于h(x)的值是任意大小的,阀值的选择是一件困难的事情,若我们对其进行归一化处理,则阀值的选择就相对简单很多。 设阀值为:t,则 为了方便表述,设: 在此我们使用sigmoid函数对其进行归一化。 此时,若我们使用平方最小误差函数来估算参数,由于归一化后的函数为非凸函数,故而不能使用梯度下降法来找到其最小值。但我们使用极大似然估计的方法估计模型参数。 由于是二分类,可以设: 所以似然函数为: 对数似然函数: 对L(a)求极大值,得到a的估计值。为了能使用梯度下降算法,我们在对数似然函数前面加上负号,这样就可以求其最小值: 每次让参数a向对数似然函数的负梯度方向移动一小步。 //推导过程很简单

BAT机器学习面试1000题系列

本小妞迷上赌 提交于 2019-12-06 14:35:20
几点声明: 1、本文的内容全部来源于七月在线发布的BAT机器学习面试1000题系列; 2、文章中带斜体的文字代表是本人自己增加的内容,如有错误还请批评指正; 3、原文中有部分链接已经失效,故而本人重新加上了新的链接,如有不当,还请指正。(也已用斜体标出) 4、部分答案由于完全是摘抄自其它的博客,所以本人就只贴出答案链接,这样既可以节省版面,也可以使排版更加美观。点击对应的问题即可跳转。 最后,此博文的排版已经经过本人整理,公式已用latex语法表示,方便读者阅读。同时链接形式也做了优化,可直接跳转至相应页面,希望能够帮助读者提高阅读体验,文中如果因为本人的整理出现纰漏,还请指出,大家共同进步! 1.请简要介绍下SVM。 SVM,全称是support vector machine,中文名叫支持向量机。SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。 扩展: 支持向量机学习方法包括构建由简至繁的模型:线性可分支持向量机、线性支持向量机及非线性支持向量机。当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。

ML-逻辑回归推导

穿精又带淫゛_ 提交于 2019-12-06 12:17:09
认识 是一个经典的 二元(y=0 或 y=1) 分类 算法, 不是回归 输入特征还是 线性回归 , 输出是 [0,1] 的一个 概率值 , 其判别函数的形式为: \(P(y=1|x) = \frac {1}{1+e^{-\theta ^Tx}}\) 至于为什么是这样的形式, 上篇的 logist 函数推导 已经说明了,不在赘述啦 \(x = [x_1, x_2, x_3...x_n]\) \(\theta = [\theta_0, \theta_1, \theta_2...]\) \(\theta ^T x = \theta _0 + \theta _1x_1 + \theta_2x_2 + \theta_3x_3...\) 里面的一大坨就是妥妥的线性模型呀. 判别: 当 \(P(y=1|x)\) 的值 大于0.5, 输出 1; 否则输出 0; 分类 vs 回归 对目标函数做一个推演: \(P(y=1|x) = P= \frac {1}{1+e^{-\theta^T x}}\) 则: \(P(y=0|x) = 1-P = 1 - \frac {1}{1+e^{-\theta^T x}} = \frac {1+e^{-\theta^T x}-1}{1+e^{-\theta^T x}} = \frac {1}{1+e^{\theta^Tx}}\) (注意, 负号没了,别化简错哦)

《Neural Networks and Deep Learning》课程笔记

旧街凉风 提交于 2019-12-06 10:31:02
Lesson 1 Neural Network and Deep Learning 这篇文章其实是 Coursera 上吴恩达老师的深度学习专业课程的第一门课程的课程笔记。 参考了其他人的笔记继续归纳的。 逻辑回归 (Logistic Regression) 逻辑回归的定义 神经网络的训练过程可以分为 前向传播(forward propagation) 和 反向传播 (backward propagation) 的 过程。我们通过逻辑回归的例子进行说明。 逻辑回归是一个用于 二分类 (binary clasification) 的算法。比如说,我们有一张图片作为输入,比如下图中的猫,如果识别这张图片为猫,则输出标签1作为结果;如果识别出不是猫,那么输出标签0作为结果。而我们把输出结果用 \(y\) 表示就如下图所示。 图片在计算机中保存的话,我们需要保存三个矩阵,它们分别对应图片中的红、绿、蓝三种颜色通道。如果图片是 \(64\times64\) 像素的,那么这三个矩阵的大小都是 \(64\times64\) 。 为了把这张图片的像素值转换为特征向量 \(x\) ,我们需要把三个矩阵展开为一个向量,而这个向量的总维度用 \(n_x\) 表示的话,就是 \(n_x=3\times64\times64=12,288\) 。 符号定义: \(x\) :表示一个 \(n_x\) 维数据