R语言中的非线性分类

时间:2022-04-28
本文章向大家介绍R语言中的非线性分类,主要内容包括混合判别分析、二次判别分析、规范化判别分析、神经网络、灵活的判别分析、支持向量机、k-最近邻、朴素贝叶斯、总结、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

你可以在这篇文章中找到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)

点击详细了解mda软件包中mda函数。

二次判别分析

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)

了解有关nnet软件包中nnet功能的更多信息

灵活的判别分析

这个配方演示了虹膜数据集上的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掌握机器学习

涵盖了自学教程端到端项目,如:加载数据、可视化、构建模型、调优等等...

最后把机器学习带到你自己的项目中去

跳过学术,就是结果。

点击了解更多