
- 機器學習基礎
- ML - 首頁
- ML - 簡介
- ML - 入門
- ML - 基本概念
- ML - 生態系統
- ML - Python 庫
- ML - 應用
- ML - 生命週期
- ML - 必備技能
- ML - 實現
- ML - 挑戰與常見問題
- ML - 限制
- ML - 真實案例
- ML - 資料結構
- ML - 數學基礎
- ML - 人工智慧
- ML - 神經網路
- ML - 深度學習
- ML - 獲取資料集
- ML - 分類資料
- ML - 資料載入
- ML - 資料理解
- ML - 資料準備
- ML - 模型
- ML - 監督學習
- ML - 無監督學習
- ML - 半監督學習
- ML - 強化學習
- ML - 監督學習 vs. 無監督學習
- 機器學習資料視覺化
- ML - 資料視覺化
- ML - 直方圖
- ML - 密度圖
- ML - 箱線圖
- ML - 相關矩陣圖
- ML - 散點矩陣圖
- 機器學習統計學
- ML - 統計學
- ML - 均值、中位數、眾數
- ML - 標準差
- ML - 百分位數
- ML - 資料分佈
- ML - 偏度和峰度
- ML - 偏差和方差
- ML - 假設
- ML中的迴歸分析
- ML - 迴歸分析
- ML - 線性迴歸
- ML - 簡單線性迴歸
- ML - 多元線性迴歸
- ML - 多項式迴歸
- ML中的分類演算法
- ML - 分類演算法
- ML - 邏輯迴歸
- ML - K近鄰演算法 (KNN)
- ML - 樸素貝葉斯演算法
- ML - 決策樹演算法
- ML - 支援向量機
- ML - 隨機森林
- ML - 混淆矩陣
- ML - 隨機梯度下降
- ML中的聚類演算法
- ML - 聚類演算法
- ML - 基於中心點的聚類
- ML - K均值聚類
- ML - K中心點聚類
- ML - 均值漂移聚類
- ML - 層次聚類
- ML - 基於密度的聚類
- ML - DBSCAN聚類
- ML - OPTICS聚類
- ML - HDBSCAN聚類
- ML - BIRCH聚類
- ML - 親和傳播
- ML - 基於分佈的聚類
- ML - 凝聚聚類
- ML中的降維
- ML - 降維
- ML - 特徵選擇
- ML - 特徵提取
- ML - 向後剔除法
- ML - 向前特徵構造
- ML - 高相關性過濾
- ML - 低方差過濾
- ML - 缺失值比率
- ML - 主成分分析
- 強化學習
- ML - 強化學習演算法
- ML - 利用與探索
- ML - Q學習
- ML - REINFORCE演算法
- ML - SARSA強化學習
- ML - 演員-評論家方法
- 深度強化學習
- ML - 深度強化學習
- 量子機器學習
- ML - 量子機器學習
- ML - 使用Python的量子機器學習
- 機器學習雜項
- ML - 效能指標
- ML - 自動工作流程
- ML - 提升模型效能
- ML - 梯度提升
- ML - 自舉匯聚 (Bagging)
- ML - 交叉驗證
- ML - AUC-ROC曲線
- ML - 網格搜尋
- ML - 資料縮放
- ML - 訓練和測試
- ML - 關聯規則
- ML - Apriori演算法
- ML - 高斯判別分析
- ML - 成本函式
- ML - 貝葉斯定理
- ML - 精度和召回率
- ML - 對抗性
- ML - 堆疊
- ML - 輪次
- ML - 感知器
- ML - 正則化
- ML - 過擬合
- ML - P值
- ML - 熵
- ML - MLOps
- ML - 資料洩露
- ML - 機器學習的盈利模式
- ML - 資料型別
- 機器學習 - 資源
- ML - 快速指南
- ML - 速查表
- ML - 面試問題
- ML - 有用資源
- ML - 討論
機器學習 - 正則化
在機器學習中,正則化是一種用於防止過擬合的技術。過擬合是指模型過於複雜,擬合訓練資料過於良好,但無法推廣到新的、未見過的資料。正則化在成本函式中引入懲罰項,鼓勵模型具有較小的權重和更簡單的結構,從而減少過擬合。
機器學習中常用的正則化技術有多種,包括L1和L2正則化、dropout正則化和提前停止。在本文中,我們將重點關注L1和L2正則化,這是最常用的技術。
L1正則化
L1正則化,也稱為Lasso正則化,是一種在成本函式中新增懲罰項的技術,該懲罰項等於權重總和的絕對值。L1正則化懲罰的公式為:
$$\lambda \times \Sigma \left|w_{i} \right|$$
其中λ是一個控制正則化強度的超引數,𝑤𝑖是模型中的第i個權重。
L1正則化懲罰的作用是鼓勵模型具有稀疏權重,即消除對輸出影響很小或沒有影響的權重。這具有簡化模型和減少過擬合的作用。
示例
為了在Python中實現L1正則化,我們可以使用scikit-learn庫中的Lasso類。以下是如何使用L1正則化進行線性迴歸的示例:
from sklearn.linear_model import Lasso from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error # Load the Boston Housing dataset boston = load_boston() # Split the data into training and test sets X_train, X_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.2, random_state=42) # Create a Lasso model with L1 regularization lasso = Lasso(alpha=0.1) # Train the model on the training data lasso.fit(X_train, y_train) # Make predictions on the test data y_pred = lasso.predict(X_test) # Calculate the mean squared error of the predictions mse = mean_squared_error(y_test, y_pred) print("Mean squared error:", mse)
在這個例子中,我們載入波士頓房價資料集,將其分成訓練集和測試集,並使用alpha值為0.1建立具有L1正則化的Lasso模型。然後,我們在訓練資料上訓練模型,並在測試資料上進行預測。最後,我們計算預測的均方誤差。
輸出
執行此程式碼時,將產生以下輸出:
Mean squared error: 25.155593753934173
L2正則化
L2正則化,也稱為Ridge正則化,是一種在成本函式中新增懲罰項的技術,該懲罰項等於權重平方和。L2正則化懲罰的公式為:
$$\lambda \times \Sigma\left (w_{i} \right )^{2}$$
其中λ是一個控制正則化強度的超引數,wi是模型中的第i個權重。
L2正則化懲罰的作用是鼓勵模型具有較小的權重,即減小模型中所有權重的幅度。這具有平滑模型和減少過擬合的作用。
示例
為了在Python中實現L2正則化,我們可以使用scikit-learn庫中的Ridge類。以下是如何使用L2正則化進行線性迴歸的示例:
from sklearn.linear_model import Ridge from sklearn.model_selection import train_test_split from sklearn.metrics import mean_squared_error from sklearn.datasets import load_boston from sklearn.preprocessing import StandardScaler import numpy as np # load the Boston housing dataset boston = load_boston() # create feature and target arrays X = boston.data y = boston.target # standardize the feature data scaler = StandardScaler() X = scaler.fit_transform(X) # split the data into training and testing sets X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # define the Ridge regression model with L2 regularization model = Ridge(alpha=0.1) # fit the model on the training data model.fit(X_train, y_train) # make predictions on the testing data y_pred = model.predict(X_test) # calculate the mean squared error mse = mean_squared_error(y_test, y_pred) print("Mean Squared Error: ", mse)
在這個例子中,我們首先載入波士頓房價資料集,並將其分成訓練集和測試集。然後,我們使用StandardScaler標準化特徵資料。
接下來,我們定義Ridge迴歸模型並將alpha引數設定為0.1,它控制L2正則化的強度。
我們在訓練資料上擬合模型,並在測試資料上進行預測。最後,我們計算均方誤差以評估模型的效能。
輸出
執行此程式碼時,將產生以下輸出:
Mean Squared Error: 24.29346250596107