【ML Olympiad】预测地震破坏——根据建筑物位置和施工情况预测地震对建筑物造成的破坏程度

文章目录

  • Overview 概述
    • Goal 目标
    • Evaluation 评估标准
  • Dataset Description 数据集说明
    • Dataset Source 数据集来源
    • Dataset Fields 数据集字段
  • Data Analysis and Visualization 数据分析与可视化
    • Correlation 相关性
    • Hierarchial Clustering 分层聚类
    • Adversarial Validation 对抗验证
  • Target 目标
    • Model 模型
    • Vote 投票
  • Score Models 模型评分


Overview 概述

     ML Olympiad - Predicting Earthquake Damage是一个由Kaggle和DrivenData合作举办的比赛,旨在通过机器学习算法来预测尼泊尔地震后房屋的损坏程度。这个比赛提供了一个数据集,其中包含了尼泊尔地震期间房屋的各种特征信息,以及每个房屋的损坏程度标签。

     参赛者需要利用提供的数据集构建一个模型,通过分析房屋的特征信息来预测房屋的损坏程度。挑战在于需要处理大量的结构化数据,并建立一个高效的预测模型。参赛者可以使用各种机器学习算法、特征工程技巧和模型调优方法来提高他们的预测准确性。
在这里插入图片描述

Goal 目标

     该比赛的目标是帮助相关组织和机构更好地了解地震对房屋造成的破坏程度,从而提前做好灾害应对和救援准备。通过参与这个比赛,参赛者不仅可以提升他们的机器学习建模能力,还可以为社会做出积极的贡献。

Evaluation 评估标准

     macro F score,也称为macro-averaged F1 score,是用于评估多类分类模型性能的指标。它代表了所有类别的平均F1分数,将每个类别视为相等,而不考虑其大小或重要性。


Dataset Description 数据集说明

Dataset Source 数据集来源

       本次比赛的合成数据是根据 Richter’s Predictor:Modeling Earthquake Damage 创建的,包含2015年廓尔喀地震建筑位置和施工细节的数据集。这些数据是通过Kathmandu生活实验室和尼泊尔国家计划委员会秘书处下属的中央统计局的调查收集的。这项调查是有史以来收集到的最大灾后数据集之一,包含有关地震影响、家庭状况和社会经济人口统计数据的宝贵信息。文件包括:
train.csv:训练数据集。该数据集包含了4000行和 36 列。
test.csv:测试数据集。与训练数据集类似,该数据集包括 1000 行和 35 列。
sampleSubmission.csv: 示例提交文件。该文件是由最后生成的实际预测结果导出的表格。
在这里插入图片描述


Dataset Fields 数据集字段

       此处以train.csv为例,描述数据集中的字段及其含义:

字段含义
building_id建筑物ID
count_floors_pre_eq地震前楼层数
age建筑物年龄
area_percentage地块占比
height_percentage高度占比
land_surface_condition土地表面条件
foundation_type基础类型
roof_type屋顶类型
ground_floor_type底层类型
other_floor_type其他楼层类型
position位置
plan_configuration平面配置
has_superstructure_adobe_mud是否有土坯结构
has_superstructure_mud_mortar_stone是否有泥砂砂浆石结构
has_superstructure_stone_flag是否有石质结构标志
has_superstructure_cement_mortar_stone是否有水泥砂砂浆石结构
has_superstructure_mud_mortar_brick是否有泥砂砂浆砖结构
has_superstructure_cement_mortar_brick是否有水泥砂砂浆砖结构
has_superstructure_timber是否有木结构
has_superstructure_bamboo是否有竹结构
has_superstructure_rc_non_engineered是否有非工程钢筋混凝土结构
has_superstructure_rc_engineered是否有工程钢筋混凝土结构
has_superstructure_other是否有其他结构
legal_ownership_status法律所有权状态
count_families家庭数量
has_secondary_use是否有次要用途
has_secondary_use_agriculture是否有农业次要用途
has_secondary_use_hotel是否有酒店次要用途
has_secondary_use_rental是否有出租次要用途
has_secondary_use_institution是否有机构次要用途
has_secondary_use_school是否有学校次要用途
has_secondary_use_industry是否有工业次要用途
has_secondary_use_health_post是否有医疗设施次要用途
has_secondary_use_gov_office是否有政府办公室次要用途
has_secondary_use_use_police是否有警察局次要用途
has_secondary_use_other是否有其他次要用途
damage_grade损坏等级

