机器学习实战之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 返回汉字的汉语拼音
Feb 27 Python
Python实现字典依据value排序
Feb 24 Python
TensorFlow在MAC环境下的安装及环境搭建
Nov 14 Python
Python通过Django实现用户注册和邮箱验证功能代码
Dec 11 Python
python如何在循环引用中管理内存
Mar 20 Python
python实现俄罗斯方块游戏
Mar 25 Python
Python内置函数property()如何使用
Sep 01 Python
python更新数据库中某个字段的数据(方法详解)
Nov 18 Python
python绘制雷达图实例讲解
Jan 03 Python
Python爬虫入门教程02之笔趣阁小说爬取
Jan 24 Python
利用Python判断你的密码难度等级
Jun 02 Python
详解Python中__new__方法的作用
Mar 31 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
虫族 Zerg 魔法科技
2020/03/14 星际争霸
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
php使用NumberFormatter格式化货币的方法
2015/03/21 PHP
php实现图片等比例缩放代码
2015/07/23 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
2015/11/10 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
功能强大的php分页函数
2016/07/20 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
jquery 元素相对定位代码
2010/10/15 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
使用Node.js实现RESTful API的示例
2017/08/01 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
VuePress 中如何增加用户登录功能
2019/11/29 Javascript
Python ORM框架SQLAlchemy学习笔记之关系映射实例
2014/06/10 Python
python实现从一组颜色中找出与给定颜色最接近颜色的方法
2015/03/19 Python
python中通过预先编译正则表达式提高效率
2017/09/25 Python
Python matplotlib绘图可视化知识点整理(小结)
2018/03/16 Python
Python实现的拟合二元一次函数功能示例【基于scipy模块】
2018/05/15 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
Python 点击指定位置验证码破解的实现代码
2019/09/11 Python
python获取网络图片方法及整理过程详解
2019/12/20 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
Python GUI编程学习笔记之tkinter控件的介绍及基本使用方法详解
2020/03/30 Python
python实现处理mysql结果输出方式
2020/04/09 Python
纯HTML5+CSS3制作图片旋转
2016/01/12 HTML / CSS
Looking4Parking美国:全球排名第一的机场停车比较品牌
2019/08/26 全球购物
北京银河万佳Java面试题
2012/03/21 面试题
英语翻译系毕业生求职信
2013/09/29 职场文书
网页设计个人找工作求职信
2013/11/28 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
推广普通话的宣传语
2015/07/13 职场文书
同学聚会开幕词
2019/04/02 职场文书