Skip to contents

Quick Revision

This vignette provides a quick overview of how to use mlr3hf.

Suppose you are working on neuromorphic computing and need a dataset for your machine learning project.

Step 1: Search for a Dataset

First, search for relevant datasets on the Hugging Face Hub.

library(mlr3hf)
library(mlr3)

list_datasets(num_of_datasets = 5, search = "neuromorphic computing")
##                                                   id  gated downloads  nrows
##                                               <char> <lgcl>     <int>  <int>
## 1: Shoriful025/neuromorphic_edge_computing_telemetry  FALSE       453     31
## 2: jason1966/ahsanneural_neuromorphic-computing-logs  FALSE        26 100000
##    ncols
##    <int>
## 1:    10
## 2:     6

This returns a list of dataset repositories matching your search term. Note: If search dataset can return less that the number of datasets specified in num_of_datasets, it means that there are no more datasets available for the search term.

Step 2: Create an HFData Object

Next, create an HFData object using a repo_id obtained from list_datasets() above.

dt = hfdt(repo_id = "Shoriful025/neuromorphic_edge_computing_telemetry")

To retrieve the link to the repository on Hugging Face:

dt$repo_link
## [1] "https://huggingface.co/datasets/Shoriful025/neuromorphic_edge_computing_telemetry"

You can also inspect the available dataset configurations and files:

dt$configs
## [1] "default"
dt$siblings
## [1] ".gitattributes" "main.csv"

Step 3: Select a Configuration

Once you know which configuration you want, recreate the object by specifying it. Here, the configuration is one of the values returned by dt$configs above.

dt = hfdt(
  repo_id = "Shoriful025/neuromorphic_edge_computing_telemetry",
  config = "default"
)

The dataset is downloaded locally, a backend is created, and the dataset can now be inspected.

To view the column names or load the data:

dt$colnames
##  [1] "node_id"                     "timestamp"                  
##  [3] "spike_frequency_khz"         "synaptic_weight_mean"       
##  [5] "power_consumption_mw"        "inference_latency_ms"       
##  [7] "Data_Signal_quality"         "Carrier_frequency_stability"
##  [9] "temperature_c"               "thermal_throttling_active"  
## [11] "mlr3_row_id"
dt$data[1:5]
## Key: <mlr3_row_id>
##      node_id            timestamp spike_frequency_khz synaptic_weight_mean
##       <char>               <char>               <num>                <num>
## 1: NODE-X101 2026-01-23T08:00:01Z               450.2                0.652
## 2: NODE-X101 2026-01-23T08:00:02Z               455.8                0.655
## 3: NODE-X102 2026-01-23T08:00:03Z               890.4                0.712
## 4: NODE-X102 2026-01-23T08:00:04Z               912.1                0.718
## 5: NODE-X103 2026-01-23T08:00:05Z               120.5                0.441
##    power_consumption_mw inference_latency_ms Data_Signal_quality
##                   <num>                <num>               <num>
## 1:                 12.4                  1.2                0.98
## 2:                 12.8                  1.2                0.97
## 3:                 25.6                  0.8                0.94
## 4:                 26.2                  0.8                0.92
## 5:                  5.2                  4.5                0.99
##    Carrier_frequency_stability temperature_c thermal_throttling_active
##                          <num>         <num>                    <lgcl>
## 1:                       0.999          34.5                     FALSE
## 2:                       0.998          34.8                     FALSE
## 3:                       0.995          42.1                     FALSE
## 4:                       0.992          45.6                     FALSE
## 5:                       0.999          31.2                     FALSE
##    mlr3_row_id
##          <int>
## 1:           1
## 2:           2
## 3:           3
## 4:           4
## 5:           5

Step 4: Create an mlr3 Task

To create an mlr3 task, specify a target column — one of the values returned by dt$colnames above.

task = as_task(
  dt,
  target_names = "temperature_c"
)

Shortcut: Specify Everything at Once

If you already know the repository, configuration, and target column, you can create everything directly:

dt = hfdt(
  repo_id = "Shoriful025/neuromorphic_edge_computing_telemetry",
  config = "default",
  target = "temperature_c"
)

task = as_task(dt)
task
## 
## ── <TaskRegr> (31x10) ──────────────────────────────────────────────────────────
## • Target: temperature_c
## • Properties: -
## • Features (9):
##   • dbl (6): Carrier_frequency_stability, Data_Signal_quality,
##   inference_latency_ms, power_consumption_mw, spike_frequency_khz,
##   synaptic_weight_mean
##   • chr (2): node_id, timestamp
##   • lgl (1): thermal_throttling_active

Alternatively, tsk() can be used to create the task directly, without going through an intermediate HFData object:

task = tsk("hf",
  repo_id = "Shoriful025/neuromorphic_edge_computing_telemetry",
  config = "default",
  target = "temperature_c"
)
task
## 
## ── <TaskRegr> (31x10) ──────────────────────────────────────────────────────────
## • Target: temperature_c
## • Properties: -
## • Features (9):
##   • dbl (6): Carrier_frequency_stability, Data_Signal_quality,
##   inference_latency_ms, power_consumption_mw, spike_frequency_khz,
##   synaptic_weight_mean
##   • chr (2): node_id, timestamp
##   • lgl (1): thermal_throttling_active

This covers the essential workflow for using mlr3hf to search, load, and convert Hugging Face datasets into mlr3 tasks.