资源简介
使用KNN算法预测鸢尾花的种类,压缩文件中包含源码、训练数据以及测试数据
代码片段和文件信息
import numpy as np
import operator
def trainingFile2Matrix(filename):
“““
函数说明:
处理训练数据集
:param filename:
训练数据文件
:return:
returnMat - 处理得到的每一个训练样本的数据集合
returnLabel - 每一个训练样本所属的类别标签集合
“““
file = open(filename)
content = file.readlines()
lineCount = len(content)
returnMat = np.zeros((lineCount 4))
returnLabel = []
index = 0
for line in content:
line = line.strip()
example = line.split(‘‘)
returnMat[index : ] = example[0 : 4]
index += 1
returnLabel.append(example[4])
return returnMat returnLabel
def testFile2Matrix(filename):
“““
函数说明:
处理测试数据集
:param filename:
测试数据文件
:return:
returnMat - 处理得到的每一个测试样本的数据集合
“““
file = open(filename)
content = file.readlines()
lineCount = len(content)
returnMat = np.zeros((lineCount 4))
index = 0
for line in content:
line = line.strip()
example = line.split(‘‘)
returnMat[index : ] = example[0 : 4]
index += 1
return returnMat
def calculateDistance(train_example test_example example_length):
“““
函数说明:
计算训练样本和测试样本之间的欧几里德距离
:param train_example:
训练样本的数据
:param test_example:
测试样本的数据
:param example_length:
样本的属性长度
:return:
distance - 训练样本和测试样本之间的欧几里德距离
“““
distance = 0.0
for i in range(example_length):
distance += pow(train_example[i] - test_example[i] 2)
return distance
def get_K_Neighbors(trainingSet trainingLabel test_example k):
“““
函数说明:
取得与测试样本距离最近的k个训练样本
:param trainingSet:
训练样本数据集
:param trainingLabel:
训练样本标签集
:param test_example:
测试样本
:param k:
即参数k
:return:
kNeighbors - 与测试样本最近的k个训练样本的集合
“““
length = len(test_example)
distances = []
for i in range(len(trainingSet)):
dis = calculateDistance(trainingSet[i] test_example length)
distances.append((trainingLabel[i] dis))
distances.sort(key=operator.itemgetter(1))
kNeighbors = []
for i in range(k):
kNeighbors.append(distances[i][0])
return kNeighbors
def getReasult(kNeighbors):
“““
函数说明:
取得与测试样本距离最近的k个训练样本中的最公共类别
:param kNeighbors:
与测试样本最近的k个训练样本的集合
:return:
sortedLabel[0][0] - 预测该测试样本所属的类别
“““
classLabel = {}
for i in range(len(kNeighbors)):
temp = kNeighbors[i]
if temp in classLabel:
classLabel[temp] += 1
else:
classLabel[temp] = 1
sortedLabel = sorted(classLabel.items() key=operator.itemgetter(1) reverse=True)
return sortedLabel[0][0]
def getAccuracy(testLabel predictions):
“““
函数说明:
计算预测的准确率
:param testLabel:
测试数据所属的真实类别
:param predictions:
预测测试数据所属的类别
:return:
(cnt / float(len(testLabel))) * 100.0 - 准确率
“““
cnt = 0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-19 13:25 KNN\
文件 6148 2018-10-19 13:24 KNN\.DS_Store
目录 0 2018-10-19 13:25 __MACOSX\
目录 0 2018-10-19 13:25 __MACOSX\KNN\
文件 120 2018-10-19 13:24 __MACOSX\KNN\._.DS_Store
文件 3760 2016-09-26 20:50 KNN\train.txt
文件 228 2016-09-26 20:50 __MACOSX\KNN\._train.txt
文件 508 2017-09-20 09:25 KNN\test.txt
文件 228 2017-09-20 09:25 __MACOSX\KNN\._test.txt
文件 5761 2018-09-20 14:48 KNN\KNN.py
文件 176 2018-09-20 14:48 __MACOSX\KNN\._KNN.py
相关资源
- Tkinter代码195例-Tkinter编程代码
- 我自己做的一个基于Django的房屋出租
- 全球主要国家、省州、城市的数据库
- reportlab_userguide_pdf_高清含详细目录
- 2018年7月中科软与中航工业电子面试题
- Anaconda配套图标
- pyexcel技术文档
- AI项目-pacman
- setuptools
- PyPDF2模块和英文文档
- 股票查询工具(含前端页面)
- pandas入门实践教程--二十分钟轻松搞定
- SVR支持向量机回归原理解析.pdf
- kNN分类算法数据集
- svm实现是否带眼镜
- 一个接糖果的pygame小游戏
-
WumpusWorld 使用 Knowledgeba
se的AI 实现 - glut搭建glut32bit和64bit
- 打字案例.zip
- tensorflow实现猫狗识别
- 万有引力算法GSA-master.zip
- 点云数据ply格式
- 多标记分类器MLKNN
- KNN识别LED数码管
- KNN详细算法以及数据集
- PyQt5快速开发与实践
- Arcgis批量裁剪
- Regression回归算法代码
- PyQt5系列教程(二)利用QtDesigner设计
- knn算法识别手写体--mnist数据集
评论
共有 条评论