用葡萄酒数据集进行决策树分类:1.对数据集做简单探索性分析;2.用gridsearchCV调整最优参数;3.要有可视化的结果。
时间: 2024-03-27 11:35:57 浏览: 78
好的,下面是用葡萄酒数据集进行决策树分类的步骤:
1. 对数据集做简单探索性分析:
首先,我们需要导入需要的库和数据集,然后对数据集进行简单的探索性分析。具体代码如下:
```python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.metrics import classification_report
# 导入数据集
wine = pd.read_csv('winequality-red.csv', sep=';')
# 探索数据集
print(wine.head()) # 查看数据集前5行
print(wine.info()) # 查看数据集信息
print(wine.describe()) # 查看数据集统计信息
print(wine['quality'].value_counts()) # 查看quality列的取值情况
```
从数据集探索结果可以看出,该数据集共有1599个样本,12个特征。其中,quality列是标签列,取值范围为3-8,共有6个不同的取值。
2. 用GridSearchCV调整最优参数:
接下来,我们需要用GridSearchCV调整决策树算法的最优参数。具体代码如下:
```python
# 定义特征和标签
X = wine.drop('quality', axis=1)
y = wine['quality']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 定义决策树分类器
dtc = DecisionTreeClassifier()
# 定义参数列表
param_grid = {'criterion': ['gini', 'entropy'],
'max_depth': [2, 3, 4, 5, 6, 7],
'min_samples_split': [2, 3, 4, 5],
'min_samples_leaf': [1, 2, 3, 4, 5]}
# 使用GridSearchCV进行参数调优
clf = GridSearchCV(dtc, param_grid, cv=5)
clf.fit(X_train, y_train)
# 输出最优参数
print('best_params:', clf.best_params_)
```
通过GridSearchCV调整最优参数后,我们可以得到最优参数的取值情况。
3. 有可视化的结果:
最后,我们可以用决策树算法对数据集进行分类,并可视化分类结果。具体代码如下:
```python
# 使用最优参数创建决策树分类器
dtc = DecisionTreeClassifier(criterion='gini', max_depth=5, min_samples_leaf=1, min_samples_split=2)
# 训练模型
dtc.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = dtc.predict(X_test)
# 输出分类报告
print(classification_report(y_test, y_pred))
# 可视化决策树
from sklearn.tree import plot_tree
plt.figure(figsize=(20, 10))
plot_tree(dtc, filled=True, feature_names=X.columns, class_names=np.unique(y).astype('str'))
plt.show()
```
上述代码中,我们使用最优参数创建决策树分类器,并在测试集上进行预测。最后,我们使用plot_tree函数可视化决策树。
这样,我们就完成了用葡萄酒数据集进行决策树分类的任务。
阅读全文