Windows 10 Coin

train: (row: 1,347,190, columns: 1,085) test: (row: 374,136, columns: 1,084)

y value: if HasClicked == True, app 1.8%

How to run

  1. Put the train and test files in ..\input
  2. Put the script file in ..\script
  3. In Jupyter, run all and get submission file in the same script folder

In [117]:
# Timer and file info
import math
import time
import numpy as np # linear algebra
import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)
import os
import gc # We're gonna be clearing memory a lot
import matplotlib.pyplot as plt
import seaborn as sns
import random
from ml_metrics import mapk
from datetime import datetime
import re
import csv
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import ExtraTreesClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn import ensemble
from sklearn import model_selection
from sklearn.metrics import matthews_corrcoef, f1_score, classification_report, confusion_matrix, precision_score, recall_score
%matplotlib inline

# Timer
class Timer:
    def __init__(self, text=None):
        self.text = text
        
    def __enter__(self):
        self.cpu = time.clock()
        self.time = time.time()
        if self.text:
            print("{}...".format(self.text))
            print(datetime.now())
        return self

    def __exit__(self, *args):
        self.cpu = time.clock() - self.cpu
        self.time = time.time() - self.time
        if self.text:
            print("%s: cpu %0.2f, time %0.2f\n" % (self.text, self.cpu, self.time))

# Split to train and holdout sets with counts
def sample_train_holdout(_df, sample_count, holdout_count):   
    random.seed(7)
    sample_RowNumber = random.sample(list(_df['RowNumber']), (sample_count + holdout_count))
    train_RowNumber = random.sample(sample_RowNumber, sample_count)
    holdout_RowNumber = list(set(sample_RowNumber) - set(train_RowNumber))
    holdout = _df[_df['RowNumber'].isin(holdout_RowNumber)].copy()
    _df = _df[_df['RowNumber'].isin(train_RowNumber)]
    return _df, holdout 

# Sampling for train and holdout with imbalanced binary label
def trainHoldoutSampling(_df, _id, _label, _seed=7, t_tr=0.5, t_ho=0.5, f_tr=0.05, f_ho=0.5):
    random.seed(_seed)
    
    positive_id = list(_df[_df[_label]==True][_id].values)
    negative_id = list(_df[_df[_label]==False][_id].values)
    
    train_positive_id = random.sample(positive_id, int(len(positive_id) * t_tr))
    holdout_positive_id = random.sample(list(set(positive_id)-set(train_positive_id)), int(len(positive_id) * t_ho)) 
    train_negative_id = random.sample(negative_id, int(len(negative_id) * f_tr))
    holdout_negative_id = random.sample(list(set(negative_id)-set(train_negative_id)), int(len(negative_id) * f_ho))
    
    train_id = list(set(train_positive_id)|set(train_negative_id))
    holdout_id = list(set(holdout_positive_id)|set(holdout_negative_id))
    
    print('train count: {}, train positive count: {}'.format(len(train_id),len(train_positive_id)))
    print('holdout count: {}, holdout positive count: {}'.format(len(holdout_id),len(holdout_positive_id)))
    
    return _df[_df[_id].isin(train_id)], _df[_df[_id].isin(holdout_id)]

def datetime_features2(_df, _col):
    _format='%m/%d/%Y %I:%M:%S %p'
    _df[_col] = _df[_col].apply(lambda x: datetime.strptime(x, _format))
    
    colYear = _col+'Year'
    colMonth = _col+'Month'
    colDay = _col+'Day'
    colHour = _col+'Hour'
    #colYearMonthDay = _col+'YearMonthDay'
    #colYearMonthDayHour = _col+'YearMonthDayHour' 
    
    _df[colYear] = _df[_col].apply(lambda x: x.year)
    _df[colMonth] = _df[_col].apply(lambda x: x.month)
    _df[colDay] = _df[_col].apply(lambda x: x.day)
    _df[colHour] = _df[_col].apply(lambda x: x.hour)
    
    #ymd = [colYear, colMonth, colDay]
    #ymdh = [colYear, colMonth, colDay, colHour]
    
    #_df[colYearMonthDay] = _df[ymd].apply(lambda x: '_'.join(str(x)), axis=1)
    #_df[colYearMonthDayHour] = _df[ymdh].apply(lambda x: '_'.join(str(x)), axis=1)

    return _df
    
# Change date column datetime type and add date time features
def datetime_features(_df, _col, isDelete = False):
    # 1. For years greater than 2017, create year folder with regex and change year to 2017 in datetime column
    # find and return 4 digit number (1st finding) in dataframe string columns
    year_col = _col + 'Year'
    _df[year_col] = _df[_col].apply(lambda x: int(re.findall(r"\D(\d{4})\D", " "+ str(x) +" ")[0]))
    years = sorted(list(_df[year_col].unique()))
    yearsGreaterThan2017 = sorted(i for i in years if i > 2017)

    # Two ways for strange year data (1) change it to 2017 temporarily (2) remove from data; we will go with (1)
    # because we cannot remove test rows anyway
    if isDelete:
        _df = _df[~_df[year_col].isin(yearsGreaterThan2017)]
    else:
        for i in yearsGreaterThan2017:
            print("replace ", i, " to 2017 for conversion")
            _df.loc[_df[year_col] == i, _col] = _df[_df[year_col] == i][_col].values[0].replace(str(i), "2017")
    
    # How to remove strange year rows
    # train = train[~train['year'].isin(yearsGreaterThan2017)]

    # 2. Convert string to datetime
    _df[_col] = pd.to_datetime(_df[_col])
    print(_col, "column conversion to datetime type is done")
    
    # 3. Add more date time features
    month_col = _col + 'Month'
    week_col = _col + 'Week'
    weekday_col = _col + 'Weekday'
    day_col = _col + 'Day'
    hour_col = _col + 'Hour'
    #year_month_day_col = _col + 'YearMonthDay'
    #year_month_day_hour_col = _col + 'YearMonthDayHour'
    
    _df[month_col] = pd.DatetimeIndex(_df[_col]).month
    _df[week_col] = pd.DatetimeIndex(_df[_col]).week
    _df[weekday_col] = pd.DatetimeIndex(_df[_col]).weekday
    _df[day_col] = pd.DatetimeIndex(_df[_col]).day
    _df[hour_col] = pd.DatetimeIndex(_df[_col]).hour
    #_df[year_month_day_col] = _df[[year_col, month_col, day_col]].apply(lambda x: ''.join(str(x)), axis=1)
    #_df[year_month_day_hour_col] = _df[[year_col, month_col, day_col, hour_col]].apply(lambda x: ''.join(str(x)), axis=1)
    print("year, month, week, weekday, day, hour features are added")
    
    return _df

# Delete rows with list condition for dataframe
def delRows(_df, _col, _list):
    _df = _df[~_df[_col].isin(_list)]
    return _df

import re

# Create new column using regex pattern for strings for dataframe
def addFeatureRegex(_df, _col, _newCol):
    _df[_newCol] = _df[_col].apply(lambda x: int(re.findall(r"\D(\d{4})\D", " "+ str(x) +" ")[0]))
    return _df

# Convert string to datetime type
def stringToDatetime(_df, _col):
    _df[_col] = _df[_col].astype('datetime64[ns]')
    return _df

# Add features from datetime
def addDatetimeFeatures(_df, _col):
    _df[_col + 'Year'] = pd.DatetimeIndex(_df[_col]).year
    _df[_col + 'Month'] = pd.DatetimeIndex(_df[_col]).month
    _df[_col + 'Week'] = pd.DatetimeIndex(_df[_col]).week
    _df[_col + 'Weekday'] = pd.DatetimeIndex(_df[_col]).weekday
    _df[_col + 'Day'] = pd.DatetimeIndex(_df[_col]).day
    _df[_col + 'Hour'] = pd.DatetimeIndex(_df[_col]).hour
    return _df

# Get categorical column names
def categoricalColumns(_df):
    cat_columns = _df.select_dtypes(['object']).columns
    print("Categorical column count:", len(cat_columns))
    print("First 5 values:", cat_columns[:5])
    return cat_columns

# Get column names starting with
def columnsStartingWith(_df, _str):
    sorted_list = sorted(i for i in list(_df) if i.startswith(_str))
    print("Column count:", len(sorted_list))
    print("First 5 values:", sorted_list[:5])    
    return sorted_list

# Get column names ending with
def columnsEndingWith(_df, _str):
    sorted_list = sorted(i for i in list(_df) if i.endswith(_str))
    print("Column count:", len(sorted_list))
    print("First 5 values:", sorted_list[:5])    
    return sorted_list

# Get constant columns
def constantColumns(_df):
    constant_list = []
    cols = list(_df) # same as _df.columns.values
    for col in cols:
        if len(_df[col].unique()) == 1:
            constant_list.append(col)
    print("Constant column count:", len(constant_list))
    print("First 5 values:", constant_list[:5])  
    return constant_list

# Add null columns
def makeNullColumns(_df, _cols):
    null_df = _df[_cols].isnull()
    null_df.columns = null_df.columns + 'Null'
    _df = pd.concat([_df, null_df], axis=1)
    return _df

# Union
def union(a, b):
    return list(set(a)|set(b))

def unique(a):
    return list(set(a))

# undersampling - sample rate 0.8 for 80% samling using isUndersampled column 
def underSampling(_df, _sample_rate):
    _df['isUnderSampled'] = 1
    _rand_num = 1/(1-_sample_rate)
    underSample = np.random.randint(_rand_num, size=len(_df[_df['HasClicked'] == 0]))
    _df.loc[_df['HasClicked'] == 0, 'isUnderSampled'] = underSample>0
    return _df

# Add column with value count
def valueCountColumn(_df, _col):
    _dict = dict([(i, a) for i, a in zip(_df[_col].value_counts().index, _df[_col].value_counts().values)])
    _df[_col+'ValueCount'] = _df[_col].apply(lambda x: _dict[x])
    return _df

# Add column with bool values to check if keyword is contained or not
def containColumn(_df, _col, _str):
    _df[_col+'Cotains'+_str] = _df[_col].str.contains(_str)
    return _df

# Feature engineering
def feature_engineering(_df):
    print("shape:", _df.shape)
    print("Add datetime features...")
    datetime_columns = ['BubbleShownTime', 'FirstUpdatedDate', 'OSOOBEDateTime']
    for col in datetime_columns:
        print(col)
        if _df[col].isnull().sum() > 0:
            _df[col] = _df[col].fillna('1/1/2017 11:11:11 AM')
        _df = datetime_features2(_df, col)

    print("shape:", _df.shape)

    gc.collect()
    
    # Null count
    print("Missing value count...")
    _df['CntNs'] = _df.isnull().sum(axis=1) 

    cols = ['AppCategoryNMinus1', 'AppCategoryNMinus2', 'AppCategoryNMinus3', 'AppCategoryNMinus4', 'AppCategoryNMinus5',
           'AppCategoryNMinus6', 'AppCategoryNMinus7', 'AppCategoryNMinus8']
    _df['AppCatCntNs'] = _df[cols].isnull().sum(axis=1)

    #_df[cols] = _df[cols].fillna("NA")
    #for col in cols:
    #    print(col)
    #    _df[col+'HighLevel'] = _df[col].apply(lambda x: str(x).split(':')[0])
   
    # Game segment parse with '.'
    # to-do: 2nd and 3rd parsed values to add as features later, some exception handling is needed
    print("Gamer segment parsing...")
    _df['GamerSegment1'] = _df['GamerSegment'].apply(lambda x: str(x).split('.')[0] if str(x).split('.') else 'Unknown')
    
    # Check creativeName contains keyword or not
    print("CreativeName contains a keyword...")
    keywords = ['SL', 'TS', 'Week7', 'Week 7', 'Meet', 'Skype', 'Battery', 'Switch', 'Performance', 'Security', 
                'Surge', 'Publish', 'Rewards', 'Aggressive', 'Edge', 'Chrome', 'Firefox', 'Discover', 'Free']
    for keyword in keywords:
        _df = containColumn(_df, 'creativeName', keyword)
    #_df['week7'] = _df['Week7'].values + _df['Week 7'].values
    #_df.drop(['Week7', 'Week 7'], axis = 1, inplace = True)
    
    # Convert categorical columns to numeric
    print("Convert categorical columns to numeric...")
    cat_columns = _df.select_dtypes(['object']).columns
    for cat_column in cat_columns:
        print(cat_column)
        if cat_column == 'creativeName':
            _df['creativeNameTest'] = _df['creativeName'].values
        _df[cat_column] = _df[cat_column].apply(lambda x: abs(hash(x)))
    gc.collect()
    
    # Replace missing values with -1
    print("Replace missing values with -1")
    _df = _df.fillna(-1)
    
    # Value count
    print("Value count...")
    cols = ['UniqueUserDeviceKey', 'CampaignId']
    for col in cols:
        print(col)
        _df = valueCountColumn(_df, col)
        
    return _df

# Get best threshold value for F1 score
def f1_best_threshold(_actual, _pred):
    thresholds = np.linspace(0.01, 0.2, 500)

    fc = np.array([f1_score(_actual, _pred>thr) for thr in thresholds])
    plt.plot(thresholds, fc)
    best_threshold = thresholds[fc.argmax()]
    print('f1 score:', fc.max())
    print('best threshold:', best_threshold)
    print('TF pred mean:', (_pred>best_threshold).mean())
    
    return best_threshold

In [109]:
with Timer("Read train data..."):
    train = pd.read_csv('../input/CoinMlCompetitionSoftlandingTrainWithHeader.tsv', sep='\t') # (1347190, 1085)
    print(train.shape)
    
    test_header = train.columns[0:1084]
    
    # Before deleting some columns, get missing value count
    train['TotalNulls'] = train.isnull().sum(axis=1) 
    
    # Reduce size by removing most of days and time features
    features = train.columns
    
    print("features without time_ and days_ columns")
    time_columns = columnsStartingWith(train, 'Time_')
    days_columns = columnsStartingWith(train, 'Days_')
    features = list(set(features) - set(time_columns))
    features = list(set(features) - set(days_columns))
    
    # Add important time features from feature importance above 50 and some validation
    imp_time_features = ['Time_Accessibility', 'Time_Browser', 'Time_Communications', 'Time_Content', 'Time_DevTools', 
                         'Time_Games', 'Time_Malware', 'Time_Media', 'Time_PersonalProductivity', 'Time_Readers', 
                         'Time_Search', 'Time_Social', 'Time_StudentAndLearning', 'Time_ModernApps', 
                         'Time_Games_Core', 'Time_Games_Casual', 'Time_windows_immersivecontrolpanel',
                         'Time_msascui_exe', 'Time_chrome_exe', 'Time_microsoft_windows_cortana', 'Time_lockapphost_exe',
                         'Time_excel_exe','Time_consent_exe','Time_explorer_exe',
                         'Time_applicationframehost_exe','Time_conhost_exe','Time_csrss_exe',
                         'Time_microsoft_microsoftedge','Time_onedrive_exe',
                         'Time_dwm_exe','Time_rundll32_exe','Time_setup_exe','Time_winword_exe',
                         'Time_dllhost_exe','Time_logonui_exe','Time_microsoft_lockapp',
                         'Time_microsoft_windows_photos','Time_powerpnt_exe',
                         'Time_pickerhost_exe','Time_werfault_exe','Time_iexplore_exe',
                         'Time_taskmgr_exe','Time_softwareupdate_exe',
                         'Time_microsoft_getstarted','Time_idman_exe','Time_firefox_exe',
                         'Time_microsoft_windowsstore','Time_notepad_exe']
    features = list(set(features) | set(imp_time_features))
    
    train = train[features]
    print(train.shape)


Read train data......
2017-03-20 23:34:17.890596
C:\Users\hyunor\AppData\Local\Continuum\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py:2717: DtypeWarning: Columns (2,8,17,33) have mixed types. Specify dtype option on import or set low_memory=False.
  interactivity=interactivity, compiler=compiler, result=result)
(1347190, 1085)
features without time_ and days_ columns
Column count: 517
First 5 values: ['Time_0c72c7cd_217379cb4ae6f', 'Time_0c72c7cd_beta', 'Time_123freesolitaire_exe', 'Time_1cv8_exe', 'Time_2345explorer_exe']
Column count: 517
First 5 values: ['Days_0c72c7cd_217379cb4ae6f', 'Days_0c72c7cd_beta', 'Days_123freesolitaire_exe', 'Days_1cv8_exe', 'Days_2345explorer_exe']
(1347190, 100)
Read train data...: cpu 176.50, time 176.51


In [110]:
# Train feature engineering
with Timer("Train feature engineering..."):
    #train = feature_engineering(train, isDeleteOddDateRows=True)
    train = feature_engineering(train)
    
    train_y = train['HasClicked'].values
    print("train y mean:", train_y.mean())


