Skip to content

[BUG] Creating a task requires an estimation procedure ID, but procedure is not correctly created #1751

Description

@L-Agbaria

It is important to first note that the tasks/task.py appears to be slightly different from the version obtainable through pip install "openml==0.15.1", which would've elevated the priority while reducing the effort had the GitHub version not experienced the same bug.

The create_task() function requires an estimation_procedure_id parameter despite it having a default value in all cases, which all funnel towards the same OpenMLTask class where the handling of estimation procedure appears to break*.
It was tested without publication on the main server, as well as with publication on a local docker instance (test server does not have any procedures), where in both cases the create_task() function creates a task with Estimation Procedure equal to None and no data split (errors follow).

import openml
from openml.tasks import TaskType

openml.config.server = "..."
openml.config.apikey = "..."

did = 128  # iris

try:
    my_task = openml.tasks.create_task(
        task_type=TaskType.SUPERVISED_CLASSIFICATION,
        dataset_id=did,
        target_name="class",
        evaluation_measure="predictive_accuracy",
        estimation_procedure_id=1,
    )
    my_task.publish()
except openml.exceptions.OpenMLServerException as e:
    # Error code for 'task already exists'
    if e.code == 614:
        # Lookup task
        tasks = openml.tasks.list_tasks(data_id=did, output_format='dataframe')
        tasks = tasks.query(
            'task_type == "Supervised Classification" '
            'and estimation_procedure == "10-fold Crossvalidation" '
            'and evaluation_measures == "predictive_accuracy"'
        )
        display(tasks)
        task_id = tasks.loc[:, "tid"].values[0]
        print("Task already exists. Task ID is", task_id)
    
print(my_task)
print(my_task.estimation_procedure)
print(my_task.get_split_dimensions())

* Unconfirmed, however it is a good starting point.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions