python 怎么画损失函数和迭代次数的关系_机器学习入门之旅(四)线性模型之损失函数的迭代算法...

本节是上一节的延续,主要介绍一下损失函数的概率解释,以及梯度下降和牛顿法两种可以用于极值求解的优化算法。

1. 损失函数的概率解释

对于线性回归模型,为什么最小化损失函数J是一种合理的选择?

假设目标变量和输入的关系如下:

其中,

代表偏差,可能是一些模型未覆盖的因素导致的偏差或者随机噪声,并且进一步假设它们服从高斯分布且独立同分布,

即:

表示给定

情况下

的条件分布。注意w是参数,并非随机变量,因此不能表示成

给定X(design matrix,包含所有的

)和参数w,采用极大似然法来求取Y的分布:

因此,最大化

即为最小化

,即最小二乘法的损失函数。需要注意的是,

的大小对最终参数w的选择没有影响。

2.梯度下降法(Gradient descent)

梯度下降法是一种求取函数的局部极小值的迭代算法, 每一步沿当前点的负梯度的方向按一定比例下降。

按照导数的定义:

由公式可见,

处的导数反映了函数在该点的瞬时变化速率,或者叫做在

处的斜率。推广到多维函数中,就有了梯度的概念,梯度是一个向量组合,反映了多维图形中变化速率最快的方向。

也就是说,多元可微函数

,在

处下降最快的方向即为

。当

在足够小时,对于

可以保证

。根据这个结论,为求得函数的局部最小值,我们从初始位置

开始,进行减去

的迭代操作得到

,……,可以得到

,因此

将有可能收敛至预期的局部最小值。其中,每次迭代时的步长

并不一定要固定不变。

如果F是凸函数,局部最小值即为其全局最小值。

回到本篇开头,我们试图最小化J(w),采用梯度下降法:

即:

上述方法称为批梯度下降(Batch Gradient Descent),在迭代过程中,每次更新ω时均要遍历整个数据集,如果样本数量m很大时收敛过程可能非常慢。

随机梯度下降算法(Stochastic Gradient Descent),每次只采用一个样本(或一部分样本)来更新ω,需要注意外层循环Loop,因为只遍历一次样本,不见得会收敛。

Loop {

for i=1 to m {

(for every j)

}

}

3.牛顿法

牛顿法就是求解函数零值位置的一种优化算法。

对于定义在实数域的函数

,其导数为

,选取初始点

,求出该点的导数(即切线的斜率),延长使其与x轴相交,以相交点的x值作为下次迭代的值,因此,迭代的更新规则为:

至于求解函数极值的过程中,我们经常转化为求解其导数为零的问题。比如极大似然法时,求解似然函数

的极大值:

,采用牛顿法,更新规则为:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: “IT行业收入表.xlsx”是一份包含了IT行业从业人员的工作经验、薪资等信息的数据表格。对于这样一个数据表格,我们可以尝试使用线性回归模型进行数据分析和机器学习线性回归模型是一种基于线性关系建立的预测模型,其基本假设是自变量和因变量之间存在线性关系。在应用到这个数据表格时,我们可以将工作经验作为自变量,薪资作为因变量来建立线性回归模型。通过训练和调整模型,我们可以预测不同工作经验下的薪资水平。 在使用线性回归模型时,我们需要注意以下几个方面: 首先,数据的准确性和完整性对于模型的精准度至关重要。在对数据进行分析时,我们需要仔细检查并清洗数据,保证数据的准确性和完整性。 其次,我们需要选择合适的算法和技术来训练模型,并进行模型选择和调整。对于这个数据表格的简单线性回归模型,最小二乘法是常用的训练算法之一,但在实际应用可能需要结合其他算法和技术来提高模型的预测精度。 最后,我们需要对模型的结果进行评估和解释。通过计算模型的 R2 值和 p 值等指标,我们可以评价模型的优劣,并根据模型的结果对不同的数据分析和机器学习应用进行解释和指导。 总之,基于“IT行业收入表.xlsx”这样的数据表格,使用线性回归模型进行数据分析和机器学习是一种有益的方法。通过仔细清洗数据、选择合适的算法和技术、对模型的结果进行评估和解释,我们可以获得更准确的数据分析和机器学习预测结果。 ### 回答2: “IT行业收入表.xlsx”是一个关于IT行业的收入数据表格,可以利用Python线性回归模型进行数据分析和机器学习。通过分析这个数据表格,我们可以了解IT行业不同职业的收入情况,对未来的职业选择和职业规划提供参考。 首先,使用Python的pandas包将“IT行业收入表.xlsx”导入程序。然后,使用pandas提供的数据处理函数,对数据进行清洗和预处理。例如,可以使用dropna函数删除数据表格的空值,使用groupby函数对不同职业的收入进行分组,并使用describe函数对数据做基本统计分析。 接下来,使用Python的scikit-learn包构建线性回归模型。将整理好的数据集分成训练集和测试集,并使用LinearRegression函数进行模型训练和测试。根据训练的模型,可以预测不同职业的收入情况。 最后,使用Python的可视化库matplotlib对数据进行可视化展示,以更直观地理解收入的分布情况和趋势。例如,可以使用散点表示不同收入水平下的职业数量,或使用折线表示不同职业的平均收入变化趋势。 总之,使用Python线性回归模型可以对“IT行业收入表.xlsx”进行大数据分析和机器学习,为IT从业者和求职者提供参考和借鉴。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值