算法竞赛相关问题总结记录

news2024/7/6 19:13:58

前言

        日常在校生或者是工作之余的同学或多或少都会参加一些竞赛,参加竞赛一方面可以锻炼自己的理解与实践能力,也能够增加自己的生活费,竞赛中的一些方案也可以后续作为自己论文的base,甚至是横向课题的框架。在算法竞赛中算法的差别个人感觉差距都不大,主要的差别点就是数据处理方式、数据特征的处理,数据特征与结果直接挂钩。

内容

        本科或者是刚读研的学生除了kaggle等这些知名的竞赛平台,可以从一些小的平台开始。个人推荐两个平台,里面的项目与一些解决方案,多少都会对自己有益,本人之前看了一个多模态融合的方法就结合实际项目做出了不错的效果。

平台介绍

1、DLab教学与实训平台

        可以看到里面涉及的模块还是挺丰富的,包含视觉、NLP等,另外一些可以瓜分的较大额度奖金,并且很多项目来自企业或者事业的实际业务,在后续的简历中也可以自己的项目,除此之外还有学习圈可以看一些优秀的项目与解决方案。

2、FlyAI-AI竞赛服务平台

内容小结

        1)、进行数据分析时,首先要看的就是数据的分布情况,看每个类别的分布是否是均衡,其次对于文本的长度进行统计,比如平均长度,这样在选取数据长度的时可以选取平均长度亦或者是略大于平均长度。

        2)、针对于样本分布如果是样本分布不均衡,可这对于样本不均衡作出相应的调整。首先是欠采样或者是过采样。对于样本比较多的进行欠采样,样本比较少的进行过采样。欠采样:删除掉一些文本(对一些不重要文本进行剔除)

常见的文本增强有:

  • 句子的随机打乱(随机打乱句子)
  • (噪声的加入):在正例中加入一些噪声词,或随机剔除一些词
  • 对长文本进行处理(裁剪掉长文本的某一句,比如开头句或结尾句)
  • copy复制
  • paraphrasing,用序列到序列的方式去生成,在问答系统有一个领域叫做问题复述,根据原始问题生成格式更好的问题,相当于修正不规范的问题,将新问题代替旧问题输入到问答系统中

数据分析是首要选择,句子的长度,分类的话包含类别的分布情况。如下所示进行相关统计。

        相比没有进行统计的结果,最初数据的分布如下所示:

        对数据的分布进行初步的分析发现,数据分布存在很大的问题,可以看出很明显的问题就是数据不均衡,尤其对于分类任务来说,数据量分布最大与最小的差别有上万条,最终会影响最后的结果。

