机器学习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可以画出参数和准确率的关系

相关推荐
joopthd14 小时前
工业在线 TDLAS 器件源头厂商|连续监测场景器件选型要点
机器学习·激光气体检测·tdlas分析模块·仪器集成开发·工业在线监测
方方洛15 小时前
ray教程-00-前言与导读
人工智能·分布式·机器学习
方方洛15 小时前
ray教程-01-认识Ray
人工智能·分布式·机器学习
OCR_1337162127515 小时前
智能交通底层逻辑:国内车牌分类规范与AI识别适配技术解析
大数据·人工智能·分类
段一凡-华北理工大学16 小时前
高炉炼铁机器视觉与智能识别十八讲~系列文章11:从单帧到视频流:时序与异常行为识别
人工智能·机器学习·python开发·智能识别·高炉智能化·时序识别
FL162386312918 小时前
外来入侵植物检测数据集VOC+YOLO格式1111张5类别
人工智能·yolo·机器学习
oooost19 小时前
RecFno
人工智能·机器学习
Rocky Ding*20 小时前
VideoChat3 深度解析:视频理解的效率,来自时空压缩与主动感知的共同设计
论文阅读·人工智能·深度学习·机器学习·aigc·ai-native·视频理解
Omics Pro20 小时前
全新可重分析!代谢组质谱专用
数据库·人工智能·算法·机器学习·自然语言处理