- 博客(39)
- 收藏
- 关注
原创 GBDT构建组合特征
最初是由Facebook在2014年提出,并被广泛运用于点击率预估项目上,被证明有效。动机在于GBDT无法直接处理海量的离散特征,复杂度太高,所以主要思路就是就是先用已有特征训练GBDT模型,然后利用GBDT模型学习到的树来构造新特征,最后把这些新特征加入原有特征一起训练模型,事实上就是一种stacking的模型融合方式。构造的新特征向量是取值0/1的,向量的每个元素对应于GBDT模型中树的叶
2017-05-18 14:14:36 6367
原创 各种最优化方法比较
梯度下降法:用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近 目标值,步长越小,前进越慢。 批量梯度下降法:最小化所有训练样本的损失函数,使得最终求解的是全局的最优解,即求解的参数是使得风险函数最小,但是对于大规模样本问题效率低下。 随机梯度下降法:最小化每条样本的损
2017-02-21 20:25:38 4433
转载 Hive调优
1. join连接时的优化:当三个或多个以上的表进行join操作时,如果每个on使用相同的字段连接时只会产生一个mapreduce。 当多个表进行查询时,从左到右表的大小顺序应该是从小到大。原因:hive在对每行记录操作时会把其他表先缓存起来,直到扫 描
2017-02-05 22:38:57 917
原创 单链表翻转(递归与非递归)
递归写法:/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution{ public ListNode reverseList(ListNode head)
2017-02-05 22:22:47 501
原创 C语言实现字符串拼接和字符串拷贝
字符串拼接:#include#include#includechar *str_contact(const char *,const char *);char *str_contact(const char *str1,const char *str2){ char *result = (char*) malloc(strlen(str1) + strlen(str2) + 1
2017-01-21 22:24:20 6153
原创 Spark笔记(3)-Spark程序调优
对于一个Spark程序,采用不同的优化,运行效率差别很大,下面是对Spark程序调优进行总结:优化Spark运行环境1. 防止不必要的jar包上传于分发2. 提高数据本地性 解决方法:计算与存储同节点部署、增加executor数目、增加数据副本数3. 存储格式选择 选择列式存储:减少读IO量,占用存储空间少(压缩比高)优化RDD操作符的使用方法
2017-01-15 17:34:16 382
原创 Spark笔记(2)-Spark计算引擎剖析
上文简单对Spark进行了总结,本文旨在进一步对Spark计算引擎进行剖析。val textFile = sc.textFile(args(1))val result textFile .flatMap(line => line.split("\\s+")) .map(word => (word,1)) .reduceByKey(_+_)result.saveAsTextFile
2017-01-14 14:58:05 462
原创 浅谈Word2vec
前段时间做过一个NLP方面的比赛,以及最近的实习,都用到了Word2vec,下面就简单谈一下这个工具吧,更深的数学原理可以参考Mikolov的原始论文。Word2vec是Google于2013年开源的一个词向量工具,将原始文本转化成词向量的表达形式。其基本思想是:通过训练将每个词映射成K维的实数特征向量,这样一来,词与词之间的相似度就可以用余弦距离或者欧式距离来衡量了,相比传统的one-hot
2017-01-13 22:49:12 2185
原创 TF-IDF
TF-IDF是一种用于信息检索与数据挖掘的常用加权技术,实际上是:TF * IDF,TF词频(Term Frequency),IDF逆向文件频率(Inverse Document Frequency);字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降;TF-IDF原理:1.词频:在一份给定的文件里,某一个给定的词语在该文件中出现的次数
2017-01-07 15:36:59 638
原创 SMP CUP微博用户画像大赛解决方案
去年9月参加了SMP大会举办的SMP CUP微博用户画像大赛,排名第五,比赛链接如下:https://biendata.com/competition/1/赛题描述:参赛队伍利用给定的新浪微博数据(包括用户个人信息、用户微博文本以及用户粉丝列表,详见数据描述部分),进行微博用户画像,具体包括以下三个任务:任务1:推断用户的年龄(共3个标签:-1979/1980-1989/199
2017-01-07 15:32:54 8281 9
原创 Spark笔记(1)-Spark初体验
最近在实习,公司用的Spark,需要学习一下,废话少说,开始学习旅程。说到Spark,不得不提一下MapReduce,众所周知,Spark的出现,正是用来替代原来的MapReduce计算框架,对于传统的MapReduce来说,存在许多局限性:1. 只支持Map和Reduce两种操作,编程不够灵活2. 处理效率低:map中间结果写入磁盘,reduce写HDFS,多个MR间通过HD
2016-12-03 20:42:11 452
原创 2016京东算法工程师实习生笔试编程题:小球的距离
小东和三个朋友一起在楼上抛小球,他们站在楼房的不同层,假设小东站的楼层距离地面N米,球从他手里自由落下,每次落地后反跳回上次下落高度的一半,并以此类推知道全部落到地面不跳,求4个小球一共经过了多少米?(数字都为整数)给定四个整数A,B,C,D,请返回所求结果。测试样例:100,90,80,70返回:1020解题思路:递归解决。代码:
2016-10-22 11:12:13 1393
原创 2016京东算法工程师实习生笔试编程题:上台阶
有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上m级,共有多少走法?注:规定从一级到一级有0种走法。给定一个正整数int n,请返回一个数,代表上楼的方式数。保证n小于等于100。为了防止溢出,请返回结果Mod 1000000007的值。测试样例:3返回:2解题思路:直接用递归的斐波那契数列的话会超时,很自然想到用DP求解。
2016-10-22 10:59:25 1199 1
原创 2016腾讯实习生笔试编程题:有趣的数字
小Q今天在上厕所时想到了这个问题:有n个数,两两组成二元组,差最小的有多少对呢?差最大呢?输入描述:输入包含多组测试数据。对于每组测试数据:N - 本组测试数据有n个数a1,a2...an - 需要计算的数据保证:1输出描述:对于每组数据,输出两个数,第一个数表示差最小的对数,第二个数表示差最大的对数。输入例子:64
2016-10-21 10:49:52 2172
原创 2016腾讯实习生笔试编程题:字符移位
小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。你能帮帮小Q吗? 输入描述:输入数据有多组,每组包含一个字符串s,且保证:1输出描述:对于每组数据,输出移位后的字符串。输入例子:AkleBiCeilD输出例子:kleieilABCD解题思
2016-10-21 10:15:53 378
原创 2016腾讯实习生笔试编程题:构造回文
给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。输入描述:输入数据有多组,每组包含一个字符串s,且保证:1输出描述:对于每组数据,输出一个整数,代表最少需要删除的字符个数。输入例子:abcdagoogle输出例子:22解题思路
2016-10-21 09:57:10 833
原创 特征离散化解决非线性特征问题
在实际工作中,需要使用到譬如LR这种线性分类器的时候,往往需要将特征离散化成0/1特征,之后再进行模型训练。下面举例说明原因:我们假设决策面为y=x^2,且模型是只具有一维特征x的线性模型,即模型的表达形式为:y=kx+b,如下图所示:显然,模型不能很好地拟合决策面,那么,假如将x离散化成多个0/1特征(one-hot编码):0s1s2...则新的模
2016-10-21 08:37:35 5053
原创 Hive报错[ERROR] Failed with exception java.io.IOException:java.lang.IllegalArgumentException
Hive报错[ERROR] Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name}解决方法:新建文件夹 ../apach
2016-10-19 21:09:30 4777
原创 Hive报错[ERROR] Terminal initialization failed; falling back to unsupported
当启动Hive时报[ERROR] Terminal initialization failed; falling back to unsupported时,进入到hadoop安装目录下的share/hadoop/yarn/lib下删除jline-0.9.94,再启动hive即可。
2016-10-19 20:33:26 364
原创 朴素贝叶斯
朴素贝叶斯是基于贝叶斯定理和特征条件独立假设的一种生成模型,主要思想是通过数据学习其联合概率分布P(X,Y|θ),具体做法是采用极大似然估计法去估计θ。优点:在小规模数据上的表现很好,适合多分类任务和增量式学习。缺点:对输入数据的表达形式很敏感。下面先看看贝叶斯定理:那么当特征服从条件独立的假设时,有:下面看看如何
2016-10-18 08:29:10 302
转载 mac下使用Navicat
Navicat for mac使用教程转载自:http://www.jianshu.com/p/326c1aaa10521.安装后第一次打开会弹出此框要求你连接mysql。连接名随便填,password 默认为 root.屏幕快照 2014-12-16 上午12.03.48.png2.完成之后,进入主界面你会看到你刚看创建的Connection.(这里我创建
2016-03-12 21:49:39 692
原创 python爬虫基础知识
爬虫爬取策略1.广度优先:在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。2.最佳优先:只访问经过网页分析算法预测为“有用”的网页3.深度优先:可能会陷入trapped问题DOM(Document Object Model)中文名文档主题模型,DOM将HTML文档表达为树结构,定义了访问和操作HTML文档的标准
2016-03-04 09:43:00 354
原创 为什么SSD随机读和写性能差别大?
SSD是一种基于闪存的存储技术,有着与旋转磁盘不同的性能特性。由于CPU按顺序访问逻辑磁盘块,故SSD的顺序读和写的性能相当,顺序读比写稍微快一点。不过,当CPU按随机顺序访问逻辑块时,写比读慢一个数量级。 造成这种差别是由底层闪存的基本属性决定的,对闪存来说,数据是以页为单位读写的,只有在一页所属的块整个被擦除后,才能随机写这一页(通常是指该块的所有位都被置1),不过,一旦一个块
2016-01-27 09:10:18 6813
原创 避免缓冲区溢出攻击的方法
Linux上最新GCC版本提供了三种对抗缓冲区溢出攻击的机制--1. 栈随机化 攻击者对系统攻击时不但需要插入代码,还需要插入指向这段代码的指针,这个指针也是攻击字符串的一部分,而产生指针需要知道这个字符串的栈地址,在过去,不同的机器上栈的位置是相当固定的,栈随机化可以解决这种问题,它使得栈的位置在程序每次运行时都发生变化。 实现方式:在程序开始执行
2016-01-21 09:04:16 7511
原创 fatal: Not a git repository (or any of the parent directories): .git
用git在本地创建远程库的时候出现如下报错:fatal: Not a git repository (or any of the parent directories): .git解决办法:在创建之前记得先 git init
2016-01-18 21:08:36 467
原创 SIMD并行
在最低层次上,许多现代处理器拥有特殊的硬件,允许一条指令产生多个可以并行执行的操作,这种方式成为单指令、多数据,也就是SIMD并行。比如,较新的Intel和AMD处理器都具有并行地对四对单精度浮点数(也就是C语言数据类型float)做加法的指令。 提供这些SIMD指令的目的是为了处理图片、音频和视频数据应用的执行速度。虽然有些编译器试图从C程序中自动抽取SMID并行性。但是更可靠的
2016-01-16 21:33:11 1806
转载 我在面试机器学习、大数据岗位时遇到的各种问题
原文 http://dataunion.org/20682.html主题 数据挖掘 大数据作者: @太极儒 出处: @太极儒的博客自己的专业方向是机器学习、数据挖掘,就业意向是互联网行业与本专业相关的工作岗位。各个企业对这类岗位的命名可能有所不同,比如数据挖掘/自然语言处理/机器学习算法工程师,或简称算法工程师,还有的称为搜索/推荐算法工程师,甚至有的并入后台工程
2015-12-28 09:43:50 1234
原创 【Machine Learning公开课】Chapter 3
这一讲Ng主要讲的内容有:局部加权回归,Logistic回归,感知器。对于一个监督学习模型来说,特征集合太小,会使模型过于简单,称为欠拟合,反之特征集太大,会使模型过于复杂,称为过拟合。解决此类学习问题的方法:1) 特征选择算法:一类自动化算法,在这类回归问题中选择用到的特征。2) 非参数学习算法:缓解对于选取特征的需求。PS:参数学习算法(parametric learni
2015-12-27 21:55:35 489
原创 【Machine Learning公开课】Chapter 2
这一讲Ng给我们讲了什么是有监督学习,以及一种常用的求最值方法:梯度下降法。首先我们回顾下一个简单的机器学习过程:首先给出一个输入数据,我们的算法会通过一系列的过程得到一个估计的函数,这个函数有能力对没有见过的新数据给出一个新的估计,也被称为构建一个模型。我们用 X1,X2..Xn 去描述 feature 里面的分量,比如 x1=房间的面积,x2=房间的朝向, 等等,我们可以做出一个估计函数:h(
2015-12-27 15:56:32 381
转载 GCC跟G++区别
GCC:GNU编译器集合,涉及所有由GNU编译器所支持的不同的语言。GCC:GNU C编译器G ++:GNU C ++编译器其主要区别:GCC编译:.C/.cpp文件分别作为C和C ++。G ++编译:.C/.cpp文件,但他们都将被视为C++文件。此外,如果你使用G ++来链接目标文件,它会自动链接到STD C ++库(GCC并没有这样做)。GCC编译C文
2015-12-21 21:37:14 471
原创 快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。#includeusing namespace std;
2015-11-26 13:42:28 451
转载 9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路
转载:http://www.cnblogs.com/figure9/archive/2013/01/09/2853649.html1,简介毕业答辩搞定,总算可以闲一段时间,把这段求职经历写出来,也作为之前三个半月的求职的回顾。 首先说说我拿到的offer情况:微软,3面->终面,搞定百度,3面->终面,口头offer搜狗,2面,悲剧腾讯,1面
2015-11-25 18:22:28 1005
原创 LeetCode 1: Two Sum
Given an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices of the two numbers such that they add up to the target, whe
2015-11-21 09:46:58 308
原创 个人整理的机器学习/数据挖掘相关算法
1. 梯度下降法、牛顿法2. 最大似然估计法3. 最小二乘法4. 线性回归(基本思想是用梯度下降法对最小二乘法形式的误差函数进行优化)5. K最近邻分类算法(KNN)6. 决策树(ID3、C4.5算法、迭代决策树(GBRT)、随机森林)7. 朴素贝叶斯(Naive Bayesian Model)8. Logis
2015-11-18 13:43:29 681
转载 C++:如何用clock()和头文件ctime来创建延迟循环
#includeusing namespace std;#include void main(){cout float secs;cin >> secs;clock_t delay = secs *CLOCKS_PER_SEC;cout clock_t start = clock();while (clock() - start cout
2015-10-19 13:29:34 849
转载 教你如何迅速秒杀掉:99%的海量数据处理面试题
教你如何迅速秒杀掉:99%的海量数据处理面试题作者:July出处:结构之法算法之道blog前言 一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘愿背负这样的罪名,:-),同时,此文可以看做是对这篇文章:十道海量数据处理面试题与十个方法大总结的
2015-10-14 21:32:44 380
转载 梯度下降
回归(regression)、梯度下降(gradient descent)发表于332 天前 ⁄ 技术, 科研 ⁄ 评论数 3 ⁄ 被围观 1152 次+本文由LeftNotEasy所有,发布于http://leftnoteasy.cnblogs.com。如果转载,请注明出处,在未经作者同意下将本文用于商业用途,将追究其法律责任。前言:上次写过一篇关于贝叶斯概率论的数学
2015-09-21 19:35:31 451
原创 如何解决错误1079:此服务的账户不同于运行于同一进
1.单击「开始」,单击“开始搜索”框,键入 services.msc,然后按 Enter。2.右键单击详细信息窗格中要配置的服务,然后单击“属性”。3.在“常规”选项卡的“启动类型”中,单击“自动”。4.单击“登录”选项卡,然后执行下列操作:指定服务使用本地服务帐户,请单击“此帐户”,然后键入 NT AUTHORITY\LocalService。5.选择
2015-09-18 20:21:47 17045
原创 长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为X的元素
解法:用K记录顺序表L中不等于X的元素个数,
2014-05-19 22:07:02 10568
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人