2025/1/23

划分训练集和测试集
为了评估模型性能,我们需要将数据集划分为训练集和测试集。
scala
// 随机划分数据集为训练集和测试集
val Array(trainingData, testData) = data.randomSplit(Array(0.7, 0.3), seed = 1234L)
5. 创建逻辑回归模型
使用Spark MLlib的LogisticRegression类创建逻辑回归模型。
scala
// 创建逻辑回归模型
val lr = new LogisticRegression()
.setMaxIter(10) // 设置最大迭代次数
.setRegParam(0.3) // 设置正则化参数
.setElasticNetParam(0.8) // 设置弹性网络参数
.setLabelCol("label") // 设置标签列
.setFeaturesCol("features") // 设置特征列

// 训练模型
val model = lr.fit(trainingData)
6. 使用模型进行预测
在测试集上使用训练好的模型进行预测。
scala
// 使用模型对测试集进行预测
val predictions = model.transform(testData)

// 显示预测结果
predictions.select("features", "label", "prediction").show(10)
7. 评估模型性能
使用BinaryClassificationEvaluator评估模型的性能。

// 创建评估器
val evaluator = new BinaryClassificationEvaluator()
.setLabelCol("label")
.setRawPredictionCol("prediction")
.setMetricName("areaUnderROC")

// 计算AUC值
val auc = evaluator.evaluate(predictions)
println(s"Area Under ROC: $auc")

// 保存模型
model.write.overwrite().save("models/logistic_regression_model")
9. 加载模型(可选)
从磁盘加载保存的模型。
scala
复制
// 加载模型
val loadedModel = LogisticRegressionModel.load("models/logistic_regression_model")

// 使用加载的模型进行预测
val loadedPredictions = loadedModel.transform(testData)
loadedPredictions.select("features", "label", "prediction").show(10)
10. 停止SparkSession
完成操作后,停止SparkSession。
scala
复制
spark.stop()

posted @ 2025-01-23 22:07  为20岁努力  阅读(11)  评论(0)    收藏  举报