Skip to content

Anomaly detection and forecasting for Ruby

License

Notifications You must be signed in to change notification settings

ankane/trend-ruby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Trend Ruby

Ruby client for Trend, the anomaly detection and forecasting API

Note: The hosted version is no longer available. See how to run the API on your own infrastructure.

Build Status

Installation

Add this line to your application’s Gemfile:

gem "trend"

And set the URL to the API:

Trend.url = "http://localhost:8000"

Anomaly Detection

Detect anomalies in a time series

# generate series
series = {}
date = Date.parse("2025-01-01")
28.times do
  series[date] = rand(100)
  date += 1
end

# add an anomaly on Apr 21
series[date - 8] = 999

Trend.anomalies(series)

Works great with Groupdate

series = User.group_by_day(:created_at).count
Trend.anomalies(series)

Forecasting

Get future predictions for a time series

series = {}
date = Date.parse("2025-01-01")
28.times do
  series[date] = date.wday
  date += 1
end

Trend.forecast(series)

Also works great with Groupdate

series = User.group_by_day(:created_at).count
Trend.forecast(series)

Specify the number of predictions to return

Trend.forecast(series, count: 3)

Correlation [experimental]

Get the correlation between two time series

Trend.correlation(series, series2)

History

View the changelog

Contributing

Everyone is encouraged to help improve this project. Here are a few ways you can help:

To get started with development:

git clone https://github.com/ankane/trend-ruby.git
cd trend-ruby
bundle install
bundle exec rake test

About

Anomaly detection and forecasting for Ruby

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages