Your Goal: Predict the purchases of EVs
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy.optimize import minimize
from sklearn.model_selection import train_test_split, StratifiedKFold, KFold
from sklearn.decomposition import PCA, TruncatedSVD
from sklearn.ensemble import RandomForestClassifier
from sklearn.feature_selection import SelectKBest, chi2, mutual_info_classif
from sklearn.linear_model import LinearRegression, LogisticRegression, Ridge, Lasso
from sklearn.metrics import (
accuracy_score, f1_score, precision_score, recall_score,
mean_absolute_error, mean_squared_error, r2_score,
root_mean_squared_error, roc_auc_score
)
from sklearn.naive_bayes import GaussianNB
from sklearn.neighbors import KNeighborsClassifier, KNeighborsRegressor
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import LabelEncoder, OrdinalEncoder, StandardScaler
from sklearn.svm import SVC, SVR
from sklearn import svm
import xgboost
import lightgbm
import catboost
import torch
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim
from imblearn.over_sampling import SMOTE
import optuna
import shap
import warnings
warnings.filterwarnings("ignore")
SEED = 42
np.random.seed(SEED)
c:\Users\user\miniconda3\Lib\site-packages\tqdm\auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html from .autonotebook import tqdm as notebook_tqdm
sample_submission = pd.read_csv('sample_submission.csv')
train = pd.read_csv('train.csv')
test = pd.read_csv('test.csv')
train.head()
| id | Age | Annual_Income_USD | Daily_Commute_km | Number_of_Cars_Owned | Charging_Stations_Near_Home | Charging_Stations_Near_Work | Environmental_Concern_Level | Gender | City_Type | Current_Car_Type | Home_Charging_Possible | Subsidy_Available | Range_Anxiety_Level | Will_Buy_EV | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 66 | 92887.0 | 23.4 | 2 | 3 | 7 | 1.0 | Male | Suburban | Sedan | Yes | No | Low | No |
| 1 | 1 | 38 | 30000.0 | 5.0 | 1 | 2 | 2 | 4.0 | Male | Rural | SUV | Yes | No | Low | No |
| 2 | 2 | 26 | 94389.0 | 36.8 | 1 | 8 | 15 | 5.0 | Female | Urban | Sedan | No | Yes | Low | Yes |
| 3 | 3 | 66 | 73580.0 | 23.7 | 2 | 6 | 9 | 3.0 | Male | Suburban | Hatchback | Yes | No | Low | No |
| 4 | 4 | 54 | 57898.0 | 50.8 | 1 | 2 | 3 | 3.0 | Male | Suburban | Hatchback | Yes | No | Low | No |
test_ids = test['id']
train = train.drop(columns=['id'])
test = test.drop(columns=['id'])
target = 'Will_Buy_EV'
train.info()
<class 'pandas.core.frame.DataFrame'> RangeIndex: 668665 entries, 0 to 668664 Data columns (total 14 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Age 668665 non-null int64 1 Annual_Income_USD 668665 non-null float64 2 Daily_Commute_km 668665 non-null float64 3 Number_of_Cars_Owned 668665 non-null int64 4 Charging_Stations_Near_Home 668665 non-null int64 5 Charging_Stations_Near_Work 668665 non-null int64 6 Environmental_Concern_Level 668665 non-null float64 7 Gender 668665 non-null object 8 City_Type 668665 non-null object 9 Current_Car_Type 668665 non-null object 10 Home_Charging_Possible 668665 non-null object 11 Subsidy_Available 668665 non-null object 12 Range_Anxiety_Level 668665 non-null object 13 Will_Buy_EV 668665 non-null object dtypes: float64(3), int64(4), object(7) memory usage: 71.4+ MB
train.isnull().sum()
Age 0 Annual_Income_USD 0 Daily_Commute_km 0 Number_of_Cars_Owned 0 Charging_Stations_Near_Home 0 Charging_Stations_Near_Work 0 Environmental_Concern_Level 0 Gender 0 City_Type 0 Current_Car_Type 0 Home_Charging_Possible 0 Subsidy_Available 0 Range_Anxiety_Level 0 Will_Buy_EV 0 dtype: int64
for col in train.columns:
if col != target and train[col].dtype in ['int64', 'float64']:
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
train[col].hist(bins=30)
plt.title(f'Histogram of {col}')
plt.subplot(1, 2, 2)
train.boxplot(column=col)
plt.title(f'Boxplot of {col}')
plt.show()
Note: some people do not commute and some people earn significantly less than others. EVs are not necessary if your commute is short, and they can be considered a luxury. Let's ignore them for the exploration of the data.
train.columns
Index(['Age', 'Annual_Income_USD', 'Daily_Commute_km', 'Number_of_Cars_Owned',
'Charging_Stations_Near_Home', 'Charging_Stations_Near_Work',
'Environmental_Concern_Level', 'Gender', 'City_Type',
'Current_Car_Type', 'Home_Charging_Possible', 'Subsidy_Available',
'Range_Anxiety_Level', 'Will_Buy_EV'],
dtype='object')
train["Annual_Income_USD"].describe()
count 668665.000000 mean 84769.266989 std 28648.029042 min 30000.000000 25% 67376.000000 50% 84880.000000 75% 102753.000000 max 188549.000000 Name: Annual_Income_USD, dtype: float64
# Let's filter the data to remove outliers based on domain knowledge
# train = train[train["Daily_Commute_km"] > 10]
# train = train[train["Annual_Income_USD"] > 50000]
train["Daily_Commute_km"].describe()
count 668665.000000 mean 32.158298 std 18.730474 min 5.000000 25% 17.200000 50% 33.600000 75% 47.400000 max 98.700000 Name: Daily_Commute_km, dtype: float64
train["Annual_Income_USD"].describe()
count 668665.000000 mean 84769.266989 std 28648.029042 min 30000.000000 25% 67376.000000 50% 84880.000000 75% 102753.000000 max 188549.000000 Name: Annual_Income_USD, dtype: float64
for col in train.columns:
if col != target and train[col].dtype in ['int64', 'float64']:
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
train[col].hist(bins=30)
plt.title(f'Histogram of {col}')
plt.subplot(1, 2, 2)
train.boxplot(column=col)
plt.title(f'Boxplot of {col}')
plt.show()
Now we have some nice data that follows the normal distribution. Let's spin up a model to see what kind of results we can get thus far.
train['Charging_Stations_Near_Work'].value_counts().plot(kind='bar', title='Charging Stations Near Work Distribution')
<Axes: title={'center': 'Charging Stations Near Work Distribution'}, xlabel='Charging_Stations_Near_Work'>
train['Charging_Stations_Near_Home'].value_counts().plot(kind='bar', title='Charging Stations Near Work Distribution')
<Axes: title={'center': 'Charging Stations Near Work Distribution'}, xlabel='Charging_Stations_Near_Home'>
def add_features(df):
df['Total_charging_stations'] = df['Charging_Stations_Near_Home'] + df['Charging_Stations_Near_Work']
df['Income_per_commute_km'] = df['Annual_Income_USD'] / df['Daily_Commute_km']
df['Cars_per_10k_income'] = df['Number_of_Cars_Owned'] / (df['Annual_Income_USD'] / 10000)
df['Age_group'] = pd.cut(df['Age'], bins=[0, 25, 35, 45, 55, 65, np.inf], labels=['<25', '25-34', '35-44', '45-54', '55-64', '65+']).astype(object)
df['High_env_concern'] = (df['Environmental_Concern_Level'] >= 4).astype(int)
# data-artifact features found via EDA (see value_counts/histogram of Annual_Income_USD)
df['income100_floor'] = np.floor(df['Annual_Income_USD'] / 100.0).astype(int)
df['income1000_floor'] = np.floor(df['Annual_Income_USD'] / 1000.0).astype(int)
df['commute_integer'] = np.floor(df['Daily_Commute_km']).astype(int)
df['concern_charging_index'] = df['Environmental_Concern_Level'] * df['Charging_Stations_Near_Home']
df['is_30k_spike'] = (df['Annual_Income_USD'] == 30000.0).astype(int)
df['downtown_office'] = ((df['Charging_Stations_Near_Work'] > 1) & (df['Charging_Stations_Near_Work'] < 9)).astype(int)
df['suburban_home'] = (df['Charging_Stations_Near_Home'] > 8).astype(int)
df['is_income_cliff'] = (df['Annual_Income_USD'] >= 169972).astype(int)
df['is_income_dead_zone'] = ((df['Annual_Income_USD'] >= 31003) & (df['Annual_Income_USD'] <= 41970)).astype(int)
df['is_env_hater'] = (df['Environmental_Concern_Level'] == 1).astype(int)
df['subsidy_eligible'] = ((df['Annual_Income_USD'] <= 30000) & (df['Environmental_Concern_Level'] >= 4)).astype(int)
df['subsidy_not_eligible'] = ((df['Annual_Income_USD'] >= 100000) & (df['Environmental_Concern_Level'] <= 2)).astype(int)
df['Rich_and_concerned'] = (df['Annual_Income_USD'] >= 100000) & (df['Environmental_Concern_Level'] >= 4).astype(int)
df['Young_and_concerned'] = (df['Age'] <= 30) & (df['Environmental_Concern_Level'] >= 4).astype(int)
df['Arithmetic_mean_income_commute'] = (df['Annual_Income_USD'] + df['Daily_Commute_km']) / 2
df['Geometric_mean_income_commute'] = np.sqrt(df['Annual_Income_USD'] * df['Daily_Commute_km'])
df['Environmental_Concern_to_Income_Ratio'] = df['Environmental_Concern_Level'] / (df['Annual_Income_USD'] + 1)
df['Subsidy_available_and_Home_Charging_and_High_Concern'] = ((df['Subsidy_Available'] == 'Yes') & (df['Home_Charging_Possible'] == 'Yes') & (df['Environmental_Concern_Level'] >= 4)).astype(int)
# interaction features built on the top SHAP-ranked columns
df['no_subsidy_no_charging'] = ((df['Subsidy_Available'] == 'No') & (df['Home_Charging_Possible'] == 'No')).astype(int)
df['young_high_concern'] = ((df['Age'] <= 30) & (df['Environmental_Concern_Level'] >= 4)).astype(int)
df['subsidy_and_charging_ready'] = ((df['Subsidy_Available'] == 'Yes') & (df['Home_Charging_Possible'] == 'Yes')).astype(int)
df['practical_enablers'] = (
(df['Subsidy_Available'] == 'Yes') &
(df['Environmental_Concern_Level'] >= 4) &
(df['Home_Charging_Possible'] == 'Yes')
).astype(int)
digit_cols = ['Age', 'Annual_Income_USD', 'Daily_Commute_km', 'Number_of_Cars_Owned',
'Charging_Stations_Near_Home', 'Charging_Stations_Near_Work']
for c in digit_cols:
for k in range(-1, 4):
df[f'{c}_digit{k}'] = (df[c].fillna(0) // (10 ** k) % 10).astype(int)
return df
train = add_features(train)
test = add_features(test)
# Dropped based on SHAP analysis: these had mean |SHAP| == 0.0 on the validation sample.
# Mostly digit-decomposition columns that are structurally always 0 -- either a
# sub-decimal digit (k < 0) of a column with no fractional part, or a digit position
# (k >= 0) beyond the column's actual magnitude range.
zero_shap_cols = [
'Age_digit-4', 'Age_digit-3', 'Age_digit-2', 'Age_digit-1', 'Age_digit2', 'Age_digit3',
'Number_of_Cars_Owned_digit1', 'Number_of_Cars_Owned_digit2', 'Number_of_Cars_Owned_digit3',
'Number_of_Cars_Owned_digit-1', 'Number_of_Cars_Owned_digit-2',
'Number_of_Cars_Owned_digit-3', 'Number_of_Cars_Owned_digit-4',
'Daily_Commute_km_digit2', 'Daily_Commute_km_digit3',
'Annual_Income_USD_digit-1', 'Annual_Income_USD_digit-2',
'Annual_Income_USD_digit-3', 'Annual_Income_USD_digit-4',
'Charging_Stations_Near_Home_digit2', 'Charging_Stations_Near_Home_digit3',
'Charging_Stations_Near_Work_digit-2', 'Charging_Stations_Near_Work_digit2',
'Charging_Stations_Near_Work_digit3',
'Environmental_Concern_Level_digit1', 'Environmental_Concern_Level_digit2',
'Environmental_Concern_Level_digit3', 'Environmental_Concern_Level_digit-1',
'Environmental_Concern_Level_digit-2', 'Environmental_Concern_Level_digit-3',
'Environmental_Concern_Level_digit-4',
]
# Dropped as redundant: income100_floor / income1000_floor / Annual_Income_USD_digit0-3
# already capture this information more granularly (confirmed via SHAP ranking).
redundant_flags = [
'is_30k_spike', 'is_income_cliff', 'is_income_dead_zone',
'downtown_office', 'suburban_home',
]
drop_cols = zero_shap_cols + redundant_flags
train = train.drop(columns=drop_cols, errors='ignore')
test = test.drop(columns=drop_cols, errors='ignore')
print(f"Dropped {len(drop_cols)} columns. Remaining columns: {train.shape[1]}")
Dropped 36 columns. Remaining columns: 51
train.head()
| Age | Annual_Income_USD | Daily_Commute_km | Number_of_Cars_Owned | Charging_Stations_Near_Home | Charging_Stations_Near_Work | Environmental_Concern_Level | Gender | City_Type | Current_Car_Type | ... | Daily_Commute_km_digit-1 | Daily_Commute_km_digit0 | Daily_Commute_km_digit1 | Number_of_Cars_Owned_digit0 | Charging_Stations_Near_Home_digit-1 | Charging_Stations_Near_Home_digit0 | Charging_Stations_Near_Home_digit1 | Charging_Stations_Near_Work_digit-1 | Charging_Stations_Near_Work_digit0 | Charging_Stations_Near_Work_digit1 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 66 | 92887.0 | 23.4 | 2 | 3 | 7 | 1.0 | Male | Suburban | Sedan | ... | 3 | 3 | 2 | 2 | 9 | 3 | 0 | 9 | 7 | 0 |
| 1 | 38 | 30000.0 | 5.0 | 1 | 2 | 2 | 4.0 | Male | Rural | SUV | ... | 9 | 5 | 0 | 1 | 9 | 2 | 0 | 9 | 2 | 0 |
| 2 | 26 | 94389.0 | 36.8 | 1 | 8 | 15 | 5.0 | Female | Urban | Sedan | ... | 7 | 6 | 3 | 1 | 9 | 8 | 0 | 9 | 5 | 1 |
| 3 | 66 | 73580.0 | 23.7 | 2 | 6 | 9 | 3.0 | Male | Suburban | Hatchback | ... | 6 | 3 | 2 | 2 | 9 | 6 | 0 | 9 | 9 | 0 |
| 4 | 54 | 57898.0 | 50.8 | 1 | 2 | 3 | 3.0 | Male | Suburban | Hatchback | ... | 7 | 0 | 5 | 1 | 9 | 2 | 0 | 9 | 3 | 0 |
5 rows × 51 columns
freq_encode_cols = ['Gender', 'City_Type', 'Current_Car_Type', 'Home_Charging_Possible',
'Subsidy_Available', 'Range_Anxiety_Level', 'Age_group',
'income100_floor', 'income1000_floor', 'commute_integer']
def frequency_encode(train_col, test_col):
freq_map = train_col.value_counts(normalize=True)
train_fe = train_col.map(freq_map).astype(float).fillna(0.0)
test_fe = test_col.map(freq_map).astype(float).fillna(0.0)
return train_fe, test_fe
for col in freq_encode_cols:
train[f'{col}_freq'], test[f'{col}_freq'] = frequency_encode(train[col], test[col])
train[target] = train[target].map({'No': 0, 'Yes': 1})
cat_cols = ['Gender', 'City_Type', 'Current_Car_Type', 'Home_Charging_Possible',
'Subsidy_Available', 'Range_Anxiety_Level', 'Age_group']
def target_encode(train_col, train_target, test_col, n_splits=5, smoothing=10, seed=SEED):
global_mean = train_target.mean()
oof = pd.Series(index=train_col.index, dtype=float)
kf = KFold(n_splits=n_splits, shuffle=True, random_state=seed)
for tr_idx, val_idx in kf.split(train_col):
fold_df = pd.DataFrame({'cat': train_col.iloc[tr_idx], 'y': train_target.iloc[tr_idx]})
stats = fold_df.groupby('cat')['y'].agg(['mean', 'count'])
smoothed = (stats['mean'] * stats['count'] + global_mean * smoothing) / (stats['count'] + smoothing)
oof.iloc[val_idx] = train_col.iloc[val_idx].map(smoothed).fillna(global_mean).values
full_df = pd.DataFrame({'cat': train_col, 'y': train_target})
full_stats = full_df.groupby('cat')['y'].agg(['mean', 'count'])
full_smoothed = (full_stats['mean'] * full_stats['count'] + global_mean * smoothing) / (full_stats['count'] + smoothing)
test_encoded = test_col.map(full_smoothed).fillna(global_mean)
return oof, test_encoded
for col in cat_cols:
train[col], test[col] = target_encode(train[col], train[target], test[col])
# Drop redundant features: for every pair of numeric features whose absolute correlation
# exceeds the threshold, keep the one more correlated with the target and drop the other.
# Correlations are computed on train only and the same columns are dropped from test.
# (Features strongly correlated with the *target* are deliberately kept.)
CORR_THRESHOLD = 0.95
def find_redundant_features(df, target, threshold=CORR_THRESHOLD):
feats = df.drop(columns=[target]).select_dtypes(include=['number', 'bool']).astype(float)
corr = feats.corr().abs()
target_corr = feats.corrwith(df[target]).abs().fillna(0.0)
to_drop = {}
cols = corr.columns
for i, a in enumerate(cols):
if a in to_drop:
continue
for b in cols[i + 1:]:
if b in to_drop or not corr.loc[a, b] > threshold:
continue
drop, keep = (a, b) if target_corr[a] < target_corr[b] else (b, a)
to_drop[drop] = (keep, corr.loc[a, b])
if drop == a:
break
return to_drop
redundant_cols = find_redundant_features(train, target)
for dropped, (kept, r) in redundant_cols.items():
print(f"drop {dropped:<45} (|r|={r:.3f} with {kept})")
train = train.drop(columns=list(redundant_cols))
test = test.drop(columns=list(redundant_cols))
print(f"Dropped {len(redundant_cols)} redundant features. Remaining columns: {train.shape[1]}")
X = train.drop(columns=[target])
y = train[target]
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)
def objective(trial):
params = {
'n_estimators': trial.suggest_int('n_estimators', 100, 2500),
'max_depth': trial.suggest_int('max_depth', 3, 15),
'learning_rate': trial.suggest_float('learning_rate', 0.01, 0.3, log=True),
'subsample': trial.suggest_float('subsample', 0.3, 1.0),
'colsample_bytree': trial.suggest_float('colsample_bytree', 0.3, 1.0),
'min_child_weight': trial.suggest_int('min_child_weight', 1, 10),
'gamma': trial.suggest_float('gamma', 0, 5),
'reg_alpha': trial.suggest_float('reg_alpha', 1e-8, 10.0, log=True),
'reg_lambda': trial.suggest_float('reg_lambda', 1e-8, 10.0, log=True),
}
model = xgboost.XGBClassifier(
**params,
random_state=SEED,
eval_metric='auc',
early_stopping_rounds=50,
tree_method='hist',
device='cuda',
)
model.fit(
X_train, y_train,
eval_set=[(X_val, y_val)],
verbose=False
)
val_preds = model.predict_proba(X_val)[:, 1]
return roc_auc_score(y_val, val_preds)
study = optuna.create_study(direction='maximize')
study.optimize(objective, n_trials=30, show_progress_bar=True)
print("Best validation AUC:", study.best_value)
print("Best params:", study.best_params)
[I 2026-09-17 17:03:24,277] A new study created in memory with name: no-name-b8733963-e78d-4807-bda7-657d1c278d34 Best trial: 0. Best value: 0.94357: 3%|â–Ž | 1/30 [00:19<09:13, 19.09s/it]
[I 2026-09-17 17:03:43,376] Trial 0 finished with value: 0.9435702812807073 and parameters: {'n_estimators': 1542, 'max_depth': 7, 'learning_rate': 0.015451810954608512, 'subsample': 0.45795179689476484, 'colsample_bytree': 0.7696743250973795, 'min_child_weight': 1, 'gamma': 2.8412515198097243, 'reg_alpha': 6.276825394126937e-08, 'reg_lambda': 3.4226340715597235e-07}. Best is trial 0 with value: 0.9435702812807073.
Best trial: 0. Best value: 0.94357: 7%|â–‹ | 2/30 [00:23<04:54, 10.53s/it]
[I 2026-09-17 17:03:47,917] Trial 1 finished with value: 0.9434004836079801 and parameters: {'n_estimators': 1350, 'max_depth': 4, 'learning_rate': 0.13871903294992882, 'subsample': 0.528540284153721, 'colsample_bytree': 0.8366791868898877, 'min_child_weight': 8, 'gamma': 2.625496409468462, 'reg_alpha': 0.00016814108982346116, 'reg_lambda': 0.00515627531992009}. Best is trial 0 with value: 0.9435702812807073.
Best trial: 0. Best value: 0.94357: 10%|â–ˆ | 3/30 [00:43<06:42, 14.92s/it]
[I 2026-09-17 17:04:08,069] Trial 2 finished with value: 0.9430573112815783 and parameters: {'n_estimators': 2295, 'max_depth': 4, 'learning_rate': 0.012567308290720077, 'subsample': 0.3680560549750976, 'colsample_bytree': 0.4094603694986985, 'min_child_weight': 9, 'gamma': 2.3401865310446675, 'reg_alpha': 0.0001003785062760565, 'reg_lambda': 1.2931663559248263}. Best is trial 0 with value: 0.9435702812807073.
Best trial: 0. Best value: 0.94357: 13%|█▎ | 4/30 [00:52<05:19, 12.29s/it]
[I 2026-09-17 17:04:16,320] Trial 3 finished with value: 0.9415090230451185 and parameters: {'n_estimators': 132, 'max_depth': 15, 'learning_rate': 0.0700235256681548, 'subsample': 0.7036273154142215, 'colsample_bytree': 0.9596635908825528, 'min_child_weight': 9, 'gamma': 0.3513336185891919, 'reg_alpha': 4.384133528914626e-05, 'reg_lambda': 1.3606826971387544e-05}. Best is trial 0 with value: 0.9435702812807073.
Best trial: 4. Best value: 0.943868: 17%|█▋ | 5/30 [00:59<04:28, 10.73s/it]
[I 2026-09-17 17:04:24,275] Trial 4 finished with value: 0.9438676208205324 and parameters: {'n_estimators': 2014, 'max_depth': 5, 'learning_rate': 0.05569500299184322, 'subsample': 0.6424302075458737, 'colsample_bytree': 0.6664036590431112, 'min_child_weight': 4, 'gamma': 1.933164329606759, 'reg_alpha': 0.03688267275887224, 'reg_lambda': 1.6275259968602678}. Best is trial 4 with value: 0.9438676208205324.
Best trial: 4. Best value: 0.943868: 20%|██ | 6/30 [01:04<03:27, 8.65s/it]
[I 2026-09-17 17:04:28,896] Trial 5 finished with value: 0.942498421904109 and parameters: {'n_estimators': 875, 'max_depth': 8, 'learning_rate': 0.06663804378748552, 'subsample': 0.31467062659854467, 'colsample_bytree': 0.7022730257925027, 'min_child_weight': 5, 'gamma': 1.5200826497842463, 'reg_alpha': 4.100956090872497, 'reg_lambda': 7.471540452732943e-08}. Best is trial 4 with value: 0.9438676208205324.
Best trial: 4. Best value: 0.943868: 23%|██▎ | 7/30 [01:09<02:51, 7.47s/it]
[I 2026-09-17 17:04:33,937] Trial 6 finished with value: 0.9437333583404108 and parameters: {'n_estimators': 473, 'max_depth': 7, 'learning_rate': 0.06550776044229074, 'subsample': 0.9252790549921084, 'colsample_bytree': 0.8099269521367907, 'min_child_weight': 7, 'gamma': 2.2594516319009985, 'reg_alpha': 5.7109418095722505e-08, 'reg_lambda': 0.007034230176262211}. Best is trial 4 with value: 0.9438676208205324.
Best trial: 4. Best value: 0.943868: 27%|██▋ | 8/30 [01:13<02:18, 6.28s/it]
[I 2026-09-17 17:04:37,652] Trial 7 finished with value: 0.9431178424349898 and parameters: {'n_estimators': 620, 'max_depth': 4, 'learning_rate': 0.14119187600096927, 'subsample': 0.39758178329097976, 'colsample_bytree': 0.8567644084769859, 'min_child_weight': 6, 'gamma': 0.23039141193114898, 'reg_alpha': 0.06557345999400872, 'reg_lambda': 5.394682888758513e-05}. Best is trial 4 with value: 0.9438676208205324.
Best trial: 4. Best value: 0.943868: 30%|███ | 9/30 [01:17<01:59, 5.67s/it]
[I 2026-09-17 17:04:41,990] Trial 8 finished with value: 0.9416546442583718 and parameters: {'n_estimators': 160, 'max_depth': 12, 'learning_rate': 0.012467498876097978, 'subsample': 0.4394634682061978, 'colsample_bytree': 0.7144745540333335, 'min_child_weight': 7, 'gamma': 4.234972584323883, 'reg_alpha': 1.5547642687413783e-08, 'reg_lambda': 0.0003978078427665223}. Best is trial 4 with value: 0.9438676208205324.
Best trial: 4. Best value: 0.943868: 33%|███▎ | 10/30 [01:29<02:29, 7.48s/it]
[I 2026-09-17 17:04:53,521] Trial 9 finished with value: 0.9435412264284834 and parameters: {'n_estimators': 2359, 'max_depth': 3, 'learning_rate': 0.09523287604152064, 'subsample': 0.5320177327436317, 'colsample_bytree': 0.3779275651704346, 'min_child_weight': 3, 'gamma': 4.187383464599553, 'reg_alpha': 2.4084523483980325e-06, 'reg_lambda': 0.04715617559747926}. Best is trial 4 with value: 0.9438676208205324.
Best trial: 4. Best value: 0.943868: 37%|███▋ | 11/30 [01:32<01:55, 6.07s/it]
[I 2026-09-17 17:04:56,401] Trial 10 finished with value: 0.9417166351850996 and parameters: {'n_estimators': 1953, 'max_depth': 11, 'learning_rate': 0.28433694148848193, 'subsample': 0.722675425849445, 'colsample_bytree': 0.5538009289316995, 'min_child_weight': 4, 'gamma': 1.2309884218333305, 'reg_alpha': 0.019841364650148133, 'reg_lambda': 6.662933985675873}. Best is trial 4 with value: 0.9438676208205324.
Best trial: 4. Best value: 0.943868: 40%|████ | 12/30 [01:44<02:23, 7.96s/it]
[I 2026-09-17 17:05:08,667] Trial 11 finished with value: 0.9435127451491819 and parameters: {'n_estimators': 1811, 'max_depth': 6, 'learning_rate': 0.026769065757150757, 'subsample': 0.9329765063729869, 'colsample_bytree': 0.5748881150771781, 'min_child_weight': 2, 'gamma': 3.358968721348121, 'reg_alpha': 0.008425262717190503, 'reg_lambda': 0.07066688776258638}. Best is trial 4 with value: 0.9438676208205324.
Best trial: 4. Best value: 0.943868: 43%|████▎ | 13/30 [01:56<02:37, 9.29s/it]
[I 2026-09-17 17:05:21,036] Trial 12 finished with value: 0.9435246004197704 and parameters: {'n_estimators': 817, 'max_depth': 10, 'learning_rate': 0.03198338861439018, 'subsample': 0.8879064627712167, 'colsample_bytree': 0.5753785030357439, 'min_child_weight': 5, 'gamma': 1.6189154196956261, 'reg_alpha': 1.3013937313703152, 'reg_lambda': 0.3770765271674848}. Best is trial 4 with value: 0.9438676208205324.
Best trial: 13. Best value: 0.943984: 47%|████▋ | 14/30 [02:07<02:33, 9.62s/it]
[I 2026-09-17 17:05:31,423] Trial 13 finished with value: 0.9439843820130308 and parameters: {'n_estimators': 1109, 'max_depth': 6, 'learning_rate': 0.04343031837472269, 'subsample': 0.8136854633255817, 'colsample_bytree': 0.9335298814223193, 'min_child_weight': 7, 'gamma': 1.824033391221799, 'reg_alpha': 9.005392182321691e-07, 'reg_lambda': 0.0028662334793332018}. Best is trial 13 with value: 0.9439843820130308.
Best trial: 14. Best value: 0.944008: 50%|█████ | 15/30 [02:17<02:29, 9.98s/it]
[I 2026-09-17 17:05:42,230] Trial 14 finished with value: 0.9440083930900366 and parameters: {'n_estimators': 1172, 'max_depth': 6, 'learning_rate': 0.03726920212276366, 'subsample': 0.8059919513826665, 'colsample_bytree': 0.9968877180784295, 'min_child_weight': 10, 'gamma': 1.0099622312619578, 'reg_alpha': 2.5060091366565114e-06, 'reg_lambda': 0.0014944385005074103}. Best is trial 14 with value: 0.9440083930900366.
Best trial: 14. Best value: 0.944008: 53%|█████▎ | 16/30 [02:26<02:15, 9.70s/it]
[I 2026-09-17 17:05:51,274] Trial 15 finished with value: 0.9434686365918491 and parameters: {'n_estimators': 1173, 'max_depth': 9, 'learning_rate': 0.03557561835514178, 'subsample': 0.8073445178382951, 'colsample_bytree': 0.9902515661954651, 'min_child_weight': 10, 'gamma': 0.8194955787148923, 'reg_alpha': 2.6717003322026705e-06, 'reg_lambda': 0.00045676624901245237}. Best is trial 14 with value: 0.9440083930900366.
Best trial: 14. Best value: 0.944008: 57%|█████▋ | 17/30 [02:40<02:21, 10.86s/it]
[I 2026-09-17 17:06:04,839] Trial 16 finished with value: 0.9438648598304402 and parameters: {'n_estimators': 1071, 'max_depth': 6, 'learning_rate': 0.021198209261858246, 'subsample': 0.8238461397247003, 'colsample_bytree': 0.9152807352413874, 'min_child_weight': 10, 'gamma': 1.0616899035146732, 'reg_alpha': 1.3939058805321513e-06, 'reg_lambda': 2.910609478122762e-06}. Best is trial 14 with value: 0.9440083930900366.
Best trial: 14. Best value: 0.944008: 60%|██████ | 18/30 [02:51<02:11, 10.93s/it]
[I 2026-09-17 17:06:15,916] Trial 17 finished with value: 0.9424303028548501 and parameters: {'n_estimators': 1472, 'max_depth': 13, 'learning_rate': 0.04266257275449388, 'subsample': 0.7970356944037433, 'colsample_bytree': 0.9114718396109793, 'min_child_weight': 8, 'gamma': 0.6354192520747128, 'reg_alpha': 3.3449988801083085e-07, 'reg_lambda': 0.0033335617646663893}. Best is trial 14 with value: 0.9440083930900366.
Best trial: 14. Best value: 0.944008: 63%|██████▎ | 19/30 [03:10<02:25, 13.22s/it]
[I 2026-09-17 17:06:34,464] Trial 18 finished with value: 0.9437848478704796 and parameters: {'n_estimators': 1665, 'max_depth': 8, 'learning_rate': 0.01938742536592002, 'subsample': 0.6437854653172166, 'colsample_bytree': 0.3009815564632148, 'min_child_weight': 7, 'gamma': 3.1716118389747647, 'reg_alpha': 2.4643798596437075e-05, 'reg_lambda': 0.0001126059718277477}. Best is trial 14 with value: 0.9440083930900366.
Best trial: 14. Best value: 0.944008: 67%|██████▋ | 20/30 [03:15<01:47, 10.73s/it]
[I 2026-09-17 17:06:39,395] Trial 19 finished with value: 0.9428910151145455 and parameters: {'n_estimators': 1002, 'max_depth': 6, 'learning_rate': 0.044144777551640944, 'subsample': 0.9843969638000788, 'colsample_bytree': 0.9959975410662174, 'min_child_weight': 9, 'gamma': 4.856792859513089, 'reg_alpha': 1.2234452950758972e-05, 'reg_lambda': 3.038601290974949e-06}. Best is trial 14 with value: 0.9440083930900366.
Best trial: 14. Best value: 0.944008: 70%|███████ | 21/30 [03:19<01:18, 8.69s/it]
[I 2026-09-17 17:06:43,322] Trial 20 finished with value: 0.9430302053291209 and parameters: {'n_estimators': 599, 'max_depth': 9, 'learning_rate': 0.0991232808905324, 'subsample': 0.7227146349429373, 'colsample_bytree': 0.8975286233938491, 'min_child_weight': 6, 'gamma': 0.05898525544476518, 'reg_alpha': 0.001549719892229572, 'reg_lambda': 0.03657351802508319}. Best is trial 14 with value: 0.9440083930900366.
Best trial: 14. Best value: 0.944008: 73%|███████▎ | 22/30 [03:28<01:10, 8.87s/it]
[I 2026-09-17 17:06:52,623] Trial 21 finished with value: 0.9438207918386188 and parameters: {'n_estimators': 1988, 'max_depth': 5, 'learning_rate': 0.04918312168946874, 'subsample': 0.6191314086507936, 'colsample_bytree': 0.6509784145158007, 'min_child_weight': 4, 'gamma': 1.8133309110029228, 'reg_alpha': 0.001097191147783966, 'reg_lambda': 0.47485630303071125}. Best is trial 14 with value: 0.9440083930900366.
Best trial: 14. Best value: 0.944008: 77%|███████▋ | 23/30 [03:38<01:04, 9.17s/it]
[I 2026-09-17 17:07:02,475] Trial 22 finished with value: 0.942409525512161 and parameters: {'n_estimators': 1233, 'max_depth': 3, 'learning_rate': 0.024106007398092953, 'subsample': 0.5831692929115396, 'colsample_bytree': 0.49639231569567643, 'min_child_weight': 4, 'gamma': 1.9866730828111239, 'reg_alpha': 0.19996164545385592, 'reg_lambda': 7.044497100708118}. Best is trial 14 with value: 0.9440083930900366.
Best trial: 23. Best value: 0.944013: 80%|████████ | 24/30 [03:49<00:59, 9.88s/it]
[I 2026-09-17 17:07:14,013] Trial 23 finished with value: 0.9440129805032558 and parameters: {'n_estimators': 1357, 'max_depth': 5, 'learning_rate': 0.031293726418857484, 'subsample': 0.7629070111228584, 'colsample_bytree': 0.7727142314825747, 'min_child_weight': 3, 'gamma': 1.0165814458105318, 'reg_alpha': 4.07680042339253e-07, 'reg_lambda': 0.0016900544322468116}. Best is trial 23 with value: 0.9440129805032558.
Best trial: 23. Best value: 0.944013: 83%|████████▎ | 25/30 [03:59<00:49, 9.85s/it]
[I 2026-09-17 17:07:23,777] Trial 24 finished with value: 0.9438452547920134 and parameters: {'n_estimators': 1361, 'max_depth': 7, 'learning_rate': 0.0330273955565511, 'subsample': 0.8539042097044744, 'colsample_bytree': 0.7721227504678062, 'min_child_weight': 1, 'gamma': 1.1304635440939328, 'reg_alpha': 4.0485260536078193e-07, 'reg_lambda': 0.0021658894535280288}. Best is trial 23 with value: 0.9440129805032558.
Best trial: 23. Best value: 0.944013: 87%|████████▋ | 26/30 [04:08<00:38, 9.61s/it]
[I 2026-09-17 17:07:32,841] Trial 25 finished with value: 0.9430490468388192 and parameters: {'n_estimators': 863, 'max_depth': 5, 'learning_rate': 0.01837593731467311, 'subsample': 0.7688480368015602, 'colsample_bytree': 0.9445834034573248, 'min_child_weight': 2, 'gamma': 1.3947769739452895, 'reg_alpha': 2.86831265880329e-07, 'reg_lambda': 0.0015850416413642028}. Best is trial 23 with value: 0.9440129805032558.
Best trial: 23. Best value: 0.944013: 90%|█████████ | 27/30 [04:18<00:29, 9.81s/it]
[I 2026-09-17 17:07:43,109] Trial 26 finished with value: 0.9436973650305683 and parameters: {'n_estimators': 1651, 'max_depth': 8, 'learning_rate': 0.02898371244262578, 'subsample': 0.7420636642685172, 'colsample_bytree': 0.8712812287019265, 'min_child_weight': 8, 'gamma': 0.6507197638316147, 'reg_alpha': 1.0099865473807405e-05, 'reg_lambda': 0.017280916041551814}. Best is trial 23 with value: 0.9440129805032558.
Best trial: 23. Best value: 0.944013: 93%|█████████▎| 28/30 [04:30<00:20, 10.35s/it]
[I 2026-09-17 17:07:54,741] Trial 27 finished with value: 0.9440003648243629 and parameters: {'n_estimators': 1055, 'max_depth': 6, 'learning_rate': 0.04012809600707748, 'subsample': 0.8691675597741367, 'colsample_bytree': 0.791627673795375, 'min_child_weight': 3, 'gamma': 0.909832190270368, 'reg_alpha': 1.4340904633695858e-08, 'reg_lambda': 5.8668960023701175e-05}. Best is trial 23 with value: 0.9440129805032558.
Best trial: 23. Best value: 0.944013: 97%|█████████▋| 29/30 [04:41<00:10, 10.50s/it]
[I 2026-09-17 17:08:05,569] Trial 28 finished with value: 0.9425723049614327 and parameters: {'n_estimators': 1335, 'max_depth': 5, 'learning_rate': 0.010023870551999861, 'subsample': 0.8813012174040499, 'colsample_bytree': 0.7627837733367681, 'min_child_weight': 3, 'gamma': 0.8351665321632921, 'reg_alpha': 1.6452976098966837e-08, 'reg_lambda': 3.384061531626537e-05}. Best is trial 23 with value: 0.9440129805032558.
Best trial: 23. Best value: 0.944013: 100%|██████████| 30/30 [04:54<00:00, 9.82s/it]
[I 2026-09-17 17:08:18,920] Trial 29 finished with value: 0.9438452448456625 and parameters: {'n_estimators': 1535, 'max_depth': 7, 'learning_rate': 0.015934908594548308, 'subsample': 0.9638863985034646, 'colsample_bytree': 0.7578187687292021, 'min_child_weight': 1, 'gamma': 0.4300903744438055, 'reg_alpha': 7.706121892500282e-08, 'reg_lambda': 5.683290368514086e-06}. Best is trial 23 with value: 0.9440129805032558.
Best validation AUC: 0.9440129805032558
Best params: {'n_estimators': 1357, 'max_depth': 5, 'learning_rate': 0.031293726418857484, 'subsample': 0.7629070111228584, 'colsample_bytree': 0.7727142314825747, 'min_child_weight': 3, 'gamma': 1.0165814458105318, 'reg_alpha': 4.07680042339253e-07, 'reg_lambda': 0.0016900544322468116}
m1 = xgboost.XGBClassifier(
**study.best_params,
random_state=SEED,
eval_metric='logloss',
early_stopping_rounds=50,
tree_method='hist',
device='cuda',
)
m1.fit(
X_train, y_train,
eval_set=[(X_train, y_train), (X_val, y_val)],
verbose=True
)
results = m1.evals_result()
import matplotlib.pyplot as plt
epochs = len(results['validation_0']['logloss'])
x_axis = range(epochs)
plt.figure(figsize=(8, 5))
plt.plot(x_axis, results['validation_0']['logloss'], label='Train')
plt.plot(x_axis, results['validation_1']['logloss'], label='Validation')
plt.xlabel('Boosting Round')
plt.ylabel('Log Loss')
plt.title('XGBoost Log Loss During Training')
plt.legend()
plt.show()
[0] validation_0-logloss:0.44883 validation_1-logloss:0.44650 [1] validation_0-logloss:0.43556 validation_1-logloss:0.43328 [2] validation_0-logloss:0.42365 validation_1-logloss:0.42140 [3] validation_0-logloss:0.41287 validation_1-logloss:0.41065 [4] validation_0-logloss:0.40294 validation_1-logloss:0.40074 [5] validation_0-logloss:0.39381 validation_1-logloss:0.39162 [6] validation_0-logloss:0.38536 validation_1-logloss:0.38320 [7] validation_0-logloss:0.37799 validation_1-logloss:0.37585 [8] validation_0-logloss:0.37065 validation_1-logloss:0.36852 [9] validation_0-logloss:0.36377 validation_1-logloss:0.36169 [10] validation_0-logloss:0.35781 validation_1-logloss:0.35574 [11] validation_0-logloss:0.35172 validation_1-logloss:0.34967 [12] validation_0-logloss:0.34621 validation_1-logloss:0.34418 [13] validation_0-logloss:0.34079 validation_1-logloss:0.33878 [14] validation_0-logloss:0.33592 validation_1-logloss:0.33393 [15] validation_0-logloss:0.33109 validation_1-logloss:0.32912 [16] validation_0-logloss:0.32654 validation_1-logloss:0.32458 [17] validation_0-logloss:0.32238 validation_1-logloss:0.32044 [18] validation_0-logloss:0.31827 validation_1-logloss:0.31635 [19] validation_0-logloss:0.31463 validation_1-logloss:0.31272 [20] validation_0-logloss:0.31094 validation_1-logloss:0.30906 [21] validation_0-logloss:0.30764 validation_1-logloss:0.30578 [22] validation_0-logloss:0.30432 validation_1-logloss:0.30248 [23] validation_0-logloss:0.30113 validation_1-logloss:0.29932 [24] validation_0-logloss:0.29810 validation_1-logloss:0.29631 [25] validation_0-logloss:0.29522 validation_1-logloss:0.29343 [26] validation_0-logloss:0.29247 validation_1-logloss:0.29071 [27] validation_0-logloss:0.28985 validation_1-logloss:0.28810 [28] validation_0-logloss:0.28735 validation_1-logloss:0.28562 [29] validation_0-logloss:0.28496 validation_1-logloss:0.28325 [30] validation_0-logloss:0.28269 validation_1-logloss:0.28099 [31] validation_0-logloss:0.28052 validation_1-logloss:0.27884 [32] validation_0-logloss:0.27845 validation_1-logloss:0.27678 [33] validation_0-logloss:0.27648 validation_1-logloss:0.27484 [34] validation_0-logloss:0.27478 validation_1-logloss:0.27318 [35] validation_0-logloss:0.27314 validation_1-logloss:0.27157 [36] validation_0-logloss:0.27141 validation_1-logloss:0.26985 [37] validation_0-logloss:0.26974 validation_1-logloss:0.26820 [38] validation_0-logloss:0.26816 validation_1-logloss:0.26663 [39] validation_0-logloss:0.26664 validation_1-logloss:0.26514 [40] validation_0-logloss:0.26524 validation_1-logloss:0.26375 [41] validation_0-logloss:0.26385 validation_1-logloss:0.26238 [42] validation_0-logloss:0.26264 validation_1-logloss:0.26119 [43] validation_0-logloss:0.26136 validation_1-logloss:0.25993 [44] validation_0-logloss:0.26013 validation_1-logloss:0.25873 [45] validation_0-logloss:0.25899 validation_1-logloss:0.25759 [46] validation_0-logloss:0.25786 validation_1-logloss:0.25648 [47] validation_0-logloss:0.25682 validation_1-logloss:0.25544 [48] validation_0-logloss:0.25579 validation_1-logloss:0.25442 [49] validation_0-logloss:0.25479 validation_1-logloss:0.25343 [50] validation_0-logloss:0.25386 validation_1-logloss:0.25251 [51] validation_0-logloss:0.25294 validation_1-logloss:0.25160 [52] validation_0-logloss:0.25205 validation_1-logloss:0.25071 [53] validation_0-logloss:0.25120 validation_1-logloss:0.24988 [54] validation_0-logloss:0.25039 validation_1-logloss:0.24908 [55] validation_0-logloss:0.24960 validation_1-logloss:0.24832 [56] validation_0-logloss:0.24885 validation_1-logloss:0.24758 [57] validation_0-logloss:0.24813 validation_1-logloss:0.24688 [58] validation_0-logloss:0.24743 validation_1-logloss:0.24620 [59] validation_0-logloss:0.24677 validation_1-logloss:0.24554 [60] validation_0-logloss:0.24613 validation_1-logloss:0.24492 [61] validation_0-logloss:0.24553 validation_1-logloss:0.24433 [62] validation_0-logloss:0.24494 validation_1-logloss:0.24377 [63] validation_0-logloss:0.24438 validation_1-logloss:0.24321 [64] validation_0-logloss:0.24384 validation_1-logloss:0.24269 [65] validation_0-logloss:0.24333 validation_1-logloss:0.24219 [66] validation_0-logloss:0.24289 validation_1-logloss:0.24176 [67] validation_0-logloss:0.24240 validation_1-logloss:0.24128 [68] validation_0-logloss:0.24193 validation_1-logloss:0.24083 [69] validation_0-logloss:0.24149 validation_1-logloss:0.24040 [70] validation_0-logloss:0.24107 validation_1-logloss:0.24000 [71] validation_0-logloss:0.24066 validation_1-logloss:0.23960 [72] validation_0-logloss:0.24027 validation_1-logloss:0.23922 [73] validation_0-logloss:0.23989 validation_1-logloss:0.23885 [74] validation_0-logloss:0.23952 validation_1-logloss:0.23849 [75] validation_0-logloss:0.23917 validation_1-logloss:0.23815 [76] validation_0-logloss:0.23884 validation_1-logloss:0.23783 [77] validation_0-logloss:0.23850 validation_1-logloss:0.23750 [78] validation_0-logloss:0.23818 validation_1-logloss:0.23719 [79] validation_0-logloss:0.23787 validation_1-logloss:0.23688 [80] validation_0-logloss:0.23757 validation_1-logloss:0.23660 [81] validation_0-logloss:0.23730 validation_1-logloss:0.23633 [82] validation_0-logloss:0.23703 validation_1-logloss:0.23607 [83] validation_0-logloss:0.23675 validation_1-logloss:0.23580 [84] validation_0-logloss:0.23651 validation_1-logloss:0.23556 [85] validation_0-logloss:0.23624 validation_1-logloss:0.23531 [86] validation_0-logloss:0.23601 validation_1-logloss:0.23509 [87] validation_0-logloss:0.23577 validation_1-logloss:0.23486 [88] validation_0-logloss:0.23556 validation_1-logloss:0.23465 [89] validation_0-logloss:0.23535 validation_1-logloss:0.23446 [90] validation_0-logloss:0.23516 validation_1-logloss:0.23427 [91] validation_0-logloss:0.23495 validation_1-logloss:0.23407 [92] validation_0-logloss:0.23476 validation_1-logloss:0.23389 [93] validation_0-logloss:0.23457 validation_1-logloss:0.23371 [94] validation_0-logloss:0.23440 validation_1-logloss:0.23354 [95] validation_0-logloss:0.23421 validation_1-logloss:0.23335 [96] validation_0-logloss:0.23404 validation_1-logloss:0.23319 [97] validation_0-logloss:0.23387 validation_1-logloss:0.23303 [98] validation_0-logloss:0.23371 validation_1-logloss:0.23288 [99] validation_0-logloss:0.23356 validation_1-logloss:0.23274 [100] validation_0-logloss:0.23342 validation_1-logloss:0.23260 [101] validation_0-logloss:0.23327 validation_1-logloss:0.23247 [102] validation_0-logloss:0.23313 validation_1-logloss:0.23233 [103] validation_0-logloss:0.23300 validation_1-logloss:0.23220 [104] validation_0-logloss:0.23287 validation_1-logloss:0.23208 [105] validation_0-logloss:0.23276 validation_1-logloss:0.23198 [106] validation_0-logloss:0.23262 validation_1-logloss:0.23185 [107] validation_0-logloss:0.23249 validation_1-logloss:0.23172 [108] validation_0-logloss:0.23237 validation_1-logloss:0.23161 [109] validation_0-logloss:0.23225 validation_1-logloss:0.23150 [110] validation_0-logloss:0.23215 validation_1-logloss:0.23140 [111] validation_0-logloss:0.23204 validation_1-logloss:0.23130 [112] validation_0-logloss:0.23194 validation_1-logloss:0.23121 [113] validation_0-logloss:0.23184 validation_1-logloss:0.23112 [114] validation_0-logloss:0.23174 validation_1-logloss:0.23103 [115] validation_0-logloss:0.23165 validation_1-logloss:0.23093 [116] validation_0-logloss:0.23156 validation_1-logloss:0.23085 [117] validation_0-logloss:0.23146 validation_1-logloss:0.23076 [118] validation_0-logloss:0.23137 validation_1-logloss:0.23067 [119] validation_0-logloss:0.23127 validation_1-logloss:0.23058 [120] validation_0-logloss:0.23118 validation_1-logloss:0.23051 [121] validation_0-logloss:0.23110 validation_1-logloss:0.23042 [122] validation_0-logloss:0.23103 validation_1-logloss:0.23036 [123] validation_0-logloss:0.23095 validation_1-logloss:0.23029 [124] validation_0-logloss:0.23088 validation_1-logloss:0.23023 [125] validation_0-logloss:0.23081 validation_1-logloss:0.23016 [126] validation_0-logloss:0.23074 validation_1-logloss:0.23010 [127] validation_0-logloss:0.23066 validation_1-logloss:0.23003 [128] validation_0-logloss:0.23059 validation_1-logloss:0.22998 [129] validation_0-logloss:0.23052 validation_1-logloss:0.22991 [130] validation_0-logloss:0.23046 validation_1-logloss:0.22985 [131] validation_0-logloss:0.23038 validation_1-logloss:0.22977 [132] validation_0-logloss:0.23032 validation_1-logloss:0.22972 [133] validation_0-logloss:0.23026 validation_1-logloss:0.22967 [134] validation_0-logloss:0.23015 validation_1-logloss:0.22956 [135] validation_0-logloss:0.23009 validation_1-logloss:0.22950 [136] validation_0-logloss:0.23003 validation_1-logloss:0.22945 [137] validation_0-logloss:0.22997 validation_1-logloss:0.22940 [138] validation_0-logloss:0.22991 validation_1-logloss:0.22934 [139] validation_0-logloss:0.22983 validation_1-logloss:0.22926 [140] validation_0-logloss:0.22977 validation_1-logloss:0.22920 [141] validation_0-logloss:0.22972 validation_1-logloss:0.22916 [142] validation_0-logloss:0.22967 validation_1-logloss:0.22912 [143] validation_0-logloss:0.22962 validation_1-logloss:0.22907 [144] validation_0-logloss:0.22957 validation_1-logloss:0.22903 [145] validation_0-logloss:0.22953 validation_1-logloss:0.22899 [146] validation_0-logloss:0.22949 validation_1-logloss:0.22895 [147] validation_0-logloss:0.22944 validation_1-logloss:0.22891 [148] validation_0-logloss:0.22940 validation_1-logloss:0.22887 [149] validation_0-logloss:0.22935 validation_1-logloss:0.22883 [150] validation_0-logloss:0.22930 validation_1-logloss:0.22879 [151] validation_0-logloss:0.22924 validation_1-logloss:0.22875 [152] validation_0-logloss:0.22920 validation_1-logloss:0.22871 [153] validation_0-logloss:0.22915 validation_1-logloss:0.22867 [154] validation_0-logloss:0.22909 validation_1-logloss:0.22862 [155] validation_0-logloss:0.22905 validation_1-logloss:0.22859 [156] validation_0-logloss:0.22901 validation_1-logloss:0.22855 [157] validation_0-logloss:0.22897 validation_1-logloss:0.22852 [158] validation_0-logloss:0.22892 validation_1-logloss:0.22847 [159] validation_0-logloss:0.22889 validation_1-logloss:0.22845 [160] validation_0-logloss:0.22886 validation_1-logloss:0.22843 [161] validation_0-logloss:0.22882 validation_1-logloss:0.22839 [162] validation_0-logloss:0.22878 validation_1-logloss:0.22836 [163] validation_0-logloss:0.22875 validation_1-logloss:0.22834 [164] validation_0-logloss:0.22871 validation_1-logloss:0.22830 [165] validation_0-logloss:0.22864 validation_1-logloss:0.22824 [166] validation_0-logloss:0.22860 validation_1-logloss:0.22821 [167] validation_0-logloss:0.22857 validation_1-logloss:0.22818 [168] validation_0-logloss:0.22854 validation_1-logloss:0.22816 [169] validation_0-logloss:0.22849 validation_1-logloss:0.22811 [170] validation_0-logloss:0.22846 validation_1-logloss:0.22809 [171] validation_0-logloss:0.22842 validation_1-logloss:0.22807 [172] validation_0-logloss:0.22838 validation_1-logloss:0.22803 [173] validation_0-logloss:0.22835 validation_1-logloss:0.22801 [174] validation_0-logloss:0.22831 validation_1-logloss:0.22798 [175] validation_0-logloss:0.22827 validation_1-logloss:0.22795 [176] validation_0-logloss:0.22823 validation_1-logloss:0.22791 [177] validation_0-logloss:0.22819 validation_1-logloss:0.22788 [178] validation_0-logloss:0.22816 validation_1-logloss:0.22786 [179] validation_0-logloss:0.22811 validation_1-logloss:0.22781 [180] validation_0-logloss:0.22808 validation_1-logloss:0.22779 [181] validation_0-logloss:0.22805 validation_1-logloss:0.22776 [182] validation_0-logloss:0.22803 validation_1-logloss:0.22775 [183] validation_0-logloss:0.22799 validation_1-logloss:0.22772 [184] validation_0-logloss:0.22797 validation_1-logloss:0.22771 [185] validation_0-logloss:0.22794 validation_1-logloss:0.22768 [186] validation_0-logloss:0.22791 validation_1-logloss:0.22765 [187] validation_0-logloss:0.22784 validation_1-logloss:0.22759 [188] validation_0-logloss:0.22777 validation_1-logloss:0.22754 [189] validation_0-logloss:0.22775 validation_1-logloss:0.22752 [190] validation_0-logloss:0.22773 validation_1-logloss:0.22750 [191] validation_0-logloss:0.22770 validation_1-logloss:0.22748 [192] validation_0-logloss:0.22767 validation_1-logloss:0.22746 [193] validation_0-logloss:0.22764 validation_1-logloss:0.22745 [194] validation_0-logloss:0.22761 validation_1-logloss:0.22742 [195] validation_0-logloss:0.22756 validation_1-logloss:0.22738 [196] validation_0-logloss:0.22754 validation_1-logloss:0.22736 [197] validation_0-logloss:0.22752 validation_1-logloss:0.22735 [198] validation_0-logloss:0.22750 validation_1-logloss:0.22733 [199] validation_0-logloss:0.22746 validation_1-logloss:0.22730 [200] validation_0-logloss:0.22743 validation_1-logloss:0.22728 [201] validation_0-logloss:0.22741 validation_1-logloss:0.22726 [202] validation_0-logloss:0.22738 validation_1-logloss:0.22724 [203] validation_0-logloss:0.22735 validation_1-logloss:0.22722 [204] validation_0-logloss:0.22733 validation_1-logloss:0.22721 [205] validation_0-logloss:0.22730 validation_1-logloss:0.22719 [206] validation_0-logloss:0.22728 validation_1-logloss:0.22718 [207] validation_0-logloss:0.22726 validation_1-logloss:0.22717 [208] validation_0-logloss:0.22724 validation_1-logloss:0.22716 [209] validation_0-logloss:0.22722 validation_1-logloss:0.22715 [210] validation_0-logloss:0.22720 validation_1-logloss:0.22713 [211] validation_0-logloss:0.22717 validation_1-logloss:0.22711 [212] validation_0-logloss:0.22714 validation_1-logloss:0.22709 [213] validation_0-logloss:0.22712 validation_1-logloss:0.22708 [214] validation_0-logloss:0.22710 validation_1-logloss:0.22706 [215] validation_0-logloss:0.22708 validation_1-logloss:0.22705 [216] validation_0-logloss:0.22706 validation_1-logloss:0.22704 [217] validation_0-logloss:0.22705 validation_1-logloss:0.22703 [218] validation_0-logloss:0.22699 validation_1-logloss:0.22697 [219] validation_0-logloss:0.22697 validation_1-logloss:0.22696 [220] validation_0-logloss:0.22695 validation_1-logloss:0.22695 [221] validation_0-logloss:0.22692 validation_1-logloss:0.22693 [222] validation_0-logloss:0.22688 validation_1-logloss:0.22690 [223] validation_0-logloss:0.22685 validation_1-logloss:0.22688 [224] validation_0-logloss:0.22682 validation_1-logloss:0.22686 [225] validation_0-logloss:0.22680 validation_1-logloss:0.22685 [226] validation_0-logloss:0.22673 validation_1-logloss:0.22678 [227] validation_0-logloss:0.22671 validation_1-logloss:0.22676 [228] validation_0-logloss:0.22669 validation_1-logloss:0.22675 [229] validation_0-logloss:0.22667 validation_1-logloss:0.22674 [230] validation_0-logloss:0.22665 validation_1-logloss:0.22673 [231] validation_0-logloss:0.22663 validation_1-logloss:0.22672 [232] validation_0-logloss:0.22660 validation_1-logloss:0.22670 [233] validation_0-logloss:0.22657 validation_1-logloss:0.22668 [234] validation_0-logloss:0.22656 validation_1-logloss:0.22667 [235] validation_0-logloss:0.22654 validation_1-logloss:0.22666 [236] validation_0-logloss:0.22653 validation_1-logloss:0.22665 [237] validation_0-logloss:0.22649 validation_1-logloss:0.22663 [238] validation_0-logloss:0.22644 validation_1-logloss:0.22658 [239] validation_0-logloss:0.22642 validation_1-logloss:0.22657 [240] validation_0-logloss:0.22640 validation_1-logloss:0.22656 [241] validation_0-logloss:0.22639 validation_1-logloss:0.22654 [242] validation_0-logloss:0.22637 validation_1-logloss:0.22654 [243] validation_0-logloss:0.22635 validation_1-logloss:0.22653 [244] validation_0-logloss:0.22633 validation_1-logloss:0.22652 [245] validation_0-logloss:0.22629 validation_1-logloss:0.22649 [246] validation_0-logloss:0.22627 validation_1-logloss:0.22648 [247] validation_0-logloss:0.22625 validation_1-logloss:0.22647 [248] validation_0-logloss:0.22623 validation_1-logloss:0.22646 [249] validation_0-logloss:0.22621 validation_1-logloss:0.22644 [250] validation_0-logloss:0.22617 validation_1-logloss:0.22642 [251] validation_0-logloss:0.22616 validation_1-logloss:0.22641 [252] validation_0-logloss:0.22614 validation_1-logloss:0.22639 [253] validation_0-logloss:0.22612 validation_1-logloss:0.22638 [254] validation_0-logloss:0.22611 validation_1-logloss:0.22637 [255] validation_0-logloss:0.22610 validation_1-logloss:0.22637 [256] validation_0-logloss:0.22608 validation_1-logloss:0.22636 [257] validation_0-logloss:0.22605 validation_1-logloss:0.22634 [258] validation_0-logloss:0.22603 validation_1-logloss:0.22632 [259] validation_0-logloss:0.22602 validation_1-logloss:0.22631 [260] validation_0-logloss:0.22600 validation_1-logloss:0.22630 [261] validation_0-logloss:0.22598 validation_1-logloss:0.22629 [262] validation_0-logloss:0.22596 validation_1-logloss:0.22628 [263] validation_0-logloss:0.22594 validation_1-logloss:0.22627 [264] validation_0-logloss:0.22592 validation_1-logloss:0.22626 [265] validation_0-logloss:0.22587 validation_1-logloss:0.22623 [266] validation_0-logloss:0.22586 validation_1-logloss:0.22622 [267] validation_0-logloss:0.22584 validation_1-logloss:0.22620 [268] validation_0-logloss:0.22582 validation_1-logloss:0.22620 [269] validation_0-logloss:0.22581 validation_1-logloss:0.22619 [270] validation_0-logloss:0.22574 validation_1-logloss:0.22612 [271] validation_0-logloss:0.22571 validation_1-logloss:0.22610 [272] validation_0-logloss:0.22570 validation_1-logloss:0.22609 [273] validation_0-logloss:0.22569 validation_1-logloss:0.22608 [274] validation_0-logloss:0.22567 validation_1-logloss:0.22607 [275] validation_0-logloss:0.22566 validation_1-logloss:0.22607 [276] validation_0-logloss:0.22565 validation_1-logloss:0.22606 [277] validation_0-logloss:0.22563 validation_1-logloss:0.22606 [278] validation_0-logloss:0.22562 validation_1-logloss:0.22605 [279] validation_0-logloss:0.22560 validation_1-logloss:0.22604 [280] validation_0-logloss:0.22557 validation_1-logloss:0.22602 [281] validation_0-logloss:0.22556 validation_1-logloss:0.22602 [282] validation_0-logloss:0.22554 validation_1-logloss:0.22600 [283] validation_0-logloss:0.22550 validation_1-logloss:0.22597 [284] validation_0-logloss:0.22545 validation_1-logloss:0.22592 [285] validation_0-logloss:0.22544 validation_1-logloss:0.22591 [286] validation_0-logloss:0.22541 validation_1-logloss:0.22588 [287] validation_0-logloss:0.22536 validation_1-logloss:0.22584 [288] validation_0-logloss:0.22534 validation_1-logloss:0.22582 [289] validation_0-logloss:0.22532 validation_1-logloss:0.22581 [290] validation_0-logloss:0.22530 validation_1-logloss:0.22580 [291] validation_0-logloss:0.22529 validation_1-logloss:0.22579 [292] validation_0-logloss:0.22527 validation_1-logloss:0.22578 [293] validation_0-logloss:0.22525 validation_1-logloss:0.22577 [294] validation_0-logloss:0.22523 validation_1-logloss:0.22576 [295] validation_0-logloss:0.22521 validation_1-logloss:0.22575 [296] validation_0-logloss:0.22520 validation_1-logloss:0.22574 [297] validation_0-logloss:0.22518 validation_1-logloss:0.22573 [298] validation_0-logloss:0.22515 validation_1-logloss:0.22571 [299] validation_0-logloss:0.22513 validation_1-logloss:0.22570 [300] validation_0-logloss:0.22511 validation_1-logloss:0.22569 [301] validation_0-logloss:0.22509 validation_1-logloss:0.22568 [302] validation_0-logloss:0.22508 validation_1-logloss:0.22568 [303] validation_0-logloss:0.22504 validation_1-logloss:0.22564 [304] validation_0-logloss:0.22502 validation_1-logloss:0.22563 [305] validation_0-logloss:0.22500 validation_1-logloss:0.22562 [306] validation_0-logloss:0.22498 validation_1-logloss:0.22561 [307] validation_0-logloss:0.22498 validation_1-logloss:0.22560 [308] validation_0-logloss:0.22496 validation_1-logloss:0.22560 [309] validation_0-logloss:0.22495 validation_1-logloss:0.22559 [310] validation_0-logloss:0.22493 validation_1-logloss:0.22558 [311] validation_0-logloss:0.22488 validation_1-logloss:0.22554 [312] validation_0-logloss:0.22487 validation_1-logloss:0.22554 [313] validation_0-logloss:0.22485 validation_1-logloss:0.22553 [314] validation_0-logloss:0.22484 validation_1-logloss:0.22552 [315] validation_0-logloss:0.22480 validation_1-logloss:0.22550 [316] validation_0-logloss:0.22477 validation_1-logloss:0.22547 [317] validation_0-logloss:0.22476 validation_1-logloss:0.22547 [318] validation_0-logloss:0.22474 validation_1-logloss:0.22546 [319] validation_0-logloss:0.22472 validation_1-logloss:0.22545 [320] validation_0-logloss:0.22471 validation_1-logloss:0.22545 [321] validation_0-logloss:0.22469 validation_1-logloss:0.22544 [322] validation_0-logloss:0.22464 validation_1-logloss:0.22539 [323] validation_0-logloss:0.22463 validation_1-logloss:0.22539 [324] validation_0-logloss:0.22457 validation_1-logloss:0.22534 [325] validation_0-logloss:0.22456 validation_1-logloss:0.22533 [326] validation_0-logloss:0.22453 validation_1-logloss:0.22532 [327] validation_0-logloss:0.22448 validation_1-logloss:0.22526 [328] validation_0-logloss:0.22446 validation_1-logloss:0.22526 [329] validation_0-logloss:0.22444 validation_1-logloss:0.22524 [330] validation_0-logloss:0.22444 validation_1-logloss:0.22524 [331] validation_0-logloss:0.22439 validation_1-logloss:0.22520 [332] validation_0-logloss:0.22438 validation_1-logloss:0.22520 [333] validation_0-logloss:0.22437 validation_1-logloss:0.22519 [334] validation_0-logloss:0.22436 validation_1-logloss:0.22519 [335] validation_0-logloss:0.22433 validation_1-logloss:0.22518 [336] validation_0-logloss:0.22432 validation_1-logloss:0.22517 [337] validation_0-logloss:0.22430 validation_1-logloss:0.22516 [338] validation_0-logloss:0.22428 validation_1-logloss:0.22515 [339] validation_0-logloss:0.22427 validation_1-logloss:0.22515 [340] validation_0-logloss:0.22426 validation_1-logloss:0.22514 [341] validation_0-logloss:0.22424 validation_1-logloss:0.22513 [342] validation_0-logloss:0.22423 validation_1-logloss:0.22513 [343] validation_0-logloss:0.22420 validation_1-logloss:0.22511 [344] validation_0-logloss:0.22419 validation_1-logloss:0.22510 [345] validation_0-logloss:0.22418 validation_1-logloss:0.22509 [346] validation_0-logloss:0.22417 validation_1-logloss:0.22509 [347] validation_0-logloss:0.22416 validation_1-logloss:0.22508 [348] validation_0-logloss:0.22414 validation_1-logloss:0.22507 [349] validation_0-logloss:0.22411 validation_1-logloss:0.22505 [350] validation_0-logloss:0.22409 validation_1-logloss:0.22504 [351] validation_0-logloss:0.22409 validation_1-logloss:0.22504 [352] validation_0-logloss:0.22406 validation_1-logloss:0.22502 [353] validation_0-logloss:0.22401 validation_1-logloss:0.22497 [354] validation_0-logloss:0.22398 validation_1-logloss:0.22495 [355] validation_0-logloss:0.22395 validation_1-logloss:0.22493 [356] validation_0-logloss:0.22393 validation_1-logloss:0.22492 [357] validation_0-logloss:0.22390 validation_1-logloss:0.22489 [358] validation_0-logloss:0.22389 validation_1-logloss:0.22489 [359] validation_0-logloss:0.22388 validation_1-logloss:0.22488 [360] validation_0-logloss:0.22384 validation_1-logloss:0.22487 [361] validation_0-logloss:0.22383 validation_1-logloss:0.22486 [362] validation_0-logloss:0.22381 validation_1-logloss:0.22485 [363] validation_0-logloss:0.22379 validation_1-logloss:0.22484 [364] validation_0-logloss:0.22378 validation_1-logloss:0.22483 [365] validation_0-logloss:0.22377 validation_1-logloss:0.22483 [366] validation_0-logloss:0.22376 validation_1-logloss:0.22482 [367] validation_0-logloss:0.22374 validation_1-logloss:0.22482 [368] validation_0-logloss:0.22369 validation_1-logloss:0.22478 [369] validation_0-logloss:0.22367 validation_1-logloss:0.22476 [370] validation_0-logloss:0.22366 validation_1-logloss:0.22475 [371] validation_0-logloss:0.22364 validation_1-logloss:0.22475 [372] validation_0-logloss:0.22363 validation_1-logloss:0.22474 [373] validation_0-logloss:0.22360 validation_1-logloss:0.22473 [374] validation_0-logloss:0.22358 validation_1-logloss:0.22472 [375] validation_0-logloss:0.22357 validation_1-logloss:0.22472 [376] validation_0-logloss:0.22355 validation_1-logloss:0.22470 [377] validation_0-logloss:0.22354 validation_1-logloss:0.22470 [378] validation_0-logloss:0.22350 validation_1-logloss:0.22467 [379] validation_0-logloss:0.22349 validation_1-logloss:0.22467 [380] validation_0-logloss:0.22347 validation_1-logloss:0.22466 [381] validation_0-logloss:0.22345 validation_1-logloss:0.22464 [382] validation_0-logloss:0.22342 validation_1-logloss:0.22462 [383] validation_0-logloss:0.22340 validation_1-logloss:0.22462 [384] validation_0-logloss:0.22338 validation_1-logloss:0.22461 [385] validation_0-logloss:0.22336 validation_1-logloss:0.22460 [386] validation_0-logloss:0.22335 validation_1-logloss:0.22459 [387] validation_0-logloss:0.22332 validation_1-logloss:0.22458 [388] validation_0-logloss:0.22331 validation_1-logloss:0.22457 [389] validation_0-logloss:0.22328 validation_1-logloss:0.22454 [390] validation_0-logloss:0.22326 validation_1-logloss:0.22454 [391] validation_0-logloss:0.22325 validation_1-logloss:0.22454 [392] validation_0-logloss:0.22322 validation_1-logloss:0.22452 [393] validation_0-logloss:0.22321 validation_1-logloss:0.22452 [394] validation_0-logloss:0.22319 validation_1-logloss:0.22451 [395] validation_0-logloss:0.22318 validation_1-logloss:0.22450 [396] validation_0-logloss:0.22315 validation_1-logloss:0.22448 [397] validation_0-logloss:0.22314 validation_1-logloss:0.22448 [398] validation_0-logloss:0.22312 validation_1-logloss:0.22447 [399] validation_0-logloss:0.22311 validation_1-logloss:0.22446 [400] validation_0-logloss:0.22310 validation_1-logloss:0.22446 [401] validation_0-logloss:0.22308 validation_1-logloss:0.22444 [402] validation_0-logloss:0.22306 validation_1-logloss:0.22443 [403] validation_0-logloss:0.22305 validation_1-logloss:0.22443 [404] validation_0-logloss:0.22304 validation_1-logloss:0.22443 [405] validation_0-logloss:0.22302 validation_1-logloss:0.22442 [406] validation_0-logloss:0.22300 validation_1-logloss:0.22440 [407] validation_0-logloss:0.22297 validation_1-logloss:0.22438 [408] validation_0-logloss:0.22295 validation_1-logloss:0.22438 [409] validation_0-logloss:0.22294 validation_1-logloss:0.22438 [410] validation_0-logloss:0.22293 validation_1-logloss:0.22437 [411] validation_0-logloss:0.22291 validation_1-logloss:0.22437 [412] validation_0-logloss:0.22290 validation_1-logloss:0.22436 [413] validation_0-logloss:0.22288 validation_1-logloss:0.22435 [414] validation_0-logloss:0.22288 validation_1-logloss:0.22435 [415] validation_0-logloss:0.22286 validation_1-logloss:0.22434 [416] validation_0-logloss:0.22283 validation_1-logloss:0.22432 [417] validation_0-logloss:0.22282 validation_1-logloss:0.22432 [418] validation_0-logloss:0.22278 validation_1-logloss:0.22428 [419] validation_0-logloss:0.22276 validation_1-logloss:0.22428 [420] validation_0-logloss:0.22274 validation_1-logloss:0.22426 [421] validation_0-logloss:0.22272 validation_1-logloss:0.22425 [422] validation_0-logloss:0.22271 validation_1-logloss:0.22425 [423] validation_0-logloss:0.22270 validation_1-logloss:0.22425 [424] validation_0-logloss:0.22269 validation_1-logloss:0.22425 [425] validation_0-logloss:0.22266 validation_1-logloss:0.22422 [426] validation_0-logloss:0.22264 validation_1-logloss:0.22422 [427] validation_0-logloss:0.22263 validation_1-logloss:0.22421 [428] validation_0-logloss:0.22262 validation_1-logloss:0.22421 [429] validation_0-logloss:0.22261 validation_1-logloss:0.22421 [430] validation_0-logloss:0.22259 validation_1-logloss:0.22421 [431] validation_0-logloss:0.22258 validation_1-logloss:0.22420 [432] validation_0-logloss:0.22256 validation_1-logloss:0.22418 [433] validation_0-logloss:0.22255 validation_1-logloss:0.22418 [434] validation_0-logloss:0.22251 validation_1-logloss:0.22415 [435] validation_0-logloss:0.22249 validation_1-logloss:0.22414 [436] validation_0-logloss:0.22247 validation_1-logloss:0.22413 [437] validation_0-logloss:0.22246 validation_1-logloss:0.22413 [438] validation_0-logloss:0.22244 validation_1-logloss:0.22412 [439] validation_0-logloss:0.22243 validation_1-logloss:0.22412 [440] validation_0-logloss:0.22242 validation_1-logloss:0.22411 [441] validation_0-logloss:0.22241 validation_1-logloss:0.22411 [442] validation_0-logloss:0.22238 validation_1-logloss:0.22410 [443] validation_0-logloss:0.22237 validation_1-logloss:0.22410 [444] validation_0-logloss:0.22234 validation_1-logloss:0.22408 [445] validation_0-logloss:0.22233 validation_1-logloss:0.22408 [446] validation_0-logloss:0.22232 validation_1-logloss:0.22407 [447] validation_0-logloss:0.22230 validation_1-logloss:0.22407 [448] validation_0-logloss:0.22229 validation_1-logloss:0.22406 [449] validation_0-logloss:0.22225 validation_1-logloss:0.22402 [450] validation_0-logloss:0.22223 validation_1-logloss:0.22401 [451] validation_0-logloss:0.22221 validation_1-logloss:0.22401 [452] validation_0-logloss:0.22218 validation_1-logloss:0.22399 [453] validation_0-logloss:0.22217 validation_1-logloss:0.22399 [454] validation_0-logloss:0.22217 validation_1-logloss:0.22398 [455] validation_0-logloss:0.22216 validation_1-logloss:0.22398 [456] validation_0-logloss:0.22215 validation_1-logloss:0.22398 [457] validation_0-logloss:0.22211 validation_1-logloss:0.22395 [458] validation_0-logloss:0.22208 validation_1-logloss:0.22392 [459] validation_0-logloss:0.22207 validation_1-logloss:0.22391 [460] validation_0-logloss:0.22205 validation_1-logloss:0.22391 [461] validation_0-logloss:0.22204 validation_1-logloss:0.22390 [462] validation_0-logloss:0.22202 validation_1-logloss:0.22389 [463] validation_0-logloss:0.22201 validation_1-logloss:0.22389 [464] validation_0-logloss:0.22199 validation_1-logloss:0.22388 [465] validation_0-logloss:0.22197 validation_1-logloss:0.22387 [466] validation_0-logloss:0.22195 validation_1-logloss:0.22385 [467] validation_0-logloss:0.22194 validation_1-logloss:0.22385 [468] validation_0-logloss:0.22192 validation_1-logloss:0.22385 [469] validation_0-logloss:0.22192 validation_1-logloss:0.22384 [470] validation_0-logloss:0.22190 validation_1-logloss:0.22384 [471] validation_0-logloss:0.22187 validation_1-logloss:0.22382 [472] validation_0-logloss:0.22186 validation_1-logloss:0.22382 [473] validation_0-logloss:0.22184 validation_1-logloss:0.22381 [474] validation_0-logloss:0.22183 validation_1-logloss:0.22381 [475] validation_0-logloss:0.22182 validation_1-logloss:0.22381 [476] validation_0-logloss:0.22180 validation_1-logloss:0.22379 [477] validation_0-logloss:0.22178 validation_1-logloss:0.22378 [478] validation_0-logloss:0.22177 validation_1-logloss:0.22378 [479] validation_0-logloss:0.22175 validation_1-logloss:0.22377 [480] validation_0-logloss:0.22173 validation_1-logloss:0.22376 [481] validation_0-logloss:0.22172 validation_1-logloss:0.22376 [482] validation_0-logloss:0.22170 validation_1-logloss:0.22375 [483] validation_0-logloss:0.22168 validation_1-logloss:0.22374 [484] validation_0-logloss:0.22166 validation_1-logloss:0.22373 [485] validation_0-logloss:0.22166 validation_1-logloss:0.22372 [486] validation_0-logloss:0.22165 validation_1-logloss:0.22372 [487] validation_0-logloss:0.22163 validation_1-logloss:0.22371 [488] validation_0-logloss:0.22160 validation_1-logloss:0.22369 [489] validation_0-logloss:0.22159 validation_1-logloss:0.22368 [490] validation_0-logloss:0.22158 validation_1-logloss:0.22368 [491] validation_0-logloss:0.22157 validation_1-logloss:0.22368 [492] validation_0-logloss:0.22153 validation_1-logloss:0.22365 [493] validation_0-logloss:0.22153 validation_1-logloss:0.22365 [494] validation_0-logloss:0.22150 validation_1-logloss:0.22363 [495] validation_0-logloss:0.22149 validation_1-logloss:0.22363 [496] validation_0-logloss:0.22147 validation_1-logloss:0.22362 [497] validation_0-logloss:0.22146 validation_1-logloss:0.22362 [498] validation_0-logloss:0.22144 validation_1-logloss:0.22360 [499] validation_0-logloss:0.22143 validation_1-logloss:0.22360 [500] validation_0-logloss:0.22140 validation_1-logloss:0.22359 [501] validation_0-logloss:0.22139 validation_1-logloss:0.22359 [502] validation_0-logloss:0.22137 validation_1-logloss:0.22357 [503] validation_0-logloss:0.22135 validation_1-logloss:0.22356 [504] validation_0-logloss:0.22133 validation_1-logloss:0.22355 [505] validation_0-logloss:0.22132 validation_1-logloss:0.22354 [506] validation_0-logloss:0.22130 validation_1-logloss:0.22354 [507] validation_0-logloss:0.22129 validation_1-logloss:0.22354 [508] validation_0-logloss:0.22127 validation_1-logloss:0.22353 [509] validation_0-logloss:0.22126 validation_1-logloss:0.22352 [510] validation_0-logloss:0.22124 validation_1-logloss:0.22351 [511] validation_0-logloss:0.22123 validation_1-logloss:0.22351 [512] validation_0-logloss:0.22122 validation_1-logloss:0.22351 [513] validation_0-logloss:0.22119 validation_1-logloss:0.22348 [514] validation_0-logloss:0.22116 validation_1-logloss:0.22347 [515] validation_0-logloss:0.22112 validation_1-logloss:0.22344 [516] validation_0-logloss:0.22112 validation_1-logloss:0.22344 [517] validation_0-logloss:0.22109 validation_1-logloss:0.22343 [518] validation_0-logloss:0.22107 validation_1-logloss:0.22342 [519] validation_0-logloss:0.22106 validation_1-logloss:0.22342 [520] validation_0-logloss:0.22105 validation_1-logloss:0.22341 [521] validation_0-logloss:0.22104 validation_1-logloss:0.22341 [522] validation_0-logloss:0.22103 validation_1-logloss:0.22341 [523] validation_0-logloss:0.22102 validation_1-logloss:0.22341 [524] validation_0-logloss:0.22102 validation_1-logloss:0.22341 [525] validation_0-logloss:0.22098 validation_1-logloss:0.22338 [526] validation_0-logloss:0.22097 validation_1-logloss:0.22338 [527] validation_0-logloss:0.22096 validation_1-logloss:0.22337 [528] validation_0-logloss:0.22095 validation_1-logloss:0.22337 [529] validation_0-logloss:0.22093 validation_1-logloss:0.22336 [530] validation_0-logloss:0.22092 validation_1-logloss:0.22335 [531] validation_0-logloss:0.22090 validation_1-logloss:0.22335 [532] validation_0-logloss:0.22089 validation_1-logloss:0.22335 [533] validation_0-logloss:0.22088 validation_1-logloss:0.22334 [534] validation_0-logloss:0.22086 validation_1-logloss:0.22334 [535] validation_0-logloss:0.22085 validation_1-logloss:0.22332 [536] validation_0-logloss:0.22082 validation_1-logloss:0.22330 [537] validation_0-logloss:0.22080 validation_1-logloss:0.22330 [538] validation_0-logloss:0.22079 validation_1-logloss:0.22330 [539] validation_0-logloss:0.22078 validation_1-logloss:0.22330 [540] validation_0-logloss:0.22077 validation_1-logloss:0.22330 [541] validation_0-logloss:0.22076 validation_1-logloss:0.22329 [542] validation_0-logloss:0.22075 validation_1-logloss:0.22329 [543] validation_0-logloss:0.22074 validation_1-logloss:0.22328 [544] validation_0-logloss:0.22072 validation_1-logloss:0.22328 [545] validation_0-logloss:0.22071 validation_1-logloss:0.22327 [546] validation_0-logloss:0.22068 validation_1-logloss:0.22325 [547] validation_0-logloss:0.22067 validation_1-logloss:0.22325 [548] validation_0-logloss:0.22064 validation_1-logloss:0.22323 [549] validation_0-logloss:0.22063 validation_1-logloss:0.22322 [550] validation_0-logloss:0.22062 validation_1-logloss:0.22322 [551] validation_0-logloss:0.22058 validation_1-logloss:0.22319 [552] validation_0-logloss:0.22057 validation_1-logloss:0.22319 [553] validation_0-logloss:0.22055 validation_1-logloss:0.22318 [554] validation_0-logloss:0.22054 validation_1-logloss:0.22318 [555] validation_0-logloss:0.22053 validation_1-logloss:0.22318 [556] validation_0-logloss:0.22050 validation_1-logloss:0.22316 [557] validation_0-logloss:0.22048 validation_1-logloss:0.22315 [558] validation_0-logloss:0.22046 validation_1-logloss:0.22314 [559] validation_0-logloss:0.22045 validation_1-logloss:0.22313 [560] validation_0-logloss:0.22043 validation_1-logloss:0.22312 [561] validation_0-logloss:0.22042 validation_1-logloss:0.22311 [562] validation_0-logloss:0.22040 validation_1-logloss:0.22310 [563] validation_0-logloss:0.22039 validation_1-logloss:0.22310 [564] validation_0-logloss:0.22037 validation_1-logloss:0.22310 [565] validation_0-logloss:0.22036 validation_1-logloss:0.22310 [566] validation_0-logloss:0.22035 validation_1-logloss:0.22310 [567] validation_0-logloss:0.22034 validation_1-logloss:0.22309 [568] validation_0-logloss:0.22033 validation_1-logloss:0.22309 [569] validation_0-logloss:0.22032 validation_1-logloss:0.22309 [570] validation_0-logloss:0.22031 validation_1-logloss:0.22309 [571] validation_0-logloss:0.22029 validation_1-logloss:0.22308 [572] validation_0-logloss:0.22028 validation_1-logloss:0.22307 [573] validation_0-logloss:0.22027 validation_1-logloss:0.22307 [574] validation_0-logloss:0.22026 validation_1-logloss:0.22307 [575] validation_0-logloss:0.22024 validation_1-logloss:0.22306 [576] validation_0-logloss:0.22023 validation_1-logloss:0.22305 [577] validation_0-logloss:0.22020 validation_1-logloss:0.22304 [578] validation_0-logloss:0.22019 validation_1-logloss:0.22304 [579] validation_0-logloss:0.22018 validation_1-logloss:0.22303 [580] validation_0-logloss:0.22017 validation_1-logloss:0.22303 [581] validation_0-logloss:0.22016 validation_1-logloss:0.22302 [582] validation_0-logloss:0.22014 validation_1-logloss:0.22301 [583] validation_0-logloss:0.22013 validation_1-logloss:0.22301 [584] validation_0-logloss:0.22012 validation_1-logloss:0.22300 [585] validation_0-logloss:0.22009 validation_1-logloss:0.22298 [586] validation_0-logloss:0.22007 validation_1-logloss:0.22296 [587] validation_0-logloss:0.22006 validation_1-logloss:0.22296 [588] validation_0-logloss:0.22005 validation_1-logloss:0.22296 [589] validation_0-logloss:0.22004 validation_1-logloss:0.22296 [590] validation_0-logloss:0.22003 validation_1-logloss:0.22296 [591] validation_0-logloss:0.22002 validation_1-logloss:0.22295 [592] validation_0-logloss:0.21999 validation_1-logloss:0.22294 [593] validation_0-logloss:0.21998 validation_1-logloss:0.22293 [594] validation_0-logloss:0.21996 validation_1-logloss:0.22292 [595] validation_0-logloss:0.21994 validation_1-logloss:0.22291 [596] validation_0-logloss:0.21993 validation_1-logloss:0.22291 [597] validation_0-logloss:0.21993 validation_1-logloss:0.22291 [598] validation_0-logloss:0.21991 validation_1-logloss:0.22291 [599] validation_0-logloss:0.21990 validation_1-logloss:0.22291 [600] validation_0-logloss:0.21989 validation_1-logloss:0.22290 [601] validation_0-logloss:0.21988 validation_1-logloss:0.22290 [602] validation_0-logloss:0.21985 validation_1-logloss:0.22288 [603] validation_0-logloss:0.21982 validation_1-logloss:0.22286 [604] validation_0-logloss:0.21980 validation_1-logloss:0.22285 [605] validation_0-logloss:0.21979 validation_1-logloss:0.22285 [606] validation_0-logloss:0.21978 validation_1-logloss:0.22285 [607] validation_0-logloss:0.21977 validation_1-logloss:0.22285 [608] validation_0-logloss:0.21976 validation_1-logloss:0.22284 [609] validation_0-logloss:0.21975 validation_1-logloss:0.22284 [610] validation_0-logloss:0.21974 validation_1-logloss:0.22284 [611] validation_0-logloss:0.21973 validation_1-logloss:0.22284 [612] validation_0-logloss:0.21972 validation_1-logloss:0.22283 [613] validation_0-logloss:0.21970 validation_1-logloss:0.22283 [614] validation_0-logloss:0.21970 validation_1-logloss:0.22282 [615] validation_0-logloss:0.21968 validation_1-logloss:0.22282 [616] validation_0-logloss:0.21968 validation_1-logloss:0.22282 [617] validation_0-logloss:0.21967 validation_1-logloss:0.22282 [618] validation_0-logloss:0.21966 validation_1-logloss:0.22282 [619] validation_0-logloss:0.21965 validation_1-logloss:0.22282 [620] validation_0-logloss:0.21964 validation_1-logloss:0.22281 [621] validation_0-logloss:0.21963 validation_1-logloss:0.22281 [622] validation_0-logloss:0.21962 validation_1-logloss:0.22281 [623] validation_0-logloss:0.21960 validation_1-logloss:0.22279 [624] validation_0-logloss:0.21958 validation_1-logloss:0.22279 [625] validation_0-logloss:0.21957 validation_1-logloss:0.22279 [626] validation_0-logloss:0.21957 validation_1-logloss:0.22278 [627] validation_0-logloss:0.21956 validation_1-logloss:0.22278 [628] validation_0-logloss:0.21954 validation_1-logloss:0.22278 [629] validation_0-logloss:0.21953 validation_1-logloss:0.22277 [630] validation_0-logloss:0.21952 validation_1-logloss:0.22277 [631] validation_0-logloss:0.21951 validation_1-logloss:0.22277 [632] validation_0-logloss:0.21950 validation_1-logloss:0.22277 [633] validation_0-logloss:0.21949 validation_1-logloss:0.22277 [634] validation_0-logloss:0.21948 validation_1-logloss:0.22277 [635] validation_0-logloss:0.21948 validation_1-logloss:0.22277 [636] validation_0-logloss:0.21946 validation_1-logloss:0.22276 [637] validation_0-logloss:0.21944 validation_1-logloss:0.22275 [638] validation_0-logloss:0.21943 validation_1-logloss:0.22275 [639] validation_0-logloss:0.21942 validation_1-logloss:0.22274 [640] validation_0-logloss:0.21941 validation_1-logloss:0.22274 [641] validation_0-logloss:0.21940 validation_1-logloss:0.22274 [642] validation_0-logloss:0.21938 validation_1-logloss:0.22273 [643] validation_0-logloss:0.21937 validation_1-logloss:0.22272 [644] validation_0-logloss:0.21936 validation_1-logloss:0.22272 [645] validation_0-logloss:0.21933 validation_1-logloss:0.22270 [646] validation_0-logloss:0.21932 validation_1-logloss:0.22269 [647] validation_0-logloss:0.21930 validation_1-logloss:0.22269 [648] validation_0-logloss:0.21929 validation_1-logloss:0.22268 [649] validation_0-logloss:0.21928 validation_1-logloss:0.22268 [650] validation_0-logloss:0.21927 validation_1-logloss:0.22268 [651] validation_0-logloss:0.21926 validation_1-logloss:0.22268 [652] validation_0-logloss:0.21925 validation_1-logloss:0.22268 [653] validation_0-logloss:0.21923 validation_1-logloss:0.22267 [654] validation_0-logloss:0.21922 validation_1-logloss:0.22267 [655] validation_0-logloss:0.21921 validation_1-logloss:0.22267 [656] validation_0-logloss:0.21920 validation_1-logloss:0.22267 [657] validation_0-logloss:0.21918 validation_1-logloss:0.22266 [658] validation_0-logloss:0.21916 validation_1-logloss:0.22264 [659] validation_0-logloss:0.21913 validation_1-logloss:0.22263 [660] validation_0-logloss:0.21912 validation_1-logloss:0.22263 [661] validation_0-logloss:0.21912 validation_1-logloss:0.22262 [662] validation_0-logloss:0.21911 validation_1-logloss:0.22262 [663] validation_0-logloss:0.21910 validation_1-logloss:0.22262 [664] validation_0-logloss:0.21908 validation_1-logloss:0.22262 [665] validation_0-logloss:0.21907 validation_1-logloss:0.22262 [666] validation_0-logloss:0.21906 validation_1-logloss:0.22261 [667] validation_0-logloss:0.21905 validation_1-logloss:0.22261 [668] validation_0-logloss:0.21904 validation_1-logloss:0.22260 [669] validation_0-logloss:0.21902 validation_1-logloss:0.22260 [670] validation_0-logloss:0.21901 validation_1-logloss:0.22260 [671] validation_0-logloss:0.21900 validation_1-logloss:0.22260 [672] validation_0-logloss:0.21899 validation_1-logloss:0.22260 [673] validation_0-logloss:0.21897 validation_1-logloss:0.22258 [674] validation_0-logloss:0.21896 validation_1-logloss:0.22258 [675] validation_0-logloss:0.21895 validation_1-logloss:0.22258 [676] validation_0-logloss:0.21894 validation_1-logloss:0.22257 [677] validation_0-logloss:0.21893 validation_1-logloss:0.22257 [678] validation_0-logloss:0.21892 validation_1-logloss:0.22257 [679] validation_0-logloss:0.21890 validation_1-logloss:0.22257 [680] validation_0-logloss:0.21890 validation_1-logloss:0.22257 [681] validation_0-logloss:0.21889 validation_1-logloss:0.22256 [682] validation_0-logloss:0.21886 validation_1-logloss:0.22255 [683] validation_0-logloss:0.21885 validation_1-logloss:0.22254 [684] validation_0-logloss:0.21884 validation_1-logloss:0.22254 [685] validation_0-logloss:0.21883 validation_1-logloss:0.22254 [686] validation_0-logloss:0.21882 validation_1-logloss:0.22254 [687] validation_0-logloss:0.21881 validation_1-logloss:0.22254 [688] validation_0-logloss:0.21879 validation_1-logloss:0.22253 [689] validation_0-logloss:0.21879 validation_1-logloss:0.22253 [690] validation_0-logloss:0.21877 validation_1-logloss:0.22252 [691] validation_0-logloss:0.21876 validation_1-logloss:0.22251 [692] validation_0-logloss:0.21875 validation_1-logloss:0.22252 [693] validation_0-logloss:0.21874 validation_1-logloss:0.22252 [694] validation_0-logloss:0.21872 validation_1-logloss:0.22251 [695] validation_0-logloss:0.21871 validation_1-logloss:0.22250 [696] validation_0-logloss:0.21871 validation_1-logloss:0.22250 [697] validation_0-logloss:0.21869 validation_1-logloss:0.22250 [698] validation_0-logloss:0.21869 validation_1-logloss:0.22250 [699] validation_0-logloss:0.21868 validation_1-logloss:0.22249 [700] validation_0-logloss:0.21866 validation_1-logloss:0.22249 [701] validation_0-logloss:0.21865 validation_1-logloss:0.22248 [702] validation_0-logloss:0.21864 validation_1-logloss:0.22248 [703] validation_0-logloss:0.21862 validation_1-logloss:0.22248 [704] validation_0-logloss:0.21861 validation_1-logloss:0.22247 [705] validation_0-logloss:0.21861 validation_1-logloss:0.22248 [706] validation_0-logloss:0.21860 validation_1-logloss:0.22247 [707] validation_0-logloss:0.21858 validation_1-logloss:0.22246 [708] validation_0-logloss:0.21857 validation_1-logloss:0.22246 [709] validation_0-logloss:0.21856 validation_1-logloss:0.22246 [710] validation_0-logloss:0.21854 validation_1-logloss:0.22245 [711] validation_0-logloss:0.21853 validation_1-logloss:0.22245 [712] validation_0-logloss:0.21852 validation_1-logloss:0.22245 [713] validation_0-logloss:0.21851 validation_1-logloss:0.22245 [714] validation_0-logloss:0.21850 validation_1-logloss:0.22244 [715] validation_0-logloss:0.21849 validation_1-logloss:0.22244 [716] validation_0-logloss:0.21848 validation_1-logloss:0.22245 [717] validation_0-logloss:0.21846 validation_1-logloss:0.22244 [718] validation_0-logloss:0.21845 validation_1-logloss:0.22243 [719] validation_0-logloss:0.21844 validation_1-logloss:0.22243 [720] validation_0-logloss:0.21843 validation_1-logloss:0.22243 [721] validation_0-logloss:0.21843 validation_1-logloss:0.22243 [722] validation_0-logloss:0.21842 validation_1-logloss:0.22243 [723] validation_0-logloss:0.21841 validation_1-logloss:0.22242 [724] validation_0-logloss:0.21840 validation_1-logloss:0.22243 [725] validation_0-logloss:0.21839 validation_1-logloss:0.22242 [726] validation_0-logloss:0.21838 validation_1-logloss:0.22242 [727] validation_0-logloss:0.21837 validation_1-logloss:0.22242 [728] validation_0-logloss:0.21836 validation_1-logloss:0.22242 [729] validation_0-logloss:0.21835 validation_1-logloss:0.22242 [730] validation_0-logloss:0.21834 validation_1-logloss:0.22241 [731] validation_0-logloss:0.21832 validation_1-logloss:0.22241 [732] validation_0-logloss:0.21831 validation_1-logloss:0.22241 [733] validation_0-logloss:0.21830 validation_1-logloss:0.22240 [734] validation_0-logloss:0.21828 validation_1-logloss:0.22240 [735] validation_0-logloss:0.21827 validation_1-logloss:0.22240 [736] validation_0-logloss:0.21826 validation_1-logloss:0.22240 [737] validation_0-logloss:0.21825 validation_1-logloss:0.22240 [738] validation_0-logloss:0.21825 validation_1-logloss:0.22239 [739] validation_0-logloss:0.21824 validation_1-logloss:0.22239 [740] validation_0-logloss:0.21823 validation_1-logloss:0.22239 [741] validation_0-logloss:0.21822 validation_1-logloss:0.22239 [742] validation_0-logloss:0.21820 validation_1-logloss:0.22239 [743] validation_0-logloss:0.21819 validation_1-logloss:0.22238 [744] validation_0-logloss:0.21818 validation_1-logloss:0.22238 [745] validation_0-logloss:0.21817 validation_1-logloss:0.22238 [746] validation_0-logloss:0.21816 validation_1-logloss:0.22238 [747] validation_0-logloss:0.21815 validation_1-logloss:0.22237 [748] validation_0-logloss:0.21813 validation_1-logloss:0.22238 [749] validation_0-logloss:0.21812 validation_1-logloss:0.22238 [750] validation_0-logloss:0.21811 validation_1-logloss:0.22238 [751] validation_0-logloss:0.21810 validation_1-logloss:0.22237 [752] validation_0-logloss:0.21809 validation_1-logloss:0.22237 [753] validation_0-logloss:0.21808 validation_1-logloss:0.22236 [754] validation_0-logloss:0.21806 validation_1-logloss:0.22236 [755] validation_0-logloss:0.21806 validation_1-logloss:0.22236 [756] validation_0-logloss:0.21804 validation_1-logloss:0.22235 [757] validation_0-logloss:0.21803 validation_1-logloss:0.22235 [758] validation_0-logloss:0.21802 validation_1-logloss:0.22235 [759] validation_0-logloss:0.21802 validation_1-logloss:0.22235 [760] validation_0-logloss:0.21801 validation_1-logloss:0.22235 [761] validation_0-logloss:0.21799 validation_1-logloss:0.22234 [762] validation_0-logloss:0.21798 validation_1-logloss:0.22234 [763] validation_0-logloss:0.21796 validation_1-logloss:0.22234 [764] validation_0-logloss:0.21794 validation_1-logloss:0.22232 [765] validation_0-logloss:0.21794 validation_1-logloss:0.22232 [766] validation_0-logloss:0.21793 validation_1-logloss:0.22232 [767] validation_0-logloss:0.21791 validation_1-logloss:0.22231 [768] validation_0-logloss:0.21790 validation_1-logloss:0.22230 [769] validation_0-logloss:0.21789 validation_1-logloss:0.22230 [770] validation_0-logloss:0.21788 validation_1-logloss:0.22230 [771] validation_0-logloss:0.21787 validation_1-logloss:0.22230 [772] validation_0-logloss:0.21786 validation_1-logloss:0.22230 [773] validation_0-logloss:0.21785 validation_1-logloss:0.22229 [774] validation_0-logloss:0.21784 validation_1-logloss:0.22229 [775] validation_0-logloss:0.21784 validation_1-logloss:0.22229 [776] validation_0-logloss:0.21783 validation_1-logloss:0.22229 [777] validation_0-logloss:0.21782 validation_1-logloss:0.22229 [778] validation_0-logloss:0.21781 validation_1-logloss:0.22229 [779] validation_0-logloss:0.21779 validation_1-logloss:0.22228 [780] validation_0-logloss:0.21777 validation_1-logloss:0.22227 [781] validation_0-logloss:0.21776 validation_1-logloss:0.22227 [782] validation_0-logloss:0.21775 validation_1-logloss:0.22227 [783] validation_0-logloss:0.21774 validation_1-logloss:0.22227 [784] validation_0-logloss:0.21773 validation_1-logloss:0.22227 [785] validation_0-logloss:0.21772 validation_1-logloss:0.22227 [786] validation_0-logloss:0.21771 validation_1-logloss:0.22226 [787] validation_0-logloss:0.21769 validation_1-logloss:0.22225 [788] validation_0-logloss:0.21768 validation_1-logloss:0.22225 [789] validation_0-logloss:0.21767 validation_1-logloss:0.22225 [790] validation_0-logloss:0.21766 validation_1-logloss:0.22224 [791] validation_0-logloss:0.21764 validation_1-logloss:0.22224 [792] validation_0-logloss:0.21764 validation_1-logloss:0.22224 [793] validation_0-logloss:0.21762 validation_1-logloss:0.22223 [794] validation_0-logloss:0.21761 validation_1-logloss:0.22223 [795] validation_0-logloss:0.21761 validation_1-logloss:0.22223 [796] validation_0-logloss:0.21760 validation_1-logloss:0.22223 [797] validation_0-logloss:0.21759 validation_1-logloss:0.22223 [798] validation_0-logloss:0.21758 validation_1-logloss:0.22223 [799] validation_0-logloss:0.21757 validation_1-logloss:0.22223 [800] validation_0-logloss:0.21756 validation_1-logloss:0.22222 [801] validation_0-logloss:0.21756 validation_1-logloss:0.22222 [802] validation_0-logloss:0.21755 validation_1-logloss:0.22222 [803] validation_0-logloss:0.21752 validation_1-logloss:0.22220 [804] validation_0-logloss:0.21751 validation_1-logloss:0.22219 [805] validation_0-logloss:0.21750 validation_1-logloss:0.22219 [806] validation_0-logloss:0.21749 validation_1-logloss:0.22219 [807] validation_0-logloss:0.21749 validation_1-logloss:0.22219 [808] validation_0-logloss:0.21747 validation_1-logloss:0.22219 [809] validation_0-logloss:0.21746 validation_1-logloss:0.22219 [810] validation_0-logloss:0.21746 validation_1-logloss:0.22219 [811] validation_0-logloss:0.21745 validation_1-logloss:0.22219 [812] validation_0-logloss:0.21744 validation_1-logloss:0.22219 [813] validation_0-logloss:0.21743 validation_1-logloss:0.22218 [814] validation_0-logloss:0.21742 validation_1-logloss:0.22218 [815] validation_0-logloss:0.21741 validation_1-logloss:0.22218 [816] validation_0-logloss:0.21740 validation_1-logloss:0.22218 [817] validation_0-logloss:0.21739 validation_1-logloss:0.22218 [818] validation_0-logloss:0.21738 validation_1-logloss:0.22218 [819] validation_0-logloss:0.21737 validation_1-logloss:0.22218 [820] validation_0-logloss:0.21735 validation_1-logloss:0.22216 [821] validation_0-logloss:0.21734 validation_1-logloss:0.22216 [822] validation_0-logloss:0.21733 validation_1-logloss:0.22216 [823] validation_0-logloss:0.21733 validation_1-logloss:0.22216 [824] validation_0-logloss:0.21732 validation_1-logloss:0.22215 [825] validation_0-logloss:0.21731 validation_1-logloss:0.22215 [826] validation_0-logloss:0.21730 validation_1-logloss:0.22216 [827] validation_0-logloss:0.21729 validation_1-logloss:0.22216 [828] validation_0-logloss:0.21728 validation_1-logloss:0.22216 [829] validation_0-logloss:0.21726 validation_1-logloss:0.22215 [830] validation_0-logloss:0.21725 validation_1-logloss:0.22214 [831] validation_0-logloss:0.21724 validation_1-logloss:0.22214 [832] validation_0-logloss:0.21723 validation_1-logloss:0.22214 [833] validation_0-logloss:0.21722 validation_1-logloss:0.22214 [834] validation_0-logloss:0.21721 validation_1-logloss:0.22214 [835] validation_0-logloss:0.21720 validation_1-logloss:0.22214 [836] validation_0-logloss:0.21719 validation_1-logloss:0.22214 [837] validation_0-logloss:0.21717 validation_1-logloss:0.22212 [838] validation_0-logloss:0.21716 validation_1-logloss:0.22212 [839] validation_0-logloss:0.21715 validation_1-logloss:0.22213 [840] validation_0-logloss:0.21713 validation_1-logloss:0.22212 [841] validation_0-logloss:0.21712 validation_1-logloss:0.22212 [842] validation_0-logloss:0.21712 validation_1-logloss:0.22212 [843] validation_0-logloss:0.21711 validation_1-logloss:0.22212 [844] validation_0-logloss:0.21710 validation_1-logloss:0.22211 [845] validation_0-logloss:0.21709 validation_1-logloss:0.22211 [846] validation_0-logloss:0.21708 validation_1-logloss:0.22211 [847] validation_0-logloss:0.21707 validation_1-logloss:0.22210 [848] validation_0-logloss:0.21706 validation_1-logloss:0.22210 [849] validation_0-logloss:0.21705 validation_1-logloss:0.22210 [850] validation_0-logloss:0.21704 validation_1-logloss:0.22209 [851] validation_0-logloss:0.21703 validation_1-logloss:0.22210 [852] validation_0-logloss:0.21702 validation_1-logloss:0.22210 [853] validation_0-logloss:0.21700 validation_1-logloss:0.22210 [854] validation_0-logloss:0.21699 validation_1-logloss:0.22210 [855] validation_0-logloss:0.21698 validation_1-logloss:0.22209 [856] validation_0-logloss:0.21697 validation_1-logloss:0.22209 [857] validation_0-logloss:0.21696 validation_1-logloss:0.22209 [858] validation_0-logloss:0.21696 validation_1-logloss:0.22209 [859] validation_0-logloss:0.21694 validation_1-logloss:0.22207 [860] validation_0-logloss:0.21693 validation_1-logloss:0.22208 [861] validation_0-logloss:0.21692 validation_1-logloss:0.22208 [862] validation_0-logloss:0.21691 validation_1-logloss:0.22208 [863] validation_0-logloss:0.21690 validation_1-logloss:0.22207 [864] validation_0-logloss:0.21689 validation_1-logloss:0.22207 [865] validation_0-logloss:0.21688 validation_1-logloss:0.22207 [866] validation_0-logloss:0.21688 validation_1-logloss:0.22207 [867] validation_0-logloss:0.21686 validation_1-logloss:0.22207 [868] validation_0-logloss:0.21685 validation_1-logloss:0.22207 [869] validation_0-logloss:0.21684 validation_1-logloss:0.22205 [870] validation_0-logloss:0.21682 validation_1-logloss:0.22205 [871] validation_0-logloss:0.21682 validation_1-logloss:0.22206 [872] validation_0-logloss:0.21681 validation_1-logloss:0.22206 [873] validation_0-logloss:0.21680 validation_1-logloss:0.22206 [874] validation_0-logloss:0.21679 validation_1-logloss:0.22206 [875] validation_0-logloss:0.21678 validation_1-logloss:0.22205 [876] validation_0-logloss:0.21677 validation_1-logloss:0.22205 [877] validation_0-logloss:0.21676 validation_1-logloss:0.22205 [878] validation_0-logloss:0.21675 validation_1-logloss:0.22204 [879] validation_0-logloss:0.21673 validation_1-logloss:0.22204 [880] validation_0-logloss:0.21672 validation_1-logloss:0.22204 [881] validation_0-logloss:0.21671 validation_1-logloss:0.22204 [882] validation_0-logloss:0.21670 validation_1-logloss:0.22204 [883] validation_0-logloss:0.21669 validation_1-logloss:0.22203 [884] validation_0-logloss:0.21668 validation_1-logloss:0.22203 [885] validation_0-logloss:0.21668 validation_1-logloss:0.22203 [886] validation_0-logloss:0.21667 validation_1-logloss:0.22203 [887] validation_0-logloss:0.21667 validation_1-logloss:0.22204 [888] validation_0-logloss:0.21665 validation_1-logloss:0.22204 [889] validation_0-logloss:0.21663 validation_1-logloss:0.22202 [890] validation_0-logloss:0.21662 validation_1-logloss:0.22202 [891] validation_0-logloss:0.21662 validation_1-logloss:0.22201 [892] validation_0-logloss:0.21660 validation_1-logloss:0.22200 [893] validation_0-logloss:0.21659 validation_1-logloss:0.22200 [894] validation_0-logloss:0.21658 validation_1-logloss:0.22199 [895] validation_0-logloss:0.21657 validation_1-logloss:0.22199 [896] validation_0-logloss:0.21655 validation_1-logloss:0.22199 [897] validation_0-logloss:0.21655 validation_1-logloss:0.22200 [898] validation_0-logloss:0.21654 validation_1-logloss:0.22200 [899] validation_0-logloss:0.21652 validation_1-logloss:0.22199 [900] validation_0-logloss:0.21651 validation_1-logloss:0.22199 [901] validation_0-logloss:0.21650 validation_1-logloss:0.22199 [902] validation_0-logloss:0.21649 validation_1-logloss:0.22199 [903] validation_0-logloss:0.21648 validation_1-logloss:0.22199 [904] validation_0-logloss:0.21647 validation_1-logloss:0.22198 [905] validation_0-logloss:0.21646 validation_1-logloss:0.22198 [906] validation_0-logloss:0.21645 validation_1-logloss:0.22197 [907] validation_0-logloss:0.21644 validation_1-logloss:0.22198 [908] validation_0-logloss:0.21643 validation_1-logloss:0.22197 [909] validation_0-logloss:0.21642 validation_1-logloss:0.22197 [910] validation_0-logloss:0.21641 validation_1-logloss:0.22198 [911] validation_0-logloss:0.21640 validation_1-logloss:0.22198 [912] validation_0-logloss:0.21638 validation_1-logloss:0.22197 [913] validation_0-logloss:0.21637 validation_1-logloss:0.22197 [914] validation_0-logloss:0.21636 validation_1-logloss:0.22196 [915] validation_0-logloss:0.21635 validation_1-logloss:0.22196 [916] validation_0-logloss:0.21633 validation_1-logloss:0.22196 [917] validation_0-logloss:0.21633 validation_1-logloss:0.22196 [918] validation_0-logloss:0.21632 validation_1-logloss:0.22195 [919] validation_0-logloss:0.21631 validation_1-logloss:0.22195 [920] validation_0-logloss:0.21630 validation_1-logloss:0.22195 [921] validation_0-logloss:0.21629 validation_1-logloss:0.22195 [922] validation_0-logloss:0.21628 validation_1-logloss:0.22195 [923] validation_0-logloss:0.21628 validation_1-logloss:0.22195 [924] validation_0-logloss:0.21626 validation_1-logloss:0.22195 [925] validation_0-logloss:0.21625 validation_1-logloss:0.22195 [926] validation_0-logloss:0.21625 validation_1-logloss:0.22195 [927] validation_0-logloss:0.21624 validation_1-logloss:0.22195 [928] validation_0-logloss:0.21623 validation_1-logloss:0.22195 [929] validation_0-logloss:0.21622 validation_1-logloss:0.22194 [930] validation_0-logloss:0.21621 validation_1-logloss:0.22194 [931] validation_0-logloss:0.21620 validation_1-logloss:0.22194 [932] validation_0-logloss:0.21619 validation_1-logloss:0.22194 [933] validation_0-logloss:0.21618 validation_1-logloss:0.22194 [934] validation_0-logloss:0.21617 validation_1-logloss:0.22194 [935] validation_0-logloss:0.21617 validation_1-logloss:0.22194 [936] validation_0-logloss:0.21615 validation_1-logloss:0.22193 [937] validation_0-logloss:0.21615 validation_1-logloss:0.22193 [938] validation_0-logloss:0.21613 validation_1-logloss:0.22193 [939] validation_0-logloss:0.21613 validation_1-logloss:0.22193 [940] validation_0-logloss:0.21612 validation_1-logloss:0.22193 [941] validation_0-logloss:0.21611 validation_1-logloss:0.22193 [942] validation_0-logloss:0.21610 validation_1-logloss:0.22193 [943] validation_0-logloss:0.21609 validation_1-logloss:0.22193 [944] validation_0-logloss:0.21608 validation_1-logloss:0.22193 [945] validation_0-logloss:0.21607 validation_1-logloss:0.22193 [946] validation_0-logloss:0.21607 validation_1-logloss:0.22192 [947] validation_0-logloss:0.21606 validation_1-logloss:0.22192 [948] validation_0-logloss:0.21605 validation_1-logloss:0.22192 [949] validation_0-logloss:0.21604 validation_1-logloss:0.22192 [950] validation_0-logloss:0.21603 validation_1-logloss:0.22192 [951] validation_0-logloss:0.21602 validation_1-logloss:0.22192 [952] validation_0-logloss:0.21601 validation_1-logloss:0.22191 [953] validation_0-logloss:0.21601 validation_1-logloss:0.22191 [954] validation_0-logloss:0.21599 validation_1-logloss:0.22190 [955] validation_0-logloss:0.21598 validation_1-logloss:0.22190 [956] validation_0-logloss:0.21597 validation_1-logloss:0.22190 [957] validation_0-logloss:0.21596 validation_1-logloss:0.22190 [958] validation_0-logloss:0.21595 validation_1-logloss:0.22190 [959] validation_0-logloss:0.21594 validation_1-logloss:0.22190 [960] validation_0-logloss:0.21593 validation_1-logloss:0.22190 [961] validation_0-logloss:0.21592 validation_1-logloss:0.22190 [962] validation_0-logloss:0.21591 validation_1-logloss:0.22190 [963] validation_0-logloss:0.21591 validation_1-logloss:0.22190 [964] validation_0-logloss:0.21590 validation_1-logloss:0.22190 [965] validation_0-logloss:0.21589 validation_1-logloss:0.22190 [966] validation_0-logloss:0.21588 validation_1-logloss:0.22189 [967] validation_0-logloss:0.21587 validation_1-logloss:0.22189 [968] validation_0-logloss:0.21587 validation_1-logloss:0.22189 [969] validation_0-logloss:0.21585 validation_1-logloss:0.22189 [970] validation_0-logloss:0.21584 validation_1-logloss:0.22188 [971] validation_0-logloss:0.21583 validation_1-logloss:0.22188 [972] validation_0-logloss:0.21582 validation_1-logloss:0.22188 [973] validation_0-logloss:0.21582 validation_1-logloss:0.22188 [974] validation_0-logloss:0.21581 validation_1-logloss:0.22188 [975] validation_0-logloss:0.21580 validation_1-logloss:0.22187 [976] validation_0-logloss:0.21579 validation_1-logloss:0.22187 [977] validation_0-logloss:0.21578 validation_1-logloss:0.22187 [978] validation_0-logloss:0.21577 validation_1-logloss:0.22187 [979] validation_0-logloss:0.21576 validation_1-logloss:0.22187 [980] validation_0-logloss:0.21575 validation_1-logloss:0.22187 [981] validation_0-logloss:0.21574 validation_1-logloss:0.22187 [982] validation_0-logloss:0.21573 validation_1-logloss:0.22187 [983] validation_0-logloss:0.21572 validation_1-logloss:0.22187 [984] validation_0-logloss:0.21571 validation_1-logloss:0.22187 [985] validation_0-logloss:0.21571 validation_1-logloss:0.22186 [986] validation_0-logloss:0.21569 validation_1-logloss:0.22186 [987] validation_0-logloss:0.21568 validation_1-logloss:0.22186 [988] validation_0-logloss:0.21567 validation_1-logloss:0.22186 [989] validation_0-logloss:0.21567 validation_1-logloss:0.22186 [990] validation_0-logloss:0.21566 validation_1-logloss:0.22185 [991] validation_0-logloss:0.21565 validation_1-logloss:0.22186 [992] validation_0-logloss:0.21563 validation_1-logloss:0.22185 [993] validation_0-logloss:0.21563 validation_1-logloss:0.22185 [994] validation_0-logloss:0.21562 validation_1-logloss:0.22185 [995] validation_0-logloss:0.21560 validation_1-logloss:0.22185 [996] validation_0-logloss:0.21559 validation_1-logloss:0.22185 [997] validation_0-logloss:0.21558 validation_1-logloss:0.22184 [998] validation_0-logloss:0.21557 validation_1-logloss:0.22185 [999] validation_0-logloss:0.21556 validation_1-logloss:0.22185 [1000] validation_0-logloss:0.21555 validation_1-logloss:0.22184 [1001] validation_0-logloss:0.21554 validation_1-logloss:0.22183 [1002] validation_0-logloss:0.21553 validation_1-logloss:0.22183 [1003] validation_0-logloss:0.21552 validation_1-logloss:0.22183 [1004] validation_0-logloss:0.21551 validation_1-logloss:0.22183 [1005] validation_0-logloss:0.21550 validation_1-logloss:0.22183 [1006] validation_0-logloss:0.21549 validation_1-logloss:0.22183 [1007] validation_0-logloss:0.21548 validation_1-logloss:0.22183 [1008] validation_0-logloss:0.21547 validation_1-logloss:0.22182 [1009] validation_0-logloss:0.21546 validation_1-logloss:0.22181 [1010] validation_0-logloss:0.21545 validation_1-logloss:0.22181 [1011] validation_0-logloss:0.21544 validation_1-logloss:0.22181 [1012] validation_0-logloss:0.21543 validation_1-logloss:0.22181 [1013] validation_0-logloss:0.21542 validation_1-logloss:0.22181 [1014] validation_0-logloss:0.21541 validation_1-logloss:0.22181 [1015] validation_0-logloss:0.21540 validation_1-logloss:0.22181 [1016] validation_0-logloss:0.21539 validation_1-logloss:0.22181 [1017] validation_0-logloss:0.21538 validation_1-logloss:0.22181 [1018] validation_0-logloss:0.21537 validation_1-logloss:0.22182 [1019] validation_0-logloss:0.21537 validation_1-logloss:0.22182 [1020] validation_0-logloss:0.21536 validation_1-logloss:0.22181 [1021] validation_0-logloss:0.21534 validation_1-logloss:0.22180 [1022] validation_0-logloss:0.21534 validation_1-logloss:0.22180 [1023] validation_0-logloss:0.21533 validation_1-logloss:0.22180 [1024] validation_0-logloss:0.21532 validation_1-logloss:0.22179 [1025] validation_0-logloss:0.21531 validation_1-logloss:0.22180 [1026] validation_0-logloss:0.21530 validation_1-logloss:0.22180 [1027] validation_0-logloss:0.21529 validation_1-logloss:0.22180 [1028] validation_0-logloss:0.21528 validation_1-logloss:0.22180 [1029] validation_0-logloss:0.21527 validation_1-logloss:0.22179 [1030] validation_0-logloss:0.21526 validation_1-logloss:0.22178 [1031] validation_0-logloss:0.21524 validation_1-logloss:0.22178 [1032] validation_0-logloss:0.21523 validation_1-logloss:0.22178 [1033] validation_0-logloss:0.21522 validation_1-logloss:0.22178 [1034] validation_0-logloss:0.21522 validation_1-logloss:0.22178 [1035] validation_0-logloss:0.21521 validation_1-logloss:0.22178 [1036] validation_0-logloss:0.21518 validation_1-logloss:0.22177 [1037] validation_0-logloss:0.21517 validation_1-logloss:0.22177 [1038] validation_0-logloss:0.21517 validation_1-logloss:0.22177 [1039] validation_0-logloss:0.21516 validation_1-logloss:0.22177 [1040] validation_0-logloss:0.21515 validation_1-logloss:0.22177 [1041] validation_0-logloss:0.21513 validation_1-logloss:0.22177 [1042] validation_0-logloss:0.21512 validation_1-logloss:0.22177 [1043] validation_0-logloss:0.21511 validation_1-logloss:0.22177 [1044] validation_0-logloss:0.21510 validation_1-logloss:0.22177 [1045] validation_0-logloss:0.21510 validation_1-logloss:0.22176 [1046] validation_0-logloss:0.21509 validation_1-logloss:0.22177 [1047] validation_0-logloss:0.21507 validation_1-logloss:0.22176 [1048] validation_0-logloss:0.21506 validation_1-logloss:0.22175 [1049] validation_0-logloss:0.21505 validation_1-logloss:0.22175 [1050] validation_0-logloss:0.21505 validation_1-logloss:0.22175 [1051] validation_0-logloss:0.21504 validation_1-logloss:0.22175 [1052] validation_0-logloss:0.21503 validation_1-logloss:0.22174 [1053] validation_0-logloss:0.21502 validation_1-logloss:0.22174 [1054] validation_0-logloss:0.21501 validation_1-logloss:0.22174 [1055] validation_0-logloss:0.21500 validation_1-logloss:0.22174 [1056] validation_0-logloss:0.21499 validation_1-logloss:0.22173 [1057] validation_0-logloss:0.21499 validation_1-logloss:0.22173 [1058] validation_0-logloss:0.21498 validation_1-logloss:0.22173 [1059] validation_0-logloss:0.21497 validation_1-logloss:0.22173 [1060] validation_0-logloss:0.21496 validation_1-logloss:0.22173 [1061] validation_0-logloss:0.21495 validation_1-logloss:0.22173 [1062] validation_0-logloss:0.21494 validation_1-logloss:0.22173 [1063] validation_0-logloss:0.21493 validation_1-logloss:0.22173 [1064] validation_0-logloss:0.21492 validation_1-logloss:0.22173 [1065] validation_0-logloss:0.21491 validation_1-logloss:0.22173 [1066] validation_0-logloss:0.21490 validation_1-logloss:0.22172 [1067] validation_0-logloss:0.21489 validation_1-logloss:0.22172 [1068] validation_0-logloss:0.21489 validation_1-logloss:0.22172 [1069] validation_0-logloss:0.21488 validation_1-logloss:0.22172 [1070] validation_0-logloss:0.21487 validation_1-logloss:0.22171 [1071] validation_0-logloss:0.21486 validation_1-logloss:0.22171 [1072] validation_0-logloss:0.21485 validation_1-logloss:0.22171 [1073] validation_0-logloss:0.21485 validation_1-logloss:0.22172 [1074] validation_0-logloss:0.21484 validation_1-logloss:0.22171 [1075] validation_0-logloss:0.21483 validation_1-logloss:0.22171 [1076] validation_0-logloss:0.21482 validation_1-logloss:0.22171 [1077] validation_0-logloss:0.21481 validation_1-logloss:0.22171 [1078] validation_0-logloss:0.21480 validation_1-logloss:0.22171 [1079] validation_0-logloss:0.21480 validation_1-logloss:0.22171 [1080] validation_0-logloss:0.21478 validation_1-logloss:0.22171 [1081] validation_0-logloss:0.21477 validation_1-logloss:0.22171 [1082] validation_0-logloss:0.21476 validation_1-logloss:0.22172 [1083] validation_0-logloss:0.21475 validation_1-logloss:0.22171 [1084] validation_0-logloss:0.21474 validation_1-logloss:0.22171 [1085] validation_0-logloss:0.21473 validation_1-logloss:0.22171 [1086] validation_0-logloss:0.21472 validation_1-logloss:0.22171 [1087] validation_0-logloss:0.21471 validation_1-logloss:0.22171 [1088] validation_0-logloss:0.21471 validation_1-logloss:0.22171 [1089] validation_0-logloss:0.21470 validation_1-logloss:0.22171 [1090] validation_0-logloss:0.21468 validation_1-logloss:0.22171 [1091] validation_0-logloss:0.21468 validation_1-logloss:0.22171 [1092] validation_0-logloss:0.21467 validation_1-logloss:0.22170 [1093] validation_0-logloss:0.21466 validation_1-logloss:0.22170 [1094] validation_0-logloss:0.21465 validation_1-logloss:0.22170 [1095] validation_0-logloss:0.21464 validation_1-logloss:0.22170 [1096] validation_0-logloss:0.21463 validation_1-logloss:0.22170 [1097] validation_0-logloss:0.21462 validation_1-logloss:0.22170 [1098] validation_0-logloss:0.21461 validation_1-logloss:0.22170 [1099] validation_0-logloss:0.21460 validation_1-logloss:0.22171 [1100] validation_0-logloss:0.21459 validation_1-logloss:0.22170 [1101] validation_0-logloss:0.21459 validation_1-logloss:0.22170 [1102] validation_0-logloss:0.21457 validation_1-logloss:0.22169 [1103] validation_0-logloss:0.21457 validation_1-logloss:0.22169 [1104] validation_0-logloss:0.21455 validation_1-logloss:0.22169 [1105] validation_0-logloss:0.21455 validation_1-logloss:0.22168 [1106] validation_0-logloss:0.21454 validation_1-logloss:0.22168 [1107] validation_0-logloss:0.21454 validation_1-logloss:0.22168 [1108] validation_0-logloss:0.21453 validation_1-logloss:0.22168 [1109] validation_0-logloss:0.21452 validation_1-logloss:0.22169 [1110] validation_0-logloss:0.21451 validation_1-logloss:0.22168 [1111] validation_0-logloss:0.21450 validation_1-logloss:0.22169 [1112] validation_0-logloss:0.21449 validation_1-logloss:0.22169 [1113] validation_0-logloss:0.21448 validation_1-logloss:0.22169 [1114] validation_0-logloss:0.21447 validation_1-logloss:0.22168 [1115] validation_0-logloss:0.21446 validation_1-logloss:0.22168 [1116] validation_0-logloss:0.21445 validation_1-logloss:0.22168 [1117] validation_0-logloss:0.21444 validation_1-logloss:0.22168 [1118] validation_0-logloss:0.21443 validation_1-logloss:0.22168 [1119] validation_0-logloss:0.21443 validation_1-logloss:0.22167 [1120] validation_0-logloss:0.21442 validation_1-logloss:0.22167 [1121] validation_0-logloss:0.21441 validation_1-logloss:0.22167 [1122] validation_0-logloss:0.21440 validation_1-logloss:0.22167 [1123] validation_0-logloss:0.21439 validation_1-logloss:0.22167 [1124] validation_0-logloss:0.21438 validation_1-logloss:0.22167 [1125] validation_0-logloss:0.21437 validation_1-logloss:0.22167 [1126] validation_0-logloss:0.21436 validation_1-logloss:0.22166 [1127] validation_0-logloss:0.21435 validation_1-logloss:0.22166 [1128] validation_0-logloss:0.21434 validation_1-logloss:0.22166 [1129] validation_0-logloss:0.21433 validation_1-logloss:0.22166 [1130] validation_0-logloss:0.21432 validation_1-logloss:0.22166 [1131] validation_0-logloss:0.21431 validation_1-logloss:0.22166 [1132] validation_0-logloss:0.21430 validation_1-logloss:0.22166 [1133] validation_0-logloss:0.21430 validation_1-logloss:0.22167 [1134] validation_0-logloss:0.21429 validation_1-logloss:0.22167 [1135] validation_0-logloss:0.21428 validation_1-logloss:0.22167 [1136] validation_0-logloss:0.21427 validation_1-logloss:0.22167 [1137] validation_0-logloss:0.21426 validation_1-logloss:0.22167 [1138] validation_0-logloss:0.21425 validation_1-logloss:0.22167 [1139] validation_0-logloss:0.21424 validation_1-logloss:0.22167 [1140] validation_0-logloss:0.21424 validation_1-logloss:0.22168 [1141] validation_0-logloss:0.21423 validation_1-logloss:0.22167 [1142] validation_0-logloss:0.21422 validation_1-logloss:0.22167 [1143] validation_0-logloss:0.21421 validation_1-logloss:0.22167 [1144] validation_0-logloss:0.21420 validation_1-logloss:0.22167 [1145] validation_0-logloss:0.21419 validation_1-logloss:0.22167 [1146] validation_0-logloss:0.21419 validation_1-logloss:0.22167 [1147] validation_0-logloss:0.21418 validation_1-logloss:0.22167 [1148] validation_0-logloss:0.21417 validation_1-logloss:0.22167 [1149] validation_0-logloss:0.21416 validation_1-logloss:0.22167 [1150] validation_0-logloss:0.21416 validation_1-logloss:0.22167 [1151] validation_0-logloss:0.21415 validation_1-logloss:0.22167 [1152] validation_0-logloss:0.21413 validation_1-logloss:0.22166 [1153] validation_0-logloss:0.21412 validation_1-logloss:0.22166 [1154] validation_0-logloss:0.21411 validation_1-logloss:0.22166 [1155] validation_0-logloss:0.21410 validation_1-logloss:0.22166 [1156] validation_0-logloss:0.21409 validation_1-logloss:0.22166 [1157] validation_0-logloss:0.21409 validation_1-logloss:0.22166 [1158] validation_0-logloss:0.21408 validation_1-logloss:0.22166 [1159] validation_0-logloss:0.21407 validation_1-logloss:0.22166 [1160] validation_0-logloss:0.21406 validation_1-logloss:0.22165 [1161] validation_0-logloss:0.21404 validation_1-logloss:0.22165 [1162] validation_0-logloss:0.21403 validation_1-logloss:0.22165 [1163] validation_0-logloss:0.21403 validation_1-logloss:0.22165 [1164] validation_0-logloss:0.21402 validation_1-logloss:0.22165 [1165] validation_0-logloss:0.21401 validation_1-logloss:0.22165 [1166] validation_0-logloss:0.21400 validation_1-logloss:0.22165 [1167] validation_0-logloss:0.21399 validation_1-logloss:0.22165 [1168] validation_0-logloss:0.21398 validation_1-logloss:0.22165 [1169] validation_0-logloss:0.21397 validation_1-logloss:0.22165 [1170] validation_0-logloss:0.21396 validation_1-logloss:0.22165 [1171] validation_0-logloss:0.21395 validation_1-logloss:0.22165 [1172] validation_0-logloss:0.21395 validation_1-logloss:0.22165 [1173] validation_0-logloss:0.21394 validation_1-logloss:0.22165 [1174] validation_0-logloss:0.21393 validation_1-logloss:0.22165 [1175] validation_0-logloss:0.21392 validation_1-logloss:0.22165 [1176] validation_0-logloss:0.21391 validation_1-logloss:0.22164 [1177] validation_0-logloss:0.21389 validation_1-logloss:0.22164 [1178] validation_0-logloss:0.21389 validation_1-logloss:0.22164 [1179] validation_0-logloss:0.21388 validation_1-logloss:0.22163 [1180] validation_0-logloss:0.21387 validation_1-logloss:0.22163 [1181] validation_0-logloss:0.21385 validation_1-logloss:0.22163 [1182] validation_0-logloss:0.21384 validation_1-logloss:0.22163 [1183] validation_0-logloss:0.21383 validation_1-logloss:0.22162 [1184] validation_0-logloss:0.21383 validation_1-logloss:0.22163 [1185] validation_0-logloss:0.21381 validation_1-logloss:0.22163 [1186] validation_0-logloss:0.21380 validation_1-logloss:0.22163 [1187] validation_0-logloss:0.21379 validation_1-logloss:0.22163 [1188] validation_0-logloss:0.21378 validation_1-logloss:0.22162 [1189] validation_0-logloss:0.21377 validation_1-logloss:0.22162 [1190] validation_0-logloss:0.21377 validation_1-logloss:0.22162 [1191] validation_0-logloss:0.21376 validation_1-logloss:0.22162 [1192] validation_0-logloss:0.21375 validation_1-logloss:0.22162 [1193] validation_0-logloss:0.21374 validation_1-logloss:0.22162 [1194] validation_0-logloss:0.21373 validation_1-logloss:0.22162 [1195] validation_0-logloss:0.21372 validation_1-logloss:0.22162 [1196] validation_0-logloss:0.21371 validation_1-logloss:0.22162 [1197] validation_0-logloss:0.21371 validation_1-logloss:0.22162 [1198] validation_0-logloss:0.21369 validation_1-logloss:0.22161 [1199] validation_0-logloss:0.21369 validation_1-logloss:0.22162 [1200] validation_0-logloss:0.21368 validation_1-logloss:0.22162 [1201] validation_0-logloss:0.21367 validation_1-logloss:0.22162 [1202] validation_0-logloss:0.21366 validation_1-logloss:0.22162 [1203] validation_0-logloss:0.21365 validation_1-logloss:0.22162 [1204] validation_0-logloss:0.21364 validation_1-logloss:0.22162 [1205] validation_0-logloss:0.21363 validation_1-logloss:0.22162 [1206] validation_0-logloss:0.21362 validation_1-logloss:0.22162 [1207] validation_0-logloss:0.21361 validation_1-logloss:0.22162 [1208] validation_0-logloss:0.21360 validation_1-logloss:0.22162 [1209] validation_0-logloss:0.21359 validation_1-logloss:0.22162 [1210] validation_0-logloss:0.21358 validation_1-logloss:0.22163 [1211] validation_0-logloss:0.21358 validation_1-logloss:0.22163 [1212] validation_0-logloss:0.21357 validation_1-logloss:0.22163 [1213] validation_0-logloss:0.21356 validation_1-logloss:0.22163 [1214] validation_0-logloss:0.21355 validation_1-logloss:0.22163 [1215] validation_0-logloss:0.21354 validation_1-logloss:0.22163 [1216] validation_0-logloss:0.21353 validation_1-logloss:0.22163 [1217] validation_0-logloss:0.21352 validation_1-logloss:0.22163 [1218] validation_0-logloss:0.21351 validation_1-logloss:0.22163 [1219] validation_0-logloss:0.21351 validation_1-logloss:0.22163 [1220] validation_0-logloss:0.21350 validation_1-logloss:0.22163 [1221] validation_0-logloss:0.21349 validation_1-logloss:0.22163 [1222] validation_0-logloss:0.21348 validation_1-logloss:0.22163 [1223] validation_0-logloss:0.21347 validation_1-logloss:0.22163 [1224] validation_0-logloss:0.21346 validation_1-logloss:0.22163 [1225] validation_0-logloss:0.21345 validation_1-logloss:0.22164 [1226] validation_0-logloss:0.21345 validation_1-logloss:0.22164 [1227] validation_0-logloss:0.21344 validation_1-logloss:0.22164 [1228] validation_0-logloss:0.21343 validation_1-logloss:0.22164 [1229] validation_0-logloss:0.21342 validation_1-logloss:0.22164 [1230] validation_0-logloss:0.21341 validation_1-logloss:0.22163 [1231] validation_0-logloss:0.21340 validation_1-logloss:0.22163 [1232] validation_0-logloss:0.21339 validation_1-logloss:0.22163 [1233] validation_0-logloss:0.21338 validation_1-logloss:0.22163 [1234] validation_0-logloss:0.21338 validation_1-logloss:0.22163 [1235] validation_0-logloss:0.21337 validation_1-logloss:0.22164 [1236] validation_0-logloss:0.21336 validation_1-logloss:0.22164 [1237] validation_0-logloss:0.21335 validation_1-logloss:0.22164 [1238] validation_0-logloss:0.21334 validation_1-logloss:0.22163 [1239] validation_0-logloss:0.21334 validation_1-logloss:0.22163 [1240] validation_0-logloss:0.21333 validation_1-logloss:0.22163 [1241] validation_0-logloss:0.21332 validation_1-logloss:0.22164 [1242] validation_0-logloss:0.21331 validation_1-logloss:0.22164 [1243] validation_0-logloss:0.21331 validation_1-logloss:0.22164 [1244] validation_0-logloss:0.21330 validation_1-logloss:0.22163 [1245] validation_0-logloss:0.21329 validation_1-logloss:0.22164 [1246] validation_0-logloss:0.21328 validation_1-logloss:0.22163 [1247] validation_0-logloss:0.21328 validation_1-logloss:0.22163 [1248] validation_0-logloss:0.21327 validation_1-logloss:0.22164
from sklearn.metrics import roc_curve, RocCurveDisplay
val_probs = m1.predict_proba(X_val)[:, 1]
auc = roc_auc_score(y_val, val_probs)
print(f"Validation ROC AUC: {auc:.4f}")
fpr, tpr, thresholds = roc_curve(y_val, val_probs)
RocCurveDisplay(fpr=fpr, tpr=tpr, roc_auc=auc).plot()
plt.title('ROC Curve (Validation Set)')
plt.show()
Validation ROC AUC: 0.9440
explainer = shap.TreeExplainer(m1)
shap_sample = X_val.sample(n=min(5000, len(X_val)), random_state=SEED)
shap_values = explainer.shap_values(shap_sample)
shap.summary_plot(shap_values, shap_sample)
N_FOLDS = 5
skf = StratifiedKFold(n_splits=N_FOLDS, shuffle=True, random_state=SEED)
oof_xgb = np.zeros(len(X))
oof_lgbm = np.zeros(len(X))
oof_cb = np.zeros(len(X))
test_xgb = np.zeros(len(test))
test_lgbm = np.zeros(len(test))
test_cb = np.zeros(len(test))
for fold, (tr_idx, val_idx) in enumerate(skf.split(X, y), start=1):
X_tr, X_va = X.iloc[tr_idx], X.iloc[val_idx]
y_tr, y_va = y.iloc[tr_idx], y.iloc[val_idx]
xgb_model = xgboost.XGBClassifier(
**study.best_params,
random_state=SEED,
eval_metric='logloss',
early_stopping_rounds=50,
tree_method='hist',
device='cuda',
)
xgb_model.fit(X_tr, y_tr, eval_set=[(X_va, y_va)], verbose=False)
oof_xgb[val_idx] = xgb_model.predict_proba(X_va)[:, 1]
test_xgb += xgb_model.predict_proba(test)[:, 1] / N_FOLDS
lgbm_model = lightgbm.LGBMClassifier(
n_estimators=1000,
learning_rate=0.05,
random_state=SEED,
verbosity=-1,
)
lgbm_model.fit(
X_tr, y_tr,
eval_set=[(X_va, y_va)],
callbacks=[lightgbm.early_stopping(50, verbose=False)],
)
oof_lgbm[val_idx] = lgbm_model.predict_proba(X_va)[:, 1]
test_lgbm += lgbm_model.predict_proba(test)[:, 1] / N_FOLDS
cb = catboost.CatBoostClassifier(
iterations=1000,
learning_rate=0.05,
random_state=SEED,
verbose=False,
)
cb.fit(X_tr, y_tr, eval_set=[(X_va, y_va)], verbose=False)
oof_cb[val_idx] = cb.predict_proba(X_va)[:, 1]
test_cb += cb.predict_proba(test)[:, 1] / N_FOLDS
print(
f"Fold {fold}: "
f"XGB AUC={roc_auc_score(y_va, oof_xgb[val_idx]):.4f} "
f"LGBM AUC={roc_auc_score(y_va, oof_lgbm[val_idx]):.4f} "
f"CB AUC={roc_auc_score(y_va, oof_cb[val_idx]):.4f}"
)
oof_ensemble = (oof_xgb + oof_lgbm + oof_cb) / 3
test_ensemble = (test_xgb + test_lgbm + test_cb) / 3
print(f"\nOverall OOF AUC - XGBoost: {roc_auc_score(y, oof_xgb):.4f}")
print(f"Overall OOF AUC - LightGBM: {roc_auc_score(y, oof_lgbm):.4f}")
print(f"Overall OOF AUC - CatBoost: {roc_auc_score(y, oof_cb):.4f}")
print(f"Overall OOF AUC - Ensemble: {roc_auc_score(y, oof_ensemble):.4f}")
File "c:\Users\user\miniconda3\Lib\site-packages\joblib\externals\loky\backend\context.py", line 247, in _count_physical_cores
cpu_count_physical = _count_physical_cores_win32()
File "c:\Users\user\miniconda3\Lib\site-packages\joblib\externals\loky\backend\context.py", line 299, in _count_physical_cores_win32
cpu_info = subprocess.run(
"wmic CPU Get NumberOfCores /Format:csv".split(),
capture_output=True,
text=True,
)
File "c:\Users\user\miniconda3\Lib\subprocess.py", line 554, in run
with Popen(*popenargs, **kwargs) as process:
~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\user\miniconda3\Lib\subprocess.py", line 1039, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pass_fds, cwd, env,
^^^^^^^^^^^^^^^^^^^
...<5 lines>...
gid, gids, uid, umask,
^^^^^^^^^^^^^^^^^^^^^^
start_new_session, process_group)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\user\miniconda3\Lib\subprocess.py", line 1554, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
# no special security
^^^^^^^^^^^^^^^^^^^^^
...<4 lines>...
cwd,
^^^^
startupinfo)
^^^^^^^^^^^^
# Stacking: instead of averaging the three base models equally, train a meta-model
# on their out-of-fold predictions to learn better-than-equal weights. Safe from
# leakage because oof_xgb/oof_lgbm/oof_cb were never predicted by a model that saw
# that row during training.
meta_train = np.column_stack([oof_xgb, oof_lgbm, oof_cb])
meta_test = np.column_stack([test_xgb, test_lgbm, test_cb])
meta_model = LogisticRegression()
meta_model.fit(meta_train, y)
oof_stacked = meta_model.predict_proba(meta_train)[:, 1]
test_stacked = meta_model.predict_proba(meta_test)[:, 1]
print("Meta-model weights [XGB, LightGBM, CatBoost]:", meta_model.coef_[0])
print(f"Simple-average OOF AUC: {roc_auc_score(y, oof_ensemble):.4f}")
print(f"Stacked OOF AUC: {roc_auc_score(y, oof_stacked):.4f}")
Meta-model weights [XGB, LightGBM, CatBoost]: [2.30077724 2.28322224 2.28283037] Simple-average OOF AUC: 0.9440 Stacked OOF AUC: 0.9440
submission_df = pd.DataFrame({
'id': test_ids,
target: test_stacked
})
submission_df.to_csv('submission_xgb_lgb_svm-stack.csv', index=False)
print(submission_df.head())
id Will_Buy_EV 0 668665 0.028886 1 668666 0.028852 2 668667 0.026965 3 668668 0.026505 4 668669 0.030167
best_public = pd.read_csv('best-public.csv')
ours = pd.read_csv('submission_stacked.csv')
blend = ours.merge(best_public, on='id', suffixes=('_ours', '_public'))
print(f"Correlation between our predictions and best-public: "
f"{blend[f'{target}_ours'].corr(blend[f'{target}_public']):.4f}")
# weight on the public submission -- start at 0.5 (equal trust) and adjust based on
# how each scores on the leaderboard once you have both scores to compare
PUBLIC_WEIGHT = 0.8
blend[target] = (
(1 - PUBLIC_WEIGHT) * blend[f'{target}_ours']
+ PUBLIC_WEIGHT * blend[f'{target}_public']
)
blend_submission = blend[['id', target]]
blend_submission.to_csv('submission_blend.csv', index=False)
print(blend_submission.head())
Correlation between our predictions and best-public: 0.7354
id Will_Buy_EV
0 668665 0.469378
1 668666 0.391568
2 668667 0.252376
3 668668 0.214066
4 668669 0.446577
explainer = shap.TreeExplainer(m1)
shap_sample = X_val.sample(n=min(5000, len(X_val)), random_state=SEED)
shap_values = explainer.shap_values(shap_sample)
shap.summary_plot(shap_values, shap_sample, plot_type="bar", feature_names=shap_sample.columns)
mean_abs_shap = pd.Series(
np.abs(shap_values).mean(axis=0),
index=shap_sample.columns
).sort_values(ascending=False)
mean_abs_shap_ranked = mean_abs_shap.reset_index()
mean_abs_shap_ranked.columns = ['feature', 'mean_abs_shap']
mean_abs_shap_ranked.index += 1
print(mean_abs_shap_ranked.to_string())
print()
new_interaction_features = [
'subsidy_eligible', 'subsidy_not_eligible',
'no_subsidy_no_charging', 'young_high_concern',
'subsidy_and_charging_ready', 'practical_enablers',
]
for feat in new_interaction_features:
if feat in mean_abs_shap.index:
rank = mean_abs_shap_ranked.index[mean_abs_shap_ranked['feature'] == feat][0]
print(f"{feat}: rank {rank} of {len(mean_abs_shap_ranked)}, mean |SHAP| = {mean_abs_shap[feat]:.6f}")
else:
print(f"{feat}: not found in current feature set")
feature mean_abs_shap 1 Environmental_Concern_Level 1.271903 2 Subsidy_Available 1.203146 3 Subsidy_Available_freq 0.353555 4 High_env_concern 0.241465 5 income100_floor 0.230104 6 Annual_Income_USD 0.131576 7 Range_Anxiety_Level 0.128312 8 income1000_floor 0.112828 9 subsidy_and_charging_ready 0.111476 10 Environmental_Concern_to_Income_Ratio 0.091204 11 Arithmetic_mean_income_commute 0.088585 12 is_env_hater 0.079361 13 income1000_floor_freq 0.077041 14 income100_floor_freq 0.070889 15 Age 0.062632 16 Annual_Income_USD_digit2 0.054748 17 Annual_Income_USD_digit3 0.054608 18 commute_integer_freq 0.050831 19 Age_digit0 0.049077 20 Income_per_commute_km 0.048373 21 no_subsidy_no_charging 0.043184 22 Range_Anxiety_Level_freq 0.042816 23 Age_group 0.042371 24 Daily_Commute_km 0.040404 25 Annual_Income_USD_digit1 0.038003 26 Daily_Commute_km_digit-1 0.034815 27 Annual_Income_USD_digit0 0.034602 28 Daily_Commute_km_digit0 0.031818 29 concern_charging_index 0.030903 30 Rich_and_concerned 0.029303 31 Charging_Stations_Near_Home_digit0 0.024529 32 commute_integer 0.024317 33 Charging_Stations_Near_Home 0.023575 34 Cars_per_10k_income 0.022234 35 Charging_Stations_Near_Work 0.019185 36 Home_Charging_Possible 0.015722 37 Current_Car_Type 0.013477 38 Current_Car_Type_freq 0.013369 39 Geometric_mean_income_commute 0.012876 40 Charging_Stations_Near_Work_digit0 0.012324 41 Gender_freq 0.010525 42 Total_charging_stations 0.009925 43 Gender 0.009167 44 City_Type 0.005563 45 Age_group_freq 0.005502 46 Number_of_Cars_Owned 0.005116 47 Home_Charging_Possible_freq 0.004570 48 subsidy_not_eligible 0.004073 49 Number_of_Cars_Owned_digit0 0.003905 50 subsidy_eligible 0.002509 51 Age_digit1 0.001645 52 City_Type_freq 0.001435 53 Daily_Commute_km_digit1 0.000912 54 Young_and_concerned 0.000810 55 Charging_Stations_Near_Work_digit1 0.000511 56 Charging_Stations_Near_Home_digit1 0.000321 57 Charging_Stations_Near_Work_digit-1 0.000298 58 young_high_concern 0.000253 59 Charging_Stations_Near_Home_digit-1 0.000078 subsidy_eligible: rank 50 of 59, mean |SHAP| = 0.002509 subsidy_not_eligible: rank 48 of 59, mean |SHAP| = 0.004073 no_subsidy_no_charging: rank 21 of 59, mean |SHAP| = 0.043184 young_high_concern: rank 58 of 59, mean |SHAP| = 0.000253 subsidy_and_charging_ready: rank 9 of 59, mean |SHAP| = 0.111476 practical_enablers: not found in current feature set