Explicación detallada y aplicación del principio K-Nearest Neighbors (KNN)


K-Nearest Neighbors (KNN) es un algoritmo de aprendizaje supervisado no paramétrico de uso común para tareas de clasificación y regresión. Este artículo analizará en profundidad el principio de KNN, desde la medición de la distancia hasta la selección del valor K, para ayudar a los lectores a comprender completamente el principio de funcionamiento y la aplicación de KNN.

1. Descripción general del algoritmo KNN

El algoritmo KNN se basa en una idea simple: muestras similares tienen categorías similares. Calcula la distancia entre la nueva muestra y cada muestra en el conjunto de entrenamiento y selecciona las K muestras más cercanas para clasificación o regresión.

2. Medida de distancia

En el algoritmo KNN, la medida de la distancia es un indicador importante para juzgar la similitud entre las muestras. Los métodos de medición de distancia comúnmente utilizados incluyen la distancia euclidiana, la distancia de Manhattan y la distancia de Minkowski. De acuerdo con las características del problema específico y las propiedades de los datos, es muy importante elegir un método de medición de distancia adecuado.

3. Selección del valor K

El valor K es un parámetro importante en el algoritmo KNN, que determina el número de vecinos utilizados para la clasificación o la regresión. La elección de un valor apropiado de K es crucial para el rendimiento del modelo. Un valor pequeño de K hará que el modelo sea sensible al ruido, mientras que un valor grande de K hará que el modelo sea demasiado conservador.

4. Tareas de clasificación

En el algoritmo KNN, la tarea de clasificación es el escenario de aplicación más común. Cuando se proporciona una nueva muestra, el algoritmo KNN calcula su distancia desde la muestra del conjunto de entrenamiento y selecciona las K muestras vecinas más cercanas. Luego, se votan según las categorías de las muestras de vecinos, y la nueva muestra se clasifica en la categoría con más votos.

5. Tareas de regresión

Además de las tareas de clasificación, el algoritmo KNN también se puede aplicar a las tareas de regresión. En la tarea de regresión, el algoritmo KNN calcula la distancia entre la nueva muestra y la muestra del conjunto de entrenamiento, y selecciona las K muestras vecinas más cercanas. Luego, se realiza el promedio ponderado de acuerdo a los valores de las muestras vecinas para obtener el valor pronosticado de la nueva muestra.

6. Ventajas y desventajas de KNN

Ventajas del algoritmo KNN:

  • Simple y fácil de entender, no requiere fase de entrenamiento.
  • Habilidad para manejar problemas de múltiples categorías y múltiples funciones.
  • Funciona bien cuando la distribución de la muestra es relativamente uniforme.

Desventajas del algoritmo KNN:

  • Para conjuntos de datos a gran escala, calcular la distancia entre muestras lleva mucho tiempo.
  • Para datos de alta dimensión, los cálculos de distancia son susceptibles a la maldición de la dimensionalidad.
  • Para conjuntos de datos desequilibrados, los resultados de la clasificación pueden estar sesgados hacia la categoría con más muestras.

7. Aplicación del algoritmo KNN

from sklearn.datasets import load_iris
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 加载数据集
iris = load_iris()
X = iris.data
y = iris.target

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 创建KNN模型
model = KNeighborsClassifier(n_neighbors=3)

# 训练模型
model.fit(X_train, y_train)

# 预测结果
y_pred = model.predict(X_test)

# 评估模型
accuracy = accuracy_score(y_test, y_pred)
print("准确率:", accuracy)

En el código, primero se carga un conjunto de datos de iris clásico (Iris), y el conjunto de datos se divide en un conjunto de entrenamiento y un conjunto de prueba. Luego cree un modelo de clasificación KNN y use el conjunto de entrenamiento para el entrenamiento. Finalmente, el conjunto de prueba se usa para hacer predicciones y se calcula la precisión para evaluar el rendimiento del modelo.

Supongo que te gusta

Origin blog.csdn.net/weixin_43749805/article/details/131312888
Recomendado
Clasificación