KNN基础预测结果可视化
时间: 2023-09-20 07:06:16 浏览: 125
使用KNN对数据分析
KNN算法可以用于分类和回归等问题,不同的问题需要不同的可视化方法。在这里,我将介绍KNN算法用于分类问题时的可视化方法。
首先,我们需要准备数据集。假设我们有一个二维的数据集,其中包含两类数据点:红色点和蓝色点。我们可以使用matplotlib库来绘制数据点的散点图,如下所示:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成数据集
np.random.seed(0)
X = np.random.randn(200, 2)
y = np.logical_xor(X[:, 0] > 0, X[:, 1] > 0)
# 绘制散点图
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Spectral)
plt.show()
```
这段代码会生成一个包含200个数据点的散点图,其中红色点表示类别0,蓝色点表示类别1。数据集是随机生成的,其中红色点和蓝色点分别位于第一象限和第三象限。
接下来,我们可以使用KNN算法对数据进行分类,并将分类结果可视化。以下是代码示例:
```python
from sklearn.neighbors import KNeighborsClassifier
# 训练KNN模型
clf = KNeighborsClassifier(n_neighbors=3)
clf.fit(X, y)
# 绘制决策边界
h = .02
x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
Z = clf.predict(np.c_[xx.ravel(), yy.ravel()])
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, cmap=plt.cm.Spectral)
# 绘制散点图
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Spectral)
plt.show()
```
这段代码会训练一个KNN模型,然后使用网格搜索方法生成决策边界,并将分类结果用颜色填充。我们可以看到,分类结果非常准确,所有的红色点都在左下角,所有的蓝色点都在右上角。
关于KNN算法的回归问题,可视化方法与分类问题有所不同。如果你想了解更多,请告诉我。
阅读全文