R语言中的非线性分类
你可以在这篇文章中找到8种在R语言中实现的非线性方法,每一种方法都做好了为你复制粘贴及修改你问题的准备。
本文中的所有方法都使用了数据集包中随R提供的虹膜花数据集。这个数据集描述了虹膜花的测量结果,并且要求将每次的观察结果分类到三种花中的一种。
Irise花儿
照片来自:dottieg2007,部分权利保留
混合判别分析
这个配方演示了虹膜数据集上的MDA方法。
R中的混合判别分析:
# load the package
library(mda)
data(iris)
# fit model
fit <- mda(Species~., data=iris)
# summarize the fit
summary(fit)
# make predictions
predictions <- predict(fit, iris[,1:4])
# summarize accuracy
table(predictions, iris$Species)
二次判别分析
QDA寻求最大化类间距离的属性之间的二次关系。
这个配方演示了虹膜数据集上的QDA方法。
R中的二次判别分析 :
# load the package
library(MASS)
data(iris)
# fit model
fit <- qda(Species~., data=iris)
# summarize the fit
summary(fit)
# make predictions
predictions <- predict(fit, iris[,1:4])$class
# summarize accuracy
table(predictions, iris$Species)
需要更多R中的elp专用于机器学习吗?
参加我的免费14天电子邮件课程,并了解如何在您的项目中使用R(附带示例代码)。
点击注册,并获得免费的PDF电子书版本的课程。
规范化判别分析
这个配方演示了虹膜数据集上的RDA方法。
R中的规范化判别分析 :
# load the package
library(klaR)
data(iris)
# fit model
fit <- rda(Species~., data=iris, gamma=0.05, lambda=0.01)
# summarize the fit
summary(fit)
# make predictions
predictions <- predict(fit, iris[,1:4])$class
# summarize accuracy
table(predictions, iris$Species)
了解更多关于RDA的功能KLAR包。
神经网络
神经网络(NN)是接收输入并将结果传递到传递的输出的计算单元的图形,这些单元被排序成层,以便将输入矢量的特征连接到输出矢量的特征。通过训练(如反向传播算法),神经网络可以被设计和训练来模拟数据中的基础关系。
这个配方演示了虹膜数据集上的一个神经网络。
R中的神经网络:
# load the package
library(nnet)
data(iris)
# fit model
fit <- nnet(Species~., data=iris, size=4, decay=0.0001, maxit=500)
# summarize the fit
summary(fit)
# make predictions
predictions <- predict(fit, iris[,1:4], type="class")
# summarize accuracy
table(predictions, iris$Species)
灵活的判别分析
这个配方演示了虹膜数据集上的FDA方法。
R中的柔性判别分析 :
# load the package
library(mda)
data(iris)
# fit model
fit <- fda(Species~., data=iris)
# summarize the fit
summary(fit)
# make predictions
predictions <- predict(fit, iris[,1:4])
# summarize accuracy
table(predictions, iris$Species)
详细了解mda软件包中的fda功能。
支持向量机
支持向量机(SVM)是一种在转换问题空间中使用点的方法,可以最佳地将类分为两组。对于多种类别的分类方法是以一对多的模式进行的,SVM(支持向量机)还支持通过建模功能与最小量的允许误差的回归。
这个配方演示了虹膜数据集上的SVM方法。
R中的支持向量机法:
# load the package
library(kernlab)
data(iris)
# fit model
fit <- ksvm(Species~., data=iris)
# summarize the fit
summary(fit)
# make predictions
predictions <- predict(fit, iris[,1:4], type="response")
# summarize accuracy
table(predictions, iris$Species)
详细了解kernlab软件包中的ksvm函数。
k-最近邻
k-最近邻(kNN)方法通过将相似案例定位到给定数据实例(使用相似性函数)并返回平均或大部分最相似的数据实例来做出预测。
这个配方演示了虹膜数据集上的kNN方法。
# load the package
library(caret)
data(iris)
# fit model
fit <- knn3(Species~., data=iris, k=5)
# summarize the fit
summary(fit)
# make predictions
predictions <- predict(fit, iris[,1:4], type="class")
# summarize accuracy
table(predictions, iris$Species)
详细了解插入符包中的knn3函数。
朴素贝叶斯
朴素贝叶斯使用贝叶斯定理来模拟每个属性与类变量的条件关系。
这个配方演示了基于虹膜数据集上的朴素贝叶斯。
R中的朴素贝叶斯:
# load the package
library(caret)
data(iris)
# fit model
fit <- knn3(Species~., data=iris, k=5)
# summarize the fit
summary(fit)
# make predictions
predictions <- predict(fit, iris[,1:4], type="class")
# summarize accuracy
table(predictions, iris$Species)
详细了解e1071软件包中的naiveBayes功能。
总结
在这篇文章中,您使用虹膜花数据集找到了R中的非线性分类的8种方法。
每种方法都是通用的,可供您复制,粘贴和修改您自己的问题。
感觉在R中机器学习的过程不太顺利?
只需几分钟,开发你自己的模型
...只需几行R代码
在我的新电子书中找到方法:用R掌握机器学习
涵盖了自学教程和端到端项目,如:加载数据、可视化、构建模型、调优等等...
最后把机器学习带到你自己的项目中去
跳过学术,就是结果。
- Layui常用方法
- 使用Identity Server 4建立Authorization Server (4)
- 使用Identity Server 4建立Authorization Server (3)
- 使用Identity Server 4建立Authorization Server (2)
- 使用Identity Server 4建立Authorization Server (1)
- Java之异常处理
- 挖洞经验 | 看我如何利用SAML漏洞实现Uber内部聊天系统未授权登录
- 使用ichartjs生成图表
- 使用angular4和asp.net core 2 web api做个练习项目(四)
- list.add(),向List集合插入对象报空指针异常
- 使用angular4和asp.net core 2 web api做个练习项目(三)
- 即学即用系列一:纯函数
- Java之StringBuffer,StringBuilder,Math,Date,SimpleDateFormat,UUID,File
- React编程思想
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【原创】Spring Boot终极篇《上》
- 【原创】Spring Boot终极篇《下》
- 面试官:JDK、JRE、JVM 三者什么关系?
- 面试官:什么是面向对象?
- 详解SpringCloud中RabbitMQ消息队列原理及配置,一篇就够!
- 面试官:什么是字节码?它最大的优势是什么?
- 数组转List,一定要小心这个坑!
- 【小白学PyTorch】5.torchvision预训练模型与数据集全览
- 实战 | Python爬取B站柯南弹幕+Gephi梳理主线剧情
- Docker 部署SpringBoot项目不香吗?
- 面试官写了个双冒号::问我这是什么语法?Java中有这玩意?
- 精解四大集合框架:List核心知识总结
- 【深度学习】Keras vs PyTorch vs Caffe:CNN实现对比
- 【深度学习】迁移学习理论与实践
- 使用OpenCV+Tensorflow跟踪排球的轨迹