自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 神经网络优化的方法-梯度、超参数

神经网络优化方法一:使用正则化技巧提高模型的泛化能力二:梯度优化三:网络初始化技巧和超参数调优一:使用正则化技巧提高模型的泛化能力常用的正则化方法如下所示:L1、L2 正则化dropout 正则化Data Augmentation 增加训练样本Early stopping 选择合适的迭代训练次数二:梯度优化常用的梯度优化方法如下:梯度下降随机梯度下降 (SGD)动量梯度下降 (Momentum GD)AdaGradRMSpropAdam三:网络初

2020-06-25 19:52:12 777

原创 面试-计算机网络

计算机网络Http和Https的区别三次握手四次挥手Get与POST的区别TCP与UDP的区别TCP的拥塞处理从输入网址到获得页面的过程Session、Cookie 与 ApplicationOSI网络体系结构与TCP/IP协议模型TCP和UDP分别对应的常见应用层协议IP地址与物理地址Http和Https的区别Http协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份;Https是身披SSL外壳的Http,运行于SSL上,SSL运行于TCP之上,是添加了加密和认证机制的HTTP。二者

2020-06-13 15:12:12 334

原创 面试-操作系统复习

进程和线程以及它们的区别系统进行资源调度和分配的的基本单位,实现了操作系统的并发;线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的 实时性,实现进程内部的并发;一个程序至少有一个进程,一个进程至少有一个线程,线程依赖于进程而存在;进程在执行过程中拥有独立的内存单元,而多个线程共享进程的内存。进程间的通信的几种方式管道:管道可用于具有亲缘关系的父子进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;信号:信号是一种比较复.

2020-06-13 15:04:21 266

转载 推荐系统技术演进趋势:从召回到排序再到重排

这里参考张俊林老师的文章链接架构介绍推荐系统架构介绍召回:缩小可选集粗排:有时候因为每个用户召回环节返回的物品数量还是太多,怕排序环节速度跟不上,所以可以在召回和精排之间加入一个粗排环节,通过少量用户和物品特征,简单模型,来对召回的结果进行粗略的排序,在保证一定精准的前提下,进一步减少往后传送的物品数量,粗排往往是可选的,可用可不同,跟场景有关。精排:使用你能想到的任何特征,可以上你能承受速度极限的复杂模型,尽量精准地对物品进行个性化排序。重排:传统地看,这里往往会上各种技术及业...

2020-06-13 15:00:08 1895

原创 推荐算法中点击率CTR修正方法—威尔逊区间

由于原始CTR计算方式只考虑了相对值,没有考虑绝对值。即,没有考虑曝光的数值大小,在曝光少的情况下,计算出的CTR其实不可靠,样本充足的情况下,才能反应真实情况举例:A:点击数 5 曝光数 10B:点击数 50 曝光数 100C:点击数 500 曝光数 1000此三个广告的CTR 都是 0.5 ,但是按照实际表现,从置信的角度分析,应该是C > B > A,因为C的样本数更多,可信度更高。为了衡量样本数对于 CTR 置信区间的影响,科学家们引入"威尔逊(Wilson)区间"的概念。公

2020-06-13 14:55:43 1033

转载 并查集详解 ——图文解说(转)

并查集是我暑假从高手那里学到的一招,觉得真是太精妙的设计了。以前我无法解决的一类问题竟然可以用如此简单高效的方法搞定。不分享出来真是对不起party了。(party:我靠,关我嘛事啊?我跟你很熟么?)来看一个实例,HDU1232畅通工程首先在地图上给你若干个城镇,这些城镇都可以看作点,然后告诉你哪些对城镇之间是有道路直接相连的。最后要解决的是整幅图的连通性问题。比如随意给你两个点,让你判断它们是否连通,或者问你整幅图一共有几个连通分支,也就是被分成了几个互相独立的块。像畅通工程这题,问还需要修几条.

2020-06-08 15:56:53 203

原创 Leetcode990. 等式方程的可满足性 C++ 并查集

