我在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))
[查看此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
希望这会有所帮助!