任务三
构建xgboost和lightgbm模型进行预测。
遇到的问题
- 参数不知道怎么调用
- xgboost的接口和sklearn接口不明白
- LGB和XGB自带接口预测(predict)的都是概率
- 训练之前都要将数据转化为相应模型所需的格式
代码
特征处理
import pickle
import pandas as pd #数据分析
from pandas import Series,DataFrame
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
import time
print("开始......")
t_start = time.time()
path = "E:/mypython/moxingxuexi/data/"
"""=====================================================================================================================
1 读取数据
"""
print("数据预处理")
data = pd.read_csv(path + 'data.csv',encoding='gbk')
"""=====================================================================================================================
2 数据处理
"""
"""将每一个样本的缺失值的个数作为一个特征"""
temp1=data.isnull()
num=(temp1 == True).astype(bool).sum(axis=1)
is_null=DataFrame(list(zip(num)))
is_null=is_null.rename(columns={0:"is_null_num"})
data = pd.merge(data,is_null,left_index = True, right_index = True, how = 'outer')
"""
1.1 缺失值用100填充
"""
data=DataFrame(data.fillna(100))
"""
1.2 对reg_preference_for_trad 的处理 【映射】
nan=0 境外=1 一线=5 二线=2 三线 =3 其他=4
"""
n=set(data['reg_preference_for_trad'])
dic={}
for i,j in enumerate(n):
dic[j]=i
data['reg_preference_for_trad'] = data['reg_preference_for_trad'].map(dic)
"""
1.2 对source 的处理 【映射】
"""
n=set(data['source'])
dic={}
for i,j in enumerate(n):
dic[j]=i
data['source'] = data['source'].map(dic)
"""
1.3 对bank_card_no 的处理 【映射】
"""
n=set(data['bank_card_no'])
dic&#