机器学习实战之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益智游戏计算汉诺塔问题示例
Mar 05 Python
Python快速从注释生成文档的方法
Dec 26 Python
Python Nose框架编写测试用例方法
Oct 26 Python
matplotlib设置legend图例代码示例
Dec 19 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
Jun 06 Python
python抖音表白程序源代码
Apr 07 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
python装饰器练习题及答案
Nov 01 Python
Python 没有main函数的原因
Jul 10 Python
python自动提取文本中的时间(包含中文日期)
Aug 31 Python
django inspectdb 操作已有数据库数据的使用步骤
Feb 07 Python
详解python的xlwings库读写excel操作总结
Feb 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
Windows下PHP的任意文件执行漏洞
2006/10/09 PHP
php判断用户是否手机访问代码
2015/06/08 PHP
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
JavaScript数组实现数据结构中的队列与堆栈
2016/05/26 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
jQuery Ztree行政地区树状展示(点击加载)
2016/11/09 Javascript
基于js实现checkbox批量选中操作
2016/11/22 Javascript
setTimeout学习小结
2017/02/08 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
超级简易的JS计算器实例讲解(实现加减乘除)
2017/08/08 Javascript
checkbox:click事件触发span元素内容改变的方法
2017/09/11 Javascript
删除table表格行的实例讲解
2017/09/21 Javascript
JavaScript设计模式之构造函数模式实例教程
2018/07/02 Javascript
iView框架问题整理小结
2018/10/16 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
python创建关联数组(字典)的方法
2015/05/04 Python
浅析Python中signal包的使用
2015/11/13 Python
一文总结学习Python的14张思维导图
2017/10/17 Python
Python3结合Dlib实现人脸识别和剪切
2018/01/24 Python
python 获取当天凌晨零点的时间戳方法
2018/05/22 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
Django 用户认证组件使用详解
2019/07/23 Python
Python 实现数组相减示例
2019/12/27 Python
详解Python IO编程
2020/07/24 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
Python3.8安装Pygame教程步骤详解
2020/08/14 Python
料理师求职信
2014/01/30 职场文书
海飞丝广告词
2014/03/20 职场文书
2014年电工工作总结
2014/11/20 职场文书
试用期转正工作总结2015
2015/05/28 职场文书
公司职员入党自传书
2015/06/26 职场文书
2015重阳节座谈会主持词
2015/07/30 职场文书
Java基于字符界面的简易收银台
2021/06/26 Java/Android
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript