机器学习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 小时前
计算机视觉全流程(基础知识)
人工智能·机器学习
tainshuai3 小时前
朴素贝叶斯:用 “概率思维” 解决分类问题的经典算法
算法·分类·数据挖掘
Y200309164 小时前
支持向量机核心知识总结
算法·机器学习·支持向量机
nnerddboy5 小时前
预测模型及超参数:1.传统机器学习:SVR与KNN
人工智能·机器学习
春末的南方城市5 小时前
统一虚拟试穿框架OmniTry:突破服装局限,实现多品类可穿戴物品虚拟试穿无蒙版新跨越。
人工智能·深度学习·机器学习·计算机视觉·aigc
无风听海6 小时前
线性代数之深入理解旋转矩阵
线性代数·机器学习·矩阵·旋转矩阵
悠哉悠哉愿意6 小时前
【机器学习学习笔记】机器学习引言
笔记·学习·机器学习
nnerddboy7 小时前
预测模型及超参数:2.传统机器学习:PLS及其改进
人工智能·机器学习
钢铁男儿8 小时前
PyTorch 机器学习基础(机器学习一般流程)
人工智能·pytorch·机器学习
木头左9 小时前
利用机器学习优化Backtrader策略原理与实践
人工智能·机器学习