调参常见错误:
情况1:调参只调了n neighbors
情况2:把测试集和训练集的划分放到了调参的循环中
特别说一下情况二,因为参数在变,由于test数据是随机抽取的,所以数据也在变,同时两个数据都在变,所以结果准确性的score也在变(不能确定变化究竟是由谁引起的)
解决办法:
调参之前把训练集和测试集准备好,只有参数在变化
结果跟参数之间的一个关系
调参步骤
引包
import numpy as np
import pandas as pd
#datasets是自带demo数据集,方便自学
from sklearn import datasets
#train_test_split是数据集划分 8:2 7:3
from sklearn.model_selection import train_test_split
#KNN
from sklearn.neighbors import KNeighborsClassifier
导入数据集,得到x,y
iris = datasets.load_iris()
iris
x = iris['data']
x
y = iris['target']
y
训练集测试集划分
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
构建训练模型
knn = KNeighborsClassifier() #模型准备
knn.fit(x_train,y_train) #模型训练
调参
或者