Data Analysis and Visualization 数据分析与可视化

Correlation 相关性

       使用斯皮尔曼相关系数计算数据集中数值型特征与目标变量之间的相关性,并创建一个热力图来可视化这些相关性。热力图中的颜色深浅表示了相关性的强弱,同时在图中还显示了具体的相关系数数值。此外,通过掩码操作,对角线以下的相关性值被遮盖,以避免重复显示。
在这里插入图片描述


Hierarchial Clustering 分层聚类

       通过分层聚类的方法将特征进行聚类。函数接受数据集、标签和方法参数作为输入。首先,它计算特征之间的相关性矩阵,然后利用相关性矩阵构建聚类树。接着,使用函数生成特征之间的链接矩阵表示特征的相似性。最后,通过以树状图的形式可视化特征的聚类结果,并在图表上显示特征的标签。
在这里插入图片描述


Adversarial Validation 对抗验证

       绘制一个包含多个子图的图表,用于显示训练数据集和测试数据集中数值型特征的分布情况。在每个子图中,使用直方图来展示该特征在训练数据集和测试数据集中的分布情况,其中训练数据集的直方图以红色表示,测试数据集的直方图以绿色表示。同时,对于没有特征对应的子图,将其隐藏。整个图表的标题用于描述特征在不同数据集中的分布情况,并在图例中标识了训练数据集和测试数据集。
在这里插入图片描述
       在对抗验证中看到,训练和测试数据可能不遵循相同的分布,但是,从视觉上看,一些数值变量在两者中具有相同的分布。


Target 目标

       针对训练数据集中目标变量的不同取值,绘制一个柱状图来展示每个取值对应的样本数量。
在这里插入图片描述
       这是一个具有不平衡类的数据集,在这种情况下,我们将选择在验证中使用 Stratified K-Fold。
       Stratified K-Fold 是一种交叉验证的方法,它能够在划分数据集时保持每个折叠中各个类别样本的比例与整个数据集中各个类别样本的比例相似。在机器学习中,特别是在处理不平衡类别的数据集时,使用 Stratified K-Fold 能够更好地确保模型在交叉验证过程中对各个类别的预测能力。这种方法有助于减少由于不平衡数据引起的模型评估偏差,提高模型评估的准确性和稳健性。

Model 模型

       对多个分类模型进行了交叉验证,并记录了它们的性能评分。

models = [
    ('log', LogisticRegression(random_state = SEED, max_iter = 1000000)),
    ('bnb', BernoulliNB()),
    ('rf', RandomForestClassifier(random_state = SEED)),
    ('et', ExtraTreesClassifier(random_state = SEED)),
    ('xgb', XGBClassifier(random_state = SEED)),
    ('lgb', LGBMClassifier(random_state = SEED,verbosity=0)),
    ('gb', GradientBoostingClassifier(random_state = SEED)),
    ('hgb', HistGradientBoostingClassifier(random_state = SEED))
]

       这些模型的性能评估结果如下:

Val Score: 0.53032 ± 0.01052 | Train Score: 0.54762 ± 0.00718 | log
Val Score: 0.52955 ± 0.00822 | Train Score: 0.53774 ± 0.00188 | bnb
Val Score: 0.53408 ± 0.01000 | Train Score: 0.99584 ± 0.00076 | rf
Val Score: 0.51914 ± 0.00924 | Train Score: 0.99584 ± 0.00076 | et
Val Score: 0.52693 ± 0.01181 | Train Score: 0.89624 ± 0.00137 | xgb
Val Score: 0.52754 ± 0.01253 | Train Score: 0.83933 ± 0.00353 | lgb
Val Score: 0.52542 ± 0.01657 | Train Score: 0.63977 ± 0.00856 | gb
Val Score: 0.52613 ± 0.00736 | Train Score: 0.88695 ± 0.00303 | hgb

       根据结果来看,各个模型的验证集得分(Val Score)大致在 0.52 到 0.53 之间,训练集得分(Train Score)则普遍较高。这可能表明模型存在一定程度的过拟合,即在训练集上表现优秀,但在验证集上的表现较差。特别地,随机森林(rf)和极端随机树(et)模型在训练集上获得了接近1的得分,可能存在过拟合的风险。


Vote 投票

       定义了一个投票分类器 voting,将之前定义的多个模型 models 作为投票的选项,并使用软投票策略进行投票。

Val Score: 0.54648 ± 0.01122 | Train Score: 0.96209 ± 0.00166 | mean_models

       根据结果来看,使用投票分类器进行软投票(voting=‘soft’)得到的验证集得分为 0.54648,训练集得分为 0.96209。与之前单个模型相比,投票分类器在验证集上的得分略有提升,说明投票策略可以有效地改善模型性能。


Score Models 模型评分

       对模型评分进行可视化展示,以便更清晰地展示模型评分的信息。
在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/646689.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux系统部署Oracle11g:netca成功启动后1521端口未能启动问题

一、问题描述 执行netca命令,进入图形化界面,进行Oracle端口监听设置 #终端输入命令 netca 最终提示设置成功: 但是我们进行下一步“创建数据库”的时候会报错,说数据库端口1521未开启! 二、问题处理 使用命令查看开…

【Python特征工程系列】一文教你使用PCA进行特征分析与降维(案例+源码)

这是我的第287篇原创文章。 一、引言 主成分分析(Principal Component Analysis, PCA)是一种常用的降维技术,它通过线性变换将原始特征转换为一组线性不相关的新特征,称为主成分,以便更好地表达数据的方差。 在特征重要…

【kubernetes】陈述式资源管理的kubectl命令合集

目录 前言 一、K8s 资源管理操作方式 1、声明式资源管理方式 2、陈述式资源管理方式 二、陈述式资源管理方式 1、kubectl 命令基本语法 2、查看基本信息 2.1 查看版本信息 2.2 查看资源对象简写 2.3 配置kubectl命令自动补全 2.4 查看node节点日志 2.5 查看集群信息…

Windows下安装配置深度学习环境

Windows下安装配置深度学习环境 1. 准备工作 1.1 环境准备 操作系统:win10 22H2 GPU:Nvidia GeForce RTX 3060 12G 1.2 安装Nvidia驱动、cuda、cuDNN 下载驱动需要注册并登录英伟达账号。我这里将下面用到的安装包放到了百度网盘,可以关注微信…

【Linux杂货铺】进程通信

目录 🌈 前言🌈 📁 通信概念 📁 通信发展阶段 📁 通信方式 📁 管道(匿名管道) 📂 接口 ​编辑📂 使用fork来共享通道 📂 管道读写规则 &…

智能家居完结 -- 整体设计

系统框图 前情提要: 智能家居1 -- 实现语音模块-CSDN博客 智能家居2 -- 实现网络控制模块-CSDN博客 智能家居3 - 实现烟雾报警模块-CSDN博客 智能家居4 -- 添加接收消息的初步处理-CSDN博客 智能家居5 - 实现处理线程-CSDN博客 智能家居6 -- 配置 ini文件优化设备添加-CS…

fastadmin 树状菜单展开,合并;简要文件管理系统界面设计与实现

