id3算法实例python
时间: 2024-10-07 18:04:21 浏览: 46
ID3 (Iterative Dichotomiser 3) 算法是一种用于决策树学习的算法,主要用于分类问题。它基于信息增益(Entropy or Gini Impurity)选择最优特征来划分数据集。以下是一个简单的 ID3 算法的 Python 实例:
```python
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.metrics import accuracy_score
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 定义 ID3 决策树模型(这里使用 scikit-learn 的 DecisionTreeClassifier 而不是原生的 ID3)
class MyID3(DecisionTreeClassifier):
# 自定义 ID3 算法在这里通常不会直接实现,因为 scikit-learn 提供了现成的决策树模型
def fit(self, X, y):
super(MyID3, self).fit(X, y)
# 但在实际应用中,你可以通过递归地计算信息增益来构建自己的决策树
# 使用自定义模型
model = MyID3(criterion='gini') # 设置信息增益作为分割标准
model.fit(X, y)
# 预测新数据
predictions = model.predict(X[:5]) # 对前5条数据做预测
# 计算准确率
accuracy = accuracy_score(y[:5], predictions)
print(f"Accuracy: {accuracy}")
#
阅读全文