def spam_filter(): """ Filtro spam a desarrollar para reconocer si un correo es spam o no. Para obtener los datos de aprendizaje se puede utilizar datos, clases = carga_datos('mails.data','mails.class') Mientras que para obtener los datos de prueba se puede utilizar datos, clases = carga_datos('mails_test.data','mails_test.class') En la funcion ejemplo_datos viene una manera de mostrar los resultados mostrando el valor de las palabras. La función debe de devolver el error de predicción tanto con los datos de entrenamiento como con los datos de prueba """ error_entrenamiento = 1.0 error_prueba = 1.0 # --------------------------------------------------- # agregar aqui el código # --------------------------------------------------- datos, clases = carga_datos('mails.data', 'mails.class') clasificador_spam = nb.NaiveBayes() clasificador_spam.aprende(datos, clases) clases_estimadas = clasificador_spam.reconoce(datos) error_entrenamiento = error_clasif(clases, clases_estimadas) datos, clases = carga_datos('mails_test.data', 'mails_test.class') clases_estimadas = clasificador_spam.reconoce(datos) error_prueba = error_clasif(clases, clases_estimadas) return error_entrenamiento, error_prueba
def spam_filter(): """ Filtro spam a desarrollar para reconocer si un correo es spam o no. Para obtener los datos de aprendizaje se puede utilizar datos, clases = carga_datos('mails.data','mails.class') Mientras que para obtener los datos de prueba se puede utilizar datos, clases = carga_datos('mails_test.data','mails_test.class') En la funcion ejemplo_datos viene una manera de mostrar los resultados mostrando el valor de las palabras. La función debe de devolver el error de predicción tanto con los datos de entrenamiento como con los datos de prueba """ #CODIGO # --------------------------------------------------- datos, clases = carga_datos('mails.data', 'mails.class') datosPrueba, clasesPrueba = carga_datos('mails_test.data', 'mails_test.class') clasificador = nb.NaiveBayes([0, 1]) #no o si clasificador.aprende(datos, clases) #ENTRENAMIENTO clasesEstimadas = clasificador.reconoce(datos) errorEntrenamiento = error_clasif(clases, clasesEstimadas) #PRUEBA clasesEstimadas = clasificador.reconoce(datosPrueba) errorPrueba = error_clasif(clasesPrueba, clasesEstimadas) # --------------------------------------------------- return errorEntrenamiento * 100, errorPrueba * 100
def spam_filter(): """ Filtro spam a desarrollar para reconocer si un correo es spam o no. Para obtener los datos de aprendizaje se puede utilizar datos, clases = carga_datos('mails.data','mails.class') Mientras que para obtener los datos de prueba se puede utilizar datos, clases = carga_datos('mails_test.data','mails_test.class') En la función ejemplo_datos viene una manera de mostrar los resultados mostrando el valor de las palabras. La función debe de devolver el error de predicción tanto con los datos de entrenamiento como con los datos de prueba """ # --------------------------------------------------- # Agregar aquí el código. # --------------------------------------------------- datos, clases = carga_datos('mails.data', 'mails.class') # Entrenamos a la red bayesiana. filtro = nb.NaiveBayes([0, 1]) # No es spam, o si lo es. filtro.aprende(datos, clases) # Probamos con los datos de entrenamiento. c_e_entrenamiento = filtro.reconoce(datos) error_entrenamiento = error_clasif(clases, c_e_entrenamiento) # Probamos con los datos de prueba al mismo filtro. datos_prueba, clases_prueba = carga_datos('mails_test.data', 'mails_test.class') c_e_prueba = filtro.reconoce(datos_prueba) error_prueba = error_clasif(clases_prueba, c_e_prueba) return error_entrenamiento * 100, error_prueba * 100