第六章使用KNN算法实现分类与回归53课件讲解.pptxVIP

第六章使用KNN算法实现分类与回归53课件讲解.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

使用KNN算法实现分类与回归第六章

6.2KNN算法分类原理与实现

6.2k近邻算法分类原理3例如,图中有两类不同的样本数据D1和D2,D1用小正方形表示,D2用实心圆表示,小三角形表示新输入的未知类别样本。现在要对新样本进行分类,判断它属于D1还是D2。k近邻算法解决分类问题k近邻分类的过程:先主观设置k的值,假设k的值为5,然后通过距离计算找出与新样本距离最近的5个样本点,从图中可以看出,这5个近邻点中有4个属于D2类,1个属于D1类,从而可判定新样本属于D2类。k近邻算法解决分类问题的原理

6.2.1Sklearn中的k近邻模块4Sklearn的neighbors模块提供了KNeighborsClassifier和KNeighborsRegressor类,分别用于实现k近邻分类和回归算法。在Sklearn中,可通过下面语句导入k近邻算法模块。fromsklearn.neighborsimportKNeighborsClassifier #导入k近邻分类模块fromsklearn.neighborsimportKNeighborsRegressor #导入k近邻回归模块

6.2.1Sklearn中的k近邻模块5KNeighborsClassifier和KNeighborsRegressor类都有如下几个参数。(1)参数n_neighbors用来指定k近邻算法中的k值,该参数必须指定。(2)参数weights用于指定权重,其取值有uniform、distance与自定义函数3种:①uniform表示不管近邻点远近,权重值都一样,这是最普通的k近邻算法;②distance表示权重和距离成反比,即距离预测目标越近权重值越大;③自定义函数表示用户可以自定义一个函数,根据输入的坐标值返回对应的权重值。(3)参数algorithm用来设置k近邻模型使用的算法,其取值有brute、kd_tree、ball_tree与auto:①brute表示直接计算所有距离再排序;②kd_tree表示使用kd树实现k近邻算法;③ball_tree表示使用球树实现k近邻算法;④auto为默认参数,表示自动选择合适的方法构建模型。kd树算法点击此处播放微课

6.2.2k近邻算法分类应用举例6表4-2话剧社团比赛成绩数据集参赛学生y参赛学生y1193008626512304009737013394701075821440520117785154750012909516505501392901760601????【例4-1】某学校话剧社团要招收新人,发出招新通知后,报名的学生非常多。于是,话剧社团决定组织一场个人比赛,比赛分为两个项目——表演和台词。表演项目得分用表示,台词项目得分用表示,最终成绩如表4-2所示(表中y的取值,1表示能进入话剧社团,0表示不能进入话剧社团)。使用k近邻算法建立模型,判断最后一个学生(,)是否能够进入该话剧社团。

7(1)这是一个二分类问题,有两个特征变量,使用k近邻算法建立模型,需要先确定最优的k值。在Sklearn中,可以使用交叉验证法得到最佳的k值。【程序分析】6.2.2k近邻算法分类应用举例

8【参考代码】#导入需要的模块importmatplotlib.pyplotaspltimportnumpyasnpfromsklearn.neighborsimportKNeighborsClassifierfromsklearn.model_selectionimporttrain_test_splitfromsklearn.model_selectionimportcross_val_score #导入交叉验证模块#数据处理x=np.array([[19,30],[30,40],[39,47],[40,52],[47,50],[50,55],[60,60],[62,65],[73,70],[75,82],[77,85],[90,95],[92,90]])y=np.array([0,0,0,0,0,0,1,1,1,1,1,1,1])x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.3,random_state=0)#k取不同值的情况下,模型的预测误差率计算k_range=range(2,11) #设置k值的取值范围k_error=[] #保存

您可能关注的文档

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档