机器学习实战之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的Django框架中显示对象子集的方法
Jul 21 Python
python制作一个桌面便签软件
Aug 09 Python
Python中的字符串类型基本知识学习教程
Feb 04 Python
Python文本相似性计算之编辑距离详解
Nov 28 Python
python爬取w3shcool的JQuery课程并且保存到本地
Apr 06 Python
python写一个md5解密器示例
Feb 23 Python
Python3 关于pycharm自动导入包快捷设置的方法
Jan 16 Python
python获取磁盘号下盘符步骤详解
Jun 19 Python
Python socket聊天脚本代码实例
Jan 02 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
基于Python快速处理PDF表格数据
Jun 03 Python
python requests模块的使用示例
Apr 07 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
老机欣赏|中国60年代精品收音机
2021/03/02 无线电
php HtmlReplace输入过滤安全函数
2010/07/03 PHP
PHP swfupload图片上传的实例代码
2013/09/30 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
2019/10/09 PHP
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
SwfUpload在IE10上不出现上传按钮的解决方法
2013/06/25 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
2013/09/13 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
如何调试异步加载页面里包含的js文件
2014/10/30 Javascript
轻松学习jQuery插件EasyUI EasyUI表单验证
2015/12/01 Javascript
在线引用最新jquery文件的实现方法
2016/08/26 Javascript
Bootstrap 3.x打印预览背景色与文字显示异常的解决
2016/11/06 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
JS奇技之利用scroll来监听resize详解
2017/06/15 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
写给小白看的JavaScript异步
2017/11/29 Javascript
使用svg实现动态时钟效果
2018/07/17 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
jQuery表单选择器用法详解
2019/08/22 jQuery
python实现zencart产品数据导入到magento(python导入数据)
2014/04/03 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
Django获取该数据的上一条和下一条方法
2019/08/12 Python
Tensorflow实现部分参数梯度更新操作
2020/01/23 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
Keras之自定义损失(loss)函数用法说明
2020/06/10 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
专业销售业务员求职信
2013/11/18 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
离婚财产处理协议书
2014/09/30 职场文书
入党团支部推荐意见
2015/06/02 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
CSS3 制作精美的定价表
2021/04/06 HTML / CSS