【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,因此如果不提起是否为周末的特征,模型无法充分利用日期信息进行学习。

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

相关文章
|
1天前
|
机器学习/深度学习 数据采集 算法
Python对中国电信消费者特征预测:随机森林、朴素贝叶斯、神经网络、最近邻分类、逻辑回归、支持向量回归(SVR)
Python对中国电信消费者特征预测:随机森林、朴素贝叶斯、神经网络、最近邻分类、逻辑回归、支持向量回归(SVR)
|
1天前
|
机器学习/深度学习 数据采集 算法
Python用逻辑回归、决策树、SVM、XGBoost 算法机器学习预测用户信贷行为数据分析报告
Python用逻辑回归、决策树、SVM、XGBoost 算法机器学习预测用户信贷行为数据分析报告
|
5天前
|
机器学习/深度学习 算法 Python
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享(下)
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
14 1
|
5天前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享(上)
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
17 1
|
6天前
|
机器学习/深度学习 算法 搜索推荐
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
Python用机器学习算法进行因果推断与增量、增益模型Uplift Modeling智能营销模型
33 12
|
6天前
|
机器学习/深度学习 存储 数据可视化
数据分享|Python在Scikit-Learn可视化随机森林中的决策树分析房价数据
数据分享|Python在Scikit-Learn可视化随机森林中的决策树分析房价数据
29 12
|
6天前
|
机器学习/深度学习 算法 Python
数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户
数据分享|Python决策树、随机森林、朴素贝叶斯、KNN(K-最近邻居)分类分析银行拉新活动挖掘潜在贷款客户
24 4
|
1天前
|
网络协议 算法 网络架构
Python网络编程之udp编程、黏包以及解决方案、tcpserver
Python网络编程之udp编程、黏包以及解决方案、tcpserver
|
1天前
|
机器学习/深度学习 数据挖掘 算法框架/工具
Python:编程的艺术与魅力
Python:编程的艺术与魅力
9 3