コード例 #1
0
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
コード例 #2
0
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
コード例 #3
0
ファイル: spam_filter.py プロジェクト: rexemin/Material-IA
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