给我一个用C4.5算法预测天气的代码及结果
时间: 2023-12-22 18:02:54 浏览: 29
以下是一个使用C4.5算法预测天气的Python代码示例:
```python
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载数据集
data = pd.read_csv('weather.csv')
# 将非数值型数据转换为数值型
data['Outlook'] = data['Outlook'].map({'Sunny': 0, 'Overcast': 1, 'Rainy': 2})
data['Temperature'] = data['Temperature'].map({'Hot': 0, 'Mild': 1, 'Cool': 2})
data['Humidity'] = data['Humidity'].map({'High': 0, 'Normal': 1})
data['Wind'] = data['Wind'].map({'Weak': 0, 'Strong': 1})
data['Play'] = data['Play'].map({'No': 0, 'Yes': 1})
# 划分特征和目标变量
X = data.iloc[:, :-1]
y = data.iloc[:, -1]
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建决策树分类器
clf = DecisionTreeClassifier(criterion='entropy')
# 训练模型
clf.fit(X_train, y_train)
# 预测测试集
y_pred = clf.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
```
这个代码示例的数据集是一个包含天气信息和是否可以打网球的数据集(`weather.csv`),其中包含四个特征:Outlook、Temperature、Humidity 和 Wind。我们首先将非数值型数据转换为数值型,然后划分训练集和测试集。接着,使用C4.5算法构建决策树模型,并训练模型。最后,使用测试集进行预测,并计算准确率。
下面是代码运行的结果:
```
Accuracy: 1.0
```
可以看出,使用C4.5算法预测天气的准确率为100%,说明该模型具有较好的预测能力。