【2025年五一数学建模竞赛C题】社交媒体平台用户分析问题完整思路+paper+代码

本人7年数学建模竞赛经验,历史获奖率百分之百。团队成员都是拿过全国一等奖的硕博,有需要数模竞赛帮助的可以私信我

本题主要涉及统计学习,机器学习,数据处理,推荐算法等知识点,数据特征处理和分类器模型训练是本题的重点

1.问题背景与描述

在这里插入图片描述

2.解题思路分析

2.1 问题一的分析

本题要求基于用户与博主历史交互数据,提取有效特征变量,来预测博主的各博主在2024.7.21当天新增的关注数。给出新增关注数最多的5位博主ID及其对应的新增关注数。

这道题有简单的做法有复杂的做法,

    1. 简单的解题思路就是直接从附件数据中抽取每个博主的单日新增关注数。然后利用时间序列基于时间特征去预测未来7.21日的每个博主的关注。但是这种思路没有考虑用户特征,博主特征以及交互特征,可以再挖掘一些细节特征训练预测模型;
    1. 复杂一点的做法就是从用户角度出发,预测用户是否会新关注一个博主,用户的行为包括观看、点赞、评论和关注,其中关注代表用户已经观看了内容。已知用户如果在某天没有记录,说明那天没使用平台。所以,我需要分析用户的历史互动行为,找出哪些因素会影响他们关注博主,然后预测7月21日每个博主的新增关注数。可能的思路是,先统计每个用户在历史期间(7.11-7.20)对各个博主的互动情况,比如观看次数、点赞次数、评论次数,以及是否关注过。然后,可能构建一个回归模型或者分类模型,预测在7月21日用户是否会关注某个博主。但问题是要预测的是每个博主的新增关注数,也就是总的被关注次数。因此,可能需要从用户的角度出发,预测每个用户当天会关注哪些博主,然后将这些汇总到博主层面。这种做法,考虑的特征更加合理,从用户特征出发能够充分考虑用户个性化行为。

== 总的来说不管是那种思路,本题的核心工作量还是在特征工程上面,要想结果做的准确,一个好的特征工程是必须的==

2.2 问题二的分析

问题2要求预测用户在7月22日的新关注行为。附件2给出了7月22日用户的具体互动行为(观看、点赞、评论),但需要预测的是他们当天是否会关注新的博主。这里的数据可能更侧重于当天的实时行为,结合历史数据来预测。可能需要用监督学习的方法,比如逻辑回归、随机森林、梯度提升树等,将用户的历史行为作为特征,预测他们是否会在当天关注某个博主。
可能需要处理多分类问题,因为每个用户可能关注多个博主,或者需要预测具体的博主ID。问题2的结果要填写每个指定用户在7月22日新关注的博主ID,所以可能需要为每个用户生成一个概率分布,然后选择概率最高的几个博主作为预测结果。可以采用多分类模型来预测每个用户对所有博主的关注概率,然后利用排序算法给出概率最高的几个博主作为预测结果。

