阿里天池金融风控-贷款违约预测xgboost回归

第一次尝试(使用xgboost回归)

这里难度不是很大,可以参考XGBRegressor使用。我这里将预测的数据保存到文件中,方便之后的操作,不用每次操作都训练一次。

import pandas as pd
from xgboost import XGBClassifier#做分类问题
from xgboost import XGBRegressor#做回归问题
df = pd.read_csv("/Users/apple/PycharmProjects/K-means/Datawhale/Result3.csv")
Y = df['isDefault']#标签
df.drop(['isDefault'],axis=1,inplace=True)#删除isDefault列
X=  df#属性

seed = 7
test_size = 0.33
X_train=X
Y_train=Y
df2=pd.read_csv("/Users/apple/PycharmProjects/K-means/Datawhale/TESTResult3.csv")
X_predict=df2#预测数据(处理过只剩属性)
df3=pd.read_csv("/Users/apple/PycharmProjects/K-means/Datawhale/TESTResult2.csv")
id_number=df3['id']#获得预测数据的ID号,由于预测数据已经被处理,因此记录下可预测数据的ID号,为之后将剩下的ID号赋予平均值
xgb = XGBRegressor(n_estimators=500, learning_rate=0.05, min_child_weight=5, max_depth=4)
xgb.fit(X_train,Y_train)
y_predict=xgb.predict(X_predict)
afterpredcit=pd.DataFrame({
    'id': id_number,
    'isDefault': y_predict
})
print(y_predict)
afterpredcit.to_csv('./PredictResult.csv',index=False)#保存时去索引 否则会多加第一列
df=pd.read_csv("/Users/apple/PycharmProjects/K-means/Datawhale/PredictResult.csv")
id_number=round(df['isDefault'],1)#将预测结果变换为规定形式:一位小数
j=len(id_number)
#################处理数据中可能含有的负数和-0.O
for i in range(j):
    if id_number[i]<=0:
        id_number[i]=0
df['isDefault']=id_number
#################获得预测数据的均值
mean_number=id_number.mean()
mean_number=round(mean_number,1)
print(mean_number)

#i=800000
i=800000#
while i <1000000:
    j=i-800000
    print(i)
    #################将之前步骤中直接删除缺省项的值变为预测平均值
    if df['id'][j]!=i:
        df2 = df.loc[j:]
        df3=pd.DataFrame({
                    'id' : i,
                    'isDefault' : mean_number
                  },pd.Index(range(1)))
        df=(df.loc[:j-1]).append(df3, ignore_index=True).append(df2, ignore_index=True)
    i=i+1
df.to_csv('./PredictResult2.csv',index=False)#保存时去索引 否则会多加第一列

在这里插入图片描述

第一次提交的时候简单的将缺省值赋值了0,之后想了下有点蠢将预测值赋值平均值,提升效果还是很明显的。

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值