- 机器学习基础
- 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