knn建模python代码
时间: 2025-01-07 08:59:30 浏览: 4
### 关于KNN建模的Python示例代码
#### 导入必要的库
为了构建一个基于K近邻(KNN)算法的模型,首先需要导入一些基本的库。这些库用于处理数据以及创建和评估模型。
```python
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import classification_report, confusion_matrix
```
#### 加载并准备数据集
这里采用的是鸢尾花(Iris)数据集作为例子来说明如何使用KNN进行分类。该数据集已经被`sklearn.datasets`模块内置支持加载[^2]。
```python
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data # 特征矩阵
y = iris.target # 目标向量
```
#### 数据预处理
考虑到不同特征可能具有不同的尺度范围,在应用像KNN这样的距离度量型算法之前,应该先对数据做标准化处理,这样可以使各个维度上的数值处于相似的数量级上,从而有助于提升模型性能[^3]。
```python
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)
```
#### 划分训练集与测试集
将原始数据划分为两部分:一部分用来训练模型;另一部分则保留下来用于验证模型的效果。
```python
X_train, X_test, y_train, y_test = train_test_split(
X_scaled, y, test_size=0.3, random_state=42)
```
#### 构建KNN模型
通过设置邻居数量(`n_neighbors`)参数来初始化KNN分类器实例,并利用训练样本对其进行拟合操作。
```python
classifier = KNeighborsClassifier(n_neighbors=5)
classifier.fit(X_train, y_train)
```
#### 预测及评价
最后一步是对未知类别的新观测值做出预测,并计算相应的混淆矩阵和其他指标以衡量模型的表现情况。
```python
y_pred = classifier.predict(X_test)
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))
```
上述过程展示了完整的流程——从获取数据到最终得到可用于实际场景中的KNN分类模型。值得注意的是,除了调整`n_neighbors`外还可以尝试其他超参数优化方法比如交叉验证等进一步改善模型效果。
阅读全文