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

前言

        日常在校生或者是工作之余的同学或多或少都会参加一些竞赛,参加竞赛一方面可以锻炼自己的理解与实践能力,也能够增加自己的生活费,竞赛中的一些方案也可以后续作为自己论文的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-metricdef focal_loss(y_true, y_pred):gamma=2.alpha=.25  # Scale predictions so that the class probas of each sample sum to 1y_pred /= K.sum(y_pred, axis=-1, keepdims=True)  # Clip the prediction value to prevent NaN's and Inf'sepsilon = K.epsilon()y_pred = K.clip(y_pred, epsilon, 1. - epsilon)# Calculate Cross Entropycross_entropy = -y_true * K.log(y_pred)# Calculate Focal Lossloss = alpha * K.pow(1 - y_pred, gamma) * cross_entropy# Compute mean loss in mini_batchreturn 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.001return alpha *  (1 - K.mean(f1)) +  focal_loss(y_true, y_pred)

参考:

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

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

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

相关文章

CUDA流与异步

CUDA流与异步 基于流的异步的内核启动和数据传输支持以下类型的粗粒度并发: 1.重叠主机计算和设备计算; 2.重叠主机计算和主机与设备间的数据传输; 3.重叠主机与设备间的数据传输和设备计算; 4.并发设备计算。 理解一个CUDA程序&…

安卓手机APP开发__媒体开发部分__播放器的接口

安卓手机APP开发__媒体开发部分__播放器的接口 目录 概述 组件之间的共同的接口 媒体3的播放的架构 播放器的状态 对改变的监听 当前的播放 定制的播放器实现 概述 一个播放器是你的APP中完成媒体项的播放的组件. 媒体3的播放器接口提供了一个关于播放器处理的功能的总…

一招搞定“找不到xinput1_3.dll,无法继续执行代码”问题

在我们日常使用电脑进行各类工作的过程中,特别是在运行一些关键性软件以完成特定任务时,电脑屏幕上突然弹出一条醒目的错误提示信息:“由于找不到xinput1_3.dll,无法继续执行代码”。这个错误通常发生在使用DirectInput库时,而xin…

Java Spring框架的核心优势是什么?

Spring框架是Java企业应用开发中广泛使用的开源框架,它旨在简化企业级应用的开发。Spring框架的核心优势主要体现在以下几个方面: 轻量级和松耦合:Spring框架设计得非常轻量级,它的大小和复杂性都相对较低,这使得开发者…

BFS解决FloodFill算法:(Leetcode:733. 图像渲染)

