ibis-ml icon indicating copy to clipboard operation
ibis-ml copied to clipboard

docs(website): add support matrix

Open jitingxu1 opened this issue 1 year ago • 2 comments

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

  • Execute each step against the actual backend.
    • We need to setup the actual backend to do this
  • Compile each the expressions in step to check if it is compilable.
    • IbisML step consist of expression and python code, it needs strategy to extract the expression from Step, which looks ugly and unnecessary for the function itself.

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

Here is the matrix: image

jitingxu1 avatar May 22 '24 00:05 jitingxu1

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
@@            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.

codecov-commenter avatar May 22 '24 00:05 codecov-commenter

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.

deepyaman avatar May 22 '24 01:05 deepyaman

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 avatar May 22 '24 17:05 jitingxu1

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.

jitingxu1 avatar May 28 '24 22:05 jitingxu1

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 avatar May 29 '24 05:05 deepyaman

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.

deepyaman avatar May 29 '24 06:05 deepyaman