Scikit-Learn
使用 Python 中的 sklearn
库实现 KNN 分类
K最近邻(K-Nearest Neighbors, KNN)是一种简单且有效的分类算法。在 Python 中,我们可以使用 sklearn
库(也称为 Scikit-Learn)轻松实现 KNN 分类。sklearn
库提供了丰富的机器学习算法,并且封装了许多底层实现,使得我们可以专注于算法的应用和调优,而无需编写底层代码。
安装 sklearn
库
如果还没有安装 sklearn
库,可以使用以下命令进行安装:
bash
pip install scikit-learn
导入库并准备数据
首先,我们需要导入必要的库,并准备数据集。在这个示例中,我们将使用 sklearn
自带的鸢尾花数据集(Iris dataset)。
python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# 加载数据集
iris = load_iris()
X, y = iris.data, iris.target
# 分割数据集为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 数据标准化
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
使用 sklearn
实现 KNN 分类
在准备好数据后,我们可以使用 KNeighborsClassifier
进行 KNN 分类。
python
# 初始化 KNN 分类器,指定 k 值
knn = KNeighborsClassifier(n_neighbors=3)
# 训练模型
knn.fit(X_train, y_train)
# 进行预测
y_pred = knn.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100:.2f}%")
详细说明
-
安装
sklearn
库 :使用
pip install scikit-learn
命令安装该库。 -
加载数据集:
pythonfrom sklearn.datasets import load_iris iris = load_iris() X, y = iris.data, iris.target
我们使用
load_iris
方法加载鸢尾花数据集。 -
分割数据集:
pythonfrom sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
使用
train_test_split
方法将数据集分为训练集和测试集,其中 30% 的数据用于测试。 -
数据标准化:
pythonfrom sklearn.preprocessing import StandardScaler scaler = StandardScaler() X_train = scaler.fit_transform(X_train) X_test = scaler.transform(X_test)
标准化数据有助于提高模型的性能。我们使用
StandardScaler
进行数据标准化。 -
初始化 KNN 分类器:
pythonfrom sklearn.neighbors import KNeighborsClassifier knn = KNeighborsClassifier(n_neighbors=3)
我们初始化一个 KNN 分类器,并指定
k=3
。 -
训练模型:
pythonknn.fit(X_train, y_train)
使用训练集训练模型。
-
进行预测并计算准确率:
pythonfrom sklearn.metrics import accuracy_score y_pred = knn.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print(f"Accuracy: {accuracy * 100:.2f}%")
使用测试集进行预测,并计算模型的准确率。
重点内容
- 安装
sklearn
库 :通过pip install scikit-learn
安装库。 - 分割数据集 :使用
train_test_split
方法分割数据集为训练集和测试集。 - 数据标准化 :使用
StandardScaler
对数据进行标准化处理。 - 初始化 KNN 分类器 :使用
KNeighborsClassifier
初始化分类器。 - 训练模型:使用训练集训练 KNN 模型。
- 进行预测并计算准确率:使用测试集进行预测,并计算模型的准确率。
使用 sklearn
库,我们可以轻松地实现 KNN 分类,并快速进行模型的训练、预测和评估。这种方法不仅简化了代码编写,还提高了开发效率,是机器学习实践中非常实用的工具。