UBC-MDS / software-review-2024

0 stars 0 forks source link

Group 22 - linear regression with coordinate descent algorithm #19

Open andyzhangstat opened 5 months ago

andyzhangstat commented 5 months ago

Submitting Author: Andy Zhang @andyzhangstat All current maintainers: (@Jing-19, @fohy24) Package Name: lr_cd One-Line Description of Package: A better implementation of linear regression in Python! Repository Link: https://github.com/UBC-MDS/lr_cd Version submitted: https://github.com/UBC-MDS/lr_cd/releases/tag/v0.3.0 Editor: Tiffany Timbers Reviewer 1: LI Rachel Reviewer 2: Wang Doris Reviewer 3: Mahmood Waleed Archive: TBD JOSS DOI: TBD Version accepted: TBD Date accepted (month/day/year): TBD


Code of Conduct & Commitment to Maintain Package

Description

Our package consists of three major components: Simulated data generation Coordinate descent algorithm Visualization of data and the fitted linear regression line

Scope

Domain Specific & Community Partnerships

- [ ] Geospatial
- [ ] Education
- [ ] Pangeo

Community Partnerships

If your package is associated with an existing community please check below:

[^1]: Please fill out a pre-submission inquiry before submitting a data visualization package.

Technical checks

For details about the pyOpenSci packaging requirements, see our packaging guide. Confirm each of the following by checking the box. This package:

Publication Options

JOSS Checks - [ ] The package has an **obvious research application** according to JOSS's definition in their [submission requirements][JossSubmissionRequirements]. Be aware that completing the pyOpenSci review process **does not** guarantee acceptance to JOSS. Be sure to read their submission requirements (linked above) if you are interested in submitting to JOSS. - [ ] The package is not a "minor utility" as defined by JOSS's [submission requirements][JossSubmissionRequirements]: "Minor ‘utility’ packages, including ‘thin’ API clients, are not acceptable." pyOpenSci welcomes these packages under "Data Retrieval", but JOSS has slightly different criteria. - [ ] The package contains a `paper.md` matching [JOSS's requirements][JossPaperRequirements] with a high-level description in the package root or in `inst/`. - [ ] The package is deposited in a long-term repository with the DOI: *Note: JOSS accepts our review as theirs. You will NOT need to go through another full review. JOSS will only review your paper.md file. Be sure to link to this pyOpenSci issue when a JOSS issue is opened for your package. Also be sure to tell the JOSS editor that this is a pyOpenSci reviewed package once you reach this step.*

Are you OK with Reviewers Submitting Issues and/or pull requests to your Repo Directly?

This option will allow reviewers to open smaller issues that can then be linked to PR's rather than submitting a more dense text based review. It will also allow you to demonstrate addressing the issue via PR links.

Confirm each of the following by checking the box.

Please fill out our survey

P.S. Have feedback/comments about our review process? Leave a comment here

Editor and Review Templates

The editor template can be found here.

The review template can be found here.

Rachel0619 commented 5 months ago

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

Documentation

The package includes all the following forms of documentation:

Readme file requirements The package meets the readme requirements below:

The README should include, from top to bottom:

NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)

Usability

Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider whether:

Functionality

For packages also submitting to JOSS

Note: Be sure to check this carefully, as JOSS’s submission requirements and scope differ from pyOpenSci’s in terms of what types of packages are accepted.

The package contains a paper.md matching JOSS’s requirements with:

Final approval (post-review)

Estimated hours spent reviewing: 2 hours


Review Comments

Overall, the package is well built and documented. Installation succeed as instructed and all the functions run properly without throwing any error. Test coverage are 100%. In particular, you did a really great job when you validate your function with synthetic dataset, diabetes dataset and also scikit-learn, which make your package much more robust and trustworthy.

There are a few things you might want to tweak:

  1. You may want to show the results after calling the synthetic data generation function in your readthedocs, i.e show how the generated X and y look like.
  2. You may want to change dependencies in the project.toml file prefixed with "^" to ">=" so that your package can work with for example python version 4.0.0 and above.
  3. You may want to add badges for Continuous integration and test coverage, python versions supported and repostatus.org
  4. You may want to use github issues more often and assign labels to each of them
MDSFusionist commented 5 months ago

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

Documentation

The package includes all the following forms of documentation:

Readme file requirements The package meets the readme requirements below:

The README should include, from top to bottom:

NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)

Usability

Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider whether:

Functionality

For packages also submitting to JOSS

Note: Be sure to check this carefully, as JOSS's submission requirements and scope differ from pyOpenSci's in terms of what types of packages are accepted.

The package contains a paper.md matching JOSS's requirements with:

Final approval (post-review)

Estimated hours spent reviewing:

1.5


Review Comments

The User Guide is well-written, making it accessible even to those who might be new to linear regression or the Coordinate Descent algorithm. The language is clear, and the step-by-step explanations are highly beneficial for understanding the package's functionality. The inclusion of examples, such as the synthetic data generation and the application on the diabetes dataset, is excellent. These examples not only illustrate the usage of the package but also demonstrate its practical applicability in real-world scenarios. The comparative analysis with Scikit-learn's implementation is a strong point. This not only shows confidence in the reliability of your package but also provides users with a familiar benchmark for understanding the package's performance.

It's evident that a lot of thought and effort went into this. I would like to offer some suggestions that could further enhance your project:

  1. In the user examples section, you've done a great job showcasing the output of your package alongside sklearn's for comparison. To further clarify these comparisons, you might consider differentiating the plot titles based on the methods used to generate them. This distinction would make it immediately clear to users which plots were generated by lr_cd and which by sklearn, especially since the visual outputs are similar.
  2. The link in the README documentation section for "online documentation" can be updated with the latest one.
  3. Adding a Repository Activity Badge: may provide immediate visibility into the activity status of your repository
WaleedMahmood1 commented 5 months ago

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

Documentation

The package includes all the following forms of documentation:

Readme file requirements The package meets the readme requirements below:

The README should include, from top to bottom:

NOTE: If the README has many more badges, you might want to consider using a table for badges: see this example. Such a table should be more wide than high. (Note that the a badge for pyOpenSci peer-review will be provided upon acceptance.)

Usability

Reviewers are encouraged to submit suggestions (or pull requests) that will improve the usability of the package as a whole. Package structure should follow general community best-practices. In general please consider whether:

Functionality

For packages also submitting to JOSS

Note: Be sure to check this carefully, as JOSS's submission requirements and scope differ from pyOpenSci's in terms of what types of packages are accepted.

The package contains a paper.md matching JOSS's requirements with:

Final approval (post-review)

Estimated hours spent reviewing: 1.5 hrs


Review Comments

Overall: The project is very well-structured. Also, the installation instructions are as clear as day and super easy to install (I only needed to copy and paste the instructions into my terminal and they ran without a single hitch). All of the function tests also passed locally. The function itself also seems very interesting to implement.

Feedback: