Implementation:Online ml River Datasets TrumpApproval
| 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
- Repository: Online_ml_River
- File: river/datasets/trump_approval.py
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()}")