铺垫
时间:9.2日中午1点钟
地点:西工大翱翔会议中心(一开始去成翱翔训练馆了= =,绕着西工大走了一大圈)
形式:现场面试,如果顺利的话,会有2-3轮技术面试,1轮HR面试,HR小哥哥不错。
面试体验:去之前看牛客上有吐槽面试体验的,我觉得还行吧,流程规范,就是一面面试官感觉也是个憨憨,我写了代码他觉得不对,然后我俩一起手动模拟 = = ,他终于相信我了!
然后二面面试馆太牛了,全面diss我,我有点难受,最后直接把我送到门口,say byebye~
问题&答案
有些记不太清了,就随便记录一下
签到后30分钟写两道题,easy难度。
- 求数组中,topk个最大数。
import java.util.PriorityQueue;
class Solution {
public int findKthLargest(int[] nums, int k) {
PriorityQueue<Integer> pq = new PriorityQueue<Integer>();
for(int i=0;i<nums.length;i++){
if(pq.size()<k)
pq.add(nums[i]);
else if(nums[i]>pq.peek()){
pq.remove();
pq.add(nums[i]);
}
}
return pq.peek();
}
}
- 调整数组元素顺序,使奇数都在偶数左边。
package leetcoode;
public class OddEvenSort {
public static void main(String[] args) {
int[] arr = {1,4,3,3,5,4};
oddEvenSort(arr);
for(Integer i: arr)
System.out.println(i);
}
public static void oddEvenSort(int[] arr) {
int low = 0, high = arr.length-1;
while(low < high) {
while(low<high && arr[low]%2==1)
low++;
while (low<high && arr[high]%2==0)
high--;
swap(arr,low,high);
}
}
public static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
你说你在项目中使用了WOE和IV值进行特征评估,你们为什么非要用这个?还有其他的特征选择方法吗?filter中有哪几种,介绍一下?
- IV值和WOE的作用:IV值可以用来衡量自变量的预测能力,变量各分组的WOE和IV都隐含着这个分组对目标变量的预测能力这样的意义;
- 为什么使用IV而不用WOE:
- WOE有正有负值,IV的正负与WOE的正负是相同的,乘积保证是正值,否则直接将WOE值加起来会正负抵消掉。
- IV值前面的 ( p y i − p n i ) (p_{y_{i}}-p_{n_{i}}) (pyi−pni)其实反映出了该分组的有响应和无响应分别占总体的比例,也就是如果某个分组样本占总体数量比较低,那么对预测其实贡献也是比较低的,所以会给WOE基础上再打个折。
- 特征选择方法:
https://www.cnblogs.com/wzdLY/p/9689547.html- wrapper(根据目标函数,每次选择若干特征,活着排除若干特征)
递归特征消除法:使用基模型进行多轮训练,每轮训练结束后,消除若干权值系数的特征,再使用新的特征进行下一轮训练。 - embedded(先使用某些机器学习算法训练模型,得到各个特征的权值系数,再有大到小进行特征选择)
基于惩罚项的特征选择法
基于树的特征选择法 - filter(根据发散性活着相关性对各个特征进行评分,设定阈值或者特征个数,选择特征)
-
卡方检验(作为分类问题的分类变量的筛选方法)
-
互信息(作为分类问题的分类变量的筛选方法)
-
方差选择法(连续变量):计算每个特征的方差,根据阈值,选择方差大于阈值的特征进行训练;
-
相关系数(皮尔森相关系数)
-
- wrapper(根据目标函数,每次选择若干特征,活着排除若干特征)
LR的损失函数是什么?线性回归损失函数是什么?
- LR在估计参数的时候常用是极大似然估计,其损失函数是对数损失函数;
- 对数似然函数和交叉熵函数在二分类的情况下形式是几乎一样的;
- 注意⚠️:LR的损失函数是对数似然函数加负号;
- 线性回归的损失函数是平方损失函数;
- 为什么线性回归使用平方损失函数?是因为使用平方形式的时候,使用的是“最小二乘法”的思想,这里的“二乘”指的是用平方来度量观测点与估计点的距离(远近),“最小”指的是参数值要保证各个观测点与估计点的距离的平方和达到最小。
- 最小二乘法以估计值与观测值的平方和作为损失函数,在误差服从正态分布的前提下,与极大似然估计的思想在本质上是相同。(推导)
朴素贝叶斯公式是什么,前提条件是什么?
前提:朴素贝叶斯法假设条件概率分布是条件独立的。
然后指出我之前项目中,由于训练样本较少,又用的NB算法,效果肯定不会这么好(明里暗里质疑我项目的真实性,项目都上线了,有什么好争辩的)
word2vec介绍一下,其中投影矩阵是如何求得的?
总结
这次面试在面试问题之外,我还发现了以下几个问题:
- 面试官瞧不起专硕的,瞧不起没发文章的,瞧不起实验室不是做算法的(没错说的就是我)
- 尽可能多的给面试官展现自己的优势,自己实验室的优势,有时候实话实说未必是好事