📅  最后修改于: 2023-12-03 15:02:31.744000             🧑  作者: Mango
K-最近邻算法 (K-Nearest Neighbor, KNN)是机器学习分类算法中的一种。它的特点是依据距离度量来分类新的样本,即找出"距离"新样本最近的K个已知样本,然后进行分类。在Sklearn Python库中,实现KNN算法非常方便。
在Python中使用Sklearn库进行KNN分类需要先安装Sklearn库。可以使用pip工具直接安装:
pip install sklearn
在进行KNN分类之前,需要进行数据预处理。数据预处理通常包括数据清洗、数据平滑、数据变换等步骤。在Sklearn库中,可以使用preprocessing
模块进行数据预处理。
from sklearn import preprocessing
# 定义数据集
data = [[1,2,3],[4,5,6],[7,8,9]]
# 数据标准化
data_std = preprocessing.scale(data)
print(data_std)
输出结果为:
[[-1.22474487 -1.22474487 -1.22474487]
[ 0. 0. 0. ]
[ 1.22474487 1.22474487 1.22474487]]
使用scale()
函数可以将数据标准化,即将数据按照每一列的均值和标准差进行标准化处理。
在进行KNN分类之前,需要将数据集分为训练集和测试集。在Sklearn库中,可以使用model_selection
模块进行数据集划分。
from sklearn.model_selection import train_test_split
# 定义数据集
data = [[1,2,3,0],[4,5,6,1],[7,8,9,0],[10,11,12,1]]
# 定义数据标签
label = [0,1,0,1]
# 数据集划分
train_data,test_data,train_label,test_label = train_test_split(data,label,test_size=0.3,random_state=0)
print(train_data)
print(train_label)
print(test_data)
print(test_label)
使用train_test_split()
函数可以将数据集划分为训练集和测试集,并可以指定测试集占总数据集的比例及随机种子。
下面是使用KNN算法进行分类的示例代码:
from sklearn.neighbors import KNeighborsClassifier
# 定义KNN分类器
knn = KNeighborsClassifier(n_neighbors=3)
# 训练模型
knn.fit(train_data,train_label)
# 测试模型
result = knn.predict(test_data)
print(result)
使用KNeighborsClassifier()
函数可以定义KNN分类器,并且可以指定K值。在训练模型时,使用fit()
函数进行训练。在进行预测时,使用predict()
函数对测试集数据进行分类并输出分类结果。
在本文中,我们介绍了如何使用Sklearn库进行KNN分类。首先需要进行数据预处理,然后将数据集分为训练集和测试集,最后通过训练模型和预测模型进行分类。在实际应用中,我们需要根据不同的问题选择不同的K值并进行模型的优化和调整。