An Integrated Experimental Platform for time series data anomaly detection.

Overview

Curve

Sorry to tell contributors and users. We decided to archive the project temporarily due to the employee work plan of collaborators.

There are no more official support. Collaborators may offer a bit personal support.

Curve is an open-source tool to help label anomalies on time-series data. The labeled data (also known as the ground truth) is necessary for evaluating time-series anomaly detection methods. Otherwise, one can not easily choose a detection method, or say method A is better than method B. The labeled data can also be used as the training set if one wants to develop supervised learning methods for detection.

Curve is designed to support plugin, so one can equip Curve with customized and powerful functions to help label effectively. For example, a plugin to identify anomalies which are similar to the one you labeled, so you don't have to search them through all the data.

Curve is originally developed by Baidu and Tsinghua NetMan Lab.

Getting Started

Run and stop

Simply use control.sh to start or stop Curve.

./control.sh start
./control.sh stop

Server will blind 8080 by default, you can change it in ./api/uwsgi.ini.

The first start will take a while because of the compilation. If you pull updates from github, Rebuild will be triggered during start or reload.

Data format

You can load a CSV file into Curve. The CSV should have the following format

  • First column is the timestamp
  • Second column is the value
  • Third column (optional) is the label. 0 for normal and 1 for abnormal.

The header of CSV is optional, like timestamp,value,label.

Some examples of valid CSV

  • With a header and the label column
timestamp value label
1476460800 2566.35 0
1476460860 2704.65 0
1476460920 2700.05 0
  • Without the header
1476460800 2566.35 0
1476460860 2704.65 0
1476460920 2700.05 0
  • Without the header and the label column
1476460800 2566.35
1476460860 2704.65
1476460920 2700.05
  • Timestamp in human-readable format
20161015000000 2566.35
20161015000100 2704.65
20161015000200 2700.05

Additional

Recommend environments

For PC

Darwin(Mac OSX) or Linux(Ubuntu, CentOS, Arch, etc.) is Recommended

  • Dependency:
    • Python 2.7.3+/3.1.2+(Python 3 does not seem to be supported as of now.), if python is not owned by current user, virtualenv is required
    • Node.js 4.7.0+
    • gcc, pip and npm path is correctly set

Control Scripts for Windows is under development

For VPS like EC2

Minimal

  • Server: 1 CPU, 512MB RAM, 5GB Storage
  • System: Ubuntu10.04LTS or CentOS5.5

Swap is required during build

Recommend

  • Server: 1 CPU, 1GB RAM, 10GB Storage
  • System: Ubuntu16.04LTS or CentOS7

Backend Unit Test

cd api && pytest

Plugin dir

api/curve/v1/plugins

GitHub oauth

GitHub Oauth is supported, please put a configuration file into api/curve/auth/github_oauth.json like this:

{
  "id": "your github application Client ID",
  "secret": "your application Client Secret"
}

Doc:Creating-An-Github-Oauth-App

Change Log

  • 2018-08-07 [Function Optimization]: Refactoring code
