邏輯回歸實踐

2022-07-19 05:15:15 字數 2344 閱讀 5759

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

答:(1)可以通過增加樣本量,或者提取不重要的特徵進行降維來防止過擬合,也可以通過正則化來防止過擬合。

(2)正則化的原理,就是通過約束係數(w)的大小,進而抑制整體的過擬合情況。

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

答:我這次選擇的實踐是,利用邏輯回歸 依據各種屬性資料**乳腺癌的患病情況。

資料應用的是uci的威斯康星州(診斷)資料,並給它新增了標籤。(一共570條資料)。

其屬性資訊為:

1)id號 

2)診斷(m =惡性,b =良性) 

3-32) 

為每個細胞核計算十個實值特徵: 

a)半徑(中心到周長上各點的距離的平均值) 

b)紋理(灰度值的標準偏差) 

c)周長 

d)面積 

e)光滑度(半徑長度的區域性變化) 

f)緊湊度(周長^ 2 /面積-1.0) 

g)凹度(輪廓凹部的嚴重程度) 

h )凹點(輪廓的凹入部分的數量) 

i)對稱性 

j)分形維數(「海岸線近似」-1)

實驗**:

from sklearn.model_selection import train_test_split  #

劃分資料集

from sklearn.linear_model import logisticregression #

邏輯回歸

from sklearn.metrics import

classification_report

from sklearn.preprocessing import standardscaler #

標準化處理

#匯入基礎的庫

import

pandas as pd

data = pd.read_csv(r'

d:\shujvji\aizhenghuanzhe1.csv

', encoding='

utf-8

') #

讀取csv資料

#data.head(3)

x_data = data.iloc[:, 2:10]

y_data = data.iloc[:, 1]

x_train, x_test, y_train, y_test = train_test_split(x_data, y_data, test_size=0.3) #

劃分測試集佔整體30%

#進行標準化處理

std =standardscaler()

x_train =std.fit_transform(x_train)

x_test =std.transform(x_test)#建模

mylg = logisticregression() #

應用邏輯回歸演算法

mylg.fit(x_train, y_train) #

用邏輯回歸構建模型

print('

模型引數:\n

', mylg.coef_) #

其結果代表θ,以矩陣方式呈現

mylg_predict = mylg.predict(x_test) #

**target_names = ['

m', 'b'

]print('

準確率:\n

', mylg.score(x_test, y_test))

print('

召回率:\n

', classification_report(y_test, mylg_predict, target_names=target_names))

模型引數:

模型準確率:

召回率和**精度

7 邏輯回歸實踐

1.邏輯回歸是怎麼防止過擬合的?為什麼正則化可以防止過擬合?1 首先什麼是過擬合?過擬合是指訓練模型時過於嚴格,學習能力太強,導致訓練出的模型過於複雜,學習到了很多無關緊要的特徵,過度擬合的問題通常發生在變數 特徵 過多的時候。這種情況下訓練出的方程總是能很好的擬合訓練資料,此時的代價函式可能非常接...

7 邏輯回歸實踐

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

7 邏輯回歸實踐

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