1. 程式人生 > >邏輯迴歸及R語言的實現

邏輯迴歸及R語言的實現

邏輯迴歸介紹

邏輯迴歸演算法和線性迴歸非常相似,兩者區別是在於線性迴歸演算法中的變數是連續變數,而邏輯迴歸響應變數是二分類的變數(名義變數),使用邏輯迴歸演算法主要目的是利用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]))

警告資訊與處理