浪子归家|求解线性回归应使用哪些方法?( 二 )
import numpy as npfrom matplotlib import pyplot#creating our dataX = np.random.rand(10,1)y = np.random.rand(10,1)#Computing coefficientb = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)#Predicting our Hypothesisyhat = X.dot(b)#Plotting our resultspyplot.scatter(X, y, color='red')pyplot.plot(X, yhat, color='blue')pyplot.show()在这里 , 我们首先创建了数据集 , 然后使用
优点:
LSM的重要优点是:
- 没有学习率
- 没有迭代
- 不需要功能缩放
- 当“功能数量”较少时 , 效果很好 。
重要的缺点是:
- 当数据集很大时 , 计算量很大 。
- 功能数量多时速度慢
- 运行时间为O(n3)
- 有时 , 您的X转置X是不可逆的 , 即 , 没有逆的奇异矩阵 。 您可以使用np.linalg.pinv代替 np.linalg.inv 来解决此问题 。
这是一种迭代算法 , 适用于嘈杂的数据 。
它是RMSProp和小批量梯度下降算法的组合 。
除了存储像Adadelta和RMSprop这样的过去平方梯度的指数衰减平均值之外 , Adam还保留了过去梯度的指数衰减平均值 , 类似于动量 。
我们分别计算过去和过去平方梯度的衰减平均值 , 如下所示:
他们通过计算经过偏差校正的第一和第二矩估算值来抵消这些偏差:
#Creating the Dummy Data set and importing librariesimport mathimport seaborn as snsimport numpy as np from scipy import statsfrom matplotlib import pyplotx = np.random.normal(0,1,size=(100,1))y = np.random.random(size=(100,1))现在 , 让我们找到线性回归的实际图形以及数据集的斜率和截距值 。print("Intercept is " ,stats.mstats.linregress(x,y).intercept)print("Slope is ", stats.mstats.linregress(x,y).slope)pyplot.figure(figsize =(15,8))sns.regplot(x , y)pyplot.show()推荐阅读
- 逍遥浪子龙|汽车“栽进窗”,太危险!女子停车忘拉手刹
- 泰国|泰国曼谷再次爆发大规模抗议,要求解散国会王室改革
- [婚外情]我结婚了但爱上了别人,心存愧疚,我想回归家庭该怎么做
- 大城市|求解大城市“一床难求” “十三五”中央财政投资养老超134亿元
- 穿搭|穿花花毛衣来看花花世界,怎么才能把毛衣穿的年轻一点!求解
- 足坛最前线|却被国米球迷永远拉黑,布尔迪索:潘帕斯浪子中后卫
- 土土女排|进攻实力将大幅提升,回归家乡!女排世界冠军有望加盟辽宁
- 钱江晚报|老人凌晨买菜…夜班公交司机汤小连:我见过杭城隐秘风景,年轻人半夜归家
- 科技浪子|非蠢即坏,手机欠费超3月上征信?网友:不知道哪个B出的主意
- 科技浪子 非蠢即坏,手机欠费超3月上征信?网友:不知道哪个B出的主意
