Python으로 Click Prediction 모델 만들기

Click Prediction 모델 만들기

Click Prediction 모델은 사용자가 클릭할 가능성이 높은 광고를 예측하는 기계학습 모델을 말합니다.

광고 뿐만 아니라 쇼핑몰의 상품배열이나 노출, 검색 결과의 노출 여부나 랭킹에서도 많이 쓰입니다.

네이버쇼핑, 쿠팡 같은 이커머스(e-commerce)에서도 매우 중요하게 쓰이는 기계학습 콤포넌트입니다.

Python을 사용하여 Click Prediction 모델을 만드는 간단한 예제입니다.

데이터 불러오기

Click Prediction 모델을 만들기 위해서는 먼저 데이터를 불러와야 합니다. 이번 예제에서는 Kaggle에서 제공하는 Click Prediction 데이터를 사용하겠습니다. 데이터는 다음과 같은 링크에서 다운로드할 수 있습니다: https://www.kaggle.com/c/avazu-ctr-prediction/data.

import pandas as pd

data = pd.read_csv('train.csv', nrows=100000)

여기서 train.csv는 데이터 파일의 경로를 의미합니다. nrows 파라미터를 사용하여 데이터의 일부분만 불러올 수 있습니다.

데이터 전처리

모델을 만들기 위해서는 데이터를 전처리해야 합니다. 이번 예제에서는 데이터에서 필요한 feature만 추출하고, 범주형 변수를 One-Hot Encoding하는 것으로 전처리를 마칩니다.

features = ['C1', 'banner_pos', 'site_category', 'app_category', 'device_type', 'device_conn_type']
data = pd.get_dummies(data[features])

데이터에서 features에 해당하는 feature만 추출하고, pd.get_dummies() 함수를 사용하여 범주형 변수를 One-Hot Encoding합니다.

모델 학습

전처리된 데이터를 기반으로 모델을 학습합니다. 이번 예제에서는 LightGBM이라는 머신러닝 라이브러리를 사용하여 모델을 학습합니다.

import lightgbm as lgb

X = data.drop('click', axis=1)
y = data['click']

train_data = lgb.Dataset(X, label=y)

params = {
    'objective': 'binary',
    'metric': 'auc',
    'boosting_type': 'gbdt',
}

model = lgb.train(params, train_data, num_boost_round=100)

전처리된 데이터에서 click feature를 제외한 나머지 feature를 X에 저장하고, click feature를 y에 저장합니다. 그리고 lgb.Dataset() 함수를 사용하여 학습 데이터를 생성합니다. 생성된 학습 데이터를 기반으로 모델을 학습합니다.

모델 평가

학습된 모델을 평가합니다. 이번 예제에서는 AUC(Area Under the Curve)를 사용하여 모델을 평가합니다.

from sklearn.metrics import roc_auc_score

y_pred = model.predict(X)
roc_auc_score(y, y_pred)

AUC가 높을수록 모델의 성능이 좋다는 것을 의미합니다.

모델 예측

학습된 모델을 사용하여 Click Prediction을 수행합니다.

test_data = pd.read_csv('test.csv')
test_data = pd.get_dummies(test_data[features])

y_pred = model.predict(test_data)

test.csv 파일을 불러와서 전처리를 한 후, 학습된 모델로 Click Prediction을 수행합니다.

이상으로 Python을 사용하여 Click Prediction 모델을 만드는 예제를 마치겠습니다.

이 예제를 참고하여, 다양한 Click Prediction 만들어 볼 수 있겠습니다.

그리고, 이 예제에서는 LightGBM 라이브러리를 사용하여 모델을 학습하였지만, 다른 머신러닝 라이브러리 또한 사용할 수 있습니다. 이를 통해, 다양한 머신러닝 라이브러리를 비교하여 어떤 라이브러리가 Click Prediction 모델에 더 적합한지 알아볼 수 있습니다.

Author: 떰학

답글 남기기