回归模型

泰坦尼克号的逻辑回归模型

我是研究僧i 提交于 2019-12-15 17:11:09
逻辑回归算是机器学习中最基础的模型了,回归模型在做分类问题中有着较好的效果。下面介绍下利用sklearn做逻辑回归模型 做模型一般分为:提取数据---->了解数据(所谓的探索性数据)---->数据预处理(包括但不限于填充缺失值,特征提取,转换哑变量)---->选择模型---->验证模型---->模型优化 下面先简单介绍下逻辑回归的原理: 说到逻辑回归就不得不提一下线性回归,线性回归用wiki百科的定义来解释就是:在统计学中,线性回归是一种用来建立响应标量(因变量)和一个或多个解释变量(自变量)之间的模型关系的线性方法。线性回归分为一元线性回归和多元线性回归。均方误差是回归模型中常用的度量方法。一般用最小二乘法来最小化均方误差。 线性回归用的最多的是做预测,而逻辑回归最适合的有二分预测,比如是否垃圾邮件,广告是否点击等等;今天的模型用kaggle比赛中的泰坦尼克预测数据集来做逻辑回归模型,故此次我们做的是监督学习。 1.在数据集从kaggle中下载后我们先读取数据和数据预览: 通过DataFrame的函数info(),我们可以详细看到数据的分布等情况 import pandas as pd train=pd.read_csv('D:\\pycm\\kaggle\\titanic\\train.csv',index_col=0) #read train data test=pd

回归评价指标MSE、RMSE、MAE、R-Squared

可紊 提交于 2019-12-13 01:12:08
前言 分类问题的评价指标是准确率,那么回归算法的评价指标就是MSE,RMSE,MAE、R-Squared。下面一一介绍 均方误差(MSE) MSE (Mean Squared Error)叫做均方误差。看公式 这里的y是测试集上的。 用 真实值-预测值 然后平方之后求和平均。 猛着看一下这个公式是不是觉得眼熟,这不就是线性回归的损失函数嘛!!! 对,在线性回归的时候我们的目的就是让这个损失函数最小。那么模型做出来了,我们把损失函数丢到测试集上去看看损失值不就好了嘛。简单直观暴力! 均方根误差(RMSE) RMSE(Root Mean Squard Error)均方根误差。 这不就是MSE开个根号么。有意义么?其实实质是一样的。只不过用于数据更好的描述。 例如:要做房价预测,每平方是万元(真贵),我们预测结果也是万元。那么差值的平方单位应该是 千万级别的。那我们不太好描述自己做的模型效果。怎么说呢?我们的模型误差是 多少千万?。。。。。。于是干脆就开个根号就好了。我们误差的结果就跟我们数据是一个级别的可,在描述模型的时候就说,我们模型的误差是多少万元。 MAE MAE(平均绝对误差) 不用解释了吧。 R Squared 上面的几种衡量标准针对不同的模型会有不同的值。比如说预测房价 那么误差单位就是万元。数子可能是3,4,5之类的。那么预测身高就可能是0.1,0.6之类的

正则化线性模型和线性回归的改进—岭回归

僤鯓⒐⒋嵵緔 提交于 2019-12-12 03:14:45
九、正则化线性模型 Ridge Regression 岭回归 Lasso 回归 Elastic Net 弹性网络 Early stopping 1.Ridge Regression(岭回归) 岭回归是线性回归的正则化版本,即在原来的线性回归的cost function中添加正则项: 以达到在拟合数据的同时,使模型权重尽可能小的目的,岭回归代价函数: a=0:岭回归退化为线性回归 2.Lasso Regression(Lasso 回归) Lasso 回归是线性回归的另一种正则化版本,正则项为权值向量 ℓ1范数。 Lasso 回归的代价函数: 【注意】: Lasso Regression的代价函数在 θi=0处是不可导的. 解决方法:在 θi=0处用一个次梯度向量代替梯度,如下 Lasso Regression的次梯度向量 Lasso Regression有一个重要的型值是:倾向于完全消除不重要的权重 例如:当a取值相对较大的时,高阶多项式退化为二次甚至是线性:高阶多项式特征的权重被置为0. 也就是说,Lasso Regression能够自动进行特征选择,并输出一个稀疏模型(只有少数特征的权重是非零的)。 3.Elastic Net(弹性网络) 弹性网络在岭回归和Lasso回归中进行了折中,通过 混合比(mix ratio) r 进行控制: r=0:弹性网络变为岭回归 r=1

协同过滤算法

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

监督学习与无监督学习

喜你入骨 提交于 2019-12-11 01:46:38
监督学习 监督学习主要为回归问题与分类问题 回归 回归问题是针对于连续型变量 简单讲就是拟合出适当的函数模型y=f(x)来表示已存在的数据点,来使得给定一个新x,预测y。 例如: 分类 分类是针对离散型数据集 即,是与不是,或者说输出的结果是有限的 例如: 无监督学习 无监督学习更像是让机器自学,我们不知道数据集中数据、特征之间的关系,而是要根据聚类或一定的模型得到数据之间的关系。 简单讲就像是会自动根据特征分类 例如: 参考吴恩达机器学习课程 来源: https://www.cnblogs.com/sfencs-hcy/p/12020125.html

论文笔记(一)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 为三种机器学习算法开发出的隐私保护的协议 线性回归、逻辑回归和神经网络这三种机器学习方案非常简单但也非常常用,而且他们之间思想类似且一种递进的趋势。 所谓思想类似指的是他们都是有监督的机器学习算法,思路都是先前馈,算出交叉熵之后,在利用随机梯度下降

机器学习之监督学习supervised learning

前提是你 提交于 2019-12-06 16:36:06
分类与回归 监督学习的问题主要有两种,分别是分类classification和回归regression。 分类: 分类问题的目的是预测类别标签class label,这些标签来自预定义的可选列表。 回归: 回归任务的目的是预测一个连续值,也叫作浮点数floating-point number,即预测值不是一个类别而是一个数字值。打个比方,假如要根据一个人的年龄学历等feature来预测这个人的收入,那么预测值为一个金额,可以在给定范围内任意取值。 区分分类与回归: 最好的办法就是看输出是否具有某种连续性,如果在可能的结果之间具有连续性,那么它就是一个回归问题。 泛化 generalize: 如果一个模型能对没有见过的数据做出准确的预测,那么就表明这个模型能从训练集generalize到测试集。 过拟合 overfitting 欠拟合 underfitting: 如果我们总想找到最简单的模型,构建与一个对于现有信息量过于复杂的模型,即在拟合模型的时候过分关注训练集的细节,得到了一个与训练集上表现很好但是不能泛化到新数据上的模型,那么就是overfitting过拟合。 反之 ,如果模型过于简单,无法抓住数据的全部内容以及数据中的变化,甚至在训练集上表现就很差,那么就是underfitting欠拟合。 所以 ,在二者之间存在一个最佳位置,找到这个位置就是我们最想要的模型。 监督学习算法

使用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是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。 扩展: 支持向量机学习方法包括构建由简至繁的模型:线性可分支持向量机、线性支持向量机及非线性支持向量机。当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。