【Python机器学习】使用决策树模型预测消费者未来消费行为实战(附源码和数据集 超详细)

简介: 【Python机器学习】使用决策树模型预测消费者未来消费行为实战(附源码和数据集 超详细)

需要源码和数据集请点赞关注收藏后评论区留言私信~~~

一个预测未来消费行为的示例,即已经采集了过去消费行为的信息,并用来建立一个模型以对未来的消费行为进行预测。该示例简要演示了数据预处理、提取特征、选择模型、训练模型、评估模型、应用等阶段,供读者初步了解机器学习的应用流程。

过去的消费行为信息包括消费者进店的年月日,性别(1男 0女)和是否消费(1消费 0没消费)共五项 部分数据如下

1:切分训练集和测试集

代码如下

# 将训练数据切分为训练集和验证集
train_set = [] # 训练集
train_labels = [] # 训练集的标签
valid_set = [] # 验证集
valid_labels = [] # 验证集的标签
for i in range(len(train_data)):
    if i < 20: # 将训练数据的前20条作为训练集,后10条作为验证集
        train_set.append( train_data[i][:4])
        train_labels.append(train_data[i][4])
    else:
        valid_set.append( train_data[i][:4])
        valid_labels.append(train_data[i][4])

2:直接用原始数据训练模型

不提取特征,直接用原始数据来训练模型 代码如下

from sklearn import tree # 导入决策树库
clf = tree.DecisionTreeClassifier() # 创建一个分类决策树对象
clf = clf.fit(train_set, train_labels) # 训练模型
print(valid_labels)
print(clf.predict(valid_set)) # 用训练好的模型来预测验证集,验证误差率为0.5

输出结果如下,可见有五个预测错误 验证误差率位0.5,基本属于瞎猜,没有实际效果

按一般的常识,消费者可能在周末的消费意愿要高一点,因此可以提取出是否周末的特征来训练模型

3:提取周末特征训练模型

定义一个判断是否为周末的函数

import datetime # 导入datetime模块,该模块用来处理与日期和时间有关的计算
# 定义一个判断是否为周末的函数
def isweekend( date ): 
    theday = datetime.date( date[0], date[1], date[2] ) # 创建一个date对象
    if theday.isoweekday() in { 6, 7 }: # 如果date是周末则返回1,否则返回0
        return 1
    else:
        return 0
isweekend([2020, 11, 15])

预测结果如下

可见误差率在0.2左右,比之前用原始数据的准确率提高不少

由上面可知,如果提取了是否为周末的特征,那么预测成功率将会大大提高,实际上,对训练数据的统计显示,男性每进一次店由消费行为的概率为0.75,不分周末还是平时,而女性在周末进店有消费行为的概率为0.66,非周末进店有消费行为的概率为0.34,因此如果不提起是否为周末的特征,模型无法充分利用日期信息进行学习。

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
10月前
|
机器学习/深度学习 存储 运维
机器学习异常检测实战:用Isolation Forest快速构建无标签异常检测系统
本研究通过实验演示了异常标记如何逐步完善异常检测方案和主要分类模型在欺诈检测中的应用。实验结果表明,Isolation Forest作为一个强大的异常检测模型,无需显式建模正常模式即可有效工作,在处理未见风险事件方面具有显著优势。
787 46
|
11月前
|
机器学习/深度学习 人工智能 算法
Scikit-learn:Python机器学习的瑞士军刀
想要快速入门机器学习但被复杂算法吓退?本文详解Scikit-learn如何让您无需深厚数学背景也能构建强大AI模型。从数据预处理到模型评估,从垃圾邮件过滤到信用风险评估,通过实用案例和直观图表,带您掌握这把Python机器学习的'瑞士军刀'。无论您是AI新手还是经验丰富的数据科学家,都能从中获取将理论转化为实际应用的关键技巧。了解Scikit-learn与大语言模型的最新集成方式,抢先掌握机器学习的未来发展方向!
1252 12
Scikit-learn:Python机器学习的瑞士军刀
|
机器学习/深度学习 人工智能 Java
Java机器学习实战:基于DJL框架的手写数字识别全解析
在人工智能蓬勃发展的今天,Python凭借丰富的生态库(如TensorFlow、PyTorch)成为AI开发的首选语言。但Java作为企业级应用的基石,其在生产环境部署、性能优化和工程化方面的优势不容忽视。DJL(Deep Java Library)的出现完美填补了Java在深度学习领域的空白,它提供了一套统一的API,允许开发者无缝对接主流深度学习框架,将AI模型高效部署到Java生态中。本文将通过手写数字识别的完整流程,深入解析DJL框架的核心机制与应用实践。
805 3
|
机器学习/深度学习 数据可视化 TensorFlow
Python 高级编程与实战:深入理解数据科学与机器学习
本文深入探讨了Python在数据科学与机器学习中的应用,介绍了pandas、numpy、matplotlib等数据科学工具,以及scikit-learn、tensorflow、keras等机器学习库。通过实战项目,如数据可视化和鸢尾花数据集分类,帮助读者掌握这些技术。最后提供了进一步学习资源,助力提升Python编程技能。
|
机器学习/深度学习 数据可视化 算法
Python 高级编程与实战:深入理解数据科学与机器学习
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化和调试技巧。本文将深入探讨 Python 在数据科学和机器学习中的应用,并通过实战项目帮助你掌握这些技术。
|
6月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习算法篇】K-近邻算法
K近邻(KNN)是一种基于“物以类聚”思想的监督学习算法,通过计算样本间距离,选取最近K个邻居投票决定类别。支持多种距离度量,如欧式、曼哈顿、余弦相似度等,适用于分类与回归任务。结合Scikit-learn可高效实现,需合理选择K值并进行数据预处理,常用于鸢尾花分类等经典案例。(238字)
|
11月前
|
机器学习/深度学习 数据采集 人工智能
20分钟掌握机器学习算法指南
在短短20分钟内,从零开始理解主流机器学习算法的工作原理,掌握算法选择策略,并建立对神经网络的直观认识。本文用通俗易懂的语言和生动的比喻,帮助你告别算法选择的困惑,轻松踏入AI的大门。
746 8
|
机器学习/深度学习 存储 Kubernetes
【重磅发布】AllData数据中台核心功能:机器学习算法平台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
机器学习/深度学习 人工智能 自然语言处理
AI训练师入行指南(三):机器学习算法和模型架构选择
从淘金到雕琢,将原始数据炼成智能珠宝!本文带您走进数字珠宝工坊,用算法工具打磨数据金砂。从基础的经典算法到精密的深度学习模型,结合电商、医疗、金融等场景实战,手把手教您选择合适工具,打造价值连城的智能应用。掌握AutoML改装套件与模型蒸馏术,让复杂问题迎刃而解。握紧算法刻刀,为数字世界雕刻文明!
443 6
|
人工智能 编解码 算法
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
使用 PAI-DSW x Free Prompt Editing图像编辑算法,开发个人AIGC绘图小助理
513 0

推荐镜像

更多