自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Yummy

数学是基础、编程是工具、算法才是利器

原创 解决iterm2使用vim乱码乱行

在~/.vimrc中加入以下代码 set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936 set termencoding=utf-8 set encoding=utf-8

2020-04-30 18:10:39 177 0

原创 mac iterm2 安装 lrzsz rz sz命令

1. 下载iterm2 首先mac自带的终端是不支持lrzsz的,需要下载安装iterm2, 下载地址:http://www.iterm2.cn/download 2. 按照brew 国外:/usr/bin/ruby -e "$(curl -fsSLhttps://raw.git...

2020-04-30 15:41:29 162 0

原创 2Sum、3Sum、3Sum Closest、4Sum问题

KSum问题是面试中常见的面试题,考察是否能够合理利用排序这个性质, 一步一步得到高效的算法。K sum的求和问题一般是这样子描述的:给你一组N个数字, 然后给你一个常数(比如 int target) ,目标是在这一堆数里面找到K个数字,使得这K个数字的和等于target。 2Sum 解决方法...

2020-03-24 19:44:57 51 0

原创 最长递增子序列

这是百度一面面试题。 举例:arr = [2, 1, 5, 3, 6, 4, 8, 9, 7], 返回的最长递增子序列为 [1, 3, 4, 8, 9]。 1. 动态规划解法 思路如下: 构造dp:生成长度为N的数组dp,dp[i]表示在以arr[i]这个数结尾的情况下,arr[0...i...

2020-03-09 09:48:18 68 0

原创 工业界常用推荐算法的升级之路

本文将介绍常见推荐算法的升级之路,从最初的LR到业界常用的DIN、DIEN等模型。 1. 线性模型 1.1 逻辑回归LR 简介 逻辑回归算法是一种监督学习分类算法,对特征进行线性加权求和,通过Sigmoid函数将结果映射到0-1。 模型结构 结构风险函数 = 经验风险项+正则项其中损失...

2020-03-08 00:15:09 381 0

原创 LR损失函数推导

LR的推导 LR逻辑回归是一种监督学习分类算法,其实现了给定数据集到0,1的一种映射。 给定数据集D={(x1,y1),(x2,y2),...,(xm,ym)},其中(xi,yi)表示第i个样本,其中,xi=(xi1,xi2,...,xin),即每个数据有n个特征,类别y={0,1},要求训练...

2020-02-17 20:08:58 312 0

原创 Xgboost与Gbdt的区别

传统GBDT以CART作为基分类器,CART以gini指数选择特征,gini指数越小,纯度越高。离散特征会依次将每个取值作为分割点计算gini系数,连续特征会依次将连续两个值的中间值作为分割点,均取gini指数最小的作为最优特征与最优切分点。Xgboost还支持线性分类器,这个时候xgboost相...

2020-02-17 18:09:32 107 0

原创 基于CentOS 搭建gRPC框架

1. 简介 RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型。使用的时候客户端调用server端提供的接口就像是调用本地的函数一样。 gRPC(google RPC)是一个高性能、...

2019-11-27 17:10:03 142 0

原创 mac iterm2 自动登录服务器

由于mac还不支持xshell,xshell有按钮功能能快速登录服务器,iterm2是mac常用的ssh客户端,下面,介绍如何利用iterm2快速登录服务器。 1. 登录远程服务器 #!/usr/bin/expect set timeout -1 spawn ssh -p [lindex $...

2019-11-12 20:06:28 287 0

原创 C++设计模式之工厂模式实例

工厂模式 工厂模式属于创建型模式,大致可以分为三类,简单工厂模式、工厂方法模式、抽象工厂模式。 简单工厂模式 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一类产品类(这些产品类继承自一个父类或接口)的实例。假设有一个工厂,它能生产出A、B两种产品。当客户需要产品的时候一...

2019-11-05 21:14:04 153 0

原创 Visual Studio Code快捷键

通用 Ctrl+Shift+P, F1 打开命令面板 Ctrl+P 快速打开文件 Ctrl+Shift+N 打开新窗口/实例 Ctrl+Shift+W 关闭窗口/实例 基础编辑 Ctrl+X 剪切当前行 Ctrl+C 复制当前行 ...

2019-07-25 18:58:29 47 0

原创 g++ 常用链接参数

Linux上开发C++时,常需要添加第三方依赖,有以下几种常用的参数: 1. -l(小写L) 当库文件在/lib、/usr/lib、/usr/local/lib三个目录下时,可直接用-l链接。-l参数后紧跟库名,库名和库文件名的关系如下:以数学库为例,它的库名为m,库文件名为libm.so...

2019-07-07 15:08:41 351 0

原创 Linux三剑客之sed实战

基本介绍 sed是Linux中一种流编辑器,是文本处理非常有力的工具,支持将数据进行替换、删除、新增、选取等功能。首先将决定选取哪些行进行编辑,规则可以是数字、正则表达式等,若没有限制,则将处理输入文件的所有行。在处理时,将当前行存储在临时缓存区中,称为”模式空间“,然后使用sed指令处理缓冲区...

2019-05-26 00:50:28 128 0

原创 STL 源码剖析之Vector

1. Vector 概念 作为STL中常用的序列式容器,vector的数据安排与操作方式,与array都十分相似,它们唯一的差别是对于空间运用的灵活性。array称为静态数组,一旦初始化则不能改变大小,而vector称为动态数组,随着元素的不断加入,它的内部机制会自行扩充空间。因此,vector...

2019-05-21 14:37:57 132 0

原创 anaconda 安装package提示PackagesNotFoundError

Linux下使用anaconda安装package时,有时候会提示“PackagesNotFoundError: The following packages are not available from current channels”。 解决方案如下: 第一步:输入 anaconda ...

2019-04-26 18:23:37 2820 1

原创 Linux 三剑客之grep实战

基本介绍 grep是Linux中一种强大的文本搜索工具,用于查找文件里符合条件的字符串。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。若不指定任何文件名称,或是所给予的文件名为"-",则grep指...

2019-04-22 18:27:04 114 0

原创 C/C++程序占用内存说明

一、组成部分 1. 栈区(stack):由编译器自动分配释放,存放函数参数值,局部变量的值等,操作类似于数据结构中的栈。栈内存分配内置于处理器的指令集,分配效率高但是内存容量有限,不会产生内存碎片,向着内存地址减小的方向生长; 2. 堆区(heap):由程序员自动分配释放 ,若程序员不释放,容...

2019-04-15 21:03:49 1361 0

原创 Linux 三剑客之awk实战

基本介绍 awk是Linux开发下常用的一种对文本进行处理的工具,具有十分强大的功能。数据可以来源于标准输入、文件及外部变量,支持用户自定义函数和动态正则表达式等高级功能,且拥有许多内置的功能和函数,是开发中的一件利器。 通常,awk是以文件的一行为处理单位的,每接收文件的一行,然后执行相应的...

2019-04-12 13:10:44 156 0

原创 剑指Offer题目汇总(C++版)

最近,鉴于目前网上关于《剑指Offer》C++版的汇总资料特别少或者不规范,特整理了一版书中重要的考题,以备学习使用。 目录 一、位运算 1. 二进制中1的个数 2. 二进制中0的个数 3. 二进制高位连续0的个数 二、二叉树 1. 二叉搜索树第k个结点 2. 从上往下打印二叉树 ...

2019-04-11 18:17:02 492 0

原创 C++ 数据结构实战:快速查找

最近线上开发C++时,遇到一个性能问题,业务场景简单描述为: 给定m个商品ID, 4个特征(特征数量可增可减),已知商品对应的每个特征的值,如何快速获取某个商品的某个特征值? 当时我采取的是stl嵌套的数据结构,由于时间复杂度较高,且vector的值是随着map的rehash阶段不断进行内存...

2019-03-27 17:36:03 887 0

原创 C++多线程管理实操

多线程开发在实际工作中十分重要,在开发C++程序时,一般在吞吐量、并发、实时性上有较高的要求。因此,本文旨在讲解多线程的基本概念,以及利用C++编写一种生产者-消费者模型的多线程实例。 基本概念 通常,并发编程有两种模式,分别是多进程并发和多线程并发。多进程并发指的是开辟多个独立且只包含一个线...

2019-03-24 16:13:56 421 0

原创 anaconda配置虚拟环境

工作中,由于权限不足等原因,安装python各种依赖包时十分麻烦,因此,下面讲述如何利用anaconda配置虚拟环境。 anaconda配置虚拟环境 1. 下载anaconda anaconda官网:https://www.anaconda.com/ 清华镜像:https://mirror...

2019-03-06 11:49:57 473 0

原创 动态规划之深入浅出

1. 简介 动态规划(Dynamic Programming,DP)算法目的为解决多阶段决策最优化问题,采取的方法是将待求解的问题分解为多个子问题,按顺序求解每一个子问题,当前子问题的解将由前一个子问题的解推导出,最后一个子问题就是初始问题的解。 由于动态规划解决的问题多数有重叠子问题这个特点...

2019-01-31 10:45:41 281 0

原创 Linux 编译cpp为动态库so文件

g++ hash.cpp -fPIC -shared -o hash.so

2019-01-07 10:54:50 1547 0

原创 工作常用Git命令实战

1. 简化日志       git log –pretty=oneline        2. 版本回退     回退至上一个版本:git reset  --hard HEAD^     回退至上上版本:   git reset  --hard HEAD^^     回退至前n个版本:...

2018-12-29 18:26:20 231 1

原创 CTR预估之Deep Interest NetWork模型原理详解

本文介绍的Deep Interest NetWork是阿里妈妈盖坤带领的团队2018年8月发表在KDD的Paper,在点击率预估等场景有不错的效果。由于最近团队也准备尝试下该模型,因此提前熟悉下DIN的原理与实现。 引言 点击率预估在搜索、推荐、广告等领域具有很广泛及成功的应用,众多学者和...

2018-12-14 18:49:21 2613 0

原创 快速求解exp方法

开发线上项目时,效率往往是一个十分重要的指标。程序在计算指数exp时,一般是通过泰勒展开近似的,为了保证精度,所展开的泰勒项特别多。因此,exp的求解是十分耗时的。下面,提供一种快速求解exp的方法。 double fast_exp(double x){ double d; // 先将...

2018-12-13 20:53:54 1372 0

原创 广告CTR预估相关模型汇总

一、FM、FFM  FM:Factorization Machines  FFM:Field-aware Factorization Machines for CTR Prediction 二、DeepFM  DeepFM:DeepFM: A Factorization-Machine b...

2018-12-08 23:45:13 211 0

原创 《基于行列式点过程的推荐多样性提升算法》原理详解

本文将详细讲解Hulu在NIPS 2018 会议上发表的《Fast Greedy MAP Inference for Determinantal Point Process to Improve Recommendation Diversity》中,提出的基于行列式点过程的推荐多样性提升算法。 ...

2018-12-06 20:15:18 4964 12

原创 C中int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t区别

工作中经常碰到int8_t、int16_t、int32_t、int64_t、uint8_t、size_t、ssize_t等数据类型,所以有必要对此进行梳理。 int_t同类 int_t 为一个结构的标注,可以理解为type/typedef的缩写,表示它是通过typedef定义的,而不是一种新的...

2018-12-04 12:05:06 35204 0

原创 C++ STL系列之boost:unordered_map和std::map区别详解

开发C++时,选择合适的数据结构是一个十分重要的步骤。因此,必须对每一个数据结构的原理及应用场景都有所了解。 boost::unordered_map和std::map都是一种关联式容器,且原理类似,通过存储key-value键值对,可通过key快速检索到value,并且key是不重复的。但是,...

2018-12-04 11:00:15 1917 0

原创 C++中数组和指针之间的关系梳理

C++中数组和指针是两个十分常用且关系密切的数据结构,“数组即指针,指针即数组”的言论一直层出不穷。从本质上讲,数组和指针是不同的,数组是具有确定数量的元素,而指针只是一个标量值。但是,在某些情况下数组和指针又能相互转换。下面,将从多个角度分析数组和指针。 1. 数组和指针互相转换 数组能在指...

2018-12-02 15:29:04 565 0

原创 C++ memset初始化对象注意点

C语言,在利用struct进行数据封装时,经常会使用memset(this,0,sizeof(*this))来初始化。而C++中,有时候也会用到struct,在利用memset进行初始化时,非常容易踩坑,有些地方需要注意。 C++利用memset初始化struct注意点 1. memset 是...

2018-11-30 17:23:25 1399 1

原创 C语言中strtod与strtol的区别

strtod与strtol都是C/C++中常用的将字符数组转换成数组型常用的函数,但是它们也有一定的区别(C++真是让人又爱又恨)。 strtod用法 定义:double strtod (const char* nptr, char** endptr); 参数:nptr为待转换的字符数组,e...

2018-11-30 15:25:30 510 0

原创 广告点击率CTR修正-Wilson CTR

CTR(Click-Through-Rate)即点击通过率,指网络广告的点击到达率。CTR是广告推荐系统中,一项重要的衡量算法好坏的指标。 计算公式:  CTR = 点击数 / 曝光数 由于原始CTR计算方式只考虑了相对值,没有考虑绝对值。即,没有考虑曝光的数值大小,因为,曝光少的情况下,计算...

2018-11-29 16:55:29 4554 0

原创 GDB调试进阶 - 动态调度pid进程

开发机中编译带debug信息的动态库            cd jd_search_rank            mkdir debug            cd debug            cmake -DCMAKE_BUILD_TYPE=Debug ..          ...

2018-11-27 17:53:19 875 0

原创 GDB 调试工具入门

GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具,通常在服务器上开发C/C++时,该工具是必不可少的。下面,将通过例子详细介绍GDB的使用。 1. 源程序  #include<iostream> using namespace std; int c=...

2018-11-23 15:08:15 247 0

原创 JetBrains系列集成软件多行代码缩进

在使用JetBrains旗下的集成软件,如IDEA, Pycharm, PhpStorm,Clion等时,通常需要整体向前或者向后缩进代码,以更加美观地编写代码。此时,可通过以下两个快捷键实现该功能: 1.代码整体向后缩进:       选中多行代码 -  按下tab键 2.代码整体向前缩进...

2018-11-02 14:17:06 1729 0

原创 Python Tornado 异步处理实现

本文将叙述如何利用线程池的方式实现Tornado的异步处理。 1. 异步处理方案        在处理请求应用上加上@tornado.web.asynchronous和@tornado.gen.engine装饰器,即可实现异步方法配合实现非阻塞请求处理。请求上加了这两个装饰器,@tornado...

2018-10-31 21:38:20 3307 0

原创 Pig实现order by limit功能

下面,将介绍如何利用Pig实现按多个值排序,并取每个组的前n个值。例如,取每个商品曝光前2的搜索词。 1. 文本数据 sku1,query11,pos11,50 sku1,query12,pos12,40 sku1,query13,pos13,20 sku2,query21,pos21,40...

2018-10-29 15:13:00 145 0

提示
确定要删除当前文章?
取消 删除