K-近邻算法采用测量不同特征之间的距离方法进行分类
使用的距离计算算法是欧几里得算法,可以衡量多维空间中各个点之间的绝对距离。
dist(X,Y)=
import sklearn.datasets as datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
#1.捕获鸢尾花数据
iris = datasets.load_iris()
#2.提取样本数据
feature = iris['data']
target = iris['target']
#3.数据集拆分
x_train,x_test,y_train,y_test = train_test_split(feature,target,train_size=0.2,random_state=2020)
#4.观察数据集看是否需要做特征工程的处理
print(x_train.shape)
#5.实例化模型数据
knn = KNeighborsClassifier(n_neighbors=3) #n_neighbors == k
#模型超参数:如果模型参数有不同的取值会直接影响模型的分类和预测。
#在knn中,k的取值不同会直接导致分类的结果不同。k就是knn中的模型超参数
#6.使用训练集模型训练数据
#X:训练集的特征数据--特征数据必须是二维的
#y:训练集的目标数据
knn = knn.fit(x_train,y_train)
print(knn)
#7.测试模型
#predict表示使用训练好的模型进行实现分类或者预测
y_pred = knn.predict(x_test) #模型基于训练数据返回的分类结果
y_true = y_test #测试集的真实分类结果
print('模型的分类结果',y_pred)
print('模型的真实结果',y_true)
#或者采用score直接进行评分
s = knn.score(x_test,y_test)
print(s)
运行结果