Пример #1
0
__author__ = "Max Dippel, Michael Burkart and Matthias Urban"
__version__ = "0.0.1"
__license__ = "BSD"

import os, sys

sys.path.append(os.path.abspath(os.path.join(__file__, "..", "..", "..")))
from autoPyTorch import AutoNetClassification
from autoPyTorch.data_management.data_manager import DataManager

# Note: You can write your own datamanager! Call fit with respective train, valid data (numpy matrices)
dm = DataManager()
dm.generate_classification(num_classes=3, num_features=21, num_samples=1500)

# Note: every parameter has a default value, you do not have to specify anything. The given parameter allow a fast test.
autonet = AutoNetClassification(budget_type='epochs',
                                min_budget=1,
                                max_budget=9,
                                num_iterations=1,
                                log_level='info')

res = autonet.fit(X_train=dm.X,
                  Y_train=dm.Y,
                  X_valid=dm.X_train,
                  Y_valid=dm.Y_train)

print(res)
print("Score:", autonet.score(X_test=dm.X_train, Y_test=dm.Y_train))
Пример #2
0
# Generate autonet
autonet = AutoNetClassification() if TEST_CASE != 3 else AutoNetMultilabel()

# add metrics and test_result to pipeline
autonet.pipeline[autonet_nodes.LogFunctionsSelector.get_name()].add_log_function('test_result', test_result(autonet, dm.X_test, dm.Y_test))
metrics = autonet.pipeline[autonet_nodes.MetricSelector.get_name()]
metrics.add_metric('pac_metric', autonet_metrics.pac_metric)
metrics.add_metric('auc_metric', autonet_metrics.auc_metric)
metrics.add_metric('accuracy', autonet_metrics.accuracy)

# Fit autonet using train data
res = autonet.fit(min_budget=300,
                  max_budget=900, max_runtime=1800, budget_type='time',
                  normalization_strategies=['maxabs'],
                  train_metric=metric,
                  additional_metrics=additional_metrices,
                  cv_splits=3,
                  preprocessors=["truncated_svd"],
                  log_level="debug",
                  X_train=dm.X_train,
                  Y_train=dm.Y_train,
                  X_valid=dm.X_valid,
                  Y_valid=dm.Y_valid,
                  categorical_features=dm.categorical_features,
                  additional_logs=["test_result"],
                  full_eval_each_epoch=True)

# Calculate quality metrics using validation data.
autonet.score(dm.X_test, dm.Y_test)
print(res)
Пример #3
0
X_test, Y_test = X[ind_test], y[ind_test]
autonet = AutoNetClassification(config_preset="tiny_cs",
                                result_logger_dir="logs/")
# Fit (note that the settings are for demonstration, you might need larger budgets)
results_fit = autonet.fit(X_train=X_train,
                          Y_train=Y_train,
                          validation_split=0.3,
                          max_runtime=300,
                          min_budget=60,
                          max_budget=100,
                          refit=True)
# Save fit results as json
with open("logs/results_fit.json", "w") as file:
    json.dump(results_fit, file)
# See how the random configuration performs (often it just predicts 0)
score = autonet.score(X_test=X_test, Y_test=Y_test)
pred = autonet.predict(X=X_test)
print("Model prediction:", pred[0:10])
print("Accuracy score", score)
pytorch_model = autonet.get_pytorch_model()
print(pytorch_model)
# Load fit results as json
with open("logs/results_fit.json") as file:
    results_fit = json.load(file)
# Create an autonet
autonet_config = {
    "result_logger_dir": "logs/",
    "budget_type": "epochs",
    "log_level": "info",
    "use_tensorboard_logger": True,
    "validation_split": 0.0