• 机器学习面试知识点总结(不断补充中)


    http://www.cnblogs.com/zuochongyan/p/5407053.html

    https://www.analyticsvidhya.com/blog/2016/09/40-interview-questions-asked-at-startups-in-machine-learning-data-science/?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more


     https://www.nowcoder.com/discuss/33958?type=0&order=0&pos=21&page=0

    逻辑回归的损失函数以及更新方式推导:二项分布得到概率表示,由极大似然估计,推导出损失函数;更新方式即求梯度,注意sigmoid函数的求导即可。

    牛顿法、随机梯度下降算法的区别:牛顿法基于损失函数的二阶泰勒展开,二阶精度,从几何的角度来看,相当于用二次曲面去拟合当前所处位置的局部曲面,通过求二次曲面的极小值来求原损失函数的极小值,由于牛顿法不仅考虑当前的坡度是否足够大,还会考虑你走了一步之后,坡度是否会变得更大,梯度下降法每次只从你当前所处位置选一个坡度最大的方向走一步,所以需要的迭代次数比梯度下降少;梯度下降法基于损失函数的一阶泰勒展开,一阶精度,从几何的角度来看,相当于用平面去拟合当前的局部曲面,显然二次曲面的拟合会比平面更好,牛顿法选择的下降路径更符合真实的最优下降路径。

    bagging、adaboost、boosting:bagging是随机采样,bootstrap是有放回随机采样,原样本集合大小为n,则有放回随机采样n次,获取一个新的数据集;boost算法是学习一系列弱分类器,通过线性组合,得到一个强分类器,常见的boosting算法包括adaboost和gbdt,adaboost是通过改变样本的权值分布,学习多个弱分类器,同时提高错误率低的弱分类器的权重,降低错误率高的弱分类器的权重,进行线性组合。adaboost算法本质是前向分布算法+指数损失函数,gbdt可以看作是前向分布算法在一些较难优化损失函数时的一种近似的优化,没有样本权重的概念,用损失函数的负梯度在当前模型处的值作为残差的近似,每轮训练都是拟合上一轮的残差。

    推导EM:由对数极大似然函数出发,推导出似然函数的下界,进而得到Q函数,通过求解下界的极大化逼近求解似然函数的极大化,EM算法不能保证找到全局最优解。

    推导GMM:隐变量为$gamma_{j,k}$ ,表示第j个样本来自第k个模型,然后得到Q函数,对Q函数求偏导得到参数的递推公式

    SVM核函数如何实现升维:多项式内核? 高斯内核

    损失函数类型:mse、mae、log、exp、hinge-loss

    线性回归损失函数(最小二乘)的理论依据:预测误差项独立同分布于均值为0的正态分布的假设

    牛顿法推导:损失函数二阶泰勒展开,然后最小点对应的坐标由$-b / (2 * a) $得到

    决策树处理连续值的方法:

    特征选择的方法:单变量特征选择(选定一个指标来评估特征,filter方法,一般用于特征预处理和初选,包括相关系数、互信息、信息增益等)、wrapper方法(直接把最终将要使用的学习器的性能作为特征子集的评价标准)、基于模型选择特征(Embedded方法):决策树相关模型可以输出特征的重要性,在模型训练过程中完成特征的选择

    过拟合的解决方法:1)重新清洗数据,导致过拟合的一个原因可能是数据不纯导致的;  2)增加训练集大小  3)正则(L1,L2) 4)dropout

    欠拟合的解决办法:1)增加特征(基础特征、组合特征) ;   2)减少正则化参数

    kmeans缺点:1、需先确定k的个数 2、对噪声和离群点敏感 3、结果不一定是全局最优,只能保证局部最优 4、结果不稳定 (受输入顺序影响)

    svm 为啥要用拉格朗日对偶算法来解最大化间隔问题

    并不一定要用拉格朗日对偶。要注意用拉格朗日对偶并没有改变最优解,而是改变了算法复杂度:在原问题下,求解算法的复杂度与样本维度(等于权值w的维度)有关;而在对偶问题下,求解算法的复杂度与样本数量(等于拉格朗日算子a的数量)有关。

    因此,如果你是做线性分类,且样本维度低于样本数量的话,在原问题下求解就好了,Liblinear之类的线性SVM默认都是这样做的;但如果你是做非线性分类,那就会涉及到升维(比如使用高斯核做核函数,其实是将样本升到无穷维),升维后的样本维度往往会远大于样本数量,此时显然在对偶问题下求解会更好。

    海量数据计算相似度:http://www.lanceyan.com/tech/arch/simhash_hamming_distance_similarity.html

    L1与L2正则的区别:前者能产生稀疏解,后者不能。具体原因见深度学习一书

    隐马尔科夫模型hmm的状态转移代码:

    CNN DNN RNN的区别

    对LSTM的理解

    为什么要用CNN,AlexNet做了哪些方面的工作

    深度学习调参

    梯度弥散和梯度爆炸

    k近邻算法k的选择对结果的影响

    如果K值过小,相当于只有与输入实例较近(相似)的样本会对预测结果产生影响,这样带来的不足之处是预测结果会对近邻的样本点非常敏感,如果邻近的样本点恰好是噪声点,那么预测结果就会出错。换句话说,K值的减小意味着模型变得复杂,容易发生过拟合 ;相反,如果K值过大,那么预测结果取决于输入实例较大邻域内的样本点,这样带来的不足之处是预测结果可能受到较远(不太相似)的样本点的干扰,从而使得预测结果不准确。换句话说,K值增大意味着模型变得简单,极端情况下,K=N,那么无论输入实例是什么,都将简单地预测它属于训练实例中出现最多的类,这时,模型过于简单,完全忽略了训练集中有用的信息,所以该方案是不可取的。 通常,K值一般取一个较小的数值,然后使用交叉验证法来选取最优的K值。k值变小,偏差减小,方差变大,k值变大,偏差增加,方差减小。

    SVM优缺点:http://blog.sina.com.cn/s/blog_6d979ba00100oel2.html

    随机森林优缺点:http://blog.csdn.net/keepreder/article/details/47273297

    决策树算法中如何处理缺失值: https://www.zhihu.com/question/34867991 

    弱分类器组合成强分类器的理论证明:见周志华西瓜书上的证明

    最大熵推导LR:http://www.win-vector.com/dfiles/LogisticRegressionMaxEnt.pdf

    两道概率题:

    https://www.zhihu.com/question/29683794

    https://www.zhihu.com/question/35950050

  • 相关阅读:
    C#中Split用法
    ASP.NET Get和Post两种提交的区别:
    BAT常用命令
    SQL语句:在两个数据库间复制表结构和数据数据库
    C#中Array与ArrayList用法及转换
    找出输入区间内的回文质数
    (转)加藤嘉一:中国大学生,你没资格抱怨政府
    最长公共子序列(LCS)
    shell(希尔)排序
    关于Ubuntu中google chrome浏览器字体的设置
  • 原文地址:https://www.cnblogs.com/ljygoodgoodstudydaydayup/p/7117156.html
Copyright © 2020-2023  润新知