金融风控训练营Task06学习笔记

学习知识概要
比赛:贷款违约预测:

读取文件
查看缺失值
填充缺失值
填充平均数
填充众数
类别预处理
删除异常值
建模

学习内容

读取文件
data_train = pd.read_csv(‘train.csv’)
data_test_a = pd.read_csv(‘testA.csv’)

查看缺失值
print(f’There are {data_train.isnull().any().sum()} columns in train dataset with missing values.’)

填充缺失值
填充平均数
data_train[numerical_fea] = data_train[numerical_fea].fillna(data_train[numerical_fea].median())
data_test_a[numerical_fea]=data_test_a[numerical_fea].fillna(data_train[numerical_fea].median())
填充众数
data_train[category_fea] = data_train[category_fea].fillna(data_train[category_fea].mode())
data_test_a[category_fea] = data_test_a[category_fea].fillna(data_train[category_fea].mode())

类别预处理
or data in [data_train, data_test_a]:
data[‘grade’] = data[‘grade’].map({‘A’:1,‘B’:2,‘C’:3,‘D’:4,‘E’:5,‘F’:6,‘G’:7})

删除异常值
for fea in numerical_fea:
data_train = data_train[data_train[fea+’_outliers’]==‘正常值’]
data_train = data_train.reset_index(drop=True)

建模
使用Lightgbm建模
from sklearn.model_selection import train_test_split
import lightgbm as lgb

数据集划分

X_train_split, X_val, y_train_split, y_val = train_test_split(X_train, y_train, test_size=0.2)
train_matrix = lgb.Dataset(X_train_split, label=y_train_split)
valid_matrix = lgb.Dataset(X_val, label=y_val)

params = {
‘boosting_type’: ‘gbdt’,
‘objective’: ‘binary’,
‘learning_rate’: 0.1,
‘metric’: ‘auc’,
‘min_child_weight’: 1e-3,
‘num_leaves’: 31,
‘max_depth’: -1,
‘reg_lambda’: 0,
‘reg_alpha’: 0,
‘feature_fraction’: 1,
‘bagging_fraction’: 1,
‘bagging_freq’: 0,
‘seed’: 2020,
‘nthread’: 8,
‘silent’: True,
‘verbose’: -1,
}

“”“使用训练集数据进行模型训练”""
model = lgb.train(params, train_set=train_matrix, valid_sets=valid_matrix, num_boost_round=20000, verbose_eval=1000, early_stopping_rounds=200)

问题与解答
暂无

思考与总结
当单个模型无法准确的预测数据结果时,可以考虑多学习器叠加,从而使模型更加的准确。对不同准确率的预测结果进行适当加权可以得到更好的结果。

猜你喜欢

转载自blog.csdn.net/weixin_43695233/article/details/116704574