Los K Vecinos más Cercanos | K Nearest Neighbors | KNN Algoritmo con Python

Поделиться
HTML-код
  • Опубликовано: 3 дек 2024
  • НаукаНаука

Комментарии • 37

  • @cris_san6663
    @cris_san6663 4 года назад +4

    Muy buen video , excelente explicación y mostró toda la funcionalidad que hace este algoritmo :]

  • @josemorenoparedes6056
    @josemorenoparedes6056 3 года назад +1

    Excelente material, bastante claro y sencillo de entender. Gracias por el buen trabajo.

  • @reynaldoquispe9335
    @reynaldoquispe9335 2 года назад +1

    buen video, donde podemos descargar el dataset?

    • @jacobavilacamacho7644
      @jacobavilacamacho7644  2 года назад

      Hola, muchas gracias!!!
      Te paso el link para los datasets de todos los videos
      drive.google.com/drive/folders/1Jdg2ttdM8pvSdC2ndd5tS5rPI37uTC_t?usp=share_link

  • @matematicasutiles6998
    @matematicasutiles6998 2 года назад +1

    Buenas, requiero usar el algoritmo con más de 3 entradas... dónde podría encontrar orientaciones al respecto...

    • @jacobavilacamacho7644
      @jacobavilacamacho7644  2 года назад

      Hola, de hecho lo puedes usar con múltiples entradas. En el video lo hago con dos por efectos de graficación, es decir para poder visualizarlo en la gráfica

    • @matematicasutiles6998
      @matematicasutiles6998 2 года назад +1

      @@jacobavilacamacho7644 Hola gracias por responder, me podría ilustrar cómo modificar el código para poner múltiples entradas. me sería de gran utilidad...
      X = dataset.iloc[:, :-1].values
      alguien me dice que con esa línea. No obstante, mi cuestión es: ese :-1, qué me indica exactamente? todas las columnas excepto 1? agradezco cualquier ayuda

    • @jacobavilacamacho7644
      @jacobavilacamacho7644  2 года назад +1

      @@matematicasutiles6998 Hola, justo así agregas más variables a tu variable X. el slide con el -1 al final significa que mandaras a X las columnas iniciando desde la primera hasta la última menos 1, ya que la última columna va a ser tu variable Y.
      En python puede recorrer arreglos, listas y matrices desde el indice 0 a n-1 y al revés desde la columna n-1 hacia atrás con índices negativos

  • @juancarloshernandezlarios9029
    @juancarloshernandezlarios9029 4 года назад +1

    Hola, excelente video, gracias!!!; tengo una duda;, siguiendo este modelo, como podría realiza "n" experimentos seleccionando el 10% de manera aleatoria para entrenar el clasificador y el 10% para validación?

    • @jacobavilacamacho7644
      @jacobavilacamacho7644  4 года назад +2

      Hola Juan Carlos. Si nada más quieres usar el 10% para entrenar, en lugar del 90% restante cuando indicas que el test_size es del 10% podrías usar también train_size en la funcion train_test_split
      train_test_split(x, y, test_size=0.1, train_size=0.1, random_state = 0)
      El parámetro random_state hace que se selecciones de manera aleatorios los datos para entrenamiento y prueba o validación

    • @juancarloshernandezlarios9029
      @juancarloshernandezlarios9029 4 года назад +1

      @@jacobavilacamacho7644 Excelente, una gran ayuda. Muchas gracias.

  • @helloWorldPlus
    @helloWorldPlus 2 года назад +2

    Hola! Que pasaría si tenemos K=4 y resulta que 2 elementos pertenecen a una clase y los otros dos a la segunda clase. A que clase correspondería el elemento que deseo clasificar? Gracias!

    • @jacobavilacamacho7644
      @jacobavilacamacho7644  2 года назад +2

      Hola, pertenecería a cualquiera de las dos clases, dado que tenemos un 50% de probabilidad de pertenecer a cualquiera de los dos, sin embargo el modelo de KNN haría un nuevo cálculo para modificar las distancias y ver si hay cambios en la asignación. Lo más conveniente sería probar ahora con K = 3 y K = 5

  • @DatOpsOn
    @DatOpsOn 4 года назад +2

    disculpa, que valor pusiste en el stop de la funcion mershgrid? por que no se ve la parte del stop =

    • @jacobavilacamacho7644
      @jacobavilacamacho7644  4 года назад +2

      El valor máximo del conjunto de datos, en la columna 0 y en la columna 1, pero mejor te paso ese fragmento del código:
      from matplotlib.colors import ListedColormap
      X_set, y_set = x_test, y_test
      X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01),
      np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01))
      plt.contourf(X1, X2, knn.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),
      alpha = 0.75, cmap = ListedColormap(('red', 'green')))
      plt.xlim(X1.min(), X1.max())
      plt.ylim(X2.min(), X2.max())
      for i, j in enumerate(np.unique(y_set)):
      plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],
      c = ListedColormap(('red', 'green'))(i), label = j)
      plt.title('K-NN (Datos de Prueba)')
      plt.xlabel('Edad')
      plt.ylabel('Salario Estimado')
      plt.legend()
      plt.show()

  • @b.al.1689
    @b.al.1689 4 года назад +1

    Hola , podrias pasame el dataseet que utilizaste?:(

    • @jacobavilacamacho7644
      @jacobavilacamacho7644  4 года назад +3

      Hola, Si claro. Descárgalo en esta liga:
      drive.google.com/file/d/17Eb2XNuR9byDl7W5H22AoE8CBLGUO4YS/view?usp=sharing

  • @cMonsalveAdm
    @cMonsalveAdm 3 года назад +1

    Amigo , deberias sacar un video de como hacer este mismo procedimiento de K Vecinos pero en R

  • @bryanmazon6871
    @bryanmazon6871 4 года назад +1

    porque el numero de vecinos eliges 5?

    • @jacobavilacamacho7644
      @jacobavilacamacho7644  4 года назад

      Hola Bryan, el valor de 5 lo use como estándar, que es el mínimo recomendado por el mismo modelo. Pero puedes hacer pruebas con números mayores, también va a depender de la distribución de tus datos.

  • @pegazo1404881
    @pegazo1404881 2 года назад +1

    Me puede ayudar con una tarea o me puede dar clases?

  • @jua__n2655
    @jua__n2655 3 года назад +1

    Muchisimos fallos...

  • @fernandoguzmanvalverde5435
    @fernandoguzmanvalverde5435 4 года назад +2

    25 minutos para usar KNN de Sklearn, así que chiste. Pensé que desarrollaría el algoritmo.

    • @jacobavilacamacho7644
      @jacobavilacamacho7644  4 года назад +3

      Sorry, Es importante entender como funciona y aplicarlo de manera práctica para interpretar los resultados sin tener que implementar el algoritmo a mano.