From 295444079f1da13dca67c1c1f6a2fa1044af41a2 Mon Sep 17 00:00:00 2001 From: Jesper Dramsch Date: Thu, 14 Dec 2023 17:59:02 +0100 Subject: [PATCH] Fix errors and manage citation --- CITATION.cff | 16 ++++++++++++++++ book/backmatter/cite.md | 9 +++++++++ book/img/logo.png | Bin 9823 -> 17705 bytes book/img/logo_old.png | Bin 0 -> 9823 bytes book/img/mlrecipes.ico | Bin 19518 -> 10366 bytes book/img/mlrecipes_old.ico | Bin 0 -> 19518 bytes book/notebooks/4-testing.ipynb | 11 +++++++++-- book/notebooks/5-interpretability.ipynb | 2 +- 8 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 CITATION.cff create mode 100644 book/img/logo_old.png create mode 100644 book/img/mlrecipes_old.ico diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 0000000..5143950 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,16 @@ +cff-version: 1.2.0 +message: 'If you use this ML.recipes, please cite it as below.' +authors: + - family-names: Dramsch + given-names: Jesper Sören + orcid: https://orcid.org/0000-0001-8273-905X + - family-names: Maggio + given-names: Valerio + orcid: https://orcid.org/0000-0003-4824-893X +title: 'ML Recipes – Increase citations, ease review & foster collaboration ' +version: PyData-Global-2022 +identifiers: + - type: doi + value: ### +date-released: 2022-12-03 +url: 'https://github.com/JesperDramsch/ml-for-science-reproducibility-tutorial' diff --git a/book/backmatter/cite.md b/book/backmatter/cite.md index df171c8..f5cdc11 100644 --- a/book/backmatter/cite.md +++ b/book/backmatter/cite.md @@ -1,4 +1,13 @@ # Cite this Work +This book is licensed under the MIT license, but we appreciate a mention! + You can see the contributions to this book in the [Github contributor graph](https://github.com/JesperDramsch/ml-for-science-reproducibility-tutorial/graphs/contributors) and see contributions to events, workshops and talks in the section event section. +You can cite _ML.recipes_ through the Zenodo project archive: ### + +The Github page can create citations for you which look something like this for APA: + +> Y + +Please visit the Github repo and the Zenodo archive for the most up-to-date reference! diff --git a/book/img/logo.png b/book/img/logo.png index 232c2a9b766decae12990cc93cc4fa6b0a74698f..7cb5b27c7bdb0c0ac88e4fe8dc2f6b1356a80c27 100644 GIT binary patch literal 17705 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 Mm%E*POW)^z0Q5E8Gynhq literal 9823 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 QBLF}{RY#>p$tLuF0O-!Y=>Px# diff --git a/book/img/logo_old.png b/book/img/logo_old.png new file mode 100644 index 0000000000000000000000000000000000000000..232c2a9b766decae12990cc93cc4fa6b0a74698f GIT binary patch literal 9823 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 QBLF}{RY#>p$tLuF0O-!Y=>Px# literal 0 HcmV?d00001 diff --git a/book/img/mlrecipes.ico b/book/img/mlrecipes.ico index 6737eef60d081d65305f59a4d190ef55c92e9239..84d9cebcabebd1ceba97f7e7cab914eb41c2026c 100644 GIT binary patch literal 10366 zcmeHM-D@0G6hE8Ym}oRi5I;&)mh?qLAvF5n2a=~E2xVU)3Z-ljX&-FZw*;$k{XnXu zG4(}_QesiD2`;u3krYEyzfnVCBu3CkOrpu|?EM$wId|sH?43FDm6a^mJxgZpJ#&8d zchAS2xibMs;jdUU@R)&PcLLlD0C<8T{-ILpsmaOx4?O?}9ytL0k3R-So;(7_3j^@{ zi$xfDeFWZm=WY1lqYvT2XBXkCZ@-40=I7w|KmUNTsKEC2wj540r8WZ9mwTh--e+qe zTKhbgBfqYsf!vO1_-#2&hYQhK|8T~Pu2n<1okeK>F}R_5RQw}DNxP%vMjJV`MLPV=I_MWaK3W7nu*&@=|6{0!jHE8k#~!q z7C6Vn>HM>-*Z=v3*I%df-|yM(_^;~U|NPo5e)PYA^{4XRIRCBsuPguDTIY0r67iqh zf4TJ=n?K3=-|T(P<3qCbp9k+oQRbhozm%^gOgL(k^a&*5ucSoJ86B_U@8hb8sd?PS zRNz(E0e`MdapHEyL!{QfvT)Dt`X6&5v1E9+!_t2)*Gji6#LqCQhTW{$=#P+6`L7Jz zv&CP|4vS5>$B#H)fbuT~* znio^3e*eBXA+Ds3X7^y{*WOcRAGEDR@Lz<~DYTwN&Mkws;`zPe7m8*M3$fe-ccK4S z|9t(y$`ZgKgku2i5v!TgH~nzQI3rAB=;SLf2s2{YfJ34F7vNEXiKYg3=YNdxiKzH}&m5hzwDvryUs@;`UC z*g*fQeUL%*S;#27G}8{4lX4e4D0P3s!{Ut$GR~%kdMKGoUAQJb1sGNF!kk9? zG^tIv&bmsQ@=>da-eYu?|F*8?Bx~YJ07{_9r|m0OT2I)mO#{;xk$+J=ZM}e<$8Pg0K=M@%AarkYW>^RpHSrqG1i{f?;vXZ`|zGMxekXV{_sN09RxLT`OCD9 zk$+D?=a0xgVJs=h(;~ot)whq5-{Y&i#ObgQbGPW8#<~A$gq}`Z|2;6L8#n$Az|*Lo zKji-B;o`dW@~iyoSs^C9{yA>a)yuEq?;k$_KUZs<&QIdZ-+w6qKNqW*{L25v#sBKA zKUM!b&A)nn`0^K$|LRNK-TU|N+t-bf#V0$hwIuxdm$6}qPrzTL4Uj7{Jf5p*Ym#yw z<=|-_!`TM=zX5IPlk|6BJ(m;tzivOvk$1w{&2n6v&YHiAFB`ZqB;nRNr<2Am{ynvs zW^BXw>6<5tL!T`F4!`X^j+Bt!+CsSWJL8`K`36FsB;=R=mvI+9K7Q`p{z|b8|oI rn?Mv?h~J*#|L=6{<7n*FYY~{V=7nYinh|J5pc#Q?1ey`}-$vkHo|V{? literal 19518 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 shorten_class_name(pd.DataFrame([[1,2,3,\"Adelie Penguin (Pygoscelis adeliae)\"]], columns=[\"1\",\"2\",\"3\",\"Species\"]))\n", @@ -547,6 +547,13 @@ "X_train.describe()" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following code is supposed to fail to see what happens if the schema doesn't match!" + ] + }, { "cell_type": "code", "execution_count": 11, diff --git a/book/notebooks/5-interpretability.ipynb b/book/notebooks/5-interpretability.ipynb index d1ea7e2..ac840bb 100644 --- a/book/notebooks/5-interpretability.ipynb +++ b/book/notebooks/5-interpretability.ipynb @@ -250,7 +250,7 @@ } ], "source": [ - "from sklearn.inspection import PartialDependenceDisplay, partial_dependence, plot_partial_dependence\n", + "from sklearn.inspection import PartialDependenceDisplay, partial_dependence\n", "\n", "pd_results = partial_dependence(model, X_train.sample(20), num_features)\n", "pd_results"