python实现knn算法(入门简单的代码)

机器学习的定义是:通过对大量的数据分析 ,来生成 一个模型 (或者一个函数 ,通过对大量的数据求出**F(x)**的过程),利用模型来预测结果解决问题库,通过预测的结果来调整 模型, 是一个循环的过程。
这个过程其实有点像学生的学习,学生通过做某一类题来训练自己解决这一类问题的模型,然后利用解题模型来解决问题,有问题的结果来调整自己的解决问题的模型。

机器学习分为有监督无监督的学习
有监督的学习是 :
有真值的训练,比如我们通过大量的 数据进行训练,如图像识别图片是否有猫
,真值是:有或没有 ,它是的训练最后是有一个 确定的真值的,我们 把这种的机器学习称为有监督的 。
无监督的学习是:
无监督的学习是没有真值的, 它的训练结果是我们无法进行预测的,就像分析大量的超市的数据,发现尿布与啤酒的关系一样,是我们无法预测的,或者象淘宝 分析数据,发现相同的消费单的联系,进行推销商品一样,

半监督学习:
兼顾上述俩的优点,

1:我用的 python的编译器的是pycharm,因为pycharn的跨平台性较好。当然你也可以使用其他的编译器,来 写代码。
python代码如下:

import numpy as np   #我们这里导入numpy 包,因为对np对数组的操作更加方便
import collections as c # 这里导入的包,是因为在后面我们要输出出现最多的数据
def knn(k,x,fu,re):   #这里我们把knn的算法函数化(模块化)方便我们来测试模型
#我们获取输入的值  fu,输入的数据集
fu =(data[:,0])
#获取输出的值 re ,输入的数据集的对应的结果集
re =(data[:,1])
#把输入的值与原来的数据进行比对 ,计算离原始数据的差,
    res=[abs(x-y) for y in fu]  
    res1=(np.argsort(res))  
    ref=(re[res1])
      #这里我们没有使用np.sort() 是因为排序结果的差是无用的,我们要排序是对应数据的结果的排序。
    return  (c.Counter(ref[:k]).most_common(1)[0][0]) 
    #我们获取出现次数最多的结果的数据
if __name__ == '__main__':
    data=np.loadtxt("test.csv",delimiter=",")#我们这里导入data.csv的测试数据集,来生成预测模型。
    fu =(data[:,0])  #取出训练输入的数据
    re =(data[:,1])  #取出输入数据对应的结果
    k = int(input("请输入k:"))# 输入k,k 是有多少的邻居的意思
    x = int(input("请输入一个要预测的数:")) #输入需要预测的数据
print(knn(k,x,fu,re))#调用knn函数,传入需要的参数

下面 我们将来生成 训练集与测试集
一般来说训练集与测试集 的比例是10:1

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值