编程实现k邻近分类器,在西瓜数据集3.0α上比较其分类边界与决策树分类边界的异同。
# -*-coding: gbk -*-
"""
@Author: Victoria
@Date: 2017.10.26 9:00
"""
import xlrd
import numpy as np
import matplotlib.pyplot as plt
import operator
class KNN():
def __init__(self, k):
self.k = k
def train(self, X, y):
self.N = len(X)
self.d = len(X[0])
self.X = X
self.y = y
def predict(self, x):
neighbors, neighbors_labels = self.k_neighbors(x)
#print "neightbors", neighbors
votes = {}
for label