类似牛客网的刷题网站那个刷题为什么不支持atoi函数

数据结构(20)
1.模拟实现C库的atoi和itoa。
2.给一个超过100G的log file, log中存着IP地址, 设计算法找到出现次数最多的100个IP地址?
1.题考察面试者的思维方式:完整性和鲁棒性
先想好测试用例,沟通好错误处理,才能满意的做完。
错误需要考虑的情况有:
1.当字符串为空时返回0,0字符串返回值也是0,但是两者的含义不同,我们应该做到区分,怎么区分?
定义全局变量,设置有效无效
2.“+123”“-565”,
3.数值溢出
4.字符串为NULL
5.穿入非法字符,怎么解决?
6.“+”“-”
(+ - 号后面没有跟数字)
enum Status{kValid=0,kInvalid};
int g_nstatus = kV
long long strToIntCore(const char* digit,bool minus)
long long num = 0;
while (*digit)
if (*digit &= '0'&*digit &= '9')
int flag = minus ? -1 : 1;
num = num * 10 + flag*(*digit - '0');
if (!minus&&num & 0x7FFFFFFF || minus&&num & 0x)
if (*digit == '\0')
g_nstatus = kV
int myatoi(const char* str)
g_nstatus = kI
long long num = 0;
if (str == NULL || *str != '\0')
bool minus=false;
if (*str == '+')
minus = false;
if (*str == '-')
minus = true;
if (!*str != '\0')
num = strToIntCore(str,minus);
return (int)
char* myitoa(int num,char* str,int radix)
char index[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
unsigned int unum = 0;
int i = 0;
if (radix == 10 && *str == '-')
str[i++] = '-';
unum = (unsigned)
str[i++] = index[unum % radix];
unum = unum /
} while (unum);
str[i] = '\0';
int k = 0;
if (str[0] == '-')
i = i - 1;
for (k; k &=i;)
char temp = str[i];
str[i] = str[k];
return str;
2.给一个超过100G的log file, log中存着IP地址, 设计算法找到出现次数最多的100个IP地址?
一般来讲求topK 问题,建堆求topK来解决大数据问题非常有效。
此处来进行求解出现次数最多的IP地址,
首先看到100G的日志文件,我们的第一反应肯定是太大了,根本加载不到内存,更别说设计算法了,那么怎么办呢?既然装不下,我们是不是可以将其切分开来,一小部分一小部分轮流进入内存呢,答案当然是肯定的。
在这里要记住一点:但凡是大数据的问题,都可通过切分来解决它。
粗略算一下:如果我们将其分成1000个小文件,每个文件大概就是500M左右的样子,现在计算机肯定轻轻 松松就能装下。
那么,问题又来了,怎样才能保证相同的IP被分到同一个文件中呢?
这里我想到的是哈希切分,使用相同的散列函数(如 BKDRHash)将所有IP地址转换为一个整数key,再利用 index=key%1000就可将相同IP分到同一个文件。
依次将这1000个文件读入内存,出现次数最多的IP进行统计。
最后,在1000个出现次数最多的IP中找出最大的出现次数即为所求。
用到的散列函数:
与上题条件相同,如何找到TOP K的IP?
这倒题说白了就是找前K个出现次数最多的IP,即降序排列IP出现的次数。
与上题类似,我们用哈希切分对分割的第一个个小文件中出现最多的前K个IP建小堆,
然后读入第二个文件,将其出现次数最多的前K个IP与 堆中数据进行对比,
如果包含大于堆中的IP出现次数,则更新小堆,替换原堆中次数的出现少的数据
再读入第三个文件,以此类推……
直到1000个文件全部读完,堆中出现的K个IP即是出现 次数最多的前K个IP地址。
参考网址大数据:博主最新文章
博主热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)&p&作者:Polaris045217&br&链接:&a href=&http://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/48981%3Ftype%3D0%26order%3D0%26pos%3D19%26page%3D1& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&nowcoder.com/discuss/48&/span&&span class=&invisible&&981?type=0&order=0&pos=19&page=1&/span&&span class=&ellipsis&&&/span&&/a&&br&来源:牛客网&/p&&p&&br&&/p&&p&&b&本人渣硕,非cs。&/b& &/p&&p&&b&自学机器学习,深度学习,leetcode200多道吧(基本看答案,题还是要多刷,今后工作了也要保持,锻炼思维)&/b& &/p&&p&&b&有幸参加了2个kaggle比赛,拿到6/1400排名&/b& &/p&&p&&b&有幸获得今日头条实习机会&/b& &/p&&p&&b&幸运获得阿里校招面试A的评价和网易的SSPoffer(有遗憾就是没有去到执念的idst,也有网易开出的惊喜offer)&/b& &/p&&p&
现在还在招聘流程是商汤,第四范式。走完流程就结束招聘吧,要回家陪陪家人,写写论文了
&/p&&p&&br&&/p&&p& 百度滴滴美团已经放弃 &/p&&p&&br&&/p&&p&&b&谢谢这两年努力的自己,推公式,刷题,实习,今后也要继续加油!&/b& &/p&&p&&b&谢谢头条的实习经历,让自己飞速成长&/b& &/p&&p&&b&谢谢牛客平台,所以把面试经历写成帖子,回馈牛客,也算给自己攒人品~&/b&&/p&&p&&br&&/p&&p&&br&&/p&&p& 中国平安 - 实习生(上海/北京) &/p&&p&&br&&/p&&p& 1.卷积正向和反向传播 &/p&&p& 2.Caffe源码 &/p&&p& 3.斐波那契 memcpy &/p&&p& 4.pooling反向 &/p&&p& 5.项目介绍 &/p&&p& 6.override overload 纯虚函数等 &/p&&p&&br&&/p&&p& 阿里巴巴 -
- 实习生 - idst - 非内推 &/p&&p&&br&&/p&&p& 1.linux 修改环境变量 &/p&&p& 2.sql语句 &/p&&p& 3.gbdt xgboost区别 &/p&&p& 4.kaggle项目 30min &/p&&p& 5.融合方法,改进 &/p&&p&&br&&/p&&p& 阿里巴巴 -
- 实习生 - 淘宝搜索 - 内推一面 &/p&&p&&br&&/p&&p& 1.项目介绍(30分钟)--项目过程,融合方法,训练方法,augmentation等 &/p&&p& 2.batch normalization &/p&&p& 3.有没有了解其他机器学习算法 &/p&&p& 4.介绍一个熟悉的算法(决策树) &/p&&p& 5.在线写线性回归 &/p&&p& 6.对深度学习框架有没有了解,还是只是停留在使用的层面 &/p&&p& 7.有没有什么想问的 &/p&&p&&br&&/p&&p& 阿里巴巴 -
- 实习生 - 淘宝搜索 - 内推二面 &/p&&p&&br&&/p&&p& 1.项目介绍 &/p&&p& 2.kd-tree &/p&&p& 3.开放问题
100w商品 50个推荐窗口,怎么安排推荐 &/p&&p&&br&&/p&&p& 腾讯 -
- 实习生非内推 - 优图实验室 - 一面 &/p&&p&&br&&/p&&p& 1.项目介绍 &/p&&p& 2.计算卷积核参数数量 &/p&&p& 3.如何处理深度学习overfitting &/p&&p& 4.如何在测试中,加速1000倍(不改变网络结构) &/p&&p& 5.pooling层的作用,以及为什么会选择maxpooling &/p&&p& 6.有没有从头开始训练一个模型 vgg16 resnet googlenet收敛问题 &/p&&p&&br&&/p&&p&&br&&/p&&p& 今日头条 -
- 日常实习生非内推 - 一面 &/p&&p&&br&&/p&&p& 1.项目介绍 &/p&&p& 2.如何训练深度学习网络 &/p&&p& 3.如何处理样本分布不均衡的问题 &/p&&p& 4.手写代码-反转链表 &/p&&p& 5.手写代码-前序遍历 &/p&&p&&br&&/p&&p& 今日头条 -
- 日常实习生非内推 - 二面 &/p&&p&&br&&/p&&p& 1.项目介绍(为什么不尝试xgboost以外的模型) &/p&&p& 2.xgboost gbdt区别 &/p&&p& 3.深度学习训练方法 &/p&&p& 4.改进方法 &/p&&p& 5.caffe框架结构 &/p&&p& 6.手写代码-旋转数组找出最大数字 &/p&&p&&br&&/p&&p& 今日头条 -
- 日常实习生非内推 - 三面 &/p&&p&&br&&/p&&p& 1.前两面反应较好,聊天 &/p&&p& 2.对前两个面试官有什么看法 &/p&&p& 3.有什么问题 &/p&&p&&br&&/p&&p& #腾讯挺坑的,一面过了,二面面试官打电话确认了面试时间,收到了确认邮件,然后鸽了 &/p&&p& 腾讯游戏 - 校招内推 - 一面 &/p&&p&&br&&/p&&p& 1.实习介绍 &/p&&p& 2.介绍svm,为什么要求对偶 &/p&&p& 3.介绍一个熟悉的算法 &/p&&p& 4.全局变量 局部变量存储位置不同,静态变量初始化,生存周期 &/p&&p& 5.python多线程的实现,死锁 &/p&&p& 6.优化算法 sgd 牛顿法。为什么牛顿法快?及其缺点? &/p&&p&&br&&/p&&p& 网易 - 内推校招 - 人工智能事业部 - 一面 &/p&&p&&br&&/p&&p& 1.实习介绍 &/p&&p& 2.kaggle 深度学习项目介绍 &/p&&p& 3.几个框架对比 &/p&&p& 4.模型融合策略和方法 &/p&&p&&br&&/p&&p& 网易 - 内推校招 - 人工智能事业部 - 二面 &/p&&p&&br&&/p&&p& 1.项目介绍,讲你最好的项目 &/p&&p& 2.实习介绍 &/p&&p& 3.svm手推 &/p&&p& 4.kaggle融合的策略和方法 &/p&&p&&br&&/p&&p& #前3面反映较好,加面 &/p&&p& 网易 - 内推校招 - 人工智能事业部 - special 加面 &/p&&p&&br&&/p&&p& 1.最好的项目介绍 &/p&&p& 2.batch normalization算法 &/p&&p& 3.实习经历 &/p&&p& 4.cnn现在发展以及不足 &/p&&p& 5.说对游戏ai感兴趣 - alphago的技术点,强化学习等 &/p&&p&&br&&/p&&p& 华为 - 内推校招 - 1,2,3面 &/p&&p& #略 &/p&&p&&br&&/p&&p& #Nvidia Deeplearning software 面试官很客气,提前定好这次面试时长40分钟 &/p&&p& Nvidia - 内推校招 - 一面 &/p&&p&&br&&/p&&p& 1.项目介绍 30min &/p&&p& 2.编程题2道 &/p&&p& 3.过拟合欠拟合 以及其背后本质,偏差方差角度如何理解 &/p&&p&&br&&/p&&p& #Sensetime 商汤科技 每面30min &/p&&p& #号称最难进公司之一? &/p&&p& Sensetime -
- 校招内推 - 计算机视觉&深度学习 - 一面 &/p&&p&&br&&/p&&p& 1.kaggle比赛 问的比较详细
包括 data augmentation, KNN的trick, 模型融合等 &/p&&p& 2.实习经历 &/p&&p& 3.有什么问题 &/p&&p&&br&&/p&&p& Sensetime -
- 校招内推 - 计算机视觉&深度学习 - 二面 &/p&&p&&br&&/p&&p& 1.kaggle比赛 &/p&&p& 2.头条实习 &/p&&p& 3.python set-list转化 &/p&&p& 4.caffe框架结构,learning rate设置 &/p&&p& 5.第K大的数 &/p&&p& 6.sgd adam区别 &/p&&p& 7.resnet vgg区别 &/p&&p& 8.python 变量拷贝规则 &/p&&p& 9.有什么要问的 &/p&&p&&br&&/p&&p& Sensetime -
- 内推校招 计算机视觉&深度学习 - 三面 &/p&&p&&br&&/p&&p& 1.头条实习 比较详细以及为什么头条推荐这么厉害 #面试官是在做dl+推荐,所以比较关心头条所做的东西 &/p&&p& 2.熟悉什么框架 &/p&&p& 3.喜欢什么方向,cv还是推荐等,以及个人认为他们的前景 &/p&&p& 4.学术型硕士还是工程型硕士? &/p&&p& 5.有什么问题 &/p&&p&&br&&/p&&p&&br&&/p&&p& 阿里巴巴 -
- 校招 - 初面 &/p&&p&&br&&/p&&p& 1.头条实习 ----- 特征维度,为什么时延很低,在头条做了哪些,头条的算法 &/p&&p& 2.深度学习和传统机器学习 &/p&&p& 3.深度学习最近的发展和技术突破点 &/p&&p& 4.GBDT是什么 -- 加法模型 &/p&&p& 5.为什么现在推荐可以使用GBDT的内部结点当做LR的特征 -- 特征选择和子集评价,还是stack模型融合? &/p&&p& 6.RF GBDT区别 -- 方差偏差理论,bagging&boost区别 &/p&&p& 7.GBDT xgboost区别 --泰勒二阶,并行化,正则项 &/p&&p& 8.手写MergeSort &/p&&p& 9.熟悉什么语言 &/p&&p& 10.用什么框架 &/p&&p& 11.深度学习正则化 &/p&&p& 12.GBDT分布式如何实现 #没有了解过,然后简单说了自己的想法,面试官给我讲了许多这方面 &/p&&p&&br&&/p&&p& 阿里巴巴 -
- 校招 - 终面 &/p&&p&&br&&/p&&p& 1.头条实习 ----- 模型介绍 &/p&&p& 2.GBDT xgboost区别 &/p&&p& 3.kaggle比赛 &/p&&p& 4.一个整数数组中,寻找3个数乘积最大 &/p&&p& 5.GBDT与bagging等方法区别 &/p&&p& 6.linux常用指令 sort grep等 &/p&&p&&br&&/p&&p& 阿里巴巴 -
- 校招 - 加面 &/p&&p& #压力面? &/p&&p&&br&&/p&&p& 1.头条实习ffm替换skip gram模型,为什么?效果如何?为什么会有提速效果?线上如何部署等 &/p&&p& 2.头条所做?训练两个大模型,效果如何? &/p&&p& 3.kaggle比赛 &/p&&p& 4.vgg16 resnet googlenet区别 &/p&&p& 5.手写代码-旋转数组找出最小数字 &/p&&p& #其余记不清了 &/p&&p&&br&&/p&&p& 大疆 -
- 校招 - 初面 &/p&&p&&br&&/p&&p& 1.头条实习 &/p&&p& 2.kaggle项目&/p&&p&&br&&/p&&p&&b&跟作者交流&/b&:&a href=&http://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/48981%3Ftype%3D0%26order%3D0%26pos%3D19%26page%3D1& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&nowcoder.com/discuss/48&/span&&span class=&invisible&&981?type=0&order=0&pos=19&page=1&/span&&span class=&ellipsis&&&/span&&/a&&/p&
作者:Polaris045217 链接: 来源:牛客网 本人渣硕,非cs。 自学机器学习,深度学习,leetcode200多道吧(基本看答案,题还是要多刷,今后工作了也要保持,锻炼思维) 有幸参加了2个kaggle比赛,拿到6/1400排名 有幸获得今日头条实习…
&p&作者:xiaobaichao&br&链接:&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/61379%3Ftype%3D0%26order%3D0%26pos%3D161%26page%3D1& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&nowcoder.com/discuss/61&/span&&span class=&invisible&&379?type=0&order=0&pos=161&page=1&/span&&span class=&ellipsis&&&/span&&/a&&br&来源:牛客网&/p&&p&&br&&/p&&p&今天已经是11月初了,找工作的阶段已经进入尾声。回想这半年的时间,充满苦涩与艰辛,有幸拿到了几个offer,腾讯和滴滴的SP,还有百度和华为的offer,秋招之路也画上了一个圆满的句号。下面分享一下自己这两年的学习与近半年的求职路上的一些经验与心得,供后来人参考,不一定是最好的方法,但是大家可以借鉴一下,结合自身情况,找出最适合自己的方法。 &/p&&p&&br&&/p&&p&先说一下楼主的情况,本科普通一本,硕士西南985。研究生期间走上了机器学习算法学习之路。参加过天池几个比赛,拿到的成绩一般,有几个前20的比赛。本篇文章我只想把我学习与求职路上最干货的东西分享给大家,那些很细致的学习路线或者求职面经有很多大神已经分享啦,大家可以去看一看~~~。 &/p&&p&&br&&/p&&p&&b&写在前面的话:你是否真的决定走算法这条路。&/b& &/p&&p&我当时想法很简单,确实认为算法,AI(机器学习,深度学习)这方面以后会有前途,也结合自身情况觉得可以去学一学,当真正走在路上时发现困难重重,曾经一度认为自己是不是不适合算法,但是没有后悔,也没有放弃,最后的结果还不错。但是在今天这一个时间节点上,很多人都想学算法,找算法的工作,我们就要重新审视这一个问题了,你真的适合吗,你真的有能力做到全国竞争者中的前百分之一吗。如果对自己有信心,也觉得自己很有执行力,并且能拿出每天8小时,持续12个月以上的学习时间,那就去做。但是我们不得不承认的一个事实就是现在想做算法的人实在太多,未来一段时间各个公司能给出算法岗位HC至少不会比今年少,但是竞争人数会呈爆炸式增长,所以竞争必然会增大。 &/p&&p& 以下的部分分为两个部分:学习与求职路上的心得和经验以及踩过的坑。 &/p&&p&&br&&/p&&h2&&b&学习心得和经验 &/b& &/h2&&p&&b&一、理论知识要扎实 &/b&&/p&&p&既然是走算法之路,最基本的算法理论都必须要熟悉,最常见的要做到如数家珍。常见的分类,聚类,优化算法,深度学习等等的算法最好能推导(要想面试表现做到前百分之一必须要会推导,是加分项)。要融会贯通,对这些算法有自己的理解,面试的时候能说出自己与某某算法的一些心得和理解。比如面试官让你讲讲XGB原理和优缺点,你可以对比着GBDT或者LightGBM讲,说说自己在使用的时候有什么trick。另外的算法就是数据结构算法要掌握常见的题目。这部分也可以作为coding能力考查,最基本是看完《剑指offer》,《leetcode》,自己练习的时候可以手写练一下,最后要达到能熟练手写的程度。推荐在牛客网上的在线编程刷题,有精力的可以再看看《编程之美》和《程序员面试宝典》的内容。&/p&&p&&b&二、coding能力要过关 &/b&&/p&&p& 算法的同学coding能力是在面试中必须要考察的。所以自己的coding能力必须多练练,推荐在牛客网的在线编程多多敲代码。掌握类似leetcode medium程度的题目就可以了,hard程度的可以不用掌握。面试中一般会出几道题目,要求手写,能顺利写出的都是加分项。语言要掌握一大两小三门语言,大语言是Java或者Cpp,小语言掌握python,SQL。有时间精力可以将常见的算法用python实现一下。语言不必掌握很深,但是要做到能熟练用Python或者SQL处理数据,算法用Python也要掌握差不多。对于大语言来说基本语法和一些基本概念都要熟练掌握。 &/p&&p&&br&&/p&&p&&b&三、项目比赛经历 &/b&&/p&&p& 单单有理论的code能力是不够的,最好能参加一两个有含金量的比赛或者项目,尽力做一做,拿一个好名次,拿不到的话也要根据前几名队伍的答辩思路好好总结一下,用到什么算法,自己在项目比赛中负责什么工作,有什么创新点,自己有什么收获等等,一定要好好总结,因为这可能是面试官和你聊的最多的东西,所以提前一定要下功夫总结整理好。 &/p&&p&&br&&/p&&p&&b&四、实际工程trick &/b&&/p&&p& 虽然我们都是在校生,但是面试官可能会问我们他在工作中遇到的实际工程问题,所以这部分也需要我们去提前了解学习,最好的方法就是看别人的面经进行总结,下面我也会贴出自己遇到的问题,供大家参考。 &/p&&p&&br&&/p&&p&&b&五、所谓的智力题 &/b&&/p&&p& 这部分的问题最不好准备,常见的一些问题可以准备一下,但是不常见的问题就靠自己临场发挥了,不过大家在平时多多留意一下。 &/p&&p&&br&&/p&&h2&&b&求职心得和经验&/b& &/h2&&p&&b&一、关于每年3,4月份的实习 &/b&&/p&&p& 楼主在这个期间只投了阿里,在最后的HR面之后被挂。虽然没去实习,但是在这4-5场的面试中学习到很多。技术面一开始也很紧张,慢慢的查找自己的漏洞,然后在后面查漏补缺。所以推荐大家在3,4月份去投着试一试,虽然可能当时的能力达不到公司要求,但是可以去增长一下经验。 &/p&&p&&br&&/p&&p&&b&二、简历 &/b&&/p&&p& 简历最好一页,将最能代表自己能力的写清楚,最好简洁扼要。自己获得的奖励最好都写上,但是尽量写与岗位和公司match的,如获得天池名次,国奖之类的。马拉松获得第几之类的就可以不写。 &/p&&p&&br&&/p&&p&&b&三、面试技巧 &/b&&/p&&p&1. 面试通过=50%实力+30%运气+20%技巧。 &/p&&p&2. 首先要告诉自己,这不是一场面试,而是一场与自己未来同事之间的交流探讨。尽量消除紧张心理,完全不紧张也是不可能的,但是还是要尽可能稳下来。面试过程中尽量幽默,能做到和面试官谈笑风生你就赢了。在脉脉上看到的有人说做了面试官之后才发现其实你技术差不多就行,决定你过不过的就是看你顺不顺眼,所以最好能让面试官在短短几十分钟里喜欢上你! &/p&&p&3. 在准备面试的时候看过一个公众号的文章,文章意思就是比如你的实力是80,那么你在面试中的表现一般是在60-100之间,如果你整场面试都表现平平,那么面试官对你的评分可能是60-80,但是如果你偶尔有一两个问题没回答好,但是另外的一两个问题答的很完美,那么你很可能就是80-100分。面试官最后决定录不录用此人,更大程度上是根据面试者的最佳表现和结束时表现。所以要反复演练自己的最佳亮点和如何结束面试。 &/p&&p&4. 电话面试的话要注意语速吐字,现场面试也要注意语速,可以用在草稿纸上写一写的方式帮助解释。 &/p&&p&5. 面试中遇到没理解的问题要尽可能与面试官沟通,说不定他就在考你的沟通能力呢。 &/p&&p&6. 在面试中遇到不会的或者完全不会的问题要在面试之前想好策略。我的策略一般是允许自己对于最多两个问题直接说我不会,此策略一般是对于自己完全没有把握的问题,让面试官换另一个问题。如果你强答这个题的话只能是勉勉强强的回答一下。在一场面试中有1,2个问题说不会的没有多大问题,但是对于其他的问题要尽量做到完美作答,这样才有把握。 &/p&&p&7. 关于HR面,楼主在面阿里实习生是第一次HR面,当时聊的比较嗨,挂了,事后想想应该是自己表现的太有个性和想法了,所以各位在HR面的时候尽量表现的老实规矩一点吧,这样最好。。。 &/p&&p&&br&&/p&&p&&b&四、面试遇到的代表性问题 &/b&&/p&&p&1. 比赛项目展开的问题 &/p&&p&1.1 比赛中特征设计思路,为什么这么设计。 &/p&&p&1.2 模型融合有什么创新点,为什么这么做。 &/p&&p&1.3 针对大数据量,有什么处理方法,具体怎么做。 &/p&&p&1.4 业界开源的分布式训练框架。 &/p&&p&1.5 给出一个集群框架,每一个集群包括CPU,存储,时序等等变量,运用什么算法或者策略使得总的效率最高。 &/p&&p& 1.6
对于某一个地区中的车辆和乘客怎样合理安排司机-乘客使得滴滴总的收益最大(主要考虑距离)。 &/p&&p& 1.7
滴滴的拼车功能的拼车价怎么定,使用什么策略或者算法。&/p&&p&2. 算法理论方面 &/p&&p&2.1 LR,SVM,KNN,GBDT,XGB推导,算法细节(LR为何是sigmod,理论推导出sigmod,KNN距离度量方式,XGBoost为什么要用二阶信息不用一阶,LR和SVM对比,GBDT和XGB和LightGBM对比)。 &/p&&p&2.2 CNN DNN RNN 细节以及相关问题(poll层,激活函数,梯度消失弥散问题,LSTM结构图,深度网络优势及缺点)。 &/p&&p&2.3 常见排序算法的复杂度和一些细节以及改进优化。 &/p&&p&2.4 树模型建模过程。 &/p&&p&2.5 特征选择方法。 &/p&&p&2.6 模型训练停止方法。 &/p&&p&2.7 正则化作用。 &/p&&p&2.8 模型效果评价指标。 &/p&&p&2.9 AUC理解和计算方法。 &/p&&p&2.10 Hadoop,Hive,Spark相关理论。 &/p&&p&2.11 L_BFGS,DFP推导。 &/p&&p&2.12 弱分类器组合成强分类器的理论证明。 &/p&&p&2.13 FM,FMM,Rank_SVM算法细节。 &/p&&p&2.14 map_reduce基本概念以及常见处理代码。 &/p&&p&2.15 过拟合的解决方法。 &/p&&p&2.16 各个损失函数之间区别。 &/p&&p&2.17 L1,L2正则化相关问题。 &/p&&p&&br&&/p&&p&3. Coding &/p&&p&3.1 SQL查询相关业务题目。 &/p&&p&3.2 Java基础(GC,死锁,多线程,重载重写等)。 &/p&&p&3.3 Python基础(常见数据结构用法,类继承,内存管理)。 &/p&&p&3.4 Linux处理文本日志相关常见命令。 &/p&&p&3.5 给定n,螺旋打印矩阵。 &/p&&p&3.6 Z字形打印树。 &/p&&p&3.7 基础的数组,链表操作。 &/p&&p&3.8 大巴车求阴影(至今没明白什么意思)。 &/p&&p&3.9 在一个一维坐标轴中,给定 n 个线段起止点(ai,bi) (ai、bi 的取值在 double 范围内), 如何计算所有线段覆盖的总长度,请编程实现。 &/p&&p&3.10 .一个数组A[1,...,n](n≥3),满足A[1]≥A[2], A[n] ≥ A[n-1](第一个数比第二个数大,最后一个数比倒数第二个数大,其他位置不保证大小关系)。用最快的办法找到一个i, 满足A[i-1]≥A[i] ≤ A[i+1],并给复杂度。 &/p&&p&3.11 输入:两个等长的数组a,b (a、b元素都不小于0),每次可对a数组做如下两种改动中的一种 1)选取a数组中任意一个元素,将其值增加1; 2)将a数组中任取若干个元素,将其值都乘以2; 输出:最少需要操作次数,将a数组转化成和b数组完全一样;如果做不到,输出-1,请编程实现。 &/p&&p&3.12 数组里面连续值的和为S的区间,给出边界。 &/p&&p&&br&&/p&&p&4. 智力题/开放题 &/p&&p&4.1 淘宝有1亿总量的商品数量,你作为一个用户通过什么办法得到京东的商品总量。 &/p&&p& 4.2
连续递增的数据,拿出两个,打乱顺序,求拿出的两个。 &/p&&p& 4.3
n个人围城一圈握手问题,不能交叉,不能落单,求一共有多少种握手数目(卡特兰数推导)。 &/p&&p& 4.4
54张扑克,抽去大小王,均分给4个人,问红桃A和黑桃A在同一个人手中的概率。 &/p&&p& 4.5
对于一个query,”时效性” query的判断,运用什么算法。 &/p&&p&&br&&/p&&p& 5.
计算机网络,操作系统 &/p&&p& 5.1 TCP三次握手,四次挥手等细节。 &/p&&p& 5.2
5层,7层网络相关问题。&/p&&p&&br&&/p&&p&&b&跟作者交流&/b&:&a href=&https://link.zhihu.com/?target=https%3A//www.nowcoder.com/discuss/61379%3Ftype%3D0%26order%3D0%26pos%3D161%26page%3D1& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://www.&/span&&span class=&visible&&nowcoder.com/discuss/61&/span&&span class=&invisible&&379?type=0&order=0&pos=161&page=1&/span&&span class=&ellipsis&&&/span&&/a&&/p&
作者:xiaobaichao 链接: 来源:牛客网 今天已经是11月初了,找工作的阶段已经进入尾声。回想这半年的时间,充满苦涩与艰辛,有幸拿到了几个offer,腾讯和滴滴的SP,还有百度和华为的offer,秋招之路也画上了一个圆满的句号。下面分享…
&figure&&img src=&https://pic4.zhimg.com/v2-cfbe483e70_b.jpg& data-rawwidth=&550& data-rawheight=&343& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&https://pic4.zhimg.com/v2-cfbe483e70_r.jpg&&&/figure&&p&目录:&/p&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23svme4b88elre79a84e58cbae588ab_1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SVM与LR的区别&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e4bb8ee6a8a1e59e8be8a7a3e586b3e997aee9a298e79a84e696b9e5bc8fe69da5e79c8b_2& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&从模型解决问题的方式来看&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e4b8a4ee58cbae588ab_3& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&两者的区别&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e696b9e6b395e79a84e_4& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&方法的选择&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e5ba94e794a8e59cbae699afe696b9e99da2e4b88de5908c_5& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&应用场景方面不同&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23svmee5a484ee4b988e6a0b7e79a84e695b0e68daeefbc9f_6& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SVM适合处理什么样的数据?&/a&&/li&&/ul&&/ul&&p&&br&&/p&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e69cbae599a8e5ada6e4b9a0e5b8b8e8a781e7ae97e6b395e680bbe7bb93_7& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&机器学习常见算法总结&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e69cb4e7b4a0e8b49de58fb6e696af_8& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&朴素贝叶斯&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e7babfe680a7e59b9ee5bd92_9& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&线性回归&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23lre59b9ee5bd92_10& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&LR回归&/a&&/li&&/ul&&/ul&&p&&br&&/p&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e4bc98e58c96e997aee9a298e79a84e6b182e8a7a3e696b9e6b395_11& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&优化问题的求解方法&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e6a2afe5baa6e4b88be_12& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&梯度下降法&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e4bc98e58c96e_13& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&优化思想&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e7bcbae782b9_14& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&缺点&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e689b9eafe5baa6e4b88be_15& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&批量梯度下降法&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e99a8fe69cbae6a2afe5baa6e4b88be_16& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&随机梯度下降法&/a&&/li&&/ul&&/ul&&/ul&&p&&br&&/p&&ul&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23ebfe6b395_17& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&牛顿法&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23ebfe6b395e6af94e6a2afe5baa6e4b88bee5bfab_18& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&牛顿法比梯度下降法快&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e68b9febfe6b395_19& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&拟牛顿法&/a&&/li&&/ul&&/ul&&/ul&&p&&br&&/p&&ul&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e68b89e6a0bce69c97e697a5e6b395_20& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&拉格朗日法&/a&&/li&&/ul&&/ul&&p&&br&&/p&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e69cbae599a8e5ada6e4b9a0e7ae97e6b395e_21& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&机器学习算法选择&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e8b49de58fb6e696af_22& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&贝叶斯&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23ke8bf91e982bb_23& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&K近邻&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e4b889e8a681e7b4a0efbc9a_24& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&三要素:&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23ke580bce79a84e_25& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&k值的选择&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23ebbe586b3e7ad96e8a784e58899_26& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&分类决策规则&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e4bc98e7bcbae782b9efbc9a_27& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&优缺点:&/a&&/li&&/ul&&/ul&&/ul&&p&&br&&/p&&ul&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23kde6a091_28& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&KD树&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e69e84e980a0kde6a091_29& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&构造KD树&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23kde6a091e79a84ea2_30& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&KD树的搜索&/a&&/li&&/ul&&/ul&&/ul&&p&&br&&/p&&ul&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e586b3e7ad96e6a091_31& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&决策树&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e99a8fe69cbae6a3aee69e97_32& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&随机森林&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e59fbae69cace6a682e5bfb5_33& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&基本概念&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e58f82e695b0e8b083e88a82_34& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&参数调节&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23rfe4b88ee4bca0e7bb9fbagginge79a84e58cbae588ab_35& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&RF与传统bagging的区别&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23rfe79a84e4bc98e782b9_36& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&RF的优点&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e7bcbae782b9_37& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&缺点&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23rfe79a84e5ada6e4b9a0e7ae97e6b395_38& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&RF的学习算法&/a&&/li&&/ul&&/ul&&/ul&&p&&br&&/p&&ul&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23gbdt_39& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GBDT&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e59fbae69cace6a682e5bfb5_40& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&基本概念&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23gbdte4b88ee4bca0e7bb9fboostingefbc88adaboostefbc89e79a84e58cbae588ab_41& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GBDT与传统Boosting(AdaBoost)的区别&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23gbdte6ada3ee79a84e696b9e5bc8f_42& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GBDT正则化的方式&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23gbdte79a84e4bc98e7bcbae782b9_43& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GBDT的优缺点&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23gbdte9a284e6b58be697b6e6af8fe4b880e6a3b5e6a091e698afe590a6e883bde5b9b6e8a18cefbc9f_44& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GBDT预测时每一棵树是否能并行?&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23gbdte5928crfe79a84e58cbae588abe4b88eebb_45& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GBDT和RF的区别与联系&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23xgbooste79bb8e6af94e4ba8egbdte69c89e4bd95e4b88de5908cefbc9fxgbooste4b8bae4bb80e4b988e5bfabefbc9fxgbooste5a682e4bd95e694afe68c81e5b9b6e8a18cefbc9f_46& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&XGBOOST相比于GBDT有何不同?XGBOOST为什么快?XGBOOST如何支持并行?&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23ababoost_47& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ababoost&/a&&/li&&/ul&&/ul&&/ul&&p&&br&&/p&&p&&br&&/p&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e99b86e68890e5ada6e4b9a0e4b88ee696b9e5b7aeeae_48& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&集成学习与方差偏差&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e4b8bae4bb80e4b988e8afb4bagginge698afevarianceefbc8ce8808cboostinge698afebias_49& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&为什么说bagging是减少variance,而boosting是减少bias?&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e4b8bae4bb80e4b988e68a8ae789b9e5be81e7bb84ebee883bde68f90e58d87_50& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&为什么把特征组合之后还能提升&/a&&/li&&/ul&&/ul&&p&&br&&/p&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e680bbe4bd93e680a7e997aee9a298_51& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&总体性问题&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23ebbe4b88ee59b9ee5bd92e79a84e58cbae588ab_52& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&分类与回归的区别&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23ee6a8a1e59e8be4b88ee588a4e588abe6a8a1e59e8be79a84e58cbae588ab_53& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&生成模型与判别模型的区别&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e7b2bee7a1aee78e87e38081e58face59b9ee78e87e0bce38081roce38081auc20eaae79a84e4bc98e7bcbae782b9e698afe4bb80e4b988efbc9f_54& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e8bf87e68b9fe59088_55& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&过拟合&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e7babfe680a7ebbe599a8e4b88ee99d9ee7babfe680a7ebbe599a8e79a84e58cbae588abe4bba5e58f8ae4bc98e58aa3_56& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&线性分类器与非线性分类器的区别以及优劣&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e6a0b7e69cace4b88de59d87e8a1a1e5a682e4bd95e8a7a3e586b3_57& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&样本不均衡如何解决&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23ee6a0b7efbc88resamplingefbc89e68a80e69cafefbc9a_58& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&重采样(resampling)技术:&/a&&/li&&/ul&&/ul&&/ul&&p&&br&&/p&&p&&br&&/p&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e6b7b1e5baa6e5ada6e4b9a0e696b9e99da2e79a84e997aee9a298_59& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&深度学习方面的问题&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e6b7b1e5baa6e5ada6e4b9a0e79a84e5ae9ee8b4a820e58f8ae585b620e4b88ee6b585e5b182e5ada6e4b9a0e79a84e58cbae588ab_60& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&深度学习的实质 及其 与浅层学习的区别&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23bpe7ae97e6b395e4b8bae4bb80e4b988e4b88de883bdee4ba8ee6b7b1e5baa6e5ada6e4b9a0_61& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&BP算法为什么不能适应于深度学习&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23cnne58db7e59fbae5b182e5928cpoolinge5b182e79a84e4bd9ce794a8_62& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CNN卷基层和pooling层的作用&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23dnne5b8b8e794a8e79a84e6bf80e6b4bbe587bde695b0e69c89e593aae4ba9befbc8cee4bb80e4b988e789b9e782b9_63& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&DNN常用的激活函数有哪些,各有什么特点&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e8a7a3e586b3relue7a59ee7bb8fefe6adbbe997aee9a298_64& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&解决relu神经元坏死问题&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e4bb80e4b988e6a0b7e79a84e8b584edee794a8e6b7b1e5baa6e5ada6e4b9a0efbc9f_65& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&什么样的资料不适合用深度学习?&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e4bb80e4b988e698afe585b1e7babfe680a7efbc8ce8b79fe8bf87e68b9fee4bd95e585b3e88194efbc9f_66& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&什么是共线性,跟过拟合有何关联?&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23poolinge68a80e69cafe69c89e593aae4ba9befbc8ce69c89e4bb80e4b988e4bd9ce794a8e69c89e4bb80e4b988e58cbae588ab_67& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&pooling技术有哪些,有什么作用,有什么区别&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23poolinge79a84e58f8de59091e4bca0e692ad_68& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&pooling的反向传播&/a&&/li&&/ul&&/ul&&p&&br&&/p&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e789b9e5be81ee79a84e696b9e6b395_69& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&特征选择的方法&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e789b9e5be81ee696b9e6b395e4b8bee4be8b_70& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&特征选择方法举例&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e789b9e5be81ee696b9e6b395ebb_71& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&特征选择方法分类&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23filtere8bf87e6bba4e6b395_72& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Filter过滤法&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23embedded20e99b86ee6b395_73& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Embedded 集成方法&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e9998de7bbb4_74& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&降维&/a&&/li&&/ul&&/ul&&/ul&&p&&br&&/p&&p&&br&&/p&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23lre79bb8e585b3e997aee9a298_75& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&LR相关问题&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23lre4b88ebp_76& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&LR与BP&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23lre4b8bae4bb80e4b988e4bdbfe794a8sigmoide587bde695b0_77& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&LR为什么使用sigmoid函数&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e4b8bae4bb80e4b988lre68a8ae789b9e5be81e7a6bbe695a3e58c96ee69e9ce69bb4e5a5bd_78& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&为什么LR把特征离散化后效果更好&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e5a682e4bd95e794a8lre5bbbae7ab8be4b880e4b8aae5b9bfee587bbe79a84e6a8a1e59e8befbc9a_79& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&如何用LR建立一个广告点击的模型:&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23lre79a84e8bf87e68b9fe59088_80& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&LR的过拟合&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e585b3e4ba8elre79a84e5a49aebbefbc9asoftmax_81& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&关于LR的多分类:softmax&/a&&/li&&/ul&&/ul&&p&&br&&/p&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23svme79bb8e585b3e997aee9a298_82& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SVM相关问题&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23svme79a84e4b8bbe8a681e789b9e782b9_83& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SVM的主要特点&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e7bcbae782b9efbc9a_84& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&缺点:&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e4b8bae4bb80e4b988e8a681e5bc95e585a5e5afb9e581b6e997aee9a298_85& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&为什么要引入对偶问题&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e6a0b7e69cace5a4b1e8a1a1e79a84e5bdb1e5938d_86& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&样本失衡的影响&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e6a0b7e69cace5a4b1e8a1a1e697b6efbc8ce5a682e4bd95e8af84e4bbb7ebbe599a8e79a84e680a7e883bde5a5bde59d8fefbc9f_87& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&样本失衡时,如何评价分类器的性能好坏?&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e6a0b7e69cace6b2a1e69c89e8a784e88c83e58c96e5afb9svme69c89e4bb80e4b988e5bdb1e5938defbc9f_88& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&样本没有规范化对SVM有什么影响?&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e695b0e68daee7bbb4e5baa6e5a4a7e4ba8ee695b0e68daeee5afb9svme79a84e5bdb1e5938defbc9f_89& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&数据维度大于数据量的对SVM的影响?&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e68b89e6a0bce69c97e697a5e4b998e5ad90e6bckkte69da1e4bbb6_90& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&拉格朗日乘子法 和KKT条件&/a&&/li&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e587b8e587bde695b0_91& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&凸函数&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e7ad89e5bc8fe69da1e4bbb6e7baa6e69d9f_92& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&等式条件约束&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e4b88de7ad89e5bc8fe7baa6e69d9fe4b88ekkte69da1e4bbb6_93& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&不等式约束与KKT条件&/a&&/li&&/ul&&/ul&&/ul&&p&&br&&/p&&ul&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23svme79a84e58e9fe997aee9a298e5928ce5afb9e581b6e997aee9a298_94& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SVM的原问题和对偶问题&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23e4b8bae4bb80e4b988e8a681e5bc95e585a5e5afb9e581b6e7ae97e6b395_95& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&为什么要引入对偶算法&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23svme8a7a3e586b3e8bf87e68b9fee696b9e6b395_96& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SVM解决过拟合的方法&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23svme4bc98e7bcbae782b9_97& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SVM优缺点&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23smoe7ae97e6b395_98& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SMO算法&/a&&/li&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23svme5a49aebbe997aee9a298_99& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&SVM多分类问题&/a&&/li&&/ul&&/ul&&p&&br&&/p&&ul&&li&&a href=&https://link.zhihu.com/?target=http%3A//markdown.xiaoshujiang.com/preview.html%23reference_100& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&reference&/a&&/li&&/ul&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&p&机器学习是做NLP和计算机视觉这类应用算法的基础,虽然现在深度学习模型大行其道,但是懂一些传统算法的原理和它们之间的区别还是很有必要的。可以帮助我们做一些模型选择。本篇博文就总结一下各种机器学习算法的特点和应用场景。本文是笔者结合自身面试中遇到的问题和总结网络上的资源得到的,所有引用已给出链接,如侵删。&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-0d4c70af67ce5719f81fb_b.jpg& data-rawwidth=&400& data-rawheight=&300& class=&content_image& width=&400&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&机器学习&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&h2&SVM与LR的区别&/h2&&p&&br&&/p&&p&&br&&/p&&h2&从模型解决问题的方式来看&/h2&&p&&br&&/p&&p&Linear SVM直观上是trade-off两个量&/p&&p&&br&&/p&&p&a large margin,就是两类之间可以画多宽的gap ;不妨说是正样本应该在分界平面向左gap/2(称正分界),负样本应该在分解平面向右gap/2(称负分界)&/p&&p&L1 error penalty,对所有不满足上述条件的点做L1 penalty&/p&&p&&br&&/p&&p&给定一个数据集,一旦完成Linear SVM的求解,所有数据点可以被归成两类&/p&&p&&br&&/p&&p&一类是落在对应分界平面外并被正确分类的点,比如落在正分界左侧的正样本或落在负分界右侧的负样本&/p&&p&第二类是落在gap里或被错误分类的点。&/p&&p&&br&&/p&&p&假设一个数据集已经被Linear SVM求解,那么往这个数据集里面增加或者删除更多的一类点并不会改变重新求解的Linear SVM平面。不受数据分布的影响。&/p&&p&&br&&/p&&p&求解LR模型过程中,&b&每一个数据点对分类平面都是有影响的&/b&,它的影响力远离它到分类平面的距离指数递减。换句话说,LR的解是&b&受数据本身分布&/b&影响的。在实际应用中,如果数据维度很高,LR模型都会配合参数的L1 regularization。&/p&&p&&br&&/p&&p&&br&&/p&&h2&两者的区别&/h2&&p&&br&&/p&&p&两个模型对&b&数据和参数&/b&的敏感程度不同,Linear SVM比较依赖penalty的系数和&b&数据表达空间的测度&/b&,而(带正则项的)LR&b&比较依赖对参数做L1 regularization的系数&/b&。但是由于他们或多或少都是线性分类器,所以实际上对低维度数据overfitting的能力都比较有限,相比之下对高维度数据,LR的表现会更加稳定,为什么呢?因为Linear SVM在计算margin有多“宽”的时候是依赖数据表达上的距离测度的,换句话说如果这个测度不好(badly scaled,这种情况在高维数据尤为显著),所求得的所谓Large margin就没有意义了,这个问题即使换用kernel trick(比如用Gaussian kernel)也无法完全避免。所以使用Linear SVM之前一般都需要先对数据做normalization,而求解LR(without regularization)时则不需要或者结果不敏感。&/p&&p&&br&&/p&&p&Linear SVM和LR都是线性分类器&br&Linear SVM不直接依赖数据分布,分类平面不受一类点影响;&b&LR则受所有数据点的影响,如果数据不同类别strongly unbalance一般需要先对数据做balancing&/b&。&br&Linear SVM&b&依赖数据表达的距离测度,所以需要对数据先做normalization&/b&;LR不受其影响&br&Linear SVM依赖penalty的系数,实验中需要做validation&br&Linear SVM和LR的performance都会收到outlier的影响,其敏感程度而言,谁更好很难下明确结论。&/p&&p&&br&&/p&&p&&b&balance的方法&/b&&/p&&p&&br&&/p&&p&调整正、负样本在求cost时的权重,比如按比例加大正样本cost的权重。然而deep learning的训练过程是on-line的因此你需要按照batch中正、负样本的比例调整。&/p&&p&做训练样本选取:如hard negative mining,只用负样本中的一部分。&/p&&p&做训练样本选取:如通过data augmentation扩大正样本数量。&/p&&p&&br&&/p&&p&&b&过拟合方面&/b&&/p&&p&&br&&/p&&p&LR容易欠拟合,准确度低。&/p&&p&&br&&/p&&p&SVM不太容易过拟合:松弛因子+损失函数形式&/p&&p&&br&&/p&&p&注意SVM的求解方法叫拉格朗日乘子法,而对于均方误差的优化方法是最小二乘法。&/p&&p&&br&&/p&&p&&br&&/p&&h2&方法的选择&/h2&&p&&br&&/p&&p&在Andrew NG的课里讲到过:&/p&&p&&br&&/p&&p&如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM&/p&&p&如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel&/p&&p&如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况&/p&&p&&br&&/p&&p&当你的数据非常非常非常非常非常大然后完全跑不动SVM的时候,跑LR。SVM适合于小样本学习。多大算是非常非常非常非常非常非常大? 比如几个G,几万维特征,就勉强算大吧...而实际问题上几万个参数实在完全不算个事儿,太常见了。随随便便就得上spark。读一遍数据就老半天,一天能训练出来的模型就叫高效了。所以在新时代,LR其实反而比以前用的多了=. =&/p&&p&&br&&/p&&p&&br&&/p&&h2&应用场景方面不同&/h2&&p&&br&&/p&&p&拟合程度,样本量,&/p&&p&&br&&/p&&p&距离测度,数据balance&/p&&p&&br&&/p&&p&模型简单易解释&/p&&p&&br&&/p&&p&如果数据特征维度高,svm要使用核函数来求解&/p&&p&&br&&/p&&p&Note:拉格朗日对偶没有改变最优解,但改变了算法复杂度:原问题—样本维度;对偶问题–样本数量。所以 线性分类&&样本维度&样本数量:原问题求解(liblinear默认); 非线性–升维—一般导致 样本维度&样本数量:对偶问题求解&/p&&p&&br&&/p&&p&&br&&/p&&h2&SVM适合处理什么样的数据?&/h2&&p&&br&&/p&&p&高维稀疏,样本少。【参数只与支持向量有关,数量少,所以需要的样本少,由于参数跟维度没有关系,所以可以处理高维问题】&/p&&p&&br&&/p&&p&&br&&/p&&h2&机器学习常见算法总结&/h2&&p&&br&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//kubicode.me//Machine%2520Learning/Algorithm-Summary-for-Interview/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&机器学习常见算法个人总结(面试用)&/a&&/p&&p&&br&&/p&&p&&br&&/p&&h2&朴素贝叶斯&/h2&&p&&br&&/p&&p&朴素贝叶斯的&b&优点&/b&:&br&对小规模的数据表现很好,适合多分类任务,适合增量式训练。&br&&b&缺点&/b&:&br&对输入数据的表达形式很敏感(离散、连续,值极大极小之类的)&/p&&p&&br&&/p&&p&&br&&/p&&h2&线性回归&/h2&&p&&br&&/p&&p&线性回归试图学得一个线性模型以尽可能准确地预测实值输出标记。均方误差是回归任务中最常用的性能度量,基于均方误差最小化来进行模型求解的方法成为最小二乘法。在线性回归中,最小二乘法就是试图找到一条直线,使得&b&所有样本到直线上的欧式距离之和最小&/b&。这个想法和分类问题是正好相反的,分类问题是找到一个分界面离所有样本尽可能远。&/p&&p&&br&&/p&&p&&b&优化方法&/b&&/p&&p&&br&&/p&&p&当x矩阵是列满秩的时候,可以用最小二乘法,但是求矩阵的逆比较慢&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-7f37d344ebe6b46aaa96_b.jpg& data-rawwidth=&216& data-rawheight=&61& class=&content_image& width=&216&&&/figure&&p&&br&&/p&&p&梯度下降法,以最大似然估计的结果对权值求梯度,sigmoid函数也是如此&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-35ab5dbffc8a38be3775286bea6becd3_b.jpg& data-rawwidth=&273& data-rawheight=&38& class=&content_image& width=&273&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&enter description here&/p&&p&&br&&/p&&p&&br&&/p&&p&&b&均方无法的概率解释&/b&&br&假设根据特征的预测结果与实际结果有误差∈ (i) ,那么预测结果θ T x (i) 和真实结果y (i) 满足下&br&式:&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-32bb3b7eb50ee5cf071b8f_b.jpg& data-rawwidth=&185& data-rawheight=&51& class=&content_image& width=&185&&&/figure&&p&一般来讲,误差满足平均值为 0 的高斯分布,也就是正态分布。那么 x 和 y 的条件概率也就&br&是&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-9dcec78e86b_b.jpg& data-rawwidth=&407& data-rawheight=&60& class=&content_image& width=&407&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&用条件概率最大似然估计法得到:&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic7.zhimg.com/v2-f4ee0ade191_b.jpg& data-rawwidth=&192& data-rawheight=&67& class=&content_image& width=&192&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&enter description here&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&h2&LR回归&/h2&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-2d27c0b246c8dfe21124_b.jpg& data-rawwidth=&275& data-rawheight=&128& class=&content_image& width=&275&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&enter description here&/p&&p&&br&&/p&&p&回归用来分类 0/1 问题,也就是预测结果属于 0 或者 1 的二值分类问题&/p&&figure&&img src=&https://pic1.zhimg.com/v2-e529ec0649ffd4ee647f9ce_b.jpg& data-rawwidth=&267& data-rawheight=&72& class=&content_image& width=&267&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&仍然求的是最大似然估计,然后求导,得到迭代公式结果为,梯度下降法:&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic3.zhimg.com/v2-eceb41f0bf053_b.jpg& data-rawwidth=&269& data-rawheight=&42& class=&content_image& width=&269&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&enter description here&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&h2&优化问题的求解方法&/h2&&p&&br&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//www.cnblogs.com/maybe2030/p/4751804.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&[Math] 常见的几种最优化方法&/a&&br&大部分的机器学习算法的本质都是建立优化模型,通过最优化方法对目标函数(或损失函数)进行优化,从而训练出最好的模型。常见的最优化方法有梯度下降法、牛顿法和拟牛顿法、共轭梯度法等等。&/p&&p&&br&&/p&&p&&br&&/p&&h2&梯度下降法&/h2&&p&&br&&/p&&p&&br&&/p&&h2&优化思想&/h2&&p&&br&&/p&&p&当目标函数是凸函数时,梯度下降法的解是全局解。一般情况下,其解不保证是全局最优解,梯度下降法的速度也未必是最快的。梯度下降法的优化思想是用当前位置负梯度方向作为搜索方向,因为该方向为当前位置的最快下降方向,所以也被称为是”最速下降法“。最速下降法越接近目标值,步长越小,前进越慢。&/p&&p&&br&&/p&&p&&br&&/p&&h2&缺点&/h2&&p&&br&&/p&&p&梯度下降法的最大问题就是会陷入局部最优,靠近极小值时收敛速度减慢。&/p&&p&&br&&/p&&p&&br&&/p&&h2&批量梯度下降法&/h2&&p&&br&&/p&&p&最小化所有训练样本的损失函数,使得最终求解的是全局的最优解,即求解的参数是使得风险函数最小,但是对于&b&大规模样本问题效率低下&/b&。&/p&&p&&br&&/p&&p&&br&&/p&&h2&随机梯度下降法&/h2&&p&&br&&/p&&p&最小化每条样本的损失函数,虽然不是每次迭代得到的损失函数都向着全局最优方向, 但是大的整体的方向是向全局最优解的,最终的结果往往是在全局最优解附近,适用于&b&大规模训练样本&/b&情况。&/p&&p&&br&&/p&&p&随机梯度下降是通过每个样本来迭代更新一次,如果样本量很大的情况(例如几十万),那么可能&b&只用其中几万条或者几千条的样本&/b&,就已经将theta迭代到最优解了,对比上面的批量梯度下降,迭代一次需要用到十几万训练样本,一次迭代不可能最优,如果迭代10次的话就需要遍历训练样本10次。但是,SGD伴随的一个问题是&b&噪音&/b&较BGD要多,使得SGD并不是每次迭代都向着整体最优化方向。&/p&&p&&br&&/p&&p&&br&&/p&&h2&牛顿法&/h2&&p&&br&&/p&&p&牛顿法是一种在实数域和复数域上近似求解方程的方法。方法使用函数f (x)的&b&泰勒级数的前面几项&/b&来寻找方程f (x) = 0的根。牛顿法最大的特点就在于它的收敛速度很快。&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-91e6893caa470e4c320b8a128e3a9a6a_b.jpg& data-rawwidth=&223& data-rawheight=&64& class=&content_image& width=&223&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&迭代公式&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&h2&牛顿法比梯度下降法快&/h2&&p&&br&&/p&&p&牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快。如果更通俗地说的话,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以,可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部。&/p&&p&&br&&/p&&p&但是牛顿法要&b&算hessian矩阵的逆&/b&,比较费时间。&/p&&p&&br&&/p&&p&&br&&/p&&h2&拟牛顿法&/h2&&p&&br&&/p&&p& 拟牛顿法的本质思想是改善牛顿法每次需要求解复杂的Hessian矩阵的逆矩阵的缺陷,它使&b&用正定矩阵来近似Hessian矩阵的逆&/b&,从而简化了运算的复杂度。拟牛顿法和最速下降法一样只要求每一步迭代时知道目标函数的梯度。通过测量梯度的变化,构造一个目标函数的模型使之足以产生超线性收敛性。这类方法大大优于最速下降法,尤其对于困难的问题。另外,因为拟牛顿法不需要二阶导数的信息,所以有时比牛顿法更为有效。&/p&&p&&br&&/p&&p&&br&&/p&&h2&拉格朗日法&/h2&&p&&br&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//www.cnblogs.com/maybe2030/p/4946256.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&拉格朗日乘数法&/a&&/p&&p&&br&&/p&&p&拉格朗日乘子法主要用于解决约束优化问题,它的基本思想就是通过引入拉格朗日乘子来将含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题。拉格朗日乘子背后的数学意义是其为约束方程梯度线性组合中每个向量的系数。&/p&&p&&br&&/p&&p&通过引入拉格朗日乘子建立极值条件,对n个变量分别求偏导对应了n个方程,然后加上k个约束条件(对应k个拉格朗日乘子)一起构成包含了(n+k)变量的(n+k)个方程的方程组问题,这样就能根据求方程组的方法对其进行求解。&/p&&p&&br&&/p&&p&&br&&/p&&h2&机器学习算法选择&/h2&&p&&br&&/p&&p&&a href=&https://www.zhihu.com/question/& class=&internal&&机器学习算法选择&/a&&/p&&p&&br&&/p&&p&随机森林平均来说最强,但也只在9.9%的数据集上拿到了第一,优点是鲜有短板。SVM的平均水平紧随其后,在10.7%的数据集上拿到第一。神经网络(13.2%)和boosting(~9%)表现不错。数据维度越高,随机森林就比AdaBoost强越多,但是整体不及SVM&a href=&https://link.zhihu.com/?target=https%3A//www.github.com/DragonFive/CVBasicOp/raw/master/0.jpg& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&2&/a&。数据量越大,神经网络就越强。&/p&&p&&br&&/p&&p&&br&&/p&&h2&贝叶斯&/h2&&p&&br&&/p&&p&是相对容易理解的一个模型,至今依然被垃圾邮件过滤器使用。&/p&&p&&br&&/p&&p&&br&&/p&&h2&K近邻&/h2&&p&&br&&/p&&p&典型的例子是KNN,它的思路就是——对于待判断的点,找到离它最近的几个数据点,根据它们的类型决定待判断点的类型。&/p&&p&&br&&/p&&p&它的特点是完全跟着数据走,没有数学模型可言。&/p&&p&&br&&/p&&p&&br&&/p&&h2&三要素:&/h2&&p&&br&&/p&&p&k值的选择&/p&&p&距离的度量(常见的距离度量有欧式距离,马氏距离等)&/p&&p&分类决策规则 (多数表决规则)&/p&&p&&br&&/p&&p&&br&&/p&&h2&k值的选择&/h2&&p&&br&&/p&&p&k值越小表明模型越复杂,更加容易过拟合&/p&&p&但是k值越大,模型越简单,如果k=N的时候就表明无论什么点都是训练集中类别最多的那个类&/p&&blockquote&所以一般k会取一个较小的值,然后用过交叉验证来确定&br&这里所谓的交叉验证就是将样本划分一部分出来为预测样本,比如95%训练,5%预测,然后k分别取1,2,3,4,5之类的,进行预测,计算最后的分类误差,选择误差最小的k&/blockquote&&p&&br&&/p&&p&&br&&/p&&h2&分类决策规则&/h2&&p&&br&&/p&&p&找到最近的k个实例之后,可以计算平均值作为预测值,也可以给这k个实例加上一个权重再求平均值,这个权重与度量距离成反比(越近权重越大)&/p&&p&&br&&/p&&p&&br&&/p&&h2&优缺点:&/h2&&p&&br&&/p&&p&&b&优点&/b&&/p&&p&&br&&/p&&p&思想简单&/p&&p&可用于非线性分类&/p&&p&训练时间复杂度为O(n)&/p&&p&准确度高,对outlier不敏感&br&&b&缺点&/b&&/p&&p&计算量大&/p&&p&样本不平衡问题不适用&/p&&p&需要大量的内存&/p&&p&&br&&/p&&p&&br&&/p&&h2&KD树&/h2&&p&&br&&/p&&p&KD树是一个二叉树,表示对&b&K维空间&/b&的一个划分,可以进行快速检索&/p&&p&&br&&/p&&p&&br&&/p&&h2&构造KD树&/h2&&p&&br&&/p&&p&在k维的空间上循环找子区域的中位数进行划分的过程。&/p&&p&&br&&/p&&p&假设现在有K维空间的数据集: , &/p&&p&&br&&/p&&p&首先构造根节点,以坐标的中位数b为切分点,将根结点对应的矩形局域划分为两个区域,区域1中,区域2中&/p&&p&构造叶子节点,分别以上面两个区域中的中位数作为切分点,再次将他们两两划分,作为深度1的叶子节点,(如果a2=中位数,则a2的实例落在切分面)&/p&&p&不断重复2的操作,深度为j的叶子节点划分的时候,索取的 的,直到两个子区域没有实例时停止&/p&&p&&br&&/p&&p&&br&&/p&&h2&KD树的搜索&/h2&&p&&br&&/p&&p&首先从根节点开始递归往下找到包含x的叶子节点,每一层都是找对应的xi&/p&&p&将这个叶子节点认为是当前的“近似最近点”&/p&&p&递归向上回退,如果以x圆心,以“近似最近点”为半径的球与根节点的&b&另一半子区域&/b&边界相交,则说明另一半子区域中存在与x更近的点,则进入另一个子区域中查找该点并且更新”近似最近点“&/p&&p&重复3的步骤,直到另一子区域与球体不相交或者退回根节点&/p&&p&最后更新的”近似最近点“与x真正的最近点&/p&&p&&br&&/p&&p&log(n)&/p&&p&&br&&/p&&p&&br&&/p&&h2&决策树&/h2&&p&&br&&/p&&p&决策树的特点是它总是在沿着特征做切分。随着层层递进,这个划分会越来越细。&/p&&p&&br&&/p&&p&因为它能够生成清晰的基于特征(feature)选择不同预测结果的树状结构&/p&&p&&br&&/p&&p&&br&&/p&&h2&随机森林&/h2&&p&&br&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//blog.csdn.net/u/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&器学习岗位面试问题汇总 之 集成学习&/a&&/p&&p&&br&&/p&&p&&br&&/p&&h2&基本概念&/h2&&p&&br&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//blog.csdn.net/Snoopy_Yuan/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&天池离线赛 - 移动推荐算法(四):基于LR, RF, GBDT等模型的预测&/a&&/p&&p&&br&&/p&&p&它首先随机选取不同的特征(feature)和训练样本(training sample)&b&bagging&/b&,生成大量的决策树,然后综合这些决策树的结果来进行最终的分类。&/p&&p&&br&&/p&&p&随机森林在现实分析中被大量使用,它相对于决策树,在准确性上有了很大的提升&/p&&p&&br&&/p&&p&适用场景:&b&数据维度相对低&/b&(几十维),同时对准确性有较高要求时。&/p&&p&&br&&/p&&p&&br&&/p&&h2&参数调节&/h2&&p&&br&&/p&&p&是一种基于决策树基模型的集成学习方法,其核心思想是通过&b&特征采样来降低训练方差&/b&,提高集成泛化能力。&/p&&p&&br&&/p&&p&max_depth 属于基学习器参数,它控制着每个决策树的深度,一般来说,&b&决策树越深,模型拟合的偏差越小&/b&,但同时拟合的开销也越大。一般地,需要保证足够的树深度,但也不宜过大。&/p&&p&&br&&/p&&p&&br&&/p&&h2&RF与传统bagging的区别&/h2&&p&&br&&/p&&p&(1)&b&样本采样&/b&:RF&b&有放回&/b&选取和整体样本数目相同的样本,一般bagging用的样本&总体样本数&br&(2)&b&特征采样&/b&:RF对特征进行采样,BAGGING用全部特征&/p&&p&&br&&/p&&p&&br&&/p&&h2&RF的优点&/h2&&p&&br&&/p&&p&(1)在数据集上表现良好,在当先很多数据集上要&b&优于现有的很多算法&/b&&br&(2)可以&b&并行&/b&,且&b&不是对所有属性&/b&进行训练,训练速度相对较快&br&(3)防止过拟合&br&(4)能够处理高维特征,且不用做特征选择,可以给出&b&特征重要性的评分&/b&,训练过程中,可以检测到feature的相互影响&/p&&p&&br&&/p&&p&&br&&/p&&h2&缺点&/h2&&p&&br&&/p&&p&①树越多,随机森林的表现才会越稳定。所以在实际使用随机森林的时候需要注意如果树不够多的时候,可能会导致不稳定的情况。&/p&&p&&br&&/p&&p&②不平衡数据集。分类结果会倾向于样本多的类别,所以训练样本中各类别的数据必须相同。Breiman在实际实现该算法的时候有考虑到了这个问题,采取了根据样本类别比例对决策树的判断赋予不同权值的方法&/p&&p&&br&&/p&&p&&br&&/p&&h2&RF的学习算法&/h2&&p&&br&&/p&&p&ID3:离散&br&C4.5:连续&br&CART:离散或连续&/p&&p&&br&&/p&&p&&br&&/p&&h2&GBDT&/h2&&p&&br&&/p&&p&&br&&/p&&h2&基本概念&/h2&&p&&br&&/p&&p&GBDT(梯度迭代决策树)是一种基于&b&决策回归树的Boosting&/b&模型,其核心思想是将提升过程建立在对“&b&之前残差的负梯度表示&/b&”的回归拟合上,通过不断的迭代实现降低偏差的目的。&/p&&p&&br&&/p&&p&GBDT设置大量基学习器的目的是为了集成来&b&降低偏差&/b&,所以 n_estimators (基决策器的个数)一般会设置得大一些。&/p&&p&&br&&/p&&p&对于GBDT模型来说,其每个基学习器是一个弱学习器(欠拟合),&b&决策树的深度一般设置得比较小,以此来降低方差&/b&(模型复杂度低),之后在经过残差逼近迭代来降低偏差,从而形成强学习器。&/p&&p&&br&&/p&&p&&br&&/p&&h2&GBDT与传统Boosting(AdaBoost)的区别&/h2&&p&&br&&/p&&p&Boosting算法,但与传统boosting有区别、&b&拟合上一步的残差&/b&,传统意义上说不能并行,只能用CART回归树,降低偏差&/p&&p&&br&&/p&&p&迭代思路不同:传统boosting对训练样本进行加权,GBDT则是&b&拟合残差&/b&,下一棵树沿残差梯度下降的方向进行拟合&/p&&p&&br&&/p&&p&&br&&/p&&h2&GBDT正则化的方式&/h2&&p&&br&&/p&&p&(1)同AdaBoost,通过步长&br&(2)CART树的剪枝&br&(3)子抽样,&b&不放回&/b&,SGBT,可以实现一定程度上的并行&/p&&p&&br&&/p&&p&&br&&/p&&h2&GBDT的优缺点&/h2&&p&&br&&/p&&p&优点:(1)调参少的情况下,&b&准确率也高&/b&(SVM)&br&(2)灵活处理各种数据,包括连续和离散,无需归一化处理(LR)&br&(3)模型非线性变换多,特征不用经过复杂处理即&b&可表达复杂信息&/b&&br&(4)从一定程度上可以防止过拟合,小步而非大步拟合&br&缺点:(1)一般来说传统的GBDT只能串行,但是也可以通过子采样比例(0.5~0.8)实现某种意义上的并行,但一般这就不叫GBDT了。&br&(2)&b&对异常值敏感&/b&,但是可以采取一些健壮的损失函数缓解,如Huber./Quantile损失函数&/p&&p&&br&&/p&&p&&br&&/p&&h2&GBDT预测时每一棵树是否能并行?&/h2&&p&&br&&/p&&p&可以,训练需串行,&b&预测可并行&/b&&/p&&p&&br&&/p&&p&&br&&/p&&h2&GBDT和RF的区别与联系&/h2&&p&&br&&/p&&p&联系:多棵树进行训练+多棵树共同进行预测&br&区别:(1)取样方式&br&(2)预测时,RF多数投票,GBDT加权累加&br&(3)样本的关系—&并行和串行&br&(4)学期器的种类,&b&GBDT只能用CART回归树&/b& (因为要计算连续梯度)&br&(5)对异常值的敏感性&br&(6)通过减少方差/偏差提高性能&/p&&p&&br&&/p&&p&&br&&/p&&h2&XGBOOST相比于GBDT有何不同?XGBOOST为什么快?XGBOOST如何支持并行?&/h2&&p&&br&&/p&&p&(1)GBDT只能用CART回归树,而XGBOOST可以用CART树(回归/分类),还可以用用想LR之类的线性模型,相当于加入L1、L2正则项的LR或线性回归&br&(2)列抽样,可以并行,不是树粒度上的,是特征粒度上的,block块,并行计算所有信息增益等信息&br&(3)可处理多种特征,且对缺失值也不用进行处理&br&(4)GBDT在&b&残差梯度下降方向拟合,一阶导;XGBOOST泰勒展开至二阶导&/b&&br&(5)近似直方图算法,高效生产候选分割点&br&(6)shrink,缩减,叶子节点同时乘,防止过拟合&br&(7)可以自己定义评价函数&br&(8)代价函数含正则化项,防止过拟合&/p&&p&&br&&/p&&p&&br&&/p&&h2&ababoost&/h2&&p&&br&&/p&&p&daBoost的优缺点&br&优点:(1)容易理解、实现简单&br&(2)易编码&br&(3)分类精度高&br&(4)可以使用各种回归模型构建基分类器,非常灵活&br&(5)作为二元分类器是,构造简单、结果可理解、少参数&br&(6)相对来说,不宜过拟合&br&缺点:(1)只能&b&串行&/b&&br&(2)对&b&异常值敏感&/b& boosting对异常值敏感&/p&&p&&br&&/p&&p&&br&&/p&&h2&集成学习与方差偏差&/h2&&p&&br&&/p&&p&我觉得,避免偏差的话,首先我们需要尽量选择正确的模型,所谓“对症下药”。我觉得有位同行把机器学习算法的使用比作医生开药方,是非常不错的比喻。我们要根据数据的分布和特点,选择合适的算法。&/p&&p&&br&&/p&&p&其次,有了合适的算法,我们还要慎重选择数据集的大小。通常训练数据集越大越好,但是当大到数据集已经对整体所有数据有了一定的代表性之后,再多的数据已经不能提升模型的准确性,反而带来模型训练的计算量增加。但是,训练数据太少的话是一定不好的,这会带来过拟合的问题,过拟合就是模型复杂度太高,方差很大,不同的数据集训练出来的模型变化非常大&/p&&p&&br&&/p&&p&&br&&/p&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-84f75eeb33caa9aba13e_b.jpg& data-rawwidth=&433& data-rawheight=&338& class=&origin_image zh-lightbox-thumb& width=&433& data-original=&https://pic1.zhimg.com/v2-84f75eeb33caa9aba13e_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&偏差与方差&/p&&p&&br&&/p&&p&&br&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//blog.csdn.net/xmu_jupiter/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&从集成学习到模型的偏差和方差的理解&/a&&/p&&p&&br&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//www.cnblogs.com/jasonfreak/p/5657196.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&使用sklearn进行集成学习——理论&/a&&/p&&p&&br&&/p&&p&&a href=&https://link.zhihu.com/?target=http%3A//blog.csdn.net/yangxudong/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&GBDT算法特征重要程度计算&/a&&/p&&p&&br&&/p&&p&&a href=&https://www.zhihu.com/question/& class=&internal&&机器学习中,有哪些特征选择的工程方法?&/a&&/p&&p&&br&&/p&&p&&br&&/p&&h2&为什么说bagging是减少variance,而boosting是减少bias?&/h2&&p&&br&&/p&&p&&b&从机制上讲&/b& &a href=&https://www.zhihu.com/question/& class=&internal&&为什么说bagging是减少variance,而boosting是减少bias&/a&&/p

我要回帖

更多关于 牛客网刷题指南 的文章

 

随机推荐