Giter Club home page Giter Club logo

evalml's People

Contributors

angela97lin avatar azulgarza avatar bchen1116 avatar christopherbunn avatar chukarsten avatar cp2boston avatar ctduffy avatar dependabot[bot] avatar dsherry avatar eccabay avatar freddyaboulton avatar github-actions[bot] avatar gsheni avatar harshvardhanb25 avatar jeff-hernandez avatar jeremyliweishih avatar jpcarroll avatar kmax12 avatar machinefl avatar michaelfu512 avatar ozzied avatar parthivnaresh avatar petejanuszewski1 avatar remyogasawara avatar rwedge avatar sharshofski avatar simha104 avatar tamargrey avatar thehomebrewnerd avatar tyler3991 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

evalml's Issues

Improve detecting features with label leakage

Add functionality to check if any of the features are highly correlated with the target.

It can be a standalone function

import evalml

evalml.detect_label_leakage(X, y, threshold=.85)

this returns dictionary of features with correlations greater than or equal to threshold. threshold could default to .9.

{
"feature_1": .9,
"feature_2:  .95,
"feature_3": 1.0
}

By default, the automated pipeline search can make this check and raise warning. Can be turned off like this

evalml.AutoClassifer(detect_label_leakage=False)

Standardize Input as pd

Currently we do not standardize input as pandas DataFrames or Series. FraudCost.decision_function breaks when getting passed an np.array instead.

Implement Test Suite

Expand testing architecture to encompass multiple tests

  • Design testing suite
  • Implement for a small number of datasets

Ability to save/load AutoML objects

There is a save_pipeline function but no save_classifier function

It'd be nice to be able to save classifiers or let pipelines store more info so describe_pipeline would be possible with just the saved pipeline

Performance Testing for EvalML

As we flesh out functionality for EvalML, it will be imperative to monitor performance across test datasets to ensure regressions do not occur as we continue to develop.

Metrics to consider:

  • Time to run
  • Performance metrics (R2/Acc/etc.)
  • Variance of pipelines

Datasets to consider:
https://www.openml.org/home

Improve describe_pipeline API

Right now you have to do AutoClassifier.describe_pipeline(id), but it's more intuitive to be able to do AutoClassifier.get_pipeline(id).describe() or AutoClassifier.best_pipeline.describe()?

The main issue right now is that the results of fitting and cross validating the pipeline are on the AutoClassifier object rather than the pipeline object.

Improve hyperparameter organization

Right now all parameters specified at one level for the whole pipeline. We should break up parameters by step of the pipeline.

This could also be used to improve the output of describe_pipeline

Automatically Infer Multiclass

Currently we require users to pass in if the classification task is multiclass or binary. However, we could infer from the provided objective if the user intended for the task to be multiclass. Therefore, we should decide if we should automatically infer multiclass=True, raise an error/warning, or something else.

Add plot for the best performance by iteration count

This can inform the user how much continuing to run the search process is improving pipeline performance.

A simple implementation would just be the line, but we could also superimpose a scatter plot all models searched

Add section on "Guardrails" provided by EvalML

  • Internal cross validation
    • User can provided their own
    • Warning in the output if there is a high CV variance
  • Internal holdout for learning the threshold
  • Make your own validation set when training the AutoClassifier
  • TODO: Add check for if a feature is 95% correlated with label

Change display of pipeline search progress

Current we show a progress bar that overwrites itself. This means at the end of the search it looks something like this

Testing LogisticRegression w/ imputation + scaling: 100%|██████████| 5/5 [00:13<00:00,  2.73s/it]

We've gotten feedback from users saying they'd like to see the history of the search as it progresses.

We should update output to show each of the models being searched

Add test for each pipeline

Right now we don't test each pipeline specifically.

We should add tests to make sure things like feature importance works for each one.

Basic Functionality

We prioritized some functionality to get the first release of EvalML out the door. Here is some functionality that we should focus on including next

Support Categorical Encodings

Supporting Categorical Encodings will be broken down to the following steps.

  1. Create preliminary test case and raise relevant errors.
  2. Creating design and testing plan
  3. Implement.

Document Release Process

• add a PR bumping the version
• tag a release on github
• make sure all changes in are in the change log
• run integration tests
• use release tools to release to customers
• anything needed to get the documentation update (potentially)

Add Units For Custom Objectives

Currently users view the score of a custom objective as a raw number. Maybe it would make it more clear if units helped define the score. For example, in the Fraud objective it would be 25324 Dollars Lost.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.