一,菜单合并效果图 源文件参考:fastadmin 子级菜单展开合并、分类父级归纳 - FastAdmin问答社区 php服务端: public function _initialize() {parent::_initialize();$this->model new \app\admin\model\auth\Filetype;$this->admin…

粤嵌—2024/5/21—打家劫舍(✔)

代码实现&#xff1a; int rob(int *nums, int numsSize) {if (numsSize 1) {return nums[0];}if (numsSize 2) {return fmax(nums[0], nums[1]);}int dp[numsSize];dp[0] nums[0];dp[1] fmax(nums[0], nums[1]);for (int i 2; i < numsSize; i) {dp[i] fmax(dp[i - 1…

东方通TongWeb结合Spring-Boot使用

一、概述 信创需要; 原状:原来的服务使用springboot框架,自带的web容器是tomcat,打成jar包启动; 需求:使用东方通tongweb来替换tomcat容器; 二、替换步骤 2.1 准备 获取到TongWeb7.0.E.6_P7嵌入版 这个文件,文件内容有相关对应的依赖包,可以根据需要来安装到本地…

vue/core源码中ref源码的js化

起源&#xff1a; 当看见reactivity文件中的ref.ts文件长达五百多的ts代码后&#xff0c;突发奇想想看下转化成js有多少行。 进行转化&#xff1a; let shouldTrack true; // Define shouldTrack variable let activeEffect null; // Define activeEffect variable// 定义…

Android9.0 MTK平台如何增加一个系统应用

在安卓定制化开发过程中&#xff0c;难免遇到要把自己的app预置到系统中&#xff0c;作为系统应用使用&#xff0c;其实方法有很多&#xff0c;过程很简单&#xff0c;今天分享一下我是怎么做的&#xff0c;共总分两步&#xff1a; 第一步&#xff1a;要找到当前系统应用apk存…

【数据结构与算法 经典例题】判断链表是否带环

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;数据结构与算法刷题系列&#xff08;C语言&#xff09; 期待您的关注 目录

互联网十万个为什么之 什么是Kubernetes(K8s)?

Kubernetes&#xff08;通常简称为K8s&#xff09;是一款用于自动部署、扩缩和管理容器化应用程序的开源容器编排平台。Kubernetes已发展为现代企业实现敏捷开发、快速迭代、资源优化及灵活扩展的关键技术组件之一。它拥有庞大的开源社区和丰富的生态系统。围绕Kubernetes已经形…

深度强化学习 Actor-Critic演员评论家 PPO

将策略(Policy Based)和价值(Value Based)相结合的方法&#xff1a;Actor-Critic算法&#xff0c;在强化学习领域最受欢迎的A3C算法&#xff0c;DDPG算法&#xff0c;PPO算法等都是AC框架。 一、Actor-Critic算法简介 Actor-Critic从名字上看包括两部分&#xff0c;演员(Actor…

《拯救大学生课设不挂科第四期之蓝桥杯是什么?我是否要参加蓝桥杯?选择何种语言?如何科学备赛?方法思维教程》【官方笔记】

背景&#xff1a; 有些同学在大一或者大二可能会被老师建议参加蓝桥杯&#xff0c;本视频和文章主要是以一个过来人的身份来给与大家一些思路。 比如蓝桥杯是什么&#xff1f;我是否要参加蓝桥杯&#xff1f;参加蓝桥杯该选择何种语言&#xff1f;如何科学备赛&#xff1f;等…

《最新出炉》系列入门篇-Python+Playwright自动化测试-41-录制视频

宏哥微信粉丝群&#xff1a;https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 1.简介 上一篇讲解和分享了录制自动生成脚本&#xff0c;索性连带录制视频也一股脑的在这里就讲解和分享了。今天我们将学习如何使用Playwright和Python来录制浏览器操作的视频&#…

19 QinQ技术(Vlan两层封装)

1 什么是QinQ&#xff1f; QinQ&#xff08;802.1Q-in-802.1Q&#xff09;&#xff0c;也叫做VLAN Stacking或Double VLAN&#xff0c;由IEEE 802.1ad标准定义&#xff0c;**是一项扩展VLAN空间的技术&#xff0c;**通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩…

1738. 找出第 K 大的异或坐标值

题目&#xff1a; 给你一个二维矩阵 matrix 和一个整数 k &#xff0c;矩阵大小为 m x n 由非负整数组成。 矩阵中坐标 (a, b) 的 值 可由对所有满足 0 < i < a < m 且 0 < j < b < n 的元素 matrix[i][j]&#xff08;下标从 0 开始计数&#xff09;执行异…

架构师必考题--软件系统质量属性

软件系统质量属性 1.质量属性2.质量属性场景描述3.系统架构评估 这个知识点是系统架构师必考的题目&#xff0c;也是案例分析题第一题&#xff0c; 有时候会出现在选择题里面&#xff0c;考的分数也是非常高的。 1.质量属性 属性说明可用性错误检测/恢复/避免性能资源需求/管理…

链游:区块链技术的游戏新纪元

随着区块链技术的快速发展&#xff0c;越来越多的行业开始探索与其结合的可能性&#xff0c;其中&#xff0c;游戏行业与区块链的结合尤为引人注目。链游&#xff0c;即基于区块链技术的游戏&#xff0c;正以其独特的优势&#xff0c;为玩家带来全新的游戏体验。本文将对链游进…