KNN参数cross_val_score调参

el/2024/3/2 10:56:09

什么是交叉式验证?
在这里插入图片描述
这样所有的数据都进行了验证,所有的数据也都进行了训练,训练了五次也测试了五次,将这五次得到的数据求一个平均值,这样的数据更有说服力
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
全部代码

#导包,加载数据import numpy as npfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn import datasets#model_selection:模型选择#cross_val_score  cross:交叉,validation:验证(测试)
#交叉验证from sklearn.model_selection import cross_val_scoreX,y = datasets.load_iris(True)X.shape# 参考
150**0.5
# K 选择 1----13#cross_val_score交叉验证筛选最合适的参数#演示了交叉验证,如何使用
knn = KNeighborsClassifier()
score = cross_val_score(knn,X,y,scoring='accuracy',cv = 6)
score.mean()#应用cross_val_score去筛选最合适的邻居数量
erros = []
for k in range(1,14):knn = KNeighborsClassifier(n_neighbors=k)score = cross_val_score(knn,X,y,scoring='accuracy',cv = 6).mean()#误差越小,说明k选择越合适,越好erros.append(1 - score)import matplotlib.pyplot as plt
%matplotlib inline#k = 11时,误差最小,说明k = 11对鸢尾花来说,最合适的k值
plt.plot(np.arange(1,14),erros)weights = ['uniform','distance']for w in weights:knn = KNeighborsClassifier(n_neighbors= 11,weights = w)print(w,cross_val_score(knn,X,y,scoring='accuracy',cv = 6).mean())#多参数组合使用cross_val_score筛选最合适的参数组合
#模型是如何调参的,参数调节result = {}
for k in range(1,14):for w in weights:knn  = KNeighborsClassifier(n_neighbors=k,weights=w)sm = cross_val_score(knn,X,y,scoring='accuracy',cv = 6).mean()result[w + str(k)] = smresultmax(result.values())np.array(list(result.values())).argmax()list(result)[20]

http://www.ngui.cc/el/4423614.html

相关文章

载入显示保存图片

import cv2 import matplotlib.pyplot as pltimage cv2.imread(jianghe.jpeg) print("width: %d pixels" % (image.shape[1])) #图片的宽度、高度以及图片的通道数 print("height: %d pixels" % (image.shape[0])) print("channels: %d pixels"…

画图功能的实现

import numpy as np import cv2 import matplotlib.pyplot as pltdef show(image):plt.imshow(image)plt.axis(off)plt.show()image np.zeros((300,300,3),dtypeuint8) #可以看成一张图片,三通道的、长宽为300*300,里面像素全为0show(image)#显示图片#画…

图像平移功能的实现

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…

图像旋转放大缩小

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…

resize图片形状大小

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…

翻转+裁剪+图像算数

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…

按位计算+遮挡

bitwise_and是对二进制数据进行‘与’操作,即对图像(灰度图像或彩色图像均可)每个像素值进行二进制‘与’操作,1&11,1&00,0&10,0&00bitwise_or是对二进制数据进行‘或’操作,即对图像(灰度…

图像平滑颜色空间转换

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…

二值化Thresholding

import cv2 import matplotlib.pyplot as plt import numpy as np#显示图片 def show(image):plt.imshow(image)plt.axis(off)plt.show()#读取图片,由BGR格式转换为RGB格式 def imread(image):image cv2.imread(image)image cv2.cvtColor(image,cv2.COLOR_BGR2RGB)return ima…