最近邻分类算法
优点:
简单,易理解,易实现;适合对稀有事件进行分类。
适合多分类问题(multi-modal,对象有多个类别标签),k-nn比svm更合适
缺点:
1、当样本不平衡时,如一个类的样本容量很大,而其他类样本容量很小时,有可能导致当输入一个新样本时,该样本的K个邻居中大容量类的样本占多数
2、计算量较大,因为对每一个待分类的文本都要计算它到全体已知样本的距离,才能求得它的K个最近邻点
import sklearn
import sklearn.neighbors
import sklearn.datasets
iris = sklearn.datasets.load_iris()
x = iris.data #必须是二维数组
y = iris.target #必须是一维数组
kn_clf = sklearn.neighbors.KNeighborsClassifier()
kn_clf.fit(x,y)
kn_y = kn_clf.predict(x)
print(kn_y)
print(y)
knn_mean = (kn_y == y).astype(int).mean()
print(knn_mean)