使用pysaprk mllib,用LinearRegression写线性回归代码
时间: 2023-11-22 16:56:34 浏览: 71
下面是使用pyspark mllib中的LinearRegression来实现线性回归的代码示例:
```python
from pyspark.ml.regression import LinearRegression
from pyspark.ml.feature import VectorAssembler
from pyspark.sql.functions import col
# 加载数据
data = spark.read.csv("data.csv", header=True, inferSchema=True)
# 创建特征向量
assembler = VectorAssembler(inputCols=["feature1", "feature2", "feature3"], outputCol="features")
data = assembler.transform(data).select(col("features"), col("target"))
# 划分数据集
(trainingData, testData) = data.randomSplit([0.7, 0.3])
# 创建线性回归模型
lr = LinearRegression(maxIter=10, regParam=0.3, elasticNetParam=0.8)
# 训练模型
model = lr.fit(trainingData)
# 预测测试集
predictions = model.transform(testData)
# 评估模型
from pyspark.ml.evaluation import RegressionEvaluator
evaluator = RegressionEvaluator(labelCol="target", predictionCol="prediction", metricName="rmse")
rmse = evaluator.evaluate(predictions)
print("Root Mean Squared Error (RMSE) on test data = %g" % rmse)
```
其中,data.csv是包含特征和目标变量的CSV文件,feature1、feature2和feature3是特征变量的列名,target是目标变量的列名。在代码中,首先使用VectorAssembler将特征变量组合成一个向量,然后使用randomSplit将数据集划分为训练集和测试集。接着,创建LinearRegression对象,并使用fit方法训练模型。最后,使用RegressionEvaluator评估模型的性能,并输出RMSE值。
阅读全文