Train feature engineering......
2017-03-20 23:37:25.127464
shape: (1347190, 100)
Add datetime features...
BubbleShownTime
FirstUpdatedDate
OSOOBEDateTime
shape: (1347190, 112)
Missing value count...
Gamer segment parsing...
CreativeName contains a keyword...
Convert categorical columns to numeric...
creativeName
CampaignId
AppCategoryNMinus3
DeviceTimezone
GamerSegment
IsVirtualDevice
AppCategoryNMinus1
AppCategoryNMinus7
AppCategoryNMinus8
IsAlwaysOnAlwaysConnectedCapable
BubbleShownTime
AppCategoryNMinus5
IsDomainJoined
DefaultInternetBrowser
GamerPCClassification
AppCategoryNMinus6
DisplayLanguage
OSOOBEDateTime
ISOCountryShortName
AppCategoryNMinus4
AppCategoryNMinus2
GamerSegment1
creativeNameCotainsSL
creativeNameCotainsTS
creativeNameCotainsWeek7
creativeNameCotainsWeek 7
creativeNameCotainsMeet
creativeNameCotainsSkype
creativeNameCotainsBattery
creativeNameCotainsSwitch
creativeNameCotainsPerformance
creativeNameCotainsSecurity
creativeNameCotainsSurge
creativeNameCotainsPublish
creativeNameCotainsRewards
creativeNameCotainsAggressive
creativeNameCotainsEdge
creativeNameCotainsChrome
creativeNameCotainsFirefox
creativeNameCotainsDiscover
creativeNameCotainsFree
Replace missing values with -1
Value count...
UniqueUserDeviceKey
CampaignId
train y mean: 0.0183062522733
Train feature engineering...: cpu 115.35, time 115.35


In [111]:
with Timer("Read test and feature engineering..."):
    # Read tsv file
    test = pd.read_csv('../input/CoinMlCompetitionSoftlandingEvaluateNoLabel.tsv', sep='\t', header = None)
    
    # Add header because test does not header
    test.columns = test_header

    # Before deleting some columns, get missing value count
    test['TotalNulls'] = test.isnull().sum(axis=1)    
    
    # Reduce test size by leaving train features only
    test = test[list(set(features) - set(['HasClicked']))]
    
    # Feature engineering - should not delete odd date rows
    #test = feature_engineering(test, isDeleteOddDateRows=False)
    test = feature_engineering(test)
    
    print(test.shape)


Read test and feature engineering......
2017-03-20 23:39:26.370879
C:\Users\hyunor\AppData\Local\Continuum\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py:2717: DtypeWarning: Columns (2,17,33) have mixed types. Specify dtype option on import or set low_memory=False.
  interactivity=interactivity, compiler=compiler, result=result)
shape: (374137, 99)
Add datetime features...
BubbleShownTime
FirstUpdatedDate
OSOOBEDateTime
shape: (374137, 111)
Missing value count...
Gamer segment parsing...
CreativeName contains a keyword...
Convert categorical columns to numeric...
creativeName
CampaignId
AppCategoryNMinus3
DeviceTimezone
GamerSegment
AppCategoryNMinus1
AppCategoryNMinus7
AppCategoryNMinus8
AppCategoryNMinus5
IsAlwaysOnAlwaysConnectedCapable
BubbleShownTime
IsDomainJoined
DefaultInternetBrowser
GamerPCClassification
AppCategoryNMinus6
DisplayLanguage
ISOCountryShortName
AppCategoryNMinus4
AppCategoryNMinus2
GamerSegment1
creativeNameCotainsSL
creativeNameCotainsTS
creativeNameCotainsWeek7
creativeNameCotainsWeek 7
creativeNameCotainsMeet
creativeNameCotainsSkype
creativeNameCotainsBattery
creativeNameCotainsSwitch
creativeNameCotainsPerformance
creativeNameCotainsSecurity
creativeNameCotainsSurge
creativeNameCotainsPublish
creativeNameCotainsRewards
creativeNameCotainsAggressive
creativeNameCotainsEdge
creativeNameCotainsChrome
creativeNameCotainsFirefox
creativeNameCotainsDiscover
creativeNameCotainsFree
Replace missing values with -1
Value count...
UniqueUserDeviceKey
CampaignId
(374137, 136)
Read test and feature engineering...: cpu 84.39, time 84.40


In [112]:
# Get column groups and features
all_columns = train.columns
print("All columns:", len(all_columns))

# Remove constant columns for train (all included in time_ and days_ columns)
print("features without constant columns")
constant_columns = constantColumns(train)
features = list(set(all_columns) - set(constant_columns))
print("features:", len(features))

# With a lot of nulls, exclude time and days columns first and add later for improvement
#print("features without time_ and days_ columns")
#time_columns = columnsStartingWith(train, 'Time_')
#days_columns = columnsStartingWith(train, 'Days_')
#features = list(set(features) - set(time_columns))
#features = list(set(features) - set(days_columns))

# Drop features
drop_features = ['HasClicked', 'RowNumber', 'BubbleShownTime', 'FirstUpdatedDate', 'OSOOBEDateTime', 'creativeNameTest'] 
features = list(set(features) - set(drop_features))

print("Final features:", len(features))


All columns: 137
features without constant columns
Constant column count: 0
First 5 values: []
features: 137
Final features: 131

In [113]:
sorted(features)


Out[113]:
['AppCatCntNs',
 'AppCategoryNMinus1',
 'AppCategoryNMinus2',
 'AppCategoryNMinus3',
 'AppCategoryNMinus4',
 'AppCategoryNMinus5',
 'AppCategoryNMinus6',
 'AppCategoryNMinus7',
 'AppCategoryNMinus8',
 'BubbleShownTimeDay',
 'BubbleShownTimeHour',
 'BubbleShownTimeMonth',
 'BubbleShownTimeYear',
 'CampaignId',
 'CampaignIdValueCount',
 'CntNs',
 'DefaultInternetBrowser',
 'DeviceTimezone',
 'DisplayLanguage',
 'FirstUpdatedDateDay',
 'FirstUpdatedDateHour',
 'FirstUpdatedDateMonth',
 'FirstUpdatedDateYear',
 'FrontFacingCameraResolution',
 'GamerPCClassification',
 'GamerSegment',
 'GamerSegment1',
 'HasFrontFacingCamera',
 'HasRearFacingCamera',
 'ISOCountryShortName',
 'InternalBatteryNumberOfCharges',
 'InternalPrimaryDiagonalDisplaySizeInInches',
 'InternalPrimaryDisplayLogicalDPIX',
 'InternalPrimaryDisplayLogicalDPIY',
 'InternalPrimaryDisplayResolutionHorizontal',
 'InternalPrimaryDisplayResolutionVertical',
 'IsAlwaysOnAlwaysConnectedCapable',
 'IsCommercial',
 'IsDomainJoined',
 'IsEducation',
 'IsMalware',
 'IsPenCapable',
 'IsTouchEnabled',
 'IsVirtualDevice',
 'LifeTimeConversionCount',
 'LifeTimeImpressionCount',
 'NumberofExternalDisplays',
 'NumberofInternalDisplays',
 'OSOOBEDateTimeDay',
 'OSOOBEDateTimeHour',
 'OSOOBEDateTimeMonth',
 'OSOOBEDateTimeYear',
 'PrimaryDiskTotalCapacity',
 'ProcessorClockSpeed',
 'ProcessorCores',
 'ProcessorPhysicalCores',
 'RecentMonthConversionCount',
 'Time_Accessibility',
 'Time_Browser',
 'Time_Communications',
 'Time_Content',
 'Time_DevTools',
 'Time_Games',
 'Time_Games_Casual',
 'Time_Games_Core',
 'Time_Malware',
 'Time_Media',
 'Time_ModernApps',
 'Time_PersonalProductivity',
 'Time_Readers',
 'Time_Search',
 'Time_Social',
 'Time_StudentAndLearning',
 'Time_applicationframehost_exe',
 'Time_chrome_exe',
 'Time_conhost_exe',
 'Time_consent_exe',
 'Time_csrss_exe',
 'Time_dllhost_exe',
 'Time_dwm_exe',
 'Time_excel_exe',
 'Time_explorer_exe',
 'Time_firefox_exe',
 'Time_idman_exe',
 'Time_iexplore_exe',
 'Time_lockapphost_exe',
 'Time_logonui_exe',
 'Time_microsoft_getstarted',
 'Time_microsoft_lockapp',
 'Time_microsoft_microsoftedge',
 'Time_microsoft_windows_cortana',
 'Time_microsoft_windows_photos',
 'Time_microsoft_windowsstore',
 'Time_msascui_exe',
 'Time_notepad_exe',
 'Time_onedrive_exe',
 'Time_pickerhost_exe',
 'Time_powerpnt_exe',
 'Time_rundll32_exe',
 'Time_setup_exe',
 'Time_softwareupdate_exe',
 'Time_taskmgr_exe',
 'Time_werfault_exe',
 'Time_windows_immersivecontrolpanel',
 'Time_winword_exe',
 'TotalDays',
 'TotalEngagementTimeInSec',
 'TotalNulls',
 'TotalPhysicalRAM',
 'UniqueUserDeviceKey',
 'UniqueUserDeviceKeyValueCount',
 'creativeName',
 'creativeNameCotainsAggressive',
 'creativeNameCotainsBattery',
 'creativeNameCotainsChrome',
 'creativeNameCotainsDiscover',
 'creativeNameCotainsEdge',
 'creativeNameCotainsFirefox',
 'creativeNameCotainsFree',
 'creativeNameCotainsMeet',
 'creativeNameCotainsPerformance',
 'creativeNameCotainsPublish',
 'creativeNameCotainsRewards',
 'creativeNameCotainsSL',
 'creativeNameCotainsSecurity',
 'creativeNameCotainsSkype',
 'creativeNameCotainsSurge',
 'creativeNameCotainsSwitch',
 'creativeNameCotainsTS',
 'creativeNameCotainsWeek 7',
 'creativeNameCotainsWeek7']

In [114]:
from sklearn.model_selection import train_test_split
with Timer('# train validation split'):
    #X_train, X_val, y_train, y_val = train_test_split(train[train.isUnderSampled == True][features], train_y[train.isUnderSampled == True], test_size=0.2, random_state=0)
    X_train, X_val, y_train, y_val = train_test_split(train[features], train_y, test_size=0.15, random_state=0)
    
    gc.collect()

    print(y_train.shape)
    print(X_train.shape)
    print(y_val.shape)
    print(X_val.shape)
    
    print(y_train.mean())
    print(y_val.mean())
    
    #del train
    gc.collect()


# train validation split...
2017-03-20 23:41:27.601833
(1145111,)
(1145111, 131)
(202079,)
(202079, 131)
0.0182043487487
0.018883703898
# train validation split: cpu 3.42, time 3.42


In [115]:
import lightgbm as lgb
#train_data = lgb.Dataset(X_train[X_train.isUnderSampled == True][features], label=X_train[X_train.isUnderSampled == True]['HasClicked'].values)

train_data = lgb.Dataset(X_train[features], label=y_train)
val_data = lgb.Dataset(X_val[features], y_val)

# use train holdout directly with t f ratio
#train_data = lgb.Dataset(train[features], label=train_y)
#val_data = lgb.Dataset(holdout[features], y_holdout)

print(X_train[features].shape)
print(X_val[features].shape)


(1145111, 131)
(202079, 131)

In [116]:
random.seed(2007)

params = {
    'task' : 'train',
    'boosting_type' : 'dart', #'gbdt', # dart
    'objective' : 'binary',
    'metric' : 'auc', # 'binary_logloss', #'binary_logloss', # binary_logloss, auc
    'is_training_metric': True,
    'max_bin': 255,
    'num_leaves' : 64,
    'learning_rate' : 0.02, # 0.05, #0.1,
    'feature_fraction' : 0.8,
    'min_data_in_leaf': 10,
    'min_sum_hessian_in_leaf': 5,
    # 'num_threads': 16,
}
num_round = 10000


bst = lgb.train(params, train_data, num_round, valid_sets=val_data, early_stopping_rounds=10)

val_preds = bst.predict(X_val[features], num_iteration=bst.best_iteration)
#holdout_preds = bst.predict(holdout[features], num_iteration=bst.best_iteration)
#test_preds = bst.predict(test[features], num_iteration=bst.best_iteration)

# Sampling score

# Including all high level and ymd and ymdh
# [297]	valid_0's auc:0.67564 F1 score: 0.096338028169, best thr: 0.325385385385, Click mean: 0.0343981839588

# without ymd; f1 score not improved, so keep this
# [201]	valid_0's auc:0.67772 F1 score: 0.0966780126125, best thr: 0.306746746747, Click mean: 0.0379598932823

# With uniqueUserDeviceKey valueCount
# [368]	valid_0's auc:0.664831 F1 score: 0.06x ???

# Value counts
# [525]	valid_0's auc:0.686445 f1 score: 0.104380886546 thr: 0.325875875876 Click mean: 0.0332386612486 (gain: 0.04)

# Count UniqueUserDeviceKey
# [505]	valid_0's auc:0.706443 f1 score: 0.128913201081 thr: 0.371491491491 Click mean: 0.0267462248702 (gain:0.024)

# Count CampaignId
# [544]	valid_0's auc:0.707357 f1 score: 0.13101569594 thr: 0.363643643644 Click mean: 0.0274719972684 (gain: 0.002)

# Remove all time and days
# [392]	valid_0's auc:0.703582 f1 score: 0.123669773283 thr: 0.378358358358 Click mean: 0.0266139148895

# Include imp time features
# [418]	valid_0's auc:0.706095 f1 score: 0.126989843694 thr: 0.386206206206 Click mean: 0.0229143624878 (loss: 0.004)


