JuliaAI / JuliaAI/MLJScikitLearnInterface.jl

How do we include python documentation in doc-strings?

Open
#37 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Julia
Stars
14
Forks
8
PR merge metrics
No merged PRs in 30d

Description

Once you import a python model using Sckitlearn.jl the documentation is available:

julia> @sk_import linear_model: Lasso
PyObject <class 'sklearn.linear_model._coordinate_descent.Lasso'>

help?> Lasso
search: Lasso LassoRegressor LassoCVRegressor LassoLarsRegressor LassoLarsICRegressor LassoLarsCVRegressor

Linear Model trained with L1 prior as regularizer (aka the Lasso)

    The optimization objective for Lasso is::

        (1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1

...

However, we do not want using MLJScikitLearnInterface to generate every python model to get this documentation, for inclusion in MLJ model docstrings. (Currently, the python objects are only generated at run time, when someone calls fit on the MLJ model; see here). So I guess we generate this documentation separately and have __init__ load it in? Then there is the problem of synchronisation. Can julia artefacts help here?

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/macros.jl around line 141 to understand when Python objects are generated at runtime. Investigate how init and Julia artefacts could load separately generated documentation, and determine how synchronization would work. Done means MLJ model docstrings include the Python documentation without importing every model during using.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia, python, scikit-learn
Domain
documentation, machine-learning
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.