用决策树模型预测在某种天气情况下,是否会出去运动?(训练数据: play.txt)构建决策树模型,并对决策树进行可视化,用 graphviz 将决策树呈 现出来
时间: 2023-07-24 21:13:27 浏览: 127
好的,我知道了你的问题。这是一个二分类问题,使用决策树模型进行分类预测。首先需要加载数据集,play.txt 包含了天气和是否出去运动的数据。我们可以使用 pandas 库来读取数据:
``` python
import pandas as pd
data = pd.read_csv("play.txt")
```
接下来,我们需要将数据集分为特征和标签。天气情况是输入特征,出去运动是输出标签。我们可以使用 iloc 方法来提取特征和标签:
``` python
X = data.iloc[:, :-1]
y = data.iloc[:, -1]
```
现在,我们可以使用 sklearn 库来构建决策树模型。首先需要将离散特征转换为数值型特征,可以使用 LabelEncoder 来实现:
``` python
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
X['outlook'] = le.fit_transform(X['outlook'])
X['temperature'] = le.fit_transform(X['temperature'])
X['humidity'] = le.fit_transform(X['humidity'])
X['windy'] = le.fit_transform(X['windy'])
y = le.fit_transform(y)
```
然后,我们可以将数据集划分为训练集和测试集:
``` python
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
接下来,我们可以使用 DecisionTreeClassifier 来构建决策树模型,并对模型进行训练:
``` python
from sklearn.tree import DecisionTreeClassifier
dtc = DecisionTreeClassifier()
dtc.fit(X_train, y_train)
```
现在,我们可以使用 graphviz 库将决策树可视化:
``` python
from sklearn.tree import export_graphviz
import graphviz
dot_data = export_graphviz(dtc, 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('play')
```
这将生成一个名为 play.pdf 的 PDF 文件,其中包含了决策树的可视化结果。你可以使用任何 PDF 阅读器来查看文件。
以上就是构建决策树模型并对其进行可视化的完整代码。希望能对你有所帮助。
阅读全文