[1]	valid_0's auc:0.634347
Train until valid scores didn't improve in 10 rounds.
[2]	valid_0's auc:0.646167
[3]	valid_0's auc:0.651167
[4]	valid_0's auc:0.651446
[5]	valid_0's auc:0.653526
[6]	valid_0's auc:0.653912
[7]	valid_0's auc:0.655383
[8]	valid_0's auc:0.655808
[9]	valid_0's auc:0.658107
[10]	valid_0's auc:0.658978
[11]	valid_0's auc:0.659289
[12]	valid_0's auc:0.659324
[13]	valid_0's auc:0.659459
[14]	valid_0's auc:0.661613
[15]	valid_0's auc:0.662222
[16]	valid_0's auc:0.662466
[17]	valid_0's auc:0.663201
[18]	valid_0's auc:0.664197
[19]	valid_0's auc:0.664144
[20]	valid_0's auc:0.664191
[21]	valid_0's auc:0.665507
[22]	valid_0's auc:0.665631
[23]	valid_0's auc:0.665909
[24]	valid_0's auc:0.665877
[25]	valid_0's auc:0.665977
[26]	valid_0's auc:0.665926
[27]	valid_0's auc:0.666153
[28]	valid_0's auc:0.666524
[29]	valid_0's auc:0.666892
[30]	valid_0's auc:0.667008
[31]	valid_0's auc:0.667108
[32]	valid_0's auc:0.667045
[33]	valid_0's auc:0.667182
[34]	valid_0's auc:0.667045
[35]	valid_0's auc:0.667459
[36]	valid_0's auc:0.667965
[37]	valid_0's auc:0.668399
[38]	valid_0's auc:0.668796
[39]	valid_0's auc:0.669028
[40]	valid_0's auc:0.670108
[41]	valid_0's auc:0.670228
[42]	valid_0's auc:0.670076
[43]	valid_0's auc:0.670284
[44]	valid_0's auc:0.670077
[45]	valid_0's auc:0.670235
[46]	valid_0's auc:0.670084
[47]	valid_0's auc:0.67031
[48]	valid_0's auc:0.670622
[49]	valid_0's auc:0.671159
[50]	valid_0's auc:0.671512
[51]	valid_0's auc:0.671735
[52]	valid_0's auc:0.671865
[53]	valid_0's auc:0.671749
[54]	valid_0's auc:0.672006
[55]	valid_0's auc:0.67231
[56]	valid_0's auc:0.672658
[57]	valid_0's auc:0.673061
[58]	valid_0's auc:0.673027
[59]	valid_0's auc:0.673209
[60]	valid_0's auc:0.673698
[61]	valid_0's auc:0.673868
[62]	valid_0's auc:0.67374
[63]	valid_0's auc:0.673819
[64]	valid_0's auc:0.674073
[65]	valid_0's auc:0.674122
[66]	valid_0's auc:0.67441
[67]	valid_0's auc:0.674352
[68]	valid_0's auc:0.674344
[69]	valid_0's auc:0.674547
[70]	valid_0's auc:0.674569
[71]	valid_0's auc:0.674639
[72]	valid_0's auc:0.674507
[73]	valid_0's auc:0.674953
[74]	valid_0's auc:0.674851
[75]	valid_0's auc:0.674927
[76]	valid_0's auc:0.674789
[77]	valid_0's auc:0.674654
[78]	valid_0's auc:0.674902
[79]	valid_0's auc:0.675114
[80]	valid_0's auc:0.675224
[81]	valid_0's auc:0.675085
[82]	valid_0's auc:0.675214
[83]	valid_0's auc:0.675411
[84]	valid_0's auc:0.675393
[85]	valid_0's auc:0.67535
[86]	valid_0's auc:0.675366
[87]	valid_0's auc:0.675412
[88]	valid_0's auc:0.675518
[89]	valid_0's auc:0.675457
[90]	valid_0's auc:0.675556
[91]	valid_0's auc:0.675419
[92]	valid_0's auc:0.675465
[93]	valid_0's auc:0.675453
[94]	valid_0's auc:0.675764
[95]	valid_0's auc:0.676222
[96]	valid_0's auc:0.676242
[97]	valid_0's auc:0.676234
[98]	valid_0's auc:0.67642
[99]	valid_0's auc:0.676538
[100]	valid_0's auc:0.676995
[101]	valid_0's auc:0.677047
[102]	valid_0's auc:0.677235
[103]	valid_0's auc:0.677339
[104]	valid_0's auc:0.677236
[105]	valid_0's auc:0.677271
[106]	valid_0's auc:0.677259
[107]	valid_0's auc:0.677456
[108]	valid_0's auc:0.677553
[109]	valid_0's auc:0.677611
[110]	valid_0's auc:0.677609
[111]	valid_0's auc:0.677617
[112]	valid_0's auc:0.677649
[113]	valid_0's auc:0.677855
[114]	valid_0's auc:0.678064
[115]	valid_0's auc:0.678107
[116]	valid_0's auc:0.678169
[117]	valid_0's auc:0.678385
[118]	valid_0's auc:0.678488
[119]	valid_0's auc:0.678537
[120]	valid_0's auc:0.678864
[121]	valid_0's auc:0.678992
[122]	valid_0's auc:0.679338
[123]	valid_0's auc:0.679462
[124]	valid_0's auc:0.679593
[125]	valid_0's auc:0.679759
[126]	valid_0's auc:0.679882
[127]	valid_0's auc:0.68002
[128]	valid_0's auc:0.680103
[129]	valid_0's auc:0.680281
[130]	valid_0's auc:0.680375
[131]	valid_0's auc:0.680468
[132]	valid_0's auc:0.680495
[133]	valid_0's auc:0.680747
[134]	valid_0's auc:0.680891
[135]	valid_0's auc:0.681086
[136]	valid_0's auc:0.681048
[137]	valid_0's auc:0.681073
[138]	valid_0's auc:0.681223
[139]	valid_0's auc:0.681273
[140]	valid_0's auc:0.68145
[141]	valid_0's auc:0.681577
[142]	valid_0's auc:0.681807
[143]	valid_0's auc:0.681869
[144]	valid_0's auc:0.682059
[145]	valid_0's auc:0.682155
[146]	valid_0's auc:0.6822
[147]	valid_0's auc:0.6822
[148]	valid_0's auc:0.682476
[149]	valid_0's auc:0.682677
[150]	valid_0's auc:0.682733
[151]	valid_0's auc:0.682835
[152]	valid_0's auc:0.682959
[153]	valid_0's auc:0.683035
[154]	valid_0's auc:0.683062
[155]	valid_0's auc:0.683092
[156]	valid_0's auc:0.683109
[157]	valid_0's auc:0.683131
[158]	valid_0's auc:0.683287
[159]	valid_0's auc:0.683427
[160]	valid_0's auc:0.683418
[161]	valid_0's auc:0.683516
[162]	valid_0's auc:0.683546
[163]	valid_0's auc:0.683689
[164]	valid_0's auc:0.683868
[165]	valid_0's auc:0.683878
[166]	valid_0's auc:0.683933
[167]	valid_0's auc:0.684053
[168]	valid_0's auc:0.68406
[169]	valid_0's auc:0.684096
[170]	valid_0's auc:0.684108
[171]	valid_0's auc:0.684182
[172]	valid_0's auc:0.684324
[173]	valid_0's auc:0.684364
[174]	valid_0's auc:0.684417
[175]	valid_0's auc:0.684556
[176]	valid_0's auc:0.684593
[177]	valid_0's auc:0.684613
[178]	valid_0's auc:0.68484
[179]	valid_0's auc:0.685013
[180]	valid_0's auc:0.685067
[181]	valid_0's auc:0.685201
[182]	valid_0's auc:0.685273
[183]	valid_0's auc:0.685369
[184]	valid_0's auc:0.685551
[185]	valid_0's auc:0.685644
[186]	valid_0's auc:0.685844
[187]	valid_0's auc:0.685876
[188]	valid_0's auc:0.686123
[189]	valid_0's auc:0.686132
[190]	valid_0's auc:0.686343
[191]	valid_0's auc:0.686473
[192]	valid_0's auc:0.686536
[193]	valid_0's auc:0.686665
[194]	valid_0's auc:0.686738
[195]	valid_0's auc:0.68705
[196]	valid_0's auc:0.687207
[197]	valid_0's auc:0.687281
[198]	valid_0's auc:0.687333
[199]	valid_0's auc:0.687364
[200]	valid_0's auc:0.687421
[201]	valid_0's auc:0.687532
[202]	valid_0's auc:0.687586
[203]	valid_0's auc:0.687596
[204]	valid_0's auc:0.687611
[205]	valid_0's auc:0.687694
[206]	valid_0's auc:0.687804
[207]	valid_0's auc:0.68783
[208]	valid_0's auc:0.6879
[209]	valid_0's auc:0.687963
[210]	valid_0's auc:0.688028
[211]	valid_0's auc:0.688064
[212]	valid_0's auc:0.688077
[213]	valid_0's auc:0.688078
[214]	valid_0's auc:0.688121
[215]	valid_0's auc:0.688157
[216]	valid_0's auc:0.688249
[217]	valid_0's auc:0.688277
[218]	valid_0's auc:0.688305
[219]	valid_0's auc:0.688355
[220]	valid_0's auc:0.688383
[221]	valid_0's auc:0.688406
[222]	valid_0's auc:0.688429
[223]	valid_0's auc:0.688502
[224]	valid_0's auc:0.6885
[225]	valid_0's auc:0.68859
[226]	valid_0's auc:0.688602
[227]	valid_0's auc:0.68877
[228]	valid_0's auc:0.688844
[229]	valid_0's auc:0.688887
[230]	valid_0's auc:0.688947
[231]	valid_0's auc:0.689067
[232]	valid_0's auc:0.689068
[233]	valid_0's auc:0.689123
[234]	valid_0's auc:0.689129
[235]	valid_0's auc:0.689307
[236]	valid_0's auc:0.689358
[237]	valid_0's auc:0.689399
[238]	valid_0's auc:0.689581
[239]	valid_0's auc:0.689616
[240]	valid_0's auc:0.689636
[241]	valid_0's auc:0.689695
[242]	valid_0's auc:0.689724
[243]	valid_0's auc:0.689761
[244]	valid_0's auc:0.689774
[245]	valid_0's auc:0.689833
[246]	valid_0's auc:0.689929
[247]	valid_0's auc:0.689988
[248]	valid_0's auc:0.690118
[249]	valid_0's auc:0.690219
[250]	valid_0's auc:0.690244
[251]	valid_0's auc:0.690281
[252]	valid_0's auc:0.690289
[253]	valid_0's auc:0.690335
[254]	valid_0's auc:0.690354
[255]	valid_0's auc:0.690384
[256]	valid_0's auc:0.690378
[257]	valid_0's auc:0.690395
[258]	valid_0's auc:0.690526
[259]	valid_0's auc:0.6907
[260]	valid_0's auc:0.69073
[261]	valid_0's auc:0.690832
[262]	valid_0's auc:0.690924
[263]	valid_0's auc:0.690963
[264]	valid_0's auc:0.690987
[265]	valid_0's auc:0.69114
[266]	valid_0's auc:0.691194
[267]	valid_0's auc:0.691241
[268]	valid_0's auc:0.691289
[269]	valid_0's auc:0.691308
[270]	valid_0's auc:0.691318
[271]	valid_0's auc:0.691353
[272]	valid_0's auc:0.691376
[273]	valid_0's auc:0.691525
[274]	valid_0's auc:0.69154
[275]	valid_0's auc:0.691612
[276]	valid_0's auc:0.691627
[277]	valid_0's auc:0.691648
[278]	valid_0's auc:0.691691
[279]	valid_0's auc:0.691703
[280]	valid_0's auc:0.691723
[281]	valid_0's auc:0.691727
[282]	valid_0's auc:0.691735
[283]	valid_0's auc:0.691786
[284]	valid_0's auc:0.69186
[285]	valid_0's auc:0.69186
[286]	valid_0's auc:0.691866
[287]	valid_0's auc:0.691995
[288]	valid_0's auc:0.692059
[289]	valid_0's auc:0.692081
[290]	valid_0's auc:0.692118
[291]	valid_0's auc:0.692134
[292]	valid_0's auc:0.692154
[293]	valid_0's auc:0.692164
[294]	valid_0's auc:0.692182
[295]	valid_0's auc:0.692201
[296]	valid_0's auc:0.692209
[297]	valid_0's auc:0.692264
[298]	valid_0's auc:0.692287
[299]	valid_0's auc:0.692362
[300]	valid_0's auc:0.692487
[301]	valid_0's auc:0.692502
[302]	valid_0's auc:0.692496
[303]	valid_0's auc:0.692535
[304]	valid_0's auc:0.692618
[305]	valid_0's auc:0.692635
[306]	valid_0's auc:0.692645
[307]	valid_0's auc:0.692747
[308]	valid_0's auc:0.692872
[309]	valid_0's auc:0.692899
[310]	valid_0's auc:0.692959
[311]	valid_0's auc:0.692963
[312]	valid_0's auc:0.692992
[313]	valid_0's auc:0.693065
[314]	valid_0's auc:0.693129
[315]	valid_0's auc:0.69314
[316]	valid_0's auc:0.693241
[317]	valid_0's auc:0.693259
[318]	valid_0's auc:0.69327
[319]	valid_0's auc:0.693319
[320]	valid_0's auc:0.693365
[321]	valid_0's auc:0.69337
[322]	valid_0's auc:0.693394
[323]	valid_0's auc:0.693423
[324]	valid_0's auc:0.693435
[325]	valid_0's auc:0.693491
[326]	valid_0's auc:0.693533
[327]	valid_0's auc:0.693648
[328]	valid_0's auc:0.693655
[329]	valid_0's auc:0.693667
[330]	valid_0's auc:0.693707
[331]	valid_0's auc:0.693807
[332]	valid_0's auc:0.693834
[333]	valid_0's auc:0.693868
[334]	valid_0's auc:0.693879
[335]	valid_0's auc:0.693911
[336]	valid_0's auc:0.693953
[337]	valid_0's auc:0.693968
[338]	valid_0's auc:0.693984
[339]	valid_0's auc:0.693998
[340]	valid_0's auc:0.69402
[341]	valid_0's auc:0.69403
[342]	valid_0's auc:0.694035
[343]	valid_0's auc:0.694106
[344]	valid_0's auc:0.694127
[345]	valid_0's auc:0.694146
[346]	valid_0's auc:0.694155
[347]	valid_0's auc:0.694204
[348]	valid_0's auc:0.694265
[349]	valid_0's auc:0.694272
[350]	valid_0's auc:0.694326
[351]	valid_0's auc:0.69437
[352]	valid_0's auc:0.694405
[353]	valid_0's auc:0.694429
[354]	valid_0's auc:0.694447
[355]	valid_0's auc:0.694484
[356]	valid_0's auc:0.694501
[357]	valid_0's auc:0.694535
[358]	valid_0's auc:0.694579
[359]	valid_0's auc:0.694697
[360]	valid_0's auc:0.694702
[361]	valid_0's auc:0.694738
[362]	valid_0's auc:0.69476
[363]	valid_0's auc:0.694766
[364]	valid_0's auc:0.694802
[365]	valid_0's auc:0.69481
[366]	valid_0's auc:0.694811
[367]	valid_0's auc:0.69483
[368]	valid_0's auc:0.695013
[369]	valid_0's auc:0.69516
[370]	valid_0's auc:0.695234
[371]	valid_0's auc:0.695259
[372]	valid_0's auc:0.695287
[373]	valid_0's auc:0.695299
[374]	valid_0's auc:0.695326
[375]	valid_0's auc:0.695346
[376]	valid_0's auc:0.695366
[377]	valid_0's auc:0.69537
[378]	valid_0's auc:0.695393
[379]	valid_0's auc:0.695428
[380]	valid_0's auc:0.695446
[381]	valid_0's auc:0.69546
[382]	valid_0's auc:0.695474
[383]	valid_0's auc:0.695495
[384]	valid_0's auc:0.695523
[385]	valid_0's auc:0.695533
[386]	valid_0's auc:0.695533
[387]	valid_0's auc:0.695535
[388]	valid_0's auc:0.695545
[389]	valid_0's auc:0.695594
[390]	valid_0's auc:0.695608
[391]	valid_0's auc:0.695616
[392]	valid_0's auc:0.695707
[393]	valid_0's auc:0.69574
[394]	valid_0's auc:0.695758
[395]	valid_0's auc:0.695799
[396]	valid_0's auc:0.695821
[397]	valid_0's auc:0.695821
[398]	valid_0's auc:0.695837
[399]	valid_0's auc:0.695846
[400]	valid_0's auc:0.695855
[401]	valid_0's auc:0.695858
[402]	valid_0's auc:0.695862
[403]	valid_0's auc:0.695882
[404]	valid_0's auc:0.695886
[405]	valid_0's auc:0.695898
[406]	valid_0's auc:0.695901
[407]	valid_0's auc:0.695932
[408]	valid_0's auc:0.695974
[409]	valid_0's auc:0.695982
[410]	valid_0's auc:0.696005
[411]	valid_0's auc:0.696026
[412]	valid_0's auc:0.696038
[413]	valid_0's auc:0.696041
[414]	valid_0's auc:0.696048
[415]	valid_0's auc:0.696161
[416]	valid_0's auc:0.696182
[417]	valid_0's auc:0.696217
[418]	valid_0's auc:0.69623
[419]	valid_0's auc:0.696285
[420]	valid_0's auc:0.696299
[421]	valid_0's auc:0.696358
[422]	valid_0's auc:0.696384
[423]	valid_0's auc:0.696401
[424]	valid_0's auc:0.696433
[425]	valid_0's auc:0.696507
[426]	valid_0's auc:0.696562
[427]	valid_0's auc:0.696575
[428]	valid_0's auc:0.696594
[429]	valid_0's auc:0.696618
[430]	valid_0's auc:0.696645
[431]	valid_0's auc:0.696664
[432]	valid_0's auc:0.696704
[433]	valid_0's auc:0.696728
[434]	valid_0's auc:0.69673
[435]	valid_0's auc:0.696742
[436]	valid_0's auc:0.696747
[437]	valid_0's auc:0.696749
[438]	valid_0's auc:0.696775
[439]	valid_0's auc:0.6969
[440]	valid_0's auc:0.696949
[441]	valid_0's auc:0.696967
[442]	valid_0's auc:0.696969
[443]	valid_0's auc:0.697024
[444]	valid_0's auc:0.697039
[445]	valid_0's auc:0.697047
[446]	valid_0's auc:0.697072
[447]	valid_0's auc:0.697078
[448]	valid_0's auc:0.697105
[449]	valid_0's auc:0.697137
[450]	valid_0's auc:0.69717
[451]	valid_0's auc:0.697198
[452]	valid_0's auc:0.697219
[453]	valid_0's auc:0.697271
[454]	valid_0's auc:0.697287
[455]	valid_0's auc:0.697309
[456]	valid_0's auc:0.69731
[457]	valid_0's auc:0.69732
[458]	valid_0's auc:0.697321
[459]	valid_0's auc:0.697345
[460]	valid_0's auc:0.697406
[461]	valid_0's auc:0.697422
[462]	valid_0's auc:0.697418
[463]	valid_0's auc:0.697423
[464]	valid_0's auc:0.697422
[465]	valid_0's auc:0.697436
[466]	valid_0's auc:0.697467
[467]	valid_0's auc:0.697479
[468]	valid_0's auc:0.697483
[469]	valid_0's auc:0.697485
[470]	valid_0's auc:0.697492
[471]	valid_0's auc:0.697497
[472]	valid_0's auc:0.697508
[473]	valid_0's auc:0.697506
[474]	valid_0's auc:0.697518
[475]	valid_0's auc:0.697522
[476]	valid_0's auc:0.697546
[477]	valid_0's auc:0.697567
[478]	valid_0's auc:0.697595
[479]	valid_0's auc:0.697607
[480]	valid_0's auc:0.697624
[481]	valid_0's auc:0.697639
[482]	valid_0's auc:0.697643
[483]	valid_0's auc:0.697655
[484]	valid_0's auc:0.697669
[485]	valid_0's auc:0.697677
[486]	valid_0's auc:0.697698
[487]	valid_0's auc:0.697706
[488]	valid_0's auc:0.697738
[489]	valid_0's auc:0.697752
[490]	valid_0's auc:0.69776
[491]	valid_0's auc:0.697783
[492]	valid_0's auc:0.697788
[493]	valid_0's auc:0.697796
[494]	valid_0's auc:0.697806
[495]	valid_0's auc:0.697824
[496]	valid_0's auc:0.697838
[497]	valid_0's auc:0.697837
[498]	valid_0's auc:0.697868
[499]	valid_0's auc:0.697879
[500]	valid_0's auc:0.697891
[501]	valid_0's auc:0.697913
[502]	valid_0's auc:0.697921
[503]	valid_0's auc:0.697942
[504]	valid_0's auc:0.697949
[505]	valid_0's auc:0.697973
[506]	valid_0's auc:0.697974
[507]	valid_0's auc:0.697998
[508]	valid_0's auc:0.698013
[509]	valid_0's auc:0.698028
[510]	valid_0's auc:0.698041
[511]	valid_0's auc:0.698064
[512]	valid_0's auc:0.698072
[513]	valid_0's auc:0.698116
[514]	valid_0's auc:0.698127
[515]	valid_0's auc:0.698137
[516]	valid_0's auc:0.698149
[517]	valid_0's auc:0.698161
[518]	valid_0's auc:0.698168
[519]	valid_0's auc:0.698171
[520]	valid_0's auc:0.698193
[521]	valid_0's auc:0.6982
[522]	valid_0's auc:0.698218
[523]	valid_0's auc:0.698232
[524]	valid_0's auc:0.698251
[525]	valid_0's auc:0.69826
[526]	valid_0's auc:0.698299
[527]	valid_0's auc:0.698309
[528]	valid_0's auc:0.698317
[529]	valid_0's auc:0.698331
[530]	valid_0's auc:0.69834
[531]	valid_0's auc:0.69836
[532]	valid_0's auc:0.698373
[533]	valid_0's auc:0.698387
[534]	valid_0's auc:0.698391
[535]	valid_0's auc:0.698406
[536]	valid_0's auc:0.698415
[537]	valid_0's auc:0.698405
[538]	valid_0's auc:0.6984
[539]	valid_0's auc:0.698424
[540]	valid_0's auc:0.69844
[541]	valid_0's auc:0.698442
[542]	valid_0's auc:0.698478
[543]	valid_0's auc:0.698482
[544]	valid_0's auc:0.698498
[545]	valid_0's auc:0.698508
[546]	valid_0's auc:0.698511
[547]	valid_0's auc:0.698528
[548]	valid_0's auc:0.698545
[549]	valid_0's auc:0.698552
[550]	valid_0's auc:0.698555
[551]	valid_0's auc:0.698561
[552]	valid_0's auc:0.698662
[553]	valid_0's auc:0.698667
[554]	valid_0's auc:0.698677
[555]	valid_0's auc:0.698677
[556]	valid_0's auc:0.698683
[557]	valid_0's auc:0.698694
[558]	valid_0's auc:0.69871
[559]	valid_0's auc:0.698749
[560]	valid_0's auc:0.69884
[561]	valid_0's auc:0.698865
[562]	valid_0's auc:0.698866
[563]	valid_0's auc:0.698879
[564]	valid_0's auc:0.698906
[565]	valid_0's auc:0.698918
[566]	valid_0's auc:0.698932
[567]	valid_0's auc:0.698939
[568]	valid_0's auc:0.698977
[569]	valid_0's auc:0.698983
[570]	valid_0's auc:0.698986
[571]	valid_0's auc:0.699011
[572]	valid_0's auc:0.699018
[573]	valid_0's auc:0.699036
[574]	valid_0's auc:0.699045
[575]	valid_0's auc:0.699092
[576]	valid_0's auc:0.699098
[577]	valid_0's auc:0.699124
[578]	valid_0's auc:0.69914
[579]	valid_0's auc:0.699144
[580]	valid_0's auc:0.699159
[581]	valid_0's auc:0.699168
[582]	valid_0's auc:0.699192
[583]	valid_0's auc:0.699219
[584]	valid_0's auc:0.699231
[585]	valid_0's auc:0.699234
[586]	valid_0's auc:0.699241
[587]	valid_0's auc:0.699256
[588]	valid_0's auc:0.699264
[589]	valid_0's auc:0.699264
[590]	valid_0's auc:0.699274
[591]	valid_0's auc:0.69929
[592]	valid_0's auc:0.699299
[593]	valid_0's auc:0.699312
[594]	valid_0's auc:0.699336
[595]	valid_0's auc:0.69933
[596]	valid_0's auc:0.699345
[597]	valid_0's auc:0.699361
[598]	valid_0's auc:0.699361
[599]	valid_0's auc:0.699369
[600]	valid_0's auc:0.699387
[601]	valid_0's auc:0.699396
[602]	valid_0's auc:0.699418
[603]	valid_0's auc:0.699423
[604]	valid_0's auc:0.699436
[605]	valid_0's auc:0.699444
[606]	valid_0's auc:0.699448
[607]	valid_0's auc:0.699455
[608]	valid_0's auc:0.699468
[609]	valid_0's auc:0.699483
[610]	valid_0's auc:0.699481
[611]	valid_0's auc:0.699479
[612]	valid_0's auc:0.699493
[613]	valid_0's auc:0.699497
[614]	valid_0's auc:0.699512
[615]	valid_0's auc:0.699528
[616]	valid_0's auc:0.699535
[617]	valid_0's auc:0.699548
[618]	valid_0's auc:0.69956
[619]	valid_0's auc:0.699563
[620]	valid_0's auc:0.699569
[621]	valid_0's auc:0.699579
[622]	valid_0's auc:0.699592
[623]	valid_0's auc:0.699597
[624]	valid_0's auc:0.699597
[625]	valid_0's auc:0.699608
[626]	valid_0's auc:0.699617
[627]	valid_0's auc:0.699634
[628]	valid_0's auc:0.699649
[629]	valid_0's auc:0.699657
[630]	valid_0's auc:0.699655
[631]	valid_0's auc:0.699673
[632]	valid_0's auc:0.699684
[633]	valid_0's auc:0.699701
[634]	valid_0's auc:0.699711
[635]	valid_0's auc:0.699717
[636]	valid_0's auc:0.69972
[637]	valid_0's auc:0.699732
[638]	valid_0's auc:0.699736
[639]	valid_0's auc:0.699763
[640]	valid_0's auc:0.699771
[641]	valid_0's auc:0.699767
[642]	valid_0's auc:0.699779
[643]	valid_0's auc:0.699787
[644]	valid_0's auc:0.699792
[645]	valid_0's auc:0.699811
[646]	valid_0's auc:0.699812
[647]	valid_0's auc:0.699816
[648]	valid_0's auc:0.699825
[649]	valid_0's auc:0.699845
[650]	valid_0's auc:0.699844
[651]	valid_0's auc:0.699838
[652]	valid_0's auc:0.699866
[653]	valid_0's auc:0.69987
[654]	valid_0's auc:0.699884
[655]	valid_0's auc:0.69989
[656]	valid_0's auc:0.699908
[657]	valid_0's auc:0.699915
[658]	valid_0's auc:0.699929
[659]	valid_0's auc:0.699933
[660]	valid_0's auc:0.699965
[661]	valid_0's auc:0.699969
[662]	valid_0's auc:0.699979
[663]	valid_0's auc:0.699981
[664]	valid_0's auc:0.699994
[665]	valid_0's auc:0.700002
[666]	valid_0's auc:0.700004
[667]	valid_0's auc:0.70002
[668]	valid_0's auc:0.700023
[669]	valid_0's auc:0.700037
[670]	valid_0's auc:0.70004
[671]	valid_0's auc:0.700042
[672]	valid_0's auc:0.700056
[673]	valid_0's auc:0.700086
[674]	valid_0's auc:0.700099
[675]	valid_0's auc:0.700114
[676]	valid_0's auc:0.700124
[677]	valid_0's auc:0.700132
[678]	valid_0's auc:0.700137
[679]	valid_0's auc:0.700141
[680]	valid_0's auc:0.700152
[681]	valid_0's auc:0.700168
[682]	valid_0's auc:0.700184
[683]	valid_0's auc:0.700193
[684]	valid_0's auc:0.700212
[685]	valid_0's auc:0.700221
[686]	valid_0's auc:0.700235
[687]	valid_0's auc:0.700239
[688]	valid_0's auc:0.700243
[689]	valid_0's auc:0.700245
[690]	valid_0's auc:0.700254
[691]	valid_0's auc:0.700264
[692]	valid_0's auc:0.700265
[693]	valid_0's auc:0.700273
[694]	valid_0's auc:0.70028
[695]	valid_0's auc:0.700281
[696]	valid_0's auc:0.700296
[697]	valid_0's auc:0.700311
[698]	valid_0's auc:0.700316
[699]	valid_0's auc:0.700322
[700]	valid_0's auc:0.700343
[701]	valid_0's auc:0.700358
[702]	valid_0's auc:0.70036
[703]	valid_0's auc:0.700374
[704]	valid_0's auc:0.700382
[705]	valid_0's auc:0.700393
[706]	valid_0's auc:0.700403
[707]	valid_0's auc:0.700413
[708]	valid_0's auc:0.70042
[709]	valid_0's auc:0.70046
[710]	valid_0's auc:0.700467
[711]	valid_0's auc:0.700468
[712]	valid_0's auc:0.700467
[713]	valid_0's auc:0.700474
[714]	valid_0's auc:0.700486
[715]	valid_0's auc:0.70049
[716]	valid_0's auc:0.700492
[717]	valid_0's auc:0.700488
[718]	valid_0's auc:0.700489
[719]	valid_0's auc:0.700493
[720]	valid_0's auc:0.700504
[721]	valid_0's auc:0.700509
[722]	valid_0's auc:0.700522
[723]	valid_0's auc:0.700536
[724]	valid_0's auc:0.700546
[725]	valid_0's auc:0.700557
[726]	valid_0's auc:0.700568
[727]	valid_0's auc:0.700572
[728]	valid_0's auc:0.700572
[729]	valid_0's auc:0.700579
[730]	valid_0's auc:0.700584
[731]	valid_0's auc:0.700596
[732]	valid_0's auc:0.700598
[733]	valid_0's auc:0.700596
[734]	valid_0's auc:0.700604
[735]	valid_0's auc:0.700616
[736]	valid_0's auc:0.700621
[737]	valid_0's auc:0.700665
[738]	valid_0's auc:0.700666
[739]	valid_0's auc:0.700673
[740]	valid_0's auc:0.700679
[741]	valid_0's auc:0.700687
[742]	valid_0's auc:0.700695
[743]	valid_0's auc:0.700706
[744]	valid_0's auc:0.700725
[745]	valid_0's auc:0.700738
[746]	valid_0's auc:0.700741
[747]	valid_0's auc:0.700747
[748]	valid_0's auc:0.700757
[749]	valid_0's auc:0.700775
[750]	valid_0's auc:0.700787
[751]	valid_0's auc:0.700786
[752]	valid_0's auc:0.700799
[753]	valid_0's auc:0.700819
[754]	valid_0's auc:0.70082
[755]	valid_0's auc:0.700828
[756]	valid_0's auc:0.700834
[757]	valid_0's auc:0.700842
[758]	valid_0's auc:0.700851
[759]	valid_0's auc:0.700852
[760]	valid_0's auc:0.700868
[761]	valid_0's auc:0.700875
[762]	valid_0's auc:0.700878
[763]	valid_0's auc:0.700884
[764]	valid_0's auc:0.700888
[765]	valid_0's auc:0.700899
[766]	valid_0's auc:0.700903
[767]	valid_0's auc:0.700909
[768]	valid_0's auc:0.700909
[769]	valid_0's auc:0.700923
[770]	valid_0's auc:0.700941
[771]	valid_0's auc:0.700942
[772]	valid_0's auc:0.700957
[773]	valid_0's auc:0.700963
[774]	valid_0's auc:0.700968
[775]	valid_0's auc:0.700973
[776]	valid_0's auc:0.700974
[777]	valid_0's auc:0.700981
[778]	valid_0's auc:0.700991
[779]	valid_0's auc:0.700999
[780]	valid_0's auc:0.701004
[781]	valid_0's auc:0.701011
[782]	valid_0's auc:0.70102
[783]	valid_0's auc:0.701027
[784]	valid_0's auc:0.701026
[785]	valid_0's auc:0.701029
[786]	valid_0's auc:0.701029
[787]	valid_0's auc:0.701029
[788]	valid_0's auc:0.701054
[789]	valid_0's auc:0.701058
[790]	valid_0's auc:0.701071
[791]	valid_0's auc:0.701067
[792]	valid_0's auc:0.701061
[793]	valid_0's auc:0.701073
[794]	valid_0's auc:0.701088
[795]	valid_0's auc:0.701091
[796]	valid_0's auc:0.701103
[797]	valid_0's auc:0.701108
[798]	valid_0's auc:0.701119
[799]	valid_0's auc:0.701124
[800]	valid_0's auc:0.701134
[801]	valid_0's auc:0.701144
[802]	valid_0's auc:0.701144
[803]	valid_0's auc:0.701148
[804]	valid_0's auc:0.701154
[805]	valid_0's auc:0.701167
[806]	valid_0's auc:0.701171
[807]	valid_0's auc:0.701178
[808]	valid_0's auc:0.701189
[809]	valid_0's auc:0.7012
[810]	valid_0's auc:0.701203
[811]	valid_0's auc:0.701215
[812]	valid_0's auc:0.701227
[813]	valid_0's auc:0.701233
[814]	valid_0's auc:0.701239
[815]	valid_0's auc:0.701244
[816]	valid_0's auc:0.701251
[817]	valid_0's auc:0.701259
[818]	valid_0's auc:0.701269
[819]	valid_0's auc:0.701276
[820]	valid_0's auc:0.701285
[821]	valid_0's auc:0.701291
[822]	valid_0's auc:0.701295
[823]	valid_0's auc:0.701299
[824]	valid_0's auc:0.701307
[825]	valid_0's auc:0.701307
[826]	valid_0's auc:0.701309
[827]	valid_0's auc:0.701311
[828]	valid_0's auc:0.701314
[829]	valid_0's auc:0.701313
[830]	valid_0's auc:0.701329
[831]	valid_0's auc:0.701333
[832]	valid_0's auc:0.701344
[833]	valid_0's auc:0.701353
[834]	valid_0's auc:0.701358
[835]	valid_0's auc:0.701362
[836]	valid_0's auc:0.701375
[837]	valid_0's auc:0.701377
[838]	valid_0's auc:0.701388
[839]	valid_0's auc:0.701395
[840]	valid_0's auc:0.701396
[841]	valid_0's auc:0.701399
[842]	valid_0's auc:0.701413
[843]	valid_0's auc:0.701429
[844]	valid_0's auc:0.701432
[845]	valid_0's auc:0.701455
[846]	valid_0's auc:0.701462
[847]	valid_0's auc:0.701473
[848]	valid_0's auc:0.701478
[849]	valid_0's auc:0.701484
[850]	valid_0's auc:0.701533
[851]	valid_0's auc:0.701561
[852]	valid_0's auc:0.701572
[853]	valid_0's auc:0.701572
[854]	valid_0's auc:0.701579
[855]	valid_0's auc:0.70158
[856]	valid_0's auc:0.701585
[857]	valid_0's auc:0.701585
[858]	valid_0's auc:0.701596
[859]	valid_0's auc:0.701606
[860]	valid_0's auc:0.701605
[861]	valid_0's auc:0.701607
[862]	valid_0's auc:0.701611
[863]	valid_0's auc:0.701616
[864]	valid_0's auc:0.701627
[865]	valid_0's auc:0.701631
[866]	valid_0's auc:0.701635
[867]	valid_0's auc:0.701637
[868]	valid_0's auc:0.701643
[869]	valid_0's auc:0.701648
[870]	valid_0's auc:0.701651
[871]	valid_0's auc:0.701655
[872]	valid_0's auc:0.701658
[873]	valid_0's auc:0.701667
[874]	valid_0's auc:0.701665
[875]	valid_0's auc:0.70167
[876]	valid_0's auc:0.701671
[877]	valid_0's auc:0.701676
[878]	valid_0's auc:0.701683
[879]	valid_0's auc:0.701686
[880]	valid_0's auc:0.701695
[881]	valid_0's auc:0.701695
[882]	valid_0's auc:0.701712
[883]	valid_0's auc:0.701714
[884]	valid_0's auc:0.701714
[885]	valid_0's auc:0.70172
[886]	valid_0's auc:0.70172
[887]	valid_0's auc:0.701721
[888]	valid_0's auc:0.701716
[889]	valid_0's auc:0.701725
[890]	valid_0's auc:0.701727
[891]	valid_0's auc:0.701734
[892]	valid_0's auc:0.701732
[893]	valid_0's auc:0.701744
[894]	valid_0's auc:0.701756
[895]	valid_0's auc:0.701759
[896]	valid_0's auc:0.701808
[897]	valid_0's auc:0.701824
[898]	valid_0's auc:0.701832
[899]	valid_0's auc:0.701837
[900]	valid_0's auc:0.701852
[901]	valid_0's auc:0.701852
[902]	valid_0's auc:0.701858
[903]	valid_0's auc:0.701872
[904]	valid_0's auc:0.701875
[905]	valid_0's auc:0.701893
[906]	valid_0's auc:0.701899
[907]	valid_0's auc:0.701908
[908]	valid_0's auc:0.701916
[909]	valid_0's auc:0.701928
[910]	valid_0's auc:0.701934
[911]	valid_0's auc:0.70193
[912]	valid_0's auc:0.701932
[913]	valid_0's auc:0.701936
[914]	valid_0's auc:0.701938
[915]	valid_0's auc:0.701946
[916]	valid_0's auc:0.701951
[917]	valid_0's auc:0.701953
[918]	valid_0's auc:0.701948
[919]	valid_0's auc:0.701956
[920]	valid_0's auc:0.701966
[921]	valid_0's auc:0.701969
[922]	valid_0's auc:0.701972
[923]	valid_0's auc:0.701975
[924]	valid_0's auc:0.701978
[925]	valid_0's auc:0.701977
[926]	valid_0's auc:0.701975
[927]	valid_0's auc:0.701981
[928]	valid_0's auc:0.701987
[929]	valid_0's auc:0.70199
[930]	valid_0's auc:0.701995
[931]	valid_0's auc:0.702002
[932]	valid_0's auc:0.70201
[933]	valid_0's auc:0.70202
[934]	valid_0's auc:0.70203
[935]	valid_0's auc:0.70203
[936]	valid_0's auc:0.702032
[937]	valid_0's auc:0.702039
[938]	valid_0's auc:0.702046
[939]	valid_0's auc:0.702048
[940]	valid_0's auc:0.702061
[941]	valid_0's auc:0.702064
[942]	valid_0's auc:0.702066
[943]	valid_0's auc:0.702067
[944]	valid_0's auc:0.702074
[945]	valid_0's auc:0.702084
[946]	valid_0's auc:0.702091
[947]	valid_0's auc:0.702093
[948]	valid_0's auc:0.702101
[949]	valid_0's auc:0.702102
[950]	valid_0's auc:0.702106
[951]	valid_0's auc:0.702109
[952]	valid_0's auc:0.702115
[953]	valid_0's auc:0.702117
[954]	valid_0's auc:0.702124
[955]	valid_0's auc:0.702129
[956]	valid_0's auc:0.70213
[957]	valid_0's auc:0.702138
[958]	valid_0's auc:0.702156
[959]	valid_0's auc:0.702164
[960]	valid_0's auc:0.702172
[961]	valid_0's auc:0.702176
[962]	valid_0's auc:0.702203
[963]	valid_0's auc:0.702214
[964]	valid_0's auc:0.702216
[965]	valid_0's auc:0.702234
[966]	valid_0's auc:0.702242
[967]	valid_0's auc:0.702244
[968]	valid_0's auc:0.702244
[969]	valid_0's auc:0.702247
[970]	valid_0's auc:0.702265
[971]	valid_0's auc:0.702267
[972]	valid_0's auc:0.702276
[973]	valid_0's auc:0.702279
[974]	valid_0's auc:0.702285
[975]	valid_0's auc:0.702289
[976]	valid_0's auc:0.702292
[977]	valid_0's auc:0.702292
[978]	valid_0's auc:0.702296
[979]	valid_0's auc:0.702304
[980]	valid_0's auc:0.702307
[981]	valid_0's auc:0.702316
[982]	valid_0's auc:0.702317
[983]	valid_0's auc:0.702321
[984]	valid_0's auc:0.702324
[985]	valid_0's auc:0.70234
[986]	valid_0's auc:0.702338
[987]	valid_0's auc:0.702343
[988]	valid_0's auc:0.702347
[989]	valid_0's auc:0.70235
[990]	valid_0's auc:0.702376
[991]	valid_0's auc:0.702381
[992]	valid_0's auc:0.702381
[993]	valid_0's auc:0.702386
[994]	valid_0's auc:0.702389
[995]	valid_0's auc:0.702398
[996]	valid_0's auc:0.702402
[997]	valid_0's auc:0.702414
[998]	valid_0's auc:0.702418
[999]	valid_0's auc:0.702447
[1000]	valid_0's auc:0.702454
[1001]	valid_0's auc:0.702455
[1002]	valid_0's auc:0.702456
[1003]	valid_0's auc:0.702462
[1004]	valid_0's auc:0.70247
[1005]	valid_0's auc:0.702478
[1006]	valid_0's auc:0.702481
[1007]	valid_0's auc:0.702486
[1008]	valid_0's auc:0.702491
[1009]	valid_0's auc:0.702495
[1010]	valid_0's auc:0.702503
[1011]	valid_0's auc:0.702509
[1012]	valid_0's auc:0.702512
[1013]	valid_0's auc:0.702518
[1014]	valid_0's auc:0.702519
[1015]	valid_0's auc:0.702526
[1016]	valid_0's auc:0.70253
[1017]	valid_0's auc:0.702529
[1018]	valid_0's auc:0.702543
[1019]	valid_0's auc:0.702565
[1020]	valid_0's auc:0.702561
[1021]	valid_0's auc:0.702562
[1022]	valid_0's auc:0.702569
[1023]	valid_0's auc:0.70258
[1024]	valid_0's auc:0.702584
[1025]	valid_0's auc:0.702585
[1026]	valid_0's auc:0.70259
[1027]	valid_0's auc:0.702592
[1028]	valid_0's auc:0.702594
[1029]	valid_0's auc:0.702601
[1030]	valid_0's auc:0.7026
[1031]	valid_0's auc:0.702601
[1032]	valid_0's auc:0.7026
[1033]	valid_0's auc:0.702599
[1034]	valid_0's auc:0.702602
[1035]	valid_0's auc:0.702602
[1036]	valid_0's auc:0.702606
[1037]	valid_0's auc:0.702605
[1038]	valid_0's auc:0.702611
[1039]	valid_0's auc:0.702613
[1040]	valid_0's auc:0.702614
[1041]	valid_0's auc:0.702618
[1042]	valid_0's auc:0.702624
[1043]	valid_0's auc:0.702633
[1044]	valid_0's auc:0.702637
[1045]	valid_0's auc:0.702639
[1046]	valid_0's auc:0.702644
[1047]	valid_0's auc:0.702652
[1048]	valid_0's auc:0.702662
[1049]	valid_0's auc:0.702664
[1050]	valid_0's auc:0.702665
[1051]	valid_0's auc:0.702671
[1052]	valid_0's auc:0.702679
[1053]	valid_0's auc:0.702683
[1054]	valid_0's auc:0.702707
[1055]	valid_0's auc:0.70271
[1056]	valid_0's auc:0.702724
[1057]	valid_0's auc:0.702721
[1058]	valid_0's auc:0.702729
[1059]	valid_0's auc:0.702731
[1060]	valid_0's auc:0.702732
[1061]	valid_0's auc:0.702739
[1062]	valid_0's auc:0.702743
[1063]	valid_0's auc:0.702744
[1064]	valid_0's auc:0.702745
[1065]	valid_0's auc:0.702742
[1066]	valid_0's auc:0.702743
[1067]	valid_0's auc:0.702748
[1068]	valid_0's auc:0.702756
[1069]	valid_0's auc:0.70276
[1070]	valid_0's auc:0.702763
[1071]	valid_0's auc:0.702769
[1072]	valid_0's auc:0.702769
[1073]	valid_0's auc:0.702766
[1074]	valid_0's auc:0.702763
[1075]	valid_0's auc:0.702765
[1076]	valid_0's auc:0.70277
[1077]	valid_0's auc:0.702785
[1078]	valid_0's auc:0.702786
[1079]	valid_0's auc:0.702788
[1080]	valid_0's auc:0.702788
[1081]	valid_0's auc:0.702796
[1082]	valid_0's auc:0.702795
[1083]	valid_0's auc:0.702802
[1084]	valid_0's auc:0.702811
[1085]	valid_0's auc:0.702809
[1086]	valid_0's auc:0.702812
[1087]	valid_0's auc:0.702811
[1088]	valid_0's auc:0.702815
[1089]	valid_0's auc:0.702819
[1090]	valid_0's auc:0.702835
[1091]	valid_0's auc:0.702843
[1092]	valid_0's auc:0.702847
[1093]	valid_0's auc:0.702851
[1094]	valid_0's auc:0.702867
[1095]	valid_0's auc:0.702864
[1096]	valid_0's auc:0.702869
[1097]	valid_0's auc:0.702877
[1098]	valid_0's auc:0.702876
[1099]	valid_0's auc:0.702879
[1100]	valid_0's auc:0.702881
[1101]	valid_0's auc:0.702895
[1102]	valid_0's auc:0.702899
[1103]	valid_0's auc:0.702901
[1104]	valid_0's auc:0.702907
[1105]	valid_0's auc:0.702911
[1106]	valid_0's auc:0.702923
[1107]	valid_0's auc:0.702926
[1108]	valid_0's auc:0.702933
[1109]	valid_0's auc:0.702939
[1110]	valid_0's auc:0.70295
[1111]	valid_0's auc:0.702954
[1112]	valid_0's auc:0.702959
[1113]	valid_0's auc:0.702966
[1114]	valid_0's auc:0.702968
[1115]	valid_0's auc:0.702969
[1116]	valid_0's auc:0.702968
[1117]	valid_0's auc:0.702979
[1118]	valid_0's auc:0.702982
[1119]	valid_0's auc:0.702986
[1120]	valid_0's auc:0.702992
[1121]	valid_0's auc:0.702995
[1122]	valid_0's auc:0.703003
[1123]	valid_0's auc:0.703003
[1124]	valid_0's auc:0.703006
[1125]	valid_0's auc:0.703006
[1126]	valid_0's auc:0.703007
[1127]	valid_0's auc:0.703009
[1128]	valid_0's auc:0.703018
[1129]	valid_0's auc:0.703023
[1130]	valid_0's auc:0.703026
[1131]	valid_0's auc:0.703027
[1132]	valid_0's auc:0.703025
[1133]	valid_0's auc:0.703026
[1134]	valid_0's auc:0.703031
[1135]	valid_0's auc:0.703033
[1136]	valid_0's auc:0.703034
[1137]	valid_0's auc:0.703029
[1138]	valid_0's auc:0.703024
[1139]	valid_0's auc:0.703028
[1140]	valid_0's auc:0.703032
[1141]	valid_0's auc:0.703033
[1142]	valid_0's auc:0.703039
[1143]	valid_0's auc:0.703041
[1144]	valid_0's auc:0.703043
[1145]	valid_0's auc:0.703045
[1146]	valid_0's auc:0.703046
[1147]	valid_0's auc:0.703051
[1148]	valid_0's auc:0.703051
[1149]	valid_0's auc:0.703053
[1150]	valid_0's auc:0.703054
[1151]	valid_0's auc:0.703061
[1152]	valid_0's auc:0.703066
[1153]	valid_0's auc:0.703078
[1154]	valid_0's auc:0.703089
[1155]	valid_0's auc:0.703091
[1156]	valid_0's auc:0.703093
[1157]	valid_0's auc:0.703108
[1158]	valid_0's auc:0.703108
[1159]	valid_0's auc:0.703107
[1160]	valid_0's auc:0.703107
[1161]	valid_0's auc:0.703109
[1162]	valid_0's auc:0.703111
[1163]	valid_0's auc:0.70311
[1164]	valid_0's auc:0.703113
[1165]	valid_0's auc:0.703115
[1166]	valid_0's auc:0.70312
[1167]	valid_0's auc:0.703117
[1168]	valid_0's auc:0.703118
[1169]	valid_0's auc:0.703119
[1170]	valid_0's auc:0.703121
[1171]	valid_0's auc:0.703124
[1172]	valid_0's auc:0.703131
[1173]	valid_0's auc:0.703135
[1174]	valid_0's auc:0.703137
[1175]	valid_0's auc:0.703142
[1176]	valid_0's auc:0.703143
[1177]	valid_0's auc:0.703146
[1178]	valid_0's auc:0.703153
[1179]	valid_0's auc:0.703153
[1180]	valid_0's auc:0.703155
[1181]	valid_0's auc:0.703156
[1182]	valid_0's auc:0.703164
[1183]	valid_0's auc:0.70317
[1184]	valid_0's auc:0.703172
[1185]	valid_0's auc:0.703174
[1186]	valid_0's auc:0.703177
[1187]	valid_0's auc:0.703182
[1188]	valid_0's auc:0.703188
[1189]	valid_0's auc:0.703191
[1190]	valid_0's auc:0.703196
[1191]	valid_0's auc:0.703196
[1192]	valid_0's auc:0.703196
[1193]	valid_0's auc:0.703198
[1194]	valid_0's auc:0.703202
[1195]	valid_0's auc:0.70321
[1196]	valid_0's auc:0.703212
[1197]	valid_0's auc:0.703216
[1198]	valid_0's auc:0.703223
[1199]	valid_0's auc:0.703224
[1200]	valid_0's auc:0.703228
[1201]	valid_0's auc:0.703233
[1202]	valid_0's auc:0.703237
[1203]	valid_0's auc:0.703237
[1204]	valid_0's auc:0.70324
[1205]	valid_0's auc:0.703246
[1206]	valid_0's auc:0.703244
[1207]	valid_0's auc:0.703247
[1208]	valid_0's auc:0.703252
[1209]	valid_0's auc:0.703253
[1210]	valid_0's auc:0.703255
[1211]	valid_0's auc:0.703258
[1212]	valid_0's auc:0.70326
[1213]	valid_0's auc:0.703267
[1214]	valid_0's auc:0.703268
[1215]	valid_0's auc:0.703274
[1216]	valid_0's auc:0.703276
[1217]	valid_0's auc:0.703276
[1218]	valid_0's auc:0.703284
[1219]	valid_0's auc:0.703287
[1220]	valid_0's auc:0.703293
[1221]	valid_0's auc:0.703301
[1222]	valid_0's auc:0.703301
[1223]	valid_0's auc:0.703309
[1224]	valid_0's auc:0.703311
[1225]	valid_0's auc:0.703314
[1226]	valid_0's auc:0.703317
[1227]	valid_0's auc:0.703318
[1228]	valid_0's auc:0.703325
[1229]	valid_0's auc:0.703326
[1230]	valid_0's auc:0.70333
[1231]	valid_0's auc:0.703332
[1232]	valid_0's auc:0.703338
[1233]	valid_0's auc:0.703347
[1234]	valid_0's auc:0.703356
[1235]	valid_0's auc:0.703357
[1236]	valid_0's auc:0.703365
[1237]	valid_0's auc:0.703367
[1238]	valid_0's auc:0.703374
[1239]	valid_0's auc:0.70338
[1240]	valid_0's auc:0.703383
[1241]	valid_0's auc:0.703383
[1242]	valid_0's auc:0.703385
[1243]	valid_0's auc:0.703385
[1244]	valid_0's auc:0.703389
[1245]	valid_0's auc:0.703396
[1246]	valid_0's auc:0.703399
[1247]	valid_0's auc:0.703397
[1248]	valid_0's auc:0.7034
[1249]	valid_0's auc:0.703402
[1250]	valid_0's auc:0.703402
[1251]	valid_0's auc:0.703404
[1252]	valid_0's auc:0.703405
[1253]	valid_0's auc:0.703403
[1254]	valid_0's auc:0.703404
[1255]	valid_0's auc:0.703408
[1256]	valid_0's auc:0.703412
[1257]	valid_0's auc:0.703412
[1258]	valid_0's auc:0.703415
[1259]	valid_0's auc:0.703416
[1260]	valid_0's auc:0.70342
[1261]	valid_0's auc:0.703422
[1262]	valid_0's auc:0.703425
[1263]	valid_0's auc:0.703424
[1264]	valid_0's auc:0.70343
[1265]	valid_0's auc:0.70343
[1266]	valid_0's auc:0.70344
[1267]	valid_0's auc:0.703457
[1268]	valid_0's auc:0.703459
[1269]	valid_0's auc:0.703459
[1270]	valid_0's auc:0.70346
[1271]	valid_0's auc:0.703461
[1272]	valid_0's auc:0.703463
[1273]	valid_0's auc:0.703465
[1274]	valid_0's auc:0.703468
[1275]	valid_0's auc:0.703474
[1276]	valid_0's auc:0.703474
[1277]	valid_0's auc:0.703486
[1278]	valid_0's auc:0.703494
[1279]	valid_0's auc:0.703502
[1280]	valid_0's auc:0.703508
[1281]	valid_0's auc:0.703511
[1282]	valid_0's auc:0.703517
[1283]	valid_0's auc:0.703518
[1284]	valid_0's auc:0.703523
[1285]	valid_0's auc:0.703526
[1286]	valid_0's auc:0.703525
[1287]	valid_0's auc:0.703527
[1288]	valid_0's auc:0.703529
[1289]	valid_0's auc:0.70353
[1290]	valid_0's auc:0.703535
[1291]	valid_0's auc:0.703542
[1292]	valid_0's auc:0.703542
[1293]	valid_0's auc:0.703544
[1294]	valid_0's auc:0.703546
[1295]	valid_0's auc:0.703548
[1296]	valid_0's auc:0.703551
[1297]	valid_0's auc:0.703556
[1298]	valid_0's auc:0.703558
[1299]	valid_0's auc:0.703557
[1300]	valid_0's auc:0.703565
[1301]	valid_0's auc:0.70357
[1302]	valid_0's auc:0.703572
[1303]	valid_0's auc:0.703576
[1304]	valid_0's auc:0.703578
[1305]	valid_0's auc:0.703577
[1306]	valid_0's auc:0.703578
[1307]	valid_0's auc:0.703582
[1308]	valid_0's auc:0.703583
[1309]	valid_0's auc:0.703584
[1310]	valid_0's auc:0.703589
[1311]	valid_0's auc:0.70359
[1312]	valid_0's auc:0.70359
[1313]	valid_0's auc:0.703591
[1314]	valid_0's auc:0.703597
[1315]	valid_0's auc:0.703598
[1316]	valid_0's auc:0.703604
[1317]	valid_0's auc:0.703604
[1318]	valid_0's auc:0.703604
[1319]	valid_0's auc:0.703607
[1320]	valid_0's auc:0.703608
[1321]	valid_0's auc:0.703611
[1322]	valid_0's auc:0.703614
[1323]	valid_0's auc:0.703619
[1324]	valid_0's auc:0.703619
[1325]	valid_0's auc:0.703621
[1326]	valid_0's auc:0.703621
[1327]	valid_0's auc:0.703623
[1328]	valid_0's auc:0.703628
[1329]	valid_0's auc:0.703632
[1330]	valid_0's auc:0.703634
[1331]	valid_0's auc:0.703638
[1332]	valid_0's auc:0.703642
[1333]	valid_0's auc:0.703644
[1334]	valid_0's auc:0.703648
[1335]	valid_0's auc:0.703653
[1336]	valid_0's auc:0.703655
[1337]	valid_0's auc:0.703665
[1338]	valid_0's auc:0.703668
[1339]	valid_0's auc:0.703671
[1340]	valid_0's auc:0.70367
[1341]	valid_0's auc:0.703675
[1342]	valid_0's auc:0.70368
[1343]	valid_0's auc:0.70368
[1344]	valid_0's auc:0.703679
[1345]	valid_0's auc:0.703682
[1346]	valid_0's auc:0.703682
[1347]	valid_0's auc:0.703683
[1348]	valid_0's auc:0.703688
[1349]	valid_0's auc:0.703691
[1350]	valid_0's auc:0.703693
[1351]	valid_0's auc:0.703693
[1352]	valid_0's auc:0.703693
[1353]	valid_0's auc:0.703693
[1354]	valid_0's auc:0.703701
[1355]	valid_0's auc:0.703706
[1356]	valid_0's auc:0.703705
[1357]	valid_0's auc:0.703708
[1358]	valid_0's auc:0.703709
[1359]	valid_0's auc:0.703712
[1360]	valid_0's auc:0.703713
[1361]	valid_0's auc:0.703718
[1362]	valid_0's auc:0.703721
[1363]	valid_0's auc:0.703721
[1364]	valid_0's auc:0.703724
[1365]	valid_0's auc:0.703727
[1366]	valid_0's auc:0.703731
[1367]	valid_0's auc:0.703737
[1368]	valid_0's auc:0.703741
[1369]	valid_0's auc:0.703742
[1370]	valid_0's auc:0.703741
[1371]	valid_0's auc:0.703749
[1372]	valid_0's auc:0.703752
[1373]	valid_0's auc:0.703753
[1374]	valid_0's auc:0.703758
[1375]	valid_0's auc:0.703765
[1376]	valid_0's auc:0.703768
[1377]	valid_0's auc:0.703767
[1378]	valid_0's auc:0.70377
[1379]	valid_0's auc:0.703773
[1380]	valid_0's auc:0.703774
[1381]	valid_0's auc:0.703778
[1382]	valid_0's auc:0.703783
[1383]	valid_0's auc:0.703784
[1384]	valid_0's auc:0.703786
[1385]	valid_0's auc:0.703791
[1386]	valid_0's auc:0.703793
[1387]	valid_0's auc:0.703793
[1388]	valid_0's auc:0.703795
[1389]	valid_0's auc:0.703799
[1390]	valid_0's auc:0.703807
[1391]	valid_0's auc:0.703811
[1392]	valid_0's auc:0.703813
[1393]	valid_0's auc:0.703817
[1394]	valid_0's auc:0.70382
[1395]	valid_0's auc:0.70382
[1396]	valid_0's auc:0.703822
[1397]	valid_0's auc:0.703826
[1398]	valid_0's auc:0.703827
[1399]	valid_0's auc:0.703831
[1400]	valid_0's auc:0.703838
[1401]	valid_0's auc:0.703842
[1402]	valid_0's auc:0.703845
[1403]	valid_0's auc:0.703846
[1404]	valid_0's auc:0.703847
[1405]	valid_0's auc:0.70385
[1406]	valid_0's auc:0.703861
[1407]	valid_0's auc:0.703865
[1408]	valid_0's auc:0.703869
[1409]	valid_0's auc:0.703867
[1410]	valid_0's auc:0.703875
[1411]	valid_0's auc:0.703875
[1412]	valid_0's auc:0.703877
[1413]	valid_0's auc:0.703878
[1414]	valid_0's auc:0.703882
[1415]	valid_0's auc:0.703884
[1416]	valid_0's auc:0.703886
[1417]	valid_0's auc:0.703885
[1418]	valid_0's auc:0.703887
[1419]	valid_0's auc:0.703889
[1420]	valid_0's auc:0.70389
[1421]	valid_0's auc:0.703888
[1422]	valid_0's auc:0.703892
[1423]	valid_0's auc:0.703894
[1424]	valid_0's auc:0.703891
[1425]	valid_0's auc:0.703898
[1426]	valid_0's auc:0.703898
[1427]	valid_0's auc:0.703897
[1428]	valid_0's auc:0.703906
[1429]	valid_0's auc:0.70391
[1430]	valid_0's auc:0.703913
[1431]	valid_0's auc:0.703916
[1432]	valid_0's auc:0.703919
[1433]	valid_0's auc:0.70392
[1434]	valid_0's auc:0.703918
[1435]	valid_0's auc:0.703921
[1436]	valid_0's auc:0.703921
[1437]	valid_0's auc:0.703928
[1438]	valid_0's auc:0.703931
[1439]	valid_0's auc:0.703934
[1440]	valid_0's auc:0.703936
[1441]	valid_0's auc:0.703939
[1442]	valid_0's auc:0.703939
[1443]	valid_0's auc:0.703939
[1444]	valid_0's auc:0.703945
[1445]	valid_0's auc:0.703945
[1446]	valid_0's auc:0.703948
[1447]	valid_0's auc:0.703951
[1448]	valid_0's auc:0.703949
[1449]	valid_0's auc:0.703954
[1450]	valid_0's auc:0.703956
[1451]	valid_0's auc:0.703959
[1452]	valid_0's auc:0.703963
[1453]	valid_0's auc:0.703965
[1454]	valid_0's auc:0.703964
[1455]	valid_0's auc:0.703968
[1456]	valid_0's auc:0.703969
[1457]	valid_0's auc:0.703971
[1458]	valid_0's auc:0.703976
[1459]	valid_0's auc:0.703977
[1460]	valid_0's auc:0.70398
[1461]	valid_0's auc:0.703986
[1462]	valid_0's auc:0.703986
[1463]	valid_0's auc:0.703989
[1464]	valid_0's auc:0.703991
[1465]	valid_0's auc:0.703995
[1466]	valid_0's auc:0.703997
[1467]	valid_0's auc:0.703997
[1468]	valid_0's auc:0.703999
[1469]	valid_0's auc:0.704
[1470]	valid_0's auc:0.704005
[1471]	valid_0's auc:0.704003
[1472]	valid_0's auc:0.704005
[1473]	valid_0's auc:0.704008
[1474]	valid_0's auc:0.704013
[1475]	valid_0's auc:0.704016
[1476]	valid_0's auc:0.704016
[1477]	valid_0's auc:0.704017
[1478]	valid_0's auc:0.704017
[1479]	valid_0's auc:0.704017
[1480]	valid_0's auc:0.704021
[1481]	valid_0's auc:0.704019
[1482]	valid_0's auc:0.704019
[1483]	valid_0's auc:0.704022
[1484]	valid_0's auc:0.704023
[1485]	valid_0's auc:0.704024
[1486]	valid_0's auc:0.704027
[1487]	valid_0's auc:0.704027
[1488]	valid_0's auc:0.704031
[1489]	valid_0's auc:0.704032
[1490]	valid_0's auc:0.704031
[1491]	valid_0's auc:0.70403
[1492]	valid_0's auc:0.704033
[1493]	valid_0's auc:0.704033
[1494]	valid_0's auc:0.70404
[1495]	valid_0's auc:0.704043
[1496]	valid_0's auc:0.704043
[1497]	valid_0's auc:0.704047
[1498]	valid_0's auc:0.704049
[1499]	valid_0's auc:0.704047
[1500]	valid_0's auc:0.704049
[1501]	valid_0's auc:0.704049
[1502]	valid_0's auc:0.704048
[1503]	valid_0's auc:0.70405
[1504]	valid_0's auc:0.704054
[1505]	valid_0's auc:0.704055
[1506]	valid_0's auc:0.704058
[1507]	valid_0's auc:0.704057
[1508]	valid_0's auc:0.70406
[1509]	valid_0's auc:0.704062
[1510]	valid_0's auc:0.704069
[1511]	valid_0's auc:0.704071
[1512]	valid_0's auc:0.70407
[1513]	valid_0's auc:0.70407
[1514]	valid_0's auc:0.704075
[1515]	valid_0's auc:0.704076
[1516]	valid_0's auc:0.704076
[1517]	valid_0's auc:0.704077
[1518]	valid_0's auc:0.704076
[1519]	valid_0's auc:0.704076
[1520]	valid_0's auc:0.704079
[1521]	valid_0's auc:0.70408
[1522]	valid_0's auc:0.704084
[1523]	valid_0's auc:0.704086
[1524]	valid_0's auc:0.704087
[1525]	valid_0's auc:0.704089
[1526]	valid_0's auc:0.704095
[1527]	valid_0's auc:0.704098
[1528]	valid_0's auc:0.7041
[1529]	valid_0's auc:0.704101
[1530]	valid_0's auc:0.704106
[1531]	valid_0's auc:0.704106
[1532]	valid_0's auc:0.704112
[1533]	valid_0's auc:0.704118
[1534]	valid_0's auc:0.704118
[1535]	valid_0's auc:0.704121
[1536]	valid_0's auc:0.704123
[1537]	valid_0's auc:0.704122
[1538]	valid_0's auc:0.704121
[1539]	valid_0's auc:0.704123
[1540]	valid_0's auc:0.704124
[1541]	valid_0's auc:0.704125
[1542]	valid_0's auc:0.704129
[1543]	valid_0's auc:0.704131
[1544]	valid_0's auc:0.704131
[1545]	valid_0's auc:0.70414
[1546]	valid_0's auc:0.704142
[1547]	valid_0's auc:0.704143
[1548]	valid_0's auc:0.704139
[1549]	valid_0's auc:0.704149
[1550]	valid_0's auc:0.70415
[1551]	valid_0's auc:0.704148
[1552]	valid_0's auc:0.70415
[1553]	valid_0's auc:0.704151
[1554]	valid_0's auc:0.704153
[1555]	valid_0's auc:0.704155
[1556]	valid_0's auc:0.704156
[1557]	valid_0's auc:0.704159
[1558]	valid_0's auc:0.704163
[1559]	valid_0's auc:0.704163
[1560]	valid_0's auc:0.704165
[1561]	valid_0's auc:0.704166
[1562]	valid_0's auc:0.704168
[1563]	valid_0's auc:0.704172
[1564]	valid_0's auc:0.704174
[1565]	valid_0's auc:0.704177
[1566]	valid_0's auc:0.704181
[1567]	valid_0's auc:0.704185
[1568]	valid_0's auc:0.704196
[1569]	valid_0's auc:0.704201
[1570]	valid_0's auc:0.704201
[1571]	valid_0's auc:0.704202
[1572]	valid_0's auc:0.704206
[1573]	valid_0's auc:0.704207
[1574]	valid_0's auc:0.70421
[1575]	valid_0's auc:0.704212
[1576]	valid_0's auc:0.704212
[1577]	valid_0's auc:0.704214
[1578]	valid_0's auc:0.704216
[1579]	valid_0's auc:0.704218
[1580]	valid_0's auc:0.70422
[1581]	valid_0's auc:0.704221
[1582]	valid_0's auc:0.704223
[1583]	valid_0's auc:0.704222
[1584]	valid_0's auc:0.704224
[1585]	valid_0's auc:0.704226
[1586]	valid_0's auc:0.704228
[1587]	valid_0's auc:0.70423
[1588]	valid_0's auc:0.704232
[1589]	valid_0's auc:0.704235
[1590]	valid_0's auc:0.704236
[1591]	valid_0's auc:0.70424
[1592]	valid_0's auc:0.704244
[1593]	valid_0's auc:0.704247
[1594]	valid_0's auc:0.704249
[1595]	valid_0's auc:0.704252
[1596]	valid_0's auc:0.704258
[1597]	valid_0's auc:0.704262
[1598]	valid_0's auc:0.704268
[1599]	valid_0's auc:0.70427
[1600]	valid_0's auc:0.70427
[1601]	valid_0's auc:0.704271
[1602]	valid_0's auc:0.704274
[1603]	valid_0's auc:0.704277
[1604]	valid_0's auc:0.704279
[1605]	valid_0's auc:0.70429
[1606]	valid_0's auc:0.70429
[1607]	valid_0's auc:0.704291
[1608]	valid_0's auc:0.704298
[1609]	valid_0's auc:0.704305
[1610]	valid_0's auc:0.704309
[1611]	valid_0's auc:0.70431
[1612]	valid_0's auc:0.70431
[1613]	valid_0's auc:0.704311
[1614]	valid_0's auc:0.704315
[1615]	valid_0's auc:0.704316
[1616]	valid_0's auc:0.704315
[1617]	valid_0's auc:0.704316
[1618]	valid_0's auc:0.704317
[1619]	valid_0's auc:0.704318
[1620]	valid_0's auc:0.704321
[1621]	valid_0's auc:0.704326
[1622]	valid_0's auc:0.704328
[1623]	valid_0's auc:0.70433
[1624]	valid_0's auc:0.704331
[1625]	valid_0's auc:0.704342
[1626]	valid_0's auc:0.704345
[1627]	valid_0's auc:0.704351
[1628]	valid_0's auc:0.704352
[1629]	valid_0's auc:0.704353
[1630]	valid_0's auc:0.704355
[1631]	valid_0's auc:0.704355
[1632]	valid_0's auc:0.704363
[1633]	valid_0's auc:0.704363
[1634]	valid_0's auc:0.704363
[1635]	valid_0's auc:0.704364
[1636]	valid_0's auc:0.704359
[1637]	valid_0's auc:0.704358
[1638]	valid_0's auc:0.704361
[1639]	valid_0's auc:0.704359
[1640]	valid_0's auc:0.704364
[1641]	valid_0's auc:0.704366
[1642]	valid_0's auc:0.704372
[1643]	valid_0's auc:0.704374
[1644]	valid_0's auc:0.704379
[1645]	valid_0's auc:0.704378
[1646]	valid_0's auc:0.704382
[1647]	valid_0's auc:0.70438
[1648]	valid_0's auc:0.704382
[1649]	valid_0's auc:0.704387
[1650]	valid_0's auc:0.704385
[1651]	valid_0's auc:0.704386
[1652]	valid_0's auc:0.704392
[1653]	valid_0's auc:0.704396
[1654]	valid_0's auc:0.704399
[1655]	valid_0's auc:0.704403
[1656]	valid_0's auc:0.704405
[1657]	valid_0's auc:0.704403
[1658]	valid_0's auc:0.704404
[1659]	valid_0's auc:0.704404
[1660]	valid_0's auc:0.704404
[1661]	valid_0's auc:0.704406
[1662]	valid_0's auc:0.70441
[1663]	valid_0's auc:0.704413
[1664]	valid_0's auc:0.704419
[1665]	valid_0's auc:0.704424
[1666]	valid_0's auc:0.704423
[1667]	valid_0's auc:0.704426
[1668]	valid_0's auc:0.704432
[1669]	valid_0's auc:0.704439
[1670]	valid_0's auc:0.704442
[1671]	valid_0's auc:0.704446
[1672]	valid_0's auc:0.704449
[1673]	valid_0's auc:0.704451
[1674]	valid_0's auc:0.704451
[1675]	valid_0's auc:0.704451
[1676]	valid_0's auc:0.70445
[1677]	valid_0's auc:0.704456
[1678]	valid_0's auc:0.704457
[1679]	valid_0's auc:0.704459
[1680]	valid_0's auc:0.704461
[1681]	valid_0's auc:0.704465
[1682]	valid_0's auc:0.704466
[1683]	valid_0's auc:0.704465
[1684]	valid_0's auc:0.704466
[1685]	valid_0's auc:0.704467
[1686]	valid_0's auc:0.704465
[1687]	valid_0's auc:0.704468
[1688]	valid_0's auc:0.704469
[1689]	valid_0's auc:0.704471
[1690]	valid_0's auc:0.704472
[1691]	valid_0's auc:0.704477
[1692]	valid_0's auc:0.704477
[1693]	valid_0's auc:0.704482
[1694]	valid_0's auc:0.704482
[1695]	valid_0's auc:0.704484
[1696]	valid_0's auc:0.704486
[1697]	valid_0's auc:0.704491
[1698]	valid_0's auc:0.704494
[1699]	valid_0's auc:0.704493
[1700]	valid_0's auc:0.704495
[1701]	valid_0's auc:0.704497
[1702]	valid_0's auc:0.7045
[1703]	valid_0's auc:0.704502
[1704]	valid_0's auc:0.704505
[1705]	valid_0's auc:0.704504
[1706]	valid_0's auc:0.704506
[1707]	valid_0's auc:0.704508
[1708]	valid_0's auc:0.704509
[1709]	valid_0's auc:0.704511
[1710]	valid_0's auc:0.704514
[1711]	valid_0's auc:0.704514
[1712]	valid_0's auc:0.70452
[1713]	valid_0's auc:0.704524
[1714]	valid_0's auc:0.704524
[1715]	valid_0's auc:0.70453
[1716]	valid_0's auc:0.704531
[1717]	valid_0's auc:0.704531
[1718]	valid_0's auc:0.704534
[1719]	valid_0's auc:0.704533
[1720]	valid_0's auc:0.704532
[1721]	valid_0's auc:0.704533
[1722]	valid_0's auc:0.704534
[1723]	valid_0's auc:0.70454
[1724]	valid_0's auc:0.704543
[1725]	valid_0's auc:0.704543
[1726]	valid_0's auc:0.704545
[1727]	valid_0's auc:0.704547
[1728]	valid_0's auc:0.70455
[1729]	valid_0's auc:0.704549
[1730]	valid_0's auc:0.704549
[1731]	valid_0's auc:0.704549
[1732]	valid_0's auc:0.704552
[1733]	valid_0's auc:0.704554
[1734]	valid_0's auc:0.704553
[1735]	valid_0's auc:0.704553
[1736]	valid_0's auc:0.704555
[1737]	valid_0's auc:0.704553
[1738]	valid_0's auc:0.704551
[1739]	valid_0's auc:0.704553
[1740]	valid_0's auc:0.704556
[1741]	valid_0's auc:0.704557
[1742]	valid_0's auc:0.704557
[1743]	valid_0's auc:0.70456
[1744]	valid_0's auc:0.704562
[1745]	valid_0's auc:0.704562
[1746]	valid_0's auc:0.704566
[1747]	valid_0's auc:0.704568
[1748]	valid_0's auc:0.704569
[1749]	valid_0's auc:0.704569
[1750]	valid_0's auc:0.704569
[1751]	valid_0's auc:0.704569
[1752]	valid_0's auc:0.704569
[1753]	valid_0's auc:0.704574
[1754]	valid_0's auc:0.704573
[1755]	valid_0's auc:0.704573
[1756]	valid_0's auc:0.704575
[1757]	valid_0's auc:0.704581
[1758]	valid_0's auc:0.704585
[1759]	valid_0's auc:0.70459
[1760]	valid_0's auc:0.704591
[1761]	valid_0's auc:0.704593
[1762]	valid_0's auc:0.704598
[1763]	valid_0's auc:0.704602
[1764]	valid_0's auc:0.704602
[1765]	valid_0's auc:0.704605
[1766]	valid_0's auc:0.704604
[1767]	valid_0's auc:0.704605
[1768]	valid_0's auc:0.704607
[1769]	valid_0's auc:0.70461
[1770]	valid_0's auc:0.70461
[1771]	valid_0's auc:0.704611
[1772]	valid_0's auc:0.704612
[1773]	valid_0's auc:0.704618
[1774]	valid_0's auc:0.704619
[1775]	valid_0's auc:0.704623
[1776]	valid_0's auc:0.704621
[1777]	valid_0's auc:0.704627
[1778]	valid_0's auc:0.704632
[1779]	valid_0's auc:0.704637
[1780]	valid_0's auc:0.70464
[1781]	valid_0's auc:0.704643
[1782]	valid_0's auc:0.704644
[1783]	valid_0's auc:0.704647
[1784]	valid_0's auc:0.70465
[1785]	valid_0's auc:0.704652
[1786]	valid_0's auc:0.704655
[1787]	valid_0's auc:0.704652
[1788]	valid_0's auc:0.704655
[1789]	valid_0's auc:0.704657
[1790]	valid_0's auc:0.704659
[1791]	valid_0's auc:0.70466
[1792]	valid_0's auc:0.704659
[1793]	valid_0's auc:0.704663
[1794]	valid_0's auc:0.704661
[1795]	valid_0's auc:0.704662
[1796]	valid_0's auc:0.704664
[1797]	valid_0's auc:0.704666
[1798]	valid_0's auc:0.704669
[1799]	valid_0's auc:0.704671
[1800]	valid_0's auc:0.70467
[1801]	valid_0's auc:0.70467
[1802]	valid_0's auc:0.704673
[1803]	valid_0's auc:0.704675
[1804]	valid_0's auc:0.704675
[1805]	valid_0's auc:0.704679
[1806]	valid_0's auc:0.704681
[1807]	valid_0's auc:0.704682
[1808]	valid_0's auc:0.704681
[1809]	valid_0's auc:0.704682
[1810]	valid_0's auc:0.704683
[1811]	valid_0's auc:0.704688
[1812]	valid_0's auc:0.704688
[1813]	valid_0's auc:0.70469
[1814]	valid_0's auc:0.704692
[1815]	valid_0's auc:0.704694
[1816]	valid_0's auc:0.704696
[1817]	valid_0's auc:0.704698
[1818]	valid_0's auc:0.7047
[1819]	valid_0's auc:0.7047
[1820]	valid_0's auc:0.704706
[1821]	valid_0's auc:0.704705
[1822]	valid_0's auc:0.704706
[1823]	valid_0's auc:0.704707
[1824]	valid_0's auc:0.704707
[1825]	valid_0's auc:0.704711
[1826]	valid_0's auc:0.704709
[1827]	valid_0's auc:0.704707
[1828]	valid_0's auc:0.704709
[1829]	valid_0's auc:0.704711
[1830]	valid_0's auc:0.704712
[1831]	valid_0's auc:0.704719
[1832]	valid_0's auc:0.70472
[1833]	valid_0's auc:0.704719
[1834]	valid_0's auc:0.70472
[1835]	valid_0's auc:0.704721
[1836]	valid_0's auc:0.704722
[1837]	valid_0's auc:0.704728
[1838]	valid_0's auc:0.704728
[1839]	valid_0's auc:0.704727
[1840]	valid_0's auc:0.704728
[1841]	valid_0's auc:0.704729
[1842]	valid_0's auc:0.70473
[1843]	valid_0's auc:0.704731
[1844]	valid_0's auc:0.704733
[1845]	valid_0's auc:0.704732
[1846]	valid_0's auc:0.704734
[1847]	valid_0's auc:0.704735
[1848]	valid_0's auc:0.704737
[1849]	valid_0's auc:0.70474
[1850]	valid_0's auc:0.70474
[1851]	valid_0's auc:0.704742
[1852]	valid_0's auc:0.704744
[1853]	valid_0's auc:0.704744
[1854]	valid_0's auc:0.704746
[1855]	valid_0's auc:0.704748
[1856]	valid_0's auc:0.704747
[1857]	valid_0's auc:0.704748
[1858]	valid_0's auc:0.704748
[1859]	valid_0's auc:0.704751
[1860]	valid_0's auc:0.704753
[1861]	valid_0's auc:0.704753
[1862]	valid_0's auc:0.704756
[1863]	valid_0's auc:0.704758
[1864]	valid_0's auc:0.704757
[1865]	valid_0's auc:0.704756
[1866]	valid_0's auc:0.704758
[1867]	valid_0's auc:0.704763
[1868]	valid_0's auc:0.704769
[1869]	valid_0's auc:0.704773
[1870]	valid_0's auc:0.704776
[1871]	valid_0's auc:0.704777
[1872]	valid_0's auc:0.704782
[1873]	valid_0's auc:0.704786
[1874]	valid_0's auc:0.704788
[1875]	valid_0's auc:0.704793
[1876]	valid_0's auc:0.704797
[1877]	valid_0's auc:0.704801
[1878]	valid_0's auc:0.704803
[1879]	valid_0's auc:0.704805
[1880]	valid_0's auc:0.704806
[1881]	valid_0's auc:0.704809
[1882]	valid_0's auc:0.704811
[1883]	valid_0's auc:0.70481
[1884]	valid_0's auc:0.70481
[1885]	valid_0's auc:0.704811
[1886]	valid_0's auc:0.704813
[1887]	valid_0's auc:0.704819
[1888]	valid_0's auc:0.704821
[1889]	valid_0's auc:0.704823
[1890]	valid_0's auc:0.704827
[1891]	valid_0's auc:0.704826
[1892]	valid_0's auc:0.704827
[1893]	valid_0's auc:0.704831
[1894]	valid_0's auc:0.704834
[1895]	valid_0's auc:0.704834
[1896]	valid_0's auc:0.704834
[1897]	valid_0's auc:0.704836
[1898]	valid_0's auc:0.704838
[1899]	valid_0's auc:0.70484
[1900]	valid_0's auc:0.704842
[1901]	valid_0's auc:0.704842
[1902]	valid_0's auc:0.704845
[1903]	valid_0's auc:0.704848
[1904]	valid_0's auc:0.704853
[1905]	valid_0's auc:0.704854
[1906]	valid_0's auc:0.704856
[1907]	valid_0's auc:0.704861
[1908]	valid_0's auc:0.70486
[1909]	valid_0's auc:0.704859
[1910]	valid_0's auc:0.70486
[1911]	valid_0's auc:0.704861
[1912]	valid_0's auc:0.704863
[1913]	valid_0's auc:0.704864
[1914]	valid_0's auc:0.704866
[1915]	valid_0's auc:0.704867
[1916]	valid_0's auc:0.704863
[1917]	valid_0's auc:0.704866
[1918]	valid_0's auc:0.704868
[1919]	valid_0's auc:0.704869
[1920]	valid_0's auc:0.704871
[1921]	valid_0's auc:0.704874
[1922]	valid_0's auc:0.704876
[1923]	valid_0's auc:0.704882
[1924]	valid_0's auc:0.704885
[1925]	valid_0's auc:0.70489
[1926]	valid_0's auc:0.704889
[1927]	valid_0's auc:0.704891
[1928]	valid_0's auc:0.70489
[1929]	valid_0's auc:0.70489
[1930]	valid_0's auc:0.704889
[1931]	valid_0's auc:0.70489
[1932]	valid_0's auc:0.70489
[1933]	valid_0's auc:0.704892
[1934]	valid_0's auc:0.704891
[1935]	valid_0's auc:0.704891
[1936]	valid_0's auc:0.704896
[1937]	valid_0's auc:0.704898
[1938]	valid_0's auc:0.704901
[1939]	valid_0's auc:0.7049
[1940]	valid_0's auc:0.704901
[1941]	valid_0's auc:0.704905
[1942]	valid_0's auc:0.704907
[1943]	valid_0's auc:0.704912
[1944]	valid_0's auc:0.704912
[1945]	valid_0's auc:0.70491
[1946]	valid_0's auc:0.704911
[1947]	valid_0's auc:0.704913
[1948]	valid_0's auc:0.704913
[1949]	valid_0's auc:0.704915
[1950]	valid_0's auc:0.704916
[1951]	valid_0's auc:0.704914
[1952]	valid_0's auc:0.704913
[1953]	valid_0's auc:0.704913
[1954]	valid_0's auc:0.704913
[1955]	valid_0's auc:0.704913
[1956]	valid_0's auc:0.704913
[1957]	valid_0's auc:0.704918
[1958]	valid_0's auc:0.704918
[1959]	valid_0's auc:0.704919
[1960]	valid_0's auc:0.704918
[1961]	valid_0's auc:0.70492
[1962]	valid_0's auc:0.704924
[1963]	valid_0's auc:0.704927
[1964]	valid_0's auc:0.704927
[1965]	valid_0's auc:0.704929
[1966]	valid_0's auc:0.704931
[1967]	valid_0's auc:0.70493
[1968]	valid_0's auc:0.704934
[1969]	valid_0's auc:0.704937
[1970]	valid_0's auc:0.704938
[1971]	valid_0's auc:0.70494
[1972]	valid_0's auc:0.704942
[1973]	valid_0's auc:0.704944
[1974]	valid_0's auc:0.704943
[1975]	valid_0's auc:0.704943
[1976]	valid_0's auc:0.704946
[1977]	valid_0's auc:0.704948
[1978]	valid_0's auc:0.704949
[1979]	valid_0's auc:0.704949
[1980]	valid_0's auc:0.704951
[1981]	valid_0's auc:0.704952
[1982]	valid_0's auc:0.704953
[1983]	valid_0's auc:0.704952
[1984]	valid_0's auc:0.704951
[1985]	valid_0's auc:0.704952
[1986]	valid_0's auc:0.704955
[1987]	valid_0's auc:0.704955
[1988]	valid_0's auc:0.704954
[1989]	valid_0's auc:0.704955
[1990]	valid_0's auc:0.704955
[1991]	valid_0's auc:0.704956
[1992]	valid_0's auc:0.704961
[1993]	valid_0's auc:0.704963
[1994]	valid_0's auc:0.704966
[1995]	valid_0's auc:0.704966
[1996]	valid_0's auc:0.70497
[1997]	valid_0's auc:0.70497
[1998]	valid_0's auc:0.70497
[1999]	valid_0's auc:0.704972
[2000]	valid_0's auc:0.704975
[2001]	valid_0's auc:0.704974
[2002]	valid_0's auc:0.704973
[2003]	valid_0's auc:0.704973
[2004]	valid_0's auc:0.704973
[2005]	valid_0's auc:0.704975
[2006]	valid_0's auc:0.704977
[2007]	valid_0's auc:0.70498
[2008]	valid_0's auc:0.70498
[2009]	valid_0's auc:0.704982
[2010]	valid_0's auc:0.704985
[2011]	valid_0's auc:0.704987
[2012]	valid_0's auc:0.704987
[2013]	valid_0's auc:0.70499
[2014]	valid_0's auc:0.70499
[2015]	valid_0's auc:0.70499
[2016]	valid_0's auc:0.704992
[2017]	valid_0's auc:0.704994
[2018]	valid_0's auc:0.705
[2019]	valid_0's auc:0.705004
[2020]	valid_0's auc:0.705007
[2021]	valid_0's auc:0.705008
[2022]	valid_0's auc:0.705012
[2023]	valid_0's auc:0.705017
[2024]	valid_0's auc:0.705017
[2025]	valid_0's auc:0.705019
[2026]	valid_0's auc:0.705021
[2027]	valid_0's auc:0.70502
[2028]	valid_0's auc:0.705021
[2029]	valid_0's auc:0.705023
[2030]	valid_0's auc:0.705026
[2031]	valid_0's auc:0.705029
[2032]	valid_0's auc:0.705029
[2033]	valid_0's auc:0.705032
[2034]	valid_0's auc:0.705034
[2035]	valid_0's auc:0.705035
[2036]	valid_0's auc:0.705038
[2037]	valid_0's auc:0.705039
[2038]	valid_0's auc:0.705041
[2039]	valid_0's auc:0.705042
[2040]	valid_0's auc:0.705044
[2041]	valid_0's auc:0.705045
[2042]	valid_0's auc:0.705046
[2043]	valid_0's auc:0.705047
[2044]	valid_0's auc:0.70505
[2045]	valid_0's auc:0.705049
[2046]	valid_0's auc:0.70505
[2047]	valid_0's auc:0.70505
[2048]	valid_0's auc:0.705051
[2049]	valid_0's auc:0.705054
[2050]	valid_0's auc:0.705053
[2051]	valid_0's auc:0.705056
[2052]	valid_0's auc:0.705055
[2053]	valid_0's auc:0.705056
[2054]	valid_0's auc:0.705057
[2055]	valid_0's auc:0.705057
[2056]	valid_0's auc:0.705057
[2057]	valid_0's auc:0.705058
[2058]	valid_0's auc:0.705059
[2059]	valid_0's auc:0.705061
[2060]	valid_0's auc:0.705063
[2061]	valid_0's auc:0.705063
[2062]	valid_0's auc:0.705061
[2063]	valid_0's auc:0.705063
[2064]	valid_0's auc:0.705066
[2065]	valid_0's auc:0.705066
[2066]	valid_0's auc:0.705067
[2067]	valid_0's auc:0.705067
[2068]	valid_0's auc:0.70507
[2069]	valid_0's auc:0.705072
[2070]	valid_0's auc:0.705074
[2071]	valid_0's auc:0.705074
[2072]	valid_0's auc:0.705074
[2073]	valid_0's auc:0.705075
[2074]	valid_0's auc:0.705078
[2075]	valid_0's auc:0.70508
[2076]	valid_0's auc:0.705081
[2077]	valid_0's auc:0.705082
[2078]	valid_0's auc:0.705083
[2079]	valid_0's auc:0.705087
[2080]	valid_0's auc:0.705089
[2081]	valid_0's auc:0.705087
[2082]	valid_0's auc:0.705094
[2083]	valid_0's auc:0.705095
[2084]	valid_0's auc:0.705096
[2085]	valid_0's auc:0.7051
[2086]	valid_0's auc:0.7051
[2087]	valid_0's auc:0.705101
[2088]	valid_0's auc:0.705102
[2089]	valid_0's auc:0.705103
[2090]	valid_0's auc:0.705104
[2091]	valid_0's auc:0.705106
[2092]	valid_0's auc:0.705105
[2093]	valid_0's auc:0.705113
[2094]	valid_0's auc:0.705111
[2095]	valid_0's auc:0.70511
[2096]	valid_0's auc:0.705112
[2097]	valid_0's auc:0.705113
[2098]	valid_0's auc:0.705114
[2099]	valid_0's auc:0.705115
[2100]	valid_0's auc:0.705117
[2101]	valid_0's auc:0.70512
[2102]	valid_0's auc:0.705121
[2103]	valid_0's auc:0.705123
[2104]	valid_0's auc:0.705125
[2105]	valid_0's auc:0.705128
[2106]	valid_0's auc:0.705128
[2107]	valid_0's auc:0.70513
[2108]	valid_0's auc:0.70513
[2109]	valid_0's auc:0.705133
[2110]	valid_0's auc:0.705136
[2111]	valid_0's auc:0.705137
[2112]	valid_0's auc:0.705139
[2113]	valid_0's auc:0.705142
[2114]	valid_0's auc:0.705144
[2115]	valid_0's auc:0.705145
[2116]	valid_0's auc:0.705145
[2117]	valid_0's auc:0.705146
[2118]	valid_0's auc:0.705146
[2119]	valid_0's auc:0.705147
[2120]	valid_0's auc:0.705147
[2121]	valid_0's auc:0.705148
[2122]	valid_0's auc:0.705149
[2123]	valid_0's auc:0.705154
[2124]	valid_0's auc:0.705152
[2125]	valid_0's auc:0.705154
[2126]	valid_0's auc:0.705158
[2127]	valid_0's auc:0.705157
[2128]	valid_0's auc:0.70516
[2129]	valid_0's auc:0.705164
[2130]	valid_0's auc:0.705165
[2131]	valid_0's auc:0.705166
[2132]	valid_0's auc:0.705167
[2133]	valid_0's auc:0.705171
[2134]	valid_0's auc:0.705171
[2135]	valid_0's auc:0.705171
[2136]	valid_0's auc:0.705173
[2137]	valid_0's auc:0.705173
[2138]	valid_0's auc:0.705174
[2139]	valid_0's auc:0.705174
[2140]	valid_0's auc:0.705173
[2141]	valid_0's auc:0.705174
[2142]	valid_0's auc:0.705176
[2143]	valid_0's auc:0.705174
[2144]	valid_0's auc:0.705179
[2145]	valid_0's auc:0.705182
[2146]	valid_0's auc:0.705184
[2147]	valid_0's auc:0.705185
[2148]	valid_0's auc:0.705186
[2149]	valid_0's auc:0.705192
[2150]	valid_0's auc:0.705192
[2151]	valid_0's auc:0.705194
[2152]	valid_0's auc:0.705194
[2153]	valid_0's auc:0.705196
[2154]	valid_0's auc:0.705197
[2155]	valid_0's auc:0.705198
[2156]	valid_0's auc:0.705198
[2157]	valid_0's auc:0.705201
[2158]	valid_0's auc:0.705203
[2159]	valid_0's auc:0.705203
[2160]	valid_0's auc:0.705206
[2161]	valid_0's auc:0.705208
[2162]	valid_0's auc:0.705209
[2163]	valid_0's auc:0.705208
[2164]	valid_0's auc:0.705207
[2165]	valid_0's auc:0.705209
[2166]	valid_0's auc:0.705211
[2167]	valid_0's auc:0.705212
[2168]	valid_0's auc:0.705214
[2169]	valid_0's auc:0.705215
[2170]	valid_0's auc:0.705218
[2171]	valid_0's auc:0.705219
[2172]	valid_0's auc:0.70522
[2173]	valid_0's auc:0.705222
[2174]	valid_0's auc:0.705225
[2175]	valid_0's auc:0.705229
[2176]	valid_0's auc:0.70523
[2177]	valid_0's auc:0.705231
[2178]	valid_0's auc:0.705233
[2179]	valid_0's auc:0.705234
[2180]	valid_0's auc:0.705236
[2181]	valid_0's auc:0.705238
[2182]	valid_0's auc:0.705239
[2183]	valid_0's auc:0.705238
[2184]	valid_0's auc:0.70524
[2185]	valid_0's auc:0.705241
[2186]	valid_0's auc:0.705241
[2187]	valid_0's auc:0.705242
[2188]	valid_0's auc:0.705244
[2189]	valid_0's auc:0.705248
[2190]	valid_0's auc:0.705249
[2191]	valid_0's auc:0.70525
[2192]	valid_0's auc:0.705252
[2193]	valid_0's auc:0.705254
[2194]	valid_0's auc:0.705255
[2195]	valid_0's auc:0.705256
[2196]	valid_0's auc:0.705258
[2197]	valid_0's auc:0.705261
[2198]	valid_0's auc:0.705264
[2199]	valid_0's auc:0.705266
[2200]	valid_0's auc:0.705266
[2201]	valid_0's auc:0.705269
[2202]	valid_0's auc:0.70527
[2203]	valid_0's auc:0.705267
[2204]	valid_0's auc:0.705273
[2205]	valid_0's auc:0.705274
[2206]	valid_0's auc:0.705274
[2207]	valid_0's auc:0.705277
[2208]	valid_0's auc:0.705278
[2209]	valid_0's auc:0.705278
[2210]	valid_0's auc:0.705281
[2211]	valid_0's auc:0.705281
[2212]	valid_0's auc:0.705281
[2213]	valid_0's auc:0.705284
[2214]	valid_0's auc:0.705285
[2215]	valid_0's auc:0.705283
[2216]	valid_0's auc:0.705284
[2217]	valid_0's auc:0.705292
[2218]	valid_0's auc:0.705293
[2219]	valid_0's auc:0.705295
[2220]	valid_0's auc:0.705296
[2221]	valid_0's auc:0.705297
[2222]	valid_0's auc:0.705299
[2223]	valid_0's auc:0.705297
[2224]	valid_0's auc:0.705297
[2225]	valid_0's auc:0.705298
[2226]	valid_0's auc:0.7053
[2227]	valid_0's auc:0.705301
[2228]	valid_0's auc:0.705301
[2229]	valid_0's auc:0.705303
[2230]	valid_0's auc:0.705303
[2231]	valid_0's auc:0.705305
[2232]	valid_0's auc:0.705308
[2233]	valid_0's auc:0.70531
[2234]	valid_0's auc:0.70531
[2235]	valid_0's auc:0.705312
[2236]	valid_0's auc:0.705315
[2237]	valid_0's auc:0.705318
[2238]	valid_0's auc:0.705318
[2239]	valid_0's auc:0.705322
[2240]	valid_0's auc:0.705323
[2241]	valid_0's auc:0.705324
[2242]	valid_0's auc:0.705323
[2243]	valid_0's auc:0.705325
[2244]	valid_0's auc:0.705326
[2245]	valid_0's auc:0.705328
[2246]	valid_0's auc:0.705327
[2247]	valid_0's auc:0.705328
[2248]	valid_0's auc:0.705332
[2249]	valid_0's auc:0.705333
[2250]	valid_0's auc:0.705334
[2251]	valid_0's auc:0.705336
[2252]	valid_0's auc:0.705338
[2253]	valid_0's auc:0.705339
[2254]	valid_0's auc:0.705339
[2255]	valid_0's auc:0.705338
[2256]	valid_0's auc:0.705339
[2257]	valid_0's auc:0.705345
[2258]	valid_0's auc:0.705346
[2259]	valid_0's auc:0.705348
[2260]	valid_0's auc:0.70535
[2261]	valid_0's auc:0.705352
[2262]	valid_0's auc:0.705352
[2263]	valid_0's auc:0.705354
[2264]	valid_0's auc:0.705355
[2265]	valid_0's auc:0.705353
[2266]	valid_0's auc:0.705356
[2267]	valid_0's auc:0.705357
[2268]	valid_0's auc:0.705359
[2269]	valid_0's auc:0.705358
[2270]	valid_0's auc:0.70536
[2271]	valid_0's auc:0.705361
[2272]	valid_0's auc:0.705363
[2273]	valid_0's auc:0.705366
[2274]	valid_0's auc:0.705368
[2275]	valid_0's auc:0.70537
[2276]	valid_0's auc:0.70537
[2277]	valid_0's auc:0.70537
[2278]	valid_0's auc:0.70537
[2279]	valid_0's auc:0.70537
[2280]	valid_0's auc:0.705375
[2281]	valid_0's auc:0.705378
[2282]	valid_0's auc:0.705377
[2283]	valid_0's auc:0.705378
[2284]	valid_0's auc:0.705379
[2285]	valid_0's auc:0.705377
[2286]	valid_0's auc:0.705379
[2287]	valid_0's auc:0.705379
[2288]	valid_0's auc:0.705384
[2289]	valid_0's auc:0.705387
[2290]	valid_0's auc:0.705391
[2291]	valid_0's auc:0.705393
[2292]	valid_0's auc:0.705392
[2293]	valid_0's auc:0.705394
[2294]	valid_0's auc:0.705395
[2295]	valid_0's auc:0.705395
[2296]	valid_0's auc:0.705395
[2297]	valid_0's auc:0.705397
[2298]	valid_0's auc:0.705398
[2299]	valid_0's auc:0.705399
[2300]	valid_0's auc:0.705402
[2301]	valid_0's auc:0.705401
[2302]	valid_0's auc:0.705402
[2303]	valid_0's auc:0.705402
[2304]	valid_0's auc:0.705404
[2305]	valid_0's auc:0.705403
[2306]	valid_0's auc:0.705405
[2307]	valid_0's auc:0.705405
[2308]	valid_0's auc:0.705406
[2309]	valid_0's auc:0.705406
[2310]	valid_0's auc:0.705411
[2311]	valid_0's auc:0.705415
[2312]	valid_0's auc:0.705415
[2313]	valid_0's auc:0.705419
[2314]	valid_0's auc:0.70542
[2315]	valid_0's auc:0.705423
[2316]	valid_0's auc:0.705425
[2317]	valid_0's auc:0.705426
[2318]	valid_0's auc:0.705427
[2319]	valid_0's auc:0.705427
[2320]	valid_0's auc:0.705428
[2321]	valid_0's auc:0.70543
[2322]	valid_0's auc:0.705434
[2323]	valid_0's auc:0.705435
[2324]	valid_0's auc:0.705437
[2325]	valid_0's auc:0.705439
[2326]	valid_0's auc:0.705441
[2327]	valid_0's auc:0.705443
[2328]	valid_0's auc:0.705442
[2329]	valid_0's auc:0.705444
[2330]	valid_0's auc:0.705444
[2331]	valid_0's auc:0.705445
[2332]	valid_0's auc:0.705446
[2333]	valid_0's auc:0.705449
[2334]	valid_0's auc:0.705449
[2335]	valid_0's auc:0.70545
[2336]	valid_0's auc:0.705452
[2337]	valid_0's auc:0.705453
[2338]	valid_0's auc:0.705456
[2339]	valid_0's auc:0.705457
[2340]	valid_0's auc:0.705458
[2341]	valid_0's auc:0.705459
[2342]	valid_0's auc:0.70546
[2343]	valid_0's auc:0.705461
[2344]	valid_0's auc:0.705462
[2345]	valid_0's auc:0.705462
[2346]	valid_0's auc:0.705462
[2347]	valid_0's auc:0.705461
[2348]	valid_0's auc:0.705464
[2349]	valid_0's auc:0.705466
[2350]	valid_0's auc:0.705469
[2351]	valid_0's auc:0.705468
[2352]	valid_0's auc:0.705473
[2353]	valid_0's auc:0.705471
[2354]	valid_0's auc:0.705471
[2355]	valid_0's auc:0.705472
[2356]	valid_0's auc:0.705476
[2357]	valid_0's auc:0.705476
[2358]	valid_0's auc:0.705479
[2359]	valid_0's auc:0.705485
[2360]	valid_0's auc:0.705488
[2361]	valid_0's auc:0.70549
[2362]	valid_0's auc:0.705492
[2363]	valid_0's auc:0.705493
[2364]	valid_0's auc:0.705495
[2365]	valid_0's auc:0.705496
[2366]	valid_0's auc:0.705496
[2367]	valid_0's auc:0.705498
[2368]	valid_0's auc:0.705499
[2369]	valid_0's auc:0.705497
[2370]	valid_0's auc:0.705497
[2371]	valid_0's auc:0.705496
[2372]	valid_0's auc:0.705498
[2373]	valid_0's auc:0.705498
[2374]	valid_0's auc:0.7055
[2375]	valid_0's auc:0.705507
[2376]	valid_0's auc:0.70551
[2377]	valid_0's auc:0.705509
[2378]	valid_0's auc:0.705512
[2379]	valid_0's auc:0.705515
[2380]	valid_0's auc:0.705518
[2381]	valid_0's auc:0.70552
[2382]	valid_0's auc:0.705523
[2383]	valid_0's auc:0.705525
[2384]	valid_0's auc:0.705526
[2385]	valid_0's auc:0.705527
[2386]	valid_0's auc:0.705527
[2387]	valid_0's auc:0.705527
[2388]	valid_0's auc:0.705531
[2389]	valid_0's auc:0.705533
[2390]	valid_0's auc:0.705534
[2391]	valid_0's auc:0.705535
[2392]	valid_0's auc:0.705535
[2393]	valid_0's auc:0.705537
[2394]	valid_0's auc:0.70554
[2395]	valid_0's auc:0.70554
[2396]	valid_0's auc:0.705541
[2397]	valid_0's auc:0.705542
[2398]	valid_0's auc:0.705545
[2399]	valid_0's auc:0.705545
[2400]	valid_0's auc:0.705548
[2401]	valid_0's auc:0.705549
[2402]	valid_0's auc:0.70555
[2403]	valid_0's auc:0.705551
[2404]	valid_0's auc:0.705551
[2405]	valid_0's auc:0.705551
[2406]	valid_0's auc:0.705552
[2407]	valid_0's auc:0.705552
[2408]	valid_0's auc:0.70555
[2409]	valid_0's auc:0.705548
[2410]	valid_0's auc:0.70555
[2411]	valid_0's auc:0.705549
[2412]	valid_0's auc:0.70555
[2413]	valid_0's auc:0.70555
[2414]	valid_0's auc:0.705549
[2415]	valid_0's auc:0.705552
[2416]	valid_0's auc:0.705552
Early stopping, best iteration is:
[2406]	valid_0's auc:0.705552

