今天看了會l2正則化,大致的意思就是在懲戒函式中加入高次項的懲戒項,用來減小線性回歸中高次項的係數,避免過擬合的狀態。這樣就產生了一種具有正則化的線性回歸模型------嶺回歸。
sklearn.linear_model.ridge(alpha=
1.0)
#具有正則化的線性最小二乘法
#alpha 表示正則化力度
#coel_ 表示回歸係數
from sklearn.linear_model import ridge
# 嶺回歸降求解**結果
ri = ridge(alpha=
1.0)
#例項化嶺回歸物件
ri.fit(x_train, y_train)
#輸入訓練資料
print
("特徵值"
, ri.coef_)
# **測試集的房子**
ri_y_predict = std_y.inverse_transform(ri.predict(x_test)
)print
("梯度下降每個房子的****:"
, ri_y_predict)
print
("正規方程均方誤差:"
, mean_squared_error(std_y.inverse_transform(y_test)
, y_predict)
)print
("梯度下降均方誤差:"
, mean_squared_error(std_y.inverse_transform(y_test)
, sgd_y_predict)
)print
("嶺回歸誤差:"
:# 獲取資料
lb = load_boston(
)# 分割資料集為訓練集和測試集
x_train, x_test, y_train, y_test = train_test_split(lb.data, lb.target, test_size=
0.25
)# 進行標準化處理,特徵值和目標值都需要分別進行特徵化處理
# 特徵值進行標準化
std_x = standardscaler(
) x_train = std_x.fit_transform(x_train)
x_test = std_x.transform(x_test)
# 目標值進行標準化
std_y = standardscaler(
) y_train = std_y.fit_transform(y_train.reshape(-1
,1))
y_test = std_y.transform(y_test.reshape(-1
,1))
# estimator**
#正規方程求解方式**結果
lr = linearregression(
) lr.fit(x_train, y_train)
print
("特徵值:"
,lr.coef_)
# **測試集的房子**
y_predict = std_y.inverse_transform(lr.predict(x_test)
)print
("正規方程求解每個房子的****:"
,y_predict)
#梯度下降求解**結果
sgd=sgdregressor(
) sgd.fit(x_train, y_train)
print
("特徵值"
,sgd.coef_)
# **測試集的房子**
sgd_y_predict = std_y.inverse_transform(sgd.predict(x_test)
)print
("梯度下降每個房子的****:"
, sgd_y_predict)
# 嶺回歸降求解**結果
ri = ridge(alpha=
1.0)
ri.fit(x_train, y_train)
print
("特徵值"
, ri.coef_)
# **測試集的房子**
ri_y_predict = std_y.inverse_transform(ri.predict(x_test)
)print
("梯度下降每個房子的****:"
, ri_y_predict)
print
("正規方程均方誤差:"
, mean_squared_error(std_y.inverse_transform(y_test)
, y_predict)
)print
("梯度下降均方誤差:"
, mean_squared_error(std_y.inverse_transform(y_test)
, sgd_y_predict)
)print
("嶺回歸誤差:"
, mean_squared_error(std_y.inverse_transform(y_test)
, ri_y_predict)
)return
none
if __name__ ==
"__main__"
: regress(
)
《Python之機器學習(NumPy)》
單行注釋 多行注釋 多行注釋 多行注釋 a.ndim 輸出陣列的維數 a.shape 輸出陣列的形式 幾行,幾列 copy 複製陣列 a 2 陣列中每個元素乘以2 1,2 2 陣列將變成4個 a 2 a的平方 1,2 2 unsuported operand type 陣列訪問。修建異常值。處理不存...
python機器 python機器學習
熱詞系列 打卡 mark一下,以後看 每天打卡學習 1 python 基礎 bv1lt4y1u7un 2 python 高階 bv1jz411b7dh 3 python 資料庫 bv1pg4y1a7a7 4 python gui與坦克大戰 bv1je411f72o 5 python numpy bv...
機器學習之常用Python庫
pythong tutorial 提供常用的數值陣列 矩陣等函式。官網 numpy doc numpy user guide user index.html 文件quickstart user quickstart.html numpy basics user basics.html numpy r...