KNN分类算法——Python

 KNN算法的核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某一个类别,则该样本也属于这个类别,并具有这个类别上样本的特性

from sklearn import datasets   #使用sklearn自带数据集
from sklearn.model_selection import train_test_split  #把数据分为训练和测试数据
from sklearn.neighbors import KNeighborsClassifier  # KNN算法
import numpy as np


# 读取数据
iris = datasets.load_iris()  # 鸢尾花数据集
X = iris.data     # x为特征,为一个矩阵(N*D),N为样本个数,D是维数
Y = iris.target   # y为标签,向量(0,1,2)


# 把数据分成训练数据和测试数据
x_train,x_test,y_train,y_test = train_test_split(X,Y,random_state = 2003)  # 默认25%为测试数据


# 构建KNN模型并做训练,取K=3
model = KNeighborsClassifier(n_neighbors = 3)
model.fit(x_train,y_train)  # 训练


# 计算准确率 :准确率=正确个数/整个数据的个数
correct = np.count_nonzero((model.predict(x_test) == y_test) == True)       # 用模型得到的值与真实值做比较,数出True的个数
print("准确率是:%.3f"%(correct/len(x_test)))    # %.3f 格式化输出浮点数

 

# 选择合适的决策边界

import matplotlib.pyplot as plt
import numpy as np
from itertools import product    # ite
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章