电商平台购买衣服预测:基于多种机器学习算法的实战分析

  在电商领域,精准预测用户购买行为对于商家制定营销策略、优化库存管理等至关重要。本文拟详细介绍如何运用多种机器学习算法对电商平台购买衣服行为进行预测,内容涵盖数据探索、预处理、模型构建、评估及结果分析。

一、数据探索

  本次实验使用的7_buy.csv数据集包含商品评价、打折程度、是否必需、是否包邮以及购买行为等特征。利用pandas库,可轻松获取数据的基本信息,如形状、列名和数据类型。代码如下: 

df = pd.read_csv('7_buy.csv')
print(df.info())

# 检查重复值
duplicate_rows = df[df.duplicated()]
print('重复行数:', len(duplicate_rows))

# 检查缺失值
print('缺失值情况:')
print(df.isnull().sum())

# 对数值型数据进行描述性统计分析(保留两位小数)
result = df.describe().round(2)
print('描述性统计信息:')
print(result)

X = df.iloc[:, 0:4]
y = df['buy']

  同时,统计各特征的取值分布,检查是否存在缺失值和异常值。若有缺失值,后续需进行处理;异常值可能影响模型性能,也需关注 。

二、模型构建

  分别运用决策树的 ID3 和 CART 算法、高斯朴素贝叶斯分类算法以及逻辑回归算法构建模型。

  1.决策树 ID3 算法:基于信息熵选择最佳测试属性构建决策树:

from sklearn.tree import DecisionTreeClassifier
tree_ID3 = DecisionTreeClassifier(criterion='entropy')
tree_ID3.fit(X_train, y_train)

 

  2.决策树 CART 算法:使用基尼系数作为划分标准:

tree_CART = DecisionTreeClassifier(criterion='gini')
tree_CART.fit(X_train, y_train)

 

3.高斯朴素贝叶斯算法:基于贝叶斯定理,假设特征服从高斯分布进行分类:

from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
gnb.fit(X_train, y_train)

 

4.逻辑回归算法:构建逻辑回归模型对数据进行拟合和预测:

from sklearn.linear_model import LogisticRegression
logreg = LogisticRegression()
logreg.fit(X_train, y_train)

 

 

三、模型评估 

  将数据集按 70% 训练集、30% 测试集的比例划分,使用训练集训练模型,测试集评估性能。通过计算准确率、召回率、F1 值等指标评估模型分类效果,同时绘制混淆矩阵直观展示预测结果与真实结果的差异:

from sklearn.metrics import accuracy_score, confusion_matrix
# 预测并计算指标
y_pred_ID3 = tree_ID3.predict(X_test)
accuracy_ID3 = accuracy_score(y_test, y_pred_ID3)
conf_matrix_ID3 = confusion_matrix(y_test, y_pred_ID3)

  类似地,对 CART、高斯朴素贝叶斯和逻辑回归模型进行相同操作。最后绘制准确率柱状图和混淆矩阵热力图对比不同模型性能 :

import matplotlib.pyplot as plt
import seaborn as sns
models = ['ID3', 'CART', 'GaussianNB', 'LogisticRegression']
accuracies = [accuracy_ID3, accuracy_CART, accuracy_gnb, accuracy_logreg]
# 准确率柱状图
plt.figure(figsize=(10, 6))
sns.barplot(x=models, y=accuracies)
plt.title('Model Accuracies Comparison')
plt.xlabel('Models')
plt.ylabel('Accuracy')
plt.show()
# 混淆矩阵热力图
conf_matrices = [conf_matrix_ID3, conf_matrix_CART, conf_matrix_gnb, conf_matrix_logreg]
for i, conf_matrix in enumerate(conf_matrices):
    plt.figure(figsize=(6, 4))
    sns.heatmap(conf_matrix, annot=True, fmt='d', cmap='Blues')
    plt.title(f'{models[i]} Confusion Matrix')
    plt.xlabel('Predicted Label')
    plt.ylabel('True Label')
    plt.show()

 

 

 

 

 

 

 

 

 

 

四、结果分析 

(1)准确率柱状图分析

  从 “Model Accuracies Comparison” 柱状图可以看出:

  1.ID3 和 CART 算法:准确率接近 1.0 ,表现非常优异,说明这两种决策树算法在该电商平台购买衣服行为预测任务中,能较好地对数据进行分类,模型的泛化能力较强,预测结果与实际情况较为相符。

  2.GaussianNB 和 LogisticRegression 算法:准确率明显低于 ID3 和 CART,大概在 0.6 - 0.7 之间。这表明高斯朴素贝叶斯和逻辑回归算法在处理该数据时,分类效果相对较差,可能存在对数据特征利用不充分、模型假设与数据实际分布不匹配等问题 。

(2)混淆矩阵分析

1.ID3 算法混淆矩阵

  真实标签为 0 时,预测正确(预测为 0 )的数量是 1,没有误判为 1 的情况。真实标签为 1 时,预测正确(预测为 1 )的数量是 2,没有误判为 0 的情况。说明 ID3 算法在区分这两类数据时表现精准,能有效识别不同购买行为类别。

2.CART 算法混淆矩阵

  与 ID3 算法混淆矩阵情况一致,真实标签为 0 时预测正确数量为 1,真实标签为 1 时预测正确数量为 2 ,同样体现出 CART 算法在该任务上具有良好的分类能力,对两类样本的区分度高。

3.GaussianNB 算法混淆矩阵

  真实标签为 0 时,预测为 0 的数量是 1,但真实标签为 1 时,预测为 0 和 1 的数量均为 1。说明高斯朴素贝叶斯算法存在一定误判情况,对于真实为 1 的样本,有一半被错误预测为 0,模型在判断这类样本时存在缺陷。

4.LogisticRegression 算法混淆矩阵

  和 GaussianNB 类似,真实标签为 0 时预测为 0 的数量是 1 ,真实标签为 1 时,预测为 0 和 1 的数量均为 1 ,表明逻辑回归算法也存在对真实为 1 的样本误判问题,不能很好地区分该类别样本。

(3)综合分析

  ID3 和 CART 决策树算法在准确率和混淆矩阵表现上都较为出色,更适合用于该电商平台购买衣服行为的预测任务。而 GaussianNB 和 LogisticRegression 算法虽然也能进行预测,但准确率较低且存在一定误判,可能需要进一步调整模型参数、进行特征工程优化,或者考虑结合其他方法来提升它们在该任务上的性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值