在简单线性回归中使用成本函数的位置

我刚开始学习机器学习,并且已经研究了成本函数背后的数学原理。我想知道在线性回归中应该在哪里实现成本函数,即 J(B1, B2) = 1/2nΣ(y-y_pred)^2?

在下面的代码中,没有使用成本函数,因为我们在预测值之后才计算成本函数。当我浏览代码时,我没有看到任何错误。最小化步骤。代码可在此处找到 here

import numpy as npimport matplotlib.pyplot as pltdef estimate_coef(X, y):    n = np.size(X)    m_X, m_y = np.mean(X), np.mean(y)    SS_Xy = np.sum(y*X) - n*m_y*m_X    SS_XX = np.sum(X*X) - n*m_X*m_X    b_1 = SS_Xy / SS_XX    b_0 = m_y - b_1*m_X    return (b_0, b_1)def plot_regression_line(X, y, b):    n = np.size(X)    plt.scatter(X, y, color = "m",                marker = "o", s = 30)     y_pred = b[0] + b[1]*X    print(f'prediction=>{y_pred}')    plt.plot(X, y_pred, color = "g")    plt.xlabel('x')     plt.ylabel('y')    plt.show() def main():     # observations     X = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])     y = np.array([1, 3, 2, 5, 7, 8, 8, 9, 10, 12])     # estimating coefficients     b = estimate_coef(X, y)     print(f'b_0=>{b[0]}, b_1=>{b[1]}')     # plotting regression line     plot_regression_line(X, y, b) if __name__ == "__main__":     main()

回答:

需要解决的最小化问题是关于b0和b1的,即我们需要找到这两个的最优值。当你解决这个最小化问题时,你会得到 b_1 = SS_Xy / SS_XXb_0 = m_y - b_1*m_X。他们没有在代码中解决最小化问题,而是直接使用结果来获得最优值。这在文章中已经提到:

我们的任务是找到使 J(b_0,b_1) 最小化的 b_0 和 b_1 的值!

不深入数学细节,我们在这里展示结果:

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注