一、研究猜想提出 基于社交媒体用户行为特征与发布时间的关联性,提出以下两个核心猜想: 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(kind='bar', ax=ax1, color=['#4287f5', '#f5a642']) ax1.set_title('日间vs晚间发布量对比') ax1.set_xlabel('时段') ax1.set_ylabel('发布总量') ax1.grid(axis='y', alpha=0.3) # 平均互动量对比 period_interaction_mean.plot(kind='bar', ax=ax2, color=['#4287f5', '#f5a642']) ax2.set_title('日间vs晚间平均互动量对比') ax2.set_xlabel('时段') ax2.set_ylabel('平均互动量') ax2.grid(axis='y', alpha=0.3) plt.tight_layout() plt.savefig('猜想1验证.png', dpi=300) 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'], marker='o', label='工作日', color='#4287f5', linewidth=2) # 绘制周末趋势 plt.plot(weekend_data['hour'], weekend_data['user_id'], marker='s', label='周末', color='#f54287', linewidth=2) # 标注峰值点 plt.scatter(workday_peak_hour, workday_data[workday_data['hour']==workday_peak_hour]['user_id'].values[0], color='#4287f5', s=100, label=f'工作日峰值:{workday_peak_hour}点') plt.scatter(weekend_peak_hour, weekend_data[weekend_data['hour']==weekend_peak_hour]['user_id'].values[0], color='#f54287', s=100, label=f'周末峰值:{weekend_peak_hour}点') # 图表样式设置 plt.title('工作日vs周末各小时发布量趋势') plt.xlabel('小时') plt.ylabel('发布量') plt.xticks(range(8, 24)) # 仅显示核心时段(8-23点) plt.grid(alpha=0.3) plt.legend() plt.tight_layout() plt.savefig('猜想2验证.png', dpi=300) 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检验结果,验证差异的显著性。
社交媒体用户行为特征与发布时间的关联性
张小明
前端开发工程师
Markdown预览浏览器扩展的终极配置指南
Markdown预览浏览器扩展的终极配置指南 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 想要在浏览器中完美预览Markdown文档吗?无论您是开发者、文档编写者还是普通用…
你以为的键盘错位不合理,其实是历史最优解解决方案
你是否曾低头看着自己的键盘,疑惑过这样一个看似简单却令人费解的问题:为什么键盘上的按键不是整齐排列成直线,而是呈阶梯状错开的?如果把所有按键紧密并排、完全对齐,难道不是更紧凑、更直观吗?这个日常计…
PingFangSC字体引擎:构建跨平台视觉统一的技术基石
PingFangSC字体引擎:构建跨平台视觉统一的技术基石 【免费下载链接】PingFangSC PingFangSC字体包文件、苹果平方字体文件,包含ttf和woff2格式 项目地址: https://gitcode.com/gh_mirrors/pi/PingFangSC 在数字体验竞争白热化的今天,字…
什么牌子的大路灯护眼好用?推荐护眼大路灯风云榜,10款热销机型
护眼大路灯是一款结合台灯和吸顶灯特点的照明工具,提供了更自然、更舒适的视觉用眼体验,而且护眼大路灯也已逐渐成为学生党、用眼人群的首选,而对于护眼大路灯的火爆,各品牌也纷纷进入护眼照明市场的赛道,导致品牌众多…
唯之与阿,相去几何?善之与恶,相去若何?人之所畏,不可不畏。
唯之与阿,相去几何?善之与恶,相去若何?人之所畏,不可不畏。荒兮其未央哉!众人熙熙,如享太牢,如春登台。我独泊兮其未兆,如婴儿之未孩;傫傫兮若无所归。众人皆…
制药企业设备突发故障?CBM技术如何实现设备状态提前预警
在传统设备维护模式下,制药企业常面临“设备突然停机”“维修成本高”“备件库存积压”等难题。一旦关键设备如离心机、蒸汽压缩机突发故障,不仅影响生产进度,还可能带来安全风险与合规隐患。而基于状态的预测性维护(CBMÿ…