数据挖掘

Python数据分析实战:学习行为特征挖掘实验

2025-08-15 | Python 3.11 + Pandas + Matplotlib + Scikit-learn
数据准备 分析数据集包含12万条用户学习记录,字段包括:用户ID、学习资源ID、资源类型(笔记/报告/课程)、学习开始时间、学习时长、完成率、设备类型等。 分析步骤
  1. 数据清洗与预处理:
import pandas as pd
import numpy as np

读取数据

df = pd.read_csv('learning_data_6months.csv')

数据清洗

1. 处理缺失值

df = df.dropna(subset=['user_id', 'start_time', 'duration'])

2. 转换时间格式

df['start_time'] = pd.to_datetime(df['start_time']) df['hour'] = df['start_time'].dt.hour df['weekday'] = df['start_time'].dt.weekday

3. 过滤异常值(学习时长<10秒或>3600秒)

df = df[(df['duration'] >= 10) & (df['duration'] <= 3600)]
  1. 学习时段分布分析:
import matplotlib.pyplot as plt

设置中文字体

plt.rcParams['font.sans-serif'] = ['WenQuanYi Zen Hei']

按小时统计学习次数

hour_dist = df.groupby('hour').size()

绘制学习时段分布图

plt.figure(figsize=(12, 6)) hour_dist.plot(kind='bar', color='#165DFF') plt.title('用户学习时段分布', fontsize=14) plt.xlabel('小时', fontsize=12) plt.ylabel('学习次数', fontsize=12) plt.xticks(rotation=0) plt.grid(axis='y', alpha=0.3) plt.savefig('learning_hour_dist.png', dpi=300, bbox_inches='tight') plt.close()
  1. 学习效率特征挖掘:
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler

提取特征变量

features = df[['duration', 'completion_rate', 'hour', 'weekday']]

数据标准化

scaler = StandardScaler() features_scaled = scaler.fit_transform(features)

K-Means聚类(分为3类:高效/中等/低效)

kmeans = KMeans(n_clusters=3, random_state=42) df['efficiency_type'] = kmeans.fit_predict(features_scaled)

分析各类别特征

cluster_analysis = df.groupby('efficiency_type').agg({ 'duration': 'mean', 'completion_rate': 'mean', 'hour': 'mean', 'user_id': 'nunique' }).round(2) print(cluster_analysis)
核心发现
  1. 学习时段特征:周末15:00-17:00(平均学习时长420秒,完成率85%)和工作日20:00-22:00(平均学习时长380秒,完成率82%)为高效学习时段
  2. 资源偏好特征:
- 高效学习者更偏好「实验报告」类资源(占比45%) - 低效学习者更倾向于浏览「课程简介」类资源(占比62%)
  1. 设备特征:PC端学习完成率(83%)显著高于移动端(68%),尤其是「代码实践」类资源
应用价值 - 基于高效时段特征,优化学习提醒功能(在15:00/20:00推送个性化学习内容) - 基于资源偏好,构建用户兴趣标签库,提升推荐准确率 - 为移动端适配提供数据支撑,优先优化高价值资源的移动端体验 后续计划 - 引入用户画像数据,深化学习行为与用户属性的关联分析 - 构建学习效果预测模型,提前识别可能放弃学习的用户 - 定期(每月)更新行为特征模型,适应用户学习习惯变化
分享至:

相关学习推荐

性能优化

PHP接口响应优化实验:从500ms到80ms

2024-04-15
查看详情
数据库

MongoDB学习记录优化实验:提升用户学习轨迹查询效率

2025-07-20
查看详情