预处理部分:

                随机shuffle后以9:1的比例划分线下验证集和训练集,防止数据周期的影响,其次对于不同长度的数据选择合适的长度,可以根据数据分布去中间值,又或比中间值略大的部分。进行对于数据长尾部分的处理,可以采用变换的方式对数据的标签进行转换,(Datawhale 零基础入门数据挖掘-Task4 建模调参-天池实验室-阿里云天池 https://tianchi.aliyun.com/notebook-ai/detail?spm=5176.12586969.1002.18.1cd8593aw4bbL5&postId=95460)

在这里对标签进行了 log \left ( x+1 \right )​变换,使标签贴近于正态分布.

train_y_ln = np.log(train_y + 1)

模型融合(Datawhale 零基础入门数据挖掘-Task5 模型融合_天池notebook-阿里云天池)

  1. 简单加权融合,如回归(分类概率):算术平均融合(Arithmetic mean),几何平均融合(Geometric mean);分类:投票(Voting)综合:排序融合(Rank averaging),log融合
  2. stacking/blending:构建多层模型,并利用预测结果再拟合预测。
  3. boosting/bagging(在xgboost,Adaboost,GBDT中已经用到):多树的提升方法

 对于样本不平衡常采用focal loss加上f1-score 组成新的损失函数

FL=-\alpha _{t}(1-p_{t})^{\gamma }log(p_{t})

F1-score=\tfrac{2*Precision*Recall}{(Precision+Recall)}

        组成新的损失函数:

\alpha(1-F1-score)+Focall_{-}loss

        具体的代码如下所示:

# focal loss code from https://github.com/umbertogriffo/focal-loss-keras/blob/master/losses.py
# f1 loss code from https://www.kaggle.com/rejpalcz/best-loss-function-for-f1-score-metric

def focal_loss(y_true, y_pred):
  gamma=2.
  alpha=.25  
  # Scale predictions so that the class probas of each sample sum to 1
  y_pred /= K.sum(y_pred, axis=-1, keepdims=True)  
  # Clip the prediction value to prevent NaN's and Inf's
  epsilon = K.epsilon()
  y_pred = K.clip(y_pred, epsilon, 1. - epsilon)
  # Calculate Cross Entropy
  cross_entropy = -y_true * K.log(y_pred)
  # Calculate Focal Loss
  loss = alpha * K.pow(1 - y_pred, gamma) * cross_entropy
  # Compute mean loss in mini_batch
  return K.mean(loss, axis=1)

def focal_f1_loss(y_true, y_pred):
  tp = K.sum(K.cast(y_true*y_pred, 'float'), axis=0)
  tn = K.sum(K.cast((1-y_true)*(1-y_pred), 'float'), axis=0)
  fp = K.sum(K.cast((1-y_true)*y_pred, 'float'), axis=0)
  fn = K.sum(K.cast(y_true*(1-y_pred), 'float'), axis=0)
  p = tp / (tp + fp + K.epsilon())
  r = tp / (tp + fn + K.epsilon())
  f1 = 2*p*r / (p+r+K.epsilon())
  alpha = 0.001
  return alpha *  (1 - K.mean(f1)) +  focal_loss(y_true, y_pred)

参考:

2017知乎看山杯 从入门到第二 - 知乎

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

区块链钱包开发指南: 探究区块链钱包开发涉及

区块链钱包是连接用户与区块链网络的重要工具,它们不仅提供了安全的存储和管理数字资产的功能,还允许用户进行交易和与区块链上的智能合约进行互动。本文将探究区块链钱包开发涉及的关键方面和技术要点。 1. 区块链钱包类型 区块链钱包可以分为以下几种…

Android Studio查看viewtree

前言:之前开发过程一直看的是手机上开发者选项中的显示布局边界,开关状态需要手动来回切换,今天偶然在Android Studio中弄出了布局树觉得挺方便的。

汽车纵染压制专用液压机比例阀放大器

汽车纵染压制专用液压机比例阀放大器是一种专门用于汽车纵梁拉伸工艺的设备,它也可以用于其他金属薄板的压制成型及校正工艺。该类型的液压机通常具备独立的动力机构和电气系统,采用PLC技术进行控制,以确保操作的准确性和稳定性。除了纵梁拉伸…

文心一言 VS 讯飞星火 VS chatgpt (243)-- 算法导论18.1 1题

一、B树中为什么不允许最小度数 t1?如果要写代码,请用go语言。 文心一言: 在B树中不允许最小度数 t1 的主要原因在于这样会导致树的结构退化为链表,失去了B树作为平衡多路搜索树的优势。当 t1 时,每个非根节点将只能…

openGauss学习笔记-269 openGauss性能调优-TPCC性能调优测试指导-数据库服务端及客户端绑核

文章目录 openGauss学习笔记-269 openGauss性能调优-TPCC性能调优测试指导-数据库服务端及客户端绑核269.1 安装openGauss数据库269.2 停止数据库269.3 使用gs_guc工具修改数据库端口、IP等269.4 使用gs_guc工具设置如下参数269.5 执行如下命令以绑核方式启动服务端数据库269.6…

在线教程丨刘强东数字人首秀交易额破5千万!用GeneFace++ 生成实时说话数字人

近日,京东创始人刘强东化身「采销东哥 AI 数字人」,在京东家电家居和超市的采销直播间开启了自己的直播首秀。此次直播活动观看人次超 2 千万,交易总额超 5 千万,充分彰显了AI 数字人在电商直播领域的巨大潜力。 「采销东哥」亮相…

SwiftUI 5.0(iOS 17.0)触摸反馈“震荡波”与触发器模式趣谈

概览 要想创作出一款精彩绝伦的 App,绚丽的界面和灵动的动画并不是唯一吸引用户的要素。有时我们还希望让用户真切的感受到操作引发的触觉反馈,直击使用者的灵魂。 所幸的是新版 SwiftUI 原生提供了实现触觉震动反馈的机制。在介绍它之后我们还将进一步…

prompt提示词:小红书爆款标题提示词,让AI 帮你生成吸睛的标题

目录 小红书爆款标题提示词效果展示:提示词: 小红书爆款标题提示词 一篇文章若缺少了吸引人的标题,就如同失去了灵魂的躯壳,失去了与读者心灵相通的桥梁,上次发表了一篇小红书爆款文案生成助手 提示词,大家…

Linux之安装Nginx

目录 传送门前言一、快速安装二、反向代理语法1、基本语法2、location语法1. 基本语法2. 匹配规则3. 修饰符4. 权重5. 嵌套location6. 其他指令7.案例 三、配置反向代理 传送门 SpringMVC的源码解析(精品) Spring6的源码解析(精品&#xff0…

食用油5G智能工厂数字孪生可视化平台,推进食品制造业数字化转型

食用油5G智能工厂数字孪生可视化平台,推进食品制造业数字化转型。在食用油产业中,数字化转型已成为提升生产效率、优化供应链管理、确保产品质量和满足消费者需求的关键。食用油5G智能工厂数字孪生可视化平台作为这一转型的重要工具,正在推动…

【来自理工科的独有浪漫-给crush一朵夏天的雪花】--对于有限差分法的理解

目录 有限差分法相关参考资料先上手看代码,然后理解数理概念有限差分法的理解Q: 什么是有限差分法? 代码中涉及的知识点1. 划分网格对于求解二维偏微分方程的作用2. 临近点对于求解偏微分方程的作用3. 有限差分方法中的中心差分公式 总结 写在前面&#…

喜报 | 一致认可!擎创科技连续6年获“鑫智奖”专家推荐TOP10优秀解决方案

为展示金融企业数据管理和数据平台智能化转型成果,分享大数据和人工智能在风控、营销、产品、运营等场景的落地实践,探讨“金融科技数据智能”的创新应用和未来发展,在全球金融专业人士协会的支持下,金科创新社主办了“鑫智奖第六…

Apple II首席设计师为中国家庭设计,鹿客指脉锁S6 Max引领科技美学

智能门锁设计正在步入一个科技与艺术交织的美学时代。鹿客科技认为,智能门锁的设计理念是将锁视为人类与仿生形状之间的接口,将门视为几何建筑的一部分,产品设计应该通过提供诱人且用户友好的“触摸和感觉”来传达这种转变。 鹿客近日发布的最…

(C语言入门)数组

目录 什么是数组? 数组: 数组的使用: 数组的初始化: 数组名: 数组案例: 一维数组的最大值: 一维数组的逆置: 数组和指针: 通过指针操作数组元素: …

springCloud集成activiti5.22.0流程引擎

springCloud集成activiti5.22.0流程引擎 点关注不迷路,欢迎再访! 精简博客内容,尽量已行业术语来分享。 努力做到对每一位认可自己的读者负责。 帮助别人的同时更是丰富自己的良机。 小编最近工作需要涉及到流程,由于网络上5.22版…

AD--SSL卸载--单向认证和双向认证

一.SSL卸载单向认证 1.添加SSL证书 2.添加SSL卸载策略 由于是测试模拟环境,有些效果表现不出来,配置不了卸载策略 3.起虚拟服务,服务类型选择https或者ssl ,选择SSL卸载策略 实验效果:打开网页进入AD抓包发现,客户端和…

MySQL及SQL语句

SQL语句 数据库相关概念数据查询语言(DQL)基本查询数据类型条件查询多表查询子查询 数据操作语言(DML)数据定义语言(DDL)数据控制语言(DCL)MySQL数据库约束视图练习题 数据库相关概念…

8【PS作图】画一个“像素云朵”

选择64*128像素大小,横向画布 选择“油漆桶”工具,“容差”调整为0,取消“锯齿”,勾选“连续的”,这样方便后续上色,并且边缘都是像素风格的锯齿状 点击画布,变成蓝色天空 画云朵,首…

win10环境中设置java开机自启动

1 、jdk环境确认 在开始设置Java开机启动之前,确保你的计算机已经安装了Java开发环境(JDK)。如果没有安装,你可以从Oracle官方网站下载并安装最新的Java开发工具包。 2、准备好jar程序 确认jar程序可以正常运行。 3、编写批处…