题目:思路:这是一道并查集的板子,==号我们可以认为两个字母之间存在一条边,先遍历一遍把所有 == 的字母进行连接,然后再次遍历看一下不相等的字母是否在一个连通分量上,那么主要就是怎么连接以及怎么去判断两个字母是否在同一个连通分量上.代码:class Solution {public: int father[26]; bool equationsPossible(vector<string>& equations) { //并查集

2020-06-08 15:45:32 196

原创 Leetcode 128. 最长连续序列 C++

题目:思路:对于连续的序列,并不要求顺序,往往要想到map来解决。对于要求子数组满足前后顺序的问题,一般需要滑动窗口来解决。本题不要求顺序,所以借助map来解决。将数组中所有的数先用map存储下来遍历数组,对每一个数,将两边扩展并通过map来判断是否存在,每次更新结果保证当前的最大值。代码:class Solution {public: int longestConsecutive(vector<int>& nums) { //时间复杂度O(n)

2020-06-06 10:28:51 197

原创 anaconda版本查看,老版本下载。

https://www.anaconda.com/查看Anaconda版本(C:\ProgramData\Anaconda3) C:\Users\Administrator>conda -Vconda 4.3.30Anaconda和python版本对应关系Anaconda3-4.3.0.1-Windows-x86_64.exe  对应 python3.6.0Anaconda3-5.1.0-Windows-x86_64.exe     对应 python3.6.

2020-05-31 15:26:12 7914

原创 Leetcode 101. 对称二叉树 递归和迭代。

目录题目递归迭代题目递归递归的思想首先判断是哪种遍历方式,这道题应该是前序遍历,因为要从根节点开始,那么依次判断根的左节点和右节点是否相等。前序遍历递归的结构 dfs(root1->left,root2->right), dfs(root1->right,root2->left)递归结束的条件class Solution {public: bool isSymmetric(TreeNode* root) { if(root == NULL

2020-05-31 10:55:59 206

原创 Graph embedding之Deepwalk算法原理,实现和应用

目录图神经网络DeepWalk 算法原理DeepWalk算法图网络现在非常的流行,应用场景也十分的广泛,在推荐领域应用也十分广泛,在召回阶段graph-embedding是很有效的一种方式。以下内容参考浅梦大神的笔记。图神经网络主要包括Graph Embedding(基于随机游走)和Graph CNN(基于邻居汇聚)两部分。这里先看下Graph Embedding的相关内容。Graph Embedding技术将图中的节点以低维稠密向量的形式进行表达,要求在原始图中相似(不同的方法对相似的定义不同)的节

2020-05-28 16:14:56 1762

原创 推荐算法多任务学习的几种方式

文章目录阿里 ESMM阿里 DUPN美团"猜你喜欢" 深度学习排序模型Google MMoE阿里 ESM2YouTube 多目标排序系统美图小结推荐系统中如果只优化ctr,那么有很多已有的ctr预估模型可以做。但是往往一个优秀的推荐系统除了ctr外还有很多优化的目标,比如观看时长、收藏率、转发率等,那么能训练一个模型,对多个目标同时优化呢。本文将总结一些该方面的成果和实践阿里 ESMM论文名:Entire Space Multi-Task Model: An Effectiv...

2020-05-23 20:51:29 1361

原创 Leetcode 76 最小覆盖子串 滑动窗口 图解

题意 :思路:采用滑动窗口,窗口有左右边界,先通过扩展右边界找出一个包含T中所有字符的子串,然后收缩左边界,直到不能再收缩。记录此时的子串。然后收缩左边界,继续扩展右边界,直到再找到满足要求的子串,和上次的进行比较,保存更小的子串。返回执行,直到右边界到达S串尾,且左边界不能再收缩。C++代码:class Solution {public: string minWindow(string s, string t) { map<char,int> mp;

2020-05-23 13:27:17 278

原创 tf.split()、tf.tile()函数的用法和例子

tf.split()顾名思义就是将tensor分割成为列表的形式。通常tf.split之后往往会跟tf.concat结合使用。tf.split( value, num_or_size_splits, axis=0, num=None, name='split')value:准备切分的张量num_or_size_splits:准备切成几份axis : 准备在第几个维度上进行切割其中分割方式分为两种如果num_or_size_splits 传入的 是一

2020-05-19 18:04:57 980

原创 Leetcode 4 寻找两个正序数组的中位数 C++解法思路

题目思路代码这道题让我们求两个有序数组的中位数,而且限制了时间复杂度为O(log (m+n)),看到这个时间复杂度,自然而然的想到了应该使用二分查找法来求解。那么回顾一下中位数的定义,如果某个有序数组长度是奇数,那么其中位数就是最中间那个,如果是偶数,那么就是最中间两个数字的平均值。这里对于两个有序数组也是一样的,假设两个有序数组的长度分别为m和n,由于两个数组长度之和 m+n 的奇偶不确定,因此需要分情况来讨论,对于奇数的情况,直接找到最中间的数即可,偶数的话需要求最中间两个数的平均值。为了简化代码

2020-05-16 13:16:06 554

原创 Leetcode 155. 最小栈 C++ 双栈、单栈双解法。

双栈解法class MinStack {private: stack<int> s1; stack<int> s2;public: /** initialize your data structure here. */ MinStack() { } void push(int x) { s1.push(x); if(s2.empty() || x <= s2.top

2020-05-12 22:06:57 288

原创 Leetcode39,40,216,组合总和三道题,通用回溯法+剪枝

目录Leetcode39,组合总和1Leetcode40,组合总和2Leetcode216,组合总和3四道题的思路都是回溯法,回溯法的思路就是暴力遍历,同时使用剪枝来限制缩小搜索的空间,从而降低复杂度。回溯法核心就是dfs,将问题想象为一个层级的树结构,每递归一次,树的深度就+1. 在同层就是下面代码中func函数的for()结构。 下面三道题我是用统一的结构来编写。Leetcode39,组合总和1class Solution {public: vector<vector<int

2020-05-09 22:30:03 176

原创 Spring bean- constructor-arg和property在xml中的使用示例

Spring - constructor-arg和property的使用示例1.说明2. constructor-arg的使用示例3. property的使用示例4. Test1.说明constructor-arg:通过构造函数注入。property:通过setter对应的方法注入。2. constructor-arg的使用示例2.1 model代码public class Stude...

2020-05-08 15:52:17 585

原创 图神经网络的介绍之GraphSAGE

目录GraphSAGEGraphSAGE算法原理采样邻居顶点生成向量的伪代码聚合函数的选取MEAN aggregatorPooling aggregatorLSTM aggregator参数的学习GraphSAGEGCN是一种在图中结合拓扑结构和顶点属性信息学习顶点的embedding表示的方法。然而GCN要求在一个确定的图中去学习顶点的embedding,无法直接泛化到在训练过程没有出现过的...

2020-05-05 15:42:57 3381 2

原创 Leetcode 55/45 跳跃游戏 贪心算法

目录Leetcode 55 跳跃游戏1题目代码Leetcode 45 跳跃游戏2题目代码这两道题的思想都是采用贪心思想,通过局部最优,来达到最后的全局最优。Leetcode 55 跳跃游戏1题目代码问题判断是否能达到最后,关键是声明一个reach变量,来记录我们最远到达的距离,那么当reach到达最后一个索引就返回true。我们每次遍历都要更新reach,使得reach每次都是目前能到...

2020-05-04 17:39:31 415

原创 推荐几款chrome的插件,体验不一样的赶脚

目录远方 New TabuBlock OriginThe Great Suspenderjson-vieweroctotree远方 New Tab单的说,每次打开一个新的标签页,都会有一张看了心情很好的风景图~uBlock Origin记得要下origin版本哦另外一个同名的是商业公司版本,害怕会加什么蜜汁优化来看一下效果,对付广告贼多的csdnThe Great Suspend...

2020-04-30 22:29:35 815 1

原创 Leetcode542,1162 BFS在二维矩阵中的应用

二维矩阵中的BFS,求最短XX的问题1.BFS的核心要点2.Leetcode 542 0 1 矩阵2.1题目2.2代码3.Leetcode1162 地图分析3.1题目3.2代码1.BFS的核心要点一、广度优先搜索思路:对于 「Tree 的 BFS」 (典型的「单源 BFS」) 大家都已经轻车熟路了:首先把 root 节点入队,再一层一层无脑遍历就行了。对于 「图 的 BFS」 (「...

2020-04-29 19:48:01 233

原创 Tensorflow基本结构练习-实现简单的线性回归

       根据数据建立回归模型,w1x1+w2x2+…..+b = y,通过真实值与预测值之间建立误差,使用梯度下降优化得到损失最小对应的权重和偏置。最终确定模型的权重和偏置参数。最后可以用这些参数进行预测。二、案例:实现线性回归的训练1 .案例确定假设随机指定100个点,只有一个特征 数据本身的分布为 y = 0.7 * x...

2020-04-26 14:03:31 284

原创 如何理解推荐系统离线和线上auc和线上点击率不一致的问题?

目录1. 特征/数据出现穿越2. 线上线下特征不一致3. 数据分布的不一致离线指标和线上指标不一致是个常见的问题,花了很大力气好不容易离线auc涨了不少,上线一看效果ctr和cpm反而下降。本文例举几种可能的原因和解决办法。1. 特征/数据出现穿越一般就是使用了和label强相关的特征导致的数据泄漏。这种问题一般相对好查,很多时候在离线阶段就能发现。明显的表现就是训练集和测试集差异比较大2...

2020-04-24 22:23:48 2618

原创 Leetcode208 ,820 字典树/Trie树/前缀树介绍以及用途

目录1.字典树/Trie树/前缀树2.Leetcode208 实现 Trie (前缀树)3.LeetCode820 单词的压缩编码1.字典树/Trie树/前缀树字典树又名前缀树,Trie树,是一种存储大量字符串的树形数据结构,相比于HashMap存储,在存储单词(和语种无关,任意语言都可以)的场景上,节省了大量的内存空间。下图演示了一个保存了8个单词的字典树的结构,8个单词分别是:“A”,...

2020-04-23 22:38:41 284

原创 C++ 二叉树的最大深度,最小深度 递归解法

这里写目录标题二叉树的最大深度二叉树的最小深度二叉树的最大深度二叉树的最大深度就是根节点到叶子节点的最大路径。我们采用后序遍历的方式,对于左子树求得最大深度,右子树最大深度。我们要取最大的因此就是max(left,right),再加1是因为return的时候带上本身的root节点因此要加个自己也就是+1.class Solution {public: int run(TreeNod...

2020-04-22 14:16:35 596

转载 算法工程师面试准备——深度学习

文章目录神经网络梯度消失与梯度爆炸简述现象产生梯度消失的根本原因梯度爆炸的根本原因当激活函数为sigmoid时,梯度消失和梯度爆炸哪个更容易发生?如何解决梯度消失和梯度爆炸激活函数sigmodtanhReLULeaky ReLU优化方法SGDMomentumAdagradRMSpropAdam牛顿法拟牛顿法共轭梯度法Batch Normalization为什么传统的神经网络在训练开始之前,...

2020-04-21 21:38:20 473

转载 算法工程师面试——机器学习,特征工程基础

算法工程师面试准备——机器学习基础 特征工程为什么要归一化归一化可以提高收敛速度,提高收敛的精度归一化:最大值、均值标准化:Z-score...

2020-04-21 21:28:47 2003

原创 SQL关键字执行顺序

Mysql 的SQL关键字执行顺序对于很长SQL的语句,我们要知道SQL关键字的执行顺序,从而能够更好的理解。图中非常清晰描述了SQL关键字的过程。图解执行顺序详解:FROM:对FROM子句中前两个表执行笛卡尔积生成虚拟表vt1ON: 对vt1表应用ON筛选器只有满足 join_condition 为真的行才被插入vt2OUTER(JOIN):如果指定了 OUTER J...

2020-04-21 21:05:02 618

原创 numpy库维度变换方法:reshape、resize、swapaxes、flatten等详解与实例

numpy库对多维数组有非常灵巧的处理方式,主要的处理方法有:.reshape(shape) : 不改变数组元素,返回一个shape形状的数组,原数组不变.resize(shape) : 与.reshape()功能一致,但修改原数组In [22]: a = np.arange(20)#原数组不变In [23]: a.reshape([4,5])Out[23]:array([[ 0, ...

2020-04-21 14:20:20 1846

原创 Spark 常用Shuffle算子汇总

Spark Shuffle算子汇总一、去重二、聚合三、排序四、重分区五、集合或者表操作我们在写spark时候,shuffle算子我们格外小心,因为shuffle有时候会造成数据倾斜问题,那么我们在编写代码时,要十分清楚哪些是shuffle算子,在后续排查问题时能够快速定位。一、去重def distinct()def distinct(numPartitions: Int)二、聚合de...

2020-04-20 15:40:21 1940

原创 Spark性能优化指南—数据倾斜问题调优常用思路

Spark性能优化指南——高级篇数据倾斜发生时的现象数据倾斜发生的原理数据倾斜的解决方案1.过滤少数导致倾斜的key2.提高shuffle操作的并行度3.两阶段聚合(局部聚合+全局聚合)4.将reduce join转为map join5.采样倾斜key并分拆join操作6.使用随机前缀和扩容RDD进行joinspark处理数据时候,数据倾斜问题是经常发生的,如何缓解数据倾斜对于spark运算效率...

2020-04-19 21:54:48 163

原创 Git 基本知识以及常用操作手册

Git 基本知识以及常用操作 Git基本知识学习Git总结新建代码库首次本地项目上传【步骤】配置更新文件代码提交.git目录分支标签查看信息远程同步撤销补充【stash】Git基本知识学习推荐廖雪峰老师的教程 Git总结操作仓库变化专用...

2020-04-19 15:16:26 193

原创 剑指offer 反转链表递归 非递归 / 从尾到头打印链表

目录反转链表1.递归2.非递归从尾到头打印链表1.非递归反转链表的题目是链表中非常基础的题目,因此也是面试很常考的题目,对于反转链表需要掌握递归和非递归两种形式。反转链表1.递归对于递归的方法,我们要知道递归的结构,我们要反转head开始的链表,需要先反转head->next的链表,head->next反转之后,可以进行核心的操作语句head->next->next...

2020-04-18 20:20:12 201

原创 IntelliJ IDEA创建scala项目的三种方式

Intelli JDEA 创建Scala项目的三种不同方式 ...

2020-04-18 16:53:25 1003

原创 Spark Join操作 图文例子说明

JOIN在Spark Core中的使用Inner joinleft outer joinright outer joinfull outer joinInner joininner join,只返回左右都匹配上的// 启动spark-shell,定义两个rdd,做join操作[hadoop@hadoop01 ~]$ spark-shell --master local[2]scala&g...

2020-04-18 13:57:04 727

原创 Spark基础性能调优-开发调优,资源调优

Spark基础性能调优开发调优原则一:避免创建重复的RDD,尽可能复用同一个RDD原则二:对多次使用的RDD进行持久化尽量避免使用shuffle类算子原则四:使用预聚合的shuffle操作原则五:使用高性能的算子资源调优num-executorsexecutor-memoryexecutor-cores数据倾斜调优做推荐算法相关的工作时,数据量是非常大的,我们学习Spark就很有必要。不同的写法...

2020-04-18 12:06:04 178

原创 Spark算子调优—基本的算子调优

Spark常见RDD算子调优算子调优一:mapPartitions算子调优二:foreachPartition优化数据库操作算子调优三:filter与coalesce的配合使用算子调优四:repartition解决SparkSQL低并行度问题算子调优五:reduceByKey本地聚合算子调优一:mapPartitions普通的map算子对RDD中的每一个元素进行操作,而mapPartition...

2020-04-18 00:10:43 1153

原创 剑指offer 和为S的连续正数序列 滑动窗口法 解决连续序列问题

目录题目描述核心思想代码题目描述小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快的找出所有和为S的连续正数序列? Good Luck!核心思想给定一个...

2020-04-17 12:08:36 172

原创 剑指offer 调整数组顺序使奇数位于偶数前面(快慢指针)

调整数组顺序使奇数位于偶数前面题目描述核心思想代码题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。核心思想这道题最关键的地方由两部分。奇数都排在偶数的前面保证奇数和奇数,偶数和偶数之间的相对位置不变。如果题目中不要求相对位置。那么其实使用快慢指针,进行s...

2020-04-16 20:48:09 122

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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