如何使用 spark 为合成数据集正确获取权重?
How to correctly get the weights using spark for synthetic dataset?
我正在 Spark 上为合成数据集做 LogisticRegressionWithSGD。我已经使用香草梯度下降计算了 matlab 上的误差,而 R 上的误差约为 5%。我得到了与我用来生成 y 的模型中使用的相似的权重。数据集是使用 this 示例生成的。
虽然我最终能够通过不同的步长调整获得非常接近的错误率,但各个特征的权重并不相同。事实上,它有很大的不同。我为 spark 尝试了 LBFGS,它能够在几次迭代中正确预测错误和权重。我的问题是在 spark 上使用 SGD 进行逻辑回归。
我的体重:
[0.466521045342,0.699614292387,0.932673108363,0.464446310304,0.231458578991,0.464372487994,0.700369689073,0.928407671516,0.467131704168,0.231629845549,0.46465456877,0.700207596219,0.935570594833,0.465697758292,0.230127949916]
我想要的体重:
[2,3,4,2,1,2,3,4,2,1,2,3,4,2,1]
拦截我得到:0.2638102010832128
我要拦截:1
问题 1。是合成数据集的问题吗?我尝试使用 minBatchFraction、stepSize、迭代和拦截进行调整。我没弄对。
Q.2。为什么 spark 给我这个奇怪的权重?期望 Spark 的模型具有相似的权重是错误的吗?
如果需要额外的详细信息来回答我的问题,请告诉我。
它确实收敛了,你的权重在 0 和 1 之间归一化,而预期的最大值是为了将你从 SGD 得到的所有东西乘以 4,你甚至可以看到截距值的相关性。
我正在 Spark 上为合成数据集做 LogisticRegressionWithSGD。我已经使用香草梯度下降计算了 matlab 上的误差,而 R 上的误差约为 5%。我得到了与我用来生成 y 的模型中使用的相似的权重。数据集是使用 this 示例生成的。
虽然我最终能够通过不同的步长调整获得非常接近的错误率,但各个特征的权重并不相同。事实上,它有很大的不同。我为 spark 尝试了 LBFGS,它能够在几次迭代中正确预测错误和权重。我的问题是在 spark 上使用 SGD 进行逻辑回归。
我的体重:
[0.466521045342,0.699614292387,0.932673108363,0.464446310304,0.231458578991,0.464372487994,0.700369689073,0.928407671516,0.467131704168,0.231629845549,0.46465456877,0.700207596219,0.935570594833,0.465697758292,0.230127949916]
我想要的体重:
[2,3,4,2,1,2,3,4,2,1,2,3,4,2,1]
拦截我得到:0.2638102010832128
我要拦截:1
问题 1。是合成数据集的问题吗?我尝试使用 minBatchFraction、stepSize、迭代和拦截进行调整。我没弄对。
Q.2。为什么 spark 给我这个奇怪的权重?期望 Spark 的模型具有相似的权重是错误的吗?
如果需要额外的详细信息来回答我的问题,请告诉我。
它确实收敛了,你的权重在 0 和 1 之间归一化,而预期的最大值是为了将你从 SGD 得到的所有东西乘以 4,你甚至可以看到截距值的相关性。