欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在R語言中實現(xiàn)Logistic邏輯回歸的操作

 更新時間:2021年04月21日 15:02:35   作者:拓端研究室  
這篇文章主要介紹了在R語言中實現(xiàn)Logistic邏輯回歸的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

邏輯回歸是擬合回歸曲線的方法,當(dāng)y是分類變量時,y = f(x)。典型的使用這種模式被預(yù)測Ÿ給定一組預(yù)測的X。預(yù)測因子可以是連續(xù)的,分類的或兩者的混合。

R中的邏輯回歸實現(xiàn)

R可以很容易地擬合邏輯回歸模型。要調(diào)用的函數(shù)是glm(),擬合過程與線性回歸中使用的過程沒有太大差別。在這篇文章中,我將擬合一個二元邏輯回歸模型并解釋每一步。

數(shù)據(jù)集

我們將研究泰坦尼克號數(shù)據(jù)集。這個數(shù)據(jù)集有不同版本可以在線免費獲得,但我建議使用Kaggle提供的數(shù)據(jù)集。

目標(biāo)是預(yù)測生存(如果乘客幸存,則為1,否則為0)基于某些諸如服務(wù)等級,性別,年齡等特征。

我們將使用分類變量和連續(xù)變量。

數(shù)據(jù)清理過程

在處理真實數(shù)據(jù)集時,我們需要考慮到一些數(shù)據(jù)可能丟失的情況,因此我們需要為我們的分析準(zhǔn)備數(shù)據(jù)集。

作為第一步,我們使用該函數(shù)加載csv數(shù)據(jù)read.csv()。

使每個缺失值編碼為NA。

training.data.raw < - read.csv('train.csv',header = T,na.strings = c(“”))

現(xiàn)在我們需要檢查缺失的值,查看每個變量的唯一值,使用sapply()函數(shù)將函數(shù)作為參數(shù)傳遞給數(shù)據(jù)框的每一列。

 
PassengerId    Survived      Pclass        Name         Sex 
          0           0           0           0           0 
        Age       SibSp       Parch      Ticket        Fare 
        177           0           0           0           0 
      Cabin    Embarked 
        687           2 
 
length(unique(x)))
 
PassengerId    Survived      Pclass        Name         Sex 
        891           2           3         891           2 
        Age       SibSp       Parch      Ticket        Fare 
         89           7           7         681         248 
      Cabin    Embarked 
        148           4

對缺失值進(jìn)行可視化處理可能會有所幫助:可以繪制數(shù)據(jù)集并顯示缺失值:

機(jī)艙有太多的缺失值,我們不使用它。

使用subset()函數(shù)我們對原始數(shù)據(jù)集進(jìn)行子集化,只選擇相關(guān)列。

data < - subset(training.data.raw,select = c(2,3,5,6,7,8,10,12))

現(xiàn)在我們需要解釋其他缺失的值。通過在擬合函數(shù)內(nèi)設(shè)置參數(shù)來擬合廣義線性模型時,R可以很容易地處理它們。

有不同的方法可以做到這一點,一種典型的方法是用現(xiàn)有的平均值,中位數(shù)或模式代替缺失值。我將使用平均值。

data$ Age [is.na(data $ Age)] < - mean(data$ Age,na.rm = T)
 

就分類變量而言,使用read.table()或read.csv()默認(rèn)會將分類變量編碼為因子。

為了更好地理解R如何處理分類變量,我們可以使用contrasts()函數(shù)。

在進(jìn)行擬合過程之前,先清潔和格式化數(shù)據(jù)。這個預(yù)處理步驟對于獲得模型的良好擬合和更好的預(yù)測能力通常是至關(guān)重要的。

模型擬合

我們將數(shù)據(jù)分成兩部分:訓(xùn)練和測試集。訓(xùn)練集將用于擬合我們的模型。

model <- glm(Survived ~.,family=binomial(link='logit'),data=train)

通過使用函數(shù),summary()我們獲得了我們模型的結(jié)果:

 
Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.6064  -0.5954  -0.4254   0.6220   2.4165  
Coefficients:
             Estimate Std. Error z value Pr(>|z|)    
(Intercept)  5.137627   0.594998   8.635  < 2e-16 ***
Pclass      -1.087156   0.151168  -7.192 6.40e-13 ***
Sexmale     -2.756819   0.212026 -13.002  < 2e-16 ***
Age         -0.037267   0.008195  -4.547 5.43e-06 ***
SibSp       -0.292920   0.114642  -2.555   0.0106 *  
Parch       -0.116576   0.128127  -0.910   0.3629    
Fare         0.001528   0.002353   0.649   0.5160    
EmbarkedQ   -0.002656   0.400882  -0.007   0.9947    
EmbarkedS   -0.318786   0.252960  -1.260   0.2076    
---
Signif. codes:  0 ‘***' 0.001 ‘**' 0.01 ‘*' 0.05 ‘.' 0.1 ‘ ' 1

解釋我們的邏輯回歸模型的結(jié)果

現(xiàn)在我們可以分析擬合并解釋模型告訴我們什么。

首先,我們可以看到SibSp,F(xiàn)are和Embarked沒有統(tǒng)計意義。至于統(tǒng)計上顯著的變量,性別具有最低的p值,這表明乘客的性別與存活的可能性有很強(qiáng)的關(guān)聯(lián)。

預(yù)測因子的負(fù)系數(shù)表明所有其他變量相同,男性乘客不太可能存活下來。

