- 博客(38)
- 资源 (5)
- 收藏
- 关注
原创 提升商品多样性的优化方案rerank策略
数学公式: $MR_{i}=\theta\cdot reward_{i}-(1-\theta)\cdot\max_{j\in S}{sim(i,j)} $根据上图,粗排和精排之后,需要根据分数进行后处理,如果不需要多样性,只需要按照分数进行到排序就可以,但是往往为了多样性,比如精排的后处理称作rerank。设sim的取值范围是[0,1]。问题:随着已选中的物品越多,即集合S越大,越难找出物品i,使得i与S中的物品都不相似。相似度:sim1(i,j)=1,sim2(i,j)=0,sim3(i,j)=1。
2024-03-22 14:22:01
864
原创 lightgbm.LightGBMClassifier调参总结Parameters Tuning
LightGBM 是一个流行的梯度提升框架,它使用的是叶子优先(leaf-wise)的树增长算法,而许多其他流行的工具使用的是深度优先(depth-wise)的树增长算法。与深度优先增长相比,叶子优先算法可以更快地收敛。然而,如果不配合适当的参数使用,叶子优先增长可能会导致过拟合。:这是控制树模型复杂度的主要参数。理论上,我们可以设置 num_leaves = 2^(max_depth) 来获取与深度优先树相同数量的叶子。然而,这种简单的转换在实践中并不理想。
2024-03-11 18:31:30
1155
1
原创 mmlspark.lightgbm.LightGBMClassifier参数说明
【代码】mmlspark.lightgbm.LightGBMClassifier参数明。
2024-03-08 16:54:12
1122
原创 常用激活函数(机器学习,深度学习)
(1)sigmoid函数Sigmoid函数饱和使梯度消失。当神经元的激活在接近0或1处时会饱和,在这些区域梯度几乎为0,这就会导致梯度消失,几乎就有没有信号通过神经传回上一层。Sigmoid函数的输出不是零中心的。因为如果输入神经元的数据总是正数,那么关于w的梯度在反向传播的过程中,将会要么全部是正数,要么全部是负数,这将会导致梯度下降权重更新时出现z字型的下降。(2)Tanh函数Tanh解决了Sigmoid的输出是不是零中心的问题,但仍然存在饱和问题。为了防止饱和,现在主流的做法会在激活函.
2020-06-17 13:57:58
486
原创 基本神经网络BP的训练以及反向传播
一般情况,神经网络主要由网络结构,激活函数,最优权重的参数学习算法多层前馈神经网络(BP算法)是目前应用较为广泛的一种参数学习算法。BP神经网络是一种按照误差逆向传播算法训练的多层前馈神经网络。既然我们无法直接得到隐层的权重,我们需要通过输出层得到输出结果和期望输出的误差来间接调整隐层的权重。BP算法就是采用这种思想设计出来的算法。基本思想:学习过程由**信号的正向传播(求损失)和误差的反向传播(误差回传)**两个过程组成。一般流程正向传播FP(求损失)。根据输入的样本,给...
2020-06-17 13:51:25
1970
原创 最优化算法总结(批量梯度下降【BGD】,随机梯度下降【SGD】),牛顿法,拟牛顿法)
最优化算法总结最优化方法主要有:梯度下降(批量梯度下降【BGD】,随机梯度下降【SGD】),牛顿法,拟牛顿法当目标函数是凸函数时,梯度下降每次求解是全局解,其解不保证全局最优解每次通过求导找出梯度方向(负梯度方向作为搜索方向),其越接近目标值,步长越小,前进越慢,批梯度下降每次取全量的样本进行计算梯度,然后进行参数的更新SGD相比BGD其每次随机采样一部分样本进行梯度计算,这样样本的偏差和噪声对于模型影响会比较大,但是因为每次不用取全量的样本计算梯度,所以收敛速度相比BGD提升很多梯度下降缺点
2020-06-17 13:43:45
548
原创 hive常用函数
hive常用函数1.字符串函数1.1 字符串长度函数:length1.2 字符串反转函数:reverse1.3 字符串连接函数:concat1.4 带分隔符字符串连接函数:concat_ws1.5 字符串截取函数:substr,substring1.6 字符串截取函数:substr,substring1.7 字符串转大写函数:upper,ucase1.8 字符串转小写函数:lower,lcase1...
2019-07-08 20:16:13
1003
原创 mongo批量插入问题(insert_many,bulk_write)
mongo批量插入问题1. 遇到问题2. 解决问题2.2 方法1:批量插入insert_many2.3 方法2:批量更新bulk_write(UpdateOne)2.3.1 bulk_write定义3. 性能测试1. 遇到问题每天通过spark等数据库框架批量处理的结果数据最少500万条记录,每天需要导入到mongo数据库,最初通过update one的方法一条一条进行更新插入,耗时大约2小时...
2019-07-08 15:01:18
24128
5
原创 Spark数据倾斜问题
Spark数据倾斜问题数据倾斜问题现象原因数据问题spark使用问题数据层面分析解决方案数据倾斜问题现象多数task执行速度较快,少数task执行时间非常长,一直卡在某一个stage达几小时或者几分钟之久,或者等待很长时间后提示你内存不足,执行失败。图中可以很明显的看出是卡在reduceByKey的算子上。原因常见于各种shuffle操作,例如reduceByKey,groupByK...
2019-01-23 15:23:24
611
原创 Scala 数组(Array),列表(List),元组(Tuple),集(Set),映射(Map),迭代器(Iterator)
1. 数组(Array)数组是编程中经常用到的数据结构,一般包括定长数组和变长数组。本教程旨在快速掌握最基础和常用的知识,因此,只介绍定长数组。定长数组,就是长度不变的数组,在Scala中使用Array进行声明,如下:val intValueArr = new Array[Int](3) //声明一个长度为3的整型数组,每个数组元素初始化为0intValueArr(0) = 12 //给第1个数
2017-08-02 15:03:53
4061
原创 Spark1.6 java7 scala+java.lang.UnsupportedClassVersionError
Spark1.6 +java7 +scala报错类型: Exception in thread “main” java.lang.UnsupportedClassVersionError: StatDemo : Unsupported major.minor version 52.0Spark submit提交Exception in thread "main" java.lang.Unsuppo
2017-07-07 11:28:49
507
转载 python PEP8编程规范
PEP 8 Python 编程规范1.代码布局缩进。 4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。YES# 对准左括号foo = long_function_name(var_one, var_two, var_three, var_four)# 不对准左括号,但加多一...
2017-04-03 15:31:34
955
原创 python time模块
>>> import time #导入module>>> ISOTIMEFORMAT=’%Y-%m-%d %X’ # 设置一个时间的格式看一下当前的时间,和其他很多语言相似这是从epoch(1970 年 1 月 1 日 00:00:00)开始到当前的秒数。>>> time.time()1180759620.859上面的看不懂,换个格式来看看>>>
2017-03-31 01:52:46
357
原创 python 编码乱码问题(decode,encode)
ANSI: ANSI字符串我们最熟悉,英文占一个字节,汉字2个字节,以一个\0结尾,常用于txt文本文件Unicode:Unicode字符串每个字符(汉字、英文字母)都占2个字节,以2个连续的\0结尾;NT操作系统内核用的是这种字符串,常被定义为typedef unsigned short wchar_t;所以我们有时常会见到什么char无法转换为unsigned short之类的错误,其实就
2017-03-27 22:31:10
823
原创 美团2017春招-算法工程师笔试-在线编程-判断有向图有回路
假设有向图采用邻接表存储,设计一个算法,判定请概要说明你的算法思想。编写你的算法,请在算法关键的地方给出必要的注释。分析该算法的时间复杂度。 解答: 思路-用拓扑排序的方法来检查是否存在回路,具体步骤如下: 选择一个入度为 0 的未被访问的顶点 若找到,继续第(2) 若没找到,则图中有环,算法结束将该顶点标记为已访问,并将其所有出边所指向的顶点的入度减一回到第一步继续执行伪代码
2017-03-21 20:40:47
1827
原创 新闻推荐实例调研
@今日头条@搜狐新闻1.今日头条推荐1.1新用户冷启动美味爱读: 新用户接入时建立颗粒较细的兴趣标签系统。今日头条: 通过对用户微博账号的分析建立一个“兴趣图谱”,即根据用户在微博上发布的内容及其所属类别、用户自标签、[社交关系、社交行为](共同好友数、相互评论数、@数)、参与的群组、机型、使用时间等数据源推断用户的兴趣点有哪些。 图1用户原始兴趣DNA1....
2017-03-12 13:19:57
1203
原创 推荐系统常用评测指标
推荐系统常用评测指标预测准确度(Precision)评分预测准确度一般通过均方根误差(RMSE)和平方根误差(MAE)计算。对于测试集中的一个用户u和物品i,令 评分预测:(测试集的一个用户u和物品i,令rui{r}_{ui}是用户u对物品的实际评分,而r^ui{{\hat{r}}_{ui}}是推荐算法给出的预测评分。 假设我们用一个列表records存放用户评分数据,令records[i] =
2017-03-11 16:25:19
9147
1
转载 推荐系统中的特征工程问题
关于推荐系统中的特征工程在多数数据和机器学习的blog里,特征工程 Feature Engineering 都很少被提到。做模型的或者搞Kaggle比赛的人认为这些搞feature工作繁琐又不重要不如多堆几个模型,想入手实际问题的小朋友又不知道怎么提取feature来建模型。我就用个性化推荐系统做个例子,简单说说特征工程在实际的问题里是怎么做。定义特征工程 Feature Engineering 在
2016-12-15 20:03:41
1016
原创 MapReduce之连接模式一:reduce端连接
INPUT:表a:userID,user.location;表b:userID,coments.votesOUTPUT:userID,user.location,coments.votesjoinMapper: public static class joinAMapper extends Mapper<Object,Text,Text,Text>{ priva
2016-11-08 16:17:32
756
原创 Hadoop 2.0版本wordcount 以及 排序
Hadoop 2.0版本wordcount 以及 排序/**hadoop版本的wordcount* 然后进行单词出现次数进行倒排序** */import java.io.IOException;import java.util.Random;import java.util.StringTokenizer;import org.apache.hadoop.conf.Configurati
2016-11-08 15:52:31
1430
原创 子字符串查找或匹配(暴力法,KMP)
子字符串查找或匹配(暴力法,KMP)字符串的一种基本操作就是子字符串的查找:给定一个长度为M的文本和一个长度为M的模式(pattern)字符串,在文本中找到一个和该模式相符的子字符串。通常情况下扩展为找出文本中所有与该模式相符的子字符串统计该模式在文本中出现的次数;找出上下文(和该模式相符的子字符串周围的文字)的算法解决此类问题通用的方法有1.暴力子字符串查找法 基本思想:定义指针i跟踪
2016-09-28 19:40:42
1058
原创 Naive Bayes 朴素贝叶斯(文本)分类器Java实现
算法原理推导伪代码java实现代码测试数据算法原理推导优缺点分析优点:在数据较少的情况下,仍然有效,可以处理多分类问题 缺点:对于输入数据的准备方式比较敏感 适用数据类型:标称型数据主要思想p1(x,y)表示数据点(x,y)属于类别1的概率; p2(x,y)表示数据点(x,y)属于类别2的概率; if: p1>p2 属于1...
2016-09-23 12:27:35
3882
原创 滴滴笔试-地下迷宫
滴滴在线笔试题目:以下图片截图是滴滴2017秋招工程岗笔试题(算法工程师)在线编程题。我们先从最经典的走迷宫问题说起,随后求解此题目 经典都迷宫问题(java)回溯法是一种不断尝试且及时纠正错误的搜索方法。下面的求解过程采用“回溯法”。我们这里采用一个栈来盛放已走过的点。原点入栈–>,从入口进入,出栈,每一次寻路从8个方向中去搜索可以通过的路径(这里0表示无障碍,可通过;1表示障碍,不能通
2016-09-20 14:59:17
2284
原创 二叉树实现(构造,遍历)-java
构造函数-节点public class TreeNode { public int val=0; public TreeNode left = null; public TreeNode right = null; public int getVal() { return val; } public TreeNode(int val)
2016-09-13 15:44:49
4599
1
原创 排序总结-时间复杂度和空间复杂度
排序(Sorting)问题是我们再业务开发中遇到的最基本问题,因此成为各大IT公司招聘笔试面试必考内容之一。笔者也借着校园招聘对数据结构这一章节的复习对排序问题进行一个简单的总结,然后基于Java进行实现。排序分类排序插入排序直接插入排序折半插入排序表插入排序希尔排序交换排序冒泡排序快速排序选择排序直接选择排序堆排序归并排序排序时间复杂度和空间复杂度 类别 平均时间
2016-08-31 16:01:13
1336
原创 字符串的排列-by Java
题目输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 结果请按字母顺序输出。 输入描述: 输入一个字符串,长度不超过9(可能有字符重复),字符只包括大小写字母。解析(递归):为方便起见,用123来示例下。123的全排列有123、132、213、231、312、321这六
2016-08-29 22:45:52
712
原创 冒泡-快速排序(java)-数组中最小的k个数
题目描述:题目来自(牛客网) 最小的K个数 参与人数:5221时间限制:1秒空间限制:32768K 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。解析:根据题意,读者首先想到的是进行排序(小-大),提取前k个数字。这次为了复习一下快速排序,采用了快排序,看似快速排序比较复杂,但是在牛客网测试,总运行时间竟然用的比冒泡还
2016-08-19 21:48:29
1437
原创 网易笔试-2016研发工程师题-小易的升级之路
[编程题] 小易的升级之路 小易经常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a.在接下来的一段时间内,他将会依次遇见n个怪物,每个怪物的防御力为b1,b2,b3…bn. 如果遇到的怪物防御力bi小于等于小易的当前能力值c,那么他就能轻松打败怪物,并 且使得自己的能力值增加bi;如果bi大于c,那他也能打败怪物,但他的能力值只能增加bi 与c的最大公约数.那么问题来
2016-08-19 09:44:46
365
原创 《剑指offer》:java
题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 输入描述: array: 待查找的二维数组 target:查找的数字 输出描述:查找到返回true,查找不到返回false public boolean Find(int[][] array, int target
2016-08-16 22:11:34
390
原创 《剑指offer》机器人的运动范围(java)
题目:地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?public class Solution {
2016-08-16 21:59:28
495
原创 RDD:基于内存的集群计算容错抽象
该论文来自Berkeley实验室,英文标题为:Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing摘要本文提出了分布式内存抽象的概念——弹性分布式数据集(RDD,Resilient Distributed Datasets),它具备像MapReduce等数据流模型的容错
2016-08-14 22:38:37
397
转载 Python3爬取汽车目标经销商数据
Python3爬取汽车目标经销商数据本文采用Python3进行语法编写,Python3与Python2中的函数会有所不同,但是相差不大,具体的问题可以百度找到,因有朋友在做汽车方面的业务,因此需要一些网络数据进行支撑,一个个找会非常的繁琐,因此之前弄了些爬虫数据。这里进行其中一部分爬虫的代码共享。爬虫效果如下代码如下import urllib,urllib.request,jsonfrom pyq
2016-08-04 23:14:12
1609
原创 numpy 内置函数总结
import numpy as np #axis=1 表示按列 axis=0表示行np的数组创建函数(ndarray) 函数 说明 np.array 将输入数据(列表,元组,数组或其他序列类型)转换为ndarray。要么推断出dtype,要么显示指定dtype。默认直接复制输入数据。比如:arr1 = np.array([1...
2016-07-22 11:06:50
14816
1
转载 DataCastle[猜你喜欢]赛事算法分享
DataCastle[猜你喜欢]赛事冠军分享关于竞赛DC的小伙伴们大家好,我是Yes,boy! ,来自东北大学计算机学院。在猜你喜欢推荐系统竞赛中,很幸运以7.89465的得分取得第一名,看到大家在群里对推荐系统的热情很高,所以在这里我简单介绍下竞赛中我的思路。 本次比赛的赛题背景是给出了约3400万条数据,包含一个商品网站站内顾客在某一时刻对某一个商品的打分值,分值范围为1至5分。目的是通过对这
2016-07-20 23:16:24
3616
转载 基于回归曲线拟合模型的ALS(最小二乘法)推导过程以及Python实现
概念最小二乘法(Alternative -Least-Squares)是一种迭代算法。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法可用于曲线拟合。 二乘法曲线拟合:根据给定的n个点,并不要求这条曲线精确地经过这些点,而是曲线y=f(x)的近似曲线y= φ(x)。原理给定数n个数据点p(xi,
2016-06-23 13:46:04
5132
原创 python os模块功能和方法总结
python os模块功能和方法总结本博客包含[os][6],[os.path][6]等模块 - os - os.pathos :os.sep :可以取代操作系统特定的路径分割符os.linesep : 字符串给出当前平台使用的行终止符。例如,Windows使用’\r\n’,Linux使用’\n’ 而Mac使用’\r’。os.name :字符串指示你正在使用的平台。比如对
2016-06-03 14:45:04
1148
GitHub入门与实践
2017-03-07
Recommender Systems Handbook最新版第二版推荐系统手册
2016-03-17
R语言实战中文版
2015-04-26
]Pattern_Recognition_and_Machine_Learning机器学习
2015-04-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人