【问题标题】:How can I import Elastic-Net, Lasso and Ridge regression in Pyspark?如何在 Pyspark 中导入 Elastic-Net、Lasso 和 Ridge 回归?
【发布时间】:2020-09-19 13:40:43
【问题描述】:
您能否告诉我如何在 Pyspark 中使用 Elastic-Net、Lasso 和 Ridge 回归?实际上,我根据机器学习备忘单选择了 Linear、Elastic-Net、Lasso 和 Ridge 回归这 4 种算法。但是,我不知道如何在 Pyspark 中导入 Elastic-Net、Lasso 和 Ridge 回归,也无法在谷歌上找到正确的答案。我只知道在Pyspark 中使用线性回归。
【问题讨论】:
标签:
machine-learning
pyspark
linear-regression
apache-spark-ml
lasso-regression
【解决方案1】:
看看https://spark.apache.org/docs/1.5.2/ml-linear-methods.html
你可以使用类似的东西:
from pyspark.ml.regression import LinearRegression
from pyspark.mllib.regression import LabeledPoint
from pyspark.mllib.util import MLUtils
# Load training data
training = MLUtils.loadLibSVMFile(sc, "data/mllib/sample_libsvm_data.txt").toDF()
lr = LinearRegression(maxIter=10, regParam=0.3, elasticNetParam=0.8)
# Fit the model
lrModel = lr.fit(training)
# Print the weights and intercept for linear regression
print("Weights: " + str(lrModel.weights))
print("Intercept: " + str(lrModel.intercept))
如果您阅读设置,您会发现:
通过正确设置α,弹性网络包含L1和L2正则化作为特例。例如,如果在弹性网络参数α 设置为 1 的情况下训练线性回归模型,则它等效于 Lasso 模型。另一方面,如果 α 设置为 0,则经过训练的模型会简化为 岭回归模型。
地点:
elasticNetParam 对应于α,regParam 对应于λ。