由于男性是虛擬變量,因此男性將對數(shù)概率降低2.75,而單位年齡增加則將對數(shù)概率降低0.037。

現(xiàn)在我們可以運(yùn)行anova()模型上的函數(shù)來分析偏差表

Analysis of Deviance Table
Model: binomial, link: logit
Response: Survived
Terms added sequentially (first to last)
         Df Deviance Resid. Df Resid. Dev  Pr(>Chi)    
NULL                       799    1065.39              
Pclass    1   83.607       798     981.79 < 2.2e-16 ***
Sex       1  240.014       797     741.77 < 2.2e-16 ***
Age       1   17.495       796     724.28 2.881e-05 ***
SibSp     1   10.842       795     713.43  0.000992 ***
Parch     1    0.863       794     712.57  0.352873    
Fare      1    0.994       793     711.58  0.318717    
Embarked  2    2.187       791     709.39  0.334990    

零偏差和剩余偏差之間的差異越大越好。通過分析表格,我們可以看到每次添加一個變量時出現(xiàn)偏差的情況。

同樣,增加Pclass,Sex and Age可以顯著減少殘余偏差。

這里的大p值表示沒有變量的模型或多或少地解釋了相同的變化量。最終你想看到的是一個顯著的下降和偏差A(yù)IC。

評估模型的預(yù)測能力

在上面的步驟,我們簡要評價模型的擬合。通過設(shè)置參數(shù)type='response',R將以P(y = 1 | X)的形式輸出概率。我們的決策邊界將是0.5。如果P(y = 1 | X)> 0.5,則y = 1,否則y = 0。請注意,對于某些應(yīng)用場景,不同的閾值可能是更好的選擇。

 fitting.results < - ifelse(fitted.results> 0.5,1,0)
misClasificError < - mean(fitted.results!= test $ Survived

測試集上的0.84精度是相當(dāng)不錯的結(jié)果。但是,如果您希望得到更精確的分?jǐn)?shù),最好運(yùn)行交叉驗證,如k折交叉驗證驗證。

作為最后一步,我們將繪制ROC曲線并計算二元分類器典型性能測量的AUC(曲線下面積)。

ROC是通過在各種閾值設(shè)置下將真陽性率(TPR)與假陽性率(FPR)作圖而產(chǎn)生的曲線,而AUC是ROC曲線下的面積。作為一個經(jīng)驗法則,具有良好預(yù)測能力的模型應(yīng)該接近于1。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • R語言繪制尺子的實現(xiàn)示例

    R語言繪制尺子的實現(xiàn)示例

    本文使用基本的繪圖命令plot、rect、segments、text繪制一把長10厘米的直尺,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • R語言刷題檢驗數(shù)據(jù)缺失類型過程詳解

    R語言刷題檢驗數(shù)據(jù)缺失類型過程詳解

    這篇文章主要為大家介紹了R語言刷題中檢驗數(shù)據(jù)缺失類型的過程示例分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • R語言繪制雙坐標(biāo)圖的案例詳解

    R語言繪制雙坐標(biāo)圖的案例詳解

    這篇文章主要介紹了R語言繪制雙坐標(biāo)圖,下面就跟大家介紹plotrix包中的twoord.plot()函數(shù)和twoord.stackplot()函數(shù),它們可以實現(xiàn)雙坐標(biāo)軸圖形的繪制,需要的朋友可以參考下
    2023-01-01
  • R語言中字符串的拼接操作實例講解

    R語言中字符串的拼接操作實例講解

    這篇文章主要介紹了R語言中字符串的拼接操作實例講解,文中使用了具體的代碼實例,有感興趣的同學(xué)可以研究下
    2021-03-03
  • R語言邏輯回歸深入講解

    R語言邏輯回歸深入講解

    這篇文章主要介紹了R語言邏輯回歸深入講解,文中對于邏輯回歸講解的很細(xì)致,有感興趣的同學(xué)可以研究下
    2021-03-03
  • R語言中邏輯回歸知識點總結(jié)

    R語言中邏輯回歸知識點總結(jié)

    在本篇文章里小編給大家總結(jié)了關(guān)于R語言中邏輯回歸知識點相關(guān)內(nèi)容,有需要的朋友們跟著學(xué)習(xí)下。
    2021-05-05
  • 利用R語言繪制時間序列圖的操作

    利用R語言繪制時間序列圖的操作

    這篇文章主要介紹了利用R語言繪制時間序列圖的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 用R語言繪制函數(shù)曲線圖

    用R語言繪制函數(shù)曲線圖

    這篇文章主要介紹了如何用R語言繪制函數(shù)曲線圖,幫助大家更好的理解和學(xué)習(xí)使用R語言,感興趣的朋友可以了解下
    2021-03-03
  • R語言格式化輸出sprintf實例講解

    R語言格式化輸出sprintf實例講解

    這篇文章主要介紹了R語言格式化輸出sprintf實例講解,文中代碼實例講解的很清楚,有需要的同學(xué)可以研究下
    2021-03-03
  • 使用R語言繪制散點圖結(jié)合邊際分布圖教程

    使用R語言繪制散點圖結(jié)合邊際分布圖教程

    這篇文章主要介紹了使用R語言利用ggplot繪制散點圖,并且在圖像的兩邊繪制邊際分布圖(包括邊際直方圖與邊際密度函數(shù))我們這里介紹兩種方法進(jìn)行繪制
    2021-11-11

最新評論