question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Automated learning algorithm overview

See original GitHub issue

Contributors: @fkiraly, @mloning, @afzal442, @abdulelahsm, @sparkingdark

idea:

web data base for learning algorithms with fields for:

  • class name,
  • scitype (e.g. forecaster, classifier, etc.),
  • original contributor,
  • maintainer/current code owner,
  • link to API reference,

optional additional fields:

  • links to literature references,
  • package dependency,
  • code health/status (under development, mature, etc),
  • link to example notebooks

use cases:

  • search for suitable algorithms given a problem
  • search for information about a given algorithm

reference example from mlr3 library:

related code in sktime:

from sktime.utils import all_estimators
all_estimators(estimator_types="classifier")

https://github.com/alan-turing-institute/sktime/blob/ee7a06843a44f4aaec7582d847e36073a9ab0566/sktime/utils/__init__.py#L16

questions:

notes:

  • make clear that not all algorithm are reference implementations, even though we link them with the original research paper, some may be re-implemented, adapted or interfaced from other packages
  • encourage people to ping algorithm maintainers directly when they have questions about algorithm using the GitHub user name
  • Adding col for maintainer using GH

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:38 (13 by maintainers)

github_iconTop GitHub Comments

3reactions
tobyhodgescommented, May 18, 2021

It looks like the format of the __author__ fields are not standardised across the different estimators in sktime: some are lists of multiple names (e.g. lines 1&2 above), some are lists with only one name (e.g. lines 3-5 above) and some are strings with a single name (e.g. line 6 above). Furthermore, we noticed that a few individual estimator functions have their own __author__ field, but that it is more common for the __author__ to be defined at the module level i.e. one __author__ for all the estimators in a given file. It might be a good idea for the sktime team to discuss this internally and agree on a strategy and format to use for author info across the entire library.

Anyway, for now I suggest you might use something like the below to handle the different cases and get some nicely written author info in your table:

from sktime.utils import all_estimators
from importlib import import_module
import csv

def process_author_info(author_info):
    '''turn a list of author names into a string. 
       Multiple author names will be separated by a comma, 
       with the final name always preceded by "&"'''
    if isinstance(author_info, list):
        if len(author_info) > 1:
            return ', '.join(author_info[:-1]) + ' & ' + author_info[-1]
        else:
            return author_info[0]
    else:
        return author_info

with open("author_list.csv", "w+", newline='') as csvfile:
     write = csv.writer(csvfile, delimiter=",")
     write.writerow(["Class_Name","Class_ID", "Authors"])
     for modname, modclass in all_estimators():
         try:
             write = csv.writer(csvfile, delimiter = ",")
             write.writerow([modname,modclass, 
                             process_author_info(modclass.__author__)]) # <--- apply the function here
         except AttributeError:
             try:
                 write = csv.writer(csvfile, delimiter = ",")
                 write.writerow([modname,modclass, 
                                 process_author_info(import_module(modclass.__module__).__author__)]) # <--- and here

             except AttributeError:
                 write = csv.writer(csvfile, delimiter = ",")
                 write.writerow([modname,modclass, "no author info"])

For the above example output, this gives:

| Class_Name                                | Class_ID                                                                                             | Authors                                                                               |
| ----------------------------------------- | ---------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| ARIMA                                     | <class 'sktime.forecasting.arima.ARIMA'>                                                             | Markus Löning & Hongyi Yang                                                           |
| AutoARIMA                                 | <class 'sktime.forecasting.arima.AutoARIMA'>                                                         | Markus Löning & Hongyi Yang                                                           |
| AutoCorrelationTransformer                | <class 'sktime.transformations.series.acf.AutoCorrelationTransformer'>                               | Afzal Ansari                                                                          |
| AutoETS                                   | <class 'sktime.forecasting.ets.AutoETS'>                                                             | Hongyi Yang                                                                           |
| BATS                                      | <class 'sktime.forecasting.bats.BATS'>                                                               | Martin Walter                                                                         |
| BOSSEnsemble                              | <class 'sktime.classification.dictionary_based._boss.BOSSEnsemble'>                                  | Matthew Middlehurst                                                                   |

2reactions
tobyhodgescommented, Jul 21, 2021

This looks so great! Excellent work folks 🚀 It was a pleasure to be (briefly) involved in this project 🙌

Read more comments on GitHub >

github_iconTop Results From Across the Web

Machine Learning Algorithm Overview | ML Research Lab
Machine learning algorithm classification · K — proximity algorithm (kNN) · Learning vectorization (LVQ) · Self-Organizing Mapping Algorithm (SOM) ...
Read more >
A Tour of Machine Learning Algorithms
This tour of machine learning algorithms was intended to give you an overview of what is out there and some ideas on how...
Read more >
Machine Learning Algorithm - an overview - ScienceDirect.com
An ML algorithm, which is a part of AI, uses an assortment of accurate, probabilistic, and upgraded techniques that empower computers to pick...
Read more >
Top 10 Machine Learning Algorithms You Need to Know in 2023
What‌ ‌Are‌ ‌The‌ ‌10 ‌Popular‌ ‌Machine‌ ‌Learning Algorithms?‌ · Linear regression · Logistic regression · Decision tree · SVM algorithm · Naive ...
Read more >
Commonly Used Machine Learning Algorithms | Data Science
Commonly used Machine Learning Algorithms (with Python and R Codes) · 3 types of Machine Learning Algorithms · 1. Linear Regression · 2....
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found