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,...