机器学习实战之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脚本文件打包成可执行文件的方法
Jun 02 Python
Django中对数据查询结果进行排序的方法
Jul 17 Python
用Python实现斐波那契(Fibonacci)函数
Mar 25 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 Python
python 读取excel文件生成sql文件实例详解
May 12 Python
你真的了解Python的random模块吗?
Dec 12 Python
python实现ID3决策树算法
Dec 20 Python
Python实现PS图像抽象画风效果的方法
Jan 23 Python
Python基于递归实现电话号码映射功能示例
Apr 13 Python
Python列表元素常见操作简单示例
Oct 25 Python
python模块和包的应用BASE_PATH使用解析
Dec 14 Python
python 串口读取+存储+输出处理实例
Dec 26 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入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
php上传文件并显示上传进度的方法
2015/03/24 PHP
图片自动缩小的js代码,用以防止图片撑破页面
2007/03/12 Javascript
jquery 插件学习(三)
2012/08/06 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
AngularJS 教程及实例代码
2017/10/23 Javascript
jQuery位置选择器用法实例分析
2019/06/28 jQuery
详细介绍Python函数中的默认参数
2015/03/30 Python
Python编程修改MP3文件名称的方法
2017/04/19 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
python Dijkstra算法实现最短路径问题的方法
2019/09/19 Python
keras自定义回调函数查看训练的loss和accuracy方式
2020/05/23 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
HTML5调用手机摄像头拍照的实现思路及代码
2014/06/15 HTML / CSS
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
如何提高MySql的安全性
2014/06/19 面试题
Overload和Override的区别
2012/09/02 面试题
护士求职推荐信范文
2013/11/23 职场文书
学生自我鉴定
2013/12/18 职场文书
代理协议书范本
2014/04/22 职场文书
厨房管理计划书
2014/04/27 职场文书
投标服务承诺书
2014/05/28 职场文书
英语课前三分钟演讲稿
2014/08/19 职场文书
租房安全协议书
2014/08/20 职场文书
关于有小孩的离婚协议书
2014/10/26 职场文书
党员民主生活会材料
2014/12/15 职场文书
python数字转对应中文的方法总结
2021/08/02 Python
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL
向Spring IOC 容器动态注册bean实现方式
2022/07/15 Java/Android