Comments
  • can't load CSV file

    can't load CSV file

    i want to try your system with a labeled csv file , but it just show can't "Curve upload failed ,Please try again ", so what is the problem ? and i want to modify your system with more Input Source(like TimeSeriesDatabase , are you guys welcome on this? if we are done , we will give the PR to you ) , hope that you can reply why the problem show and how to fix it .

    opened by ray1888 8
  • [Solution] TypeError: generate() got an unexpected keyword argument 'swagger'

    [Solution] TypeError: generate() got an unexpected keyword argument 'swagger'

    When run the command "./control.sh start" to start the service, there exists the error message in the console. I want to know how to fix it or what environment should I install, thanks. Current environment is Mac OS 10.14.2, python 3.6.3, Node.js 6.4.1.

    TODO 
    opened by FudanYuan 5
  • the latest version can't compile

    the latest version can't compile

    when i compile the latest version ,i found an error

    "Module not found: Error: Can't resolve 'react-icons/lib/fa/search' in '/anaconda3/envs/python3/Curve/web/src/index/component'"

    my python version is Python 3.6.4 :: Anaconda, Inc, i don't konw what happen and can't find the log file. please help me.

    bug 
    opened by sure0000 5
  • Incompatible between conda and virtualenv

    Incompatible between conda and virtualenv

    I find that if your computer installed Anoconda, the build process will report errors. The solution is delete the Anoconda folder, when the environment build is finished, then restore the Anoconda folder.

    enhancement 
    opened by nengwenzhao 4
  • Error: Request failed with status code 500

    Error: Request failed with status code 500

    Hi - I have got the app running. But uploading a csv fails with the error Error: Request failed with status code 500

    The page shows "Uploading and pre-processing, please wait.."

    opened by navneeth 3
  • Incorrect time series naming from first dotted element of the uploaded csv file

    Incorrect time series naming from first dotted element of the uploaded csv file

    Curve seems to be naming the time series incorrectly, based on the first dotted element in the csv filename. I uploaded a csv named stats.statsd.bad_lines_seen.20161110.ts.value.csv and the Curve web app presented it as stats. I tested this further by uploading a file named stats.graphite-dev-2.vda.ioInProgress.baidu_curve.csv and was presented with the error:

    stats upload failed...Can't upload file with the same name, please try again

    I then renamed the file to stats-graphite-dev-2.vda.ioInProgress.baidu_curve.csv which did upload to Curve, but named the time series stats-graphite-dev-2

    It would probably be better if Curve just named the time series based on the filename, excluding the .csv extension.

    opened by earthgecko 3
  • Interactive Labeling

    Interactive Labeling

    Hey guys,

    May I ask whether it's possible to label on single point as an outlier? I've tried many ways like selecting relatively narrow range on the time series but it looks like minimum 2 points are labeled every time.

    Was I doing something incorrectly?

    Thanks for helping in advance.

    tmp
    opened by Dahlia7 2
  • [Solution] Left preview delete button does not work

    [Solution] Left preview delete button does not work

    Clicking triple dots at the right side of the specific data in left side-bar, then clicking 'delete'. In the pop-up window, the red 'delete' button does not work.

    Raise error : Uncaught TypeError: this.props.showLoading is not a function at e.value (dialog.js:58) at Object.i (ReactErrorUtils.js:24) at a (EventPluginUtils.js:83) at Object.s [as executeDispatchesInOrder] (EventPluginUtils.js:106) at p (EventPluginHub.js:41) at m (EventPluginHub.js:52) at Array.forEach (<anonymous>) at i (forEachAccumulated.js:22) at Object.processEventQueue (EventPluginHub.js:252) at i (ReactEventEmitterMixin.js:15)

    TODO 
    opened by zishuow 2
  • _OLD_VIRTUAL_PATH: unbound variable

    _OLD_VIRTUAL_PATH: unbound variable

    Hi all,

    When i deploy curve venv, i encounter the following problem: ppt@ppt-virtual-machine:~/jyy/Curve-master$ sudo ./control.sh start

    local Curve version: none

    ============================================================= deploy venv... New python executable in /home/ppt/jyy/Curve-master/venv/bin/python Installing setuptools, pip...done. /home/ppt/jyy/Curve-master/venv/bin/activate: 行 8: _OLD_VIRTUAL_PATH: 未绑定的变量

    How to fix it ?

    Thanks!

    opened by xiandanchaoren 2
  • Can not find ./log/uwsgi.log

    Can not find ./log/uwsgi.log

    api deployed.

    start Curve... [uWSGI] getting INI configuration from uwsgi.ini Curve started. open("./log/uwsgi.log"): No such file or directory [core/logging.c line 288]

    I am using python2.7.6 ubuntu14.04LTS

    bug good first issue 
    opened by FlowingSunshine 2
  • Bugs found during trial

    Bugs found during trial

    • Data more than I have selected is labelled as anomaly
    • Buttons cancel the label, export, delete and some non-texted interactive functions are inactive
    • Value of anomaly percent does not change according to the labelled curves
    • Some of the curves I have labelled lost after refreshing @ldp12416 Enjoy
    bug 
    opened by Forec 2
  • Bump ini from 1.3.4 to 1.3.7 in /web

    Bump ini from 1.3.4 to 1.3.7 in /web

    Bumps ini from 1.3.4 to 1.3.7.

    Commits
    Maintainer changes

    This version was pushed to npm by isaacs, a new releaser for ini since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump http-proxy from 1.16.2 to 1.18.1 in /web

    Bump http-proxy from 1.16.2 to 1.18.1 in /web

    Bumps http-proxy from 1.16.2 to 1.18.1.

    Release notes

    Sourced from http-proxy's releases.

    Long overdue maintenance

    Due to some great contributions I'm happy to announce a new release of http-proxy containing numerous bug fixes, feature additions and documentation improvements. Thanks to all who contributed for their patience and willingness to contribute despite perceived stagnation in activity in the project. I welcome all contributions and those who are interested in getting more involved with the project. Below I will highlight the changes that landed in the latest version but you can find the full diff of the changes in nodejitsu/node-http-proxy#1251

    • Add option to rewrite path of set-cookie headers. @swillis12
    • Add option for overriding http METHOD when proxying request @AydinChavez
    • Feature: selfHandleResponse for taking responsibility in returning your own response when listening on the proxyRes event. @cpd0101 @guoxiangyang
    • Add followRedirects option @n30n0v
    • Document timeout option @jlaamanen
    • Fix documentation typos @carpsareokiguess
    • Document buffer option @jonhunter1977
    • Include websocket non-upgrade response instead of just closing the socket. Allows auth schemes to be possible with websocket proxying. @Tigge
    • Stop using the writeHead method explicitly and let node handle it internally to prevent thrown errors @jakefurler
    • Be more defensive in handling of detecting response state when proxying @thiagobustamante
    Changelog

    Sourced from http-proxy's changelog.

    v1.18.1 - 2020-05-17

    Merged

    1.18.0 - 2019-09-18

    Merged

    Commits

    • [dist] New test fixtures. 7e4a0e5
    • [dist] End of an era. a9b09cc
    • [dist] Version bump. 1.18.0 9bbe486
    • [fix] Latest versions. 59c4403
    • [fix test] Update tests. dd1d08b
    • [dist] Update dependency ws to v3 [SECURITY] b00911c
    • [dist] .gitattributes all the things. fc93520
    • [dist] Regenerate package-lock.json. 16d4f8a

    1.17.0 - 2018-04-20

    Merged

    Commits
    • 9b96cd7 1.18.1
    • 335aeeb Skip sending the proxyReq event when the expect header is present (#1447)
    • dba3966 Remove node6 support, add node12 to build (#1397)
    • 9bbe486 [dist] Version bump. 1.18.0
    • 6e4bef4 Added in auto-changelog module set to keepachangelog format (#1373)
    • d056241 fix 'Modify Response' readme section to avoid unnecessary array copying (#1300)
    • 244303b Fix incorrect target name for reverse proxy example (#1135)
    • b4028ba Fix modify response middleware example (#1139)
    • 77a9815 [dist] Update dependency async to v3 (#1359)
    • c662f9e Fix path to local http-proxy in examples. (#1072)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump handlebars from 4.0.10 to 4.7.6 in /web

    Bump handlebars from 4.0.10 to 4.7.6 in /web

    Bumps handlebars from 4.0.10 to 4.7.6.

    Changelog

    Sourced from handlebars's changelog.

    v4.7.6 - April 3rd, 2020

    Chore/Housekeeping:

    Compatibility notes:

    • Restored Node.js compatibility

    Commits

    v4.7.5 - April 2nd, 2020

    Chore/Housekeeping:

    • Node.js version support has been changed to v6+ Reverted in 4.7.6

    Compatibility notes:

    • Node.js < v6 is no longer supported Reverted in 4.7.6

    Commits

    v4.7.4 - April 1st, 2020

    Chore/Housekeeping:

    Compatibility notes:

    • No incompatibilities are to be expected

    Commits

    v4.7.3 - February 5th, 2020

    Chore/Housekeeping:

    • #1644 - Download links to aws broken on handlebarsjs.com - access denied (@Tea56)
    • Fix spelling and punctuation in changelog - d78cc73

    Bugfixes:

    • Add Type Definition for Handlebars.VERSION, Fixes #1647 - 4de51fe
    • Include Type Definition for runtime.js in Package - a32d05f

    Compatibility notes:

    Commits
    Maintainer changes

    This version was pushed to npm by erisds, a new releaser for handlebars since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump highcharts from 5.0.13 to 7.2.2 in /web

    Bump highcharts from 5.0.13 to 7.2.2 in /web

    Bumps highcharts from 5.0.13 to 7.2.2.

    Commits
    Maintainer changes

    This version was pushed to npm by torsteinhonsi, a new releaser for highcharts since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump elliptic from 6.4.0 to 6.5.3 in /web

    Bump elliptic from 6.4.0 to 6.5.3 in /web

    Bumps elliptic from 6.4.0 to 6.5.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Releases(v0.2.5beta)
Owner
Baidu
Baidu Open Source Projects
Baidu
A probabilistic programming library for Bayesian deep learning, generative models, based on Tensorflow

ZhuSuan is a Python probabilistic programming library for Bayesian deep learning, which conjoins the complimentary advantages of Bayesian methods and

Tsinghua Machine Learning Group 2.2k Dec 28, 2022
Spaghetti: an open-source Python library for the analysis of network-based spatial data

pysal/spaghetti SPAtial GrapHs: nETworks, Topology, & Inference Spaghetti is an open-source Python library for the analysis of network-based spatial d

Python Spatial Analysis Library 203 Jan 03, 2023
Tkinter Izhikevich Neuron Model With Python

TKINTER IZHIKEVICH NEURON MODEL WITH PYTHON Hodgkin-Huxley Model It is a mathematical model for the generation and transmission of action potentials i

Rabia KOÇ 8 Jul 16, 2022
small package with utility functions for analyzing (fly) calcium imaging data

fly2p Tools for analyzing two-photon (2p) imaging data collected with Vidrio Scanimage software and micromanger. Loading scanimage data relies on scan

Hannah Haberkern 3 Dec 14, 2022
Weather Image Recognition - Python weather application using series of data

Weather Image Recognition - Python weather application using series of data

Kushal Shingote 1 Feb 04, 2022
Anomaly Detection with R

AnomalyDetection R package AnomalyDetection is an open-source R package to detect anomalies which is robust, from a statistical standpoint, in the pre

Twitter 3.5k Dec 27, 2022
Methylation/modified base calling separated from basecalling.

Remora Methylation/modified base calling separated from basecalling. Remora primarily provides an API to call modified bases for basecaller programs s

Oxford Nanopore Technologies 72 Jan 05, 2023
This project is the implementation template for HW 0 and HW 1 for both the programming and non-programming tracks

This project is the implementation template for HW 0 and HW 1 for both the programming and non-programming tracks

Donald F. Ferguson 4 Mar 06, 2022
yt is an open-source, permissively-licensed Python library for analyzing and visualizing volumetric data.

The yt Project yt is an open-source, permissively-licensed Python library for analyzing and visualizing volumetric data. yt supports structured, varia

The yt project 367 Dec 25, 2022
Port of dplyr and other related R packages in python, using pipda.

Unlike other similar packages in python that just mimic the piping syntax, datar follows the API designs from the original packages as much as possible, and is tested thoroughly with the cases from t

179 Dec 21, 2022
Python data processing, analysis, visualization, and data operations

Python This is a Python data processing, analysis, visualization and data operations of the source code warehouse, book ISBN: 9787115527592 Descriptio

FangWei 1 Jan 16, 2022
A Python adaption of Augur to prioritize cell types in perturbation analysis.

A Python adaption of Augur to prioritize cell types in perturbation analysis.

Theis Lab 2 Mar 29, 2022
apricot implements submodular optimization for the purpose of selecting subsets of massive data sets to train machine learning models quickly.

Please consider citing the manuscript if you use apricot in your academic work! You can find more thorough documentation here. apricot implements subm

Jacob Schreiber 457 Dec 20, 2022
BigDL - Evaluate the performance of BigDL (Distributed Deep Learning on Apache Spark) in big data analysis problems

Evaluate the performance of BigDL (Distributed Deep Learning on Apache Spark) in big data analysis problems.

Vo Cong Thanh 1 Jan 06, 2022
Functional tensors for probabilistic programming

Funsor Funsor is a tensor-like library for functions and distributions. See Functional tensors for probabilistic programming for a system description.

208 Dec 29, 2022
This module is used to create Convolutional AutoEncoders for Variational Data Assimilation

VarDACAE This module is used to create Convolutional AutoEncoders for Variational Data Assimilation. A user can define, create and train an AE for Dat

Julian Mack 23 Dec 16, 2022
Evidence enables analysts to deliver a polished business intelligence system using SQL and markdown.

Evidence enables analysts to deliver a polished business intelligence system using SQL and markdown

915 Dec 26, 2022
Exploratory Data Analysis for Employee Retention Dataset

Exploratory Data Analysis for Employee Retention Dataset Employee turn-over is a very costly problem for companies. The cost of replacing an employee

kana sudheer reddy 2 Oct 01, 2021
Data collection, enhancement, and metrics calculation.

l3_data_collection Data collection, enhancement, and metrics calculation. Summary Repository containing code for QuantDAO's JDT data collection task.

Ruiwyn 3 Dec 23, 2022
An extension to pandas dataframes describe function.

pandas_summary An extension to pandas dataframes describe function. The module contains DataFrameSummary object that extend describe() with: propertie

Mourad 450 Dec 30, 2022