1、自我介绍
2、你的方向是电磁为什么要报这个岗位呢
3、说一下这个比赛(2016编程之美挑战赛),你主要是负责什么的
4、写一个题吧,给你一个字符串为ip地址,例如“192.0.0.1”,把它转换成一个32位的整数。 一开始没有理解题意,以为是要将四个ip地址的数字拼起来,就问面试官这个整数可能有12个位数,是不是要用longlong存,面试官解释是将每一个数字存成八位,于是开始写
#include
using namespace std;
unsigned int Trans(string s) { unsigned int res = 0, temp = 0;
for(int i = 0;
i < s.size();
i++) { if(s[i] <= '9' && s[i] >= '0') { temp = temp * 10 + s[i] - '0';
} else { res <<= 8;
res |= temp;
temp = 0;
} } res <<= 8;
res |= temp;
return res;
}
int main(void) { string s;
cin >> s;
if(s == NULL || s.size() == 0) { cout << -1 <
5、你都比较了解哪些机器学习的模型呢
比赛用过随机森林,SVM也比较了解。 那你说一下随机森林的随机都体现在什么地方呢?
主要体现在样本的抽取和建立决策树的特征选择方面,对于N个样本,M个特征,对于每一棵决策树在取样本的时候是从N个样本中有放回的取出n个来建树,同时建树的特征也是从M个特征中随机选取m个作为这棵决策树的特征,因此就避免了过拟合,体现了随机性。
那随机森林和GBDT有什么区别呢? GBDT中每一棵树都是以上一棵树的残差作为目标值建树的,而随机森立每棵树都是相对独立的
未能答全面 随机森林既可以是分类树也可是回归树,但GBDT只能是回归树 随机森林由于树与树之间相对独立,因此可以并行生成,GBDT只有在上一棵树建立完成后才能进行下一棵树的建立 随机森林对异常值不敏感,GBDT反之 GBDT是基于权值的弱分类器的集成 随机森林是通过减少模型方差提高性能,GBDT是通过减少模型偏差提高性能
那说一下随机森林和GBDT误差函数的区别(记不太清问题了)
没答上来,待补充……
6、你知道逻辑回归么?写一下表达式 P(y = 1) = 1 / (1 + exp(theta * x)) P(y = 0) =1 - P(y = 1) P(y) = P(y = 1) ^ y * (1 - P(y = 1)) ^ (1 - y)
它的图是怎样的?
画了图。。。
那逻辑回归怎么对特征进行离散化,或者你都了解哪些离散化特征的方法呢?为什么?
概念不太清晰,之前看过但是问到的时候一时想不起来
连续性变量转化成离散型变量大致有两类方法: (1)卡方检验方法; (2)信息增益方法;
一: 卡方检验方法 1.1 分裂方法 1.2 合并方法 分裂方法,就是找到一个分裂点看,左右2个区间,在目标值上分布是否有显著差异,有显著差异就分裂,否则就忽略。这个点可以每次找差异最大的点。合并类似,先划分如果很小单元区间,按顺序合并在目标值上分布不显著的相邻区间,直到收敛。
二:信息增益方法 【腾讯基础研究一面面经】
2.1 分裂方法 2.2 合并方法 这个和决策树的学习很类似。分裂方法,就是找到一个分裂点看,左右2个区间,看分裂前后信息增益变化阈值,如果差值超过阈值(正值,分列前-分裂后信息熵),则分裂。每次找差值最大的点做分裂点,直到收敛。合并类似,先划分如果很小单元区间,按顺序合并信息增益小于阈值的相邻区间,直到收敛。
特征组合是什么?
没答上来
7、你都知道哪些聚类的方法?
k-means,层次聚类(问还有没有别的,实在是不太清楚了)
1.k-mean聚类分析 适用于样本聚类; 2.分层聚类 适用于对变量聚类; 3.两步聚类 适用于分类变量和连续变量聚类; 4.基于密度的聚类算法; 5.基于网络的聚类; 6.机器学习中的聚类算法;
k-means 在使用的时候,选的点的不同可能影响结果,问怎么选点?
没答上来
8、KNN的距离都有哪些,最常用的是什么?
有欧式距离、曼哈顿距离,欧氏距离较常用(答的不对,面试官反问了一下,还有别的答案)
推荐阅读
- linux|虚拟内存是什么(有什么用?)
- 2019奇虎360春招提前批面经——系统部——大数据开发工程师
- 2020腾讯产培群面复盘
- 面经|腾讯基础研究实习面经
- 面试系列(九)(商汤科技 深度学习平台C++研发)
- 腾讯一面面经(PCG)
- 腾讯2019春招提前批一面凉经——应用研究
- 面试|【2020春招】英国硕士历时三个月的Android开发岗春招总结贴(拿到双Offer)