sklearn 购买预测分析

sklearn 购买预测分析

Abstract

本报告使用了多种模型,对给定的数据进行学习,预测客户是否会购买。本报告使用了AdaBoost、SVC、决策树、随机森林四种模型,在处理不平衡数据时分别使用了欠采样和过采样方法进行训练,最后经过比较选择使用随机森林模型和欠采样方法,采用该方法的交叉验证平均AUC值为0.9199,最后绘制 ROC 曲线。
关键词:随机森林,机器学习, python

目录

1 前期工作 2
2 数据清洗与整理 3
3 构建训练集及测试集 4
4 定义绘制ROC曲线的函数 6
5 分别使用AdaBoost、SVC、决策树、随机森林进行训练和评估 6
6 使用过采样方法平衡数据集并使用AdaBoost、SVC、决策树、随机森林进行训练和评估 8
7 使用欠采样方法平衡数据集并使用AdaBoost、SVC、决策树、随机森林进行训练和评估 9
8 统计分析 11
9 References 12

1 前期工作

首先导入pandas 以及 matplotlib.pyplot,使用 ggplot 作图风格,并导入数据
在这里插入图片描述

2 数据清洗与整理

查看数据:
在这里插入图片描述在这里插入图片描述

进行数据清洗, 首先使用上一行的数据填充缺失值:
在这里插入图片描述

其次使用factorize方法将访客类型、月份、周末这3列转为int类型数据:
在这里插入图片描述

可以看到现在的数据无空值并且全为整型或浮点数型, 完成数据清洗。

3 构建训练集及测试集

使用sklearn的train_test_split方法将数据3 : 7的比例分为测试集和训练集
在这里插入图片描述

4 定义绘制ROC曲线的函数

在这里插入图片描述

5 分别使用AdaBoost、SVC、决策树、随机森林进行训练和评估

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

可以看到随机森林的预测效果是比较好的。

6 使用过采样方法平衡数据集并使用AdaBoost、SVC、决策树、随机森林进行训练和评估

使用过采样方法后, 训练集共有10164组数据。
代码类似 省略了
在这里插入图片描述

可以看到平衡数据集后大多数模型的预测auc值没有明显变化, 其中仍旧是随机森林的模型效果最好。
绘制结果分布图:
在这里插入图片描述
在这里插入图片描述

可以看到有意愿购买的概率是符合预期的。

7 使用欠采样方法平衡数据集并使用AdaBoost、SVC、决策树、随机森林进行训练和评估

使用欠采样方法后, 训练集共有1918组数据, 0 1的比例为1:1。

8 统计分析

模型名称 原始数据 过采样数据 欠采样数据
AdaBoost 0.9097 0.9097 0.9097
SVC 0.8585 0.8544 0.8544
决策树 0.7502 0.7501 0.7483
随机森林 0.9207 0.9216 0.9223

可以从表中看到效果最好的是使用随机森林模型的欠采样数据训练的结果。
其ROC曲线图如下:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值