轻松玩转 Scikit

  • 时间:
  • 浏览:2
  • 来源:大发快3官方—UU快三



以上是利用scikit-learn中默认的k近邻模型来预测未知鸢尾花样本的种类(假装未知),大伙在实例化模型的过程中并未传入任何的超参数,则kNN模型会使用模型默认的超参数。



 ●  n_jobs=1 —— kNN算法支持cpu多核并行运算;n_jobs=1,默认使用三个白核,当n_jobs=-1时,使用所有的核 ●  n_neighbors=5 —— 表示k=5,即抽取未知样本符近最近的十个 点进行投票 ●  weights='uniform' —— 表示再利用最近的k个点投票时,大伙的权重是等价的,当weights='distance'时,表示三个白已知样本点距离未知点的距离越小,其投票时所占权重越大

还有许多许多的很糙要的超参数,在这里先暂不说明,以下用代码具体展示。



本文作者:蜉蝣扶幽

上图同時 也引申出KNN算法的三个白重要的超参数——k。举例来说,如果当k=10时,由图不能看出:红色五角星投了6票,深蓝色三角形投了4票,如果未知的样本应该属于红色五角星一类。如果,大伙不能看出超参数的选则会影响最终kNN模型的预测结果。下面用代码具体展示要怎样调用scikit-learn使用kNN,并调整超参数。

在上图包含三个白已知类别——红色五角星和深蓝色三角形和三个白未知样本——绿色方格。现在大伙要用KNN算法对绿色方格进行分类,以判定其属于这两类中的哪一类,首先令k=5,通过计算距离大伙不能知道距离绿色方格最近的十个 样本中(假设绿色方格占据 圆心),有三个白红色五角星,十个 深蓝色三角形。通过投票可知:深蓝色三角形得3票,红色五角星得2票,如果绿色方格应该属于深蓝色三角形。kNN只是以前工作的。

KNN是许多非参数机器学习算法(机器学习中通过模型训练而学到的是模型参数,而要人工调整的是超参数,请注意补救混淆)。使用KNN首很难有三个白已知的数据集D,数据集内对于任意三个白未知标签的样本数据x,不能通过计算x与D中所有样本点的距离,取出与x距离最近的前k个已知数据,用该k个已知数据的标签对x进行投票,哪一类票数最多,x只是哪一类,这是kNN的共要 思想,以下举个例子方便理解。



如果大伙为了便于可视化,仅使用了鸢尾花数据集中的三个白特性,许多由于 最终预测的准确率不太高,如果使用该数据集的全部特性来训练模型并预测未知样本,传入最佳超参数的kNN模型,亲测准确度可达60 %,当然这与鸢尾花数据集的高质量就有关系。运行以上代码并打印结果可得如上所示。

正方形该分到哪个类?

原文发布时间为:2018-11-21

类似于:

本文来自云栖社区公司合作 伙伴“小詹学Python”,了解相关信息不能关注“小詹学Python”。

这次大伙主要介绍scikit-learn中k近邻算法(以下简称为KNN)的使用。

以下用循环来搜索下关于n_neighbors、和p这三个白超参数的最优值。

scikit-learn 是最受欢迎的机器学习库之一,它提供了各种主流的机器学习算法的API接口供使用者调用,让使用者不能方便快捷的搭建许多机器学习模型,如果通过调参不能达到很高的准确率。