困惑于Spark ML和Tensorflow的线性回归结果

我运行了这个程序: https://github.com/backstopmedia/tensorflowbook/blob/master/chapters/04_machine_learning_basics/linear_regression.py

我在上述程序的第55行后添加了”print(“w=”, W.eval(), “b=”, b.eval())”。我得到的结果是:

w= [[ 3.5245235 ][ 1.50171268]] b= 1.14499

所以 y=3.5245235×1 + 1.50171268×2 +1.14499。

我使用了上述程序相同的数据(文件格式稍后附上),并运行了程序 https://github.com/apache/spark/blob/master/examples/src/main/java/org/apache/spark/examples/ml/JavaLinearRegressionWithElasticNetExample.java,结果是:

Coefficients: [0.3827266230806965,5.1690760222564425] Intercept: 82.22008153614573numIterations: 6objectiveHistory: [0.5,0.41583549697777683,0.15548328325638935,0.15439025905767773,0.15432368309706285,0.15432368309449543]

所以 y=0.3827266230806965×1+5.1690760222564425×2 + 82.22008153614573。

我对同一个问题的结果为何如此不同感到困惑?我在Spark程序中使用的数据格式是:

354 1:84 2:46190 1:73 2:20405 1:65 2:52263 1:70 2:30451 1:76 2:57302 1:69 2:25288 1:63 2:28385 1:72 2:36402 1:79 2:57365 1:75 2:44209 1:27 2:24290 1:89 2:31346 1:65 2:52254 1:57 2:23395 1:59 2:60434 1:69 2:48220 1:60 2:34374 1:79 2:51308 1:75 2:50220 1:82 2:34311 1:59 2:46181 1:67 2:23274 1:85 2:37303 1:55 2:40244 1:63 2:30

回答:

参见 Tensorflow on simple linear regression。该代码存在相同的问题。解决方法将与那里的答案相同。此外,学习率太小(设置为0.001),步骤需要设为100000。选择这些初始值非常技术化(一位专家曾与我讨论过这个问题)。

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中创建了一个多类分类项目。该项目可以对…

发表回复

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