250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- XAI
- youtube data
- top_k
- session 유지
- Airflow
- Counterfactual Explanations
- BigQuery
- 상관관계
- flask
- hadoop
- correlation
- UDF
- Retry
- TensorFlow
- airflow subdag
- GCP
- tensorflow text
- requests
- subdag
- API Gateway
- grad-cam
- integrated gradient
- gather_nd
- 유튜브 API
- 공분산
- chatGPT
- API
- login crawling
- spark udf
- GenericGBQException
Archives
- Today
- Total
데이터과학 삼학년
LightGBM Ranker 본문
반응형
LightGBM Ranker: 고급 랭킹 모델을 활용한 순위 예측
- 랭킹 문제는 검색 엔진, 추천 시스템, 광고 시스템 등 다양한 분야에서 중요
- 데이터 포인트의 순서를 예측하는 이 문제는 분류나 회귀와는 다른 접근이 필요함
LightGBM Ranker
- LightGBM은 Microsoft가 개발한 고성능 그라디언트 부스팅 프레임워크로, LightGBM Ranker는 그 중에서도 랭킹 문제를 해결하기 위해 설계된 모델
- 랭킹 문제는 데이터 포인트를 특정 기준에 따라 정렬하는 문제로, 검색 결과 정렬, 추천 시스템, 클릭 예측 등 다양한 분야에서 활용
랭킹 문제 정의
- 쿼리: 순위를 예측하고자 하는 개별 그룹을 의미합니다. 예를 들어, 검색 쿼리나 사용자 세션 등이 될 수 있습니다.
- 아이템: 각 쿼리에 속하는 개별 데이터 포인트를 의미합니다. 예를 들어, 검색 결과 페이지의 개별 문서나 추천 상품 등이 될 수 있습니다.
랭킹 문제는 보통 학습 데이터에 쿼리와 아이템, 그리고 각 아이템의 점수(랭크)를 포함
LightGBM Ranker 사용법
1. 데이터 준비
- LightGBM Ranker를 사용하려면 데이터를 쿼리 그룹으로 나누어야 함
- 각 쿼리는 그룹 ID를 가져야 하며, 아이템들은 해당 그룹 내에서 순위가 매겨짐
import lightgbm as lgb
import pandas as pd
# 예시 데이터 준비
data = {
'query_id': [1, 1, 1, 2, 2, 3, 3, 3, 3],
'feature1': [0.1, 0.2, 0.3, 0.2, 0.1, 0.4, 0.5, 0.6, 0.7],
'feature2': [1, 3, 2, 3, 2, 4, 5, 1, 2],
'label': [3, 2, 1, 3, 1, 2, 3, 1, 4]
}
df = pd.DataFrame(data)
# 특성 및 라벨
X = df[['feature1', 'feature2']]
y = df['label']
group = df.groupby('query_id').size().to_frame('size')['size'].to_numpy()
2. 모델 학습
- LightGBM Ranker는 rank_objective를 사용하여 랭킹 문제를 해결
# Dataset 생성
lgb_train = lgb.Dataset(X, y, group=group)
# 파라미터 설정
params = {
'objective': 'lambdarank',
'metric': 'ndcg',
'boosting': 'gbdt',
'num_leaves': 31,
'learning_rate': 0.05,
'feature_fraction': 0.9
}
# 모델 학습
gbm = lgb.train(params, lgb_train, num_boost_round=100)
3. 예측
- 학습된 모델을 사용하여 새로운 데이터의 랭킹을 예측
# 예측 데이터 준비
X_test = pd.DataFrame({
'feature1': [0.15, 0.25, 0.35],
'feature2': [1, 2, 3]
})
# 예측 수행
y_pred = gbm.predict(X_test)
print("Predicted ranks:", y_pred)
4. 평가
- 랭킹 모델의 성능을 평가하기 위해 NDCG (Normalized Discounted Cumulative Gain)와 같은 지표를 사용
- LightGBM은 이러한 지표를 기본적으로 제공
728x90
반응형
LIST
'Recommendation System' 카테고리의 다른 글
추천 메트릭 :: Precision@k, Recall@k, MAP, MRR, NDCG , AP, F1-Score, Coverage, Diversity, Novelty (0) | 2024.08.28 |
---|---|
추천 Ranking 알고리즘 관련 metric :: NDCG (0) | 2024.08.23 |
추천 시스템 평가(precision@k, recall@k) (0) | 2024.06.28 |
RECSIM: A Configurable Simulation Platform for Recommender System 기초 개념 (0) | 2021.05.03 |
Recommendation Systems (0) | 2020.08.10 |
Comments