在上一篇文章当中我们剖析了Facebook的著名论文GBDT+LR,虽然这篇paper在业内广受好评,但是毕竟GBDT已经是有些老旧的模型了.今天我们要介绍一个业内使用得更多的模型,它诞生于2010年,原作者是Steffen Rendle.虽然诞生得更早,但是它的活力更强,并且衍生出了多种版本.我们今天剖析的就是这篇2010年最经典的原版论文. 说到推荐.广告的算法模型,几乎很难绕开FM,它是一个非常强的模型.理论简单.推导严谨.实现容易,并且效果不俗.即使是目前仍然在各大厂商当中发挥用场,在一…
一.HBase 读优化 1. HBase客户端优化 和大多数系统一样,客户端作为业务读写的入口,姿势使用不正确通常会导致本业务读延迟较高实际上存在一些使用姿势的推荐用法,这里一般需要关注四个问题: 1) scan缓存是否设置合理? 优化原理:在解释这个问题之前,首先需要解释什么是scan缓存,通常来讲一次scan会返回大量数据,因此客户端发起一次scan请求,实际并不会一次就将所有数据加载到本地,而是分成多次RPC请求进行加载,这样设计一方面是因为大量数据请求可能会导致网络带宽严重消耗进而影响其…
Hive SQL的执行计划描述SQL实际执行的整体轮廓,通过执行计划能了解SQL程序在转换成相应计算引擎的执行逻辑,掌握了执行逻辑也就能更好地把握程序出现的瓶颈点,从而能够实现更有针对性的优化.此外还能帮助开发者识别看似等价的SQL其实是不等价的,看似不等价的SQL其实是等价的SQL.可以说执行计划是打开SQL优化大门的一把钥匙. 要想学SQL执行计划,就需要学习查看执行计划的命令:explain,在查询语句的SQL前面加上关键字explain是查看执行计划的基本方法. 本文首发于公众号[五分钟…
Java网络编程和NIO详解3:IO模型与Java网络编程模型 基本概念说明 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限.为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操作系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间.针对linux操作系统而言,将最高的1G字节(从虚拟地址…
本文转载自epoll原理详解及epoll反应堆模型 导语 设想一个场景:有100万用户同时与一个进程保持着TCP连接,而每一时刻只有几十个或几百个TCP连接是活跃的(接收TCP包),也就是说在每一时刻进程只需要处理这100万连接中的一小部分连接.那么,如何才能高效的处理这种场景呢?进程是否在每次询问操作系统收集有事件发生的TCP连接时,把这100万个连接告诉操作系统,然后由操作系统找出其中有事件发生的几百个连接呢?实际上,在Linux2.4版本以前,那时的select或者poll事件驱动方式是这…
引言 HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展.目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出.HTTP协议的主要特点可概括如下:1.支持客户/服务器模式.2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方法常用的有GET.HEAD.POS…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第19篇文章,我们来看经典的Apriori算法. Apriori算法号称是十大数据挖掘算法之一,在大数据时代威风无两,哪怕是没有听说过这个算法的人,对于那个著名的啤酒与尿布的故事也耳熟能详.但遗憾的是,随着时代的演进,大数据这个概念很快被机器学习.深度学习以及人工智能取代.即使是拉拢投资人的创业者也很少会讲到这个故事了,虽然时代的变迁令人唏嘘,但是这并不妨碍它是一个优秀的算法. 我们来简单回顾一下这个故事,据说在美国…
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第14篇文章,我们来聊聊大名鼎鼎的EM算法. EM算法的英文全称是Expectation-maximization algorithm,即最大期望算法,或者是期望最大化算法.EM算法号称是十大机器学习算法之一,听这个名头就知道它非同凡响.我看过许多博客和资料,但是少有资料能够将这个算法的来龙去脉以及推导的细节全部都讲清楚,所以我今天博览各家所长,试着尽可能地将它讲得清楚明白. 从本质上来说EM算法是最大似然估计方法的…
今天刚学了css3的弹性盒模型,这是一个可以让你告别浮动.完美实现垂直水平居中的新特性. Flexbox是布局模块,而不是一个简单的属性,它包含父元素和子元素的属性. Flexbox布局的主体思想是似的元素可以改变大小以适应可用空间,当可用空间变大,Flex元素将伸展大小以填充可用空间,当Flex元素超出可用空间时将自动缩小.总之,Flex元素是可以让你的布局根据浏览器的大小变化进行自动伸缩. 创建Flex容器 flexbox布局首先需要创建一个flex容器.为此给元素设置display属性的值…
目前没有浏览器支持 box-flex 属性. Firefox 支持替代的 -moz-box-flex 属性. Safari.Opera 以及 Chrome 支持替代的 -webkit-box-flex 属性. css3的弹性盒模型,这是一个可以让你告别浮动.完美实现垂直水平居中的新特性. Flexbox是布局模块,而不是一个简单的属性,它包含父元素和子元素的属性. Flexbox布局的主体思想是似的元素可以改变大小以适应可用空间,当可用空间变大,Flex元素将伸展大小以填充可用空间,当Flex元…
关于 Apache Pulsar Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息.存储.轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户.持久化存储.多机房跨区域数据复制,具有强一致性.高吞吐.低延时及高可扩展性等流数据存储特性. GitHub 地址:http://github.com/apache/pulsar/ 背景 Apache Pulsar 系列文章为读者们详细解释了 Pulsar 的消息保留和过期策略,本文是系列第…
只要接触过ts的前端同学都能回答出ts是js超集,它具备静态类型分析,能够根据类型在静态代码的解析过程中对ts代码进行类型检查,从而在保证类型的一致性.那,现在让你对你的webpack项目(其实任意类型的项目都同理)加入ts,你知道怎么做吗?带着这个问题,我们由浅入深,逐步介绍TypeScript.Babel以及我们日常使用IDE进行ts文件类型检查的关系,让你今后面对基于ts的工程能够做到游刃有余. TypeScript基本认识 原则1:主流的浏览器的主流版本只认识js代码 原则2:ts的代码…
大家好,我是老三啊,面渣逆袭 继续,这节我们来搞定另一个面试必问知识点--Spring. 有人说,"Java程序员都是Spring程序员",老三不太赞成这个观点,但是这也可以看出Spring在Java世界里举足轻重的作用. 基础 1.Spring是什么?特性?有哪些模块? 一句话概括:Spring 是一个轻量级.非入侵式的控制反转 (IoC) 和面向切面 (AOP) 的框架. 2003年,一个音乐家Rod Johnson决定发展一个轻量级的Java开发框架,Spring作为Java战场…
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/34 本文地址:http://www.showmeai.tech/article-detail/195 声明:版权所有,转载请联系平台与作者并注明出处 引言 之前ShowMeAI对强大的boosting模型工具XGBoost做了介绍(详见ShowMeAI文章图解机器学习 | XGBoost模型详解).本篇我们来学习一下GBDT模型(详见ShowMeAI文章 图解机器学习 | GBDT模…
一.模型层的Meta选项详解 Django模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.使用方法及参数解释如下: class Book(models.Model): nid=models.AutoField(primary_key=True) title=models.CharField(max_length=32) price = models.DecimalField(max_digits=5, decimal_places=2) def __str__(self…
一 . 模型层的Meta选项详解 Django模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.便用方法及参数解释如下 : class Book(models.Model): nid=models.AutoField(primary_key=True) title=models.CharField(max_length=32) price = models.DecimalField(max_digits=5, decimal_places=2) def __str__(s…
Django模型之Meta选项详解 MEAT选项 Django模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性.而可用的选项大致包含以下几类 abstract 这个属性是定义当前的模型是不是一个抽象类.所谓抽象类是不会对应数据库表的.一般我们用它来归纳一些公共属性字段,然后继承它的子类可以继承这些字段. Options.abstract 如果abstract = True 这个model就是一个抽象类 app_label 这个选型只在一种情况下使用,就是你的模型不在默认的…
Css盒模型属性详解(margin和padding) 大家好,我是逆战班的一名学员,今天我来给大家分享一下关于盒模型的知识! 关于盒模型的属性详解及用法 盒模型基本属性有两个:padding和margin. 以边框border为界,边框里面是内边距,边框外面是外边距. 1.内边距padding:如上图,如果父元素设置了边框,内边距是指235*240大小的内容区与边框之间的距离,不管父元素是否设置边框,更准确地说,内边距可以控制父元素和子元素或者元素和内容之间的距离(元素相对于内容来说也是父元素)…
大家好,我是老三,面渣逆袭系列继续,这节我们来搞定Redis--不会有人假期玩去了吧?不会吧? 基础 1.说说什么是Redis? Redis是一种基于键值对(key-value)的NoSQL数据库. 比一般键值对数据库强大的地方,Redis中的value支持string(字符串).hash(哈希). list(列表).set(集合).zset(有序集合).Bitmaps(位图). HyperLogLog.GEO(地理信息定位)等多种数据结构,因此 Redis可以满足很多的应用场景. 而且因为Re…
从今日起开始认真研读TCP/IP详解这本经典制作,一是巩固我薄弱的计算机网络知识,二来提高我的假期的时间利用率.将心得与思考记录下来,防止白看-哦耶 2013-08-14 18:47:06 第一章 概述 1.1引言 1.2分层 层次名 功能 备注 应用层 处理特定应用程序细节 Telnet远程登录.FTP文件传输协议.SMTP简单邮件传送协议.SNMP简单网络管理协议 运输层 为两台主机上的应用程序提供端到端的通信 TCP(传输控制协议) 为两台主机提供高可靠性的数据通信 UDP(用户数据报协议…
1.什么是事务 数据库事务:(database transaction): 事务是由一组SQL语句组成的逻辑处理单元,一组事务中的SQL语句要不全部执行成功功:如果其中某一条执行失败,则这组SQL语句中已经执行的语句会回滚到这组SQL语句执行之前的状态. 事务处理,可以确保非事务性单元的多个操作都能成功完成,否则不会更新数据资源. 数据库默认事务是自动提交的, 也就是发一条 sql 它就执行一条.如果想多条 sql 放在一个事务中执行,则需要使用事务进行处理. 当我们开启一个事务,并且没有提交,…
前言 我们都知道,javascript从诞生之日起就是一门单线程的非阻塞的脚本语言.这是由其最初的用途来决定的:与浏览器交互. 单线程意味着,javascript代码在执行的任何时候,都只有一个主线程来处理所有的任务. 而非阻塞则是当代码需要进行一项异步任务(无法立刻返回结果,需要花一定时间才能返回的任务,如I/O事件)的时候,主线程会挂起(pending)这个任务,然后在异步任务返回结果的时候再根据一定规则去执行相应的回调. 单线程是必要的,也是javascript这门语言的基石,原因之一在其…
JMS: Java消息服务(Java Message Service) JMS是用于访问企业消息系统的开发商中立的API.企业消息系统可以协助应用软件通过网络进行消息交互. JMS的编程过程很简单,概括为:应用程序A发送一条消息到消息服务器的某个目得地(Destination),然后消息服务器把消息转发给应用程序B.因为应用程序A和应用程序B没有直接的代码关连,所以两者实现了解偶. 消息驱动bean(message-driven bean) 它是专门用于异步处理java消息的组件.具有处理大量并…
1.基础文件及目录结构 在认识odoo ORM框架前,先介绍一下odoo中模块目录结构.   data:存放模块预制数据i18n:存放国际化文件models:存放模型等py代码security:存放权限文件views:存放视图文件__manifest__.py:该文件用于声明该模块,并指定一些模块元数据.(odoo8时该文件为__openerp__.py.)   # -*- coding: utf- -*- { # name:模块名称 'name': " test", # descri…
Linux 内存机制详解宝典 在linux的内存分配机制中,优先使用物理内存,当物理内存还有空闲时(还够用),不会释放其占用内存,就算占用内存的程序已经被关闭了,该程序所占用的内存用来做缓存使用,对于开启过的程序.或是读取刚存取过得数据会比较快. 一. 我们先来查看一个内存使用的例子: [oracle@db1 ~]$ free -m total       used       free     shared    buffers     cached Mem:        72433    …
QAV250四轴穿越机安装全程详解 最近团队准备使用轻型穿越机QAV250做实验,本文记录了QAV250的安装过程,整理了开箱后较合理的安装顺序,以及各个步骤的注意事项,希望对有需要的朋友有所帮助.主要内容包括: 系统基本配置 QAV250机架安装 飞控及其部件安装 飞行前的准备 一.基本配置 机架 QAV250机架×1 动力 店家定制2204 2300kv马达×4 银燕BL电调 12A×4 Matek PDB-XT60分线板×1 锂电池:3S 螺旋桨:6045二叶正反桨 飞控与GPS Pixh…
目录 一:iptables 1.iptables简介 2.什么是防火墙? 3.防火墙种类 二:iptables基本介绍 1.解析内容 三:iptables流程(讲解) 1.流入本机 2.解析(流入本机) 3流出本机 4.解析(流出本机) 5.经过本机 6.解析(经过本机) 四:什么是包过滤防火墙 1.什么是包? 2.什么是包过滤防火墙? 3.包过滤防火墙如何实现? 五:Iptables四表五链的概念 1.什么叫表? 2.那四个表,有哪些作用? 3.那五条链,运行在那些地方? 六:iptables…
本文为<高性能网络编程游记>的第六篇"性能追击:万字长文30+图揭秘8大主流服务器程序线程模型". 最近拍的照片比较少,不知道配什么图好,于是自己画了一个,凑合着用,让大家见笑了. 本文我们来探索一下主流的各种应用服务器的网络处理模型,看看大家都是怎么设计网络程序的.在本文中,我会从Node.js.Apache Server.Nginx.Netty.Redis.Tomcat.MySQL.Zuul等常用的服务器程序,给大家逐一分析,分析各种服务器程序的性能,心中有数,才能手中…
文题 "跬步千里" 主要是为了凸显这篇文章的基础性与重要性(狗头),并发编程这块的知识也确实主要围绕着 JMM 和三大性质来展开. 全文脉络如下: 1)为什么要学习并发编程? 2)为什么需要并发编程? 3)介绍 Java 内存模型 4)详解 Java 内存模型的三大性质(原子性.可见性.有序性),这也是判断线程安全的三个重要指标.以原子性为例,大致行文逻辑如下: 什么是原子性 不满足原子性会导致什么问题 如何保证原子性 为什么要学习并发编程 对于 "我们为什么要学习并发编程?…
万字长文:从计算机本源深入探寻volatile和Java内存模型 前言 在本篇文章当中,主要给大家深入介绍Volatile关键字和Java内存模型.在文章当中首先先介绍volatile的作用和Java内存模型,然后层层递进介绍实现这些的具体原理.JVM底层是如何实现volatile的和JVM实现的汇编代码以及CPU内部结构,深入剖析各种计算机系统底层原理.本篇文章超级干,请大家坐稳扶好,发车了!!!本文的大致框架如下图所示: 为什么我们需要volatile? 保证数据的可见性 假如现在有两个线程…