From 632d9ff4382469f4db50deb25c154f39ca9e56dd Mon Sep 17 00:00:00 2001 From: Guillaume Lemaitre Date: Tue, 6 Aug 2024 11:58:38 +0200 Subject: [PATCH 01/14] add announcements CZI EOSS6 --- _posts/2024-08-06-czi-eoss6-announcement.md | 21 ++++++++++++++++++ .../author_images/guillaume-lemaitre.jpg | Bin 0 -> 6033 bytes assets/images/posts_images/sklearn_czi.png | Bin 0 -> 30996 bytes 3 files changed, 21 insertions(+) create mode 100644 _posts/2024-08-06-czi-eoss6-announcement.md create mode 100644 assets/images/author_images/guillaume-lemaitre.jpg create mode 100644 assets/images/posts_images/sklearn_czi.png diff --git a/_posts/2024-08-06-czi-eoss6-announcement.md b/_posts/2024-08-06-czi-eoss6-announcement.md new file mode 100644 index 0000000..d1858c2 --- /dev/null +++ b/_posts/2024-08-06-czi-eoss6-announcement.md @@ -0,0 +1,21 @@ +--- +title: "Scikit-learn awarded CZI EOSS Cycle 6 Grant" +date: August 6, 2024 +categories: + - Funding +tags: + - Open Source + - Sponsor + - Internship + - Diversity +featured-image: sklearn_czi.png + +postauthors: + - name: Guillaume Lemaitre + website: https://glemaitre.github.io/ + image: guillaume-lemaitre.jpg +--- +
+ + {% include postauthor.html %} +
\ No newline at end of file diff --git a/assets/images/author_images/guillaume-lemaitre.jpg b/assets/images/author_images/guillaume-lemaitre.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f2915fe519057bb84ef9624deebc0e8504f2eccd GIT binary patch literal 6033 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 Date: Wed, 7 Aug 2024 09:18:30 +0200 Subject: [PATCH 02/14] Update _posts/2024-08-06-czi-eoss6-announcement.md Co-authored-by: Reshama Shaikh --- _posts/2024-08-06-czi-eoss6-announcement.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-08-06-czi-eoss6-announcement.md b/_posts/2024-08-06-czi-eoss6-announcement.md index d1858c2..9da7c7c 100644 --- a/_posts/2024-08-06-czi-eoss6-announcement.md +++ b/_posts/2024-08-06-czi-eoss6-announcement.md @@ -5,7 +5,7 @@ categories: - Funding tags: - Open Source - - Sponsor + - Funding - Internship - Diversity featured-image: sklearn_czi.png From c77cf1c6cc62f096d6161d7f0c081ea87fb419f4 Mon Sep 17 00:00:00 2001 From: Guillaume Lemaitre Date: Wed, 7 Aug 2024 15:51:53 +0200 Subject: [PATCH 03/14] more draft --- _posts/2024-08-06-czi-eoss6-announcement.md | 73 ++++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/_posts/2024-08-06-czi-eoss6-announcement.md b/_posts/2024-08-06-czi-eoss6-announcement.md index 9da7c7c..d716d82 100644 --- a/_posts/2024-08-06-czi-eoss6-announcement.md +++ b/_posts/2024-08-06-czi-eoss6-announcement.md @@ -18,4 +18,75 @@ postauthors:
{% include postauthor.html %} -
\ No newline at end of file + + +We are delighted to announce that `scikit-learn` is awarded a grant from +the [Chan Zuckerberg Initiative (CZI)](https://chanzuckerberg.com/)'s [Essential Open +Source Software for Science +(EOSS)](https://chanzuckerberg.com/rfa/essential-open-source-software-for-science/) +program. This grant is funded by [Wellcome Trust](https://wellcome.org/). +As in previous round, this cycle supports open-source software projects that are +essential to biomedical research. This is the third time that CZI EOSS supports +`scikit-learn`. In previous rounds, the following projects were funded: + +- [CZI EOSS 1](https://chanzuckerberg.com/eoss/proposals/scikit-learn-maintenance-and-enhancement-for-gradient-boosting/) + helped at creating to the + [`HistGradientBoostingClassifier`](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.HistGradientBoostingClassifier.html) and + [`HistGradientBoostingRegressor`](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.HistGradientBoostingRegressor.html) estimators. + These estimators are the equivalent of gradient boosting models implemented in + `LightGBM` and `XGBoost`. +- [CZI EOSS 4](https://chanzuckerberg.com/eoss/proposals/maintenance-extension-of-scikit-learn-machine-learning-in-python/) + extended `scikit-learn` to work better with missing values and categorical data in + several estimators. + +Both grants allowed us to maintain and enhance `scikit-learn` to better serve the +community. + +In this new grant, we will focus on improving the evaluation and inspection of +predictive models. We provide in the next section a detailed description of the +proposed work. + +## Predictive models evaluation & inspection + +When building a machine learning pipeline for a specific research problem, two key +aspects are closely connected: (i) design the pipeline and (ii) assess, analyze, and +inspect it. Researchers strive to identify the optimal pipeline, maximizing specific +evaluation metrics, while also seeking at explaining the validity and rationale behind +the pipeline's predictions. This is the corner stone to properly answering research +questions. With this proposal we aim to improve and extend the available `scikit-learn` +tools. + +`scikit-learn` provides building blocks for model evaluation and statistical analysis of +results. Originally, this information was presented in a raw format and required +expertise from scientists to create intuitive supports for outreach to peers and +outsiders. Recently, the `scikit-learn` community developed displays to easily generate +visual figures for communicating such results. However, these displays are still in +their early development stages and do not leverage all available statistical analysis +tools (i.e., cross-validation) from `scikit-learn`. Thus, we aim to expand these +displays to use the right statistical tools and thus promote the adoption of best +practices when reporting results. Additionally, we also intend to create new displays +that are considered as "standards" during such analyses. + +In the domain of model inspection, we aim to address several areas: (i) model inspection +during training, (ii) enhancing user experience through interactive inspection, and +(iii) model explainability. First, during the training of a pipeline, researchers are +interested in monitoring the internal characteristics of the model and it is a not yet +addressed long-standing issue in `scikit-learn`. We want to build upon some initial work +by implementing a "callback" framework that allows users to track these internal +parameters. Next, researchers commonly use interactive tools such as Jupyter Notebook to +develop pipelines. `scikit-learn` started some efforts to visually and interactively +display pipelines in these environments. However, there is room for improvement in terms +of user interaction and accessibility. Finally, as `scikit-learn` is widely used as a +reference package, it is crucial to improve the section of the library dedicated to +model explainability. We aim to improve the documentation and user experience with the +existing explainability tools, making sure that they use the appropriate tool for their +use cases. + +On top of all these items, we intend to continue working on the general maintenance of +the project, addressing bug reports and performance regressions. As a community-driven +project, we want to dedicate time reviewing external contributions. + +## References + +[1] [Scikit-learn proposal for CZI EOSS +6](https://github.com/scikit-learn/administrative/blob/master/czi_eoss_proposal/EOSS6-0000000551_202312181059.pdf) From 7db29a5e055c4b8d4743fe9fe47c341484afb8b8 Mon Sep 17 00:00:00 2001 From: Guillaume Lemaitre Date: Thu, 8 Aug 2024 09:19:42 +0200 Subject: [PATCH 04/14] iter --- _posts/2024-08-06-czi-eoss6-announcement.md | 22 ++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/_posts/2024-08-06-czi-eoss6-announcement.md b/_posts/2024-08-06-czi-eoss6-announcement.md index d716d82..a79abfd 100644 --- a/_posts/2024-08-06-czi-eoss6-announcement.md +++ b/_posts/2024-08-06-czi-eoss6-announcement.md @@ -12,8 +12,11 @@ featured-image: sklearn_czi.png postauthors: - name: Guillaume Lemaitre - website: https://glemaitre.github.io/ + website: https://github.com/glemaitre image: guillaume-lemaitre.jpg + - name: Lucy Liu + website: https://github.com/lucyleeow + image: lucyliu.jpeg ---
@@ -44,7 +47,7 @@ community. In this new grant, we will focus on improving the evaluation and inspection of predictive models. We provide in the next section a detailed description of the -proposed work. +proposed work. One can find the full submitted proposal in [1]. ## Predictive models evaluation & inspection @@ -84,7 +87,20 @@ use cases. On top of all these items, we intend to continue working on the general maintenance of the project, addressing bug reports and performance regressions. As a community-driven -project, we want to dedicate time reviewing external contributions. +project, we want to dedicate time reviewing external contributions.\ + +## Involved people + +To execute this project, we plan the following hires: + +- [Lucy Liu](https://github.com/lucyleeow) (Quansight Labs) will work about half-time on + the project, on topic related to displays and feature importance. +- We will hire full-time internships to work on the other part of the project. The + initial plan is to hire two interns for a period of 6 months each and repeat this + process for the next 2 years. We want to provide opportunities to underrepresented + groups in the field of machine learning and data science, similarly to previous + initiatives (cf. [NumFOCUS Small Development + Grant](https://blog.scikit-learn.org/diversity/mentoring/)). ## References From ac99c7eb7d5544f49c8322faf1cd96cf676d7989 Mon Sep 17 00:00:00 2001 From: Guillaume Lemaitre Date: Thu, 8 Aug 2024 09:59:43 +0200 Subject: [PATCH 05/14] iter --- _posts/2024-08-06-czi-eoss6-announcement.md | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/_posts/2024-08-06-czi-eoss6-announcement.md b/_posts/2024-08-06-czi-eoss6-announcement.md index a79abfd..2906d6c 100644 --- a/_posts/2024-08-06-czi-eoss6-announcement.md +++ b/_posts/2024-08-06-czi-eoss6-announcement.md @@ -47,7 +47,7 @@ community. In this new grant, we will focus on improving the evaluation and inspection of predictive models. We provide in the next section a detailed description of the -proposed work. One can find the full submitted proposal in [1]. +proposed work. ## Predictive models evaluation & inspection @@ -101,8 +101,3 @@ To execute this project, we plan the following hires: groups in the field of machine learning and data science, similarly to previous initiatives (cf. [NumFOCUS Small Development Grant](https://blog.scikit-learn.org/diversity/mentoring/)). - -## References - -[1] [Scikit-learn proposal for CZI EOSS -6](https://github.com/scikit-learn/administrative/blob/master/czi_eoss_proposal/EOSS6-0000000551_202312181059.pdf) From d1e982c7af46ff46690818670b5b265465d66fc5 Mon Sep 17 00:00:00 2001 From: Guillaume Lemaitre Date: Thu, 8 Aug 2024 10:05:48 +0200 Subject: [PATCH 06/14] iter --- _posts/2024-08-06-czi-eoss6-announcement.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-08-06-czi-eoss6-announcement.md b/_posts/2024-08-06-czi-eoss6-announcement.md index 2906d6c..e449678 100644 --- a/_posts/2024-08-06-czi-eoss6-announcement.md +++ b/_posts/2024-08-06-czi-eoss6-announcement.md @@ -1,5 +1,5 @@ --- -title: "Scikit-learn awarded CZI EOSS Cycle 6 Grant" +title: "Chan Zuckerberg Initiative considers scikit-learn an Essential Open Source Software" date: August 6, 2024 categories: - Funding From d87d7996d3456deed0cc6bc53100e30d4027bb5e Mon Sep 17 00:00:00 2001 From: Guillaume Lemaitre Date: Thu, 8 Aug 2024 10:35:10 +0200 Subject: [PATCH 07/14] Update _posts/2024-08-06-czi-eoss6-announcement.md Co-authored-by: Tim Head --- _posts/2024-08-06-czi-eoss6-announcement.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-08-06-czi-eoss6-announcement.md b/_posts/2024-08-06-czi-eoss6-announcement.md index e449678..7882d08 100644 --- a/_posts/2024-08-06-czi-eoss6-announcement.md +++ b/_posts/2024-08-06-czi-eoss6-announcement.md @@ -23,7 +23,7 @@ postauthors: {% include postauthor.html %}
-We are delighted to announce that `scikit-learn` is awarded a grant from +We are delighted to announce that `scikit-learn` has been awarded a grant from the [Chan Zuckerberg Initiative (CZI)](https://chanzuckerberg.com/)'s [Essential Open Source Software for Science (EOSS)](https://chanzuckerberg.com/rfa/essential-open-source-software-for-science/) From f37acf4a3ecb3158eba545fd6379ba0b462614cc Mon Sep 17 00:00:00 2001 From: Guillaume Lemaitre Date: Thu, 8 Aug 2024 10:36:31 +0200 Subject: [PATCH 08/14] Apply suggestions from code review Co-authored-by: Tim Head --- _posts/2024-08-06-czi-eoss6-announcement.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/_posts/2024-08-06-czi-eoss6-announcement.md b/_posts/2024-08-06-czi-eoss6-announcement.md index 7882d08..0c8a608 100644 --- a/_posts/2024-08-06-czi-eoss6-announcement.md +++ b/_posts/2024-08-06-czi-eoss6-announcement.md @@ -28,25 +28,25 @@ the [Chan Zuckerberg Initiative (CZI)](https://chanzuckerberg.com/)'s [Essential Source Software for Science (EOSS)](https://chanzuckerberg.com/rfa/essential-open-source-software-for-science/) program. This grant is funded by [Wellcome Trust](https://wellcome.org/). -As in previous round, this cycle supports open-source software projects that are +As in previous rounds, this cycle supports open-source software projects that are essential to biomedical research. This is the third time that CZI EOSS supports `scikit-learn`. In previous rounds, the following projects were funded: - [CZI EOSS 1](https://chanzuckerberg.com/eoss/proposals/scikit-learn-maintenance-and-enhancement-for-gradient-boosting/) - helped at creating to the + helped create the [`HistGradientBoostingClassifier`](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.HistGradientBoostingClassifier.html) and [`HistGradientBoostingRegressor`](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.HistGradientBoostingRegressor.html) estimators. These estimators are the equivalent of gradient boosting models implemented in `LightGBM` and `XGBoost`. - [CZI EOSS 4](https://chanzuckerberg.com/eoss/proposals/maintenance-extension-of-scikit-learn-machine-learning-in-python/) - extended `scikit-learn` to work better with missing values and categorical data in + extended `scikit-learn` to improve handling of missing values and categorical data in several estimators. Both grants allowed us to maintain and enhance `scikit-learn` to better serve the community. In this new grant, we will focus on improving the evaluation and inspection of -predictive models. We provide in the next section a detailed description of the +predictive models. In the next section we will describe the proposed work. ## Predictive models evaluation & inspection @@ -55,13 +55,13 @@ When building a machine learning pipeline for a specific research problem, two k aspects are closely connected: (i) design the pipeline and (ii) assess, analyze, and inspect it. Researchers strive to identify the optimal pipeline, maximizing specific evaluation metrics, while also seeking at explaining the validity and rationale behind -the pipeline's predictions. This is the corner stone to properly answering research +the pipeline's predictions. This is the cornerstone of answering research questions. With this proposal we aim to improve and extend the available `scikit-learn` tools. `scikit-learn` provides building blocks for model evaluation and statistical analysis of results. Originally, this information was presented in a raw format and required -expertise from scientists to create intuitive supports for outreach to peers and +expertise from scientists to create intuitive reports for outreach to peers and outsiders. Recently, the `scikit-learn` community developed displays to easily generate visual figures for communicating such results. However, these displays are still in their early development stages and do not leverage all available statistical analysis @@ -87,7 +87,7 @@ use cases. On top of all these items, we intend to continue working on the general maintenance of the project, addressing bug reports and performance regressions. As a community-driven -project, we want to dedicate time reviewing external contributions.\ +project, we want to dedicate time reviewing external contributions. ## Involved people From 5eea197f2eac28523634257e7a022c68f893ff66 Mon Sep 17 00:00:00 2001 From: Guillaume Lemaitre Date: Thu, 8 Aug 2024 10:36:41 +0200 Subject: [PATCH 09/14] Update _posts/2024-08-06-czi-eoss6-announcement.md Co-authored-by: Tim Head --- _posts/2024-08-06-czi-eoss6-announcement.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-08-06-czi-eoss6-announcement.md b/_posts/2024-08-06-czi-eoss6-announcement.md index 0c8a608..8229e01 100644 --- a/_posts/2024-08-06-czi-eoss6-announcement.md +++ b/_posts/2024-08-06-czi-eoss6-announcement.md @@ -36,7 +36,7 @@ essential to biomedical research. This is the third time that CZI EOSS supports helped create the [`HistGradientBoostingClassifier`](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.HistGradientBoostingClassifier.html) and [`HistGradientBoostingRegressor`](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.HistGradientBoostingRegressor.html) estimators. - These estimators are the equivalent of gradient boosting models implemented in + These estimators are equivalent to the gradient boosting models implemented in `LightGBM` and `XGBoost`. - [CZI EOSS 4](https://chanzuckerberg.com/eoss/proposals/maintenance-extension-of-scikit-learn-machine-learning-in-python/) extended `scikit-learn` to improve handling of missing values and categorical data in From 5cd313bab5c9a8f113c7830bea7b6b7fd3dc605e Mon Sep 17 00:00:00 2001 From: Guillaume Lemaitre Date: Thu, 8 Aug 2024 10:44:27 +0200 Subject: [PATCH 10/14] iter --- _posts/2024-08-06-czi-eoss6-announcement.md | 35 +++++++++++---------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/_posts/2024-08-06-czi-eoss6-announcement.md b/_posts/2024-08-06-czi-eoss6-announcement.md index 8229e01..096a03f 100644 --- a/_posts/2024-08-06-czi-eoss6-announcement.md +++ b/_posts/2024-08-06-czi-eoss6-announcement.md @@ -30,24 +30,10 @@ Source Software for Science program. This grant is funded by [Wellcome Trust](https://wellcome.org/). As in previous rounds, this cycle supports open-source software projects that are essential to biomedical research. This is the third time that CZI EOSS supports -`scikit-learn`. In previous rounds, the following projects were funded: - -- [CZI EOSS 1](https://chanzuckerberg.com/eoss/proposals/scikit-learn-maintenance-and-enhancement-for-gradient-boosting/) - helped create the - [`HistGradientBoostingClassifier`](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.HistGradientBoostingClassifier.html) and - [`HistGradientBoostingRegressor`](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.HistGradientBoostingRegressor.html) estimators. - These estimators are equivalent to the gradient boosting models implemented in - `LightGBM` and `XGBoost`. -- [CZI EOSS 4](https://chanzuckerberg.com/eoss/proposals/maintenance-extension-of-scikit-learn-machine-learning-in-python/) - extended `scikit-learn` to improve handling of missing values and categorical data in - several estimators. - -Both grants allowed us to maintain and enhance `scikit-learn` to better serve the -community. +`scikit-learn`. In this new grant, we will focus on improving the evaluation and inspection of -predictive models. In the next section we will describe the -proposed work. +predictive models. ## Predictive models evaluation & inspection @@ -101,3 +87,20 @@ To execute this project, we plan the following hires: groups in the field of machine learning and data science, similarly to previous initiatives (cf. [NumFOCUS Small Development Grant](https://blog.scikit-learn.org/diversity/mentoring/)). + +## Past CZI EOSS grants + +In the past `scikit-learn` has been awarded two grants from the CZI EOSS program: + +- [CZI EOSS Cycle 1](https://chanzuckerberg.com/eoss/proposals/scikit-learn-maintenance-and-enhancement-for-gradient-boosting/) + helped at creating to the + [`HistGradientBoostingClassifier`](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.HistGradientBoostingClassifier.html) and + [`HistGradientBoostingRegressor`](https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.HistGradientBoostingRegressor.html) estimators. + These estimators are the equivalent of gradient boosting models implemented in + `LightGBM` and `XGBoost`. +- [CZI EOSS Cycle 4](https://chanzuckerberg.com/eoss/proposals/maintenance-extension-of-scikit-learn-machine-learning-in-python/) + extended `scikit-learn` to work better with missing values and categorical data in + several estimators. + +Both grants allowed us to maintain and enhance `scikit-learn` to better serve the +community. From d63f8239bbecba7da5df4b3d317c2bb858a1f5bc Mon Sep 17 00:00:00 2001 From: Guillaume Lemaitre Date: Fri, 9 Aug 2024 09:35:45 +0200 Subject: [PATCH 11/14] Apply suggestions from code review Co-authored-by: Lucy Liu --- _posts/2024-08-06-czi-eoss6-announcement.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_posts/2024-08-06-czi-eoss6-announcement.md b/_posts/2024-08-06-czi-eoss6-announcement.md index 096a03f..2d3d462 100644 --- a/_posts/2024-08-06-czi-eoss6-announcement.md +++ b/_posts/2024-08-06-czi-eoss6-announcement.md @@ -38,8 +38,8 @@ predictive models. ## Predictive models evaluation & inspection When building a machine learning pipeline for a specific research problem, two key -aspects are closely connected: (i) design the pipeline and (ii) assess, analyze, and -inspect it. Researchers strive to identify the optimal pipeline, maximizing specific +aspects are closely connected: (i) design of the pipeline and (ii) assessment, analysis, and +inspection of it. Researchers strive to identify the optimal pipeline, maximizing specific evaluation metrics, while also seeking at explaining the validity and rationale behind the pipeline's predictions. This is the cornerstone of answering research questions. With this proposal we aim to improve and extend the available `scikit-learn` @@ -52,14 +52,14 @@ outsiders. Recently, the `scikit-learn` community developed displays to easily g visual figures for communicating such results. However, these displays are still in their early development stages and do not leverage all available statistical analysis tools (i.e., cross-validation) from `scikit-learn`. Thus, we aim to expand these -displays to use the right statistical tools and thus promote the adoption of best +displays, using the right statistical tools and thus promote the adoption of best practices when reporting results. Additionally, we also intend to create new displays that are considered as "standards" during such analyses. In the domain of model inspection, we aim to address several areas: (i) model inspection during training, (ii) enhancing user experience through interactive inspection, and (iii) model explainability. First, during the training of a pipeline, researchers are -interested in monitoring the internal characteristics of the model and it is a not yet +interested in monitoring the internal characteristics of the model, which is a not yet addressed long-standing issue in `scikit-learn`. We want to build upon some initial work by implementing a "callback" framework that allows users to track these internal parameters. Next, researchers commonly use interactive tools such as Jupyter Notebook to @@ -73,7 +73,7 @@ use cases. On top of all these items, we intend to continue working on the general maintenance of the project, addressing bug reports and performance regressions. As a community-driven -project, we want to dedicate time reviewing external contributions. +project, we also want to dedicate time reviewing external contributions. ## Involved people From 1e1bd912c77047864630bbbe015912a4d7e7bae1 Mon Sep 17 00:00:00 2001 From: Guillaume Lemaitre Date: Fri, 9 Aug 2024 09:52:45 +0200 Subject: [PATCH 12/14] iter --- _posts/2024-08-06-czi-eoss6-announcement.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/_posts/2024-08-06-czi-eoss6-announcement.md b/_posts/2024-08-06-czi-eoss6-announcement.md index 2d3d462..3d75094 100644 --- a/_posts/2024-08-06-czi-eoss6-announcement.md +++ b/_posts/2024-08-06-czi-eoss6-announcement.md @@ -32,8 +32,9 @@ As in previous rounds, this cycle supports open-source software projects that ar essential to biomedical research. This is the third time that CZI EOSS supports `scikit-learn`. -In this new grant, we will focus on improving the evaluation and inspection of -predictive models. +In this new grant, we will focus on improving the [evaluation and inspection of +predictive +models](https://chanzuckerberg.com/eoss/proposals/predictive-models-evaluation-inspection-in-scikit-learn/). ## Predictive models evaluation & inspection From 5f2a96c899206701ac0c6f7dc6701e13990dbb07 Mon Sep 17 00:00:00 2001 From: Guillaume Lemaitre Date: Fri, 9 Aug 2024 10:02:42 +0200 Subject: [PATCH 13/14] iter --- _posts/2024-08-06-czi-eoss6-announcement.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2024-08-06-czi-eoss6-announcement.md b/_posts/2024-08-06-czi-eoss6-announcement.md index 3d75094..ccf65ad 100644 --- a/_posts/2024-08-06-czi-eoss6-announcement.md +++ b/_posts/2024-08-06-czi-eoss6-announcement.md @@ -55,7 +55,7 @@ their early development stages and do not leverage all available statistical ana tools (i.e., cross-validation) from `scikit-learn`. Thus, we aim to expand these displays, using the right statistical tools and thus promote the adoption of best practices when reporting results. Additionally, we also intend to create new displays -that are considered as "standards" during such analyses. +to support common analysis tasks that are not yet covered in `scikit-learn`. In the domain of model inspection, we aim to address several areas: (i) model inspection during training, (ii) enhancing user experience through interactive inspection, and From ddcdeca53a1f3e9d959946da2118635d82a4641e Mon Sep 17 00:00:00 2001 From: Guillaume Lemaitre Date: Tue, 27 Aug 2024 10:19:24 +0200 Subject: [PATCH 14/14] add point raised by Lucy --- _posts/2024-08-06-czi-eoss6-announcement.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/_posts/2024-08-06-czi-eoss6-announcement.md b/_posts/2024-08-06-czi-eoss6-announcement.md index ccf65ad..0dacc86 100644 --- a/_posts/2024-08-06-czi-eoss6-announcement.md +++ b/_posts/2024-08-06-czi-eoss6-announcement.md @@ -70,7 +70,10 @@ of user interaction and accessibility. Finally, as `scikit-learn` is widely used reference package, it is crucial to improve the section of the library dedicated to model explainability. We aim to improve the documentation and user experience with the existing explainability tools, making sure that they use the appropriate tool for their -use cases. +use cases. In addition, we propose to work on a scikit-learn enhancement proposal (SLEP) +to define a common API for model explainability within scikit-learn. Ultimately, the +goal is to come to a consensus to provide scikit-learn end-users with a consistent +experience when using model explainability tools. On top of all these items, we intend to continue working on the general maintenance of the project, addressing bug reports and performance regressions. As a community-driven