智能推荐系统分析工具,提供多种推荐算法实现、评估框架和可视化分析。使用时需要用户行为数据、商品信息或评分数据,支持协同过滤、矩阵分解等推荐算法,生成个性化推荐结果和评估报告。
一个功能完整的智能推荐系统分析工具,基于"数据分析咖哥十话"的推荐系统模块开发。
本技能提供从数据处理到推荐生成的完整推荐系统解决方案,支持多种推荐算法、评估方法和可视化分析。
🤖 多种推荐算法
📊 全面的评估框架
📈 丰富的可视化功能
🔧 智能数据处理
# 依赖包
pip install pandas numpy scikit-learn matplotlib seaborn
from scripts.recommendation_engine import RecommendationEngine
from scripts.recommender_evaluator import RecommenderEvaluator
from scripts.recommender_visualizer import RecommenderVisualizer
# 初始化组件
engine = RecommendationEngine()
evaluator = RecommenderEvaluator()
visualizer = RecommenderVisualizer()
# 加载数据
user_data, item_data = engine.load_data('user_behavior.csv', 'item_info.csv')
# 训练模型
engine.train_user_based_cf()
engine.train_item_based_cf()
engine.train_svd(n_components=50)
# 生成推荐
recommendations = engine.recommend_hybrid('U001', top_k=10)
print(f"推荐结果: {recommendations}")
# 快速测试
python quick_test.py
# 简化示例 (推荐)
python examples/simple_recommendation_example.py
# 完整功能示例
python examples/basic_recommendation_example.py
# 高级功能演示
python examples/advanced_recommendation_example.py
recommender-system/
├── SKILL.md # 技能详细文档
├── README.md # 使用指南 (本文件)
├── quick_test.py # 快速功能测试
├── test_skill.py # 完整测试套件
│
├── scripts/ # 核心功能模块
│ ├── __init__.py
│ ├── recommendation_engine.py # 推荐算法引擎
│ ├── recommender_evaluator.py # 评估框架
│ ├── data_analyzer.py # 数据分析器
│ └── recommender_visualizer.py # 可视化器
│
└── examples/ # 示例和数据
├── sample_data/ # 样本数据
│ ├── sample_user_behavior.csv
│ └── sample_item_info.csv
├── simple_recommendation_example.py # 简化示例
├── basic_recommendation_example.py # 基础示例
└── advanced_recommendation_example.py # 高级示例
# 训练模型
engine.train_user_based_cf(similarity_metric='cosine', normalize=True)
# 生成推荐
recommendations = engine.recommend_user_based_cf('U001', top_k=10)
# 训练模型
engine.train_item_based_cf(similarity_metric='cosine')
# 生成推荐
recommendations = engine.recommend_item_based_cf('U001', top_k=10)
# 训练模型
engine.train_svd(n_components=50, random_state=42)
# 生成推荐
recommendations = engine.recommend_svd('U001', top_k=10)
# 配置权重
weights = {'user_cf': 0.3, 'item_cf': 0.3, 'svd': 0.4}
# 生成推荐
recommendations = engine.recommend_hybrid('U001', top_k=10, weights=weights)
# 计算推荐质量
precision = evaluator.precision_at_k(recommendations, ground_truth, k=5)
recall = evaluator.recall_at_k(recommendations, ground_truth, k=5)
f1 = evaluator.f1_score_at_k(recommendations, ground_truth, k=5)
# 计算评分准确性
mae = evaluator.mean_absolute_error(predictions, actual_ratings)
rmse = evaluator.root_mean_square_error(predictions, actual_ratings)
loo_results = evaluator.leave_one_out_evaluation(
engine, user_item_matrix,
k_values=[5, 10, 20],
num_users=50
)
algorithm_results = {
'User-CF': user_cf_metrics,
'Item-CF': item_cf_metrics,
'SVD': svd_metrics,
'Hybrid': hybrid_metrics
}
comparison_df = evaluator.compare_algorithms(algorithm_results)
from scripts.data_analyzer import DataAnalyzer
analyzer = DataAnalyzer()
user_data, item_data = analyzer.load_data('user_behavior.csv', 'item_info.csv')
# 用户行为分析
user_analysis = analyzer.analyze_user_behavior(user_data)
# 商品热度分析
item_analysis = analyzer.analyze_item_popularity(user_data, item_data)
# 冷启动问题检测
cold_start = analyzer.detect_cold_start(user_data)
# 推荐结果柱状图
fig = visualizer.plot_recommendation_results(
recommendations, user_id='U001',
title='用户U001的推荐结果'
)
# 算法比较图
fig = visualizer.plot_algorithm_comparison(comparison_df)
# 用户行为分析图
fig = visualizer.plot_user_behavior_analysis(user_data)
用户ID,商品ID,评分,时间戳,商品类别,商品价格,用户年龄,用户性别,用户城市,行为类型
U001,P001,5,2024-01-01 10:30:00,电子产品,2999,28,男,北京,购买
U002,P002,4,2024-01-02 14:20:00,服装,399,32,女,上海,购买
商品ID,商品名称,商品类别,价格,品牌,上架时间,销量,库存,商品描述,平均评分
P001,iPhone 15 Pro,电子产品,3999,苹果,2023-09-15,1250,89,最新款苹果手机,4.8
P002,优衣库羊毛大衣,服装,599,优衣库,2023-10-01,890,156,秋冬保暖羊毛大衣,4.5
# 协同过滤参数
engine.train_user_based_cf(
similarity_metric='cosine', # 'cosine' 或 'pearson'
normalize=True # 是否标准化
)
# SVD参数
engine.train_svd(
n_components=50, # 降维组件数
random_state=42 # 随机种子
)
# 混合推荐权重
weights = {
'user_cf': 0.3, # 用户协同过滤权重
'item_cf': 0.3, # 物品协同过滤权重
'svd': 0.4 # SVD权重
}
# 留一法评估
loo_results = evaluator.leave_one_out_evaluation(
engine, user_item_matrix,
k_values=[5, 10, 20], # 评估的K值
num_users=100, # 评估用户数
n_neighbors=50 # 相似邻居数
)
# 交叉验证评估
cv_results = evaluator.cross_validation_evaluation(
engine, user_item_matrix,
cv_folds=5, # 交叉验证折数
k_values=[5, 10] # 评估的K值
)
A: 系统自动使用热门商品推荐策略为新用户生成推荐。
A: 建议使用交叉验证评估不同参数组合的效果,选择最优配置。
A: 可以通过采样减少计算量,或使用增量学习方法。
A: 可以在混合推荐中加入多样性权重,或使用基于内容的推荐。
基于用户或物品的相似度进行推荐,核心是"相似的人喜欢相似的物品"。
通过降维技术发现用户和商品的隐含特征,解决数据稀疏性问题。
结合多种推荐算法的优势,提高推荐的准确性和覆盖率。
欢迎提交 Issue 和 Pull Request 来改进这个技能。
MIT License
现在你已经了解了推荐系统技能的所有功能,可以开始使用了:
# 快速验证功能
python quick_test.py
# 运行示例
python examples/simple_recommendation_example.py
享受你的推荐系统之旅!🚀
npx skills add liangdabiao/recommender-system下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer