美文网首页
Perceptron & KNN(面试准备)

Perceptron & KNN(面试准备)

作者: 单调不减 | 来源:发表于2020-02-28 22:04 被阅读0次

    1、简述感知机模型并证明其收敛性

    感知机是二分类的线性分类模型,感知机对应于特征空间中将实例划分为正负两类的分离超平面,属于判别模型

    感知机模型如下:

    f(x)=sign(w\cdot x + b)

    其损失函数为误分类的样本到超平面的几何距离之和(去掉系数\frac{1}{||w||}):

    L(w,b)=-\sum_{x_i\in M}y_i(w_i\cdot x_i+b)

    从而损失函数的梯度为:

    \bigtriangledown_w L(w,b)=-\sum_{x_i\in M}y_i x_i

    \bigtriangledown_b L(w,b)=-\sum_{x_i\in M}y_i

    随机选择一个误分类点(x_i,y_i),对w,b进行更新,就得到感知机学习算法:

    w\gets w+\eta y_i x_i

    b\gets b+\eta y_i

    每次找一个误分类点作上述操作,直至找到一个超平面将所有点正确分类(若样本点线性可分)。

    其收敛性的证明也很简单,思路就是设有一个w_{opt}(含b),使得分类结果全部正确,则我们的模型可以不断调整w_k方向并在有限步使得w_kw_{opt}同向(证明见here)。

    2、简要介绍 KNN 算法

    1. KNN 是一种基本的分类与回归方法。
    • 分类问题:对新的样本,根据其K个最近邻的训练样本的类别,通过多数表决等方式进行预测

    • 回归问题:对新的样本,根据其K个最近邻的训练样本标签值的均值作为预测值

    1. 近邻法不具有显式的学习过程,而是直接预测。它是 lazy learning 的著名代表。

    2. 近邻法是非参数学习算法,它没有任何参数(K是超参数,而不是需要学习的参数)

    3、KNN 算法的优点缺点

    KNN的主要优点有:

    1. 理论成熟,思想简单,既可以用来做分类也可以用来做回归

    2. 可用于非线性分类

    3. 训练时间复杂度比支持向量机之类的算法低,仅为O(n)

    4. 对数据没有假设,准确度高,对异常点不敏感

    KNN的主要缺点有:

    1. 计算量大,尤其是特征数非常多的时候

    2. 样本不平衡的时候,对稀有类别的预测准确率低

    3. KD树,球树之类的模型建立需要大量的内存

    4. 使用懒散学习方法,基本上不学习,导致预测时速度比起逻辑回归之类的算法慢

    5. 相比决策树等模型,KNN 模型可解释性不强,无法说明各特征对分类的重要性

    4、KNN 中的 K 值如何选取

    K值的选择没有经验性的方法,一般只能通过交叉验证来选取合适的k值。

    如果K值选择较小,就相当于用较小的邻域中的训练实例进行预测,“学习”的近似误差会减小,只有与输入实例较近的训练实例才会对预测起作用,但估计误差会增大,预测结果会对近邻的实例点非常敏感,如果近邻的实例点恰巧是噪声,预测就会出错。相反如果K值选择较大,就相当于用较大的领域中的训练实例进行预测,近似误差会增大,但估计误差会减小。

    对于K近邻法来说,K越大模型越简单,这一点乍一看不容易理解,但其实我们可以考虑极端情况K=NN为样本数),此时任何新样本都会被归入当前样本集中实例最多的类别,从而丢失大量信息。反之,K越小模型越复杂,模型将面临过拟合风险。

    5、KNN 中如何快速找到 K 个距离样本最近的点

    解决办法是:使用 KD 树来提高 KNN 搜索的效率。

    KD 树是一种对K维空间中的样本点进行存储以便对其进行快速检索的树型数据结构。它是二叉树,表示对K维空间的一个划分。构造 KD 树的过程相当于不断的用垂直于坐标轴的超平面将K维空间切分的过程。树的每个结点对应于一个K维的超矩形区域。

    用 KD 树进行最近邻搜索的时候,首先在 KD 树中找到包含目标节点的叶结点,以此叶结点为“当前最近点”,然后递归地向上回退,若该结点保存的实例点比当前最近点距离目标更近,则以该点为“当前最近点”。检查该子结点的父节点的另一个子结点对应的区域是否有更近的点,即检查另一子结点对应的区域是否与以目标节点为球心,以目标点到“当前最近点”的距离为半径的超球体相交。若相交,可能在另一个子结点对应区域中存在距离目标更近的点,移动到另一个子结点,继续递归地进行搜索。若不相交,向上回退。当回退到根结点,搜索结束,此时的“当前最近点”即为最近邻点。K 近邻的搜索与之类似。

    KD 树搜索的平均计算复杂度为\log NN为训练集大小。KD 树适合样本数远大于特征数的情形。

    相关文章

      网友评论

          本文标题:Perceptron & KNN(面试准备)

          本文链接:https://www.haomeiwen.com/subject/qswrhhtx.html