import os import pandas as pd import xgboost as xgb from xgboost.sklearn import XGBClassifier # 1. 模型加载 model = XGBClassifier() booster = xgb.Booster() booster.load_model('./data/ad_xgb.model') model._Booster = booster # 2. 预测:ad_status = 0, 不出广告 df_0 = pd.read_csv('./data/predict_data/predict_data_0.csv') columns_0 = df_0.columns.values.tolist() y_pred_proba_0 = model.predict_proba(df_0[columns_0[2:]]) df_0['y_0'] = y_pred_proba_0 # 3. 预测:ad_status = 1, 不出广告 df_1 = pd.read_csv('./data/predict_data/predict_data_1.csv') columns_1 = df_1.columns.values.tolist() y_pred_proba_1 = model.predict_proba(df_1[columns_1[2:]]) df_0['y_1'] = y_pred_proba_1 # 4. merge 结果 res_df = pd.merge(df_0, df_1, how='left', on=['apptype', 'mid', 'videoid']) print(res_df.head()) res_df['res_predict'] = res_df['y_0'] - res_df['y_1']