数据集:鸢尾花数据集(Iris dataset)
目标:根据鸢尾花的特征将其分为三类,并预测未知样本的类别。
导入所需的库
python复制代码
import pandas as pd | |
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 |
加载数据集
python复制代码
iris = pd.read_csv('iris.csv') | |
X = iris.drop('species', axis=1) # 特征 | |
y = iris['species'] # 标签 |
数据预处理
python复制代码
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 划分训练集和测试集 | |
scaler = StandardScaler() # 数据标准化 | |
X_train = scaler.fit_transform(X_train) # 对训练集进行标准化处理 | |
X_test = scaler.transform(X_test) # 对测试集进行标准化处理 |
模型训练和预测
python复制代码
knn = KNeighborsClassifier(n_neighbors=3) # K近邻算法,设置邻居数为3 | |
knn.fit(X_train, y_train) # 训练模型 | |
y_pred = knn.predict(X_test) # 预测测试集的标签 |
评估模型性能
python复制代码
print(confusion_matrix(y_test, y_pred)) # 输出混淆矩阵,评估分类准确率 | |
print(classification_report(y_test, y_pred)) # 输出分类报告,评估分类性能指标(如精确度、召回率、F1值等) |