Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
PMLB: A large, curated repository of benchmark datasets for evaluating supervised machine learning algorithms.
| Date | Stars |
|---|---|
| 2026-07-31 | 872 |
| 2026-08-04 | 873 |
| 2026-08-06 | 873 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# Penn Machine Learning Benchmarks
This repository contains the code and data for a large, curated set of benchmark datasets for evaluating and comparing supervised machine learning algorithms.
These data sets cover a broad range of applications, and include binary/multi-class classification problems and regression problems, as well as combinations of categorical, ordinal, and continuous features.
Please go to our [home page](https://epistasislab.github.io/pmlb/) to interactively browse the datasets, vignette, and contribution guide!
## Breaking changes in PMLB 1.0
*This repository has been restructured, and several dataset names have been changed!*
If you have an older version of PMLB, we highly recommend you upgrade it to v1.0 for updated URLs and names of datasets:
```
pip install pmlb --upgrade
```
## Datasets
Datasets are tracked with Git Large File Storage (LFS).
If you would like to clone the entire repository, please [install and set up Git LFS](https://git-lfs.github.com/) for your user account.
Alternatively, you can download the `.zip` file from GitHub.
All data sets are stored in a common format:
* First row is the column names
* Each following row corresponds to one row of the data
* The target column is named `target`
* All columns are tab (`\t`) separated
* All files are compressed with `gzip` to conserve space

The [complete table](pmlb/all_summary_stats.tsv) of dataset characteristics is also available for download.
Please note, in our documentation, a feature is considered:
* "binary" if it is of type integer and has 2 unique values (equivalent to pandas profiling's "boolean")
* "categorical" if it is of type integer and has *more than* 2 unique values (equivalent to pandas profiling's "categorical")
* "continuous" if it is of type float (equivalent to pandas profiling's "numeric").
## Python wrapper
For easy access to the benchmark data sets, we have provided a Python wrapper named `pmlb`. The wrapper can be installed on Python via `pip`:
```
pip install pmlb
```
and used in Python scripts as follows:
```python
from pmlb import fetch_data
# Returns a pandas DataFrame
adult_data = fetch_data('adult')
print(adult_data.describe())
```
The `fetch_data` function has two additional parameters:
* `return_X_y` (True/False): Whether to return the data in scikit-learn format, with the features and labels stored in separate NumPy arrays.
* `local_cache_dir` (string): The directory on your local machine to store the data files so you don't have to fetch them over the web again. By default, the wrapper does not use a local cache directory.
For example:
```python
from pmlb import fetch_data
# Returns NumPy arrays
adult_X, adult_y = fetch_data('adult', return_X_y=True, local_cache_dir='./')
print(adult_X)
print(adult_y)
```
You can also list all of the available data sets as follows:
```python
from pmlb import dataset_names
print(dataset_names)
```
Or if you only want a list of available classification or regression datasets:
```python
from pmlb import classification_dataset_names, regression_dataset_names
print(classification_dataset_names)
print('')
print(regression_dataset_names)
```
## Example usage: Compare two classification algorithms with PMLB
PMLB is designed to make it easy to benchmark machine learning algorithms against each other. Below is a Python code snippet showing the most basic way to use PMLB to compare two algorithms.
```python
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
import seaborn as sb
from pmlb import fetch_data, classification_dataset_names
logit_test_scores = []
gnb_test_scores = []
for classification_dataset in classification_dataset_names:
X, y = fetch_data(classification_dataset, return_X_y=True)
train_X, test_X, train_y, test_y = train_test_split(X, y)
logit = LogiExcerpt of 6,628 characters
Read on GitHub126
96
30
Randy Olson · Goodeye Labs
23
18
10
5
4
4
4
4
2
2
1
1
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:3500e654c0974a85, desc:datasets