我如何在PySpark中运行线性回归并将截距限制为零?

问题描述 投票:0回答:1

我在SAS中拥有运行相当简单的Proc回归的现有代码。我需要将其转换为PySpark。

我正在PySpark中运行线性回归并指定截距应为0。我在data_input上有2个输入列(INPUT1和INPUT2)和一个输出列(OUTPUT),并且还想应用限制INPUT1权重= 1-INPUT2权重。

我的代码当前看起来像这样,但是我看不到可以在其中添加所需设置的地方:

vectorAssembler=VectorAssembler(inputCols=['INPUT1', 'INPUT2'], outputCol='features')
regression_df=vectorAssembler.transform(data_input)
regression_df=regression_df.select(['features', 'OUTPUT'])

lr=LinearRegression(featuresCol='features', labelCol='OUTPUT')
model=lr.fit(regression_df)
print("Coefficients: " + str(model.coefficients))
print("Intercept: +str(model.intercept))
apache-spark pyspark linear-regression intercept
1个回答
0
投票

[查看此pyspark文档:https://spark.apache.org/docs/latest/api/python/pyspark.ml.html#pyspark.ml.regression.LinearRegression

如您所见,可以为LinearRegression对象设置许多参数,其中一个是fitIntercept,默认情况下设置为True。您还可以在此处为LinearRegression模型设置其他参数,例如求解器,损失函数等。此外,您可以在LinearRegression上调用其他方法,其中之一是setFitIntercept。您可以在这里找到更多信息:http://spark.apache.org/docs/latest/api/python/pyspark.ml.html#pyspark.ml.regression.LinearRegression.setFitIntercept

希望这会有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.