任务
分别用IV值和随机森林挑选特征,再构建模型,进行模型评估
1 利用iv值挑选特征
这次暂时先用学长计算好的iv值挑选特征,之后再尝试自己计算iv值。选择iv在0.1-0.5之间的特征。
import pandas as pd
iv = pd.read_csv("iv.csv",encoding='gbk')
iv_one = iv[iv.iloc[:,1] > 0.1]
iv_one_five = iv_one[iv_one.iloc[:,1] < 0.5]
iv_one_five.iloc[:,0]
2 利用随机森林挑选特征
from sklearn.ensemble import RandomForestClassifier
rf = RandomForestClassifier()
rf.fit(X_cl, y)
rf_impc = pd.Series(rf.feature_importances_, index = X_cl.columns).sort_values(ascending=False)
fea_gini = rf_impc[:20].index
#取两者的并集
new_features = list(set(fea_iv) | set(fea_gini))
X_final = X_cl[new_features]
X_final.shape
之后利用新挑选的24个特征划分训练集和数据集,对单模型调参,然后模型融合。
比较
特征选择前 特征选择后
在模型融合之后,各项评分指标除auc外略有上升。
遇到的问题
1.xgboost过拟合
处理xgboost的过拟合问题可以通过调整参数实现,在网格搜索中增加参数的复杂度,选择最适合的超参。