题目链接:733. 图像渲染 - 力扣(LeetCode) 使用广度优先遍历算法解决该问题: 从初始位置开始搜索,初始位置符合条件就入栈,并修改初始位置值。初始位置出栈。 再从初始位置开始广度优先搜索(…

代码随想录算法训练营第三十四天|1005.K次取反后最大化的数组和,134. 加油站,135. 分发糖果

目录 1005.K次取反后最大化的数组和思路代码 134. 加油站思路代码 135. 分发糖果思路代码 1005.K次取反后最大化的数组和 题目链接:1005.K次取反后最大化的数组和 文档讲解:代码随想录 视频讲解:贪心算法,这不就是常识&#xff1f…

阿赵UE学习笔记——30、HUD简单介绍

阿赵UE学习笔记目录 大家好,我是阿赵。   继续学习虚幻引擎,这次来学习一下HUD的基础使用。 一、 什么是HUD HUD(Head-Up Display),也就是俗称的抬头显示。很多其他领域里面有用到这个术语,比如开车的朋友可能会接触过&#xf…

【Camera Sensor Driver笔记】一、Sensor基本概念

时钟 sensor clock sensor的输入时钟 MCLK 输出时钟: 1. VTPixelClock:会影响sensor内部的帧率、曝光 VTPixelClock(vt_clk)Video Timing Clock, From sensor PLL VTPixelClock Framelengthlines x LinelengthPixelClock x FPS Framelengthlines L…

页面加载事件

2.1窗口加载事件 1.window.οnlοadfuction(){} 或者 window.addEventListerner(‘load’,function(){}) doucument.addEventListner(DOMContentLoaded,fuction(){})这个反应更快些

是德软件89600 RFID使用笔记

文章目录 1、进入RFID软件:2、RFID软件解调设置项3、如何查看一段指令数据 本文是日常工作的笔记分享。 lauch VSA(矢量频谱分析)后会出现以下界面: 当然这是因为频谱仪的输入有信号才显示如下: 否则就显示频谱仪的噪…

初识C++ · 类和对象(中)(2)

前言:上篇文章已经介绍了6个默认成员函数中的3个函数,分别是构造函数,析构函数,拷贝构造函数,本文介绍的是后三个,赋值运算符重载,const成员函数,取地址操纵符重载。 目录​​​​​…

通过使用XShell工具、Nginx环境实现服务器项目构建与发布

前言: 在信息化和数字化的今天,网站和应用的构建与发布已成为企业发展的重要一环。为了确保项目的顺利上线和稳定运行,选择合适的工具和环境至关重要。本文将详细介绍如何通过XShell工具以及Nginx环境来实现服务器项目的构建与发布&#xff0…

vue 实现级联选择器功能

vue开发中&#xff0c;通过使用 Element UI 的 el-cascader 组件来实现级联选择器功能,下面是一个示例代码&#xff0c;演示如何使用 el-cascader 组件初始化级联选择器&#xff0c;并设置默认值为单位 测试1 和部门 测试11 <template><div><el-cascaderv-mode…

transformer中,多头注意力机制

在Transformer模型中&#xff0c;多头注意力机制通常在自注意力机制&#xff08;Self-Attention&#xff09;的步骤中使用。自注意力机制是Transformer中的核心组件之一&#xff0c;用于在输入序列中建立全局依赖关系&#xff0c;并为每个位置生成一个上下文相关的表示。 具体…

datax介绍和用法

Datax 简介 DataX 是阿里巴巴集团内被广泛使用的离线数据同步工具/平台&#xff0c;实现包括 MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase、TableStore(OTS)、MaxCompute(ODPS)、DRDS 等各种异构数据源之间高效的数据同步功能。 DataX本身作为数据同步框架&…

前端科举面经-HTML篇

前端面试-HTML篇 什么是http?http和https有什么区别https的加密过程?http2.0有什么改进?src和href的区别对html语义化标签的理解?script标签中defer和asyc的区别?举出几个常见的行内、块级元素什么是webworker&#xff1f;iframe的优缺点&#xff1f;介绍一下tcp三次握手f…

智慧图书馆为什么用rfid电子标签而不是磁条

智慧图书馆一般都会使用RFID技术&#xff0c;而不是磁条。以下是几个原因&#xff1a; 1. 效率更高&#xff1a;RFID技术可以实现非接触式读取&#xff0c;图书馆工作人员可以同时读取多本书的信息&#xff0c;大大提高了借还书的效率。 2. 数据量更大&#xff1a;RFID标签可以…

大模型-入门小知识

大模型是什么 大量参数&#xff08;上亿&#xff09;深度学习模型 人工只能包含机器学习&#xff0c;深度学习,深度学习包括大模型 单个神经元的计算模型&#xff1a; 大模型是怎么训练的 之前是算法&#xff08;神经网络&#xff09;----> 训练&#xff08;门槛降低&…

K8s: 控制器之Deployment对象

Deployment 对象 1 &#xff09;概述 为什么大家都用Deployment&#xff0c;不直接用Pod&#xff0c;不直接用 Replica Set因为deployment就是专门像一个管理员一样&#xff0c;专门来管这些散落在各处的各种各样的PodDeployment不仅会管Pod&#xff0c;还会管Replica Set只要…

LlamaIndex代理的逐步执行框架,包括代理运行器和代理工作者

原文地址&#xff1a;llamaindex-agent-step-wise-execution-framework-with-agent-runners-agent-workers 2024 年 4 月 15 日 LlamaIndex lower-level 代理 API 提供了一系列功能&#xff0c;超出了仅从头到尾执行用户查询的范围。 介绍 LlamaIndex 提供了一个全面的代理 API…