浪子归家|求解线性回归应使用哪些方法?
作为任何机器学习工具箱中的基础算法集 , 可以使用多种方法来解决线性回归问题 。 在这里 , 我们讨论 。 结合代码示例 , 四种方法 , 并演示应如何使用它们 。
线性回归是一种受监督的机器学习算法 。 它基于给定的因变量(x)预测自变量(y)之间的线性关系 , 以使自变量(y)的 成本最低 。
解决线性回归模型的不同方法为了提高效率 , 可以将许多方法应用于线性回归模型 。 但是 , 我们将在这里讨论其中最常见的问题 。
- 梯度下降
- 最小二乘法/正态方程法
- Adam
- 奇异值分解(SVD)
梯度下降对于初学者来说 , 解决线性回归问题的最常见 , 最简单的方法之一就是梯度下降 。
梯度下降的工作原理
现在 , 让我们假设我们以散点图的形式绘制了数据 , 并且当我们对它应用成本函数时 , 我们的模型将做出预测 。 现在 , 此预测可能非常好 , 或者可能与我们的理想预测相去甚远(这意味着其成本将会很高) 。 因此 , 为了最小化该成本(误差) , 我们对其应用了梯度下降 。
现在 , 梯度下降将使我们的假设逐渐收敛到成本 最低的全局最小值。 为此 , 我们必须手动设置alpha的值,并且假设的斜率相对于我们alpha的值而变化 。 如果alpha值较大 , 则将采取较大步骤 。 否则 , 在小阿尔法的情况下 , 我们的假设将缓慢收敛并通过小步伐收敛 。
import numpy as npfrom matplotlib import pyplot#creating our dataX = np.random.rand(10,1)y = np.random.rand(10,1)m = len(y)theta = np.ones(1)#applying gradient descenta = 0.0005cost_list = []for i in range(len(y)):theta = theta - a*(1/m)*np.transpose(X)@(X@theta - y)cost_val = (1/m)*np.transpose(X)@(X@theta - y)cost_list.append(cost_val)#Predicting our Hypothesisb = thetayhat = X.dot(b)#Plotting our resultspyplot.scatter(X, y, color='red')pyplot.plot(X, yhat, color='blue')pyplot.show()首先 , 我们创建了数据集 , 然后遍历了所有训练示例 , 以最大程度地降低假设成本 。优点:
梯度下降的重要优点是
- 与SVD或ADAM相比 , 计算成本更低
- 运行时间为O(kn2)
- 与更多功能一起使用效果很好
梯度下降的重要缺点是
- 需要选择一些学习率 α
- 需要多次迭代才能收敛
- 可以卡在本地最小值
- 如果学习率 α不合适 , 则可能无法收敛 。
最小二乘法如何工作
在普通的LSM中 , 我们直接求解系数值 。 简而言之 , 我们一步就能达到光学的最低点 , 或者我们只能说一步就可以以最低的成本使我们的假设适合我们的数据 。
推荐阅读
- 逍遥浪子龙|汽车“栽进窗”,太危险!女子停车忘拉手刹
- 泰国|泰国曼谷再次爆发大规模抗议,要求解散国会王室改革
- [婚外情]我结婚了但爱上了别人,心存愧疚,我想回归家庭该怎么做
- 大城市|求解大城市“一床难求” “十三五”中央财政投资养老超134亿元
- 穿搭|穿花花毛衣来看花花世界,怎么才能把毛衣穿的年轻一点!求解
- 足坛最前线|却被国米球迷永远拉黑,布尔迪索:潘帕斯浪子中后卫
- 土土女排|进攻实力将大幅提升,回归家乡!女排世界冠军有望加盟辽宁
- 钱江晚报|老人凌晨买菜…夜班公交司机汤小连:我见过杭城隐秘风景,年轻人半夜归家
- 科技浪子|非蠢即坏,手机欠费超3月上征信?网友:不知道哪个B出的主意
- 科技浪子 非蠢即坏,手机欠费超3月上征信?网友:不知道哪个B出的主意
