How to Find and Download Datasets from the UCI Machine Learning Repository
Updated
The UCI Machine Learning Repository (archive.ics.uci.edu) is a public archive of datasets for machine learning research and practice. You can find a dataset by browsing the repository's dataset list or searching it, open the dataset's detail page to check its task type, instance count, and feature count, then download the data files from that page. The repository currently maintains 689 datasets, according to its homepage. This guide covers the practical steps, what to verify before downloading, and the common snags.
Finding a dataset
The repository offers two main paths, and they suit different situations.
Browse the list when you want to see what is available or need a dataset that matches a broad category. The homepage surfaces popular datasets directly, which is useful if you want something well-known and well-documented.
Search when you already know roughly what you need — a topic, a task type, or a name.
Popular datasets shown on the homepage give a sense of the range:
| Dataset | Task type | Instances | Features |
|---|---|---|---|
| Iris | Classification | 150 | 4 |
| Heart Disease | Classification | 303 | 13 |
| Wine Quality | Classification, Regression | 4.9K | 12 |
| Bank Marketing | Classification | 45.21K | 17 |
| Breast Cancer Wisconsin (Diagnostic) | Classification | 569 | 30 |
| Student Performance | Classification, Regression | 649 | 33 |
Newer additions include datasets such as Amazon Product and Google Locations Reviews (Regression, 3.06M instances, 2 features) and HLS-CMDS: Heart and Lung Sounds Dataset (535 recordings of heart and lung sounds captured with a digital stethoscope from a clinical manikin).
Reading a dataset detail page
Before downloading, open the dataset's detail page. This is where you confirm whether the dataset actually fits your task. Check these fields:
- Task type — classification, regression, clustering, or a combination. A dataset labeled "Classification, Regression" supports both framings; one labeled only "Classification" does not give you a continuous target.
- Instance count — how many rows you get. This drives memory and training time. A 150-instance dataset like Iris is fine for a quick experiment; a 3.06M-instance dataset is not.
- Feature count — how many columns, which tells you the input dimensionality.
- Description and provenance — who created it, when, and for what purpose. Iris, for example, is described as "a small classic dataset from Fisher, 1936. One of the earliest known datasets used for evaluating classification methods." That context matters for how you interpret results.
Downloading the data
From the dataset detail page, download the data files directly. The repository also supports programmatic access via API, which is the better route if you are pulling data into a script or notebook and want reproducibility.
A practical workflow:
- Locate the dataset by browsing or searching.
- Open its detail page and confirm task type, instance count, and feature count match your needs.
- Download the data file, or fetch it through the API if you are working in code.
- Load the file and verify the shape matches what the detail page stated — a quick sanity check that the download completed and the file parsed correctly.
What to check before you commit
Licensing and terms of use. Each dataset carries its own terms. Do not assume a dataset is free to redistribute just because it is downloadable. Check the dataset's page for its license or usage conditions, especially if you plan to publish, redistribute, or use it commercially.
Provenance and age. Some datasets are decades old (Iris dates to 1936). Old data can carry outdated assumptions, sampling biases, or label conventions that no longer match current practice. Read the description rather than treating the numbers as neutral.
Size against your environment. Instance and feature counts on the detail page are your early warning. A dataset with millions of instances may not fit comfortably in memory on a laptop.
Common snags
- Task type mismatch. Downloading a classification dataset when you need a continuous target — check the task type field first.
- Assuming a dataset is unlicensed or unrestricted. The repository does not present every dataset under one uniform license; verify per dataset.
- Skipping the description. The provenance often explains quirks in the data that are otherwise confusing later.
- Manual downloads breaking reproducibility. If you are doing serious work, use the API so your data retrieval is scripted and repeatable.
Where to start
If you are new to the repository, start with a small, well-documented dataset like Iris (150 instances, 4 features, classification) to confirm your download and loading pipeline works. Then move to a dataset that matches your actual task. If you need something larger or more current, browse the new datasets section or search by task type.