Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Rapid machine learning prototyping

Project Description
Ramp - Rapid Machine Learning Prototyping

Ramp is a python module for rapid prototyping of machine learning
solutions. It is essentially a [pandas](
wrapper around various python machine learning and statistics libraries
([scikit-learn](, [rpy2](, etc.),
providing a simple, declarative syntax for
exploring features, algorithms and transformations quickly and


**Why Ramp?**

* **Clean, declarative syntax**

No more hackish one-off spaghetti scripts!

* **Complex feature transformations**

Chain and combine features:
Interactions([Log('x1'), (F('x2') + F('x3')) / 2])
Reduce feature dimension:
DimensionReduction([F('x%d'%i) for i in range(100)], decomposer=PCA(n_components=3))
Incorporate residuals or predictions to blend with other models:
Residuals(config_model1) + Predictions(config_model2)
Any feature that uses the target ("y") variable will automatically respect the
current training and test sets.

* **Caching**

Ramp caches and stores on disk in fast HDF5 format (or elsewhere if you want) all features and models it
computes, so nothing is recomputed unnecessarily. Results are stored
and can be retrieved, compared, blended, and reused between runs.

* **Easy extensibility**

Ramp has a simple API, allowing you to plug in estimators from
scikit-learn, rpy2 and elsewhere, or easily build your own feature
transformations, metrics, feature selectors, reporters, or estimators.

## Quick start
[Getting started with Ramp: Classifying insults](

Or, the quintessential Iris example:

import pandas
from ramp import *
import urllib2
import sklearn
from sklearn import decomposition

# fetch and clean iris data from UCI
data = pandas.read_csv(urllib2.urlopen(
data = data.drop([149]) # bad line
columns = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class']
data.columns = columns

# all features
features = [FillMissing(f, 0) for f in columns[:-1]]

# features, log transformed features, and interaction terms
expanded_features = (
features +
[Log(F(f) + 1) for f in features] +
F('sepal_width') ** 2,

# Define several models and feature sets to explore,
# run 5 fold cross-validation on each and print the results.
# We define 2 models and 4 feature sets, so this will be
# 4 * 2 = 8 models tested.


# Try out two algorithms

# and 4 feature sets

# Feature selection
# use random forest's importance to trim
target=AsFactor('class'), # target to use
n_keep=5, # keep top 5 features

# Reduce feature dimension (pointless on this dataset)

# Normalized features
[Normalize(f) for f in expanded_features],

## Status
Ramp is very alpha currently, so expect bugs, bug fixes and API changes.

## Requirements
* Numpy
* Scipy
* Pandas
* PyTables
* Sci-kit Learn

## Author
Ken Van Haren. Email with feedback/questions:
Release History

Release History

This version
History Node


History Node


History Node


Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
ramp-0.1.4.tar.gz (31.6 kB) Copy SHA256 Checksum SHA256 Source Jan 31, 2013

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting