机器学习实验3.2——顾客购买服装的分析与预测(决策树)

实验3 决策树 实操项目2:顾客购买服装的分析与预测

【实验内容】

采用决策树算法,对“双十一”期间顾客是否买服装的数据集进行分析与预测。

顾客购买服装数据集:包含review(商品评价变量)、discount(打折程度)、needed(是否必需)、shipping(是否包邮)、buy(是否购买)。

【实验要求】

1.读取顾客购买服装的数据集(数据集路径:data/data76088/3_buy.csv),探索数据。

2.分别用ID3算法和CART算法进行决策树模型的配置、模型的训练、模型的预测、模型的评估。

3.扩展内容(选做):对不同算法生成的决策树结构图进行可视化。

In [1]
from sklearn import tree
import pandas as pd
import numpy as np
import matplotlib
from sklearn.metrics import accuracy_score
matplotlib.rcParams['font.sans-serif'] = ['SimHei'] # 指定默认字体
matplotlib.rcParams['axes.unicode_minus'] = False   # 解决保存图像是负号'-'显示为方块的问题
#1.读取顾客购买服装的数据集(数据集路径:data/data76088/3_buy.csv),探索数据。
csv_data = pd.read_csv('data/data76088/3_buy.csv')
data = csv_data.iloc[:,1:].values.tolist()
review=csv_data.iloc[:,:1].values.tolist()
print(csv_data[:5])
print(data[:5])
print(review[:5])
   review  discount  needed  shipping  buy
0       3         3       0         1    1
1       3         3       0         0    1
2       2         3       0         1    0
3       1         2       0         1    0
4       1         1       1         1    0
[[3, 0, 1, 1], [3, 0, 0, 1], [3, 0, 1, 0], [2, 0, 1, 0], [1, 1, 1, 0]]
[[3], [3], [2], [1], [1]]
In [2]
#2.分别用ID3算法和CART算法进行决策树模型的配置、模型的训练、模型的预测、模型的评估。
#划分数据集
from sklearn.model_selection import train_test_split
data_train,data_test,review_train,review_test=train_test_split(data,review,test_size=0.2)
#配置模型
clf_gini = tree.DecisionTreeClassifier(criterion = 'gini',max_depth=4) #按照基尼系数决策树模型
clf_ID3 = tree.DecisionTreeClassifier(criterion = 'entropy',max_depth=4) #按照ID3加载决策树模型
#训练模型
clf_gini.fit( data_train, review_train)
clf_ID3.fit( data_train, review_train)
#模型预测
predictions_gini = clf_gini.predict(data_test)
print("predictions_gini",predictions_gini)
predictions_ID3 = clf_ID3.predict(data_test)
print("predictions_ID3",predictions_ID3)
#模型评估
from sklearn.metrics import accuracy_score # 导入准确率评价指标
print('Review:%s'%review_test)
print('Accuracy_gini:%s'% accuracy_score(review_test, predictions_gini))
print('Accuracy_ID3:%s'% accuracy_score(review_test, predictions_ID3))
predictions_gini [2 1 2]
predictions_ID3 [2 1 2]
Review:[[1], [3], [2]]
Accuracy_gini:0.3333333333333333
Accuracy_ID3:0.3333333333333333
posted @ 2022-04-06 11:54  XDawned  阅读(157)  评论(0)    收藏  举报