pop_size=args.popsize, # search_timeout es el tiempo máximo total que queremos dedicarle a la búsqueda en segundos search_timeout=args.global_timeout, # evaluation_timeout es el tiempo máximo para un pipeline, si la ejecución del pipeline se pasa de este texto # se detenine y se le asigna fitness cero. evaluation_timeout=args.timeout, # cantidad máxima de RAM por pipeline. Este número debe ser inferior a la RAM del dispositivo donde se ejecute la experimentación # para evitar que el despositivo de bloquee. memory_limit=args.memory * 1024 ** 3, ), # cross_validation_steps cantidad de veces que se evalúa cada pipeline cross_validation_steps=3, # validation_split por ciento del tamaño del training set que se utiliza para cross validation. validation_split=0.3, # cross_validation es la métrica que se utiliza para mezclar los score de los cross_validation_steps. También está "mean" cross_validation="median", # random_state es un número para fijar la semilla random de la búsqueda. Esto nos puede ayudar a que aparezcan pipelines similares a los de # otra ejecución. random_state=None, # errors determina que se hce cuando un pipeline lanza una excepción. "warn" lanza un wargnig, "ïgnore" los ignora y # "raise" que lanza la excepción y detiene la ejecución. errors="warn", ) # Entrenando..... automl.fit(X_train, y_train) # Conociemdo que tan bueno es nuestro algoritmo result = automl.score(X_test, y_test) print(result)
with open("haha.log", "a") as fp: fp.write(f"solution={repr(new_best)}\nfitness={new_fn}\n\n") # Basic logging configuration. logger = MemoryLogger() loggers = [ProgressLogger(), ConsoleLogger(), logger] if args.token: from autogoal.contrib.telegram import TelegramLogger telegram = TelegramLogger( token=args.token, name=f"HAHA", channel=args.channel, ) loggers.append(telegram) # Finally, loading the HAHA dataset, running the `AutoML` instance, # and printing the results. X_train, y_train, X_test, y_test = haha.load(max_examples=args.examples) classifier.fit(X_train, y_train, logger=loggers) score = classifier.score(X_test, y_test) print(score) print(logger.generation_best_fn) print(logger.generation_mean_fn)
# ¿Cómo utilizamos esto en la clase AutoML? automl = AutoML( input=(Seq[Sentence], Supervised[VectorCategorical]), # **tipos de entrada** output=VectorCategorical, # **tipo de salida** # tenemos el parámetro score_metric para definir la función objetivo, # que si no le fijamos un valor utiliza por defecto la función `autogoal.ml.metrics.accuracy`. ) # Ya hasta aquí hemos definido el problema que queremos resolver # ahora solo nos resta ejecutar nuestro algoritmo, llamando al método `fit`. # Para monitorear el estado del proceso de AutoML, podemos pasar un logger al método `fit`. from autogoal.search import RichLogger # Entrenando... automl.fit(X_train, y_train, logger=RichLogger()) # Conociemdo que tan bueno es nuestro algoritmo score = automl.score(X_test, y_test) print(f"Score: {score:0.3f}") # Esto significa que nuestro algoritmo el mejor pipeline que encontró reportó un accuracy "result" # También puede llamarse al método predict que nos hace la predicción para un conjunto de ejemplos # Prediciendo... predictions = automl.predict(X_test) for sentence, real, predicted in zip(X_test[:10], y_test, predictions): print(sentence, "-->", real, "vs", predicted)