使用R完成邏輯斯蒂迴歸分類 直接上程式碼,如下:
阿新 • • 發佈:2022-05-04
data_sample <- iris[51:150,]; m <- dim(data_sample)[1] #獲取資料集記錄條數 val <- sample(m, size =round(m/3), replace = FALSE, prob= rep(1/m, m)) #抽樣,選取三分之二的資料作為訓練集。 iris.learn <- data_sample[-val,] #選取訓練集 iris.valid <- data_sample[val,] #選取驗證集 #呼叫glm函式訓練邏輯斯蒂二元模型 #glm()提供正態、指數、gamma、逆高斯、Poisson、二項分佈。我們的logistic迴歸使用的是二項分佈族binomial。Binomial族預設連線函式為logit,可設定為probit。 logit.fit <- glm(Species~Petal.Width+Petal.Length, family = binomial(link = 'logit'), data = iris.learn); #生成測試資料集,實際上直接使用iris.valid dfrm <- data.frame(Petal.Width=iris.valid$Petal.Width, Petal.Length=iris.valid$Petal.Length); real_sort <- iris.valid$Species; #測試資料集實際類別 prdict_res <- predict(logit.fit, type="response", newdata=dfrm); #預測資料產生概率 data.frame(predict=prdict_res, real=real_sort); #檢視資料產生概率和實際分類的關係 data.frame(predict=ifelse(prdict_res>0.5, "virginica", "versicolor"), real=real_sort); #根據資料產生概率生成預測分類 table(data.frame(predict=ifelse(prdict_res>0.5, "virginica", "versicolor"), real=real_sort)); #計算分類準確度