- python代码中导入numpy库。numpy库是python用来做科学计算的库
-
NumPy(Numerical Python)是高性能科学计算和数据分析的基础包,主要功能是对N维数组的操作和计算,其计算效率是Python原生包的N倍,在使用Python做数据分析过程中NumPy是我们必不可少的一个工具
作者:loannes
链接:https://www.jianshu.com/p/8e11f728287f
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 - 其实python的原生多维数组也能用于很多机器学习算法。但是numpy中的多维数组操作起来更加方便,快捷
- 第一个机器学习算法的例子:
有很多个入口,从左侧入口丢进一个球,会跑到右侧的球框里大概如下图
现在从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])