编程实现K邻近分类器,在西瓜数据集3.0@(属性只有密度与含糖率)上,比较其分类边界与决策树分类边界之异同。
KNN用欧式距离计算,投票时根据距离加权,在训练集上最小化错误率,选择k=1时最优。
KNN决策面图如下:
决策树分类面如下(手绘)
将两幅图对比,可以看出分类边界基本一致,但决策树更绝对,不像knn部分不同类别的点还混在一起。
KNN和绘制决策面代码如下:
#coding: utf-8
import numpy as np
from numpy import linalg as LA
from numpy import random
import matplotlib.pyplot as plt
file = open('西瓜数据集3.csv'.decode('utf-8'