Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Naive Bayes en Python: ejecución del modelo

24/26
Recursos

Aportes 4

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

lo que queda es trabajo por hacer

Hola, dejo un código comentado para aclarar algunas dudas o como guía para la clase

def predict(self, data):
    results = []
    for text in data:
      # tokenizamos en palabras unicas
      words = set(self.tokenize(text))
      scoreProb = {}
      # iteramos las palabras unicas
      for word in words:
        # si encontramos una palabra que no esta en el vocab
        # la ignoramos por que no sale en los conteos
        if word not in self.vocab: continue
        # aplicamos el "suavizado" Laplaciano segun la formula de arriba
        for c in self.unique_clases:# ITERAMOS LAS CLASES UNICAS
          log_wordClassProb = math.log( # calculamos segun la formula
              # que busque la prob de la palabra, si no esta es 0.0, mas 1
              (self.wordConditionalCounts[c].get(word, 0.0)+1) / (self.classCount[c] + len(self.vocab)))
              # el denominador es el conteo de la clase mas la longitud del vocabulario
          # esta es la primera formula, buscamos si la clase ya esta, si si esta regresa 
          # el valor que esta, si no la probabilidad prior(termino p de la formula). Es como
          # si esl término si dijeramos que si todavía no se ha sumado pues sumalo. Por
          # ultimmo le sumamos la probabilidad aplicada con el logaritmo 
          scoreProb[c] = scoreProb.get(c, self.log_classPriorProb[c]) + log_wordClassProb
      # este termino aparece casi igual en la primera formula, agarramos el término mayor de
      # scoreProb que tiene la probabilidad de que sea cada clase
      arg_maxprob = np.argmax(np.array(list(scoreProb.values())))
      # agregamos el resultado del texto iterado de forma que regrese la etiqueta y no la probabilidad
      results.append(list(scoreProb.keys())[arg_maxprob])
    return results

Creo que se puede Usar la ley de benford para dar mayor importancia a las palabras repetidas en una descripcion para un articulo en venta, asi podemos saber que esta vendiendo por ejemplo.

Había querido una clase así desde siempre, muy buena esta metodología realmente