正则化概述

在本文中,我们将讨论正则化的需求及其不同类型。 在有监督的机器学习模型中,我们将在称为训练数据的数据上训练我们的模型,我们的模型将从这些数据中学习。 在某些情况下,我们的模型会从数据模式中学习到训练数据中的噪声。 这样一个过拟合的模型将具有较少的泛化性,这意味着它们将在训练数据中表现良好,但在新数据中表现不佳。 我们的机器学习算法的目标是学习数据模式并忽略数据集中的噪声。 现在,有几种方法可以避免在训练数据上过度拟合模型,例如交叉验证,特征约简,正则化等。在本文中,我们将讨论正则化。 正则化基本上会随着模型复杂性的增加而增加代价。 正则化参数(lambda)会对除截距以外的所有参数进行惩罚,以便模型对数据进行泛化,并且不会过拟合。 让我们了解惩罚损失函数如何帮助避免过度拟合 我们将以线性回归为例说明正则化。 线性回归的成本函数为 我们的目标是最小化成本函数J(θ0,θ1)。 让我们的假设如下 我们的想法是,我们想消除诸如θ2,θ3,θ4等参数的影响,而无需实际摆脱这些特征或更改假设的形式,而是可以修改成本函数。 在这里,让我们修改θ3和θ4的影响。 最后,我们增加了两个额外的项以增加θ3和θ4的成本。 现在,为了使成本函数接近零,我们必须将θ3和θ4的值减小到接近零。 反过来,这将大大减小我们假设函数中的θ3…

线性回归 3

在我的线性回归系列的这一部分中,我认为这是介绍线性回归中使用的线性代数的好机会。 如果您一直关注我以前的文章,那么您将看到简单线性回归(SLR)模型可以表示为: 该模型的解释涉及暂时忽略误差项ε,并看到存在一条“理想回归线”,该“理想回归线”穿过X和Y散点图上的一组线性关联的数据点。 该行是使用我在上一课中提到的Beta创建的,可以看作是下图中的平面。 为了确保您对概念有一个准确的了解,这只是一个假设的回归平面,并且可能存在更准确的数据回归平面。 从图像中可以看到,对于给定的点x,存在一个关联点y,该点垂直位于其上方,并且与“真实回归平面”不同。 点y与回归平面之间的差是方程中的误差项epsilon。 如果在平面上方,则可以为正;如果在平面下方,则可以为负。 因此,对于具有两列x和y数据点的数据集,可以用这种方式将它们解释为总共有n个对。 但是,这可能是单调乏味的写出这些数据点的方式,并且可以用另一种更方便使用的方式来写。 为了避免在潜在的更大数据集中为每对数据写出整个方程,可以使用线性代数的矢量表示法将其缩短。 在存在多个X和Beta对(表示多个预测变量)的多重线性回归(MLR)中,这将特别节省时间和精力。 缩短的版本可以在以下公式中看到: 对于那些在大学里没有线性代数经验的人,我将尝试解释这里正在发挥作用的更简单的方面。 以前有单独的方程式,它们表示虚拟数据集中Y的顺序。 Y的集合已被收集到所谓的向量中。 线性代数中的矢量符号可与粗体字母,指向右侧的特定箭头(从物理学上)或变量下方的弯曲线(类似于Microsoft Word中的弯曲表示错字)一起使用。…

Ruby中的线性回归

一点数学和一点代码,Ruby中的机器学习 线性回归是最简单的机器学习算法之一,但仍然可以很好地执行。 更重要的是,很容易掌握其中一些机器学习的核心概念,而不会因为那里更复杂的算法而分心。 我们将讲解线性回归的基础知识,在ruby中实现所有必要的代码,并使用它来预测一些事情。 将会有足够的数学来理解正在发生的事情,但是重点将放在代码上。 因为您正在阅读本文,所以您可能会对机器学习感兴趣。 对于开发人员来说,感觉就像与我们通常要面对的野兽完全不同。 至少我是这样。 真正帮助我理解一些事情的是编写自己的线性回归算法。 不,不用担心,这不是一个疯狂的壮举-实际上,这正是我们在一秒钟内要做的事情。 我的希望是,首先用代码解决这个话题可能会帮助我的一些红宝石开发人员更轻松地进行机器学习。 线性回归是一种受监督的机器学习算法。 与例如不同的值相比,预测的输出是连续的值。 监督:您在训练算法时告诉算法预期的结果,您基本上知道预期的结果。 连续价值:通常是诸如价格,环境价值之类的价值,与使您能够对某些事物进行分类的不同价值相反。 例如,当您的算法可以说:图片上有一辆汽车时,它会输出一个不同的值。 是的,有时候通过将某些东西与不是的东西进行对比来解释是比较容易的。 好的,因此基本流程(和术语)如下:您有一些值x,这些值将用于预测y值。…