ibis-project / ibis-ml

IbisML is a library for building scalable ML pipelines using Ibis.
https://ibis-project.github.io/ibis-ml/
Apache License 2.0
96 stars 13 forks source link

docs(website): add support matrix #102

Closed jitingxu1 closed 6 months ago

jitingxu1 commented 6 months ago

Adding support matrix for ibisml Step, there are two ways to collect information for this:

We picked the second option. I am open to put the matrix in any position.

Here is the matrix(updated on 05/28): image

Resolve #89

codecov-commenter commented 6 months ago

Codecov Report

Attention: Patch coverage is 77.27273% with 5 lines in your changes are missing coverage. Please review.

Project coverage is 84.53%. Comparing base (2ba1966) to head (bcd6149).

Files Patch % Lines
ibis_ml/steps/_standardize.py 40.00% 3 Missing :warning:
ibis_ml/steps/_impute.py 0.00% 2 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #102 +/- ## ========================================== - Coverage 84.59% 84.53% -0.07% ========================================== Files 24 24 Lines 1850 1862 +12 ========================================== + Hits 1565 1574 +9 - Misses 285 288 +3 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

deepyaman commented 6 months ago

Here is the matrix: image

I'm OK to start with something like this, but I'd rather launch with a simpler visualization, potentially with the ability to drill down. Ideally, I would see support/partial support/no support for each step (i.e. one row per step), with the ability to drill down/see details.

jitingxu1 commented 6 months ago

Ideally, I would see support/partial support/no support for each step (i.e. one row per step), with the ability to drill down/see details.

Agree, need to think about how to present this better later. It could be OK for now.

jitingxu1 commented 6 months ago

Pretty minor requests. I also want to understand the difference between partial support and backend-specific; didn't get it.

partial support, some implementation is not supported, for example, bigquery partially support DiscretizeKBins , it only support when strategy='uniform'

For backend-specific, it is applied to Cast or mutate because it depends on which operation or type is supported by that backend.

deepyaman commented 6 months ago

Pretty minor requests. I also want to understand the difference between partial support and backend-specific; didn't get it.

partial support, some implementation is not supported, for example, bigquery partially support DiscretizeKBins , it only support when strategy='uniform'

For backend-specific, it is applied to Cast or mutate because it depends on which operation or type is supported by that backend.

I think these can both fall under "partial." Feel free to get another opinion from @lostmygithubaccount or @zhenzhongxu on this from a product perspective, but I personally feel like the distinction is confusing.

Maybe you can check and create a follow-up item on this, if agreed. Will go ahead and merge this for now.

deepyaman commented 6 months ago

Pretty minor requests. I also want to understand the difference between partial support and backend-specific; didn't get it.

partial support, some implementation is not supported, for example, bigquery partially support DiscretizeKBins , it only support when strategy='uniform' For backend-specific, it is applied to Cast or mutate because it depends on which operation or type is supported by that backend.

I think these can both fall under "partial." Feel free to get another opinion from @lostmygithubaccount or @zhenzhongxu on this from a product perspective, but I personally feel like the distinction is confusing.

Maybe you can check and create a follow-up item on this, if agreed. Will go ahead and merge this for now.

Nevermind, I understand what you mean by "backend-specific" now. IMO those can just be marked supported; if want to put an asterisk next to the step name and point out in the legend that these generic steps simply delegate to the backend, that's fine, but I don't think it's that necessary personally.