Apache spark 如何使用spark for synthetic dataset正确获取权重?
我正在使用spark上的GD对合成数据集进行逻辑回归。我在matlab上用香草梯度下降法计算了误差,在R上的误差约为5%。我得到的权重与我用来生成y的模型中使用的权重相似。数据集是使用示例生成的 虽然我能够在不同步长调整的情况下得到非常接近的错误率,但单个特征的权重并不相同。事实上,变化很大。我为spark尝试了LBFGS,它能够在几次迭代中正确预测误差和重量。我的问题是spark上SGD的逻辑回归 我得到的重量:Apache spark 如何使用spark for synthetic dataset正确获取权重?,apache-spark,machine-learning,pyspark,logistic-regression,gradient-descent,Apache Spark,Machine Learning,Pyspark,Logistic Regression,Gradient Descent,我正在使用spark上的GD对合成数据集进行逻辑回归。我在matlab上用香草梯度下降法计算了误差,在R上的误差约为5%。我得到的权重与我用来生成y的模型中使用的权重相似。数据集是使用示例生成的 虽然我能够在不同步长调整的情况下得到非常接近的错误率,但单个特征的权重并不相同。事实上,变化很大。我为spark尝试了LBFGS,它能够在几次迭代中正确预测误差和重量。我的问题是spark上SGD的逻辑回归 我得到的重量: [0.466521045342,0.699614292387,0.9326731
[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、步长、迭代和截距进行调优。我没弄好
问题2。为什么spark给我这么奇怪的重量?从Spark的模型中期望类似的权重是错误的吗
请让我知道,如果需要额外的细节来回答我的问题 它实际上是收敛的,您的权重在0和1之间标准化,而期望的最大值是,将SGD中得到的所有值乘以4,您甚至可以看到截距值的相关性。为什么期望整数权重取整?至少我可以说这不是常见的情况。第二,机器学习不能保证给你想要的权重,它们是训练算法的输出。我希望算法能学习权重。它不必是四舍五入整数,而是接近整数。另外,我也希望如此,因为创建合成数据集的方式。我可能错了,但因为我在Matlab和R上得到的权重非常接近我的期望值,所以我也试图从spark的算法中得到相同的权重。啊,我明白了,也许你应该注意的是SGD随机梯度下降,它包含一些随机性。但事实上,你的权重是在0和1之间归一化的,虽然期望的最大值是,将从SGD得到的所有值乘以4,你甚至可以看到截距值的相关性。哦,我认为你是对的。这样做是有道理的。我在文档中没有注意到。非常感谢!