R语言-数据分析及建模(第1节)分类与预测问题简介

news2024/11/26 14:46:06

小伙伴们,今天我们学习R语言-数据分析及建模(第1节)分类与预测问题简介

01-分类与预测问题简介

分类和预测是预测问题的两种主要类型,分类主要是预测分类标号(离散属性) ,而预测主要是建立连续值函数模型,预测给定自变量对应的因变量的值。

分类是构造一个分类模型,输入样本的属性值,输出对应的类别,将每个样本映射到预先定义好的类别。分类模型建立在已有类标记的数据集上,模型在已有样本上的准确率可以方便的计算,分类属于有监督的学习。

预测是建立两种或两种以上变量间相互依赖的函数模型,然后进行预测或控制。

图片

图片

分类算法分为两步

▷第一步是学习步,通过归纳分析训练样本集来建立分类模型得到分类规则;

▷第二步是分类步,先用已知的测试样本集评估分类规则的准确率,如果准确率是可以接受的,则使用该模型对未知标号的待测样本集进行预测。

▷预测模型同分类模型类似第一步是通过训练集建立预测属性(数值型)的函数模型;第二步在模型通过检验后进行预测或控制。

02 - 常用的分类与预测算法及函数简介

◆主要的分类与预测算法:

图片

◆主要的函数:

Im

功能:拟合线性模型

使用格式:Im(formula,data)

其中, formula指要拟合的模型形式, data是一个数据框,包含用于拟合模型的数据。

glm

功能:拟合计算广义线性模型

使用格式:

glm(formula,family=family.generator,data=data.frame)

其中, formula是拟合公式,这里的意义与线性模型相同, family是分布族,如正态分布、Poisson分布、二项分布等。对于每个分布族(family),提供了相应的连接函数。

step

功能:逐步回归模型,用于变量选择

使用格式:step(model,direction)

其中, model是目标模型, direction:backward表示向后剔除, forward表示向前引入, both表示综合两种方法

ctree

功能:创建决策树模型

使用格式:ctree(formula, data)

其中, formula是描述预测变量和响应变量的公式;data是所使用的数据集的名称。

nnet

功能:构建一个人工识别神经网络,主要用来建立单隐藏层的前馈人工神经网络模型。

使用格式:nnet(formula,data, ...,size,decay,maxit)

formula为建立模型的公式, data为训练集, size代表的是隐藏层中的节点个数, decay是指模型权重值的衰减程度,maxit控制的是模型的最大迭代次数。

NaiveBayes

功能:构建一个朴素贝叶斯分类器

使用格式: NaiveBayes (formula, data, ..., na.omit)

formula指根据数据的属性数据X以及每个记录对应的类别数据y构建一个公式;data是指模型对应的数据集, na.omit指自动删除含有缺失值的观测样本。

svm

功能:构建一个支持向量机模型

使用格式:svm(formula,data, ..., type,kernel)

formula为建立模型的公式, data为训练数据集, type是指建立模型的类别。type可取的值有:C-classification,nu-classification, one-classification, eps-regression, nu-regression,在这5种类型中,前三种是针对字符型结果变量的分类方式,后两种则是针对数量结果变量的分类方式。Kernel参数有4个可选核函数,分别为线性、多项式、径向基、神经网络核函数。


 

03- 分类与预测算法评价指标简介

1.平均绝对误差MAE

平均绝对误差(MAE, Mean Absolute Error) ,或被称为L1范数损失,作为评估指标来说现在用得比较少。

图片

2.均方误差MSE

均方误差(MSE, Mean Squared Error) ,是我们最常用的性能评估指标。实际上,均方误差其实就是求得我们模型预测值和实际值的偏差,因此模型的均方误差越小越好。

图片

3.均方根误差RMSE

均方根误差(RMSE, Root Mean Squared Error) ,均方误差的开方,也是经常使用的模型评估指标。从MAE, MSE、再到RMSE,都是衡量我们模型预测与实际偏差的度量,直观地来说,以上的指标越小越好。但上述指标有一个问题是,这是一个“比较型”的指标,也即是通过均方误差,我们可以知道哪个模型的偏差最小,但是我们并不知道这个模型是否足够的好,而且这个指标的大小明显和数据的数量级有关系。

图片

04 - 模型评价常用指标

实际客户影响情况TrueTP (真正例),FN(假反例),FalseFP(假正例) ,TN (真反例)对于模型评估,常用的指标:

