构建线性回归spark
时间: 2023-11-22 22:50:27 浏览: 117
Spark ml pipline交叉验证之线性回归.docx
以下是使用Spark ML构建线性回归模型的示例代码:
```python
from pyspark.ml.regression import LinearRegression
from pyspark.ml.feature import VectorAssembler
# 读取数据
data_path = "files/ml/linear_regression_data1.txt"
data = spark.read.format("csv").option("header", "false").option("inferSchema", "true").load(data_path)
# 将特征值转换为向量
assembler = VectorAssembler(inputCols=data.columns[1:], outputCol="features")
data = assembler.transform(data).select("label", "features")
# 划分训练集和测试集
train_data, test_data = data.randomSplit([0.7, 0.3], seed=123)
# 构建线性回归模型
lr = LinearRegression(featuresCol="features", labelCol="label", maxIter=10, regParam=0.3, elasticNetParam=0.8)
# 训练模型
model = lr.fit(train_data)
# 预测测试集
predictions = model.transform(test_data)
# 打印预测结果
predictions.show()
# 评估模型
from pyspark.ml.evaluation import RegressionEvaluator
evaluator = RegressionEvaluator(labelCol="label", predictionCol="prediction", metricName="rmse")
rmse = evaluator.evaluate(predictions)
print("Root Mean Squared Error (RMSE) on test data = %g" % rmse)
```
在上述代码中,我们首先使用`VectorAssembler`将特征值转换为向量,然后使用`randomSplit`方法将数据划分为训练集和测试集。接着,我们构建了一个`LinearRegression`对象,并使用`fit`方法训练模型。最后,我们使用`RegressionEvaluator`评估模型的性能。
阅读全文