【问题标题】:Overfitting/Underfitting Machine Learning Models with Azure Machine Learning vs Python使用 Azure 机器学习与 Python 过拟合/欠拟合机器学习模型
【发布时间】:2019-12-28 11:27:17
【问题描述】:

我正在学习如何使用 Azure ML Studio 执行机器学习。目前,我只使用 Python 玩过机器学习。

我使用 Azure ML 和 Python 运行了相同的机器学习项目,以查看每个产品的结果与均方根误差 (RMSE) 的接近程度。到目前为止,Azure ML 和 Python 的 RMSE 差别很大。

我无法弄清楚为什么 RMSE 相差如此之远。我能想到的唯一原因是 Python 在训练数据上“拟合”模型的方式。 Python 使用以下代码拟合训练数据

lr = LinearRegression(labelCol='xxxx')
lrModel = lr.fit(train_data)

但是,我不知道 Azure ML 如何拟合训练数据。

有人可以告诉我 Azure ML 是如何完成拟合训练数据的吗?

【问题讨论】:

  • 也许 RMSE 在 Azure 中的计算方式也不同..
  • @LucAs,感谢您与我们联系。这正是我希望有人能够告诉我的,以及 Azure 如何将数据拟合到训练模型?
  • 不幸的是,我不知道 Azure 如何拟合模型,但我为您发布了一个想法,即 Azure 可能会计算 RSE 而不是 RMSE

标签: python-3.x machine-learning azure-machine-learning-studio


【解决方案1】:

我猜你可能使用 RMSE = √( 1/n ∑ (y_i - pred_i)^2 ) 在 python 中计算 RMSE,其中 y 是真实标签,pred 是线性回归中的预测标签?

我可以想象 Azure 使用稍微不同的术语,即 RSE = √( 1/(n-2) ∑ (y_i - pred_i)^2 ),其中使用了贝塞尔校正项 1/(n-2)反而。这用于校正拟合2个参数的偏差(假设线性回归只拟合斜率和截距,否则在多元线性回归中拟合k个参数时,1/(n-k)是贝塞尔校正)

试试吧!但是我无法解释为什么 python 和 Azure 之间的差异如此之大,因为 Bessel 的校正项应该只会产生很小的差异。

【讨论】:

  • @Luz As,用于该项目的 python 可以在这里找到github.com/SuperJohn/spark-and-python-for-big-data-with-pyspark/… 我在 Azure ML 中使用了同一个项目。使用 python 方法我得到了 0.890179 的 RMSE,而使用 Azure ML 我得到了 2.09 的 RMSE。我能想到的唯一原因是它们为什么相差这么远,是因为它们将训练数据拟合到模型的方式不同,但不确定
  • 很难说.. 我猜不是 Azure 以不同的方式拟合模型,我猜是某个地方的错字或错误?
猜你喜欢
  • 2020-06-19
  • 2018-08-16
  • 2022-12-10
  • 2019-01-06
  • 1970-01-01
  • 2018-06-03
  • 2020-06-11
  • 2016-09-04
  • 2017-12-17
相关资源
最近更新 更多