摘要:
此处主要是如何利用GBDT以及如何进行调参,特征工程处理的比较简单。
特征工程:
- City这个变量已经被我舍弃了,因为有太多种类了。
- DOB转为Age|DOB,舍弃了DOB
- 创建了
EMI_Loan_Submitted_Missing
这个变量,当EMI_Loan_Submitted
变量值缺失时它的值为1,否则为0。然后舍弃了EMI_Loan_Submitted
。 - EmployerName的值也太多了,我把它也舍弃了
- Existing_EMI的缺失值被填补为0(中位数),因为只有111个缺失值
- 创建了
Interest_Rate_Missing
变量,类似于#3,当Interest_Rate
有值时它的值为0,反之为1,原来的Interest_Rate变量被舍弃了 - Lead_Creation_Date也被舍弃了,因为对结果看起来没什么影响
- 用
Loan_Amount_Applied
和Loan_Tenure_Applied
的中位数填补了缺失值 - 创建了
Loan_Amount_Submitted_Missing
变量,当Loan_Amount_Submitted
有缺失值时为1,反之为0,原本的Loan_Amount_Submitted
变量被舍弃 - 创建了
Loan_Tenure_Submitted_Missing
变量,当Loan_Tenure_Submitted
有缺失值时为1,反之为0,原本的Loan_Tenure_Submitted
变量被舍弃 - 舍弃了LoggedIn,和Salary_Account
- 创建了
Processing_Fee_Missing
变量,当Processing_Fee
有缺失值时为1,反之为0,原本的Processing_Fee
变量被舍弃 - Source-top保留了2个,其他组合成了不同的类别
- 对一些变量采取了数值化和独热编码(One-Hot-Coding)操作
测试数据与训练数据合成
# 载入数据:
train_df = pd.read_csv('Train.csv',encoding = "ISO-8859-1")
test_df = pd.read_csv('Test.csv',encoding = "ISO-8859-1")
# train_df['source'] = 'train'
# test_df['source'] = 'test'
df = pd.concat([train_df,test_df],ignore_index=True)