Git Product home page Git Product logo

matrixlmnet.jl's Introduction

MatrixLMnet: Core functions for penalized estimation for matrix linear models.

CI codecov MIT license Stable Pkg Status

Package for L1 and L2 penalized estimation of matrix linear models (bilinear models for matrix-valued data).

MatrixLMnet depends on the MatrixLM package, which provides core functions for closed-form least squares estimates for matrix linear models.

See the paper, "Sparse matrix linear models for structured high-throughput data", and its reproducible code for details on the L1 penalized estimation.

Installation

The MatrixLMnet package can be installed by running:

using Pkg
Pkg.add("MatrixLMnet")

For the most recent version, use:

using Pkg
Pkg.add(url = "https://github.com/senresearch/MatrixLMnet.jl", rev="main")

Alternatively, you can also install MatrixLMnet from the julia REPL. Press ] to enter pkg mode again, and enter the following:

add MatrixLMnet

Contributing

We appreciate contributions from users including reporting bugs, fixing issues, improving performance and adding new features.

Questions

If you have questions about contributing or using MatrixLMnet package, please communicate with authors form github.

Citing MatrixLMnet

If you use MatrixLMnet in a scientific publication, please consider citing following paper:

Jane W. Liang. Śaunak Sen. "Sparse matrix linear models for structured high-throughput data." Ann. Appl. Stat. 16 (1) 169 - 192, March 2022. https://doi.org/10.1214/21-AOAS1444

@article{10.1214/21-AOAS1444,
author = {Jane W. Liang and Śaunak Sen},
title = {{Sparse matrix linear models for structured high-throughput data}},
volume = {16},
journal = {The Annals of Applied Statistics},
number = {1},
publisher = {Institute of Mathematical Statistics},
pages = {169 -- 192},
keywords = {ADMM, FISTA, gradient descent, Julia, Lasso, proximal gradient algorithms},
year = {2022},
doi = {10.1214/21-AOAS1444},
URL = {https://doi.org/10.1214/21-AOAS1444}
}

matrixlmnet.jl's People

Contributors

gregfa avatar learningmalanya avatar janewliang avatar chenhz1223 avatar sens avatar

Stargazers

Jacob Ulirsch avatar  avatar Diego Javier Zea avatar

Watchers

James Cloos avatar  avatar

matrixlmnet.jl's Issues

TagBot trigger issue

This issue is used to trigger TagBot; feel free to unsubscribe.

If you haven't already, you should update your TagBot.yml to include issue comment triggers.
Please see this post on Discourse for instructions and more details.

If you'd like for me to do this for you, comment TagBot fix on this issue.
I'll open a PR within a few hours, please be patient!

Enhance mlmnet function to support scalar inputs for lambdas and alphas parameters

Description

I want to suggest an enhancement for the mlmnet function. Currently, the function requires vector inputs for parameters lambdas and alphas, even when only a single value is used. This can lead to unnecessary errors and additional coding overhead.

Current Behavior

When I pass a scalar value to the mlmnet function, it throws an error. For example:

lambdas = [0.05, 0.5, 5]
alphas = [0, 0.5, 1]
mlmnet(dat, lambdas[1], alphas[1], method = "fista", addZIntercept = false, addXIntercept = false, isVerbose = false);

This results in an error due to the scalar inputs for lambdas and alphas. Currently, the correct syntax would be for example:

mlmnet(dat, [lambdas[1]], [alphas[1]], method = "fista", addZIntercept = false, addXIntercept = false, isVerbose = false);

Suggested Behavior

It would be more user-friendly if the function could accept scalars when only one value is needed.
This change would simplify the function's usage when only one value is being used for these parameters.

Benefits

  • Reduces coding overhead.
  • Prevents common errors related to parameter types.
  • Enhances usability for simpler use cases.

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.