2026/1/2 22:29:48
网站建设
项目流程
建造个网站花多少钱,创新的武进网站建设,wordpress安装到主机名,大型用户网站建设一、研究猜想提出 基于社交媒体用户行为特征与发布时间的关联性#xff0c;提出以下两个核心猜想#xff1a; 1. **猜想1**#xff1a;社交媒体用户活跃度在晚间时段#xff08;18:00-23:00#xff09;显著高于日间时段#xff08;08:00-17:00#xff09;#xff0c;晚…一、研究猜想提出 基于社交媒体用户行为特征与发布时间的关联性提出以下两个核心猜想 1. **猜想1**社交媒体用户活跃度在晚间时段18:00-23:00显著高于日间时段08:00-17:00晚间时段的平均发布量/互动量是日间的1.5倍以上 2. 猜想2工作日与周末的用户活跃度峰值时段存在差异——工作日峰值集中在20:00-22:00周末峰值提前至15:00-19:00。 二、数据集来源与说明 选用公开可获取的社交媒体用户行为数据集Kaggle平台 - 数据集链接https://www.kaggle.com/datasets/gauravduttakiit/social-media-user-activity - 核心字段post_time发布时间格式YYYY-MM-DD HH:MM:SS、user_id用户ID、interactions互动量含点赞/评论/转发。 三、Python代码实现分析与验证 步骤1环境配置与数据加载 python import pandas as pd import numpy as np import matplotlib.pyplot as plt from datetime import datetime # 设置中文字体避免图表中文乱码 plt.rcParams[font.sans-serif] [SimHei] plt.rcParams[axes.unicode_minus] False # 加载数据集需先下载至本地替换为实际文件路径 df pd.read_csv(social_media_activity.csv) # 数据预处理转换时间格式提取关键时间特征 df[post_time] pd.to_datetime(df[post_time]) df[hour] df[post_time].dt.hour # 提取小时 df[day_of_week] df[post_time].dt.dayofweek # 提取星期0周一6周日 # 标记工作日/周末0-4为工作日5-6为周末 df[is_weekend] df[day_of_week].apply(lambda x: 1 if x 5 else 0) # 标记日间/晚间08:00-17:00为日间18:00-23:00为晚间其余时段剔除 df[time_period] df[hour].apply( lambda x: 日间 if 8 x 17 else (晚间 if 18 x 23 else 其他) ) # 剔除非核心时段数据 df df[df[time_period].isin([日间, 晚间])] # 查看数据基本信息 print(数据预处理后基本信息) print(df.info()) print(\n数据前5行) print(df.head()) #### 步骤2验证猜想1晚间vs日间活跃度对比 python # 计算日间/晚间的核心活跃度指标平均发布量按小时、平均互动量 # 1. 按时段分组统计发布量每条记录为1条发布 period_post_count df.groupby(time_period)[user_id].count() # 按时段分组统计平均互动量 period_interaction_mean df.groupby(time_period)[interactions].mean() # 计算晚间/日间发布量倍数、互动量倍数 post_multiple period_post_count[晚间] / period_post_count[日间] interaction_multiple period_interaction_mean[晚间] / period_interaction_mean[日间] # 输出统计结果 print(\n 猜想1验证结果 ) print(f日间发布量{period_post_count[日间]}晚间发布量{period_post_count[晚间]}) print(f晚间发布量是日间的 {post_multiple:.2f} 倍) print(f\n日间平均互动量{period_interaction_mean[日间]:.2f}晚间平均互动量{period_interaction_mean[晚间]:.2f}) print(f晚间平均互动量是日间的 {interaction_multiple:.2f} 倍) # 可视化日间vs晚间活跃度对比 fig, (ax1, ax2) plt.subplots(1, 2, figsize(12, 5)) # 发布量对比 period_post_count.plot(kindbar, axax1, color[#4287f5, #f5a642]) ax1.set_title(日间vs晚间发布量对比) ax1.set_xlabel(时段) ax1.set_ylabel(发布总量) ax1.grid(axisy, alpha0.3) # 平均互动量对比 period_interaction_mean.plot(kindbar, axax2, color[#4287f5, #f5a642]) ax2.set_title(日间vs晚间平均互动量对比) ax2.set_xlabel(时段) ax2.set_ylabel(平均互动量) ax2.grid(axisy, alpha0.3) plt.tight_layout() plt.savefig(猜想1验证.png, dpi300) plt.show() # 猜想1结论判断 if post_multiple 1.5 and interaction_multiple 1.5: print(\n猜想1验证结论成立晚间活跃度显著高于日间倍数≥1.5) else: print(f\n猜想1验证结论不成立晚间发布量倍数为{post_multiple:.2f}互动量倍数为{interaction_multiple:.2f}) #### 步骤3验证猜想2工作日vs周末峰值时段对比 python # 按「是否周末小时」分组统计发布量核心活跃度指标 weekend_hour_post df.groupby([is_weekend, hour])[user_id].count().reset_index() # 拆分工作日/周末数据 workday_data weekend_hour_post[weekend_hour_post[is_weekend] 0] weekend_data weekend_hour_post[weekend_hour_post[is_weekend] 1] # 找到工作日/周末发布量峰值小时 workday_peak_hour workday_data.loc[workday_data[user_id].idxmax(), hour] weekend_peak_hour weekend_data.loc[weekend_data[user_id].idxmax(), hour] # 输出峰值时段结果 print(\n 猜想2验证结果 ) print(f工作日发布量峰值小时{workday_peak_hour}点) print(f周末发布量峰值小时{weekend_peak_hour}点) # 可视化工作日vs周末各小时发布量趋势 plt.figure(figsize(10, 6)) # 绘制工作日趋势 plt.plot(workday_data[hour], workday_data[user_id], markero, label工作日, color#4287f5, linewidth2) # 绘制周末趋势 plt.plot(weekend_data[hour], weekend_data[user_id], markers, label周末, color#f54287, linewidth2) # 标注峰值点 plt.scatter(workday_peak_hour, workday_data[workday_data[hour]workday_peak_hour][user_id].values[0], color#4287f5, s100, labelf工作日峰值{workday_peak_hour}点) plt.scatter(weekend_peak_hour, weekend_data[weekend_data[hour]weekend_peak_hour][user_id].values[0], color#f54287, s100, labelf周末峰值{weekend_peak_hour}点) # 图表样式设置 plt.title(工作日vs周末各小时发布量趋势) plt.xlabel(小时) plt.ylabel(发布量) plt.xticks(range(8, 24)) # 仅显示核心时段8-23点 plt.grid(alpha0.3) plt.legend() plt.tight_layout() plt.savefig(猜想2验证.png, dpi300) plt.show() # 猜想2结论判断 workday_peak_range 20 workday_peak_hour 22 # 工作日峰值是否在20-22点 weekend_peak_range 15 weekend_peak_hour 19 # 周末峰值是否在15-19点 if workday_peak_range and weekend_peak_range: print(\n猜想2验证结论成立工作日峰值在20-22点周末峰值在15-19点) else: print(f\n猜想2验证结论不成立工作日峰值为{workday_peak_hour}点周末峰值为{weekend_peak_hour}点) ### 四、结果解读与拓展说明 1. **数据适配性**若下载的数据集字段名称/格式不同需调整代码中post_time/interactions等字段名若数据量过小1000条可补充Kaggle其他社交媒体行为数据集如https://www.kaggle.com/datasets/mashlyn/instagram-reach-data。 2. **统计优化**可增加「显著性检验」如t检验验证时段差异是否具有统计学意义代码可补充 python from scipy import stats # 验证日间/晚间互动量差异是否显著 day_interaction df[df[time_period]日间][interactions] night_interaction df[df[time_period]晚间][interactions] t_stat, p_value stats.ttest_ind(night_interaction, day_interaction) print(f\n日间/晚间互动量t检验结果t{t_stat:.2f}p值{p_value:.4f}) print(差异显著 if p_value 0.05 else 差异不显著) 3. **业务价值**验证结果可指导社交媒体内容运营——如工作日20-22点、周末15-19点发布核心内容提升曝光与互动效率。 五、预期输出 1. 文本输出两个猜想的「成立/不成立」结论、关键倍数/峰值时段数值 2. 可视化输出2张图表日间vs晚间对比、工作日vs周末小时趋势 3. 统计补充可选t检验结果验证差异的显著性。