Skip to main content

flight-ad

Codacy Badge

flight-ad is a Python package for anomaly detection in the aviation domain built on top of scikit-learn.

It provides:

  • An implementation of an anomaly detection pipeline;
  • A DataBinder object for loading and transforming the data within the pipeline on the fly;
  • A DataWrangler object for building a data wrangling pipeline;
  • A StatisticalLearner object for binding scikit-learn's pipelines and integrating them on the anomaly detection workflow;
  • Visualization tools for assessing potential anomalies;
  • Reporting tools for analyzing results;
  • Sample airplane sensor data, repackaged from NASA's DASHlink for the purpose of evaluating and advancing data mining capabilities that can be used to promote aviation safety;
  • Adaptations of machine learning algorithms, such as a DBSCAN implementation that calculates the hyperparameter epsilon from the input data.

Installation

The easiest way to install flight-ad is using pip from your virtual environment.

Directly from GitHub:

pip install git+https://github.com/coelhosilva/flight-ad.git

Examples

This is a sample usage of the package for constructing an anomaly detection pipeline. Beware that the sample dataset may take up roughly 1 GB in disk space.

from flight_ad.datasets import load_dashlink_bindings
from flight_ad.utils.data import DataBinder
from flight_ad.wrangling import DataWrangler
from wrangling_functions import preprocess, change_col, resample, select
from flight_ad.transformations import reshape_df_interspersed
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
from flight_ad.cluster import DBSCAN
from flight_ad.learn import FunctionTransformer
from flight_ad.learn import StatisticalLearner
from flight_ad.pipeline import AnomalyDetectionPipeline
from flight_ad.report import clustering_info, silhouette

# Binder
data_bindings = load_dashlink_bindings(download=True)
binder = DataBinder(data_bindings)

# Wrangler
wrangling_steps = [
    ('preprocess_flight', preprocess),
    ('resample_dataframe', resample),
    ('change_col', change_col),
    ('select_col', select)

]
wrangler = DataWrangler(wrangling_steps, memorize='change_col')

# Learner
learning_steps = {
    'preprocessing': [
        ('reshaper', FunctionEstimator(reshape_df_interspersed)),
        ('scaler', StandardScaler()),
        ('pca', PCA())
    ],
    'training': [
        ('dbscan', DBSCAN())
    ]
}
learner = StatisticalLearner(learning_steps, record='pca')

# Pipeline
ad_pipeline = AnomalyDetectionPipeline(binder, wrangler, learner)
ad_pipeline.fit()

# Results
labels, n_clusters, n_noise = clustering_info(learner.pipeline['dbscan'])
avg_silhouette, _ = silhouette(learner.partial_data['pca'], labels)

Package structure

TBD.

Dependencies

flight-ad requires:

  • Python (>=3.6)
  • NumPy
  • pandas
  • scikit-learn
  • matplotlib
  • tqdm

Contributions

We welcome and encourage new contributors to help test flight-ad and add new functionality. Any input, feedback, bug report or contribution is welcome.

If one wishes to contact the author, they may do so by emailing coelho@ita.br.

Citation

If you use flight-ad in a scientific publication, we would appreciate citations.

BibTex: TBD.

Citation string: TBD.

Release files for flight-ad 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flight-ad 0.0.1
File Size Uploaded
flight-ad-0.0.1.tar.gz 19.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for flight-ad 0.0.1
File Interpreter ABI Platform
flight_ad-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size:42.0 kB

Release files / flight-ad-0.0.1.tar.gz

Download URL flight-ad-0.0.1.tar.gz
Size 19.1 kB
Tags Source
SHA-256 checksum
How to use checksums
2ed1402bd6ddaa98a188358b5cc46269c6a1f8b0ec2630d438bc6dcef7b8f45d
BLAKE2b-256 checksum
How to use checksums
2146c21cfc4ec52118b197d43bb45044906c4590f56f41e036d79a6fda1e2bcd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.10

Release files / flight_ad-0.0.1-py3-none-any.whl

Download URL flight_ad-0.0.1-py3-none-any.whl
Size 23.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0803d69c0d5eb0718aa29e9d236ec6e6a62657140c2242c01c5a90d0511783a2
BLAKE2b-256 checksum
How to use checksums
bc4dad36e8aec05d8cefef30a742a0d21a54b86c395353debd67cedbc826df42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.10

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page