机器学习 您所在的位置:网站首页 knn在什么情况下效果最好 机器学习

机器学习

2024-06-26 23:43| 来源: 网络整理| 查看: 265

目录 k邻近(KNN)基础算法实例优缺点代码实现 支持向量机(SVM)基础算法对偶问题松弛变量核函数代码实现 朴素贝叶斯算法基本算法优点代码实现 过拟合(Over fitting)以及欠拟合(Under fitting)集成学习方差和偏差模型的偏差和方差是什么?bagging的偏差和方差boosting的偏差和方差模型的独立性 算法对比参考文献

k邻近(KNN) 基础算法

KNN是通过测量不同特征值之间的距离进行分类。它的的思路是: 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样 本中的大多数属于某一个类别,则该样本也属于这个类别。K通常 是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分 类的对象。该方法在定类决策上只依据最邻近的一个或者几个样本 的类别来决定待分样本所属的类别。

适用于稀有事件的分类问题

实例

在这里插入图片描述

如图,绿色圆要被决定赋予哪个类,是红色三角形还是蓝色四方形?如果K=3,由于红色三角形所占比例为2/3,绿色圆将被赋予红色三角形那个类,如果K=5,由于蓝色四方形比例为3/5,因此绿色圆被赋予蓝色四方形类。

优缺点 优点:简单,易于理解,易于实现,无需估计参数,无需训练适合对稀有事件进行分类特别适合于多分类问题(multi-modal,对象具有多个类别标签),例如根据基因特征来判断其功能分类,kNN比SVM的表现要好。缺点:懒惰算法,对测试样本分类时的计算量大,内存开销大,评分慢可解释性较差,无法给出累决策树的规则。 代码实现 from sklearn.neighbors import KNeighborsClassifier #定义随KNN分类器 参数N为邻居数目 knn = KNeighborsClassifier(n_neighbors=10) #训练过程 X为特征向量,y为标签数据/向量 knn.fit(X, y) 支持向量机(SVM) 基础算法

给定训练样本集 D { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } , y ∈ { − 1 , + 1 } D\{(x_1,y_1),(x_2,y_2),\dotsc,(x_m,y_m)\},y\in\{-1,+1\} D{(x1​,y1​),(x2​,y2​),…,(xm​,ym​)},y∈{−1,+1},SVM的基本思想就是基于训练集合 D D D在样本空间中找到一个划分超平面,将不同的类别样本分开。理论上会存在无数个超平面存在,如下图所示。

在这里插入图片描述

由于训练集中存在局限性或噪声的因素,训练集外的样本(例如测试集)可能比图中的训练样本更接近两个分类的分割界,通过肉眼观察图中较粗的线受到的影响最小,即具有鲁棒性,泛化能力强。

在样本空间中,划分超平面可以按照如下方程进行描述: w T x + b = 0 w^Tx+b=0 wTx+b=0 其中 w = ( w 1 ; w 2 ; …   ; w d ) w=(w_1;w_2;\dotsc;w_d) w=(w1​;w2​;…;wd​)为法向量,决定了超平面的方向; b b b为位移项,决定了超平面与原点之间的距离。因此可以用 ( w , b ) (w,b) (w,b)来描述一个超平面。样本空间中任意点 x x x到超平面 ( w , b ) (w,b) (w,b)的距离可以写为: r = ∣ w T x + b ∣ ∥ w ∥ r= \frac{\left|w^Tx+b \right|}{\left \| w \right \|} r=∥w∥∣∣​wTx+b∣∣​​ 假设超平面 ( w , b ) (w,b) (w,b)可以将训练样本正确分类,即对于 ( x i , y i ) ∈ D (x_i,y_i)\in D (xi​,yi​)∈D,若 y i = + 1 y_i=+1 yi​=+1,则有 w T x + b > 0 w^Tx+b>0 wTx+b>0;若 y i = − 1 y_i=-1 yi​=−1,则有 w T x + b < 0 w^Tx+b



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有