本题的核心是构造用户特征,包括用户的实时互动数据(观看、点赞、评论数据,基于多分类模型(KNN)等预测用户对所有博主的关注概率

2.3 问题三的分析

问题3要求预测指定用户在7月21日是否在线,如果在线的话,预测他们可能与哪些博主产生互动,并给出互动数最高的三个博主。这里需要考虑用户在线状态的概率,以及在线时的互动模式。
首先建立一个二元分类模型(比如逻辑回归)判别用户是否在线,可以使用历史数据中的活跃时间、频率等信息,比如用户通常在哪些时间段活跃,是否有规律,需要通过特征工程提取出历史活跃时间、近期活跃情况等特征变量;

然后,对于在线的用户,预测他们可能与哪些博主互动。这里的互动可能包括观看、点赞、评论、关注,但问题3中提到的互动数是点赞、评论、关注的总和,所以可能需要综合考虑这些行为的概率。建立多分类预测模型,分别预测用户与所有博主发生互动的概率,然后给出概率最高的前三位。

本题的判断用户是否在线是一个简单的二元分类问题,而对于互动关系的预测,解题思路同问题二,不过对应的特征提取是解题的核心

2.4 问题四的分析

本题基本上是问题三的扩展,

    1. 预测用户是否在线,方法同问题3。
    1. 如果在线,预测每个时段的互动数:可能使用时间序列模型或按时间段分组回归。
    1. 对每个在线时段,选择互动数最高的三个博主填入表4。

时间分段特征:将24小时划分为8个时段(如0-3点、3-6点等)。
模型选择:对每个在线时段,使用线性回归或随机森林回归预测互动数。若用户在线,对每个时段预测互动数,选择前三名博主及对应时段填入表4。使用用户的历史互动数据作为输入,通过矩阵分解预测用户可能感兴趣的博主。或者,使用神经网络,将用户和博主嵌入到低维空间,然后计算相似度,给出用户与博主的互动关系也是一种思路

总的来说,这道题难点在于数据处理,特征工程处理,需要具备较强的计算机编码能力

3.完整代码+结果分享

代码和论文已经全部完成 可以通过下面获取,或者私信我获取

https://mbd.pub/o/bread/aZ6Zmp9w

在这里插入图片描述

### 解决方案概述 针对2025美国大学生数学建模竞赛(CUMCM)C,假设该目涉及复杂系统优化问题,可以借鉴多LLM路由系统的理念来设计解决方案。具体而言,可以通过构建类似于TO-Router的框架,利用多个大型语言模型(LLMs)的能力来处理不同方面的子问题[^1]。 对于此类问题,通常会涉及到排队论的应用场景。基于给定参数如服务器数量(c),队列容量(k),实体总数(m),收入率(Income Rate),服务率(Service Rate),以及由此衍生的各项性能指标(如平均等待时间等)[^2],建立相应的数学模型是解决问题的关键步骤之一。 ### 数学模型描述 考虑到可能存在的资源分配不均和服务效率低下等问题,在此建议采用混合整数线性规划(MILP)作为主要求解工具。定义决策变量x_ij表示第i类请求被指派到j号处理器的概率;y_jk代表当有k个待处理项时开启额外辅助计算单元的状态(开/关)。目标函数设定为最小化总成本: \[ \min Z=\sum_{i}\sum_{j}c_{ij}x_{ij}+\lambda\sum_kd_ky_k \] 其中\(c_{ij}\)为将任务从源i转移到目的地j所需的费用;\(\lambda\)用于调节两部分权重的比例关系;而\(d_k\)则反映了启动备用设施所带来的固定支出。 约束条件包括但不限于: - 请求分发比例需满足概率性质:\[\sum_j x_{ij}=1,\forall i\] - 队列长度不可超过限定值:\[q_i(t)\le K, \forall t,i\] - 动态调整机制下的最大并发量控制:\[\sum_iz_{ijk}(t)\cdot s_j\le S_{max},\forall j,k,t\] 这里引入二元指示器\(z_{ijk}(t)\in{0,1}\),用来标记某时刻是否存在由位置i发出并指向节点j且携带数据包大小等于或小于阈值K的任务实例;同时设s_j表示单台机器每秒可完成的工作量,S_max为其上限。 ### Python代码实现示例 下面给出一段简单的Python伪代码片段,用于模拟上述过程中的核心逻辑运算环节: ```python import numpy as np from scipy.optimize import linprog def solve_milp_problem(cost_matrix, lambda_param, d_vector, max_service_rate): num_requests, num_servers = cost_matrix.shape # 构造系数矩阵A_ub 和 b_ub 来表达所有约束条件 A_ub = [] b_ub = [] # 添加关于请求分布的要求 for _ in range(num_requests): row = [1]*num_servers + [0]*(len(d_vector)) A_ub.append(row) b_ub.append(1) # 增加有关队列限制的信息 ... # 定义目标向量c c = list(cost_matrix.flatten()) + list(lambda_param * d_vector) res = linprog(c=c,A_ub=A_ub,b_ub=b_ub,integrality=[0]*len(c)) return res.x[:num_requests*num_servers].reshape((num_requests,num_servers)),res.x[num_requests*num_servers:] if __name__ == "__main__": # 初始化输入参数... optimal_solution = solve_milp_problem(...) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

maligebilaowang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值