展示型网站建,巨鹿做网站哪家好,永年企业做网站推广,做一样的模板网站会被告侵权吗文章目录 一、说明二、学习目标三、什么是机器学习中的正则化四、了解过拟合和欠拟合五、代价函数的意义六、什么是偏差和方差#xff1f;七、机器学习中的正则化#xff1f; 一、说明
在训练机器学习模型时#xff0c;模型很容易过拟合或欠拟合。为了避免这种情况#xf… 文章目录 一、说明二、学习目标三、什么是机器学习中的正则化四、了解过拟合和欠拟合五、代价函数的意义六、什么是偏差和方差七、机器学习中的正则化 一、说明
在训练机器学习模型时模型很容易过拟合或欠拟合。为了避免这种情况我们在机器学习中使用正则化来使模型正确地拟合到我们的测试集。正则化技术有助于减少过拟合的可能性并帮助我们获得最优模型。 在本文中您将探索使用 Python 进行机器学习中的正则化概念。我们将讨论它在防止过拟合方面的意义和意义确保模型能够很好地推广到新数据。您将看到正则化技术的示例例如 L1 和 L2以及它们在实践中的实施方式。此外我们将参考来自 Analytics Vidhya 的见解以增强您对这些方法及其对模型性能影响的理解。到最后您将清楚地掌握正则化如何改进您的机器学习项目。
二、学习目标
了解机器学习中的正则化概念及其在防止过拟合和欠拟合方面的作用。 了解不同的正则化技术例如 Ridge、Lasso 和 Elastic Net 正则化。 获得使用 Python 和 scikit-learn 实现正则化技术的实践知识。
三、什么是机器学习中的正则化
正则化是机器学习中使用的一种技术用于防止过度拟合并提高模型的泛化性能。从本质上讲正则化为损失函数添加了一个惩罚项阻止了模型学习过于复杂的模式这些模式可能无法很好地推广到看不见的数据。这有助于创建更简单、更健壮的模型。
正则化的主要好处包括 减少过度拟合通过限制模型的复杂性正则化有助于防止模型记住训练数据中的噪声或不相关的模式。 提高泛化性正则化模型往往在新的、看不见的数据上表现更好因为它们专注于捕获底层模式而不是完美地拟合训练数据。 增强模型稳定性正则化使模型对训练数据中的微小波动不太敏感从而获得更稳定和可靠的预测。 启用特征选择一些正则化技术例如 L1 正则化可以自动识别并丢弃不相关的特征从而产生更易解释的模型。 最常见的正则化技术是 L1 正则化 Lasso它将模型权重的绝对值添加到损失函数中以及 L2 正则化 Ridge它将权重的平方值相加。通过纳入这些惩罚项正则化在拟合训练数据和保持机器学习中的正则化之间取得了平衡
正则化是机器学习中使用的一种技术用于防止过度拟合并提高模型的泛化性能。从本质上讲正则化为损失函数添加了一个惩罚项阻止了模型学习过于复杂的模式这些模式可能无法很好地推广到看不见的数据。这有助于创建更简单、更健壮的模型。
最常见的正则化技术是 L1 正则化 Lasso它将模型权重的绝对值添加到损失函数中以及 L2 正则化 Ridge它将权重的平方值相加。通过合并这些惩罚项正则化在拟合训练数据和保持模型简单之间取得了平衡最终在新数据上实现了更好的性能。
四、了解过拟合和欠拟合
为了训练我们的机器学习模型我们为其提供数据以供学习。绘制一系列数据点并绘制最佳拟合线以了解变量之间关系的过程称为数据拟合。当我们的模型可以在我们的数据中找到所有必要的模式并避免随机数据点和称为噪声的不必要模式时它最适合。
如果我们允许机器学习模型查看数据太多次它将在数据中发现许多模式包括一些不必要的模式。它将在测试数据集上很好地学习并且非常适合。它将学习重要的模式但它也会从我们数据中的噪声中学习并且无法对其他数据集进行预测。
机器学习模型尝试从细节以及数据中的噪声中学习并尝试将每个数据点拟合到曲线的场景称为过拟合。
在下图中我们可以看到该模型适合我们数据中的每个点。如果提供了新数据则模型曲线可能与新数据中的模式不匹配并且模型可能无法很好地预测。 相反当我们没有让模型查看我们的数据足够多的时间时它将无法在我们的测试数据集中找到模式。它不能很好地适应我们的测试数据集也不能处理新数据。
当机器学习模型无法学习测试数据中变量之间的关系或无法预测或分类新数据点时就会发生欠拟合。
下图显示了一个装备不足的模型。我们可以看到它没有正确拟合给出的数据。他没有在数据中找到模式并且忽略了大部分数据集。它不能同时处理已知和未知数据。 五、代价函数的意义
代价函数/误差函数采用斜率截距m 和 c值并返回误差值/成本值。它显示预测结果与实际结果之间的误差进行比较。它解释了您的模型在预测中是如何不准确的。
它用于估计模型对给定数据集及其维度的性能有多糟糕。
为什么成本函数在机器学习中很重要是的成本函数帮助我们达到最佳解决方案那么我们该怎么做呢。将看到使用 Python 库的所有可能方法和简单步骤。
此功能通过最小化误差来帮助我们找出最佳直线
最佳拟合线是该线周围误差平方和最小的线
六、什么是偏差和方差
当算法从数据集中学习的灵活性有限时就会出现偏差。这些模型很少关注训练数据并且过度简化了模型因此验证或预测误差和训练误差遵循类似的趋势。此类模型始终会导致训练和测试数据中出现高误差。高偏差会导致我们的模型调整不足。
方差定义算法对特定数据集的敏感度。高方差模型密切关注训练数据并且不会泛化因此验证或预测误差彼此相差甚远。此类模型通常在训练数据上表现非常好但在测试数据上具有很高的错误率。高偏差会导致模型出现过冲。
最优模型是指模型对模型中的模式敏感但也可以泛化到新数据的模型。当偏差和方差都是最佳时就会发生这种情况。我们称之为 Bias-Variance Tradeoff我们可以使用回归在过度拟合或欠拟合的模型中实现这一点。 上图显示当偏差较高时测试集和训练集中的误差也很高。当偏差较高时模型在我们的训练集上表现良好误差较低但测试集上的误差非常高。在这中间有一个区域偏差和方差在这里也彼此完美平衡但训练和测试误差很低。
七、机器学习中的正则化
它是指用于校准机器学习模型以最小化调整后的损失函数并避免过拟合或欠拟合的技术。 正则化技术 让我们讨论可用的正则化技术然后是实现
岭回归L2 正则化
基本上在这里我们将最小化误差的平方和以及系数的平方和 β。在背景中 具有较大幅度的系数 β 将生成图形峰值和 深斜率为了抑制这一点我们使用 lambda λ 用于称为 惩罚因子并帮助我们获得光滑的表面而不是不规则的图形。Ridge Regression 用于将 coefficientsβ 值在量级方面推向接近零。这就是 L2 正则化因为它增加了一个等价于系数大小的平方的罚值。
Ridge 回归 Loss 函数 正则化项 2. 套索回归L1 正则化 这与 Ridge 回归非常相似在 Penalty Factor 惩罚因子 中几乎没有差异系数是量级而不是平方。其中许多系数有可能变为零因此相应的属性/特征变为零并从列表中删除这最终会减少维度并支持降维。那么决定这些属性/特征不适合作为预测目标值的捕食者。这是 L1 正则化因为将绝对值添加为系数大小的惩罚等效值。
套索回归 损失函数 正则化项 3. Lambda 的特点 λ 0λ 最小值λ HighLambda 或罚因子 λ对系数 β 没有影响模型会过拟合。不适用于 ProductionGeneralised 模型和可接受的精度并且符合 Test and Train 的条件。适合生产对系数 β 影响非常大导致欠拟合。最终 不适合生产环境。
请记住一件事Ridge 永远不会将系数归零Lasso 会这样做。因此您可以使用第二个进行特征选择。
正则化的影响
下面的图形表示清楚地表明了最佳配合。 4. 弹性网络回归正则化 尽管 Python 提供了出色的库但我们应该了解这背后的数学原理。以下是详细的推导供您参考。
山脊α0 套索α1 5. 正则化技术的图像表示 L1 和 L2 的数学方法 尽管 Python 提供了出色的库和简单的编码但我们应该了解这背后的数学原理。以下是详细的推导供您参考。
让我们得到下面的多元线性回归数据集及其方程 正如我们所知道的多元线性回归 y β 0 β 1 x 1 β 2 x 2 . . . . . . . . . . . . . . . . . . β n x n ————– 1 yβ_0 β_1 x_1 β_2 x_2.................. β_n x_n — — — — –1 yβ0β1x1β2x2..................βnxn————–1 y i β 0 σ β i x i —————– 2 y_i β_0 σ β_i x_i — — — — — –2 yiβ0σβixi—————–2
Σ yi– β0– Σ βi 习
成本/损失函数 Σ{ yi– β0– Σ βi xij}2 — — — — — –3
正则化项 λΣ βi2 — — — — — -4
岭回归 损失函数 正则化项 — — — — — –5
将 3 和 4 放入 5 中
岭回归 Σ { yi– β0– Σ βi xij}2 λ Σ βi2
套索回归 Σ { yi– β0– Σ βi xij}2 λ Σ |βi|
x 个自变量 y 个目标变量 β 系数 λ 罚因子 系数 β 如何在内部计算
正则化代码 让我们以 Automobile — Predictive Analysis 为例应用 L1 和 L2 以及它如何帮助模型评分。
目标使用汽车的给定特征预测汽车的里程/每加仑英里数 mpg。
import numpy as npimport pandas as pdimport seaborn as snsimport matplotlib.pyplot as pltfrom sklearn.linear_model import LinearRegressionfrom sklearn.linear_model import Ridgefrom sklearn.linear_model import 套索from sklearn.metrics importr2_scoredf_cars pd.read_csv“auto-mpg.csv”
printdf_cars.head5))EDA会做少量的 EDA探索性数据分析来理解数据集 观察
我们可以看到 Features 及其数据类型以及 Null 约束。马力和名称特征是给定数据集中的对象。在建模过程中必须注意。
训练和测试拆分
from Sklearn model_selection import train_test_split X_train、X_test、y_train、y_test train_test_splitX_scaled、y_scaled、test_size0.25、random_state1)