7 邏輯回歸實踐

2022-05-21 22:18:14 字數 2589 閱讀 8655

1.邏輯回歸是怎麼防止過擬合的?為什麼正則化可以防止過擬合?

(1)首先什麼是過擬合?

過擬合是指訓練模型時過於嚴格,學習能力太強,導致訓練出的模型過於複雜,學習到了很多無關緊要的特徵,過度擬合的問題通常發生在變數(特徵)過多的時候。這種情況下訓練出的方程總是能很好的擬合訓練資料,此時的代價函式可能非常接近於 0 或者就為 0,出現這種現象的主要原因是訓練資料中存在噪音或者訓練資料太少。

(2)如何防止過擬合?

1)增加樣本量,適用任何模型。

2)使用正則化:如果資料稀疏,使用l1正則,其他使用l2正則較好

3)特徵選擇,檢查選取的特徵,將一些不重要的特徵去除降低模型複雜度;

4)逐步回歸

4)進行離散化處理,所有特徵都離散化(邏輯回歸特有的防止過擬合的方法)

(3)為什麼正則化可以防止過擬合?

l1正則是通過增大正則項導致更多引數為0,引數係數化降低模型複雜度,從而抵抗過擬合,l2正則是通過使得引數都趨於0,變得很小,降低模型的抖動,從而抵抗過擬合。正則化中我們將保留所有的特徵變數,但是會減小特徵變數的數量級(引數數值的大小θ(j))。這個方法非常有效,當我們有很多特徵變數時,其中每乙個變數都能對會對**或多或少產生影響影響。所以我們不能一昧的把那些特徵資料刪掉,我們可以利用正則化對特徵資料進行減擬合,防止過擬合。

2.用logiftic回歸來進行實踐操作,資料不限。

from sklearn.linear_model import

logisticregression

from sklearn.model_selection import

train_test_split

from sklearn.preprocessing import

standardscaler

from sklearn.metrics import

classification_report

import

pandas as pd

deflog_r():

data = pd.read_csv('

./venv/data/房產資訊.csv')

#檔案為從樂有家官網爬取的資料

#201706120019hdfend.csv檔案為處理有匯出的資料檔案

#房屋朝向特徵化:

#南:0

#東:1

#北:2

#西:3

#房屋有無電梯特徵化:

#暫無:0

#有電梯:1

#房屋樓層特徵化:

#高樓層:0

#中樓層:1

#低樓層:2

#裝修程度特徵化:

#普裝:0

#精裝:1

#毛呸:2

#豪裝:3

x = data.loc[:, ['

朝向', '

時間', '

樓層', '

面積㎡', '

室', '

廳', '

房', '

裝修程度

','售價']]

print

(x) y = data.iloc[:, 2]

print

(y)

#缺失值處理

data = data.dropna(axis=0)

#資料分割

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.3)

#進行標準化處理,只處理將x標準化,y不需要,因為y是只有0,1的分類

std =standardscaler()

x_train =std.fit_transform(x_train)

x_test =std.transform(x_test)

#構建回歸模型

lr_model =logisticregression()

#模型**

lr_model.fit(x_train,y_train)

#**結果

y_pre =lr_model.predict(x_test)

print('

邏輯回歸模型的權值:\n

', lr_model.coef_)

print("

準確率:

",lr_model.score(x_test,y_test))

print("

模型的分類報告,召回率:\n

",classification_report(y_test,y_pre,target_names=["

暫無電梯

","有電梯

"]))

if__name__ == '

__main__':

log_r()

訓練集

結果集

** 結果:

7 邏輯回歸實踐

1.邏輯回歸是怎麼防止過擬合的?為什麼正則化可以防止過擬合?大家用自己的話介紹下 是通過正則化來防止的。過擬合的時候,擬合函式的係數往往非常大,而正則化是通過約束引數的範數使其不要太大,所以可以在一定程度上減少過擬合情況。如下圖所示,過擬合,就是擬合函式需要顧忌每乙個點,最終形成的擬合函式波動很大。...

7 邏輯回歸實踐

1.邏輯回歸是怎麼防止過擬合的?為什麼正則化可以防止過擬合?大家用自己的話介紹下 邏輯回歸通過正則化來防止過擬合 正則化可以防止過擬合是因為過擬合的時候,擬合函式的係數往往非常大,而正則化是 通過約束引數的範數使其不要太大,所以可以在一定程度上減少過擬合情況,以l2正則化為例,正則項會使權重趨於0,...

7 邏輯回歸實踐

1.邏輯回歸是怎麼防止過擬合的?為什麼正則化可以防止過擬合?大家用自己的話介紹下 1 通過正則化來防止過擬合 2 如圖,過擬合後,得到的方程很擬合訓練的資料,但是用測試集去測試時,則可能認為其不是那一類的,以至於無法 新樣本的標籤。保留所有的特徵變數,但是減少特徵變數的數量級。假設我們使 6,7.n...