python实现knn分类_KNN分类算法的python实现
时间: 2023-09-28 20:04:10 浏览: 60
KNN(K-近邻)分类算法的python实现如下:
1. 导入必要的库
```python
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_iris # 用于测试的鸢尾花数据集
from sklearn.model_selection import train_test_split # 用于将数据集划分为训练集和测试集
from sklearn.metrics import accuracy_score # 用于计算分类准确率
```
2. 加载测试数据集
```python
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) # 将数据集划分为训练集和测试集,测试集占比为30%
```
3. 创建KNN分类器
```python
knn = KNeighborsClassifier(n_neighbors=3) # 创建KNN分类器,设置K=3
```
4. 训练模型
```python
knn.fit(X_train, y_train) # 使用训练集对KNN分类器进行训练
```
5. 进行预测
```python
y_pred = knn.predict(X_test) # 使用测试集进行预测
```
6. 计算分类准确率
```python
accuracy = accuracy_score(y_test, y_pred) # 计算分类准确率
print('Accuracy:', accuracy) # 输出分类准确率
```
完整代码如下:
```python
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
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)
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('Accuracy:', accuracy)
```
运行结果如下:
```
Accuracy: 1.0
```
说明该KNN分类器在测试集上分类准确率为100%。