机器学习--Knn算法(球会滚到哪个框框?(1))

  1. python代码中导入numpy库。numpy库是python用来做科学计算的库
  2.  

    NumPy(Numerical Python)是高性能科学计算和数据分析的基础包,主要功能是对N维数组的操作和计算,其计算效率是Python原生包的N倍,在使用Python做数据分析过程中NumPy是我们必不可少的一个工具



    作者:loannes
    链接:https://www.jianshu.com/p/8e11f728287f
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  3. 其实python的原生多维数组也能用于很多机器学习算法。但是numpy中的多维数组操作起来更加方便,快捷
  4. 第一个机器学习算法的例子:

            有很多个入口,从左侧入口丢进一个球,会跑到右侧的球框里大概如下图

现在从154号口子扔进去个球,结果这个球滚到了1号球框里,从126号口子扔进去个球,结果这个球滚到了2号球框里 .......扔了6次表示成如下的伢子。

[154,1]

[126,2]

[70,2]

[196,2]

[161,2]

[371,4]

现在让我们猜一哈从200号洞口扔个球会滚到几号框内

思路是这样式儿的:前面6次扔球得到的结果我们叫它们数据集。第一列是洞口,第二列是框。我们把前6次实验洞口号和将要预测的洞口号做差。然后把6个差从小到大的排列。距离最小的应该是最具有参考价值的。200号洞口滚到几号框框最有可能的预测应该是康康和它距离最近的前几次实验结果。(至于选几次就又值得讨论了!!!)发现大多数都滚到2号框框里了。所以这算法预测的结果是滚到二号框框里

上代码:

import numpy as np
import collections as c
data=np.array([
    [154,1],
    [126,2],
    [70,2],
    [196,2],
    [161,2],
    [371,4],
])
feature=data[0:6,0]
laber=data[:,-1]
predictpoint=200
#计算每个投掷点到predictpoint的距离
distance=list(map(lambda x:abs(predictpoint-x),feature))
#print(np.sort(distance))
#对distance的集合元素从小到大排序。返回的是下标的位置
sortindex=np.argsort(distance)
print(laber[sortindex])
print(c.Counter(laber[sortindex[:]]).most_common(1)[0])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值