让我们构建一个函数来绘制成本函数:
def plot_cost_function(self):if self.bgd == True:plt.plot(range((self.n_iterations)),self.cost_history)plt.xlabel('No. of iterations')plt.ylabel('Cost Function')plt.title('Gradient Descent Cost Function Line Plot')plt.show()else:print('Batch Gradient Descent was not used!')最后一种预测未标记实例的方法:
def predict(self,X_test):self.X_test = X_test.copy()self.X_test = self.add_intercept_term(self.X_test)self.X_test = self.feature_scale(self.X_test)predictions = np.dot(self.X_test,self.thetas.T)return predictions现在,让我们看看哪个优化产生了更好的结果 。首先,让我们试试梯度下降:
lin_reg_bgd = LinReg(X_train,y_train)lin_reg_bgd.fit(bgd=True)mse(y_test,lin_reg_bgd.predict(X_test))OUT:28.824024414708344让我们画出我们的函数,看看成本函数是如何减少的:
所以我们可以看到,在大约1000次迭代时,它开始收敛 。
现在的标准方程是:
lin_reg_normal = LinReg(X_train,y_train)lin_reg_normal.fit()mse(y_test,lin_reg_normal.predict(X_test))OUT:22.151417764247284所以我们可以看到,标准方程的性能略优于梯度下降法 。这可能是因为数据集很小,而且我们没有为学习率选择最佳参数 。
推荐阅读
- 小编教你python安装Scrapy框架的操作方法 小编教你电脑c盘满了怎么清理
- 奥奇传说圣骑战队什么时候回归,《奥奇传说手游》7月2日开启限量测试
- 什么游戏龙神职业,龙神终于回归了
- 今日何云伟李菁几乎不再合作 何云伟李菁
- 弹弹堂回归礼包给什么用,为什么玩了5年的良心游戏
- 弹弹堂跑车怎么获得,假如老版弹弹堂回归
- 后期的武器怎么打,回归不知道怎么打流放者山脉
- 生死狙击最新回归大礼是什么,我在末世有套房最新章节
- 杨洋回归女主从胡冰卿变成了她 杨洋胡冰卿
- 老公背叛出轨想回归 突然知道老公十年前背叛
