机器学习实战之knn算法pandas


Posted in Python onJune 22, 2019

机器学习实战之knn算法pandas,供大家参考,具体内容如下

开始学习机器学习实战这本书,打算看完了再回头看 周志华的 机器学习。机器学习实战的代码都是用numpy写的,有些麻烦,所以考虑用pandas来实现代码,也能回顾之前学的 用python进行数据分析。感觉目前章节的测试方法太渣,留着以后学了更多再回头写。

# coding: gbk
import pandas as pd
import numpy as np


def getdata(path):
 data = pd.read_csv(path, header=None, sep='\t')
 character = data.iloc[:, :-1]
 label = data.iloc[:, -1]
 chara_max = character.max()
 chara_min = character.min()
 chara_range = chara_max - chara_min
 normal_chara = (character - chara_min) / chara_range
 return normal_chara, label # 获得归一化特征值和标记


def knn(inX, normal_chara, label, k):
 data_sub = normal_chara - inX
 data_square = data_sub.applymap(np.square)
 data_sum = data_square.sum(axis=1)
 data_sqrt = data_sum.map(np.sqrt)
 dis_sort = data_sqrt.argsort()
 k_label = label[dis_sort[:k]]
 label_sort = k_label.value_counts()
 res_label = label_sort.index[0]
 return res_label # knn算法分类

小编为大家分享一段代码:机器学习--KNN基本实现

# _*_ coding _*_
import numpy as np
import math
import operator
 
def get_data(dataset):
 x = dataset[:,:-1].astype(np.float)
 y = dataset[:,-1]
 return x,y
# def cal_dis(a,b):
# x1,y1 = a[:]
# x2,y2 = b[:]
# dist = math.sqrt(math.pow(2,x2)-math.pow(2,x1))
 
def knnclassifer(dataset,predict,k=3):
 x,y = get_data(dataset)
 dic = {}
 distince = np.sum((predict-x)**2,axis=1)**0.5
 sorted_dict = np.argsort(distince)#[2 1 0 3 4]
 countLabel = {}
 for i in range(k):
 label = y[sorted_dict[i]]
 # print(i,sorted_dict[i],label)
 countLabel[label] = countLabel.get(label,0)+1
 new_dic = sorted(countLabel,key=operator.itemgetter(0),reverse=True)
 return new_dic[0][0]
 
if __name__ == '__main__':
 dataset = np.loadtxt("dataset.txt",dtype=np.str,delimiter=",")
 
 predict = [2,2]
 label = knnclassifer(dataset,predict,3)
 print(label)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中使用sys模板和logging模块获取行号和函数名的方法
Apr 15 Python
Python BeautifulSoup中文乱码问题的2种解决方法
Apr 22 Python
python通过自定义isnumber函数判断字符串是否为数字的方法
Apr 23 Python
解读Django框架中的低层次缓存API
Jul 24 Python
TensorFlow平台下Python实现神经网络
Mar 10 Python
Python列表解析配合if else的方法
Jun 23 Python
python 解压pkl文件的方法
Oct 25 Python
在Python中表示一个对象的方法
Jun 25 Python
python用match()函数爬数据方法详解
Jul 23 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
python3 自动打印出最新版本执行的mysql2redis实例
Apr 09 Python
Python读取Excel数据并生成图表过程解析
Jun 18 Python
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
Jun 21 #Python
pyinstaller打包单个exe后无法执行错误的解决方法
Jun 21 #Python
pyinstaller打包多个py文件和去除cmd黑框的方法
Jun 21 #Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
Jun 21 #Python
十行代码使用Python写一个USB病毒
Jun 21 #Python
Python pandas DataFrame操作的实现代码
Jun 21 #Python
Python pandas.DataFrame调整列顺序及修改index名的方法
Jun 21 #Python
You might like
php实现单链表的实例代码
2013/03/22 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
Codeigniter通过SimpleXML将xml转换成对象的方法
2015/03/19 PHP
WampServer搭建php环境时遇到的问题汇总
2015/07/23 PHP
编写PHP脚本来实现WordPress中评论分页的功能
2015/12/10 PHP
PHP读取文件内容的五种方式
2015/12/28 PHP
用Javascript读取中文COOKIE的解决办法
2007/02/15 Javascript
js+html+css实现鼠标移动div实例
2013/01/30 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
2014/11/20 Javascript
javascript入门之数组[新手必看]
2016/11/21 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
JavaScript实现单例模式实例分享
2017/12/22 Javascript
JS中Map和ForEach的区别
2018/02/05 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
python dict.get()和dict['key']的区别详解
2016/06/30 Python
谈谈python中GUI的选择
2018/03/01 Python
用python处理MS Word的实例讲解
2018/05/08 Python
在PyCharm下使用 ipython 交互式编程的方法
2019/01/17 Python
python设置环境变量的原因和方法
2019/06/24 Python
Pytorch 高效使用GPU的操作
2020/06/27 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
Python数据库封装实现代码示例解析
2020/09/05 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
联想法国官方网站:Lenovo法国
2018/10/18 全球购物
金士达面试非笔试
2012/03/14 面试题
个人委托书范本
2014/04/02 职场文书
鼓舞士气的口号
2014/06/16 职场文书
认识实习感想
2015/08/10 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python