R語言資料分析系列之九 邏輯回歸

2021-07-01 20:01:53 字數 1853 閱讀 2121

本節將一下邏輯回歸和r語言實現,邏輯回歸(lr,logisticregression)其實屬於廣義回歸模型,根據因變數的型別和服從的分布可以分為,普通多元線性回歸模型,和邏輯回歸,邏輯回歸是指因變數是離散並且取值範圍為兩類,如果離散變數取值是多項即變為 multi-class classification,所以lr模型是乙個二分類模型,可以用來做ctr**等。那麼我們現在來引出邏輯回歸如何做二分類問題。

在多元線性回歸中我們的模型公式是這樣子的(參考前兩節內容),

這裡的f(x,w)是連續的變數,如果我們的因變數是離散的如何處理呢,比如我們得資料是這樣子的。

x y

gdf

ggplot(gdf,aes(x=x,y=x+0.5)) +geom_line(col='green')

這樣顯然無法擬合我們輸出,為了能夠擬合離散的輸出我們引入sigmoid函式如下:

ggplot(gdf,aes(x=x,y=y))+geom_line(col='blue')+ geom_vline(xintercept=c(0),col='red') + geom_hline(yintercept=c(0,1),lty=2)

用r將該函式的圖行畫出來如下圖:

又來這個函式我們可以很方便的將線性關係轉換為離散的輸出

於是我們的類別概率可以表示為:

這樣我們的轉化就完成了,模型最後化簡為如下形式:

上面引出了sigomid得函式並將其用於我們得模型,那如何定義損失函式呢,總不能去做減法吧,除了做減法我們還可以怎麼做呢,對於離散變數的模型,我們希望能夠達到,每個分類**正確的個數越多越好,即模型的聯合概率密度最大:

即我們要最大化l(w),為了優化l(w)取最大值,我們對l(w)去負對數似然,從而將最大化問題轉化為最小化問題:

接下來我們來優化這個損失函式的到是的l(w)最小的那組w。

優化方法有,牛頓法,梯度下降,l-bfgs這裡不再對這幾種方法詳述,後面其他系列裡面會講到。

我們利用iris資料集,進行邏輯回歸二分類測試,該資料集是r語言自帶得資料集,包括我個屬相,和三個分類。邏輯回歸我們用glm函式實現,該函式提供了各種型別得回歸,如:提供正態、指數、gamma、逆高斯、poisson、二項。我們用的logistic回歸使用的是二項分布族binomial。

index

ir levels(ir$species)[1]

split

#生成訓練集

ir_train

#生成測試集

ir_test

fit

summary(fit)

real

data.frame(real,predict)

predict

res 0.5,'virginca','versicorlor'))

#檢視模型效果

R語言資料分析系列之五

本節來討論一下r語言的基本圖形展示,先來看一張效果圖吧。這是一張用r語言生成的,虛擬的wordcloud雲圖,具體實現細節請參見我的github專案 好了我們開始今天的旅程吧 本節用到的包有 rcolorbrewer用來生成序列顏色值,plotrix三維圖形 本節用到的資料集 vcd包中的arthr...

R語言資料分析系列之五

本節來討論一下r語言的基本圖形展示,先來看一張效果圖吧。這是一張用r語言生成的,虛擬的wordcloud雲圖,詳細實現細節請參見我的github專案 好了我們開始今天的旅程吧 本節用到的包有 rcolorbrewer用來生成序列顏色值,plotrix三維圖形 本節用到的資料集 vcd包中的arthr...

R語言系列 回歸分析

r語言系列 回歸分析 一元線形回歸模型 有變數x,y。假設有關係y c bx e,其中c bx 是y隨x變化的部分,e是隨機誤差。可以很容易的用函式lm 求出回歸引數b,c並作相應的假設檢驗,如 x c 0.10,0.11,0.12,0.13,0.14,0.15,0.16,0.17,0.18,0.2...