25高教社杯数模国赛【C题超高质量思路+可运行代码】第十弹

注:本内容由"数模加油站" 原创出品,虽无偿分享,但创作不易。

欢迎参考teach,但请勿抄袭、盗卖或商用。

C 题参考思路

C 题是一类标准的数据分析类题目,其目的是根据题目所给的附件数据资料及题目中的背景介绍分析孕妇的各项指标与其胎儿 Y 染色体浓度的关系,以更精确、及时、准确的进行

NIPT 检测,减少某些孕妇因胎儿不健康而缩短治疗窗口期所带来的潜在风险。

从 2023 年的蔬菜定价模型,2024 年的农作物种植策略,到今年的 NIPT 检测 C 题的数据分析性质日趋明显,针对这类问题,我建议不要过分依赖 python,Matlab 等编程工具以及大模型,更建议先快速的浏览所给附件的属性栏,通过 excel 自身的筛查功能以及快速浏览文件的能力进行初步分析,尽快抓到异常值。在数据分析类题目中,数据预处理占很重要一部分分数。同时要加强对题目的阅读,抓到每题的前提条件,自变量与因变量,最重要的是抓住题目背景知识中蕴含数据异常值的判定条件。例如本题中要抓住,孕周 10 周~25 周,

Y 染色体浓度大于 4%等重要数字,是否是判定条件结合后续的题目要求再研究,但是要有这个数字敏感度。

整个问题的解决流程主要可以分为三大块:对源数据进行预处理,建立 Y 染色体浓度与孕妇 BMI、孕期、孕情等因素的关系模型,提出针对无 Y 染色体的女胎较好的 NIPT 检测方法。进而也需要参赛团队有对应方面的一些知识积累和技能掌握:第一,提取文本信息能力,正如前面所言,数据分析类题目,从题目背景中读懂出题人的意思,找到异常值的判定方式以及对每小问的前提条件,所求目标,自变量因变量的选取,是占绝大部分分数的;第二,数据预处理能力,通过 excel,Matlab,python 等工具的使用,根据前面提取的误差条件,进行数据的预处理;第三,数理统计的相关知识,掌握相关的关系模型,进行显著性检验等。 本题中,问题 123 都是只需要分析附件中男胎数据的内容。而问题 4 是只需要分析女胎的相关内容。

针对问题一,其可能的变量有孕妇的孕周数、BM I,IVF 妊娠,怀孕次数,生产次数,其因变量只有胎儿 Y 染色体的浓度。IVF 妊娠除自然受孕外,另外两种方式的数据样本较少,建议采取 excel 筛选比较的方式。对样本数据较多的孕周数,BMI 等内容,进行数据分析,选取合适的模型。根据常识判断,BMI 与 Y 染色体浓度大致成反比例关系,孕周数与 Y 染色体浓度大致成正比关系。对此问题,采取最小二乘回归及逻辑回归尝试其拟合效果即可。然后分析其显著性,

针对问题二,用问题 1 的逻辑回归估计 BMI 值,对给定 BMI,求满足 Y 染色体浓度要求的最小孕周阈值 ,BMI 分组情况可以采取两种方式分组:方案 A:采用题面常组 [20,28),[28,32),[32,36),[36,40),[40,+∞)。方案 B:对 问题中所做曲线关于 BMI 类别做做 1D 聚类/自然断点,得到 4--6 组并给出各组时点。根据模型选取时点,根据所得结果结合题目背景≤12 周风险低,13--27 周风险高,≥28 周极高,进行风险量化。后续记得进行灵敏度分析与鲁棒性检验。

针对问题三 事实上,身高体重在 BMI 中已有体现,我们只需考虑年龄,妊娠方式等内容的影响,用 L1 正则逻辑回归(可稀疏化、稳定选择)预测,并在样本内评估 AUC;本质上,是第一二题的补充。

针对问题四,阅读相关文献,通过科学性内容,高风险:若任一指标满足

‖Z13‖ ≥ 3 或 ‖Z18‖ ≥ 3 或 ‖Z21‖ ≥ 3,判定为高风险。对附件中数据进行混淆矩阵分析,结合科学性内容佐证,双轨并行。

算法参考代码:
逻辑回归:

python 复制代码
import pandas as pd import matplotlib.pyplot as plt data=pd.read_csv('Dry_Bean_Dataset.csv') df=pd.DataFrame(data) color=[] for i in df['Class'][0:3349]:     if i=='SEKER': 
        color.append('red')     else: 
        color.append('blue') plt.scatter(df['MajorAxisLength'][0:3349],df['MinorAxisLength'][0:3349],color=color) plt.xlabel('MajorAxisLength') plt.ylabel('MinorAxisLength') plt.show() 

最小二乘回归:

python 复制代码
voud LeastSquareLinearFit(float x[], float y[], const int num, double &a, double &b) 
{ 
    uint64_t sum_x  = 0;     uint64_t sum_y  = 0;     uint64_t sum_x2 = 0;     uint64_t sum_xy = 0; 
 
    for(uint32_t i = 0; i < num; i++) 
    {         sum_x += x[i];         sum_y += y[i];         sum_x2 += x[i]*x[i];         sum_xy += x[i]*y[i]; 
    } 
 
    a = (double)(sum_x2*sum_y - sum_x*sum_xy)/(double)(num*sum_x2sum_x*sum_x); // 偏移     b = (double)(num*sum_xy - sum_x*sum_y)/(double)(num*sum_x2 - sum_x*sum_x);  
// 斜率 
}

后续都在"数模加油站"...

相关推荐
To_OC4 小时前
LC 131 分割回文串:刚学回溯时,我连怎么切字符串都想不明白
javascript·算法·leetcode
旖-旎6 小时前
LeetCode 518:零钱兑换||(完全背包)—— 题解
c++·算法·leetcode·动态规划·背包问题
To_OC6 小时前
LC 42 接雨水:暴力超时卡半天?前后缀数组一用就通了
javascript·算法·leetcode
delishcomcn7 小时前
AI视觉识别+分切算法:电化铝缺陷检测与裁切一体化解锁
人工智能·算法
触底反弹7 小时前
深入理解大模型采样:Temperature、Top-K、Top-P 的原理与实战
人工智能·算法·面试
雪碧聊技术8 小时前
力扣 LCR 091. 粉刷房子 —— 动态规划入门详解
算法·动态规划
CV-Climber10 小时前
检索技术的实际应用
人工智能·算法
hhzz11 小时前
Tiger AI Platform平台中增加人脸识别功能
图像处理·人工智能·算法·计算机视觉·大模型
从零开始的代码生活_11 小时前
C++ 继承详解:访问控制、对象模型、菱形继承与设计取舍
开发语言·c++·后端·学习·算法