1. 程式人生 > 其它 >R語言中的非線性分類

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)

點選詳細瞭解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掌握機器學習

涵蓋了自學教程端到端專案,如:載入資料、視覺化、構建模型、調優等等...

最後把機器學習帶到你自己的專案中去

跳過學術,就是結果。

點選瞭解更多