分類分析--邏輯回歸(二分類)


分類分析--邏輯回歸

邏輯回歸(logistic regression)是廣義線性模型的一種,可根據一組數值變量預測二元輸出,即邏輯回歸只適用於二分類 ,R中的基本函數glm()可用於擬合邏輯回歸模型。glm()函數自動將預測變量中的分類變量編碼為相應的虛擬變量。威斯康星乳腺癌數據中的全部預測變量都是數值變量,因此不必要對其編碼。

1)使用glm()進行邏輯回歸

#擬合邏輯回歸,基於df.train數據框中的數據構造邏輯回歸模型

fit.logit <- glm(class~., data=df.train, family=binomial())       

summary(fit.logit)      #檢查模型

 

 

  

結果分析:模型中有三個預測變量(sizeUniformityshapeUniformitysingleEpithelialCellSize)的系數未通過顯著性檢驗(即p值大於0.1)。從預測的角度來說,我們一般不會將這些變量納入最終模型。當這類不包含相關信息的變量特別多時,可以直接將其認定為模型中的噪聲。

#對訓練集外樣本單元進行分類,采用基於df.train建立的模型來對df.validate數據集中的樣本單元分類。predict()函數默認輸出腫瘤為惡性的對數概率,指定參數type="response"即可得到預測腫瘤為惡性的概率。樣本單元中,概率大於0.5的被分為惡性腫瘤類,概率小於等於0.5的被分為良性腫瘤類。

prob <- predict(fit.logit, df.validate, type="response")      

logit.pred <- factor(prob > .5, levels=c(FALSE, TRUE),

                       labels=c("benign", "malignant"))

#評估預測准確性,給出預測與實際情況對比的交叉表(即混淆矩陣,confusion matrix

logit.perf <- table(df.validate$class, logit.pred,dnn=c("Actual", "Predicted"))

logit.perf

 

結果分析:模型正確判別了129個類別為良性的患者和69個類別為惡性的患者。在驗證集上,正確分類的模型(即准確率,accuracy)為(129+69)/205=96.6%


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM