knn实战:如何对手写数字进行识别?

在 Python 的 sklearn 工具包中有 KNN 算法。KNN 既可以做分类器,也可以做回归。

如果是做分类,你需要引用:

from sklearn.neighbors import KNeighborsClassifier

如果是做回归,你需要引用:

from sklearn.neighbors import KNeighborsRegressor

 

 

如何在 sklearn 中创建 KNN 分类器:

我们使用构造函数 KNeighborsClassifier(n_neighbors=5, weights=‘uniform’,algorithm=‘auto’, leaf_size=30),这里有几个比较主要的参数:

 

n_neighbors

即 KNN 中的 K 值,代表的是邻居的数量。

k小过拟合,k大欠拟合;一般默认使用5

weights

weights=uniform

 

代表所有邻居的权重相同

weights=distance

 

代表权重是距离的倒数,即与距离成反比
自定义函数 你可以自定义不同距离所对应的权重。

algorithm

 

algorithm=auto

 

根据数据的情况自动选择适合的算法,默认情况选择 auto

algorithm=kd_tree

 

也叫作 KD 树,是多维空间的数据结构,方便对关键数据进行检索;不过 KD 树适用于维度少的情况,一般维数不超过 20,如果维数大于 20 之后,效率反而会下降;

algorithm=ball_tree

 

 

也叫作球树,它和 KD 树一样都是多维空间的数据结果,不同于 KD 树,球树更适用于维度大的情况;

algorithm=brute

 

也叫作暴力搜索,它和 KD 树不同的地方是在于采用的是线性扫描࿰
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值