Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:Online ml River Datasets TrumpApproval

From Leeroopedia


Knowledge Sources
Domains Online_Learning, Datasets, Regression, Time_Series
Last Updated 2026-02-08 16:00 GMT

Overview

Concrete dataset for regression provided by the River library.

Description

Donald Trump approval ratings. This dataset was obtained by reshaping the data used by FiveThirtyEight for analyzing Donald Trump's approval ratings. It contains 5 features, which are approval ratings collected by 5 polling agencies. The target is the approval rating from FiveThirtyEight's model. The goal of this task is to see if we can reproduce FiveThirtyEight's model.

This dataset contains 1,001 samples with 6 features for regression tasks.

Usage

This dataset is useful for:

  • Time series regression
  • Model aggregation and ensemble learning
  • Political polling analysis
  • Reproducing or benchmarking aggregation models

Code Reference

Source Location

Signature

class TrumpApproval(base.FileDataset):
    def __init__(self):
        super().__init__(
            n_samples=1_001,
            n_features=6,
            task=base.REG,
            filename="trump_approval.csv.gz",
        )

    def __iter__(self):
        return stream.iter_csv(
            self.path,
            target="five_thirty_eight",
            converters={
                "ordinal_date": int,
                "gallup": float,
                "ipsos": float,
                "morning_consult": float,
                "rasmussen": float,
                "you_gov": float,
                "five_thirty_eight": float,
            },
        )

Import

from river import datasets
dataset = datasets.TrumpApproval()

I/O Contract

Inputs

Name Type Required Description
(none) No parameters needed

Outputs

Name Type Description
iter() tuple(dict, float) Yields (features_dict, target) pairs where target is FiveThirtyEight's approval rating

Dataset Properties

Property Value
Number of samples 1,001
Number of features 6
Task Regression
Format CSV (compressed)

Features

The dataset includes approval ratings from 5 polling agencies plus a date feature:

  • ordinal_date: Ordinal date (integer)
  • gallup: Gallup approval rating (float)
  • ipsos: Ipsos approval rating (float)
  • morning_consult: Morning Consult approval rating (float)
  • rasmussen: Rasmussen approval rating (float)
  • you_gov: YouGov approval rating (float)
  • five_thirty_eight: FiveThirtyEight's aggregated approval rating (target variable, float)

Usage Examples

from river import datasets

dataset = datasets.TrumpApproval()
for x, y in dataset:
    print(x, y)
    break

Example with Model Training

from river import datasets, linear_model, metrics

dataset = datasets.TrumpApproval()
model = linear_model.LinearRegression()
metric = metrics.MAE()

for x, y in dataset:
    y_pred = model.predict_one(x)
    metric.update(y, y_pred)
    model.learn_one(x, y)

print(f"Final MAE: {metric.get()}")

References

Related Pages

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment