一、研究猜想提出 基于社交媒体用户行为特征与发布时间的关联性,提出以下两个核心猜想: 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检验结果,验证差异的显著性。
社交媒体用户行为特征与发布时间的关联性
张小明
前端开发工程师
微服务编排引擎Conductor:源码编译与定制化开发实战手册
微服务编排引擎Conductor:源码编译与定制化开发实战手册 【免费下载链接】conductor Conductor is a microservices orchestration engine. 项目地址: https://gitcode.com/GitHub_Trending/co/conductor 在当今微服务架构盛行的时代,如何有效管理…
WINCC实现手机 APP 远程监控及短信报警方案
在工业自动化领域,实时监控与及时响应异常情况是保障生产稳定运行的关键。本文将详细介绍如何结合 WINCC、巨控 OPC560 产品实现手机 APP 远程监控与短信报警功能,为工业生产管理提供高效便捷的解决方案。一、实现原理1. 系统架构组成WINCC实现手机 APP …
《Python学习手册》第1章 Python概述
一、课程介绍 1.1 电子书介绍 如果你正在公众号或者CSDN翻阅这本书,想弄清它到底讲什么,可以先记住一句话: Python 是当今使用最广泛的编程语言之一,几乎渗透到所有计算机应用领域;它语法简洁、容易上手,是零基础入门编程的理想选择。 CSDN地址:https://blog.csdn.ne…
西南民族大学软件工程25级研究生赴华清远见成都中心开启元宇宙实训之旅
为深化产教融合,助力高校人才培养与产业需求精准对接,2025年12月1日-11日,西南民族大学软件工程专业2025级研究生,约40人,来到华清远见成都中心开展专项实训。本次实训以“基于大模型的元宇宙智慧家庭”为核心项目,为期…
Obsidian图像工具包:终极图片管理与编辑指南
Obsidian图像工具包:终极图片管理与编辑指南 【免费下载链接】obsidian-image-toolkit An Obsidian plugin for viewing an image. 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-image-toolkit Obsidian图像工具包是专为Obsidian笔记用户设计的强大…
自主高性价比、高精度车规级姿态感知、倾角感知模组-应用消费级无人机、自动驾驶、机器人、智能制造、基础设施、智能穿戴等
自主高性价比、高精度车规级姿态感知、倾角感知模组-应用消费级无人机、自动驾驶、机器人、智能制造、基础设施、智能穿戴等在小说阅读器中沉浸阅读IMU 惯性测量单元(Inertial Measurement Unit) 是测量物体三轴角速度和加速度的设备。一个IMU内可能会装有三轴陀螺仪和三轴加速…