In [118]:
print('Validaion')
val_best_threshold = f1_best_threshold(y_val, val_preds)


Validaion
f1 score: 0.14614233229
best threshold: 0.0633066132265
TF pred mean: 0.0174832614967

In [119]:
feature_list = X_val[features].columns.values
df_fi = pd.DataFrame(bst.feature_importance(), columns=['importance'])
df_fi['feature'] = feature_list
df_fi = df_fi.sort_values('importance', ascending = 0)
df_fi[df_fi.importance >= 10]


Out[119]:
importance feature
105 4731 UniqueUserDeviceKey
71 3731 LifeTimeImpressionCount
52 3727 ISOCountryShortName
0 3577 creativeName
32 3421 OSOOBEDateTimeDay
33 3017 CampaignIdValueCount
42 3000 ProcessorClockSpeed
65 3000 CampaignId
68 2994 DeviceTimezone
86 2982 FirstUpdatedDateDay
78 2898 LifeTimeConversionCount
117 2756 UniqueUserDeviceKeyValueCount
51 2594 InternalPrimaryDiagonalDisplaySizeInInches
61 2574 BubbleShownTimeDay
53 2520 OSOOBEDateTimeHour
91 2475 FirstUpdatedDateHour
49 2273 OSOOBEDateTimeMonth
130 2270 Time_windows_immersivecontrolpanel
47 2115 BubbleShownTimeHour
113 2072 DisplayLanguage
123 1882 Time_PersonalProductivity
125 1874 FirstUpdatedDateMonth
19 1817 Time_msascui_exe
31 1816 PrimaryDiskTotalCapacity
26 1765 Time_explorer_exe
129 1760 Time_chrome_exe
58 1753 Time_csrss_exe
70 1697 GamerSegment
74 1678 Time_logonui_exe
24 1655 Time_microsoft_windows_cortana
... ... ...
48 263 Time_Accessibility
45 259 creativeNameCotainsDiscover
111 259 BubbleShownTimeMonth
62 224 creativeNameCotainsFree
15 222 NumberofExternalDisplays
46 197 InternalPrimaryDisplayLogicalDPIX
89 197 creativeNameCotainsSurge
21 193 HasFrontFacingCamera
119 189 creativeNameCotainsChrome
97 180 creativeNameCotainsSL
28 168 NumberofInternalDisplays
27 165 AppCatCntNs
40 162 creativeNameCotainsWeek 7
60 161 creativeNameCotainsSecurity
120 140 Time_Search
128 140 creativeNameCotainsAggressive
93 130 Time_StudentAndLearning
95 125 creativeNameCotainsWeek7
36 112 IsEducation
75 83 IsVirtualDevice
124 79 creativeNameCotainsSkype
88 65 IsMalware
22 65 IsAlwaysOnAlwaysConnectedCapable
56 53 creativeNameCotainsFirefox
101 46 InternalPrimaryDisplayLogicalDPIY
82 39 IsPenCapable
80 36 BubbleShownTimeYear
84 31 HasRearFacingCamera
118 29 creativeNameCotainsPerformance
79 26 Time_Malware

130 rows × 2 columns


In [120]:
zeroImportance = df_fi[df_fi.importance == 0]['feature'].values
print(len(zeroImportance))


0

In [121]:
with Timer('# predict test data'):
    preds = bst.predict(test[features], num_iteration=bst.best_iteration)


# predict test data...
2017-03-21 00:06:20.166510
# predict test data: cpu 96.03, time 96.05


In [122]:
#print(bestEpsilon)
print(val_best_threshold)


0.0633066132265

In [123]:
test_id = test.RowNumber.values
submission = pd.DataFrame({'RowNumber': test_id})
submission['HasClicked'] = preds > val_best_threshold
print("Click mean:", submission.HasClicked.mean())
print("Submission file...")
submission.to_csv("W10_Coin_LightGBM_FinalV4.csv", index = False)
submission.head()


Click mean: 0.0191106466348
Submission file...
Out[123]:
RowNumber HasClicked
0 1 False
1 2 False
2 3 False
3 4 False
4 5 False

In [ ]: