python knn自我实践
#得到分类数据和测试数据
import pymysql
import struct
from numpy import * a=['']*20 #存图像 分类数据
b=[[0]*76800]*20#存图像 分类数据
c=[0]*76800#存图像 测试数据 def connectSql_1():
conn = pymysql.connect(host='192.168.9.163', user='hlyxtmi', passwd='19560530', db='tmi-ds', charset="latin1")
cur = conn.cursor()
cur.execute("select type,imagedata from knn_test where type != ''")
results = cur.fetchall()
i=0
for row in results:
d = [0] * 76800
a[i] = row[0]
imagedata = row[1]
for num in range(76800):
str = imagedata[(num+4)*2:(num+5)*2]
d[num] = struct.unpack('h', str)
b[i]=d
i+=1
cur.close()
conn.close() def connectSql_2():
conn = pymysql.connect(host='192.168.9.163', user='hlyxtmi', passwd='19560530', db='tmi-ds', charset="latin1")
cur = conn.cursor()
cur.execute("select imagedata from knn_test where type = ''")
results = cur.fetchall()
for row in results:
imagedata = row[0]
for num in range(76800):
str = imagedata[(num+4)*2:(num+5)*2]
c[num] = struct.unpack('h', str)
cur.close()
conn.close() def classify():
s=[0]*20 #存距离
for num in range(20):
for i in range(76800):
aTmp = b[num][i][0]
bTmp = c[i][0]
cTmp = aTmp - bTmp
s[num]+= abs(cTmp)
print(num) sortedDisIndex = argsort(s)
classCount={}
for i in range(19):
voteLabel = a[sortedDisIndex[i]]
classCount[voteLabel] = classCount.get(voteLabel,0) + 1
maxCount = 0
for key,value in classCount.items():
if value > maxCount:
maxCount = value
classes = key
return classes if __name__ == '__main__':
connectSql_1()
connectSql_2()
output = classify()
print("分类结果为:",output)
python knn自我实践的更多相关文章
- Redis的Python实践,以及四中常用应用场景详解——学习董伟明老师的《Python Web开发实践》
首先,简单介绍:Redis是一个基于内存的键值对存储系统,常用作数据库.缓存和消息代理. 支持:字符串,字典,列表,集合,有序集合,位图(bitmaps),地理位置,HyperLogLog等多种数据结 ...
- paip.复制文件 文件操作 api的设计uapi java python php 最佳实践
paip.复制文件 文件操作 api的设计uapi java python php 最佳实践 =====uapi copy() =====java的无,要自己写... ====php copy ...
- Python 的 pandas 实践
Python 的 pandas 实践: # !/usr/bin/env python # encoding: utf-8 __author__ = 'Administrator' import pan ...
- Python之NumPy实践之数组和矢量计算
Python之NumPy实践之数组和矢量计算 1. NumPy(Numerical Python)是高性能科学技术和数据分析的基础包. 2. NumPy的ndarray:一种对位数组对象.NumPy最 ...
- 《Python机器学习及实践:从零开始通往Kaggle竞赛之路》
<Python 机器学习及实践–从零开始通往kaggle竞赛之路>很基础 主要介绍了Scikit-learn,顺带介绍了pandas.numpy.matplotlib.scipy. 本书代 ...
- Python机器学习及实践 课后小题
目录 第二章 2.3章末小结 @(Python机器学习及实践-----从零开始通往Kaggle竞赛之路) 第二章 2.3章末小结 1 机器学习模型按照使用的数据类型,可分为监督学习和无监督学习两大类. ...
- Python机器学习及实践_从零开始通往KAGGLE竞赛之路PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书
点击获取提取码:i5nw Python机器学习及实践面向所有对机器学习与数据挖掘的实践及竞赛感兴趣的读者,从零开始,以Python编程语言为基础,在不涉及大量数学模型与复杂编程知识的前提下,逐步带领读 ...
- python 工业日志模块 未来的python日志最佳实践
目录 介绍 好的功能 安装方法 参数介绍 呆log 参数与 使用方法 版本说明 后期版本规划 todo 感谢 介绍 呆log:工业中,python日志模块,安装即用.理论上支持 python2, py ...
- 《PYTHON机器学习及实践-从零开始通往KAGGLE竞赛之路》 分享下载
转: <PYTHON机器学习及实践-从零开始通往KAGGLE竞赛之路> 分享下载 书籍信息 书名: PYTHON机器学习及实践-从零开始通往KAGGLE竞赛之路 标签: PYTHON机器学 ...
随机推荐
- shell习题第7题:备份数据库
[题目要求] 设计一个shell脚本用来备份数据库,首先在本地服务器上保存一份数据,然后再远程拷贝一份,本地保存一周的数据,远程保存一个月 假设我们知道mysql root账号的密码,要备份的库为da ...
- Redis笔记 -- make编译安装报错记录2则(一)
1.Redis的获取与安装,目前最新稳定版本为4.0.10 Redis: https://redis.io/download GitHub: https://github.com/antirez/ ...
- daterangepicker的个性化使用技巧
由于该模板不自动将时间戳添加到input中去,始终为NaN,所以,自己选取起始时间与截止时间 var startTime =new Date(new Date().toLocaleDateString ...
- 如何使用yii2的缓存依赖特性
目录 如何使用yii2的缓存依赖特性 概述 页面缓存 缓存依赖 链式依赖 总结 如何使用yii2的缓存依赖特性 概述 缓存是Yii2的强大特性之一,合理使用缓存技术可以有效地减小服务器的访问压力.Yi ...
- gi的安装和使用
Git的安装 git是什么? git是一种版本控制器,更直白的说,团队开发的时候,管理代码使用的软件 Linux下的安装 yum install git Git的配置 在使用git之前,需要先进行配置 ...
- Rails中重写Active Record字段属性
系统重构或升级时偶尔会碰到需要重写某个字段的情况,例如: 1. 读取user的name字段时,实际返回name_new字段 class User < ActiveRecord::Base def ...
- Leecode刷题之旅-C语言/python-342 4的幂
这里不列举普通的方法了. 发现一个好帖: 学习一下: https://blog.csdn.net/butterfly5211314/article/details/86099993 --------- ...
- 05ICMP协议与ARP协议(IP协议中重要协议)
ICMP协议在网络层,应用:ping命令,tracert命令:追踪命令,用于静态路由. ICMP重定向 redirect
- python 位运算【实测】
python 位运算符为 << 左移,>> 右移 3<<2 既 3 的二进制整体向左移两位 : : 可以这么算 3*(2的2次方)= 12 11>> ...
- echarts x轴文字换行显示
xAxis : [ { splitLine:{show:false}, type : 'category', data : ['社交人际','沟通交流','心理认知','游戏玩耍','大小运动','生 ...