邏輯迴歸及R語言的實現
阿新 • • 發佈:2018-12-21
邏輯迴歸介紹
邏輯迴歸演算法和線性迴歸非常相似,兩者區別是在於線性迴歸演算法中的變數是連續變數,而邏輯迴歸響應變數是二分類的變數(名義變數),使用邏輯迴歸演算法主要目的是利用logit模型去預測和測量變數相關的名義變數的概率。邏輯迴歸公式:ln(P/(1-P)),P為某事情發生的概率。
引數介紹
例項
rm(list=ls()) # 移除工作區變數 library(kknn) # kknn包中含有knn演算法 library(ISLR) # 含有Caravan資料集 attach(Caravan) var0 = c('PVRAAUT','PZEILPL','AVRAAUT','AZEILPL') Caravan = Caravan[,!names(Caravan) %in% var0] # 去除無用變數 purchase = ifelse(Purchase=="No",0,1) # 將響應變數置為0/1 Caravan = data.frame(Caravan,purchase) # 劃分訓練集測試集 set.seed(1) train.index = sample(1:nrow(Caravan),1000) Caravan.train = Caravan[train.index,] Caravan.test = Caravan[-train.index,] # 進行邏輯迴歸 logit.caravan = glm(purchase~.,data = Caravan.train,family = binomial(link='logit'), control=list(maxit=100)) logit.pred = predict(logit.caravan,Caravan.test,type = "response") logit.pred = ifelse(logit.pred>=0.2,1,0) print(table(logit.pred,purchase[-train.index]))