〇、目标

1、使用pycharm工具创建项目demo;

2、使用python语言实现KNN算法。

一、创建脚本文件

二、编写KNN算法程序

KNN算法所阐述的核心思想在KNN.py文件的注释部分具有详细的介绍,编辑KNNTest.py文件进行KNN算法思想的验证实现。KNN.py代码为:

# coding=utf-8

from numpy import *
import operator def createDataSet():
group = array([[1.0, 0.9], [1.0, 1.0], [0.1, 0.2], [0.0, 0.1]])
labels = ['A', 'A', 'B', 'B']
return group, labels def KNNClassify(newInput, dataSet, labels, k):
numSamples = dataSet.shape[0] # shape[0]表示行数 diff = tile(newInput, (numSamples, 1)) - dataSet # 按元素求差值
squaredDiff = diff ** 2 # 将差值平方
squaredDist = sum(squaredDiff, axis = 1) # 按行累加
distance = squaredDist ** 0.5 # 将差值平方和求开方,即得距离 sortedDistIndices = argsort(distance)
classCount = {} # define a dictionary (can be append element)
for i in range(k):
voteLabel = labels[sortedDistIndices[i]]
classCount[voteLabel] = classCount.get(voteLabel, 0) + 1 maxCount = 0
for key, value in classCount.items():
if value > maxCount:
maxCount = value
maxIndex = key return maxIndex

KNNTest.py代码为:

# coding=utf-8
import KNN
from numpy import *
dataSet, labels = KNN.createDataSet()
testX = array([1.2, 1.0])
k = 3
outputLabel = KNN.KNNClassify(testX, dataSet, labels, 3)
print("Your input is:", testX, "and classified to class: ", outputLabel) testX = array([0.1, 0.3])
outputLabel = KNN.KNNClassify(testX, dataSet, labels, 3)
print("Your input is:", testX, "and classified to class: ", outputLabel)

三、运行观察结果

最新文章

  1. H5 表格的结构
  2. C#浅析单例模式
  3. Tomcat 项目部署方式
  4. 如何将Android Studio项目提交(更新)到github
  5. 数据采集:完美下载淘宝Ip数据库 简单的程序节省60元人民币而不必购买数据库
  6. 淮安团购网美团联盟网赚版 v5.7
  7. for-of循环
  8. POJ 2482 Stars in Your Window
  9. entos 7虚拟机安装手册
  10. Android app security安全问题总结
  11. 我的第二个开源库SuperTextView——中文文档
  12. MacOS下安装rvm的几点注意
  13. php unset对json_encode的影响
  14. [转]GitHub for Windows 安装失败,An error occurred attempting to install github 的解决办法
  15. python paramiko自动登录网络设备抓取配置信息
  16. Py-lamda表达式学习【转载】
  17. Pivot
  18. 修改elasticsearch5,搜索结果最大10000
  19. day04作业
  20. java 关于操作Collection的一点说明

热门文章

  1. flutter系列之:Material中的3D组件Card
  2. 第六章:Django 综合篇 - 17:CSRF与AJAX
  3. Beats:使用Elastic Stack监控RabbitMQ
  4. C++函数模板和类模板的使用
  5. Docker | 发布镜像到镜像仓库
  6. C语言------数据类型与输入输出
  7. JSP的内置对象 request和response
  8. 基于GA遗传算法的TSP旅行商问题求解
  9. 九、docker swarm主机编排
  10. G1 垃圾收集器深入剖析(图文超详解)