
算法面试
一个小迷糊66
不念过去不畏将来
展开
-
通俗理解偏差和方差、过拟合、正则化
1.解释一下偏差和方差?在统计学中,偏差和方差是用来衡量模型的好坏的。偏差是指模型的预测值的期望和真实值之间的差距。偏差越大,预测值越偏离真实数据。方差是指预测值的分布范围。方差越大,分布越分散。2.为什么会出现过拟合的现象?过拟合是指模型在训练集上达到了非常高甚至是100%的准确率,但是在测试集上的结果确很糟糕。一般造成的原因是模型相对于训练数据来说过于复杂,学到了不该学的一些东西。...原创 2019-07-13 12:12:55 · 623 阅读 · 0 评论 -
SVM的复杂度为什么高?如何解决?
没有查到对这个问题的很完善的答案,都是些零零碎碎的,尝试总结一下。复杂度高的原因:1.SVM参数优化方法是先转为对偶问题再使用SMO算法,最坏情况下要计算n*n次,并不适合在大规模数据集上做分类。2.svm使用核技巧时,如RBF,特征会升高至无限维,计算量也很大。补充:LR较为简单,可以适用于大规模线性分类。SVM可以有效解决高维特征的分类和回归问题。SVM对小样本的寻优能力是非常好的...原创 2019-07-13 23:05:20 · 2303 阅读 · 0 评论 -
k-means算法?k值如何选择?k-means++?
K-means经典算法:从数据集中随机选择K个样本作为初始聚类中心C = {c1_11, c2_22, …, ck_kk}。对于数据集中的每个样本xi_ii,计算其到每个聚类中心的距离,并将其分配给距离最小的聚类中心所对应的类中。重新计算每个类的聚类中心,重复2、3步直到聚类中心的位置不再变化k值如何决定:肘部法则(elbow method)绘制代价函数和k值的关系图,...原创 2019-07-22 12:01:47 · 1207 阅读 · 0 评论 -
导数,微分,梯度的简单理解
什么是导数?导数(Derivative),是微积分中的重要基础概念,当函数y=f(x)的自变量x在一点x0上产生一个增量Δx时,函数输出值的增量Δy与自变量增量Δx的比值在Δx趋于0时的极限。几何意义:导数描述了一个函数在某一点附近的变化率。当自变量和取值都是实数时为切线斜率函数可导的充要条件:左导数和右导数都存在并且相等。什么是偏导数?一个多变量函数的偏导数,就是其关于其中一个变量的导...原创 2019-07-23 09:45:39 · 4019 阅读 · 0 评论 -
PR曲线和ROC曲线
ROC曲线和PR曲线均为类别不平衡问题中常用的评估方法。ROC曲线纵坐标是真阳性率(TPR),也就是召回率,横坐标是假阳性率。 TPR = TP/(TP+FN),FPR=FP/(FP+TN),可以看到TPR是关于正例的,来多少正例正确识别的比例,FPR是所有负例中去判断的。所以当正负样本变化时,曲线不会发生太大的变化。1.上文提到ROC曲线的优点是不会随着类别分布的改变而改变,但这在某种程度上...原创 2019-08-10 17:31:04 · 628 阅读 · 0 评论 -
BN层
BN层具体是怎么操作的?比如某层的特征维度是[m,f,p,q],分别是batch_num:m,维度: f,特征尺寸p,q。CNN中可把每个特征图看成是一个特征处理(神经元),因此在使用BN的时候,Mini-batch size的大小就是mpq,对于每一个特征图只有一对科学系的参数。说白了,就是相当于求所有样本(batch_num:m个)所对应的的一个特征图的所有神经元的平均值和方差,然后对这一个...原创 2019-08-13 11:25:39 · 6244 阅读 · 0 评论 -
为什么梯度提升方法倾向于选择决策树(通常是CART树)作为基学习器呢
基于梯度提升算法的学习器叫做GBM(Gradient Boosting Machine)。理论上,GBM可以选择各种不同的学习算法作为基学习器。现实中,用得最多的基学习器是决策树。为什么梯度提升方法倾向于选择决策树(通常是CART树)作为基学习器呢?这与决策树算法自身的优点有很大的关系。决策树可以认为是if-then规则的集合,易于理解,可解释性强,预测速度快。同时,决策树算法相比于其他的算法需要...转载 2019-08-22 09:55:03 · 1142 阅读 · 0 评论