(1)模型准确率(Accuracy)

图片

(2)模型精确(查准)率(Precision)

图片

(3)模型反馈(查全)率(Recall)

图片

(4) 混淆矩阵

图片

(5) ROC与AUC

一个典型的ROC曲线如图所示,其中图上的对角线对应于随机猜测结果,曲线下面积越大,代表模型效果越好,显然如果模型A的ROC曲线完全包住另一个模型B的ROC曲线,我们可以说模型A的分类效果要优于模型B。最理想的模型是曲线直接去到(0,1)这个点,此时曲线下面积达到最大,为1比较客观的比较方法同样可以使用面积, ROC曲线下的面积越大,说明模型的分类效果越好,我们把ROC曲线下的面积称之为AUC (Area Under ROC Curve)。

图片

图片

☆ END ☆

下期内容

R语言--回归分析

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows11的VS201x编译OpenCV+Contrib+CUDA

(1) CUDA下载,注意要和cudnn版本号相关。 我安装的是cuda11.0,注意VS2015不能编译CUDA11,所以用VS2015的话需要下载CUDA 10。因为更高的版本目前还没有cudnn。 (2) 下载和安装VS2015。 (3) 下载和解压CMake。 CMake地址: Releases Kitw…

性能测试Ⅱ(压力测试与负载测试详解)

协议 性能理论:并发编程 ,系统调度,调度算法 监控 压力测试与负载测试的区别是什么? 负载测试 在被测系统上持续不断的增加压力,直到性能指标(响应时间等)超过预定指标或者某种资源(CPU&内存)使用已达到饱和状…

每天五分钟机器学习:多项式非线性回归模型

本文重点 在前面的课程中,我们学习了线性回归模型和非线性回归模型的区别和联系。多项式非线性回归模型是一种用于拟合非线性数据的回归模型。与线性回归模型不同,多项式非线性回归模型可以通过增加多项式的次数来适应更复杂的数据模式。在本文中,我们将介绍多项式非线性回…

[SpringMVC]仿写SpringMVC(注解开发)

文章目录 前提:1、代码结构2、核心:YhzMVC3、初始化步骤是:4、执行 前提: 当前版本无接受网络请求功能,不喜勿喷🙏🙏 本文将对代码核心进行讲解,源码已上传到gitee仓库 1、代码结构…

SpringBoot集成Druid实现数据库连接池

一、引入依赖 完整的pom文件如下所示: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http…

第四讲:MySQL中DDL一些基本数据类型及表的创建、查询

目录 1、创建表:2、DDL一些基本数据类型&#xff1a; 1、创建表: 部分单词及解析&#xff1a; 1、tables:表 2、comment:评论&#xff0c;解释 3、gender:性别 4、neighbor&#xff1a;邻居 1、创建表&#xff1a;&#xff08;注&#xff1a;在自定义数据库操作&#xff0c;…

Vue--》打造个性化医疗服务的医院预约系统(二)

今天开始使用 vue3 + ts 搭建一个医院预约系统的前台页面,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的GithHub上,大家可以自行去进行下载运行,希望本文章对有帮助的朋友们能多多关…

分布式锁:Redis、Zookeeper

1.基于Redis实现分布式锁&#xfeff; Redis分布式锁原理如上图所示&#xff0c;当有多个Set命令发送到Redis时&#xff0c;Redis会串行处理&#xff0c;最终只有一个Set命令执行成功&#xff0c;从而只有一个线程加锁成功 2.SetNx命令加锁 利用Redis的setNx命令在Redis数据库…

01 openEuler操作系统介绍

文章目录 01 openEuler操作系统介绍1.1 发布件1.2 最小硬件要求1.3 硬件兼容性1.4 关键特性1.4.1 openEuler 22.03-LTS基于 Linux Kernel 5.10 内核构建, 在进程调度、内存管理等方面带来10余处创新1.4.2 新介质文件系统1.4.3 内存分级扩展1.4.4 用户态协议栈1.4.5 云原生调度增…

【人工智能】深度优先搜索、代价一致搜索、深度有限搜索、迭代深度优先搜索、图搜索

