ltv-predictor
13
总安装量
10
周安装量
#25217
全站排名
安装命令
npx skills add https://github.com/liangdabiao/claude-data-analysis-ultra-main --skill ltv-predictor
Agent 安装分布
antigravity
8
claude-code
7
gemini-cli
6
codex
6
opencode
6
Skill 文档
客æ·çå½å¨æä»·å¼é¢æµæè½
ä¸ä¸ªåºäºãæ°æ®åæåå¥åè¯ã第3课ç论çèªå¨åLTV颿µåæå·¥å ·ï¼æä¾ä»RFMç¹å¾å·¥ç¨å°åå½å»ºæ¨¡ç宿´è§£å³æ¹æ¡ã
â¨ æ ¸å¿åè½
ð RFMç¹å¾å·¥ç¨
- Rå¼è®¡ç®: æè¿ä¸æ¬¡æ¶è´¹æ¶é´é´éåæ
- Få¼è®¡ç®: æ¶è´¹é¢çç»è®¡ä¸åæ
- Må¼è®¡ç®: æ¶è´¹é颿±æ»ä¸åå±
- æ¶é´çªå£: åºäºçææ°æ®é¢æµé¿æä»·å¼
- 客æ·å群: èªå¨å客æ·ä»·å¼åå±
ð¤ åå½ç®æ³å»ºæ¨¡
- 线æ§åå½: åºç¡åå½åææ¨¡å
- éæºæ£®æ: 髿§è½éæå¦ä¹ ç®æ³
- 模å对æ¯: å¤ç®æ³æ§è½è¯ä¼°æ¯è¾
- 交åéªè¯: å¯é çæ¨¡åæ§è½è¯ä¼°
- è¶ åæ°ä¼å: èªå¨å模åè°å
ð LTV颿µå¼æ
- æ¶é´åºå颿µ: åºäºå岿°æ®é¢æµæªæ¥LTV
- æ¹é颿µ: æ¯æå¤§è§æ¨¡å®¢æ·æ¹éå¤ç
- 置信åºé´: æä¾é¢æµç»æçä¸ç¡®å®æ§è¯ä¼°
- ç¹å¾éè¦æ§: è§£éå½±åLTVçå ³é®å ç´
ð å¯è§ååæ
- RFMåå¸å¾: 客æ·ä»·å¼åå¸å¯è§å
- 颿µææå¯¹æ¯: å®é å¼vs颿µå¼æ£ç¹å¾
- ç¹å¾éè¦æ§: å ³é®ç¹å¾è´¡ç®åº¦åæ
- æ¨¡åæ§è½å¯¹æ¯: å¤ç®æ³ææå¯¹æ¯å¾
ð ä¸ä¸æ¥å
- HTMLæ¥å: 交äºå¼åææ¥å
- Markdownææ¡£: è½»éçº§åææ»ç»
- Excel导åº: 便äºä¸å¡é¨é¨ä½¿ç¨
- APIæ¥å£: æ¯æç³»ç»éæè°ç¨
ð å¿«éå¼å§
1. ç¯å¢å®è£
# å®è£
åºç¡ä¾èµ
pip install pandas numpy scikit-learn matplotlib seaborn
# å®è£
å¯éä¾èµï¼ç¨äºé«çº§åè½ï¼
pip install xgboost lightgbm joblib openpyxl
2. åºç¡ä½¿ç¨
from scripts.ltv_predictor import LTVPredictor
from scripts.data_processor import DataProcessor
# 1. åå§åå¤çå¨
processor = DataProcessor()
predictor = LTVPredictor()
# 2. å è½½åé¢å¤çæ°æ®
data = processor.load_order_data('your_orders.csv')
rfm_data = processor.calculate_rfm_features(data,
feature_period='3M',
prediction_period='12M')
# 3. è®ç»LTV颿µæ¨¡å
model_results = predictor.train_models(rfm_data)
# 4. è¿è¡LTV颿µ
predictions = predictor.predict_ltv(new_customer_data)
# 5. çæåææ¥å
report_path = predictor.generate_report(predictions, 'ltv_analysis_report.html')
3. å¿«é示ä¾
from scripts.quick_analysis import quick_ltv_analysis
# ä¸é®å®æå®æ´LTVåææµç¨
results = quick_ltv_analysis(
order_data_path='ecommerce_orders.csv',
feature_period_months=3,
prediction_period_months=12,
output_dir='ltv_analysis_results'
)
print(f"æä½³æ¨¡åRÂ²åæ°: {results['best_model_r2']:.4f}")
print(f"颿µå®¢æ·æ°: {len(results['predictions'])}")
print(f"åææ¥å: {results['report_path']}")
ð æè½ç»æ
ltv-predictor/
âââ scripts/ # æ ¸å¿åè½æ¨¡å
â âââ data_processor.py # æ°æ®é¢å¤çåRFM计ç®
â âââ ltv_predictor.py # LTV颿µæ ¸å¿å¼æ
â âââ regression_models.py # åå½ç®æ³å®ç°
â âââ visualizer.py # å¯è§åçæå¨
â âââ report_generator.py # æ¥åçæå¨
âââ examples/ # 示ä¾èæ¬
â âââ ecommerce_ltv_analysis.py # çµå宿´åæç¤ºä¾
â âââ quick_ltv_prediction.py # å¿«é颿µç¤ºä¾
â âââ model_comparison.py # 模å对æ¯ç¤ºä¾
âââ data/ # ç¤ºä¾æ°æ®
â âââ sample_orders.csv # 示ä¾è®¢åæ°æ®
âââ tests/ # æµè¯èæ¬
â âââ test_rfm_analysis.py # RFMåææµè¯
â âââ test_prediction.py # 颿µåè½æµè¯
âââ SKILL.md # æè½è¯´æææ¡£
âââ README.md # 使ç¨è¯´æ
ð¯ åºç¨åºæ¯
ð çµåé¶å®
- 客æ·ä»·å¼åå±: åºäºLTV对客æ·è¿è¡é/é¶/éçåå±
- è¥éé¢ç®åé : æ ¹æ®LTV颿µç»æä¼åè¥éæå ¥
- åºå颿µ: åºäºå®¢æ·ä»·å¼é¢æµè¿è¡åååºåè§å
- 个æ§åæ¨è: 为é«ä»·å¼å®¢æ·æä¾ç²¾åæ¨è
ð° éèæå¡
- ä¿¡è´·è¯ä¼°: ç»åLTVè¿è¡å®¢æ·ä¿¡ç¨è¯çº§
- 产å设计: 为ä¸åä»·å¼å®¢æ·è®¾è®¡å·®å¼å产å
- 客æ·ç»´æ¤: è¯å«é«ä»·å¼å®¢æ·è¿è¡éç¹ç»´æ¤
- é£é©æ§å¶: åºäºå®¢æ·ä»·å¼è¿è¡é£é©è¯ä¼°
ð¯ è¥éçç¥
- è·å®¢ææ¬åæ: 计ç®ä¸åæ¸ éçLTV/CACæ¯ç
- 客æ·çå½å¨æç®¡ç: å¶å®å ¨çå½å¨æè¥éçç¥
- å¤è´çæå: è¯å«ä½é¢å®¢æ·å¶å®æåçç¥
- å®¢æ·æ½å: 颿µæµå¤±é£é©å¶å®æ½åæ¹æ¡
âï¸ é ç½®é项
RFMåæé ç½®
config = {
'feature_period_months': 3, # ç¹å¾è®¡ç®æ¶é´çªå£ï¼æï¼
'prediction_period_months': 12, # 颿µæ¶é´çªå£ï¼æï¼
'r_weight': 0.2, # R弿é
'f_weight': 0.3, # F弿é
'm_weight': 0.5, # M弿é
'customer_segments': 5 # 客æ·å屿°é
}
模åè®ç»é ç½®
config = {
'test_size': 0.2, # æµè¯éæ¯ä¾
'cv_folds': 5, # 交åéªè¯ææ°
'random_state': 42, # éæºç§å
'enable_hyperparameter_tuning': True, # æ¯å¦è°å
'n_iter_search': 50, # è¶
åæ°æç´¢æ¬¡æ°
'scoring_metric': 'r2' # è¯ä¼°ææ
}
颿µé ç½®
config = {
'confidence_interval': 0.95, # 置信åºé´
'batch_size': 1000, # æ¹å¤ç大å°
'feature_importance_threshold': 0.01, # ç¹å¾éè¦æ§éå¼
'prediction_uncertainty': True # æ¯å¦è®¡ç®é¢æµä¸ç¡®å®æ§
}
ð æ°æ®æ ¼å¼è¦æ±
è®¢åæ°æ®æ ¼å¼
订åå·,产åç ,æ¶è´¹æ¥æ,产å说æ,æ°é,åä»·,ç¨æ·ç ,åå¸
536374,21258,2022-06-01 09:09,绿èusbå线å¨,32,10.95,15100,å京
536376,22114,2022-06-01 09:32,å 大ç·è£
Tæ¤,48,50.45,15291,䏿µ·
å¿ éåæ®µ:
ç¨æ·ç : 客æ·å¯ä¸æ è¯æ¶è´¹æ¥æ: è´ä¹°æ¶é´ï¼æ¯æå¤ç§æ¥ææ ¼å¼ï¼æ°é: è´ä¹°æ°éåä»·: åååä»·
å¯éåæ®µ:
订åå·: 订åå¯ä¸æ è¯äº§åç : ååæ è¯äº§å说æ: ååæè¿°åå¸: 客æ·åå¸ä¿¡æ¯
ð§ª æ¨¡åæ§è½åºå
åºäºç¬¬3è¯¾å®æµæ°æ®:
- æ°æ®è§æ¨¡: 37,060æ¡è®¢åè®°å½ï¼370个ç¬ç«å®¢æ·
- æ¶é´çªå£: 3ä¸ªææ°æ®é¢æµ12个æLTV
- 线æ§åå½: R² = 0.4778 (æµè¯é)
- éæºæ£®æ: R² = 0.5899 (æµè¯é)
- æ§è½æå: 23.4% (ç¸å¯¹çº¿æ§åå½)
- ç¹å¾éè¦æ§: Må¼(éé¢)è´¡ç®78.53%ï¼Få¼(é¢ç)è´¡ç®16.32%
ð§ é«çº§åè½
èªå¨ç¹å¾å·¥ç¨
- æ¶é´åºåç¹å¾çæ
- æ»å¨çªå£è®¡ç®
- å£èæ§æ¨¡å¼è¯å«
- å¼å¸¸å¼æ£æµåå¤ç
模åå¯è§£éæ§
- SHAPå¼åæ
- é¨åä¾èµå¾
- ç¹å¾äº¤äºä½ç¨
- 颿µè·¯å¾è¿½è¸ª
ä¸å¡æ´å¯
- 客æ·ä»·å¼è¶å¿åæ
- 产åå ³è度åæ
- å°åä»·å¼åå¸
- æ¶é´ä»·å¼æ¨¡å¼
ð æä½³å®è·µ
æ°æ®è´¨é
- ç¡®ä¿è®¢åæ°æ®æ¶é´è¿ç»æ§
- å¤ç缺失å¼åå¼å¸¸å¼
- éªè¯å®¢æ·æ è¯å¯ä¸æ§
- æ£æ¥æ°æ®æ¶é´è¦ç度
模åéæ©
- å°æ°æ®éä¼å 使ç¨çº¿æ§åå½
- å¤§æ°æ®éæ¨èéæºæ£®ææXGBoost
- æ³¨éæ¨¡åå¯è§£éæ§æ¶éæ©çº¿æ§æ¨¡å
- 追æ±é¢æµç²¾åº¦æ¶ä½¿ç¨éæå¦ä¹
ä¸å¡åºç¨
- 宿鿰è®ç»æ¨¡åï¼å»ºè®®æ¯æï¼
- ç»åä¸å¡è§åè°æ´é¢æµç»æ
- å»ºç«æ¨¡åçæ§åé¢è¦æºå¶
- æç»è·è¸ªé¢æµåç¡®æ§
ð æ´æ°æ¥å¿
v1.0.0 (2025-01-19)
- åå§çæ¬åå¸
- 宿´çRFMåæåè½
- 线æ§åå½åéæºæ£®æç®æ³
- åºç¡å¯è§å忥ååè½
- çµåè®¢åæ°æ®æ¯æ
æªæ¥è®¡å
- æ¯ææ´å¤åå½ç®æ³ï¼XGBoostãLightGBMï¼
- å¢å 深度å¦ä¹ 模å
- 宿¶é¢æµAPI
- æ´å¤è¡ä¸æ°æ®æ¨¡æ¿
- èªå¨å模åé¨ç½²
ð¤ è´¡ç®æå
欢è¿è´¡ç®ä»£ç ãæ¥åé®é¢ææåºæ¹è¿å»ºè®®ï¼
- Fork 项ç®
- å建åè½åæ¯
- æäº¤æ´æ¹
- åèµ· Pull Request
ð 许å¯è¯
æ¬é¡¹ç®éç¨ MIT 许å¯è¯ã
ð è´è°¢
- ãæ°æ®åæåå¥åè¯ãæä¾çç论åºç¡
- Scikit-learnæä¾çæºå¨å¦ä¹ ç®æ³
- PandasåNumPyæä¾çæ°æ®å¤çè½å
- æ°æ®ç§å¦ç¤¾åºçæ¯æååé¦
éè¿è¿ä¸ªæè½ï¼æ¨å¯ä»¥ï¼ â å¿«éè¿è¡å®¢æ·RFMåæ â æå»ºåç¡®çLTV颿µæ¨¡å â è·å¾å¯è§£éçä¸å¡æ´å¯ â çæä¸ä¸çåææ¥å â æ¯ææ°æ®é©±å¨çä¸å¡å³ç