看到这个名字,是不是觉得很高大上?
看到网上的那些大佬写了一堆的代码,一堆的分析,是不是有点头昏脑胀?
这还是机器学习中最简单的算法么?
# ===================
如果你也遇到了什么这些迷惑,我想选择看这篇文章,可能会对你有很大的帮助,因为我也不喜欢那些复杂的推理什么的。(好吧,只是因为想安慰你们才这么说的)
相信短短的20行代码就会让你快速掌握Knn算法(机器学习中最简单算法)

为了帮助很多对于算法不太理解的人,我做了一些帮助清单(如果遇到Knn算法中,哪个用法或者是函数不懂的话,就看这个清单,都是很短的东西)
1.tile()函数讲解
2.sum(axis = 1)讲解
3.numpy.argsort()函数的讲解
4.operator.itermgetter()函数的讲解

很多很细心的朋友就可以看到,这个代码在网上很多都有,但是,你搜索的很多也是长的差不多的代码,但其实那些代码,现在,在本机上,并不能通过。
但是这个我是在Pycharm 上运行了没有问题的代码。
至于原因,大家可以在仔细比对下代码的差异性,我在这留给大家一个进步的机会,实在看不出来,可以发信息给我。

from numpy import *
import operator
def createDataSet():group = array([[1.0, 1.1], [1, 0.9], [0, 0], [0.1, 0.1]])lables = ['A', 'A', 'B', 'B']return group, lables
def classify0(inX, dataSet, labels, k):# k means how many you need to get your P(x)dataSetSize = dataSet.shape[0]DiffMat = tile(inX, (dataSetSize, 1)) - dataSetsqDiffMat = DiffMat**2sqDistances = sqDiffMat.sum(axis=1)distances = sqDistances**0.5  # 到这里求解了欧式距离(并构成了一个ndarray)sortedDistances = distances.argsort() # 根据排名作为索引 IndexclassCount = {}for i in range(k):voteIlabel = labels[sortedDistances[i]]classCount[voteIlabel] = classCount.get(voteIlabel, 0) + 1# 选出了距离最小的k个点,并且做了一个简单的统计sortedClassCount = sorted(classCount.items(), key=operator.itemgetter(1), reverse=True) #按照第一个(从0开始数)进行排序return sortedClassCount[0][0] # 返回的出现次数最多的那个标签
# 函数main:
group, labels = createDataSet()
x = [1, 1]
print(classify0(x, group, labels, 2))

第一函数是创造一个数据集(我就按照特性写了个数据集),所以是创造一个数据集,但是实际应用中,多半都是从哪收集的或者是别的什么的方式得到的数据,但是内容没有很大区别。
classify0才是knn算法是实现部分
然后后面那几句是测试代码。(可以理解为main函数,至于为什么我没写main,那是因为我懒)

Knn 的意思就是k个最近邻(会英语的一下就理解了)
就是一堆数据,然后,选一个k
再把你要算的数据拿出来,(inX)放到这个函数中
把这些点那些参数都理解为坐标。
我们想要考虑的那个样本点和原来的数据集距离。
这里用的是欧式距离(是不是逼格很高? 其实就是 根号下的平方和)
如果你上个高中的数学课(或者还没有忘记的话)你所知道的算两点距离的方法就是算的是欧式距离
(对了,你要是上面这个都不知道,要么你自个看看百度百科,要么,你就是点错了才看我这文章的emmm)
算出那么多距离之后,之前不是确定了一个k值了么?就把最小的那前k个拿出来,看下有多少个类型的点。并统计下概率。
就是预测值和概率了。

看完上面的入门版,可以接着看进阶版的代码(还是同样的问题)

最后,老套路,宣传一波自己的公众号!(求关注哇!)
本人中大一肥宅,欢迎大家关注,请扫下面的二维码(〃’▽’〃)


Knn算法(机器学习)入门(Python实现)相关推荐

  1. 机器学习 —— KNN算法简单入门

    机器学习 -- KNN算法简单入门 第1关:手动实现简单kNN算法 1 KNN算法简介 1.1 kNN 算法的算法流程 1.2 kNN 算法的优缺点 1.3 编程要求+参数解释 2. 代码实现 3. ...

  2. KNN算法原理及python实现

    文章目录 1 KNN算法原理 1.1 基本概念 1.2 KNN算法原理 1.3 实现步骤 1.3 KNN算法优缺点 2 python手工实现KNN算法 2.1 KNN算法预测单个数据 2.2 KNN算 ...

  3. 浅谈KNN算法原理及python程序简单实现、KD树、球树

    最近比较空闲,打算利用这一段时间理一下机器学习的一些常见的算法.第一个是KNN算法: KNN 1.原理: KNN,K-NearestNeighbor---K最近邻 K最近邻,就是K个最近的邻居的意思, ...

  4. KNN算法原理与python实现

    文章目录 KNN算法原理 KNN算法介绍 KNN算法模型 距离度量 k值的选择 分类的决策规则 KNN算法python实现 手写数字识别 sklearn代码实现 参考文献 KNN算法原理 KNN算法介 ...

  5. 机器学习入门——Python神经网络编程②

    python神经网络编程②-基于MNIST数据集 本人通过异步图书<python神经网络编程>这部书来学习,所以此博客内容大概为这本书的概括. 这时Python神经网络编程的第二讲,第一讲 ...

  6. 使用python实现knn算法_使用python实现knn算法

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  7. Python 手写机器学习最简单的 kNN 算法

    https://www.toutiao.com/a6698919092876739079/ Python 手写机器学习最简单的 kNN 算法 苏克1900 Python爬虫与数据挖掘 本文 3000 ...

  8. python手写字母识别_机器学习--kNN算法识别手写字母

    本文主要是用kNN算法对字母图片进行特征提取,分类识别.内容如下: kNN算法及相关Python模块介绍 对字母图片进行特征提取 kNN算法实现 kNN算法分析 一.kNN算法介绍 K近邻(kNN,k ...

  9. 机器学习KNN算法实践:预测城市空气质量

    出品:Python数据之道 作者:叶庭云 整理:Lemon 机器学习KNN算法实践 预测城市空气质量 「Python数据之道」导读: 之前在公众号上分享过 "图解KNN算法" 的内 ...

最新文章

  1. 计算机教室开放使用计划,计算机教室实施计划方案.pdf
  2. Dirichlet前缀和及其拓展
  3. MIME types [记录]
  4. Java 中 StringBuilder 在高性能用法总结
  5. vue 2.0 :key的作用
  6. 如何使用trace模式运行BRF+应用
  7. g++ linux intel 汇编,g++ linux
  8. HDU 1007Quoit Design(最近点问题)
  9. 计算机通信网填空题答案 与rs232接口相比,x.21接口,2020年自考计算机网络与通信问答题及答案:第三章...
  10. 轻松解决SAP系统采购信息计量中物料价格不能保存含税价问题
  11. texttospeech的使用
  12. linux android投屏,Github开源Android投屏软件——Scrcpy
  13. scrapy爬取阳光热线问政平台
  14. java中国象棋棋子走法,中国象棋的规则及各种棋子的走法介绍
  15. 看了扎克伯格的Avatar,我更想在VR里当大猩猩
  16. 混沌之初--制作一款RPG游戏
  17. C++删除文件末尾的空行
  18. 善用云函数,开源节流,小程序后端使用云函数案例
  19. 计算机打开共享网络连接打印机共享打印机,网络共享打印机连接不上怎么办_电脑连不上共享打印机如何解决-win7之家...
  20. 读懂 diff 命令

热门文章

  1. PAT C++常用函数(持续更新)
  2. hdu 5511 Minimum Cut-Cut——分类讨论思想+线段树合并
  3. python3 json.dump乱码问题
  4. 关于对php-fpm的压力测试
  5. JS中点语法和方括号语法访问属性的区别
  6. Unity中有两种Animation Clip
  7. iOS 无限后台运行
  8. Linux Cache 机制探究
  9. Strut2与Hibernate的一个web分页功能
  10. Java并发编程基础--ThreadLocal