【人工智能】无信息搜索—BFS 、代价一致、DFS、深度受限、迭代深入深度优先、图搜索 什么是搜索 搜索问题是指既不能通过数学建模解决,又没有其他算法可以套用或者非遍历所有情况才能得出正确结果。这时就需要采用搜索算法来解决问题。搜索就是一种通过穷举所有解的状态,来…

【车载开发系列】AUTOSAR DemDTCAttributes

【车载开发系列】AUTOSAR DemDTCAttributes 【车载开发系列】AUTOSAR DemDTCAttributes 【车载开发系列】AUTOSAR DemDTCAttributes一. DemDTCAttributes概念二. DemAgingCycleCounterThreshold三. DemAgingAllowed四. DemDTCPriority五. DemImmediateNvStorage六. DemMaxNumbe…

BatchNorm, LayerNorm, InstanceNorm和GroupNorm

1. 介绍 Batch Norm: 对NHW计算归一化参数(均值和方差)&#xff0c;总共得到C组归一化参数, 相当于对每个channel进行归一化。BN主要缺点是对batchsize的大小比较敏感&#xff0c;由于每次计算均值和方差是在一个batch上&#xff0c;所以如果batchsize太小&#xff0c;则计算的…

idea2021.安装pojie教程

1、下载ideaIU-2021.3应用包&#xff0c;点击finish 2、先关闭idea窗口&#xff0c;等会激活了脚本再运行打开。 3、双击运行install-current-user.vbs&#xff0c;等待一会会提示运行成功。 4、运行后&#xff0c;在文件中会多出一条配置 5、打开运行idea,输入激活码&#x…

iPhone 开机停留在苹果logo画面(已解决)

一、问题 如下图&#xff0c;开不了机&#xff1a; 标题 二、根因 存储空间满了。 三、解决方法 方法一 用苹果数据线&#xff08;最好是原装&#xff09;连接Mac电脑&#xff0c;在装有 macOS Catalina 10.15 或更高版本的 Mac 上&#xff0c;打开“访达”。在装有 macOS…

Vue-组件高级(上)

一、目标 能够掌握watch侦听器的基本使用能够知道vue中常用的生命周期函数能够知道如何实现组件之间的数据共享能够知道如何在vue3.x的项目中全局配置axios 二、目录 watch侦听器 1.什么是watch侦听器 watch侦听器允许开发之监视数据的变化&#xff0c;从而针对数据的变化做…

什么小程序需要商家自营相关类目?

1、百货&#xff1a;小程序主体公司综合零售商&#xff0c;在线售卖多种日用品&#xff0c;需补充商家自营-百货类目。预包装食品定义&#xff1a; 预包装食品&#xff0c;指预先定量包装或者制作在包装材料和容器中的食品&#xff1b;包括预先定量包装以及预先定量制作在包装…

微信小程序中如何携带参数跳转到tabBar页面

在小程序中使用了tabBar组件之后就不能用wx.navigateTo跳转到tabBar页面了 , 能跳转到tabBar页面的方法有以下两种 但是使用第一种方法时,会因为这种方法在路径后不能携带参数,所以行不通 那么就只能用第二种方法 , 用wx.reLaunch进行跳转 , 地址后跟上自己想要的参数 , 或者用…

使用Vue+elementUI实现CRUD

文章目录 前言一、简介二、使用Vue-Cli搭建Vue项目1. vue-cli 介绍2.axios.js 介绍3.Element-Ul 介绍4.moment.js 介绍5.搭建项目6.添加main.js配置7.修改App.vue8. 将moment.js 格式 Date 类型引入9. 加入分页10. 实现删除11. 实现添加12. 实现修改 总结 前言 最近了解了一下…

Qt 模态 非模态对话框 半模态 不阻塞对话框

Part1&#xff1a; 什么是模态和非模态对话框 对话框分为模态对话框和非模态对话框。 所谓模态对话框 所谓模态对话框&#xff0c;会阻塞同一应用程序中其它窗口的输入。同时会阻塞当前线程&#xff1b;程序不再下执行&#xff1b; 关闭 窗口&#xff0c;执行下面的代码&a…

从Nginx学习如何获取时间

最近因为工作接触到Nginx的学习&#xff0c;我就把Nginx的源代码下载下来&#xff0c;然后对其进行了分析。发现Nginx的性能强大离不开作者编码的苦心&#xff0c;作者将C的性能发挥到了极致&#xff0c;每个变量都用得非常出神入化。有如此强大的功能&#xff0c;才支撑了全球…