task04金融風控 建模調參

Tracey_Chen發表於2020-09-24

1、對資料進行特徵選擇:

features=[f for f in data.columns if f not in ['id','issueDate','isDefault']]



# numercial_fea=list(data.select_dtypes(exclude=['object']).columns)
# cotegory_fea=list(filter(lambda x:x not in numercial_fea,list(data.columns)))
#
# print(numercial_fea)
# print(cotegory_fea)

train=data[data.isDefault.notnull()].reset_index(drop=True)
test=data[data.isDefault.isnull()].reset_index(drop=True)

2、對訓練集、測試集劃分:

x_train=train[features]
x_test=test[features]

y_train=train['isDefault']
y_test=test['isDefault']

3、選擇LIGHTGBM模型

#資料格式轉換
lgb_train=lgb.Dataset(x_train,y_train)

lgb_eval=lgb.Dataset(x_test,y_test,reference=lgb_train)

boost_round=30#迭代次數
early_stop_rounds=30#驗證資料若在early_stop_rounds輪中未提高,則提前停止
params={ 'boosting_type':'gbdt',#設定提升型別
    'objective':'binary',#目標函式
     'metric':('l2','auc'),#評估函式
     'num_leaves':10,#葉子節點數
    'learning_rate':0.05,#學習速率
 'feature_fraction':0.9,#建樹的特徵選擇比例
 'bagging_fraction':0.8,#建樹的樣本取樣比例
         'bagging_freq':5,#k,意味著k次執行bagging
         'verbose':1#<0,顯示致命的,=0,顯示錯誤(警告),>0顯示資訊
}

#模型訓練:加入提前停止功能
results={}

gbm=lgb.train(params,
              lgb_train,
              num_boost_round=boost_round,
              valid_sets=(lgb_eval,lgb_train),
              valid_names=('validate','train'),
              early_stopping_rounds=early_stop_rounds,
              evals_result=results
              )

#模型預測
y_pred=gbm.predict(X_test,num_iteration=gbm.best_iteration)
print(y_test)

print(y_pred)

設定引數,對模型進行評估,選擇最優引數。

相關文章