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

相关推荐
StfinnWu10 小时前
论文阅读《GridDehazeNet: Attention-Based Multi-Scale Network for Image Dehazing》
论文阅读·深度学习·机器学习
輕華12 小时前
矿物成分数据智能分类实战(三):以平均值填充数据集的pytorch框架和MLP算法实现与性能分析
pytorch·分类·数据挖掘
出门吃三碗饭12 小时前
CARLA: 如何在 CARLA 中回放自动驾驶场景
人工智能·机器学习·自动驾驶
Dfreedom.12 小时前
机器学习经典算法全景解析与演进脉络(无监督学习篇)
人工智能·学习·算法·机器学习·无监督学习
乾元13 小时前
全球治理: 从《AI 法案》看安全合规的国际趋势
网络·人工智能·安全·机器学习·网络安全·架构·安全架构
Sirius Wu13 小时前
基于OpenClaw环境的Agent强化学习(RFT+GRPO)训练机制与自动化实践报告
人工智能·深度学习·机器学习·语言模型·aigc
AI科技星13 小时前
基于空间光速螺旋归一化的动力学方程推导与数值验证
人工智能·线性代数·算法·机器学习·平面
油泼辣子多加13 小时前
【DL】Transformer算法应用
人工智能·深度学习·算法·机器学习·transformer
人机与认知实验室14 小时前
频率主义 vs 贝叶斯主义中的态、势、感、知
人工智能·机器学习·概率论
乾元14 小时前
未来展望: 当 AGI(通用人工智能)出现,网络安全是否会消失?
网络·人工智能·安全·机器学习·网络安全·架构·安全架构