📜  knn sklearn - Python (1)

📅  最后修改于: 2023-12-03 15:02:31.744000             🧑  作者: Mango

KNN Sklearn - Python

K-最近邻算法 (K-Nearest Neighbor, KNN)是机器学习分类算法中的一种。它的特点是依据距离度量来分类新的样本,即找出"距离"新样本最近的K个已知样本,然后进行分类。在Sklearn Python库中,实现KNN算法非常方便。

安装Sklearn库

在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分类

在进行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值并进行模型的优化和调整。