recommender-system
14
总安装量
11
周安装量
#23877
全站排名
安装命令
npx skills add https://github.com/liangdabiao/claude-data-analysis-ultra-main --skill recommender-system
Agent 安装分布
antigravity
8
claude-code
8
codex
7
windsurf
6
opencode
6
Skill 文档
æ¨èç³»ç»åææè½ (Recommender System Skill)
æ¨èç³»ç»åææè½æ¯ä¸ä¸ªç»¼åæ§çæºè½æ¨èåæå·¥å ·ï¼åºäº”æ°æ®åæåå¥åè¯”çæ¨èç³»ç»æ¨¡åå¼åï¼æä¾å¤ç§æ¨èç®æ³å®ç°ãè¯ä¼°æ¡æ¶åå¯è§ååæåè½ã
ð¯ æè½æ¦è¿°
æ¬æè½ä¸æ³¨äºæå»ºãè¯ä¼°åå¯è§åæºè½æ¨èç³»ç»ï¼æ¶µçä»åºç¡ååè¿æ»¤å°é«çº§ç©éµåè§£ç宿´æ¨èææ¯æ ãæ è®ºæ¯çµåäº§åæ¨èãæ¸¸ææ¨èè¿æ¯å 容æ¨èï¼é½è½æä¾ä¸ä¸çåææ¯æã
â¨ æ ¸å¿ç¹æ§
ð§ æ¨èç®æ³å¼æ
- ååè¿æ»¤ç®æ³ï¼åºäºç¨æ·çååè¿æ»¤ (UBCF) ååºäºç©åçååè¿æ»¤ (IBCF)
- ç©éµåè§£ææ¯ï¼SVDå¥å¼å¼åè§£ï¼ææç¨æ·åååçéå«ç¹å¾
- æ··åæ¨èçç¥ï¼ç»åå¤ç§ç®æ³ï¼æé«æ¨èåç¡®æ§åè¦çç
- ç¸ä¼¼åº¦è®¡ç®ï¼ä½å¼¦ç¸ä¼¼åº¦ãç®å°éç¸å ³ç³»æ°çå¤ç§ç¸ä¼¼åº¦åº¦é
ð æºè½è¯ä¼°æ¡æ¶
- 离线è¯ä¼°ææ ï¼Precision@KãRecall@KãMAEãRMSEçæ åè¯ä¼°ææ
- è¯ä¼°æ¹æ³ï¼ç䏿³äº¤åéªè¯ãKæäº¤åéªè¯ãæ¶é´åºåéªè¯
- å¤ç»´åº¦è¯ä¼°ï¼åç¡®æ§ã夿 ·æ§ãæ°é¢æ§ãæå度ç综åè¯ä¼°
- ç®æ³æ¯è¾ï¼å¤ç§æ¨èç®æ³çæ§è½å¯¹æ¯ååæ
ð å¯è§ååæ
- æ¨èç»æå±ç¤ºï¼ä¸ªæ§åæ¨èå表å¯è§åï¼æ¨èè§£éå±ç¤º
- æ§è½è¯ä¼°å¾è¡¨ï¼ç®æ³æ§è½å¯¹æ¯å¾ãè¯ä¼°ææ è¶å¿å¾
- æ°æ®æ´å¯åæï¼ç¨æ·è¡ä¸ºæ¨¡å¼å¾ãåååå¸å¾ãè¯åçåå¾
- 交äºå¼å¾è¡¨ï¼æ¯æå¨æçéå交äºåæ
ð 主è¦åè½æ¨¡å
1. æ¨èç®æ³å®ç° (scripts/recommendation_engine.py)
# 主è¦ç±»åæ¹æ³
class RecommendationEngine:
def user_based_cf(self, user_id, top_k=5) # åºäºç¨æ·çååè¿æ»¤
def item_based_cf(self, user_id, top_k=5) # åºäºç©åçååè¿æ»¤
def svd_recommend(self, user_id, n_components=50) # SVDç©éµåè§£æ¨è
def hybrid_recommend(self, user_id, weights=None) # æ··åæ¨èçç¥
2. æ¨èç³»ç»è¯ä¼°å¨ (scripts/recommender_evaluator.py)
# 主è¦è¯ä¼°åè½
class RecommenderEvaluator:
def precision_at_k(self, recommendations, ground_truth, k)
def recall_at_k(self, recommendations, ground_truth, k)
def leave_one_out_evaluation(self, model, test_data)
def cross_validate(self, model, data, cv_folds=5)
3. æ°æ®åæå¨ (scripts/data_analyzer.py)
# æ°æ®åæåè½
class DataAnalyzer:
def analyze_user_behavior(self, user_data) # ç¨æ·è¡ä¸ºåæ
def analyze_item_popularity(self, item_data) # ååç度åæ
def calculate_sparsity(self, interaction_matrix) # æ°æ®ç¨çæ§åæ
def detect_cold_start(self, user_data, item_data) # å·å¯å¨é®é¢æ£æµ
4. å¯è§åå±ç¤ºå¨ (scripts/recommender_visualizer.py)
# å¯è§ååè½
class RecommenderVisualizer:
def plot_recommendation_results(self, recommendations) # æ¨èç»æå¯è§å
def plot_evaluation_metrics(self, evaluation_results) # è¯ä¼°ææ å¾è¡¨
def create_user_item_heatmap(self, interaction_matrix) # ç¨æ·-ååçåå¾
def plot_algorithm_comparison(self, comparison_data) # ç®æ³å¯¹æ¯å¾
ð æ¯æçæ°æ®æ ¼å¼
è¾å ¥æ°æ®
- ç¨æ·è¡ä¸ºæ°æ®ï¼CSVãJSONæ ¼å¼ï¼å å«ç¨æ·IDãååIDãè¯åãæ¶é´æ³ç
- ååä¿¡æ¯æ°æ®ï¼CSVãJSONæ ¼å¼ï¼å å«ååIDãåç§°ãç±»å«ãä»·æ ¼ç
- ç¨æ·ç»åæ°æ®ï¼å¯éçç¨æ·å¹´é¾ãæ§å«ãå°åç人å£ç»è®¡å¦ä¿¡æ¯
- è¯åç©éµï¼ç¨æ·-ååè¯åçç¨çç©éµæ ¼å¼
è¾åºç»æ
- æ¨èå表ï¼CSVãJSONæ ¼å¼ç个æ§åæ¨èç»æ
- è¯ä¼°æ¥åï¼HTMLãMarkdownæ ¼å¼ç详ç»è¯ä¼°åæ
- å¯è§åå¾è¡¨ï¼PNGãSVGæ ¼å¼çé«è´¨éå¾è¡¨
- åææ´å¯ï¼ææ¬å½¢å¼çæ°æ®æ´å¯å建议
ð¯ å ¸ååºç¨åºæ¯
çµåæ¨è
- åºäºç¨æ·è´ä¹°åå²çå忍è
- ç¸ä¼¼å忍èå交åéå®
- 个æ§åé¦é¡µåè´ç©è½¦æ¨è
- æ°ç¨æ·çå·å¯å¨æ¨è
æ¸¸ææ¨è
- åºäºæ¸¸ææ¶é´ååå¥½çæ¸¸ææ¨è
- ç¸ä¼¼æ¸¸æç©å®¶æ¨è
- 游æå 容æ¨èåç¤¾åºæ¨è
- æ°æ¸¸ææµè¯ç¨æ·æ¨è
å 容æ¨è
- æ°é»æç« åè§é¢å 容æ¨è
- é³ä¹åæå®¢æ¨è
- å¦ä¹ è¯¾ç¨æ¨è
- 社交åªä½å 容æ¨è
ð ï¸ ä½¿ç¨æµç¨
åºç¡ä½¿ç¨æµç¨
- æ°æ®åå¤ï¼å è½½ç¨æ·è¡ä¸ºæ°æ®åååä¿¡æ¯æ°æ®
- æ°æ®æ¢ç´¢ï¼åæç¨æ·è¡ä¸ºæ¨¡å¼ååååå¸
- ç®æ³éæ©ï¼éæ©éåçæ¨èç®æ³å¹¶é ç½®åæ°
- 模åè®ç»ï¼è®ç»æ¨è模åå¹¶è¿è¡åæ°è°ä¼
- çææ¨èï¼ä¸ºç®æ ç¨æ·çæä¸ªæ§åæ¨èå表
- ææè¯ä¼°ï¼è¯ä¼°æ¨èææå¹¶è¿è¡ç®æ³å¯¹æ¯
- ç»æå¯è§åï¼çææ¨èç»æåè¯ä¼°åæçå¯è§åæ¥å
é«çº§åææµç¨
- æ·±åº¦æ°æ®ææï¼ç¨æ·å群ãåååç±»ãæ¨¡å¼è¯å«
- å¤ç®æ³éæï¼ç»åå¤ç§æ¨èç®æ³ï¼æå»ºæ··åæ¨èç³»ç»
- 宿¶æ¨èï¼æå»ºå¨çº¿æ¨èæå¡ï¼æ¯æå®æ¶ä¸ªæ§åæ¨è
- A/Bæµè¯ï¼è®¾è®¡æ¨èç³»ç»A/Bæµè¯ï¼è¯ä¼°ä¸å¡ææ
- æç»ä¼åï¼åºäºç¨æ·å馿ç»ä¼åæ¨èç®æ³
ð 示ä¾ä»£ç
å¿«éå¼å§ç¤ºä¾
from scripts.recommendation_engine import RecommendationEngine
from scripts.recommender_evaluator import RecommenderEvaluator
from scripts.data_analyzer import DataAnalyzer
# åå§åæ¨è弿
engine = RecommendationEngine()
evaluator = RecommenderEvaluator()
analyzer = DataAnalyzer()
# å è½½æ°æ®
user_data, item_data = engine.load_data('user_behavior.csv', 'product_info.csv')
# æ°æ®åæ
user_activity = analyzer.analyze_user_behavior(user_data)
item_popularity = analyzer.analyze_item_popularity(item_data)
# è®ç»æ¨è模å
engine.train_item_based_cf(user_data)
# çææ¨è
recommendations = engine.recommend('U001', top_k=10)
# è¯ä¼°æ¨èææ
precision = evaluator.precision_at_k(recommendations, ground_truth, k=5)
print(f"æ¨èç»æ: {recommendations}")
print(f"Precision@5: {precision:.4f}")
ð§ é ç½®åæ°
æ¨èç®æ³åæ°
- ååè¿æ»¤ï¼ç¸ä¼¼åº¦éå¼ãé»å± æ°éãè¯åå½ä¸åæ¹å¼
- ç©éµåè§£ï¼ç»ä»¶æ°éãæ£åååæ°ãå¦ä¹ çãè¿ä»£æ¬¡æ°
- æ··åæ¨èï¼åç®æ³æéãèåçç¥ãæ¨èå表é¿åº¦
è¯ä¼°åæ°
- è¯ä¼°ææ ï¼Kå¼éæ©ãè¯ä¼°æ°æ®æ¯ä¾ã交åéªè¯ææ°
- æ°æ®åå²ï¼è®ç»é/æµè¯éæ¯ä¾ãæ¶é´åå²ç¹
- æ§è½åºåï¼åºçº¿ç®æ³éæ©ãæ§è½éå¼è®¾å®
ð¯ æè½ä¼å¿
ä¸ä¸æ§
- åºäºæå¨æ¨èç³»ç»çè®ºï¼æ¶µçç»å ¸ååæ²¿ç®æ³
- æä¾å®æ´çæ¨èç³»ç»å¼åæµç¨åæä½³å®è·µ
- æ¯æå¤ç§æ¨èåºæ¯åä¸å¡éæ±
å®ç¨æ§
- å¼ç®±å³ç¨çæ¨èç®æ³å®ç°ï¼æ éå¤æçæºå¨å¦ä¹ èæ¯
- 丰å¯ç示ä¾å模æ¿ï¼å¿«é䏿ååºç¨
- 详ç»çææ¡£å注éï¼ä¾¿äºçè§£åå®å¶
坿©å±æ§
- 模ååè®¾è®¡ï¼æäºæ©å±æ°çæ¨èç®æ³
- çµæ´»çé 置系ç»ï¼æ¯æåæ°è°ä¼åç®æ³ç»å
- æ å忥å£ï¼ä¾¿äºéæå°ç°æç³»ç»
ç§å¦æ§
- ä¸¥æ ¼çè¯ä¼°æ¡æ¶ï¼ç¡®ä¿æ¨èææçç§å¦æ§
- å¤ç»´åº¦è¯ä¼°ææ ï¼å ¨é¢è¯ä¼°æ¨èç³»ç»æ§è½
- å¯è§ååæï¼ç´è§å±ç¤ºæ¨èç»æåè¯ä¼°ææ
éè¿æ¨èç³»ç»åææè½ï¼ç¨æ·å¯ä»¥å¿«éæå»ºä¸ä¸çæºè½æ¨èç³»ç»ï¼æ·±å ¥çè§£æ¨èç®æ³åçï¼ææ¡æ¨èç³»ç»è¯ä¼°æ¹æ³ï¼å¹¶å°æ¨èææ¯åºç¨å°å®é ä¸å¡åºæ¯ä¸ã