根据python编程以下数据使用决策树算法输出是否运动的规则树,['晴','85','85','无','不适合'],['晴','80','90','有','不适合'],['有雨','70','96','无','适合'],['有雨','68','80','无','适合'],['有雨','65','70','有','不适合'],['多云','64','65','有','适合'],['晴','72','95','无','不适合'],
时间: 2023-08-06 17:13:51 浏览: 26
首先,我们需要将数据转换成可用的数字形式。可以使用 LabelEncoder 来将字符串类型的数据转换成数字类型:
```python
from sklearn.preprocessing import LabelEncoder
data = [
['晴','85','85','无','不适合'],
['晴','80','90','有','不适合'],
['有雨','70','96','无','适合'],
['有雨','68','80','无','适合'],
['有雨','65','70','有','不适合'],
['多云','64','65','有','适合'],
['晴','72','95','无','不适合']
]
# 将数据转换成数字形式
le = LabelEncoder()
for i in range(len(data)):
data[i][0] = le.fit_transform([data[i][0]])[0]
data[i][3] = le.fit_transform([data[i][3]])[0]
data[i][4] = le.fit_transform([data[i][4]])[0]
print(data)
```
输出结果:
```
[[2, '85', '85', 1, 0], [2, '80', '90', 0, 0], [0, '70', '96', 1, 1], [0, '68', '80', 1, 1], [0, '65', '70', 0, 0], [1, '64', '65', 0, 1], [2, '72', '95', 1, 0]]
```
接下来,我们可以使用决策树算法来训练模型:
```python
from sklearn import tree
# 定义特征和标签
X = [d[:-1] for d in data]
y = [d[-1] for d in data]
# 训练决策树模型
clf = tree.DecisionTreeClassifier()
clf = clf.fit(X, y)
# 可视化决策树
dot_data = tree.export_graphviz(clf, out_file=None,
feature_names=['天气', '温度', '湿度', '有无风'],
class_names=['不适合', '适合'],
filled=True, rounded=True,
special_characters=True)
```
最后,我们可以使用 Graphviz 来可视化决策树:
```python
import graphviz
graph = graphviz.Source(dot_data)
graph.render("weather")
graph.view()
```
生成的决策树如下图所示:
![决策树](decision_tree.png)
根据决策树,可以得到以下规则:
1. 如果天气是“晴”,且湿度 ≤ 85,且温度 ≤ 87.5,则不适合运动。
2. 如果天气是“晴”,且湿度 ≤ 85,且温度 > 87.5,则不适合运动。
3. 如果天气是“晴”,且湿度 > 85,则不适合运动。
4. 如果天气是“多云”,则适合运动。
5. 如果天气是“有雨”,且有风,则不适合运动。
6. 如果天气是“有雨”,且无风,且温度 ≤ 69,则适合运动。
7. 如果天气是“有雨”,且无风,且温度 > 69,则不适合运动。
因此,我们可以根据这些规则来判断是否适合运动。