我正在从udemy学习ML,下面是讲师在他的讲座中使用的代码。但是我对这段代码并不完全满意,因为它给出了许多错误率几乎相同的k值(我必须手动检查错误率为的k值)微不足道)。
有没有其他方法可以找到最佳 k 值 ( n_neighbor)?
error_rate = []
for i in range(1,40):
knn = KNeighborsClassifier(n_neighbors=i)
knn.fit(X_train,y_train)
pred_i = knn.predict(X_test)
error_rate.append(np.mean(pred_i != y_test))
Run Code Online (Sandbox Code Playgroud)
使用图来显示错误率与 K 值的关系。
plt.figure(figsize=(10,6))
plt.plot(range(1,40),error_rate,color='blue', linestyle='dashed', marker='o',
markerfacecolor='red', markersize=10)
plt.title('Error Rate vs. K Value')
plt.xlabel('K')
plt.ylabel('Error Rate')
Run Code Online (Sandbox Code Playgroud)