结合上面决策树的训练代码和可视化代码,给出一个完整的代码,并要求先将商品属性数据进行one-hot编码
时间: 2024-03-20 07:44:31 浏览: 48
MATLAB实现对序列数据的onehot编码
好的,下面是结合决策树的训练代码和可视化代码的完整示例,其中包括对商品属性数据进行one-hot编码的处理:
```python
import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, plot_tree
import matplotlib.pyplot as plt
# 读取数据
data = pd.read_csv('data.csv')
# 对商品属性数据进行one-hot编码
data = pd.get_dummies(data, columns=['color', 'size'])
# 分离特征和标签
X = data.drop('label', axis=1)
y = data['label']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练决策树模型
model = DecisionTreeClassifier(random_state=42)
model.fit(X_train, y_train)
# 可视化决策树
plt.figure(figsize=(20, 10))
plot_tree(model, filled=True)
plt.show()
```
在上面的代码中,对商品属性数据进行one-hot编码的处理使用了`pd.get_dummies()`函数,该函数会将指定列进行one-hot编码,生成新的特征列,从而避免了非数值型数据对模型训练的影响。
完整代码中还使用了`train_test_split()`函数将数据集划分为训练集和测试集,以及`DecisionTreeClassifier()`类训练决策树模型,并使用`plot_tree()`函数可视化决策树。
阅读全文