机器学习实战python与R共舞

2023-10-28 10:38

本文主要是介绍机器学习实战python与R共舞,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

机器学习实战中的代码,学习并交流。第一个是kNN分类函数。以下是Python的代码,后来也尝试用R写了一下,发现他们在处理数据上R还是很强大的。

#!/usr/bin/python
from numpy import *
import operatordef classfy0(inX,dataSet,labels,k):dataSetSize=dataSet.shape[0]  # shape 方法获得数据的行数和列数,然后选取行数diffMat=tile(inX,(dataSetSize,1))-dataSet #tile 方法是数组的重复,里边的元祖表示的是对这个数组重复的纬度,这里表示几行几列sqDiffMat=diffMat**2sqDistances=sqDiffMat.sum(axis=1)  #按照行来对计算的平方和求加,下一步计算距离distances=sqDistances**0.5sortedDistIndicies=distance.argsort() #获取距离的数据进行排序classCount={}for i in range(k):voteIlabels=labels[sortedDistIndicies[i]]        #获得排序的前k个元素,sortedDistIndicies[i] 是排序后距离值的索引,这个索引也是label的索引。每个元素的标签是新建字典的键classCount[voteIlabels]=classCount.get(voteIlabels,0)+1 # 字典的值是每个字典的键出现的次数的累计,get方法内输入0,表示#如果不存在该键,则得到的值就是输入的值,这里因为创建的是空字典,每一个键的输入都是不存在的,第二次输入的时候,在上一个的计数上加1sortedClassCount=sorted(classCount.iteritems(), key=operator.itemgetter(1),reverse=True)    #对字典进行排序,sorted中的参数key是operator.itemgetter取第一个类型,#也就是按照字典的值来排序return sortedClassCount[0][0]  #返回排序后是一个元祖,返回第一个元祖的第一个值。

下边是R的代码,由于是初学,附上了很多注释,还望见谅。

kNN<-function(input, dataset,label,k){if(class(input)!="numeric") stop(cat("you must input a numeric vector"))if(class(dataset)!="matrix") stop(cat("you mush input your traning data as a matrix"))datasize=nrow(dataset)diffMat=matrix(rep(input,datasize),nrow=datasize,byrow = TRUE)-datasetsqDiffMat=diffMat^2sqDistances=apply(sqDiffMat,1,sum)distances=sqrt(sqDistances)sortedDistIndicies=order(distances)classCount=list()              #创建一个空列表,列表的名字是标签,列表的内容是前k个标签中,某个标签出现的次数for(i in 1:k){name=label[sortedDistIndicies[i]]       #获取前k个排序后的标签的名字sortedDistIndicies[i] 是获得排序后距离值的索引,这个索引也是label的索引。classCount[[name]]=c(classCount[[name]],1) #并把标签出现的次数赋值为标签的内容,classCount[[name]] 是null,#因为这个是个空列表,每次如果出现这个标签,就加上1}results=lapply(classCount, function(x) sum(x)) #对列表中的数据进行相加,看出现的频率return(results[1])
}

这篇关于机器学习实战python与R共舞的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/292638

相关文章

一文全面详解Python变量作用域

《一文全面详解Python变量作用域》变量作用域是Python中非常重要的概念,它决定了在哪里可以访问变量,下面我将用通俗易懂的方式,结合代码示例和图表,带你全面了解Python变量作用域,需要的朋友... 目录一、什么是变量作用域?二、python的四种作用域作用域查找顺序图示三、各作用域详解1. 局部作

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

基于Python构建一个高效词汇表

《基于Python构建一个高效词汇表》在自然语言处理(NLP)领域,构建高效的词汇表是文本预处理的关键步骤,本文将解析一个使用Python实现的n-gram词频统计工具,感兴趣的可以了解下... 目录一、项目背景与目标1.1 技术需求1.2 核心技术栈二、核心代码解析2.1 数据处理函数2.2 数据处理流程

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

使用Python实现获取屏幕像素颜色值

《使用Python实现获取屏幕像素颜色值》这篇文章主要为大家详细介绍了如何使用Python实现获取屏幕像素颜色值,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、一个小工具,按住F10键,颜色值会跟着显示。完整代码import tkinter as tkimport pyau