最近在看 Hands-on Machine Learning with Scikit-Learn and TensorFlow 这本书,碰巧又要面试新人,于是便从此书中挖掘了一些问题,在此记录下
决策树
1.Cart树中子节点的Gini impurity是不是一直小于父节点,为什么?
不是,举个例子,有样本5个,类别顺序是, A B A A A
此时基Gini impurity为0.32,这时候生成子节点,可以得到 AB 和 AAA
此时AB子节点的Gini impurity就是大于父节点的吗,不过整体看,子节点还是要父节点的
2.决策树模型underfits 时进行特征缩放是否有用
从决策树的分裂逻辑上可以直观地感受到feature scaling没啥用
3.决策树训练的时间复杂度是多少
nmlog(m),其中m为样本数,n为特征数。
理解这个比较简单,nmlog(m) = nm * log(m)
这里边log(m)就是树高度,每一层的时间复杂度是nm,所以整体就位nmlog(m)
linear model
1.Feature Scaling的作用
线性模型中feature scaling将各维度特征统一,能提升学习速度,这个在网上可以搜到相关解释,二维特征中圆形往中心逼近的快,而椭圆会比较慢
2.梯度下降训练逻辑回归是否会陷入局部最小
逻辑回归中使用的link function是sigmod函数,最后推到出来的loss function是凸函数所以最终会优化到全局最小
SVM
1.什么是支持向量
svm中边界的点就是支持向量
2.数百万数据,数百万个特征的情况是该使用dual还是primal方式去训练,为什么?
不能使用对偶形式训练,对偶形式的计算复杂度在m的二次方和三次方之间,其中m指的是数据量。