资源简介
使用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
相关资源
- Pythonamp;课堂amp;笔记(高淇amp;400;集第
- Python中Numpy库最新教程
- 用python编写的移动彩信的发送程序
- Python全栈学习笔记面向对象大作业:
- python实现的ftp自动上传、下载脚本
- Python版的A*寻路算法
- IronPython IDE
- pip-10.0.1.tar.gz
- Data Science from Scratch 2nd Edition
- shape_predictor_68_face_landmarks.dat.bz2 68个标
- 爬取豆瓣电影TOP250程序,包含非常详
- 中文维基百科语料库百度网盘网址.
- MSCNN_dehaze.rar
- 爬取豆瓣排行榜电影数据(含GUI界面
- 字典文本资源
- Brainfuck / OoK 解码脚本
- 案例实战信用卡欺诈检测数据集
- 用各种机器学习方法knn,随机森林,
- 招商策略_抱团启示录那些年我们一起
- sip-4.19.zip
- 树莓派3b+学习使用教程
- numpy 中文学习手册
- pytorch-1.4.0-py3.7_cpu_0.tar.bz2
- 机器学习实战 高清完整版PDF
- 泰坦尼克号0.81准确率实验报告.docx
-
abaqus sc
ripting reference manual.pdf - 网页版聊天程序--网络程序设计课程大
- Give Me Some Credit
-
ba
semap安装出错时,正确得pyproj文件 - 微信头像拼接工具
评论
共有 条评论