鸢尾花KNN分类算法代码
时间: 2024-09-09 07:12:19 浏览: 79
KNN进行鸢尾花数据分类
鸢尾花数据集(Iris dataset)是一个常用的分类学习数据集,它包含150个样本,分为3个类别,每个类别有50个样本。每个样本有4个特征:萼片长度、萼片宽度、花瓣长度和花瓣宽度。KNN(K-Nearest Neighbors)算法是一种基本的分类与回归方法,它可以用来对样本进行分类。以下是使用Python中的scikit-learn库实现鸢尾花数据集的KNN分类算法的一个简单示例代码:
```python
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import classification_report, accuracy_score
# 加载数据集
iris = datasets.load_iris()
X = iris.data
y = 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)
# 初始化KNN分类器,这里以K=3为例
knn = KNeighborsClassifier(n_neighbors=3)
# 训练模型
knn.fit(X_train, y_train)
# 预测测试集
y_pred = knn.predict(X_test)
# 输出分类结果报告
print(classification_report(y_test, y_pred))
# 输出准确率
print("Accuracy: ", accuracy_score(y_test, y_pred))
```
这段代码首先导入了必要的库,然后加载了鸢尾花数据集。接着,数据集被分为训练集和测试集,之后对数据进行了标准化处理,以保证特征在相同尺度上。然后实例化了一个KNN分类器,并用训练集数据训练了这个模型。最后,使用测试集数据进行预测,并输出了分类报告和准确率。
阅读全文