机器学习实战之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使用PyV8执行javascript代码示例分享
Dec 04 Python
在Python中使用NLTK库实现对词干的提取的教程
Apr 08 Python
python中根据字符串调用函数的实现方法
Jun 12 Python
高质量Python代码编写的5个优化技巧
Nov 16 Python
python打开windows应用程序的实例
Jun 28 Python
python3用PIL把图片转换为RGB图片的实例
Jul 04 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
Python批量安装卸载1000个apk的方法
Apr 10 Python
Python3如何判断三角形的类型
Apr 12 Python
浅谈JupyterNotebook导出pdf解决中文的问题
Apr 22 Python
基于Python爬虫采集天气网实时信息
Jun 05 Python
MoviePy常用剪辑类及Python视频剪辑自动化
Dec 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 header()函数使用说明
2008/07/10 PHP
php类中的各种拦截器用法分析
2014/11/03 PHP
Zend Framework实现具有基本功能的留言本(附demo源码下载)
2016/03/22 PHP
限制文本框输入N个字符的js代码
2010/05/13 Javascript
JS延迟加载(setTimeout) JS最后加载
2010/07/15 Javascript
Jquery 点击按钮自动高亮实现原理及代码
2014/04/25 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
JavaScript使用简单正则表达式的数据验证功能示例
2017/01/13 Javascript
jquery easyui如何实现格式化列
2017/07/30 jQuery
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
vue-router2.0 组件之间传参及获取动态参数的方法
2017/11/10 Javascript
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
vue2.0 实现导航守卫的具体用法(路由守卫)
2018/05/17 Javascript
webpack分离css单独打包的方法
2018/06/12 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
这15个Vue指令,让你的项目开发爽到爆
2019/10/11 Javascript
node.js实现简单的压缩/解压缩功能示例
2019/11/05 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
Python解释执行原理分析
2014/08/22 Python
Python文件读取的3种方法及路径转义
2015/06/21 Python
TensorFlow实现Logistic回归
2018/09/07 Python
在python中用url_for构造URL的方法
2019/07/25 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
2019/08/05 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
2020/05/15 Python
基于python实现计算两组数据P值
2020/07/10 Python
python实现发送带附件的邮件代码分享
2020/09/22 Python
Python的logging模块基本用法
2020/12/24 Python
突袭HTML5之Javascript API扩展3—本地存储全新体验
2013/01/31 HTML / CSS
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
求职信的七个关键技巧
2014/02/05 职场文书
党委班子剖析材料
2014/08/21 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
Dubbo+zookeeper搭配分布式服务的过程详解
2022/04/03 Java/Android