使用集成学习构建机器学习预测模型

本文通过介绍在量化投资面试中的实际案例,展示了如何应用集成学习算法提高模型性能。作者构建了多个机器学习模型,包括线性模型、逻辑回归和GBDT,并采用stacking方法进行集成,最终的集成模型AUC达到0.966,远超单个模型的表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间参加了一家量化投资公司的面试,其中用了集成学习算法,发现效果很好,现在将代码公布出来,以便小白学习,大神请绕道!!!

原问题:请结合附件Excel表中的数据完成下列问题:
模型
1)以投资金额为目标变量建立一个线性模型。
2)以投资金额高低区分高投资与低投资用户,以此为目标变量建立逻辑回归模型。
3)以投资金额高低区分高投资与低投资用户,以此为目标变量建立一至两个机器学习模型(GBM, Random Forrest, Neural Network, SVM 等等)
附加了集成学习算法以此来提高模型性能

——————————————————–

可以看出问题是一个二分类的问题,本教程教你如何利用机器学习算法对用户分类-以人人贷数据为例,亮点主要是集成学习算法,废话不多说,直接上干货。
首先源数据长这样
这里写图片描述
可以看出数据清洗还挺复杂的,别慌,我们慢慢来!

#导入所用的工具包
import pandas as pd
import numpy as np
import re
data=pd.read_excel(r"./模型算法-02-Quantum One 面试数据集.xlsx")#读取数据,后面有数据链接
SEED=123#设立随机种子以便结果复现
np.random.seed(SEED)
data.info()#查看数据基本信息

运行可以得到以下结果

<class 'pandas.core.frame.DataFrame'>
RangeIndex: 5000 entries, 0 to 4999
Data columns (total 33 columns):
用户id             5000 non-null object
投资金额             5000 non-null float64
年龄               5000 non-null int64
性别               5000 non-null object
手机省份             4994 non-null object
手机城市             4994 non-null object
注册时间             5000 non-null object
用户注册终端           5000 non-null object
用户注册渠道           670 non-null object
会员级别             5000 non-null object
最近一次登录省份         4982 non-null object
最近一次登录城市         4982 non-null object
最近一次登录终端         4995 non-null object
最近一次登录ip         4982 non-null object
最近一次登录设备         4018 non-null object
最近一次登录时间         4995 non-null object
是否开通托管           5000 non-null object
开通托管日期           4999 non-null object
首次充值日期           4990 non-null object
首投时间             4986 non-null object
首投距今时间(天)        4986 non-null float64
最近一次投资距今时间(天)    4986 non-null float64
本月是否有大额回款        5000 non-null object
是否访问7天内注册        5000 non-null object
是否注册7天内充值        5000 non-null object
是否注册7天内投资        5000 non-null object
是否托管7天内充值        5000 non-null object
是否托管7天内投资        5000 non-null object
是否充值7天内投资        5000 non-null object
首投距注册时长(天)       4986 non-null float64
用户浏览产品期限倾向(月)    4220 non-null object
用户浏览产品利率倾向       4221 non-null object
投资等级             5000 non-null int64
dtypes: float64(4), int64(2), object(27)
memory usage: 1.3+ MB

可以看出,样本量是5000行,30个变量,大部分变量都有缺失值,有27个object对象,之后要对这些非数值变量进行量化处理才行。

data=data.drop(["最近一次登录ip","用户注册渠道"],axis=1)#考虑到用户注册渠道变量缺失值太多,直接删除,然后最近一次登录IP没有对它解析,这个也暂时删除掉。
data=data.fillna(method='pad')#填补缺失值,用的是pad平滑数据的方法,一定要记得加method=哦,要不然有时候会把pad当做字符串填进去的
data.info()#再次查看数据信息,缺失值填充完毕
<class 'pandas.
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值