机器学习sklearn入门:使用KNN模型分类鸢尾花和使用交叉验证进行简单调参

bg:scikit--learn是不错的机器学习库,里面精简了很多东西,新手学习起来也是比较舒服的

python 复制代码
#%%
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

iris = datasets.load_iris()
iris_X = iris.data
iris_y = iris.target     # 选择第0行和第一行
#%%
Xtrain, Xtest, Ytrain, Ytest = train_test_split(iris_X, iris_y, test_size=0.3)

knn = KNeighborsClassifier()
knn.fit(Xtrain, Ytrain)     # 将训练集的特征和标签训练knn模型
knn.predict(Xtest)      # 对测试集进行分类标签
#%%
Ytest       # 原本Xtest数据集对应的标签
#%%

结果:

测试集准确率:

5次交叉验证准确率:

还算是比较准的

调参

knn创建对象的时候是可以添加参数的,下面就以n_neighbors参数为例,挑选出最优的参数

python 复制代码
# 轮询找到更好的KNN参数
score_all = []
num_neighbors = np.arange(1, 10)
for num_neighbor in num_neighbors:
    knn = KNeighborsClassifier(n_neighbors=num_neighbor)
    score = cross_val_score(knn, Xtrain, Ytrain, cv=10, scoring='accuracy')
    score_all.append(score.mean())

思路就是遍历一遍

-- 通过matplotlib可以画出参数和准确率的关系

相关推荐
向哆哆3 分钟前
打击罂粟种植检测数据集分享(适用于YOLO系列深度学习分类检测任务)
深度学习·yolo·目标检测·分类
咖啡星人k3 分钟前
2026 AI Agent 智能体:ReAct 让 AI 边想边做、把大任务拆成小步骤(MonkeyCode 实战)
人工智能·深度学习·机器学习·语言模型·自然语言处理
逻辑君29 分钟前
ANNA 7.6 知识智能引擎白皮书
人工智能·机器学习
这张生成的图像能检测吗10 小时前
(论文速读)SubspaceAD:用 PCA 子空间做 Training-Free Few-Shot 异常检测
人工智能·机器学习·pca·异常检测·少样本学习
浪兎兎11 小时前
【机器学习】高斯分布 高斯混合模型
机器学习·高斯分布
咖啡星人k13 小时前
2026 MCP 模型上下文协议:让 AI 自己动手接工具,告别手写接口(MonkeyCode 实战)
人工智能·深度学习·机器学习·语言模型·自然语言处理
专注仿真14 小时前
Spring AI 实现智能对话系统项目指南
数据结构·spring·机器学习
今天会营业15 小时前
Miniconda安装
python·机器学习
啥都想学点的研究生16 小时前
一篇文章讲清楚:线性回归问题的求解——正规方程法
算法·机器学习·线性回归
aichitang202417 小时前
希尔伯特空间中的正交性
人工智能·学习·机器学习·ai·泛函分析