(C题|社交媒体平台用户分析问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合
我是Tina表姐,毕业于中国人民大学,对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在,我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合,专为本次赛题设计,旨在帮助您深入理解数学建模的每一个环节。
本次五一数学建模竞赛C题可以做如下考虑 (部分公式和代码因为排版问题显示不完整,文中代码仅有部分,完整论文格式标准,包含全部代码)
(部分代码在本帖子里格式混乱,下载后格式正常)
本题的第一个问题是:
问题1. 基于用户与博主历史交互数据(观看、点赞、评论、关注)的统计分析,能够有效揭示用户行为特征,为内容优化和交互提升提供决策依据。根据附件1提供的数据,请建立数学模型,预测各博主在2024.7.21当天新增的关注数,并根据预测结果,在表1中填写当日新增关注数最多的5位博主ID及其对应的新增关注数。
问题1的数学建模思路
为了预测各博主在2024.7.21当天新增的关注数,我们需要基于附件1中的历史交互数据(观看、点赞、评论、关注)进行分析和建模。以下是建模的详细步骤:
1. 数据预处理
- 数据清洗:检查附件1中的数据是否存在缺失值或异常值,并进行处理。
- 时间处理:将时间列转换为适合分析的格式(如日期、小时等)。
- 行为分类:根据用户行为列(1: 观看, 2: 点赞, 3: 评论, 4: 关注)对数据进行分类。
2. 特征提取
从历史数据中提取以下特征:
- 博主特征:
- 历史总关注数(截止到2024.7.20)。
- 历史平均每日关注数。
- 历史点赞数、评论数、观看数的统计量(如均值、方差等)。
- 博主的内容质量指标(如点赞率、评论率等)。
- 用户特征:
- 用户的历史行为频率(如每日平均观看、点赞、评论次数)。
- 用户对博主的偏好(如用户是否经常与某博主互动)。
- 时间特征:
- 用户行为的时间分布(如用户在哪些时间段更活跃)。
- 博主的关注增长趋势(如关注数是否随时间递增)。
3. 建立预测模型
可以采用以下模型进行预测:
- 时间序列模型(如ARIMA、Prophet):
- 基于博主历史关注数的时间序列数据,预测2024.7.21的关注数。
- 回归模型(如线性回归、随机森林回归):
- 以博主特征、用户特征、时间特征为输入变量,以新增关注数为目标变量,建立回归模型。
- 分类模型(如逻辑回归、XGBoost):
- 将问题转化为分类问题,预测某博主是否会在2024.7.21获得新关注。
4. 模型训练与验证
- 数据集划分:将附件1的数据划分为训练集和测试集(如按时间划分,2024.7.11-2024.7.19为训练集,2024.7.20为测试集)。
- 模型训练:在训练集上训练模型。
- 模型验证:在测试集上验证模型的预测效果,使用评价指标(如均方误差、准确率等)评估模型性能。
5. 预测与结果生成
- 预测2024.7.21的新增关注数:使用训练好的模型对2024.7.21的新增关注数进行预测。
- 生成表1:根据预测结果,找出新增关注数最多的5位博主ID及其对应的新增关注数。
6. 模型优化
- 特征工程:尝试提取更多有用的特征(如用户与博主的互动频率、博主的粉丝增长率等)。
- 模型调参:通过交叉验证等方法优化模型参数。
- 集成学习:结合多个模型的预测结果,提高预测精度。
数学公式示例
以回归模型为例,假设使用线性回归模型:
y = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n + ϵ y = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + \dots + \beta_n x_n + \epsilon y=β0+β1x1+β2x2+⋯+βnxn+ϵ
其中:
- y y y:博主在2024.7.21的新增关注数(目标变量)。
- x 1 , x 2 , … , x n x_1, x_2, \dots, x_n x1,x2,…,xn:博主特征、用户特征、时间特征(输入变量)。
- β 0 , β 1 , … , β n \beta_0, \beta_1, \dots, \beta_n β0,β1,…,βn:模型参数。
- ϵ \epsilon ϵ:误差项。
最终结果
将预测结果填入表1:
排名 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
博主ID | B1 | B2 | B3 | B4 | B5 |
新增关注数 | 120 | 115 | 110 | 105 | 100 |
(注:以上结果为示例,实际结果需根据模型预测生成。)
通过上述建模过程,可以有效预测博主的新增关注数,并为平台的推荐系统提供决策依据。
问题1的数学模型与公式
为了预测各博主在2024.7.21当天新增的关注数,我们可以基于历史数据(附件1)建立以下数学模型:
1. 关注行为的时间序列模型
假设每个博主的新增关注数与其历史关注行为存在时间相关性,我们可以使用时间序列模型(如ARIMA模型)来预测未来的关注数。
设 y t y_t yt 为博主在时间 t t t 的新增关注数,则ARIMA模型可以表示为:
y t = c + ϕ 1 y t − 1 + ϕ 2 y t − 2 + ⋯ + ϕ p y t − p + θ 1 ϵ t − 1 + θ 2 ϵ t − 2 + ⋯ + θ q ϵ t − q + ϵ t y_t = c + \phi_1 y_{t-1} + \phi_2 y_{t-2} + \dots + \phi_p y_{t-p} + \theta_1 \epsilon_{t-1} + \theta_2 \epsilon_{t-2} + \dots + \theta_q \epsilon_{t-q} + \epsilon_t yt=c+ϕ1yt−1+ϕ2yt−2+⋯+ϕpyt−p+θ1ϵt−1+θ2ϵt−2+⋯+θqϵt−q+ϵt
其中:
- c c c 是常数项,
- ϕ 1 , ϕ 2 , … , ϕ p \phi_1, \phi_2, \dots, \phi_p ϕ1,ϕ2,…,ϕp 是自回归系数,
- θ 1 , θ 2 , … , θ q \theta_1, \theta_2, \dots, \theta_q θ1,θ2,…,θq 是移动平均系数,
- ϵ t \epsilon_t ϵt 是白噪声误差项。
2. 特征工程与回归模型
除了时间序列模型,我们还可以基于用户与博主的历史交互数据构建特征,并使用回归模型(如线性回归或随机森林回归)来预测新增关注数。
设 X X X 为特征矩阵,包含以下特征:
- 历史观看次数 w w w,
- 历史点赞次数 l l l,
- 历史评论次数 c c c,
- 历史关注次数 f f f,
- 时间特征(如星期几、小时等)。
则回归模型可以表示为:
y = β 0 + β 1 w + β 2 l + β 3 c + β 4 f + β 5 t + ϵ y = \beta_0 + \beta_1 w + \beta_2 l + \beta_3 c + \beta_4 f + \beta_5 t + \epsilon y=β0+β1w+β2l+β3c+β4f+β5t+ϵ
其中:
- y y y 是新增关注数,
- β 0 , β 1 , … , β 5 \beta_0, \beta_1, \dots, \beta_5 β0,β1,…,β5 是回归系数,
- ϵ \epsilon ϵ 是误差项。
3. 模型训练与预测
通过历史数据训练上述模型,并使用训练好的模型预测2024.7.21当天各博主的新增关注数。最终,根据预测结果,选择新增关注数最多的5位博主ID及其对应的新增关注数,填入表1。
4. 结果展示
预测结果将以表格形式展示如下:
排名 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
博主ID | B1 | B2 | B3 | B4 | B5 |
新增关注数 | N1 | N2 | N3 | N4 | N5 |
其中, B 1 , B 2 , … , B 5 B1, B2, \dots, B5 B1,B2,…,B5 是博主ID, N 1 , N 2 , … , N 5 N1, N2, \dots, N5 N1,N2,…,N5 是对应的新增关注数。
通过上述模型与公式,我们可以有效地预测博主在2024.7.21当天的新增关注数,并为平台的内容优化和交互提升提供决策依据。
要解决这个问题,我们可以使用Python进行数据处理和建模。以下是解决问题的步骤和相应的Python代码:
步骤1:数据预处理
首先,我们需要加载附件1的数据,并进行必要的预处理,包括数据清洗、时间处理等。
步骤2:特征工程
基于历史交互数据,我们可以提取一些特征,如用户与博主的互动频率、互动类型等。
步骤3:模型选择与训练
我们可以选择使用回归模型(如线性回归、随机森林回归等)来预测博主在2024.7.21当天新增的关注数。
步骤4:预测与结果输出
使用训练好的模型进行预测,并输出新增关注数最多的5位博主ID及其对应的新增关注数。
Python代码实现
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error# 步骤1:数据预处理
# 假设附件1的数据已经加载到一个DataFrame中
data = pd.read_csv('attachment1.csv')# 将时间列转换为datetime格式
data['时间'] = pd.to_datetime(data['时间'])# 提取日期列
data['日期'] = data['时间'].dt.date# 步骤2:特征工程
# 计算每个博主在历史数据中的互动次数
interaction_counts = data.groupby(['博主ID', '用户行为']).size().unstack(fill_value=0)
interaction_counts.columns = ['观看次数', '点赞次数', '评论次数', '关注次数']# 计算每个博主的总互动次数
interaction_counts['总互动次数'] = interaction_counts.sum(axis=1)# 计算每个博主的历史关注次数
historical_follows = data[data['用户行为'] == 4].groupby('博主ID').size().reset_index(name='历史关注次数')# 合并特征
features = interaction_counts.merge(historical_follows, on='博主ID', how='left').fillna(0)# 步骤3:模型选择与训练
# 假设我们要预测2024.7.21的新增关注数
# 我们可以使用2024.7.11-2024.7.20的数据作为训练集
train_data = data[data['日期'] < pd.to_datetime('2024-07-21').date()]# 计算训练集中每个博主的新增关注数
train_follows = train_data[train_data['用户行为'] == 4].groupby('博主ID').size().reset_index(name='新增关注数')# 合并训练集特征
train_features = features.merge(train_follows, on='博主ID', how='left').fillna(0)# 划分训练集和测试集
X = train_features.drop(columns=['新增关注数', '博主ID'])
y = train_features['新增关注数']X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 使用随机森林回归模型
model = RandomForestRegressor(n_estimators=100, random_state=42)
model.fit(X_train, y_train)# 步骤4:预测与结果输出
# 预测2024.7.21的新增关注数
predictions = model.predict(features.drop(columns=['博主ID']))# 将预测结果添加到特征DataFrame中
features['预测新增关注数'] = predictions# 按照预测新增关注数排序,取前5名
top_5_bloggers = features.sort_values(by='预测新增关注数', ascending=False).head(5)# 输出结果
print("表1 问题1结果")
print("| 排名 | 博主ID | 新增关注数 |")
print("|------|--------|------------|")
for i, row in top_5_bloggers.iterrows():print(f"| {i+1} | {row['博主ID']} | {int(row['预测新增关注数'])} |")
代码解释
- 数据预处理:我们首先将时间列转换为
datetime
格式,并提取日期列。 - 特征工程:我们计算了每个博主在历史数据中的互动次数,并合并了历史关注次数。
- 模型训练:我们使用随机森林回归模型来预测博主的新增关注数。
- 预测与结果输出:我们使用训练好的模型进行预测,并输出新增关注数最多的5位博主ID及其对应的新增关注数。
注意事项
- 代码中的
attachment1.csv
需要替换为实际的数据文件路径。 - 模型的选择和参数可以根据实际情况进行调整。
- 如果数据量较大,可以考虑使用更高效的算法或分布式计算。
通过
第二个问题是:
问题2. 附件2提供了2024.7.22当天用户进行观看、点赞、评论的行为数据,结合附件1中用户的历史行为数据,请建立数学模型,预测用户在2024.7.22产生的新关注行为,并将指定用户在2024.7.22新关注的博主ID填入表2。
表2 问题2结果
用户ID | U7 | U6749 | U5769 | U14990 | U52010 |
---|---|---|---|---|---|
新关注博主ID |
注:若用户在2024.7.22关注多名博主,均填入表2;若用户在2024.7.22未新关注博主,无需填写。
问题2:预测用户在2024.7.22产生的新关注行为
1. 问题分析
我们需要基于用户在2024.7.22的观看、点赞、评论行为数据(附件2),结合用户的历史行为数据(附件1),预测用户在2024.7.22是否会产生新的关注行为,并确定新关注的博主ID。
2. 数据预处理
- 附件1:包含用户与博主的历史交互数据(观看、点赞、评论、关注)。
- 附件2:包含用户在2024.7.22的观看、点赞、评论行为数据。
首先,我们需要将附件1和附件2的数据进行整合,提取出用户的历史行为特征和2024.7.22当天的行为特征。
3. 特征提取
对于每个用户,我们可以提取以下特征:
-
历史行为特征:
- 每个用户的总观看次数、总点赞次数、总评论次数、总关注次数。
- 每个用户对每个博主的历史观看次数、点赞次数、评论次数、关注次数。
- 用户的历史活跃时间段(例如,用户在哪些时间段内更活跃)。
-
2024.7.22当天的行为特征:
- 用户在2024.7.22的观看次数、点赞次数、评论次数。
- 用户在2024.7.22的活跃时间段。
4. 模型选择
我们可以采用分类模型来预测用户是否会在2024.7.22产生新的关注行为。常用的分类模型包括:
- 逻辑回归(Logistic Regression)
- 随机森林(Random Forest)
- 支持向量机(SVM)
- 梯度提升树(Gradient Boosting)
由于用户行为数据可能存在一定的非线性关系,随机森林或梯度提升树可能更适合。
5. 模型训练与预测
- 训练集:使用附件1的数据作为训练集,提取用户的历史行为特征,并标注是否有关注行为。
- 测试集:使用附件2的数据作为测试集,提取用户在2024.7.22的行为特征,预测是否会产生新的关注行为。
6. 模型评估
使用交叉验证或留出法评估模型的性能,常用的评估指标包括准确率、召回率、F1分数等。
7. 结果输出
对于指定的用户(U7, U6749, U5769, U14990, U52010),根据模型的预测结果,输出他们在2024.7.22新关注的博主ID。如果用户没有新关注任何博主,则无需填写。
8. 模型优化
可以通过调整模型参数、增加特征(如用户与博主的相似度、博主的活跃度等)来进一步优化模型性能。
9. 结果示例
假设模型预测结果如下:
用户ID | U7 | U6749 | U5769 | U14990 | U52010 |
---|---|---|---|---|---|
新关注博主ID | B123 | B456 | B789 | B101 |
10. 总结
通过提取用户的历史行为和当天的行为特征,使用分类模型可以有效地预测用户是否会在2024.7.22产生新的关注行为。模型的性能可以通过进一步的特征工程和参数调优来提升。
以上是对问题2的数学建模方法,通过特征提取、模型选择、训练与预测,最终得到用户在2024.7.22新关注的博主ID。
问题2的数学模型
为了预测用户在2024.7.22产生的新关注行为,我们可以基于用户的历史行为数据(附件1)和2024.7.22当天的行为数据(附件2),构建一个概率模型。具体步骤如下:
1. 数据预处理
首先,我们需要对附件1和附件2的数据进行预处理,提取出用户的历史互动行为和2024.7.22当天的互动行为。设:
- U U U 为用户集合, B B B 为博主集合。
- u ∈ U u \in U u∈U 表示一个用户, b ∈ B b \in B b∈B 表示一个博主。
- H u H_u Hu 为用户 u u u 的历史行为数据,包括观看、点赞、评论和关注行为。
- A u A_u Au 为用户 u u u 在2024.7.22当天的行为数据,包括观看、点赞和评论行为。
2. 特征提取
基于历史行为数据 H u H_u Hu 和当天行为数据 A u A_u Au,我们可以提取以下特征:
- f u , b f_{u,b} fu,b:用户 u u u 对博主 b b b 的历史互动频率,定义为用户 u u u 对博主 b b b 的互动次数除以用户 u u u 的总互动次数。
- g u , b g_{u,b} gu,b:用户 u u u 对博主 b b b 的当天互动频率,定义为用户 u u u 对博主 b b b 的当天互动次数除以用户 u u u 的当天总互动次数。
- h u , b h_{u,b} hu,b:用户 u u u 对博主 b b b 的历史关注概率,定义为用户 u u u 是否关注博主 b b b(1表示关注,0表示未关注)。
3. 概率模型
我们可以使用逻辑回归模型来预测用户 u u u 在2024.7.22当天是否会关注博主 b b b。设 P ( u , b ) P(u,b) P(u,b) 为用户 u u u 关注博主 b b b 的概率,则:
P ( u , b ) = σ ( θ 0 + θ 1 f u , b + θ 2 g u , b + θ 3 h u , b ) P(u,b) = \sigma(\theta_0 + \theta_1 f_{u,b} + \theta_2 g_{u,b} + \theta_3 h_{u,b}) P(u,b)=σ(θ0+θ1fu,b+θ2gu,b+θ3hu,b)
其中, σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+e−x1 是逻辑函数, θ 0 , θ 1 , θ 2 , θ 3 \theta_0, \theta_1, \theta_2, \theta_3 θ0,θ1,θ2,θ3 是模型参数。
4. 参数估计
使用最大似然估计法来估计模型参数 θ 0 , θ 1 , θ 2 , θ 3 \theta_0, \theta_1, \theta_2, \theta_3 θ0,θ1,θ2,θ3。设 D D D 为训练数据集,包含用户的历史关注行为,则似然函数为:
L ( θ ) = ∏ ( u , b ) ∈ D P ( u , b ) y u , b ( 1 − P ( u , b ) ) 1 − y u , b L(\theta) = \prod_{(u,b) \in D} P(u,b)^{y_{u,b}} (1 - P(u,b))^{1 - y_{u,b}} L(θ)=(u,b)∈D∏P(u,b)yu,b(1−P(u,b))1−yu,b
其中, y u , b y_{u,b} yu,b 表示用户 u u u 是否关注博主 b b b(1表示关注,0表示未关注)。通过最大化似然函数,可以得到参数 θ \theta θ 的估计值。
5. 预测新关注行为
对于每个用户 u u u,计算其对所有博主 b b b 的关注概率 P ( u , b ) P(u,b) P(u,b),并选择概率最大的博主作为预测结果。若 P ( u , b ) P(u,b) P(u,b) 大于某个阈值(如0.5),则认为用户 u u u 会关注博主 b b b。
6. 结果填入表2
根据上述预测结果,将用户在2024.7.22新关注的博主ID填入表2。
总结
通过上述步骤,我们可以构建一个基于用户历史行为和当天行为的概率模型,预测用户在2024.7.22当天的新关注行为,并将结果填入表2。
要解决第二个问题,我们需要结合附件1中的历史行为数据和附件2中2024.7.22的用户行为数据,预测用户在2024.7.22当天可能产生的新关注行为。以下是使用Python进行数据分析和预测的代码示例。
1. 导入必要的库
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
2. 加载数据
假设附件1和附件2的数据已经分别存储为CSV文件attachment1.csv
和attachment2.csv
。
# 加载附件1数据
df1 = pd.read_csv('attachment1.csv')# 加载附件2数据
df2 = pd.read_csv('attachment2.csv')
3. 数据预处理
我们需要将历史行为数据和当天的行为数据进行合并,并提取特征。
# 合并数据
df = pd.concat([df1, df2], ignore_index=True)# 特征工程
df['time'] = pd.to_datetime(df['time'])
df['hour'] = df['time'].dt.hour
df['day'] = df['time'].dt.day# 将用户行为转换为特征
df = pd.get_dummies(df, columns=['user_behavior'], prefix='behavior')# 提取特征和目标变量
X = df.drop(columns=['userID', 'bloggerID', 'time', 'day'])
y = df['bloggerID']
4. 训练模型
我们可以使用随机森林分类器来预测用户是否会关注某个博主。
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 训练随机森林模型
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)# 预测
y_pred = model.predict(X_test)# 评估模型
accuracy = accuracy_score(y_test, y_pred)
print(f'模型准确率: {accuracy:.2f}')
5. 预测新关注行为
使用训练好的模型预测指定用户在2024.7.22的新关注行为。
# 提取指定用户在2024.7.22的行为数据
specified_users = ['U7', 'U6749', 'U5769', 'U14990', 'U52010']
df_specified = df2[df2['userID'].isin(specified_users)]# 预测新关注行为
df_specified['predicted_bloggerID'] = model.predict(df_specified.drop(columns=['userID', 'bloggerID', 'time']))# 提取预测结果
new_follows = df_specified[df_specified['predicted_bloggerID'] != 0][['userID', 'predicted_bloggerID']]# 将结果填入表2
table2 = pd.DataFrame(columns=['用户ID', '新关注博主ID'])
for user in specified_users:follows = new_follows[new_follows['userID'] == user]['predicted_bloggerID'].tolist()if follows:for blogger in follows:table2 = table2.append({'用户ID': user, '新关注博主ID': blogger}, ignore_index=True)# 输出表2
print(table2)
6. 保存结果
将结果保存为CSV文件以便提交。
table2.to_csv('table2_results.csv', index=False)
代码说明:
- 数据加载:我们首先加载附件1和附件2的数据。
- 数据预处理:将时间数据转换为小时和天,并将用户行为转换为特征。
- 特征工程:提取特征和目标变量。
- 模型训练:使用随机森林分类器进行训练,并评估模型准确率。
- 预测新关注行为:使用训练好的模型预测指定用户在2024.7.22的新关注行为。
- 结果保存:将预测结果保存为CSV文件。
通过以上步骤,我们可以预测用户在2024.7.22的新关注行为,并将结果填入表2。
第三个问题是:
问题3. 用户与博主之间互动数可视为点赞数、评论数、关注数之和,平台可据此制定合理的推荐方案,为用户推送“量身定制”的内容,增加用户与博主之间的互动。请基于附件1数据,建立数学模型,预测指定用户在2024.7.21当天是否在线(即使用该社交媒体平台),如果在线,进一步预测该用户可能与博主产生的互动关系,并给出可能与其产生互动数最高的3名博主,将对应的博主ID填入表3。
表3 问题3结果
用户ID | U9 | U22405 | U16 | U48420 |
---|---|---|---|---|
博主ID 1 | ||||
博主ID 2 | ||||
博主ID 3 |
注:若该用户在2024.7.21未使用该社交媒体平台,则无需填写。
问题3的数学建模方法
1. 问题分析
问题3的目标是预测指定用户在2024.7.21当天是否在线(即是否使用社交媒体平台),如果在线,进一步预测该用户可能与博主产生的互动关系,并给出可能与其产生互动数最高的3名博主。互动数定义为点赞数、评论数、关注数之和。
2. 模型建立
为了完成这一任务,我们可以采用以下步骤进行建模:
2.1 用户在线预测
首先,我们需要预测用户在2024.7.21当天是否在线。这可以通过分析用户的历史行为数据来实现。
- 特征提取:从附件1中提取用户的历史行为数据,包括用户在过去一段时间内的在线频率、在线时段、互动次数等。
- 模型选择:可以使用分类模型(如逻辑回归、随机森林、支持向量机等)来预测用户是否在线。模型的目标是输出一个二元变量,表示用户是否在线。
2.2 用户与博主互动预测
如果预测用户在线,我们需要进一步预测用户可能与哪些博主产生互动,并找出互动数最高的3名博主。
- 特征提取:从附件1中提取用户与博主之间的历史互动数据,包括用户对每个博主的观看、点赞、评论、关注次数等。
- 模型选择:可以使用回归模型(如线性回归、随机森林回归、XGBoost等)来预测用户与每个博主的互动数。模型的目标是输出一个连续变量,表示用户与每个博主的互动数。
2.3 互动数最高的博主选择
根据预测的互动数,选择与用户互动数最高的3名博主。
3. 模型实现
3.1 数据预处理
- 数据清洗:处理缺失值、异常值等。
- 特征工程:提取用户的历史行为特征和用户与博主之间的互动特征。
3.2 模型训练
- 在线预测模型:使用用户的历史行为数据训练分类模型,预测用户是否在线。
- 互动预测模型:使用用户与博主之间的历史互动数据训练回归模型,预测用户与每个博主的互动数。
3.3 模型评估
- 在线预测模型:使用准确率、召回率、F1分数等指标评估模型的性能。
- 互动预测模型:使用均方误差(MSE)、平均绝对误差(MAE)等指标评估模型的性能。
4. 结果输出
根据模型的预测结果,输出指定用户在2024.7.21当天是否在线,以及如果在线,输出与该用户互动数最高的3名博主ID。
5. 模型优化
- 特征选择:通过特征重要性分析,选择对模型预测最有影响的特征。
- 模型调参:使用网格搜索、随机搜索等方法对模型进行调参,提高模型的预测性能。
6. 结果展示
根据模型的预测结果,填写表3:
用户ID | U9 | U22405 | U16 | U48420 |
---|---|---|---|---|
博主ID 1 | ||||
博主ID 2 | ||||
博主ID 3 |
7. 总结
通过以上建模方法,我们可以有效地预测用户在2024.7.21当天是否在线,并预测用户与博主之间的互动关系,从而为平台的内容推荐提供决策依据。
问题3的数学模型
1. 用户在线预测
假设用户在2024.7.21当天是否在线可以通过其历史行为数据进行预测。设用户 u u u 在2024.7.21当天是否在线为 y u y_u yu,其中 y u = 1 y_u = 1 yu=1 表示在线, y u = 0 y_u = 0 yu=0 表示不在线。我们可以使用逻辑回归模型来预测 y u y_u yu。
设 X u X_u Xu 为用户 u u u 的特征向量,包括其在2024.7.11-2024.7.20期间的行为数据(如观看、点赞、评论、关注等行为的频率和时间分布)。逻辑回归模型可以表示为:
P ( y u = 1 ∣ X u ) = 1 1 + e − ( β 0 + β T X u ) P(y_u = 1 | X_u) = \frac{1}{1 + e^{-(\beta_0 + \beta^T X_u)}} P(yu=1∣Xu)=1+e−(β0+βTXu)1
其中, β 0 \beta_0 β0 是截距项, β \beta β 是特征权重向量。
2. 用户与博主的互动预测
如果用户 u u u 在2024.7.21当天在线,我们需要预测其与博主 v v v 的互动数 I u , v I_{u,v} Iu,v。互动数 I u , v I_{u,v} Iu,v 可以表示为点赞数、评论数和关注数之和。
设 I u , v I_{u,v} Iu,v 为用户 u u u 与博主 v v v 的互动数,我们可以使用线性回归模型来预测 I u , v I_{u,v} Iu,v:
I u , v = α 0 + α T Z u , v + ϵ I_{u,v} = \alpha_0 + \alpha^T Z_{u,v} + \epsilon Iu,v=α0+αTZu,v+ϵ
其中, Z u , v Z_{u,v} Zu,v 为用户 u u u 与博主 v v v 的互动特征向量,包括用户 u u u 对博主 v v v 的历史互动数据(如观看、点赞、评论、关注等行为的频率和时间分布), α 0 \alpha_0 α0 是截距项, α \alpha α 是特征权重向量, ϵ \epsilon ϵ 是误差项。
3. 推荐博主
对于每个在线用户 u u u,我们计算其与所有博主 v v v 的预测互动数 I u , v I_{u,v} Iu,v,并选择互动数最高的3名博主作为推荐结果。
4. 结果表示
将预测结果填入表3:
用户ID | U9 | U22405 | U16 | U48420 |
---|---|---|---|---|
博主ID 1 | ||||
博主ID 2 | ||||
博主ID 3 |
注:若该用户在2024.7.21未使用该社交媒体平台,则无需填写。
总结
通过上述模型,我们可以预测用户在2024.7.21当天是否在线,并进一步预测其与博主的互动关系,从而为用户推荐可能与其互动数最高的3名博主。
要解决第三个问题,我们需要基于附件1的数据,预测指定用户在2024.7.21当天是否在线,并进一步预测该用户可能与博主产生的互动关系,特别是可能与其产生互动数最高的3名博主。我们可以通过以下步骤来实现:
步骤1:数据预处理
首先,我们需要加载附件1的数据,并进行预处理,以便后续分析。
import pandas as pd# 假设附件1的文件名为 'attachment1.csv'
data = pd.read_csv('attachment1.csv')# 将时间列转换为datetime格式
data['时间'] = pd.to_datetime(data['时间'])# 提取2024.7.21当天的数据
data_20240721 = data[data['时间'].dt.date == pd.to_datetime('2024-07-21').date()]
步骤2:预测用户是否在线
我们可以通过检查用户在2024.7.21当天是否有任何行为数据来判断其是否在线。
# 指定用户列表
specified_users = ['U9', 'U22405', 'U16', 'U48420']# 创建一个字典来存储用户是否在线
user_online_status = {user: False for user in specified_users}# 检查用户是否在2024.7.21当天有行为数据
for user in specified_users:if user in data_20240721['用户ID'].values:user_online_status[user] = True
步骤3:预测用户与博主的互动关系
对于在线的用户,我们可以计算他们与各个博主的互动数(点赞、评论、关注的总和),并找出互动数最高的3名博主。
# 创建一个字典来存储用户与博主的互动数
user_interaction_counts = {user: {} for user in specified_users}# 计算每个用户与各个博主的互动数
for user in specified_users:if user_online_status[user]:user_data = data_20240721[data_20240721['用户ID'] == user]for _, row in user_data.iterrows():blogger_id = row['博主ID']behavior = row['用户行为']if blogger_id not in user_interaction_counts[user]:user_interaction_counts[user][blogger_id] = 0if behavior in [2, 3, 4]: # 2: 点赞, 3: 评论, 4: 关注user_interaction_counts[user][blogger_id] += 1# 找出每个用户互动数最高的3名博主
top_bloggers = {user: [] for user in specified_users}for user in specified_users:if user_online_status[user]:sorted_bloggers = sorted(user_interaction_counts[user].items(), key=lambda x: x[1], reverse=True)top_bloggers[user] = [blogger[0] for blogger in sorted_bloggers[:3]]
步骤4:输出结果
最后,我们将结果输出到表3中。
# 创建表3
table3 = pd.DataFrame(columns=['用户ID', '博主ID 1', '博主ID 2', '博主ID 3'])for user in specified_users:if user_online_status[user]:row = {'用户ID': user}for i, blogger in enumerate(top_bloggers[user], start=1):row[f'博主ID {i}'] = bloggertable3 = table3.append(row, ignore_index=True)# 输出表3
print(table3)
完整代码
import pandas as pd# 假设附件1的文件名为 'attachment1.csv'
data = pd.read_csv('attachment1.csv')# 将时间列转换为datetime格式
data['时间'] = pd.to_datetime(data['时间'])# 提取2024.7.21当天的数据
data_20240721 = data[data['时间'].dt.date == pd.to_datetime('2024-07-21').date()]# 指定用户列表
specified_users = ['U9', 'U22405', 'U16', 'U48420']# 创建一个字典来存储用户是否在线
user_online_status = {user: False for user in specified_users}# 检查用户是否在2024.7.21当天有行为数据
for user in specified_users:if user in data_20240721['用户ID'].values:user_online_status[user] = True# 创建一个字典来存储用户与博主的互动数
user_interaction_counts = {user: {} for user in specified_users}# 计算每个用户与各个博主的互动数
第四个问题是:
问题4. 平台在制定推荐方案时,会充分考虑不同用户使用社交媒体的时间习惯。在问题3的基础上,基于附件1数据,建立数学模型,预测表4中指定用户在2024.7.23是否在线(即使用社交媒体平台),进一步预测该用户在每个在线时段与每个博主的互动数,给出该互动数最高的3名博主ID以及对应的时段,并将结果填入表4。
表4 问题4结果
用户ID | U10 | U1951 | U1833 | U26447 |
---|---|---|---|---|
博主ID 1 | ||||
时段1 | ||||
博主ID 2 | ||||
时段2 | ||||
博主ID 3 | ||||
时段3 |
注:若该用户在2024.7.23未使用该社交媒体平台,则无需填写;推荐时段,只能在以下24个时段中选取0:00-1:00, 1:00-2:00, ……, 23:00-24:00。
问题4的数学建模
1. 问题分析
问题4要求我们基于附件1的历史数据,预测指定用户在2024年7月23日是否在线,并进一步预测该用户在每个在线时段与每个博主的互动数,最终给出互动数最高的3名博主ID及其对应的时段。我们需要考虑用户的时间习惯、历史互动行为以及博主的内容吸引力等因素。
2. 模型假设
- 用户在线时间习惯:用户的使用时间具有一定的规律性,历史数据可以反映用户的在线时间偏好。
- 互动行为与时间的关系:用户的互动行为(点赞、评论、关注)与时间段相关,某些时间段可能更容易产生互动。
- 博主吸引力:博主的历史互动数据可以反映其内容的吸引力,吸引力高的博主更容易与用户产生互动。
3. 模型建立
3.1 用户在线预测
我们可以使用时间序列分析或分类模型来预测用户是否在线。假设用户的历史在线时间具有周期性,可以通过以下步骤进行预测:
- 数据预处理:将附件1中的时间数据按小时分段,统计每个用户在每个时段的在线频率。
- 特征提取:提取用户在每个时段的在线频率作为特征。
- 模型选择:可以使用逻辑回归、随机森林或LSTM等模型来预测用户是否在线。
3.2 用户与博主的互动预测
对于在线用户,我们需要预测其与博主的互动数。可以基于用户的历史互动行为、博主的吸引力以及时间段来建立模型。
- 用户历史互动特征:统计用户与每个博主的历史互动数(点赞、评论、关注)。
- 博主吸引力特征:统计每个博主的总互动数、平均互动数等。
- 时间段特征:将时间分为24个时段,统计用户在每个时段的互动频率。
- 模型选择:可以使用线性回归、决策树回归或XGBoost等模型来预测互动数。
3.3 推荐博主及时段
对于每个在线用户,我们预测其在每个时段与每个博主的互动数,然后选择互动数最高的3个博主及其对应的时段。
4. 模型求解
-
在线预测:
- 使用历史数据训练分类模型,预测用户在2024年7月23日是否在线。
-
互动预测:
- 对于在线用户,使用历史互动数据训练回归模型,预测其在每个时段与每个博主的互动数。
-
推荐博主及时段:
- 对于每个在线用户,选择互动数最高的3个博主及其对应的时段。
5. 结果输出
将预测结果填入表4:
用户ID | U10 | U1951 | U1833 | U26447 |
---|---|---|---|---|
博主ID 1 | ||||
时段1 | ||||
博主ID 2 | ||||
时段2 | ||||
博主ID 3 | ||||
时段3 |
6. 模型评估
- 在线预测模型:通过准确率、召回率等指标评估模型的性能。
- 互动预测模型:通过均方误差(MSE)、平均绝对误差(MAE)等指标评估模型的性能。
7. 模型优化
- 特征工程:可以进一步挖掘用户和博主的特征,如用户活跃度、博主的内容类型等。
- 模型调参:通过交叉验证、网格搜索等方法优化模型参数。
- 集成学习:可以尝试使用多个模型的集成方法来提高预测精度。
8. 结论
通过以上建模过程,我们可以预测用户在2024年7月23日的在线状态及其与博主的互动数,从而为平台制定推荐方案提供决策依据。
问题4的数学模型构建
为了预测用户在2024.7.23的在线状态及其与博主的互动情况,我们可以基于用户的历史行为数据进行建模。以下是详细的数学模型构建过程。
1. 用户在线状态预测
假设用户在某一天的在线状态与其历史活跃时间有关。我们可以基于用户的历史活跃时间分布,使用概率模型预测用户在2024.7.23是否在线。
设:
-
T u T_u Tu 为用户 u u u 在历史数据中的活跃时间集合。
-
P u ( t ) P_u(t) Pu(t) 为用户 u u u 在时段 t t t 的活跃概率,计算公式为:
P u ( t ) = 用户 u 在时段 t 活跃的次数 用户 u 总活跃次数 P_u(t) = \frac{\text{用户 } u \text{ 在时段 } t \text{ 活跃的次数}}{\text{用户 } u \text{ 总活跃次数}} Pu(t)=用户 u 总活跃次数用户 u 在时段 t 活跃的次数 -
若 P u ( t ) > θ P_u(t) > \theta Pu(t)>θ( θ \theta θ 为预设阈值),则认为用户 u u u 在时段 t t t 在线。
2. 用户与博主的互动数预测
假设用户与博主的互动数与其历史互动行为以及博主的受欢迎程度有关。我们可以使用加权模型预测用户在某一时段与博主的互动数。
设:
-
I u , b I_{u,b} Iu,b 为用户 u u u 与博主 b b b 的历史互动数(包括点赞、评论、关注)。
-
W b W_b Wb 为博主 b b b 的受欢迎程度,计算公式为:
W b = 博主 b 的总互动数 所有博主的总互动数 W_b = \frac{\text{博主 } b \text{ 的总互动数}}{\text{所有博主的总互动数}} Wb=所有博主的总互动数博主 b 的总互动数 -
用户 u u u 在时段 t t t 与博主 b b b 的预测互动数为:
N u , b ( t ) = P u ( t ) ⋅ I u , b ⋅ W b N_{u,b}(t) = P_u(t) \cdot I_{u,b} \cdot W_b Nu,b(t)=Pu(t)⋅Iu,b⋅Wb
3. 推荐时段与博主ID
对于每个用户 u u u,我们计算其在2024.7.23每个时段 t t t 与每个博主 b b b 的预测互动数 N u , b ( t ) N_{u,b}(t) Nu,b(t)。然后,选择互动数最高的3个博主及其对应的时段。
设:
- B u B_u Bu 为用户 u u u 在2024.7.23互动数最高的3个博主集合。
- T u , b T_{u,b} Tu,b 为博主 b b b 对应的互动数最高的时段。
4. 结果输出
根据上述模型,我们可以将预测结果填入表4。若用户未在线,则无需填写。
示例
假设用户 u u u 在2024.7.23的在线时段为 t 1 , t 2 , t 3 t_1, t_2, t_3 t1,t2,t3,其与博主 b 1 , b 2 , b 3 b_1, b_2, b_3 b1,b2,b3 的互动数分别为 N u , b 1 ( t 1 ) , N u , b 2 ( t 2 ) , N u , b 3 ( t 3 ) N_{u,b_1}(t_1), N_{u,b_2}(t_2), N_{u,b_3}(t_3) Nu,b1(t1),Nu,b2(t2),Nu,b3(t3),且这些值为最高的3个互动数。则表4中对应的填写内容为:
用户ID | U10 | U1951 | U1833 | U26447 |
---|---|---|---|---|
博主ID 1 | b 1 b_1 b1 | |||
时段1 | t 1 t_1 t1 | |||
博主ID 2 | b 2 b_2 b2 | |||
时段2 | t 2 t_2 t2 | |||
博主ID 3 | b 3 b_3 b3 | |||
时段3 | t 3 t_3 t3 |
省略
1. 数据预处理
首先,我们需要加载附件1的数据,并进行必要的预处理,例如将时间列转换为datetime格式,并提取用户的活动时间。
import pandas as pd# 加载附件1的数据
data = pd.read_csv('附件1.csv')# 将时间列转换为datetime格式
data['时间'] = pd.to_datetime(data['时间'])# 提取日期和小时信息
data['日期'] = data['时间'].dt.date
data['小时'] = data['时间'].dt.hour# 筛选出2024.7.23的数据
data_2024_07_23 = data[data['日期'] == pd.to_datetime('2024-07-23').date()]
2. 预测用户是否在线
我们可以通过分析用户的历史活动时间来预测他们在2024.7.23是否在线。例如,如果用户在过去的几天中在某个时间段内有活动,那么我们可以预测他们在2024.7.23的相同时间段内也会在线。
# 获取用户的历史活动时间
user_activity = data.groupby(['用户ID', '小时']).size().unstack(fill_value=0)# 预测用户在2024.7.23是否在线
def predict_online(user_id):if user_id in user_activity.index:return user_activity.loc[user_id].sum() > 0return False# 指定用户列表
specified_users = ['U10', 'U1951', 'U1833', 'U26447']# 预测指定用户是否在线
online_users = {user: predict_online(user) for user in specified_users}
3. 预测用户与博主的互动数
对于在线的用户,我们可以进一步预测他们在每个在线时段与每个博主的互动数。互动数可以基于用户的历史互动行为来计算。
# 计算用户与博主的互动数
user_blogger_interaction = data_2024_07_23.groupby(['用户ID', '博主ID', '小时']).size().unstack(fill_value=0)# 预测用户与博主的互动数
def predict_interaction(user_id, blogger_id, hour):if (user_id, blogger_id) in user_blogger_interaction.index:return user_blogger_interaction.loc[(user_id, blogger_id), hour]return 0# 预测指定用户在2024.7.23的互动数
def get_top_bloggers(user_id):if not online_users[user_id]:return []interaction_counts = {}for blogger_id in data_2024_07_23['博主ID'].unique():for hour in range(24):interaction_counts[(blogger_id, hour)] = predict_interaction(user_id, blogger_id, hour)# 按互动数排序,取前3名top_interactions = sorted(interaction_counts.items(), key=lambda x: x[1], reverse=True)[:3]# 返回博主ID和对应的时段return [(blogger_id, f"{hour}:00-{hour+1}:00") for (blogger_id, hour), _ in top_interactions]# 获取指定用户的预测结果
results = {user: get_top_bloggers(user) for user in specified_users}
4. 生成结果表
最后,我们将预测结果填入表4中。
# 生成表4
省略# 输出表4
print(table4)
5. 保存结果
将结果保存为CSV文件,以便后续使用。
table4.to_csv('表4结果.csv', index=False)
更多内容具体可以看看我的下方名片!
里面包含有本次竞赛一手资料与分析!
另外在赛中,我们也会陪大家一起解析建模比赛
记得关注Tina表姐哦~
相关文章:
(C题|社交媒体平台用户分析问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合
我是Tina表姐,毕业于中国人民大学,对数学建模的热爱让我在这一领域深耕多年。我的建模思路已经帮助了百余位学习者和参赛者在数学建模的道路上取得了显著的进步和成就。现在,我将这份宝贵的经验和知识凝练成一份全面的解题思路与代码论文集合…...
计网_PPP协议
2024.10.15:beokayy计算机网络学习笔记 PPP协议 PPP协议的特点PPP协议应满足的需求(了解)PPP协议的组成(PPP协议有三个组成部分) PPP协议的帧格式PPP协议的工作状态 ISP指的是运营商,比如中国联通、中国电信…...
Mem0.ai研究团队开发的全新记忆架构系统“Mem0”正式发布
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
二叉树删除结点详细代码
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<time.h>typedef int data_t; typedef struct _node {data_t data;struct _node* left;struct _node* right; }node_t;int bst_create(node_t**, data_t);//函数声明BST创建 int bst…...
PyTorch线性代数操作详解:点积、矩阵乘法、范数与轴求和
本文通过代码示例详细讲解PyTorch中常用的线性代数操作,包括点积、矩阵乘法、范数计算以及按轴求和等操作,帮助读者掌握张量运算的核心方法。 1. 点积运算 点积(Dot Product)是两个向量对应元素相乘后求和的结果。 实现代码&…...
Java SE(6)——类和对象
1.初始面向对象 1.1 什么是面向对象 Java是一门纯面向对象的编程语言(Object Oriented Program,简称OOP),在面向对象的世界里,一切皆为对象。面向对象是解决问题的一种思想,主要依靠对象之间的交换来完成一件事情 1.2 面向过程…...
Kubernetes(k8s)的API Server 组件原理与结合生产实战教程
一、API Server 架构深度解析 1. 核心架构设计 二、生产环境安全加固实战 1. 认证(Authentication) 2. 授权(Authorization) 3. 准入控制(Admission Control) 三、性能优化与调参 1. 关键启动参数 四…...
Java面试高频问题(31-33)
三十一、服务网格:东西向流量治理与故障注入 服务网格架构分层 mermaid graph BT subgraph Control Plane APilot --> BEnvoy Sidecar CMixer --> B DCitadel --> B end subgraph Data Plane B --> E服务A B --> F服务B B --> G服务C end 核心能…...
VSCode开发调试Python入门实践(Windows10)
我的Windows10上的python环境是免安装直接解压的Python3.8.x老版本,可参见《Windows下Python3.8环境快速安装部署。 1. 安装VSCode 在Windows 10系统上安装Visual Studio Code(VS Code)是一个简单的过程,以下是详细的安装方法与…...
C++——入门基础(2)
文章目录 一、前言二、C入门2.1 缺省参数2.2 函数重载2.2.1 参数类型不同2.2.1.1 整体参数类型不同2.2.1.2 参数类型顺序不同 2.2.2 参数个数不同2.2.3 避坑注意2.2.3.1无参与有参2.2.3.2 返回值不同 2.3 引用2.3.1 引用的概念2.3.2引用的结构2.3.3 引用的特点2.3.4引用的作用2…...
【MySQL】复合查询与内外连接
目录 一、复合查询 1、基本查询回顾: 2、多表查询: 3、自连接: 4、子查询: 单列子查询 多行子查询: 多列子查询: 在from语句中使用子查询: 5、合并查询: union࿱…...
第3篇:请求参数处理与数据校验
在 Web 开发中,请求参数处理与数据校验是保障系统稳定性的第一道防线。本文将深入探讨 Egg.js 框架中参数处理的完整解决方案,涵盖常规参数获取、高效校验方案、文件流处理等核心功能,并分享企业级项目中的最佳实践。 一、多场景参数获取策略…...
Android JIT编译:adb shell cmd package compile选项
Android JIT编译:adb shell cmd package compile选项 例如: adb shell cmd package compile -m speed -f --full 包名 配置参数指令说明: compile [-r COMPILATION_REASON] [-m COMPILER_FILTER] [-p PRIORITY] [-f] [--primary-dex] …...
排序算法——冒泡排序
一、介绍 「冒泡排序bubblesort」通过连续地比较与交换相邻元素实现排序。这个过程就像气泡从底部升到顶部一样,因此得名冒泡排序。 冒泡过程可以利用元素交换操作来模拟:从数组最左端开始向右遍历,依次比较相邻元素大小,如果“左…...
文献阅读篇#5:5月一区好文阅读,BFA-YOLO,用于建筑信息建模!(上)
期刊简介:《Advanced Engineering Informatics》创刊于2002年,由Elsevier Ltd出版商出版,出版周期Quarterly。该刊已被SCIE数据库收录,在中科院最新升级版分区表中,该刊分区信息为大类学科工程技术1区,2023…...
工行手机银行安全吗?在应用商店下载工商银行安全吗?
现在很多的人都会用手机银行,其中工行的使用几率也是比较高的,但大家在使用的过程中就会比较关心使用工行手机银行是否安全。如果直接在应用商店下载,是否有安全保障? 工行的手机银行会拥有较高的保障,从技术到服务都可…...
python如何word转pdf
在Python中,将Word文档(.docx或.doc)转换为PDF可以通过多种库实现。以下是几种常见的方法及详细步骤: 方法1:使用 python-docx comtypes(仅Windows,需安装Word) 适用于Windows系统…...
在阿里云 Ubuntu 24.04 上部署 RabbitMQ:一篇实战指南
前言 RabbitMQ 是业界常用的开源消息中间件,支持 AMQP 协议,易于部署、高可用、插件丰富。本文以阿里云 ECS 上运行的 Ubuntu 24.04 LTS 为例,手把手带你完成 RabbitMQ 从仓库配置到运行的全流程,并分享在国内环境下常见的坑与对应解决方案。 环境概况 操作系统:Ubuntu …...
Linux Shell 重定向与管道符号(>, >>, |)的实现机制
文章目录 Linux Shell 重定向与管道符号(>, >>, |)的实现机制一、重定向基础:dup2() 的核心作用二、输出重定向的实现原理>(覆盖重定向)>>(追加重定向) 三、| 管道符的实现原…...
GitHub 趋势日报 (2025年04月30日)
本日报由 TrendForge 系统生成 https://trendforge.devlive.org/ 📈 今日整体趋势 Top 10 排名项目名称项目描述今日获星总星数语言1hacksider/Deep-Live-Camreal time face swap and one-click video deepfake with only a single image⭐ 1686⭐ 54925Python2Qwe…...
计算机操作系统知识集合
主要来自小林coding 硬件结构 cpu位宽 如果用 32 位 CPU 去加和两个 64 位大小的数字,就需要把这 2 个 64 位的数字分成 2 个低位 32 位数字和 2 个高位 32 位数字来计算,先加个两个低位的 32 位数字,算出进位,然后加和两个高位…...
PostgreSQL数据类型
数据类型 数值类型 整数类型 SMALLINT 小范围整数,取值范围:-32768 ~ 32767 INT(INTEGER) 普通大小整数,取值范围:-2147483648 ~ 2147483647 浮点数类型 REAL 6位十进制数字精度 NUMERIC(m, n) 任意精度…...
在Linux中,KVM和Docker在Linux虚拟化中的区别是什么?
KVM(Kernel-based Virtual Machine)和Docker是Linux环境中两种不同的虚拟化技术,它们在实现原理、资源隔离程度、应用场景等方面存在显著区别: 实现原理与技术层级 KVM:KVM是一种基于硬件辅助虚拟化的全虚拟化技术&a…...
【docker学习笔记】如何删除镜像启动默认命令
一些镜像会在它打镜像时,加入一些默认的启动命令,可以通过docker inspect \<image id\>来查看Entrypoint。如下图,docker run启动时,会默认执行 "python3 -m vllm.entrypoints.openai.api_server" 如果不想执行&…...
c语言 39.0625转为16进制
c语言 39.0625转为16进制 寄存器的4~15对应整数部分 39为整数部分 39 (10进制) 0x27(16进制) 寄存器的0~3对应小数部分 0.0625为小数部分 0.0626 1/16 则0~3位十六进制值应为 0x1 39.06250…...
【阿里云大模型高级工程师ACP习题集】2.8 部署模型
习题集: 以下关于直接调用模型(无需部署)的说法,错误的是?【单选题】 A. 无需部署模型,只需简单调用API B. 按token量计费,无需担心模型部署的资源消耗 C. 可随意调用,没有任何限制 D. 适合业务初期或中小规模场景 使用vLLM部署模型时,若出现端口被占用的情况,以下做…...
【进阶】--函数栈帧的创建和销毁详解
目录 一.函数栈帧的概念 二.理解函数栈帧能让我们解决什么问题 三.相关寄存器和汇编指令知识点补充 四.函数栈帧的创建和销毁 4.1.调用堆栈 4.2.函数栈帧的创建 4.3 函数栈帧的销毁 一.函数栈帧的概念 --在C语言中,函数栈帧是指在函数调用过程中,…...
猫,为什么是猫?
英语单词 cat,意为猫: cat n.猫 根据首字母象形原则,通常我们喜欢将首字母C,解释为猫爪,C的形象,通常可解释为字母K的右侧的中间凹陷部分,K | <,也就是 C 和 < 相通&#…...
数字智慧方案6169丨智慧医院后勤管理解决方案(58页PPT)(文末有下载方式)
资料解读:智慧医院后勤管理解决方案 详细资料请看本解读文章的最后内容。 在当今万物互联的时代,传统医院后勤管理模式逐渐暴露出诸多弊端,已难以适应医院集团化发展的需求。这份智慧医院后勤管理解决方案资料,深入剖析了传统管理…...
经济学和奥地利学派的起源
(一)经济学和奥地利学派的起源: 早期思想: 亚当斯密被认为是现代经济学的鼻祖,但早期的亚里士多德、柏拉图以及中国的《管子》等著作也包含经济学思想,但更偏向财政学。 亚当斯密之前的学者: 坎…...
Linux安全清理删除目录bash脚本
直接写清除目录命令可能会因为一时手抖导致删除重要目录 rm -rf是个危险的命令,我写了bash脚本,放在环境变量目录下可以当系统命令来用 这里是单线程的,如果需要更高的性能,需要加入多线程的支持。 1.实现功能 清理目录的子内容…...
C++/SDL 进阶游戏开发 —— 双人塔防(代号:村庄保卫战 17)
🎁个人主页:工藤新一 🔍系列专栏:C面向对象(类和对象篇) 🌟心中的天空之城,终会照亮我前方的路 🎉欢迎大家点赞👍评论📝收藏⭐文章 文章目录 二…...
Lucene并不是只有倒排索引一种数据结构,支持多种数据结构
Lucene 的核心机制确实以**倒排索引(Inverted Index)**为核心,但它并不是“全部”都依赖倒排索引。Lucene 的索引结构中还包含其他辅助数据结构,用于支持不同的查询场景。以下是详细的解释: 1. 核心机制:倒…...
使用Docker一键安装SigLens:简单快捷的日志分析解决方案
在当今复杂的IT环境中,高效的日志管理和分析变得越来越重要。SigLens作为一款强大的开源日志分析工具,为开发者和运维人员提供了直观、高效的日志处理体验。本文将介绍如何使用Docker快速安装SigLens,让您在几分钟内就能开始进行日志分析。 为什么选择Docker安装SigLens? Do…...
【Linux】线程池和线程补充内容
个人主页~ 线程池 一、线程池简介单例模式线程池简介 二、单例模式线程池的实现1、ThreadPool.hpp2、Task.hpp3、main.cpp 三、其他常见锁读写锁 一、线程池简介 池化技术我们并不陌生,我们在前面的文章中实现过进程池,这里线程池的作用也是先申请资源交…...
vue3内置组件Suspense的使用
Suspense 实验性功能<Suspense> 是一项实验性功能。它不一定会最终成为稳定功能,并且在稳定之前相关 API 也可能会发生变化 <Suspense> 是一个内置组件,用来在组件树中协调对异步依赖的处理。它让我们可以在组件树上层等待下层的多个嵌套异…...
怪物猎人:世界-冰原10000+mod整合包5月最新更新!
700A大全套精美服装 800M大全套精美服装 3月31日更新 新增 新武器 新特效MOD 当前共计5800MOD整合包 好看的发型mod 实用的功能mod 炫酷的武器mod 新服装新特效新武器实用模组美化,等。 1月14日更新 新增皮肤MOD 500 当前共计2000MOD 1月16日更新 新增超…...
题解:洛谷 CF2091E Interesting Ratio
思路推导 我们先对 32 32 32 和 96 96 96 进行二进制拆分。 相同部分(用 α \alpha α 表示): 5 5 5 个 2 2 2。 不同部分(用 β \beta β 表示): 1 1 1 和 3 3 3。 gcd ( 32 , 96 ) \gcd(32,9…...
PETR和位置编码
PETR和位置编码 petr检测网络中有2种类型的位置编码。 正弦编码和petr论文提出的3D Position Embedding。transformer模块输入除了qkv,还有query_pos和key_pos。这里重点记录下query_pos和key_pos的生成 query pos的生成 先定义reference_points, shape为(n_query…...
《社交类应用开发:React Native与Flutter的抉择》
社交类应用以令人目不暇接的速度更新迭代。新功能不断涌现,从更智能的算法推荐到多样化的互动形式,从增强的隐私保护到跨平台的无缝体验,每一次更新都旨在满足用户日益增长且多变的需求。面对如此高频的更新需求,选择合适的跨端框…...
多模态大语言模型arxiv论文略读(五十三)
Red Teaming GPT-4V: Are GPT-4V Safe Against Uni/Multi-Modal Jailbreak Attacks? ➡️ 论文标题:Red Teaming GPT-4V: Are GPT-4V Safe Against Uni/Multi-Modal Jailbreak Attacks? ➡️ 论文作者:Shuo Chen, Zhen Han, Bailan He, Zifeng Ding, …...
POI从入门到上手(三)-轻松完成EasyExcel使用,完成Excel导入导出.
前言: Apache POI 是一个流行的 Java 库,用于处理 Microsoft Office 格式文件,提供丰富 API 来创建、读取和修改 Office 文档。 1.官网:Apache POI™ - the Java API for Microsoft Documents 2.优点:功能强大,可处…...
使用Delphi 和 CrossVcl 开发基于VCL的 macOS 和 Linux 应用程序简介
CrossVcl 快速入门 大家都知道delphi可以开发linux程序,更多的是知道FMXLinux开发基于FMX的程序,这里给大家介绍使用 Embarcadero Delphi 和 CrossVcl 开发基于VCL的 macOS 和 Linux 应用程序。 概述 CrossVcl 是一个工具链,允许使用 Emb…...
Android Kotlin 项目完整集成 Bugly 异常监控指南
Android Kotlin 项目集成 Bugly 异常监控完整指南 一、Bugly 简介 Bugly 是腾讯提供的专业移动应用异常监控平台,支持: 崩溃报告(Java/Native)错误分析性能监控热更新功能(需额外配置) 二、集成步骤 1…...
C++使用accumulate函数对数组进行快速求和
C使用accumulate函数对数组进行快速求和 一、普通数组 1.1方法: 1.先求出数组的长度: int size sizeof(arr) / sizeof(arr[0]); 2.使用指针作为迭代器调用accumulate函数:int sum std::accumulate(arr, arr size, 0); 3.注意带上头文…...
【音视频】RTMP流媒体服务器搭建、推流拉流
服务器:SRS(Simple RTMP Server,⽀持RTMP、HTTP-FLV,HLS) 推流端:ffmpeg OBS 拉流端:ffplay VLC srs播放器 1 安装和测试srs流媒体服务器 1.1 安装srs流媒体服务器 srs官⽹:https://github.com/ossrs/…...
React Router
为什么需要路由? 单页应用(SPA):在单页面中实现多视图切换,避免整页刷新。 核心功能: 根据 URL 路径渲染对应组件。 实现页面间导航(前进、后退、跳转)。 支持动态路由、嵌套路由…...
加载ko驱动模块:显示Arm版本问题解决!
1、问题 驱动模块加载,使用命令:modprobe chrdevbase.ko 时出现: hrdevbase: version magic 4.1.15 SMP preempt mod_unload modversions ARMv6 p2v8 ’ should be 4.1.15 SMP preempt mod_unload modversions ARMv7 p2v8 ’ ———————…...
OpenGL-ES 学习(9) ---- OpenGL-ES 简介和基本 Pipeline
目录 OpenGL-ES 简介渲染管线顶点和顶点着色器图元装配和光栅化片段和片段着色器逐片段操作EGL OpenGL-ES 简介 OpenGL-ES(OpenGL for Embedded System)是以手持和嵌入式设备为目标的高级3D图形应用编程接口,OpenGL ES 支持的的平台包括 IOS,Android&am…...
计算机视觉(CV)技术的优势和挑战(本片为InsCode)
计算机视觉(CV)技术是一种利用计算机和算法来模拟人类视觉实现图像和视频处理的技术。它在各个领域都有着广泛的应用,具有许多优势和挑战。 优势: 自动化:CV 技术可以自动识别、分类、跟踪和分析图像和视频数据&…...