日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

常用的分类与预测算法

發布時間:2023/12/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常用的分类与预测算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

根據挖掘目標和數據形式可以建立分類與預測、聚類分析、關聯規則、時序模式、偏差檢測。

算法名稱算法描述
回歸分析確定預測屬性與其他變量間相互依賴的定量關系最常用的統計學方法
決策樹自頂向下的遞歸方式,在內部節點進行屬性值的比較,并根據不同的屬性值從該節點下分支,最終得到的葉節點是學習劃分的類
人工神經網絡輸入與輸出之間關系的模型
貝葉斯網絡不確定知識表達和推理領域最有效的理論模型之一
支持向量機把低維的非線性可分轉化為高維的線性可分,在高維空間進行線性分析的算法

主要回歸模型

回歸模型名稱算法描述
線性回歸對一個或多個自變量和因變量之間的線性關系進行建模,可用最小二乘法求解模型系數
非線性回歸對一個或多個自變量和因變量之間的非線性關系進行建模。如果非線性關系可以通過簡單的函數變換轉化成線性關系,用線性回歸的思想求解;不過不能轉化,用非線性最小二乘法求解
Logistic回歸廣義線性回歸模型的特例,利用Logistic函數將因變量的取值范圍控制在0和1之間,表示取值為1的概率
嶺回歸一種改進最小二乘估計的方法
主成分回歸主成分回歸是根據主成分分析的思路提出來的,是對最小二乘法的一種改進,它是參數估計的一種有偏估計。可以消除自變量之間的多重共線性
glm <- glm(y ~ x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8,family = binomial(link = logit), data = Data) summary(glm) # 逐步尋優法 logit.step <- step(glm, direction = "both") summary(logit.step) # 前向選擇法 logit.step <- step(glm, direction = "forward") summary(logit.step) # 后向選擇法 logit.step <- step(glm, direction = "backward") summary(logit.step)

決策樹
樹狀結構,每一個葉節點對應一個分類,非葉節點對應著在某個屬性上的劃分,根據樣本在該屬性上的不同取值將其劃分成若干子集。

# 計算一列數據的信息熵 calculateEntropy <- function(data) {t <- table(data) sum <- sum(t) t <- t[t != 0] entropy <- -sum(log2(t / sum) * (t / sum))return(entropy) } # 計算兩列數據的信息熵 calculateEntropy2 <- function(data) {var <- table(data[1])p <- var/sum(var)varnames <- names(var)array <- c()for (name in varnames) {array <- append(array, calculateEntropy(subset(data, data[1] == name,select = 2)))}return(sum(array * p)) }buildTree <- function(data) {if (length(unique(data$result)) == 1) {cat(data$result[1])return()}if (length(names(data)) == 1) {cat("...")return()}entropy <- calculateEntropy(data$result) labels <- names(data)label <- ""temp <- Infsubentropy <- c()for (i in 1:(length(data) - 1)) {temp2 <- calculateEntropy2(data[c(i, length(labels))])if (temp2 < temp) { temp <- temp2 label <- labels[i] }subentropy <- append(subentropy,temp2) }cat(label)cat("[")nextLabels <- labels[labels != label]for (value in unlist(unique(data[label]))) {cat(value,":")buildTree(subset(data,data[label] == value, select = nextLabels))cat(";")}cat("]") } # 構建分類樹 buildTree(data)

人工神經網絡

算法名稱算法描述
BP神經網絡BP神經網絡是一種按誤差你傳播算法訓練的多層前饋網絡,學習算法是δ學習規則,是目前應用最廣泛的神經網絡模型之一
LM神經網絡LM神經網絡是基于梯度下降法和牛頓法結合的多層前饋網絡,特點:迭代次數少,收斂速度快,精確度高
RBF徑向基神經網絡RBF徑向基神經網絡能夠以任意精度逼近任意連續函數,從輸入層到隱含層的變換是非線性的,而從隱含層到輸出層的變換是線性的,特別適合于解決分類問題
FNN模糊神經網絡FNN模糊神經網絡是具有模糊權系數或者輸入信號是模糊量的神經網絡,是模糊系統與神經網絡相結合的產物,它匯聚了神經網絡與模糊系統的優點,集聯想、識別、自適應及模糊信息處理于一體
GMDH神經網絡GMDH網絡也稱多項式網絡,它是前饋神經網絡中常用的一種用于預測的神經網絡。特點是網絡結構不固定,在訓練過程中不斷改變。
ANFIS自適應神經網絡神經網絡鑲嵌在一個全部模糊的結構之中,在不知不覺中向訓練數據學習,自動產生、修正并高度概括出最佳的輸入與輸出變量的隸屬函數及模糊規則;另外,神經網絡的各層結構與參數都具有明確的、易于理解的物理意義。
# 數據命名 library(nnet) colnames(Data) <- c("x1", "x2", "x3", "y") # 最終模型 model1 <- nnet(y ~ ., data = Data, size = 6, decay = 5e-4, maxit = 1000) pred <- predict(model1, Data[, 1:3], type = "class") (P <- sum(as.numeric(pred == Data$y)) / nrow(Data)) table(Data$y, pred) prop.table(table(Data$y, pred), 1)

分類與預測的評價
(1)絕對誤差與相對誤差
(2)平均絕對誤差
(3)均方誤差
(4)均方根誤差
(5)平均絕對百分誤差
(6)Kappa統計
(7)識別準確度
(8)識別精確率
(9)反饋率
(10)ROC曲線
(11)混淆矩陣
主要分類預測算法函數

函數名函數功能
lda()構建一個線性判別分析模型
NaiveBayes()構建一個樸素貝葉斯分類器
knn()構建一個K最近鄰分類模型
rpart()構建一個分類回歸樹模型
bagging()構建一個集成學習分類器
randomForest()構建一個隨機森林模型
svm()構建一個支持向量機模型
nnet()構建一個人工識別神經網絡模型

總結

以上是生活随笔為你收集整理的常用的分类与预测算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。