用决策树实现用户购买意愿预测呈现预测结果的代码
时间: 2023-09-18 12:07:20 浏览: 56
以下是使用决策树算法实现用户购买意愿预测的代码示例,其中包括数据预处理、模型训练和预测结果呈现。
```python
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.tree import export_graphviz
import graphviz
# 读取数据
data = pd.read_csv('purchase.csv')
# 数据预处理
data['sex'] = data['sex'].map({'M': 0, 'F': 1})
data['marital_status'] = data['marital_status'].map({'Single': 0, 'Married': 1})
data['purchase'] = data['purchase'].map({'No': 0, 'Yes': 1})
X = data.drop(columns=['purchase'])
y = data['purchase']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)
# 训练模型
model = DecisionTreeClassifier(criterion='entropy', max_depth=3, random_state=0)
model.fit(X_train, y_train)
# 预测结果
y_pred = model.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
# 可视化决策树
dot_data = export_graphviz(model, out_file=None, feature_names=X.columns, class_names=['No', 'Yes'], filled=True, rounded=True, special_characters=True)
graph = graphviz.Source(dot_data)
graph.render('purchase_decision_tree')
```
其中,`purchase.csv` 是包含用户购买意愿以及性别、婚姻状况等特征的数据集,`X` 是特征矩阵,`y` 是目标向量,`X_train`、`X_test`、`y_train` 和 `y_test` 分别是训练集特征矩阵、测试集特征矩阵、训练集目标向量和测试集目标向量。
在训练模型时,使用了决策树算法,其中 `criterion='entropy'` 表示使用信息熵作为划分标准, `max_depth=3` 表示决策树的最大深度为 3, `random_state=0` 表示设置随机种子为 0。
预测结果后,使用 `accuracy_score` 函数计算模型的准确率。
最后,使用 `export_graphviz` 函数将决策树可视化,并使用 `graphviz` 库生成决策树的 PDF 图像文件。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)