基于spark的大数据分析预测地震受灾情况的系统设计_基于spark的预测分析(1)


网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
创建Pipeline
pipeline = Pipeline(stages=indexers + [encoder, assembler])
data_final = pipeline.fit(data).transform(data)
data_final.show()

### 3、异常数据处理
在异常数据处理阶段,我们将处理可能存在的异常情况,确保数据的完整性和准确性:
使用正则表达式提取数字部分
data_final = data_final.withColumn(“damage_grade_y_numeric”, regexp_extract(data_final[“damage_grade_y”], r’\d+', 0))
将列转换为 numeric 类型
data_final = data_final.withColumn(“damage_grade_y_numeric”, data_final[“damage_grade_y_numeric”].cast(“int”))
显示转换后的结果
data_final.select(“damage_grade_y”, “damage_grade_y_numeric”).show()

### 4、标题模型训练和评估
在模型训练和评估阶段,我们将使用随机森林分类器进行模型训练,并评估模型在测试集上的表现:
划分数据集为训练集和测试集
(train_data, test_data) = data_final.randomSplit([0.8, 0.2], seed=1234)
初始化随机森林分类器
rf = RandomForestClassifier(labelCol=“damage_grade_y_numeric”, featuresCol=“features”, numTrees=10)
训练模型
model = rf.fit(train_data)
在测试集上进行预测
predictions = model.transform(test_data)
模型评估
evaluator = MulticlassClassificationEvaluator(labelCol=“damage_grade_y_numeric”, predictionCol=“prediction”, metricName=“accuracy”)
accuracy = evaluator.evaluate(predictions)
print(“Test Accuracy = {:.2f}%”.format(accuracy * 100))

### 标题5、可视化大屏实现与展示
为了更直观地展示预测结果,我们设计了一个可视化大屏。该大屏将包括地图展示、受灾情况分布图以及预测结果展示等内容,以帮助用户更好地理解地震造成的破坏程度。
body {
width: 100%;
margin: 0;
overflow: hidden;
}
更多推荐
所有评论(0)