python数据挖掘knn决策树
时间: 2024-01-10 20:22:02 浏览: 89
决策树是一种常见的机器学习方法,用于分类和回归任务。在决策树中,每个内部节点表示一个属性测试,每个叶节点表示一个类别或一个回归值。决策树的学习过程是通过对训练数据集进行递归划分,使得每个子节点的样本尽可能属于同一类别或具有相似的回归值。
K最近邻算法(KNN)是一种基于实例的学习方法,用于分类和回归任务。在KNN中,对于一个新的样本,通过计算其与训练集中所有样本的距离,并选择距离最近的K个样本作为邻居。然后,根据邻居的类别(对于分类任务)或平均值(对于回归任务),预测新样本的类别或回归值。
在Python中,可以使用scikit-learn库来实现KNN和决策树算法。下面是一个示例代码,演示如何使用Python进行数据挖掘中的KNN和决策树:
```python
# 导入所需的库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score
# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建KNN分类器并进行训练和预测
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
knn_pred = knn.predict(X_test)
# 创建决策树分类器并进行训练和预测
dt = DecisionTreeClassifier()
dt.fit(X_train, y_train)
dt_pred = dt.predict(X_test)
# 计算准确率
knn_accuracy = accuracy_score(y_test, knn_pred)
dt_accuracy = accuracy_score(y_test, dt_pred)
# 打印结果
print("KNN准确率:", knn_accuracy)
print("决策树准确率:", dt_accuracy)
```
这段代码演示了如何使用KNN和决策树算法对鸢尾花数据集进行分类,并计算了它们的准确率。
阅读全文