├── .gitattributes ├── .github ├── config.yml └── workflows │ └── add_archives.yml ├── .gitignore ├── 404.html ├── CNAME ├── CODE-OF-CONDUCT.md ├── CONTRIBUTING.md ├── Gemfile ├── Gemfile.lock ├── LICENSE ├── README.md ├── _archives ├── archivedata.txt ├── categories │ ├── community.md │ ├── diversity.md │ ├── events.md │ ├── funding.md │ ├── press.md │ ├── team.md │ ├── technical.md │ └── updates.md ├── tags │ ├── community.md │ ├── diversity.md │ ├── free-software.md │ ├── funding.md │ ├── gradient-boosting.md │ ├── inclusiveness.md │ ├── internship.md │ ├── license.md │ ├── machine-learning.md │ ├── open-source.md │ ├── performance.md │ ├── sponsor.md │ └── sprints.md └── years │ ├── 2017.md │ ├── 2018.md │ ├── 2019.md │ ├── 2020.md │ ├── 2021.md │ ├── 2022.md │ ├── 2023.md │ └── 2024.md ├── _config.yml ├── _data ├── authors.yml └── navigation.yml ├── _includes ├── .DS_Store ├── archive_info.html ├── author-profile.html ├── category-list.html ├── event-authors.html ├── event.js ├── head │ ├── .DS_Store │ └── custom.html ├── masthead.html ├── post-authors.html ├── post.html ├── postauthor.html ├── postauthor2.html ├── postauthortemp.html ├── posts-category.html ├── posts-tag.html ├── social-share.html ├── tag-list.html └── twitter.html ├── _layouts ├── .DS_Store ├── archive-categories.html ├── archive-categories_old.html ├── archive-tags.html ├── archive-tags_old.html ├── archive-taxonomy.html ├── archive-years.html ├── archive-years_old.html ├── archive.html ├── categories.html ├── category.html ├── collection.html ├── default.html ├── single.html ├── tag.html └── tags.html ├── _pages ├── .DS_Store ├── calendar.md ├── category-archive.md ├── resources.md ├── sprints.md └── tag-archive.md ├── _posts ├── .DS_Store ├── 2017-02-21-mlconf-interview.md ├── 2018-09-30-nyc-sprint-highlights.md ├── 2019-01-11-wimlds-impact-report.md ├── 2019-06-01-nick-gradient-boosting.md ├── 2019-06-25-nairobi-adrin.md ├── 2019-08-03-nairobi-impact-report.md ├── 2020-01-07-funding-software.md ├── 2020-06-27-global-online-sprint-report.md ├── 2021-02-22-afme1-sprint-report.md ├── 2021-07-19-latam-sprint-report.md ├── 2021-11-20-afme2-sprint-report.md ├── 2022-01-08-jml-interview.md ├── 2022-01-22-chiara-interview.md ├── 2022-02-05-frenchaward.md ├── 2022-02-08-performances.md ├── 2022-02-19-pull-request.md ├── 2022-03-12-wimlds-paris-sprint.md ├── 2022-03-21-behind-the-scenes.md ├── 2022-03-28-maren-interview.md ├── 2022-05-04-lucy-interview.md ├── 2022-05-12-pyconde-keynote-reshama.md ├── 2022-05-22-norbert-interview.md ├── 2022-07-13-sprints-value.md ├── 2022-09-29-salta-sprint.md ├── 2022-10-13-joining-forces-hugging-face.md ├── 2022-11-08-pandas-dataframe-output-for-sklearn-transformer.md ├── 2022-11-30-meekail-zain-interview.md ├── 2023-07-11-nvidia-is-a-new-sponsor.md ├── 2023-09-12-paris-dev-sprint.md ├── 2023-27-11-mentoring.md ├── 2024-05-04-authorship-info.md ├── 2024-07-18-yao-interview.md ├── 2024-07-24-adam-li-interview.md ├── 2024-08-06-czi-eoss6-announcement.md ├── 2024-09-02-survey-announcement.md ├── 2024-12-05-dev-api.md └── templates │ ├── 2022-01-01-template-post.markdown │ └── 2022-01-01-test-author-post.markdown ├── _sass ├── .DS_Store ├── minimal-mistakes.scss └── minimal-mistakes │ ├── .DS_Store │ ├── _animations.scss │ ├── _archive.scss │ ├── _base.scss │ ├── _buttons.scss │ ├── _footer.scss │ ├── _forms.scss │ ├── _masthead.scss │ ├── _mixins.scss │ ├── _navigation.scss │ ├── _notices.scss │ ├── _page.scss │ ├── _print.scss │ ├── _reset.scss │ ├── _search.scss │ ├── _sidebar.scss │ ├── _syntax.scss │ ├── _tables.scss │ ├── _utilities.scss │ ├── _variables.scss │ └── skins │ ├── _air.scss │ ├── _aqua.scss │ ├── _contrast.scss │ ├── _dark.scss │ ├── _default.scss │ ├── _dirt.scss │ ├── _mint.scss │ ├── _neon.scss │ ├── _plum.scss │ ├── _scikit.scss │ └── _sunrise.scss ├── _utils └── compress_images.py ├── assets ├── css │ └── main.scss ├── images │ ├── android-chrome-192x192.png │ ├── android-chrome-256x256.png │ ├── apple-touch-icon.png │ ├── author_images │ │ ├── adam-li.jpeg │ │ ├── adrin-jalali.jpeg │ │ ├── andreas-mueller.jpg │ │ ├── angela_okune.jpg │ │ ├── chiara_marmo.png │ │ ├── francois_goupil.jpeg │ │ ├── guillaume-lemaitre.jpg │ │ ├── inessa-pawson.jpg │ │ ├── jjerphan.jpg │ │ ├── juan-martin-loyola.jpeg │ │ ├── lucyliu.jpeg │ │ ├── lysandre_debut.jpg │ │ ├── maren-westerman.jpg │ │ ├── meekail-zain.jpg │ │ ├── nicolas_hug.jpg │ │ ├── norbert.jpeg │ │ ├── nvidia-logo.png │ │ ├── reshama_shaikh.jpeg │ │ ├── sangam_swadik.jpg │ │ ├── stefanie-senger.jpeg │ │ ├── thomas_fan.jpeg │ │ └── yao-xiao.jpeg │ ├── brand_images │ │ ├── .DS_Store │ │ ├── categories_tags.png │ │ ├── category_tag.png │ │ ├── category_tag_template.png │ │ ├── colorswatch_29ABE2_cyan.png │ │ ├── colorswatch_9B4600_brown.png │ │ ├── colorswatch_F7931E_orange.png │ │ ├── highlighted-text.png │ │ ├── multiple-author-post.png │ │ └── single-author-post.png │ ├── browserconfig.xml │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── favicon.ico │ ├── mstile-150x150.png │ ├── posts_images │ │ ├── 2010sprint.jpg │ │ ├── 2023-paris-dev-sprint.png │ │ ├── 2023-paris-sprint │ │ │ ├── paris_2023.jpg │ │ │ └── thomas_olivier.jpg │ │ ├── AFME2-photo.png │ │ ├── BSD_wordmark.svg │ │ ├── Frenchaward.png │ │ ├── HFxsklearn.png │ │ ├── NVIDIAxsklearn.jpg │ │ ├── Paris-s.jpg │ │ ├── adam-li-interview.png │ │ ├── afme1-summary.png │ │ ├── behind_the_scenes.png │ │ ├── chiara.png │ │ ├── dialetto-s.jpg │ │ ├── gbdt.png │ │ ├── global_sprint_annonce.png │ │ ├── jml-interview.png │ │ ├── jml.png │ │ ├── julien-performances.png │ │ ├── latam-group-cover.png │ │ ├── lucy_card.png │ │ ├── maren-interview.png │ │ ├── meekail-zain-interview.png │ │ ├── mlconf-interview.png │ │ ├── nairobi-group.jpg │ │ ├── nairobi-sklearn.jpg │ │ ├── norbert-interview.png │ │ ├── norbert-japan.png │ │ ├── nyc-sprint-2018.jpg │ │ ├── pandas_output_sklearn_transformers.PNG │ │ ├── reshama-pyconde.png │ │ ├── scipy-la-2022_logo.png │ │ ├── sklearn_czi.png │ │ ├── sprint-neurips-2011.jpeg │ │ ├── sprint-salta-2022-1.jpg │ │ ├── sprint-salta-2022-2.jpeg │ │ ├── sprint-videos.png │ │ ├── sprints-value.png │ │ ├── sprints-value2.png │ │ └── wimlds-logo.png │ ├── safari-pinned-tab.svg │ ├── scikit-header.png │ ├── scikit-learn-logo.png │ ├── scikit-logo.png │ └── site.webmanifest ├── notebooks │ └── sklearn-pandas-df-output.ipynb └── videos │ ├── HFxsklearn.mp4 │ └── NVIDIAxsklearn.mp4 ├── category-archive.md ├── index.markdown ├── tag-archive.md ├── welcome-bot ├── BannerCongratulations.jpg ├── BannerThanks.jpg └── BannerWelcome.jpg └── year-archive.md /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto 3 | 4 | # Denote all files that are truly binary and should not be modified. 5 | *.png binary 6 | *.jpg binary 7 | -------------------------------------------------------------------------------- /.github/config.yml: -------------------------------------------------------------------------------- 1 | # Configuration for welcome - https://github.com/behaviorbot/welcome 2 | 3 | # Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome 4 | 5 | # Comment to be posted to on first time issues 6 | newIssueWelcomeComment: | 7 | ![Welcome Banner](https://raw.githubusercontent.com/scikit-learn/blog/main/welcome-bot/BannerWelcome.jpg) 8 | 9 | :tada: Welcome to _scikit-learn Blog_! :tada: 10 | We're really excited to have your input into the project! :sparkling_heart: 11 | 12 |
If you haven't done so already, please make sure you check out our [Contributing Guidelines](https://github.com/scikit-learn/blog/blob/main/CONTRIBUTING.md) and [Code of Conduct](https://github.com/scikit-learn/blog/blob/main/CODE_OF_CONDUCT.md). 13 | 14 | 15 | # Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome 16 | 17 | # Comment to be posted to on PRs from first time contributors in your repository 18 | newPRWelcomeComment: | 19 | ![Thank You Banner](https://raw.githubusercontent.com/scikit-learn/blog/main/welcome-bot/BannerThanks.jpg) 20 | 21 | :sparkling_heart: Thanks for opening this pull request! :sparkling_heart: 22 | _scikit-learn_ community really appreciates your time and effort to contribute to the project. 23 | Please make sure you have read our [Contributing Guidelines](https://github.com/scikit-learn/blog/blob/main/CONTRIBUTING.md) and filled in our pull request template to the best of your ability. 24 | 25 | 26 | # Configuration for first-pr-merge - https://github.com/behaviorbot/first-pr-merge 27 | 28 | # Comment to be posted to on pull requests merged by a first time user 29 | firstPRMergeComment: | 30 | ![Congratulations Banner](https://raw.githubusercontent.com/scikit-learn/blog/main/welcome-bot/BannerCongratulations.jpg) 31 | 32 | Congrats on merging your first pull request! :tada: 33 | We here at _scikit-learn_ are proud of you! :sparkling_heart: 34 | Thank you so much for your contribution :gift: -------------------------------------------------------------------------------- /.github/workflows/add_archives.yml: -------------------------------------------------------------------------------- 1 | name: Generate Jekyll Archives 2 | # description: Generate categories, tags and years archive files. 3 | on: 4 | workflow_dispatch: 5 | push: 6 | paths: 7 | - "_posts/**" 8 | 9 | jobs: 10 | build: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4 14 | 15 | - name: Create required folders 16 | run: | 17 | mkdir -p _archives/categories 18 | mkdir -p _archives/tags 19 | mkdir -p _archives/years 20 | 21 | - name: Generate Jekyll Archives 22 | uses: kannansuresh/jekyll-blog-archive-workflow@master 23 | with: 24 | archive_url: "https://blog.scikit-learn.org/archives/archivedata" 25 | archive_folder_path: "_archives" 26 | 27 | - name: setup git config 28 | run: | 29 | git config user.name "GitHub Actions Bot" 30 | git config user.email "<>" 31 | 32 | - name: commit 33 | run: | 34 | git add --all 35 | git commit -m "Created and updated archive files." || echo "No changes to commit." 36 | git push origin main || echo "No changes to push." 37 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | _site 2 | .sass-cache 3 | .jekyll-cache 4 | .jekyll-metadata 5 | vendor 6 | *.DS_Store 7 | .DS_Store 8 | assets/.DS_Store 9 | assets/images/.DS_Store 10 | .bundle 11 | -------------------------------------------------------------------------------- /404.html: -------------------------------------------------------------------------------- 1 | --- 2 | permalink: /404.html 3 | layout: default 4 | --- 5 | 6 | 19 | 20 |
21 |

404

22 | 23 |

Page not found :(

24 |

The requested page could not be found.

25 |
26 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | blog.scikit-learn.org -------------------------------------------------------------------------------- /CODE-OF-CONDUCT.md: -------------------------------------------------------------------------------- 1 | # scikit-learn Code of Conduct 2 | 3 | ### Our community, Our Values 4 | 5 | The project is hosted on [scikit-learn/scikit-learn](https://github.com/scikit-learn/scikit-learn). 6 | 7 | The decision making process and governance structure of scikit-learn is laid out in the governance document: [scikit-learn governance and decision-making](https://scikit-learn.org/dev/governance.html#governance). 8 | 9 | We are a community based on openness and friendly, didactic, discussions. 10 | 11 | We aspire to treat everybody equally, and value their contributions. 12 | 13 | Decisions are made based on technical merit and consensus. 14 | 15 | Code is not the only way to help the project. Reviewing pull requests, answering questions to help others on mailing lists or issues, organizing and teaching tutorials, working on the website, improving the documentation, are all priceless contributions. 16 | 17 | We abide by the principles of openness, respect, and consideration of others of the Python Software Foundation [Code of Conduct](https://www.python.org/psf/codeofconduct/). 18 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | #gem "jekyll" 4 | 5 | #gem "minimal-mistakes-jekyll", "~>4.0" 6 | gem "minimal-mistakes-jekyll", :git => "https://github.com/mmistakes/minimal-mistakes.git", :tag => "4.24.0" 7 | gem "webrick", "~> 1.7" 8 | gem "jekyll-redirect-from" 9 | gem "jekyll-sitemap" 10 | gem "jekyll-archives" 11 | gem "jekyll-target-blank" 12 | gem "jekyll-paginate" 13 | gem "jekyll-twitter-plugin" 14 | 15 | 16 | # If you want to use GitHub Pages, remove the "gem "jekyll"" above and 17 | # uncomment the line below. To upgrade, run `bundle update github-pages`. 18 | 19 | gem "github-pages", group: :jekyll_plugins 20 | gem "jekyll-include-cache", group: :jekyll_plugins 21 | 22 | 23 | # If you have any plugins, put them here! 24 | group :jekyll_plugins do 25 | gem "jekyll-feed", "~> 0.12" 26 | end 27 | 28 | # Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem 29 | # and associated library. 30 | platforms :mingw, :x64_mingw, :mswin, :jruby do 31 | gem "tzinfo", "~> 1.2" 32 | gem "tzinfo-data" 33 | end 34 | 35 | # Performance-booster for watching directories on Windows 36 | gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] 37 | 38 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # scikit-learn Blog 2 | 3 | ![scikit-learn logo](/assets/images/scikit-learn-logo.png) 4 | 5 | This repository hosts the development of the [scikit-learn.org](https://scikit-learn.org/stable/) blog. 6 | 7 | 8 |   9 | ## How to Contribute 10 | Please refer to the [Guide to Contributing](https://github.com/scikit-learn/blog/blob/main/CONTRIBUTING.md). 11 | All contributions must abide by the [Code of Conduct](https://github.com/scikit-learn/blog/blob/main/CODE-OF-CONDUCT.md). 12 | 13 | 14 |   15 | ## Brand Standards 16 | This section contains scikit-learn's branding standards and guidelines. 17 | 18 | ### scikit-learn Color Palette 19 | ![#29ABE2 Cyan](/assets/images/brand_images/colorswatch_29ABE2_cyan.png) `RGB 41/171/226 | HEX #29ABE2 | scikit-learn Cyan` 20 | ![#F7931E Orange](/assets/images/brand_images/colorswatch_F7931E_orange.png) `RGB 247/147/30 | HEX #F7931E | scikit-learn Orange` 21 | ![#9B4600 Brown](/assets/images/brand_images/colorswatch_9B4600_brown.png) `RGB 155/70/0| HEX #9B4600 | scikit-learn Brown` 22 | 23 | ### Logo 24 | Logos can be found in the [assets/images/](https://github.com/scikit-learn/blog/tree/main/assets/images) folder.

25 | 26 | 27 | ___ 28 | 29 | Shield: [![CC BY 4.0][cc-by-shield]][cc-by] 30 | 31 | This work is licensed under a 32 | [Creative Commons Attribution 4.0 International License][cc-by]. 33 | 34 | [![CC BY 4.0][cc-by-image]][cc-by] 35 | 36 | [cc-by]: http://creativecommons.org/licenses/by/4.0/ 37 | [cc-by-image]: https://i.creativecommons.org/l/by/4.0/88x31.png 38 | [cc-by-shield]: https://img.shields.io/badge/License-CC%20BY%204.0-lightgrey.svg 39 | -------------------------------------------------------------------------------- /_archives/archivedata.txt: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | { 4 | "categories": [ 5 | {%- for category in site.categories -%} 6 | "{{ category[0]}}"{% unless forloop.last %},{% endunless %} 7 | {%- endfor -%} 8 | ], 9 | "tags": [ 10 | {%- for tag in site.tags -%} 11 | "{{ tag[0] }}"{% unless forloop.last %},{% endunless %} 12 | {%- endfor -%} 13 | ], 14 | "years": [ 15 | {%- for post in site.posts -%} 16 | "{{ post.date | date: "%Y" }}"{% unless forloop.last %},{% endunless %} 17 | {%- endfor -%} 18 | ] 19 | } -------------------------------------------------------------------------------- /_archives/categories/community.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Community 3 | category: "Community" 4 | layout: archive-categories 5 | permalink: "category/community" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/categories/diversity.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Diversity 3 | category: "Diversity" 4 | layout: archive-categories 5 | permalink: "category/diversity" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/categories/events.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Events 3 | category: "Events" 4 | layout: archive-categories 5 | permalink: "category/events" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/categories/funding.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Funding 3 | category: "Funding" 4 | layout: archive-categories 5 | permalink: "category/funding" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/categories/press.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Press 3 | category: "Press" 4 | layout: archive-categories 5 | permalink: "category/press" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/categories/team.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Team 3 | category: "Team" 4 | layout: archive-categories 5 | permalink: "category/team" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/categories/technical.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Technical 3 | category: "Technical" 4 | layout: archive-categories 5 | permalink: "category/technical" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/categories/updates.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Updates 3 | category: "Updates" 4 | layout: archive-categories 5 | permalink: "category/updates" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/tags/community.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Community 3 | tag: "Community" 4 | layout: archive-tags 5 | permalink: "tag/community" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/tags/diversity.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Diversity 3 | tag: "Diversity" 4 | layout: archive-tags 5 | permalink: "tag/diversity" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/tags/free-software.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Free Software 3 | tag: "Free Software" 4 | layout: archive-tags 5 | permalink: "tag/free-software" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/tags/funding.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Funding 3 | tag: "Funding" 4 | layout: archive-tags 5 | permalink: "tag/funding" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/tags/gradient-boosting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Gradient boosting 3 | tag: "Gradient boosting" 4 | layout: archive-tags 5 | permalink: "tag/gradient-boosting" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/tags/inclusiveness.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Inclusiveness 3 | tag: "Inclusiveness" 4 | layout: archive-tags 5 | permalink: "tag/inclusiveness" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/tags/internship.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Internship 3 | tag: "Internship" 4 | layout: archive-tags 5 | permalink: "tag/internship" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/tags/license.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: License 3 | tag: "License" 4 | layout: archive-tags 5 | permalink: "tag/license" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/tags/machine-learning.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Machine Learning 3 | tag: "Machine Learning" 4 | layout: archive-tags 5 | permalink: "tag/machine-learning" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/tags/open-source.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: open-source 3 | tag: "open-source" 4 | layout: archive-tags 5 | permalink: "tag/open-source" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/tags/performance.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Performance 3 | tag: "Performance" 4 | layout: archive-tags 5 | permalink: "tag/performance" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/tags/sponsor.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Sponsor 3 | tag: "Sponsor" 4 | layout: archive-tags 5 | permalink: "tag/sponsor" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/tags/sprints.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Sprints 3 | tag: "Sprints" 4 | layout: archive-tags 5 | permalink: "tag/sprints" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/years/2017.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2017 3 | year: "2017" 4 | layout: archive-years 5 | permalink: "year/2017" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/years/2018.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2018 3 | year: "2018" 4 | layout: archive-years 5 | permalink: "year/2018" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/years/2019.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2019 3 | year: "2019" 4 | layout: archive-years 5 | permalink: "year/2019" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/years/2020.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2020 3 | year: "2020" 4 | layout: archive-years 5 | permalink: "year/2020" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/years/2021.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2021 3 | year: "2021" 4 | layout: archive-years 5 | permalink: "year/2021" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/years/2022.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2022 3 | year: "2022" 4 | layout: archive-years 5 | permalink: "year/2022" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/years/2023.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2023 3 | year: "2023" 4 | layout: archive-years 5 | permalink: "year/2023" 6 | --- 7 | -------------------------------------------------------------------------------- /_archives/years/2024.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: 2024 3 | year: "2024" 4 | layout: archive-years 5 | permalink: "year/2024" 6 | --- 7 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | # For technical reasons, this file is *NOT* reloaded automatically when you use 2 | # 'bundle exec jekyll serve'. If you change this file, please restart the server process. 3 | 4 | 5 | # Theme Settings 6 | remote_theme: "mmistakes/minimal-mistakes@4.24.0" 7 | minimal_mistakes_skin: "scikit" #air", "aqua", "contrast", "dark", "dirt", "neon", "mint", "plum" "sunrise" 8 | 9 | # Site Settings 10 | title: "scikit-learn Blog" 11 | email: 12 | description: "The official blog of scikit-learn, an open source library for machine learning in Python." 13 | logo: assets/images/scikit-learn-logo.png 14 | favicon: assets/images/scikit-learn-logo.png 15 | baseurl: "/" 16 | url: "https://blog.scikit-learn.org" # the base hostname 17 | github_username: scikit-learn 18 | repository: scikit-learn/blog 19 | 20 | header: 21 | image: /assets/images/scikit-header.png 22 | 23 | # Site-wide Search 24 | search: true 25 | 26 | # Format Dates 27 | date_format: "%Y-%m-%d" 28 | 29 | # Author 30 | author: 31 | #name: "" 32 | #avatar: "/assets/images/" 33 | bio: "Open source library for machine learning in Python." 34 | #location: "" 35 | links: 36 | - label: "GitHub" 37 | icon: "fab fa-fw fa-github-square" 38 | url: "https://github.com/scikit-learn" 39 | - label: "LinkedIn" 40 | icon: "fab fa-fw fa-linkedin" 41 | url: "https://linkedin.com/company/scikit-learn/" 42 | - label: "Bluesky" 43 | icon: "" 44 | url: "https://bsky.app/profile/scikit-learn.org" 45 | - label: "Mastodon" 46 | icon: "fab fa-brands fa-mastodon" 47 | url: "https://fosstodon.org/@sklearn" 48 | - label: "YouTube" 49 | icon: "fab fa-fw fa-youtube" 50 | url: "https://www.youtube.com/@scikit-learn" 51 | - label: "Facebook" 52 | icon: "fab fa-fw fa-facebook-square" 53 | url: "https://facebook.com/scikitlearnofficial/" 54 | - label: "Instagram" 55 | icon: "fab fa-fw fa-instagram" 56 | url: "https://instagram.com/scikitlearnofficial/" 57 | 58 | 59 | 60 | # Site Footer 61 | footer: 62 | links: 63 | - label: "GitHub" 64 | icon: "fab fa-fw fa-github-square" 65 | url: "https://github.com/scikit-learn" 66 | - label: "LinkedIn" 67 | icon: "fab fa-fw fa-linkedin" 68 | url: "https://linkedin.com/company/scikit-learn/" 69 | - label: "Bluesky" 70 | icon: "" 71 | url: "https://bsky.app/profile/scikit-learn.org" 72 | - label: "Mastodon" 73 | icon: "fab fa-brands fa-mastodon" 74 | url: "https://fosstodon.org/@sklearn" 75 | - label: "YouTube" 76 | icon: "fab fa-fw fa-youtube" 77 | url: "https://www.youtube.com/@scikit-learn" 78 | - label: "Facebook" 79 | icon: "fab fa-fw fa-facebook-square" 80 | url: "https://facebook.com/scikitlearnofficial/" 81 | - label: "Instagram" 82 | icon: "fab fa-fw fa-instagram" 83 | url: "https://instagram.com/scikitlearnofficial/" 84 | 85 | plugins: 86 | - jekyll-feed 87 | - jekyll-include-cache 88 | - jekyll-redirect-from 89 | - jekyll-archives 90 | - jekyll-target-blank 91 | - jekyll-sitemap 92 | - jekyll-paginate 93 | - jekyll-twitter-plugin 94 | 95 | whitelist: 96 | - jekyll-paginate 97 | - jekyll-sitemap 98 | - jekyll-gist 99 | - jekyll-feed 100 | - jekyll-include-cache 101 | - jekyll-archives 102 | 103 | # Outputting 104 | permalink: /:categories/:title/ 105 | paginate: 5 # amount of posts to show 106 | paginate_path: /page:num/ 107 | timezone: 108 | 109 | params: 110 | description: "scikit-learn Blog Posts" 111 | plausible: 112 | dataDomain: blog.scikit-learn.org 113 | 114 | # SEO Related 115 | #google_site_verification : 116 | #bing_site_verification : 117 | #yandex_site_verification : 118 | #naver_site_verification : 119 | 120 | # Google Analytics 121 | analytics: 122 | provider: "google" #false # false (default), "google", "google-universal", "custom" 123 | google: 124 | tracking_id: UA-22606712-3 125 | 126 | # Exclude from processing 127 | exclude: 128 | - README 129 | - _posts/template 130 | # - .sass-cache/ 131 | # - .jekyll-cache/ 132 | # - gemfiles/ 133 | # - Gemfile 134 | # - Gemfile.lock 135 | # - node_modules/ 136 | # - vendor/bundle/ 137 | # - vendor/cache/ 138 | # - vendor/gems/ 139 | # - vendor/ruby/ 140 | 141 | # Reading Files 142 | include: 143 | - .htaccess 144 | - _pages 145 | - _sass 146 | 147 | # Conversion 148 | markdown: kramdown 149 | highlighter: rouge 150 | lsi: false 151 | excerpt_separator: "\n\n" 152 | incremental: false 153 | 154 | 155 | # Archives 156 | #category_archive: 157 | # type: jekyll-archives 158 | # path: /categories/ 159 | #tag_archive: 160 | # type: jekyll-archives 161 | # path: /tags/ 162 | 163 | #jekyll-archives: 164 | # enabled: 165 | # - categories 166 | # - tags 167 | # layouts: 168 | # category: archive-taxonomy 169 | # tag: archive-taxonomy 170 | # permalinks: 171 | # category: '/categories/:name/' 172 | # tag: '/tags/:name/' 173 | 174 | category_archive: 175 | type: liquid 176 | path: /categories/ 177 | tag_archive: 178 | type: liquid 179 | path: /tags/ 180 | 181 | collections: 182 | archives: 183 | output: true 184 | permalink: /archives/:path/ 185 | 186 | # Defaults 187 | defaults: 188 | # _posts 189 | - scope: 190 | path: "" 191 | type: posts 192 | values: 193 | layout: single 194 | sidebar: 195 | nav: "docs" 196 | show_date: true 197 | read_time: true 198 | related: true 199 | comments: true 200 | share: true 201 | author_profile: true 202 | # _pages 203 | - scope: 204 | path: "_pages" 205 | type: pages 206 | values: 207 | layout: single 208 | author_profile: true 209 | sidebar: 210 | nav: "docs" 211 | -------------------------------------------------------------------------------- /_data/authors.yml: -------------------------------------------------------------------------------- 1 | 2 | Reshama Shaikh: 3 | name : "Reshama Shaikh" 4 | bio : "scikit-learn Communication Team" 5 | avatar : #"/assets/images/bio-photo-2.jpg" 6 | links: 7 | - label: "Website" 8 | icon: "fas fa-fw fa-link" 9 | url: "https://reshamas.github.io/" 10 | 11 | Lauren Burke: 12 | name : "Lauren Burke" 13 | bio : "scikit-learn Communication Team" 14 | avatar : #"/assets/images/bio-photo-2.jpg" 15 | links: 16 | - label: "Website" 17 | icon: "fas fa-fw fa-link" 18 | url: "https://laurburke.github.io/" -------------------------------------------------------------------------------- /_data/navigation.yml: -------------------------------------------------------------------------------- 1 | main: 2 | - title: "scikit-learn.org" 3 | url: https://scikit-learn.org/stable/ 4 | - title: "Calendar" 5 | url: /calendar 6 | - title: "Resources" 7 | url: /resources 8 | - title: "Sprints" 9 | url: /sprints 10 | - title: More 11 | sublinks: 12 | - title: Install 13 | url: "https://scikit-learn.org/stable/install" 14 | - title: "User Guide" 15 | url: "https://scikit-learn.org/stable/user_guide" 16 | - title: "API" 17 | url: "https://scikit-learn.org/stable/api/index" 18 | - title: "Examples" 19 | url: "https://scikit-learn.org/stable/auto_examples/index" 20 | 21 | 22 | # Sidebar 23 | docs: 24 | 25 | - title: Archives 26 | children: 27 | - title: "Category" 28 | url: /categories/ 29 | - title: "Tag" 30 | url: /tags/ 31 | - title: "Year" 32 | url: /years/ 33 | 34 | - title: scikit-learn 35 | children: 36 | - title: "About Us" 37 | url: https://scikit-learn.org/stable/about 38 | - title: "FAQ" 39 | url: https://scikit-learn.org/stable/faq 40 | - title: "Code of Conduct" 41 | url: https://python.org/psf/conduct/ 42 | - title: "Contribute to scikit-learn" 43 | url : "https://scikit-learn.org/stable/developers/contributing.html" 44 | - title: "Contribute to the blog" 45 | url : "https://github.com/scikit-learn/blog" 46 | 47 | - title: Community 48 | children: 49 | - title: "Monthly Meeting Minutes" 50 | url: https://github.com/scikit-learn/administrative/tree/master/monthly_meetings 51 | 52 | - title: Mailing List 53 | children: 54 | - title: "Subscribe" 55 | url: https://mail.python.org/mailman/listinfo/scikit-learn 56 | - title: "Archive" 57 | url: https://mail.python.org/pipermail/scikit-learn/ 58 | -------------------------------------------------------------------------------- /_includes/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/_includes/.DS_Store -------------------------------------------------------------------------------- /_includes/archive_info.html: -------------------------------------------------------------------------------- 1 |

Archive

2 | {% capture temptags %} 3 | {% for tag in site.tags %} 4 | {{ tag[1].size | plus: 1000 }}#{{ tag[0] }}#{{ tag[1].size }} 5 | {% endfor %} 6 | {% endcapture %} 7 | {% assign sortedtemptags = temptags | split:' ' | sort | reverse %} 8 | {% for temptag in sortedtemptags %} 9 | {% assign tagitems = temptag | split: '#' %} 10 | {% capture tagname %}{{ tagitems[1] }}{% endcapture %} 11 | {{ tagname }} 12 | {% endfor %} 13 | -------------------------------------------------------------------------------- /_includes/category-list.html: -------------------------------------------------------------------------------- 1 | {% case site.category_archive.type %} 2 | {% when "liquid" %} 3 | {% assign path_type = "#" %} 4 | {% when "jekyll-archives" %} 5 | {% assign path_type = nil %} 6 | {% endcase %} 7 | 8 | {% if site.category_archive.path %} 9 | {% assign categories_sorted = page.categories | sort_natural %} 10 | 11 |

12 | {{ site.data.ui-text[site.locale].categories_label | default: "Categories:" }} 13 | 14 | {% for category_word in categories_sorted %} 15 | {% unless forloop.last %}, {% endunless %} 16 | {% endfor %} 17 | 18 |

19 | {% endif %} -------------------------------------------------------------------------------- /_includes/event-authors.html: -------------------------------------------------------------------------------- 1 | {% for author in event.authors %} 2 | {% assign author = site.data.authors[author] | default: author %} 3 | {% assign email = author.email %} 4 | {% unless email %} 5 | {% for link in author.links %} 6 | {% if link.label == "Email" %} 7 | {% assign email = link.url %} 8 | {% endif %} 9 | {% endfor %} 10 | {% endunless %} 11 | {% if email %} 12 | {% assign email = email | remove: "mailto:" %} 13 | {% capture email_link %} {% endcapture %} 14 | {% else %} 15 | {% assign email_link = '' %} 16 | {% endif %} 17 | {% if author.image %} 18 | {% capture author_name %} 19 | ORCID iD icon{{ author.name }}{% endcapture %} 20 | {% else %} 21 | {% assign author_name = author.name %} 22 | {% endif %} 23 | {{ author_name }}{{ email_link}}{% unless forloop.last %}, {% endunless %} 24 | {% endfor %} 25 | -------------------------------------------------------------------------------- /_includes/event.js: -------------------------------------------------------------------------------- 1 | {%- assign occurrence_name = "" -%} 2 | {%- for occurrence in post.time -%} 3 | {%- if forloop.index > 1 -%} 4 | {%- capture occurrence_name %} (occurrence #{{ forloop.index }}){% endcapture -%} 5 | {%- endif -%} 6 | {%- assign is_last = forloop.last -%} 7 | {%- for time in occurrence -%} 8 | { 9 | title : "{{ post.title }}{{ occurrence_name }}{% unless forloop.first %} (continued){% endunless %}", 10 | {%- if include.onclick == 'tag' %} 11 | {%- if post.id %} 12 | url : "#{{ post.id | split: '/' | last }}", 13 | {%- endif %} 14 | {%- else %} 15 | {%- if post.url %} 16 | url : "{{ post.url | relative_url }}", 17 | {%- endif %} 18 | {%- endif %} 19 | allDay : {% if post.all_day %}true{% else %}false{% endif %}, 20 | category : "{{ post.category }}", 21 | color : "#474747", 22 | classNames: ["fc-sorse-event"], 23 | {% unless time.end %}// {% endunless %}end : '{{ time.end | date_to_xmlschema }}', 24 | start : '{{ time.start | date_to_xmlschema }}' 25 | }{% unless forloop.last and is_last %},{% endunless %} 26 | {%- endfor -%} 27 | {%- endfor -%} 28 | -------------------------------------------------------------------------------- /_includes/head/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/_includes/head/.DS_Store -------------------------------------------------------------------------------- /_includes/head/custom.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | {% if page.usemathjax %} 13 | 14 | {% endif %} -------------------------------------------------------------------------------- /_includes/masthead.html: -------------------------------------------------------------------------------- 1 | {% capture logo_path %}{{ site.logo }}{% endcapture %} 2 | 3 |
4 |
5 |
6 | 52 |
53 |
54 |
55 | -------------------------------------------------------------------------------- /_includes/post-authors.html: -------------------------------------------------------------------------------- 1 | {% assign post-author = page.post-author | default: page.authors[0] %} 2 | {% assign post-author = site.data.post-authors[post-author] | default: post-author %} 3 | 4 |
5 | {% for post-author in page.post-author %} 6 |
7 |

8 | {{ post-author.name }} 9 |

10 |
11 | {% endfor %} 12 |
13 | -------------------------------------------------------------------------------- /_includes/post.html: -------------------------------------------------------------------------------- 1 | {% assign showFeaturedImage = include.showImage | default: false %} 2 | 3 |
4 |
5 | {% if showFeaturedImage and post.image and site.data.settings.showImagesInPostbox %} 6 | 15 | {% endif %} 16 |
17 | {{ post.categories[0] }} 18 |

19 | {{ post.title }} {% if post.rating %} 20 |
21 | {% include star_rating_postbox.html %} 22 |
23 | {% endif %} 24 |

25 | {{ post.date | date_to_string }} 26 |

{{ post.excerpt | strip_html | truncatewords:35 }}

27 | {% include archive_info.html %} 28 |
29 |
30 |
31 | -------------------------------------------------------------------------------- /_includes/postauthor.html: -------------------------------------------------------------------------------- 1 | {% for author in page.postauthors %} 2 | {% assign postauthor = author | default: author %} 3 | {% assign name = postauthor.name %} 4 | {% assign email = postauthor.email %} 5 | {% assign website = postauthor.website %} 6 | {% assign image = postauthor.image %} 7 | 8 | {% if image %} 9 | {% capture author_name %} 10 | Author Icon{{ postauthor.name }} 11 | {% endcapture %} 12 | {% else %} 13 | {% assign author_name = postauthor.name %} 14 | {% endif %} 15 | 16 | {% if email %} 17 | {% assign email = email | remove: "mailto:" %} 18 | {% capture email_link %} 19 | 20 | {% endcapture %} 21 | {% else %} 22 | {% assign email_link = '' %} 23 | {% endif %} 24 | 25 | {% if forloop.first %}Author: {% endif %}{{ author_name }} {{ email_link }}{% unless forloop.last %}, {% endunless %} 26 | {% endfor %} 27 |

28 | -------------------------------------------------------------------------------- /_includes/postauthor2.html: -------------------------------------------------------------------------------- 1 | 2 | {% for postauthor in page.postauthors %} 3 | 4 | {% if name %} 5 | {% capture author_name %} 6 | ORCID iD icon{{ postauthor.name }} 7 | {% endcapture %} 8 | {% else %} 9 | {% assign author_name = postauthor.name %} 10 | {% endif %} 11 | 12 | {{ author_name }} 13 | {% endfor %} 14 | 15 | -------------------------------------------------------------------------------- /_includes/postauthortemp.html: -------------------------------------------------------------------------------- 1 | {% assign post-author = page.post-author | default: page.authors[0] %} 2 | {% assign post-author = site.data.post-authors[post-author] | default: post-author %} 3 | 4 |
5 | 6 | {% for post-author in page.post-author %} 7 |
8 | 9 |

10 | {{ post-author.name }} 11 |

12 | 13 |
14 | 15 | {% endfor %} 16 |
17 | -------------------------------------------------------------------------------- /_includes/posts-category.html: -------------------------------------------------------------------------------- 1 | {%- for post in site.categories[include.taxonomy] -%} 2 | {%- unless post.hidden -%} 3 | {% include archive-single.html %} 4 | {%- endunless -%} 5 | {%- endfor -%} 6 | -------------------------------------------------------------------------------- /_includes/posts-tag.html: -------------------------------------------------------------------------------- 1 | {%- for post in site.tags[include.taxonomy] -%} 2 | {%- unless post.hidden -%} 3 | {% include archive-single.html %} 4 | {%- endunless -%} 5 | {%- endfor -%} 6 | -------------------------------------------------------------------------------- /_includes/social-share.html: -------------------------------------------------------------------------------- 1 |
2 |

{{ site.data.ui-text[site.locale].share_on_label | default: "Share on" }}

3 | 4 | LinkedIn 5 | 6 | Bluesky 7 | 8 | Mastodon 9 | 10 | Facebook 11 | 12 | 13 |
-------------------------------------------------------------------------------- /_includes/tag-list.html: -------------------------------------------------------------------------------- 1 | {% case site.tag_archive.type %} 2 | {% when "liquid" %} 3 | {% assign path_type = "#" %} 4 | {% when "jekyll-archives" %} 5 | {% assign path_type = nil %} 6 | {% endcase %} 7 | 8 | {% if site.tag_archive.path %} 9 | {% assign tags_sorted = page.tags | sort_natural %} 10 | 11 |

12 | {{ site.data.ui-text[site.locale].tags_label | default: "Tags:" }} 13 | 14 | {% for tag_word in tags_sorted %} 15 | {% unless forloop.last %}, {% endunless %} 16 | {% endfor %} 17 | 18 |

19 | {% endif %} -------------------------------------------------------------------------------- /_includes/twitter.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 |
6 | -------------------------------------------------------------------------------- /_layouts/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/_layouts/.DS_Store -------------------------------------------------------------------------------- /_layouts/archive-categories.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: archive 3 | title: Archive 4 | author_profile: true 5 | sidebar: 6 | nav: "docs" 7 | --- 8 | 9 | {% assign entries_layout = page.entries_layout | default: 'list' %} 10 |
11 |
12 | 13 |
14 |
15 | {% for post in site.posts %} 16 | {% if post.categories contains page.category or post.category == page.category %} 17 | 18 | {% include archive-single.html type=entries_layout %} 19 | {% endif %} 20 | {% endfor %} 21 |
22 |
23 | -------------------------------------------------------------------------------- /_layouts/archive-categories_old.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: archive 3 | --- 4 | 5 | {{ content }} 6 | 7 | {% assign categories_max = 0 %} 8 | {% for category in site.categories %} 9 | {% if category[1].size > categories_max %} 10 | {% assign categories_max = category[1].size %} 11 | {% endif %} 12 | {% endfor %} 13 | 14 | 27 | 28 | {% assign entries_layout = page.entries_layout | default: 'list' %} 29 | {% for i in (1..categories_max) reversed %} 30 | {% for category in site.categories %} 31 | {% if category[1].size == i %} 32 |
33 |

{{ category[0] }}

34 |
35 | {% for post in category.last %} 36 | {% include archive-single.html type=entries_layout %} 37 | {% endfor %} 38 |
39 | {{ site.data.ui-text[site.locale].back_to_top | default: 'Back to Top' }} ↑ 40 |
41 | {% endif %} 42 | {% endfor %} 43 | {% endfor %} 44 | -------------------------------------------------------------------------------- /_layouts/archive-tags.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: archive 3 | title: Archive 4 | author_profile: true 5 | sidebar: 6 | nav: "docs" 7 | --- 8 | 9 | {% assign entries_layout = page.entries_layout | default: 'list' %} 10 |
11 |
12 | 13 |
14 |
15 | {% for post in site.posts %} 16 | {% if post.tags contains page.tag or post.tag == page.tag %} 17 | {% include archive-single.html type=entries_layout %} 18 | {% endif %} 19 | {% endfor %} 20 |
21 |
22 | -------------------------------------------------------------------------------- /_layouts/archive-tags_old.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: archive 3 | --- 4 | 5 | {{ content }} 6 | 7 | {% assign url_tag = page.url | split: "/" | last %} 8 | 9 | 10 | {% assign tags_max = 0 %} 11 | {% for tag in site.tags %} 12 | {% if tag[1].size > tags_max %} 13 | {% assign tags_max = tag[1].size %} 14 | {% endif %} 15 | {% endfor %} 16 | 17 | {% assign entries_layout = page.entries_layout | default: 'list' %} 18 | {% for i in (1..tags_max) reversed %} 19 | {% for tag in site.tags %} 20 | {% if tag[1].size == i %} 21 | {% assign = lower_tag = tag[0] | downcase %} 22 | {% if lower_tag == url_tag %} 23 |
24 |

{{ tag[0] }}

25 |
26 | {% for post in tag.last %} 27 | {% include archive-single.html type=entries_layout %} 28 | {% endfor %} 29 |
30 | {{ site.data.ui-text[site.locale].back_to_top | default: 'Back to Top' }} ↑ 31 |
32 | {% endif %} 33 | {% endif %} 34 | {% endfor %} 35 | {% endfor %} 36 | 37 | 38 | 51 | -------------------------------------------------------------------------------- /_layouts/archive-taxonomy.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | author_profile: false 4 | --- 5 | 6 | {% if page.header.overlay_color or page.header.overlay_image or page.header.image %} 7 | {% include page__hero.html %} 8 | {% elsif page.header.video.id and page.header.video.provider %} 9 | {% include page__hero_video.html %} 10 | {% endif %} 11 | 12 | {% if page.url != "/" and site.breadcrumbs %} 13 | {% unless paginator %} 14 | {% include breadcrumbs.html %} 15 | {% endunless %} 16 | {% endif %} 17 | 18 |
19 | {% include sidebar.html %} 20 | 21 |
22 | {% unless page.header.overlay_color or page.header.overlay_image %} 23 |

{{ page.title }}

24 | {% endunless %} 25 | {% for post in page.posts %} 26 | {% include archive-single.html %} 27 | {% endfor %} 28 |
29 |
30 | -------------------------------------------------------------------------------- /_layouts/archive-years.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: archive 3 | title: Archive 4 | author_profile: true 5 | sidebar: 6 | nav: "docs" 7 | --- 8 | 9 | {% assign entries_layout = page.entries_layout | default: 'list' %} 10 |
11 |
12 |

Archive of posts from {{ page.type }} '{{ page.title }}'

13 |
14 |
15 | {% for post in site.posts %} 16 | {% assign postyear = post.date | date: "%Y" %} 17 | {% if postyear == page.year %} 18 | {% include archive-single.html type=entries_layout %} 19 | {% endif %} 20 | {% endfor %} 21 |
22 |
23 | -------------------------------------------------------------------------------- /_layouts/archive-years_old.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | title: Archive 4 | --- 5 | 6 | 8 |
9 |
10 |

Archive of posts from {{ page.type }} '{{ page.title }}'

11 |
12 |
13 | 14 | {% for post in site.posts %} 15 | {% assign postyear = post.date | date: "%Y" %} 16 | {% if postyear == page.year %} 17 | {% include postbox.html %} 18 | {% endif %} 19 | 20 | {% endfor %} 21 | 22 |
23 |
24 | -------------------------------------------------------------------------------- /_layouts/archive.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 | {% if page.header.overlay_color or page.header.overlay_image or page.header.image %} 6 | {% include page__hero.html %} 7 | {% elsif page.header.video.id and page.header.video.provider %} 8 | {% include page__hero_video.html %} 9 | {% endif %} 10 | 11 | {% if page.url != "/" and site.breadcrumbs %} 12 | {% unless paginator %} 13 | {% include breadcrumbs.html %} 14 | {% endunless %} 15 | {% endif %} 16 | 17 |
18 | {% include sidebar.html %} 19 | 20 |
21 | {% unless page.header.overlay_color or page.header.overlay_image %} 22 |

{{ page.title }}

23 | {% endunless %} 24 | {{ content }} 25 |
26 |
27 | -------------------------------------------------------------------------------- /_layouts/categories.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: archive 3 | --- 4 | 5 | {{ content }} 6 | 7 | {% assign categories_max = 0 %} 8 | {% for category in site.categories %} 9 | {% if category[1].size > categories_max %} 10 | {% assign categories_max = category[1].size %} 11 | {% endif %} 12 | {% endfor %} 13 | 14 | 27 | 28 | {% assign entries_layout = page.entries_layout | default: 'list' %} 29 | {% for i in (1..categories_max) reversed %} 30 | {% for category in site.categories %} 31 | {% if category[1].size == i %} 32 |
33 |

{{ category[0] }}

34 |
35 | {% for post in category.last %} 36 | {% include archive-single.html type=entries_layout %} 37 | {% endfor %} 38 |
39 | {{ site.data.ui-text[site.locale].back_to_top | default: 'Back to Top' }} ↑ 40 |
41 | {% endif %} 42 | {% endfor %} 43 | {% endfor %} 44 | -------------------------------------------------------------------------------- /_layouts/category.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: archive 3 | --- 4 | 5 | {{ content }} 6 | 7 | {% assign entries_layout = page.entries_layout | default: 'list' %} 8 |
9 | {% include posts-category.html taxonomy=page.taxonomy type=entries_layout %} 10 |
11 | -------------------------------------------------------------------------------- /_layouts/collection.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: archive 3 | --- 4 | 5 | {{ content }} 6 | 7 | {% assign entries_layout = page.entries_layout | default: 'list' %} 8 |
9 | {% include documents-collection.html collection=page.collection sort_by=page.sort_by sort_order=page.sort_order type=entries_layout %} 10 |
11 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | --- 2 | --- 3 | 4 | 5 | 11 | 12 | 13 | {% include head.html %} 14 | {% include head/custom.html %} 15 | 16 | 17 | 18 | 19 | 20 | {% include_cached skip-links.html %} 21 | {% include_cached browser-upgrade.html %} 22 | {% include_cached masthead.html %} 23 | 24 |
25 | {{ content }} 26 |
27 | 28 | {% if site.search == true %} 29 |
30 | {% include_cached search/search_form.html %} 31 |
32 | {% endif %} 33 | 34 | 40 | 41 | {% include scripts.html %} 42 | 43 | 44 | -------------------------------------------------------------------------------- /_layouts/single.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: default 3 | --- 4 | 5 | {% if page.header.overlay_color or page.header.overlay_image or page.header.image %} 6 | {% include page__hero.html %} 7 | {% elsif page.header.video.id and page.header.video.provider %} 8 | {% include page__hero_video.html %} 9 | {% endif %} 10 | 11 | {% if page.url != "/" and site.breadcrumbs %} 12 | {% unless paginator %} 13 | {% include breadcrumbs.html %} 14 | {% endunless %} 15 | {% endif %} 16 | 17 |
18 | {% include sidebar.html %} 19 | 20 |
21 | {% if page.title %}{% endif %} 22 | {% if page.excerpt %}{% endif %} 23 | {% if page.date %}{% endif %} 24 | {% if page.last_modified_at %}{% endif %} 25 | {% if page.featured-image %}{% endif %} 26 | 27 |
28 | {% unless page.header.overlay_color or page.header.overlay_image %} 29 |
30 | {% if page.title %}

31 | 32 |

{% endif %} 33 | {% include page__meta.html %} 34 |
35 | {% endunless %} 36 | 37 |
38 | {% if page.toc %} 39 | 45 | {% endif %} 46 | {{ content }} 47 | {% if page.link %}
{{ site.data.ui-text[site.locale].ext_link_label | default: "Direct Link" }}
{% endif %} 48 |
49 | 50 |
51 | {% if site.data.ui-text[site.locale].meta_label %} 52 |

{{ site.data.ui-text[site.locale].meta_label }}

53 | {% endif %} 54 | {% include page__taxonomy.html %} 55 | {% include page__date.html %} 56 |
57 | 58 | {% if page.share %}{% include social-share.html %}{% endif %} 59 | 60 | {% include post_pagination.html %} 61 |
62 | 63 | {% if jekyll.environment == 'production' and site.comments.provider and page.comments %} 64 | {% include comments.html %} 65 | {% endif %} 66 |
67 | 68 | {% comment %}{% endcomment %} 69 | {% if page.id and page.related and site.related_posts.size > 0 %} 70 | 78 | {% comment %}{% endcomment %} 79 | {% elsif page.id and page.related %} 80 | 91 | {% endif %} 92 |
-------------------------------------------------------------------------------- /_layouts/tag.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: archive 3 | --- 4 | 5 | {{ content }} 6 | 7 | {% assign entries_layout = page.entries_layout | default: 'list' %} 8 |
9 | {% include posts-tag.html taxonomy=page.taxonomy type=entries_layout %} 10 |
-------------------------------------------------------------------------------- /_layouts/tags.html: -------------------------------------------------------------------------------- 1 | --- 2 | layout: archive 3 | --- 4 | 5 | {{ content }} 6 | 7 | {% assign tags_max = 0 %} 8 | {% for tag in site.tags %} 9 | {% if tag[1].size > tags_max %} 10 | {% assign tags_max = tag[1].size %} 11 | {% endif %} 12 | {% endfor %} 13 | 14 | 27 | 28 | {% assign entries_layout = page.entries_layout | default: 'list' %} 29 | {% for i in (1..tags_max) reversed %} 30 | {% for tag in site.tags %} 31 | {% if tag[1].size == i %} 32 |
33 |

{{ tag[0] }}

34 |
35 | {% for post in tag.last %} 36 | {% include archive-single.html type=entries_layout %} 37 | {% endfor %} 38 |
39 | {{ site.data.ui-text[site.locale].back_to_top | default: 'Back to Top' }} ↑ 40 |
41 | {% endif %} 42 | {% endfor %} 43 | {% endfor %} 44 | -------------------------------------------------------------------------------- /_pages/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/_pages/.DS_Store -------------------------------------------------------------------------------- /_pages/calendar.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Calendar" 3 | permalink: /calendar/ 4 | layout: single 5 | author_profile: true 6 | --- 7 | 8 | The scikit-learn schedule is generally as follows: 9 | - Monthly meetings on the last Friday of the month 10 | - Bi-weekly (every two weeks) office hours on Mondays 11 | 12 | The project [Code of Conduct](https://www.python.org/psf/conduct/) applies to all spaces. 13 | 14 | The community calendar below can be manually added to your personal calendar by clicking on the “+” button in the bottom right corner. 15 | 16 | 17 | -------------------------------------------------------------------------------- /_pages/category-archive.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Posts by Category" 3 | layout: categories 4 | permalink: /categories/ 5 | author_profile: true 6 | sidebar: 7 | nav: "docs" 8 | --- 9 | 10 | -------------------------------------------------------------------------------- /_pages/resources.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Respository Status" 3 | permalink: /resources/ 4 | layout: single 5 | author_profile: true 6 | --- 7 | 8 | This dashboard, **scikit-learn Repository Status**, was created by [Thomas Fan](https://thomasjpfan.github.io/sklearn-repo-status/). 9 | 10 | 11 | 13 | 14 |

Just put together a small webpage to display the number of open/closed issues at @scikit_learn over the last year. The site updates every evening with stats for the current month: https://t.co/cZ5yx4B1qH pic.twitter.com/4SAPigErGB

— Thomas J. Fan (@thomasjpfan) December 26, 2021
-------------------------------------------------------------------------------- /_pages/tag-archive.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Posts by Tag" 3 | permalink: /tags/ 4 | layout: tags 5 | author_profile: true 6 | --- 7 | -------------------------------------------------------------------------------- /_posts/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/_posts/.DS_Store -------------------------------------------------------------------------------- /_posts/2017-02-21-mlconf-interview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Interview with Andreas Mueller" 3 | date: February 21, 2017 4 | categories: 5 | - Events 6 | tags: 7 | - Open Source 8 | featured-image: mlconf-interview.png 9 | 10 | postauthors: 11 | - name: Reshama Shaikh 12 | website: https://reshamas.github.io 13 | image: reshama_shaikh.jpeg 14 | - name: Andreas Mueller 15 | website: https://amueller.github.io/ 16 | image: andreas-mueller.jpg 17 | --- 18 | 19 |
20 | 21 | {% include postauthor.html %} 22 |
23 | 24 | In this interview, Andreas Mueller, lecturer in Data Science at Columbia University and core developer of the Python library scikit-learn, speaks with Reshama Shaikh about his recent work with the scikit-learn open source community. 25 | 26 | 27 | __RS) Tell us briefly about yourself__ 28 | 29 | AM) I’m currently a lecturer in Data Science at Columbia University, where I teach applied machine learning. I have been a core developer of the Python library scikit-learn for the past 6 years. I recently published the book Introduction to Machine Learning for Python. 30 | 31 | Read the full interview here: 32 | [Interview with Andreas Mueller](https://mlconf.com/blog/interview-andreas-muller-lecturer-columbia-university-core-contributor-scikit-learn-reshama-shaikh/), February 2017 33 | -------------------------------------------------------------------------------- /_posts/2018-09-30-nyc-sprint-highlights.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Highlights From The 2018 NYC WiMLDS Scikit Sprint" 3 | date: September 30, 2018 4 | categories: 5 | - Events 6 | tags: 7 | - Open Source 8 | - Sprints 9 | featured-image: nyc-sprint-2018.jpg 10 | 11 | postauthors: 12 | - name: Reshama Shaikh 13 | website: https://reshamas.github.io 14 | image: reshama_shaikh.jpeg 15 | --- 16 | 17 |
18 | 19 | {% include postauthor.html %} 20 |
21 | 22 | ## Sprint Repo 23 | The 2nd Annual NYC WiMLDS / Scikit Sprint was held on Saturday, September 29 at Stack Exchange in New York City. This is our repository for all items related to the [2018 NYC WiMLDS Scikit Sprint](https://github.com/WiMLDS/scikit-sprint-nyc-2018). 24 | 25 | 26 | ## The Sprint 27 | 28 |

29 |

Kicking off the #scikitSprint @StackExchange with @amuellerml #opensource @wimlds @WiMLDS_NYC pic.twitter.com/FQmTWUGHMs

— Laurence de Torrenté (@LauTor83) September 29, 2018
30 | 31 |

32 | 33 | 34 |

35 |

Excited to be TAing at the Crash-Course in Contributing to Open Source Projects workshop with @wimlds! #ScikitSprint #opensource #nyc #MachineLearning

— Theodora Hinkle (@acornthea) September 29, 2018
36 | 37 |

38 | 39 | 40 |

41 |

We made it to lunchtime, with many teams working on fixing open issues! Go team #ScikitSprint #opensource @wimlds pic.twitter.com/rxHuhJfF5E

— Theodora Hinkle (@acornthea) September 29, 2018
42 | 43 |

44 | 45 | Read the full article here: 46 | [Highlights From The 2018 NYC WiMLDS Scikit Sprint](https://reshamas.github.io/highlights-from-the-2018-NYC-WiMLDS-scikit-sprint/), September 2018 47 | -------------------------------------------------------------------------------- /_posts/2019-01-11-wimlds-impact-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Impact Report For WiMLDS Scikit Learn Sprints " 3 | date: November 1, 2019 4 | categories: 5 | - Events 6 | tags: 7 | - Open Source 8 | - Sprints 9 | featured-image: wimlds-logo.png 10 | 11 | postauthors: 12 | - name: Reshama Shaikh 13 | website: https://reshamas.github.io 14 | image: reshama_shaikh.jpeg 15 | --- 16 | 17 |
18 | 19 | {% include postauthor.html %} 20 |
21 | 22 | ## Sprint Background 23 | 24 | A 2013 study found that only [11% of open source contributors were women](https://www.newamerica.org/weekly/111/and-now-an-infuriating-statistic-about-women-and-coding/). A 2016 gender-inferred [analysis](https://blog.revolutionanalytics.com/2016/06/programmers-gender.html) examining the top 100 contributors for various programming languages found that just 2% of contributors to Python libraries on GitHub were women. 25 | 26 | To address this gender imbalance for the scikit-learn library, Andreas Mueller, core contributor, initiated organizing an open source sprint in New York City with the local chapter of Women in Machine Learning and Data Science ([WiMLDS](http://wimlds.org)). The first sprint was held in March 2017 and the second one was held in September of 2018. This report summarizes the impact of the two events. 27 | 28 | ## Impact Summary for 2017 29 | In 2017, **5** PRs were merged in: 30 | - **4** PRs were merged at the sprint 31 | - **1** PR was merged post-sprint without any follow-up 32 | - The PR merged post-sprint was by [Sergul Aydore](https://www.linkedin.com/in/sergül-aydöre-203193a/). After attending this sprint, Sergul then went on to participate in the August 2018 [scikit-learn core sprint for advanced contributors](http://gael-varoquaux.info/programming/sprint-on-scikit-learn-in-paris-and-austin.html) in Paris. Sergul states: 33 | >Participating in the March 2017 sprint helped me learn the basics and I was able to contribute to more complicated PRs in the August 2018 sprint. 34 | - No follow-up of open PRs was conducted. 35 | 36 | ## Impact Summary for 2018 37 | A total of 16 PRs were merged in as a result of the 2018 sprint: 38 | - **4** were merged at the sprint 39 | - **4** were updated and merged post-sprint by attendees who submitted of their own accord, without any follow-up. 40 | - To date, **8** PRs were merged by the sprint organizer (me) or members of the WiMLDS community. None of the initial sprint participants merged in a PR after follow-up. 41 | 42 | Read the full report here: 43 | [Impact Report For WiMLDS Scikit Learn Sprints](https://reshamas.github.io/impact-report-for-wimlds-scikit-learn-sprints/), November 2019 44 | -------------------------------------------------------------------------------- /_posts/2019-06-01-nick-gradient-boosting.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Understanding Gradient Boosting as a Gradient Descent" 3 | date: June 6, 2019 4 | categories: 5 | - Technical 6 | tags: 7 | - Gradient boosting 8 | 9 | featured-image: gbdt.png 10 | 11 | postauthors: 12 | - name: Nicolas Hug 13 | website: https://github.com/NicolasHug 14 | image: nicolas_hug.jpg 15 | usemathjax: true 16 | --- 17 |
18 | 19 | {% include postauthor.html %} 20 |
21 | 22 | There are a lot of resources online about gradient boosting, but not many of them explain how gradient boosting relates to gradient descent. This post is an attempt to explain gradient boosting as a (kinda weird) gradient descent. 23 | 24 | I’ll assume zero previous knowledge of gradient boosting here, but this post requires a minimal working knowledge of gradient descent. 25 | 26 | __Let’s get started!__ 27 | 28 | For a given sample $$ \mathbf{x}_i $$, a gradient boosting regressor yields 29 | predictions with the following form: 30 | 31 | $$ \hat{y}_i = \sum_{m = 1}^{\text{n_iter}} h_m(\mathbf{x}_i), $$ 32 | 33 | where each $$ h_m $$ is an instance of a base estimator (often called weak learner, since it usually does not need to be extremely accurate). Since the base estimator is almost always a decision tree, I’ll abusively use the term GBDT (Gradient Boosting Decision Trees) to refer to gradient boosting in general. 34 | 35 | Each of the base estimators $$ h_m $$ isn’t trying to predict the target $$ y_i $$. Instead, the base estimators are trying to predict gradients. This sum $$ \sum_{m = 1}^{\text{n_iter}} h_m(\mathbf{x}_i) $$ is actually performing a gradient descent. 36 | 37 | Specifically, it’s a gradient descent in a functional space. This is in contrast to what we’re used to in many other machine learning algorithms (e.g. neural networks or linear regression), where gradient descent is instead performed in the parameter space. Let’s review that briefly. 38 | 39 | Read the full blog post on Nicolas' blog: 40 | [Understanding Gradient Boosting as a gradient descent](http://nicolas-hug.com/blog/gradient_boosting_descent) 41 | -------------------------------------------------------------------------------- /_posts/2019-06-25-nairobi-adrin.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: " scikit-learn Sprint in Nairobi, Kenya" 3 | date: June 25, 2019 4 | 5 | categories: 6 | - Events 7 | tags: 8 | - Sprints 9 | - Community 10 | 11 | featured-image: nairobi-sklearn.jpg 12 | 13 | postauthors: 14 | - name: Adrin Jalali 15 | website: https://adrin.info/ 16 | image: adrin-jalali.jpeg 17 | --- 18 |
19 | 20 | {% include postauthor.html %} 21 |
22 | 23 | Almost a year ago, after being the co-speaker of a “My first open source contribution” talk at PyData Berlin 2018, I myself became very motivated and started actively contributing to the scikit-learn project. I was surprised to see how much I could and had to learn to improve my contributions, and that was after over 20 years of programming experience, 6 years of which I did mostly Python, and several years of working in the industry. It wasn’t even the first time I was contributing to an open source project, but it was the first time I was actively looking for issues to fix. 24 | 25 | Read the full post on Adrin's blog: 26 | [Adrin Jalali's Blog: scikit-learn sprint at Nairobi](https://adrin.info/scikit-learn-sprint-at-nairobi-kenya.html) 27 | -------------------------------------------------------------------------------- /_posts/2019-08-03-nairobi-impact-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Nairobi 2019 scikit-learn Sprint Impact Report" 3 | date: August 3, 2019 4 | categories: 5 | - Events 6 | tags: 7 | - Open Source 8 | - Sprints 9 | featured-image: nairobi-group.jpg 10 | 11 | postauthors: 12 | - name: Reshama Shaikh 13 | website: https://reshamas.github.io 14 | image: reshama_shaikh.jpeg 15 | --- 16 | 17 |
18 | 19 | {% include postauthor.html %} 20 |
21 | 22 | ## Sprint Background 23 | 24 | This report focuses on the summary, impact and lessons learned of the Nairobi WiMLDS scikit-learn sprint. 25 | 26 | ## Impact Summary for 2019 27 | - A total of **19** PRs were merged in: 28 | - **2** PRs were merged at the sprint 29 | - **15** PR was merged post-sprint without any follow-up 30 | - **2** PRs were merged *with* follow-up 31 | 32 | - All outstanding PRs from the sprint were merged in after 5 weeks, well before the 60 day suggested deadline. 33 | 34 | - One attendee traveled 8 hours just to attend the sprint. 35 | 36 | - Microsoft 4Afrika has been supportive of Nairobi WiMLDS and scikit-learn and would like to continue supporting the sprint events in the future. 37 | 38 | 39 | Read the full report here: 40 | [Nairobi Wimlds 2019 Scikit Learn Sprint Impact Report](https://reshamas.github.io/nairobi-wimlds-2019-scikit-learn-sprint-impact-report/), August 2019 41 | -------------------------------------------------------------------------------- /_posts/2020-01-07-funding-software.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Don't Fund Software That Doesn't Exist" 3 | date: January 7, 2020 4 | 5 | categories: 6 | - Funding 7 | tags: 8 | - Open Source 9 | - Free Software 10 | 11 | featured-image: 12 | 13 | postauthors: 14 | - name: Andreas Mueller 15 | website: https://amueller.github.io/ 16 | image: andreas-mueller.jpg 17 | --- 18 |
19 | 20 | {% include postauthor.html %} 21 |
22 | 23 | I’ve been happy to see an increase in funding for open source software across research areas and across funding bodies. However, I observed that a majority of funding from, say, the NSF, goes to projects that do not exist yet, and where the funding is supposed to create a new project, or to extend projects that are developed and used within a single research lab. I think this top-down approach to creating software comes from a misunderstanding of the existing open source software that is used in science. This post collects thoughts on the effectiveness of current grant-based funding and how to improve it from the perspective of the grant-makers. 24 | 25 | Instead of the current approach of funding new projects, I would recommend funding existing open source software, ideally software that is widely used, underfunded and already using peer-production as its organizational principle. 26 | 27 | Read the full post on Andreas' blog: 28 | [Andreas Mueller's post: Don't fund software that doesn't exist](https://peekaboo-vision.blogspot.com/2020/01/dont-fund-software-that-doesnt-exist.html) 29 | 30 | -------------------------------------------------------------------------------- /_posts/2020-06-27-global-online-sprint-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Data Umbrella First Global Online Sprint Report" 3 | date: June 27, 2020 4 | categories: 5 | - Events 6 | tags: 7 | - Sprints 8 | - Community 9 | featured-image: global_sprint_annonce.png 10 | postauthors: 11 | - name: Reshama Shaikh 12 | website: https://reshamas.github.io 13 | image: reshama_shaikh.jpeg 14 | --- 15 |
16 | 17 | {% include postauthor.html %} 18 |
19 | 20 | ## Sprint Background 21 | 22 | This sprint was organized by [Reshama Shaikh](https://reshamas.github.io) of [Data Umbrella](https://www.dataumbrella.org) and [NYC PyLadies](http://nyc.pyladies.com/) to increase the participation of underrepresented persons in data science. All organization of this sprint was by volunteer time. 23 | 24 | The sprint was originally scheduled to be an in-person event in New York City. It would have been the fourth year in a row that I (Reshama Shaikh) would have organized a sprint in NYC. Due to the coronavirus pandemic, it was pivoted to become a virtual event. 25 | 26 | This report focuses on the summary, impact and lessons learned of the **first online** scikit-learn sprint. 27 | 28 | 29 | Read the full report here: 30 | 31 | [Data Umbrella First Global Online Sprint Report](https://blog.dataumbrella.org/data-umbrella-global-online-2020-scikit-learn-sprint-report) 32 | -------------------------------------------------------------------------------- /_posts/2021-02-22-afme1-sprint-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Data Umbrella AFME1 Sprint Report" 3 | date: February 22, 2021 4 | categories: 5 | - Events 6 | tags: 7 | - Sprints 8 | - Community 9 | featured-image: afme1-summary.png 10 | postauthors: 11 | - name: Reshama Shaikh 12 | website: https://reshamas.github.io 13 | image: reshama_shaikh.jpeg 14 | --- 15 |
16 | 17 | {% include postauthor.html %} 18 |
19 | 20 | ## Sprint Background 21 | 22 | This sprint was organized by [Data Umbrella](https://www.dataumbrella.org) to increase the participation of underrepresented persons in data science, with a focus on the geographic regions of Africa & the Middle East (AFME). 23 | 24 | ## Summary 25 | 26 | The Data Umbrella Africa & Middle East (AFME1) scikit-learn online sprint was held on February 2, 2021, and the event report is now available. About 31 participants joined from 14 countries. 27 | 28 | Check out the report for more details. 29 | 30 | Read the full report here: 31 | 32 | [Data Umbrella AFME1 Sprint Report](https://reshamas.github.io/data-umbrella-afme-2021-scikit-learn-sprint-report) 33 | -------------------------------------------------------------------------------- /_posts/2021-07-19-latam-sprint-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Data Umbrella LATAM Sprint Report" 3 | date: July 19, 2021 4 | categories: 5 | - Events 6 | tags: 7 | - Sprints 8 | - Community 9 | featured-image: latam-group-cover.png 10 | postauthors: 11 | - name: Reshama Shaikh 12 | website: https://reshamas.github.io 13 | image: reshama_shaikh.jpeg 14 | --- 15 |
16 | 17 | {% include postauthor.html %} 18 |
19 | 20 | ## Sprint Background 21 | 22 | This sprint was organized by [Data Umbrella](https://www.dataumbrella.org) to increase the participation of underrepresented persons in data science, with a focus on the geographic region of Latin America (LATAM). 23 | 24 | ## Summary 25 | 26 | The Data Umbrella Latin America scikit-learn online sprint was held on June 26, 2021, and the event report is now available. 40 participants joined from 9 countries. 27 | 28 | Check out the report for more details. 29 | 30 | Read the full report here: 31 | 32 | [Data Umbrella LATAM Sprint Report](https://blog.dataumbrella.org/data-umbrella-latam-2021-scikit-learn-sprint-report) 33 | -------------------------------------------------------------------------------- /_posts/2021-11-20-afme2-sprint-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Data Umbrella AFME2 Sprint Report" 3 | date: November 20, 2021 4 | categories: 5 | - Events 6 | tags: 7 | - Sprints 8 | - Community 9 | featured-image: AFME2-photo.png 10 | postauthors: 11 | - name: Reshama Shaikh 12 | website: https://reshamas.github.io 13 | image: reshama_shaikh.jpeg 14 | --- 15 |
16 | 17 | {% include postauthor.html %} 18 |
19 | 20 | ## Sprint Background 21 | 22 | This sprint was organized by [Data Umbrella](https://www.dataumbrella.org) to increase the participation of underrepresented persons in data science, with a focus on the geographic regions of Africa & the Middle East (AFME). 23 | 24 | ## Summary 25 | 26 | The Data Umbrella Africa & Middle East (AFME2) scikit-learn online sprint was held on October 23, 2021, and the event report is now available. 40 participants joined from 17 countries, and 57% were returning contributors. 27 | 28 | Check out the report for informative plots, created using Jupyter, python and plotly. 29 | 30 | Read the full report here: 31 | 32 | [Data Umbrella AFME2 Sprint Report](https://blog.dataumbrella.org/data-umbrella-afme2-2021-scikit-learn-sprint-report) 33 | -------------------------------------------------------------------------------- /_posts/2022-01-08-jml-interview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Interview with Juan Martín Loyola, Triage Team Member" 3 | date: January 8, 2022 4 | categories: 5 | - Team 6 | tags: 7 | - Open Source 8 | featured-image: jml-interview.png 9 | 10 | postauthors: 11 | - name: Reshama Shaikh 12 | website: https://reshamas.github.io 13 | image: reshama_shaikh.jpeg 14 | - name: Juan Martín Loyola 15 | website: https://jmloyola.github.io/ 16 | image: juan-martin-loyola.jpeg 17 | --- 18 | 19 |
20 | 21 | {% include postauthor.html %} 22 |
23 | 24 | We are happy to welcome Juan Martín Loyola to the scikit-learn Triage Team in December 2021. 25 | 26 | In this interview, learn more about Juan Martín's journey to open source. From a computer user to first contributing to PyMC, then Google Summer of Code, to Data Umbrella's Latin America open source sprint, to Triage Team member with scikit-learn. 27 | 28 | 1. __Tell us about yourself.__ 29 | 30 | My name is Juan Martín Loyola, I'm a computer science Ph.D. student from San Luis, a province in the middle of Argentina, working on early classification models for text. This is related to the problem of document categorization where we are also interested in the classification speed (there is a cost associated with the classification delay). 31 | 32 | 33 | Read the full interview on Data Umbrella's blog: 34 | [Data Umbrella Interview: Juan Martín Loyola](https://blog.dataumbrella.org/jmloyola-opensource-experience) 35 | -------------------------------------------------------------------------------- /_posts/2022-02-05-frenchaward.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "An Open Source Software Award for scikit-learn" 3 | date: February 7, 2022 4 | categories: 5 | - Press 6 | tags: 7 | - Open Source 8 | - Community 9 | featured-image: Frenchaward.png 10 | 11 | postauthors: 12 | - name: François Goupil 13 | website: https://www.linkedin.com/in/fran%C3%A7ois-goupil/ 14 | image: francois_goupil.jpeg 15 | --- 16 | 17 |
18 | 19 | {% include postauthor.html %} 20 |
21 | 22 | We are pleased to announce that scikit-learn has received a prize for open-source scientific software from the French government. It is great recognition for all the community of contributors and users of a project born in France. Congratulations to the worldwide community for this great achievement! 23 | 24 | __A Community Award__ 25 | scikit-learn was awarded for its very active community with more than 500,000 users per month and 2,200 contributors. Scikit-learn prides itself on being able to showcase its best practices for community building, an essential element of successful open-source software and open science innovation. Congratulations to all the projects and the teams that received the open-source software and open science award today. This work is inspiring for all of us! 26 | 27 | __The Reaction of the Community__ 28 | 29 | >“I literally owe my career in the data space to scikit-learn. It’s not just a framework but a school of thought regarding predictive modeling. Super well deserved, folks :) “ 30 | Maykon Schots from Brasil 31 | 32 | >“Well done everyone for getting us here :)” 33 | Joel Nothman from Australia 34 | 35 | __About the Award__ 36 | 37 | For the first year, the Ministry of Higher Education, Research and Innovation awarded the Open Science Prizes for Free Research Softwares. Ten software developed by French teams were rewarded for their contribution to the advancement of scientific knowledge. 38 | As part of the second National Plan for Open Science, the Open Science Awards for Free Research Software highlights projects and research teams working on the development and dissemination of free software. It aims to emphasize teams and projects contributing to the construction of a common good. 39 | 40 | The main goal of this award is to draw the attention of the scientific community to exceptional or very promising achievements, which can serve as a model for the next generations of researchers and engineers. The prizes were awarded on the decision of a jury of experts rendered by Daniel Le Berre (Lens Computer Science Research Center, University of Artois-CNRS). 41 | 42 | The awards came in three categories, which recognized: 43 | - The scientific and technical quality of the software 44 | - Building an active community of contributors and users 45 | - The essential effort to provide documentation that facilitates the use and appropriation of the software 46 | See the whole list of award recipients. This article is available in both French and English. 47 | 48 | [The official list of award winners](https://www.ouvrirlascience.fr/remise-des-prix-science-ouverte-du-logiciel-libre-de-la-recherche/) 49 | -------------------------------------------------------------------------------- /_posts/2022-02-08-performances.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Performances and scikit-learn" 3 | date: February 8, 2022 4 | categories: 5 | - Technical 6 | tags: 7 | - Open Source 8 | - Performance 9 | featured-image: julien-performances.png 10 | 11 | postauthors: 12 | - name: Julien Jerphanion 13 | website: https://jjerphan.xyz 14 | image: jjerphan.jpg 15 | --- 16 | 17 |
18 | 19 | {% include postauthor.html %} 20 |
21 | 22 | For more than 10 years, scikit-learn has been bringing machine learning and data science to the world. Since then, the library has aimed to deliver quality implementations to its users. 23 | 24 | This series of blog post aims at explaining the on-going work of the scikit-learn developers to boost the performances of the library. 25 | 26 | [Read more online](https://jjerphan.xyz/sklearn-perf.html) 27 | -------------------------------------------------------------------------------- /_posts/2022-03-12-wimlds-paris-sprint.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Women in Machine Learning - A WiMLDS Paris sprint and contribution workshop" 3 | date: March 12, 2022 4 | categories: 5 | - Events 6 | tags: 7 | - Sprints 8 | - Community 9 | postauthors: 10 | - name: François Goupil 11 | website: https://www.linkedin.com/in/fran%C3%A7ois-goupil/ 12 | image: francois_goupil.jpeg 13 | --- 14 | 15 |
16 | 17 | {% include postauthor.html %} 18 |
19 | 20 | Did you know that, on a rough estimation, only 6% of open source contributors were women?! This is awfully low. The scikit-learn team really cares about improving its diversity, gender being one of our focus, we decided to partner with Women in Machine Learning and Data Science Paris (WiMLDS Paris) to help there. On March 12th, on a Saturday morning, we joined for our sprint at CybelAngel! It’s been a long time since we organized a face-to-face event, especially a sprint! 21 | 22 | What is a scikit-learn sprint you may ask? The scikit-learn sprint is a hands-on “hackathon” where we work on issues in the scikit-learn GitHub repository and learn to contribute to open source. This sprint included an introductory and practical workshop about contribution to open source software. 23 | 24 | [Read more online](https://scikit-learn.fondation-inria.fr/wimlds-sprint/) -------------------------------------------------------------------------------- /_posts/2022-03-21-behind-the-scenes.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Behind the Scenes of Data Umbrella scikit-learn Open Source Sprints" 3 | date: March 21, 2022 4 | categories: 5 | - Events 6 | tags: 7 | - Open Source 8 | featured-image: behind_the_scenes.png 9 | 10 | postauthors: 11 | - name: Reshama Shaikh 12 | website: https://reshamas.github.io 13 | image: reshama_shaikh.jpeg 14 | - name: Angela Okune 15 | website: https://angelaokune.me 16 | image: angela_okune.jpg 17 | --- 18 | 19 |
20 | 21 | {% include postauthor.html %} 22 |
23 | 24 | ## Introduction 25 | 26 | Prior to 2020, most data sprints were held in person during intensive 8-hour-long days. Data Umbrella founder, Reshama Shaikh, for example, led several in-person sprints in New York (2017, 2018, 2019), Nairobi (2019) and San Francisco (2019). Data Umbrella had always been interested in developing online resources and exploring ways to enable virtual participation, but this was not able to become a priority until 2020 when the pandemic forced everything online including data sprints. It was clear that an 8-hour in-person event could not just switch to being an 8-hour online event. So the move to online data sprints required the team to rethink the format and mechanisms of the event. 27 | 28 | Read the full article here: 29 | [Behind the Scenes: What It Takes to Run Data Umbrella’s scikit-learn Open Source Sprints](https://eventfund.codeforscience.org/behind-the-scenes-what-it-takes-to-run-data-umbrellas-scikit-learn-open-source-sprints/), March 2022 30 | -------------------------------------------------------------------------------- /_posts/2022-03-28-maren-interview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Interview with Maren Westermann: Extending the Impact of the scikit-learn Sprints to the Community" 3 | date: March 28, 2022 4 | categories: 5 | - Events 6 | - Team 7 | tags: 8 | - Open Source 9 | - Sprints 10 | - Community 11 | featured-image: maren-interview.png 12 | 13 | postauthors: 14 | - name: Reshama Shaikh 15 | website: https://reshamas.github.io 16 | image: reshama_shaikh.jpeg 17 | - name: Maren Westermann 18 | website: https://www.linkedin.com/in/dr-maren-westermann-0b8575144/ 19 | image: maren-westerman.jpg 20 | --- 21 | 22 |
23 | 24 | {% include postauthor.html %} 25 |
26 | 27 | In this interview, learn more about how Maren moved from being a Data Umbrella scikit-learn participant to a mentor, and then to organise [open source workshops](https://www.meetup.com/en-AU/PyLadies-Berlin/). 28 | 29 | 30 | 1. __How did you learn of the Data Umbrella scikit-learn sprints and what inspired you to attend?__ 31 | 32 | I learned of the first Data Umbrella scikit-learn online sprint, which took place in June 2020, via Twitter. I was interested in contributing to open source and had already made [one contribution](https://github.com/scikit-learn/scikit-learn/pull/16681) to scikit-learn. However, when I started contributing to open source I didn’t have a network of like-minded people. I was very much looking forward to connecting with people who shared my interest in open source, data science, and scikit-learn, and to building a professional network in this field. 33 | 34 | Read the full interview here: 35 | [Interview with Maren Westermann: Extending the Impact of the scikit-learn Sprints to the Community](https://blog.dataumbrella.org/mwestermann-sprints-experience), March 2022 36 | -------------------------------------------------------------------------------- /_posts/2022-05-04-lucy-interview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Interview with Lucy Liu, scikit-learn Team Member" 3 | date: May 4, 2022 4 | categories: 5 | - Team 6 | tags: 7 | - Open Source 8 | featured-image: lucy_card.png 9 | 10 | postauthors: 11 | - name: Reshama Shaikh 12 | website: https://reshamas.github.io 13 | image: reshama_shaikh.jpeg 14 | - name: Lucy Liu 15 | website: https://twitter.com/lucyleeow 16 | image: lucyliu.jpeg 17 | --- 18 | 19 |
20 | 21 | {% include postauthor.html %} 22 |
23 | 24 | Lucy Liu joined the scikit-learn Team in September 2020. In this interview, learn more about Lucy's journey through open source, from rstats to scikit-learn. 25 | 26 | 1. __Tell us about yourself.__ 27 | 28 | My name is Lucy, I grew up in New Zealand and I am culturally Chinese. I currently live in Australia and work for Quansight labs. 29 | 30 | - GitHub: [@lucyleeow ](https://github.com/lucyleeow) 31 | - Twitter: [@lucyleeow](https://twitter.com/lucyleeow) 32 | - LinkedIn: [@lucy-liu](https://www.linkedin.com/in/lucy-liu-285468aa/) 33 | 34 | 35 | 1. __How did you first become involved in open source?__ 36 | 37 | I first discovered open source when I started a research Masters, after finding my clinical Optometry job unfulfilling. I loved learning to program but was initially not game enough to contribute as I was only a beginner. After my masters, while working as a bioinformatician, I wrote some R packages for analysis of niche biomedical data and put them on github. My first contribution to an existing open source project was later when I worked at INRIA (French National Institute for Research in Digital Science and Technology) alongside the INRIA scikit-learn core developers. They helped me put up my first pull request and I have been contributing ever since! 38 | 39 | 1. __How did you get involved in scikit-learn? Can you share a few of the pull requests to scikit-learn that resonate with you?__ 40 | 41 | I’m very interested in statistics and code so I was super keen to contribute to scikit-learn. Being relatively a beginner in both areas I started by contributing to documentation, then bug fixes and features. My first PR to scikit-learn was submitted in October 2019 to improve the [multiclass classification documentation](https://github.com/scikit-learn/scikit-learn/pull/15333). I have contributed the most to the calibration module in scikit-learn (including refactoring CalibratedClassifierCV), which has been very interesting and useful for when I later worked on post-processing of weather forecasts at the Bureau of Meteorology in Australia. 42 | 43 | Reference: [Lucy’s list of pull requests](https://github.com/scikit-learn/scikit-learn/pulls?q=is%3Apr+author%3Alucyleeow+is%3Aclosed) 44 | 45 | 1. __To which OSS projects and communities do you contribute?__ 46 | 47 | I contribute to [Sphinx-Gallery](https://github.com/sphinx-gallery/sphinx-gallery) and scikit-learn. Sphinx-Gallery was a great introduction to open source for me as it is a small package that does not get a large number of issues and pull requests (unlike scikit-learn!). 48 | 49 | 1. __What do you find alluring about OSS?__ 50 | 51 | I think the ability to see the source code and contribute back to the project are the best parts. If there is a feature you are interested in you can suggest and add it yourself, all the while learning from code reviews during the process! 52 | 53 | 1. __What pain points do you observe in community-led OSS?__ 54 | 55 | I think some of the positive aspects of the OSS community can also lead to pain. While it is great that you are able to get many different perspectives from people of various backgrounds, it also makes forming a consensus more difficult, slow progress. People from any geographical location can work together asynchronously but this can also mean people work in their own silos, making it difficult to have a cohesive direction for the project. Large projects also have a difficult learning curve, making it difficult for new contributors and contributors interested in becoming core-developers. The latter is the problem if the project lacks core-developer time for project maintenance and reviewing PRs. 56 | 57 | 1. __If we discuss how far OS has evolved in 10 years, what would you like to see happen?__ 58 | 59 | Some system that enables continuity of funding, which can combine funds from public and private sources. This would enable long term planning of OS projects and give developers more job stability. Better coordination between projects within the same area (e.g., scientific Python) would allow a better experience for users using Python for their projects. 60 | 61 | 1. __What are your favorite resources, books, courses, conferences, etc?__ 62 | 63 | [Real Python](https://realpython.com/) have great tutorials and [regex101](https://regex101.com) makes regular expressions so much easier to write and review! 64 | 65 | I also love the YouTube channel [statquest](https://www.youtube.com/c/joshstarmer), which explains statistical concepts in a very accessible manner and introduces videos with a jingle - what more could you want? 66 | 67 | 1. __What are your hobbies, outside of work and open source?__ 68 | 69 | I love cycling and feel strongly about designing cities for people instead of cars. I also enjoy rock climbing (indoors and outdoors), though sadly have not had much time for this recently. 70 | -------------------------------------------------------------------------------- /_posts/2022-05-12-pyconde-keynote-reshama.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "5 Years, 10 Sprints, A scikit-learn Open Source Journey" 3 | date: May 12, 2022 4 | categories: 5 | - Events 6 | tags: 7 | - Open Source 8 | - Sprints 9 | - Community 10 | featured-image: reshama-pyconde.png 11 | 12 | postauthors: 13 | - name: Reshama Shaikh 14 | website: https://reshamas.github.io 15 | image: reshama_shaikh.jpeg 16 | --- 17 | 18 |
19 | 20 | {% include postauthor.html %} 21 |
22 | 23 | 24 | ## Video 25 | 26 | 27 | 28 | ## About 29 | 30 | We all use open source tools in various capacities, yet knowing how to contribute to open source is not as well known or accessible. The limited knowledge and education surrounding contributing to open source could be one explanation of the low participation rates by underrepresented persons in open source. Open source sprints are hands-on "workshops" or "hackathons" where contributors collaborate to resolve coding and documentation issues posted on a GitHub repository. 31 | 32 | Reshama shares how she organized her first open source sprint in 2017, which was in-person and held in New York City. Over the next 5 years, she organized in-person sprints from San Francisco, USA to Nairobi, Kenya, as well as pivoting to online sprints due to the global pandemic. In this keynote, Reshama shares highlights, challenges and lessons learned from the [sprints](https://www.dataumbrella.org/sprints). 33 | 34 | ## About Reshama Shaikh 35 | Reshama is a statistician/data scientist based in New York City. She earned her M.S. in statistics from Rutgers University. She earned her M.B.A. from NYU Stern School of Business where she studied strategy, business analytics and technology management. 36 | 37 | Reshama Shaikh is the Director of Data Umbrella. She is also on the Contributor Team for scikit-learn and [PyMC](https://docs.pymc.io/en/latest/) and an organizer for [NYC PyLadies](https://www.meetup.com/NYC-PyLadies/). 38 | 39 | 40 | ## Key Links 41 | - [Sprint Reports](https://blog.dataumbrella.org/tags/#sprint-report) 42 | - [Sprint Blogs](https://blog.dataumbrella.org/tags/#sprint-blog) 43 | 44 | 45 | ## Connecting 46 | - LinkedIn: [@reshamas](https://www.linkedin.com/in/reshamas/) 47 | - Bluesky: [@reshamas](https://bsky.app/profile/reshamas.bsky.social) 48 | - GitHub: [@reshamas](https://github.com/reshamas) 49 | - Medium: [@reshamas](https://medium.com/@reshamas) 50 | - Join the Data Umbrella [Meetup Group](https://www.meetup.com/data-umbrella/) 51 | - Subscribe to the Data Umbrella [YouTube](https://www.youtube.com/c/DataUmbrella/) 52 | 53 | 54 | 55 | 56 | ### Keynote Day 57 | 58 |

59 |

#PyConDE #PyDataBerlin
I will be delivering my keynote "5 Years, 10 Sprints, a @scikit_learn Open Source Journey"
🗓️ Tuesday, Apr 12, 2022
🕙 10:30-11:15 am ET (16:30 Berlin)#opensource #MachineLearning
You can still purchase tickets for *online* here:https://t.co/dzqekTRc9o

— Reshama Shaikh (@reshamas) April 11, 2022
60 |

61 | 62 | 63 | ### Keynote Announcement 64 | 65 |

66 |

We are proud to announce @reshamas as keynote speaker for the conference 🥳@scikit_learn @DataUmbrella https://t.co/OnAKESqqX7

— PyConDE & PyData Berlin (@PyConDE) March 28, 2022
67 |

68 | -------------------------------------------------------------------------------- /_posts/2022-09-29-salta-sprint.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "scikit-learn Sprint in Salta, Argentina" 3 | date: September 29, 2022 4 | 5 | categories: 6 | - Events 7 | tags: 8 | - Sprints 9 | - Community 10 | 11 | postauthors: 12 | - name: Juan Martín Loyola 13 | website: https://jmloyola.github.io/ 14 | image: juan-martin-loyola.jpeg 15 | --- 16 |
17 | {% include postauthor.html %} 18 |
19 | 20 | In September of 2022, the [SciPy Latin America](https://pythoncientifico.ar/) conference took place in Salta, Argentina. 21 | As part of the event, we organized a [scikit-learn sprint](https://pythoncientifico.ar/events/sprints/). 22 | The main idea was to introduce the participants to the open source world and help them make their first contribution. 23 | The sprint event was an in-person event. 24 | 25 | SciPy logo 26 | 27 | ## Schedule 28 | - September 27, 2022 - **Pre-sprint** - 10:00 to 12:00 hs (UTC -3) 29 | - September 28, 2022 - **Sprint** - 10:00 to 17:00 hs (UTC -3) 30 | 31 | ## Repository 32 | For more information in Spanish, [check this repository](https://github.com/jmloyola/sklearn-sprint-argentina-2022). 33 | You will find details about the event, instructions to set up the development environment, links with further information and tutorials, and an example git workflow to make a pull request for the project. 34 | 35 | ## Photos 36 |
37 | 11 people standing behind some computers and 2 people projected in the screen 38 |
39 | Group photo of the SciPy Latin America sprint, Salta, Argentina, 2022. Sandra Meneses and Juan Martín Loyola are projected on the screen from a Zoom call. Photo credit: Lucía Torres. 40 |
41 |
42 | 43 |
44 | 11 people coding in their computers 45 |
46 | Participants of the SciPy Latin America sprint working on their computers. Photo credit: Ariel Silvio Norberto Ramos. 47 |
48 |
49 | 50 | ## Acknowledgment 51 | These people made this sprint possible: 52 | - Ariel Silvio Norberto Ramos, one of the organizers of the SciPy Latin America, 53 | - [Data Umbrella](https://www.dataumbrella.org/), [one of the community partners of the event](https://twitter.com/ScipyLA/status/1573710649963724802), especially Sandra Meneses and Reshama Shaikh, 54 | - The mentors that helped run the sprint. 55 | -------------------------------------------------------------------------------- /_posts/2022-10-13-joining-forces-hugging-face.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "scikit-learn and Hugging Face join forces" 3 | date: October 13, 2022 4 | 5 | categories: 6 | - Updates 7 | - Community 8 | tags: 9 | - Open Source 10 | 11 | featured-image: HFxsklearn.png 12 | 13 | postauthors: 14 | - name: Lysandre Debut 15 | email: lysandre@huggingface.co 16 | website: https://github.com/LysandreJik 17 | image: "lysandre_debut.jpg" 18 | - name: François Goupil 19 | email: francois.goupil@inria.fr 20 | website: https://github.com/francoisgoupil 21 | image: "francois_goupil.jpeg" 22 | --- 23 |
24 | 25 | {% include postauthor.html %} 26 |
27 | 28 | 29 | [Hugging Face](hf.co) is happy to announce that we're partnering with [scikit-learn](https://scikit-learn.org/stable/index.html) to further our support of the machine learning tools and ecosystem. 30 | 31 | At Hugging Face, we've been putting a lot of effort into supporting deep learning, but we believe that machine learning as a whole can benefit from the tools we release. With statistical machine learning being essential in this field and scikit-learn dominating statistical ML, we're excited to partner and move forward together. 32 | 33 | As of September 2022, the Hugging Face Hub already hosts nearly 4,000 tabular classification and tabular regression model checkpoints, and we strive for this trend to continue. 34 | 35 |
36 | 39 |
40 | 41 | ## Support to the scikit-learn consortium 42 | 43 | Starting June 2022, Hugging Face is now an official sponsor of the scikit-learn consortium . Through this support, Hugging Face actively promotes the development and sustainability of sklearn. As a sponsor of the scikit-learn consortium hosted at the Inria foundation, we'll now participate in the scikit-learn consortium technical committee 44 | 45 | ## Development support 46 | To help  sustaining the development of the library , we're happy to welcome Adrin Jalali and Benjamin Bossan to the Hugging Face team. Adrin is a core developer of scikit-learn as well as [fairlearn](fairlearn.org), while Benjamin is the author of the [skorch](https://github.com/skorch-dev/skorch) library and is now a contributor to scikit-learn. 47 | 48 | Hugging Face is happy to support the development of scikit-learn through code contributions, issues, pull requests, reviews, and discussions. 49 | 50 | ## Integration to and from the Hugging Face Hub 51 | 52 | ["Skops"](https://github.com/skops-dev/skops) is the name of the framework being actively developed as the link between the scikit-learn and the Hugging Face ecosystems. With Skops, we hope to facilitate essential workflows: 53 | 54 | - The ability to push scikit-learn models on the Hugging Face Hub 55 | - The possibility to try out models directly in the browser 56 | - The automatic creation of model cards, to improve model documentation and understanding 57 | - The ability to collaborate with others on machine learning projects 58 | 59 | ### Snapshot of your work 60 | 61 | Working at the intersection of scikit-learn and the Hub offers challenges linked to the two platforms. One of these challenges is secure persistence: the ability to serialize models in a secure, safe manner. 62 | 63 | scikit-learn models (estimators, predictors, ...) are usually saved using pickle, which is notorious for not being a secure format. Sharing scikit-learn models in this format exposes receivers to potentially malicious data which could execute arbitrary code when run. 64 | 65 | That's where secure persistence comes in: as the Hugging Face Hub aims to provide a platform for models, the ability to share safe, secure objects is essential. We've been working on adding secure persistence for scikit-learn models in [skops#128](https://github.com/skops-dev/skops/pull/128) and [skops#145](https://github.com/skops-dev/skops/pull/145)([doc preview](https://skops--145.org.readthedocs.build/en/145/persistence.html)). Instead of serializing using pickle, the object's contents are put into a zip file with an accompanying schema JSON file. 66 | 67 | Read about the Skops library in the following blog post: [Introducing Skops](https://huggingface.co/blog/skops). 68 | 69 | ## Improving interoperability 70 | 71 | Skops is an example of an integration of scikit-learn within our tools, but it is not the only example! We will strive to integrate with the rest of our ecosystem so that Hugging Face users may benefit from using scikit-learn tools and vice-versa. 72 | 73 | An example is the `evaluate` library, dedicated to efficiently evaluating machine learning models and datasets. We aim for this tool to natively support [scikit-learn metrics](https://github.com/huggingface/evaluate/issues/297) in its API. 74 | 75 | --- 76 | 77 | Through these efforts, we hope to kickstart a lasting relationship between the two ecosystems and provide simple, efficient bridges to lower the barrier of entry. We believe that educating and sharing models is the best way to foster inclusive machine learning from which all can benefit. We're excited to partner with scikit-learn for this endeavor. 78 | -------------------------------------------------------------------------------- /_posts/2022-11-08-pandas-dataframe-output-for-sklearn-transformer.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Pandas DataFrame Output for sklearn Transformers" 3 | date: November 8, 2022 4 | categories: 5 | - Technical 6 | tags: 7 | - Performance 8 | featured-image: pandas_output_sklearn_transformers.PNG 9 | 10 | postauthors: 11 | - name: Sangam SwadiK 12 | website: https://www.linkedin.com/in/sangam-swadi-k/ 13 | image: sangam_swadik.jpg 14 | --- 15 | 16 |
17 | 18 | {% include postauthor.html %} 19 |
20 | 21 | ## Video 22 | 23 | 24 | ## Upcoming feature in release 1.2 25 | Starting with the next release of [scikit-learn](https://github.com/scikit-learn/scikit-learn) (v1.2), pandas dataframe output will be available for all sklearn transformers! This will make running pipelines on dataframes much easier and provide better ways to track feature names. Previously, mapping a transformed output back into columns would be cumbersome as it might not be a one-to-one mapping in cases of complex preprocessing (e.g., polynomial features). 26 | 27 | The pandas dataframe output feature for transformers solves this by tracking features generated from pipelines automatically. The transformer output format can be configured explictly for either **numpy** or **pandas** output formats as shown in [sklearn.set_config](https://scikit-learn.org/dev/modules/generated/sklearn.set_config.html#sklearn.set_config) and the sample code below. 28 | ```python 29 | from sklearn import set_config 30 | set_config(transform_output = "pandas") 31 | ``` 32 | 33 | See the sample notebook, [pandas-dataframe-output-for-sklearn-transformer.ipynb](https://github.com/scikit-learn/blog/blob/main/assets/notebooks/sklearn-pandas-df-output.ipynb) and documentation for a more detailed example and usage. 34 | 35 | ## Links to documentation and example notebook 36 | - [Pandas output for transformers documentation](https://scikit-learn.org/dev/auto_examples/miscellaneous/plot_set_output.html#sphx-glr-auto-examples-miscellaneous-plot-set-output-py) 37 | - [pandas-dataframe-output-for-sklearn-transformer.ipynb](https://github.com/scikit-learn/blog/blob/main/assets/notebooks/sklearn-pandas-df-output.ipynb) 38 | 39 | 40 | ## Reporting bugs 41 | We'd love your feedback on this. In case of any suggestions or bugs, please report them at 42 | [scikit-learn issues](https://github.com/scikit-learn/scikit-learn/issues) 43 | 44 | Thanks 🙏🏾 to maintainers: [**Thomas J. Fan**](https://github.com/thomasjpfan), [**Guillaume Lemaitre**](https://github.com/glemaitre) , [**Christian Lorentzen**](https://github.com/lorentzenchr) !! -------------------------------------------------------------------------------- /_posts/2023-07-11-nvidia-is-a-new-sponsor.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "NVIDIA Is A New Sponsor Of The Scikit-Learn consortium at the Inria Foundation" 3 | date: November 14, 2023 4 | 5 | categories: 6 | - Funding 7 | tags: 8 | - Sponsor 9 | 10 | featured-image: NVIDIAxsklearn.jpg 11 | 12 | postauthors: 13 | - name: NVIDIA 14 | website: https://developer.nvidia.com/gpu-accelerated-libraries 15 | image: "nvidia-logo.png" 16 | - name: François Goupil 17 | email: francois.goupil@inria.fr 18 | website: https://github.com/francoisgoupil 19 | image: "francois_goupil.jpeg" 20 | --- 21 |
22 | 23 | {% include postauthor.html %} 24 |
25 | 26 | *Sponsored blog post* 27 | 28 | We are thrilled to announce that [NVIDIA](https://www.nvidia.com) has joined the [scikit-learn consortium](https://scikit-learn.fondation-inria.fr/) as a corporate partner. As a leading provider of GPU-accelerated computing solutions, we at NVIDIA recognize the importance of machine learning and the role it plays in the growth of many industries and areas of science. Our partnership with the scikit-learn consortium demonstrates our commitment to supporting the development and advancement of open-source software in the machine learning community. 29 | 30 |
31 | 34 |
35 | 36 | [Scikit-learn](https://scikit-learn.org/stable/) is a popular open-source Python library for machine learning. One of the strengths of scikit-learn is its ease of use and well-defined API. This makes it a favorite tool among data scientists and machine learning practitioners. Thanks to its active community and continuous development, scikit-learn is constantly evolving and improving. 37 | 38 | At NVIDIA, we believe that investing in open-source projects like scikit-learn is important. Afterall, it is a central component of the modern data stack in both science and industry. By financially supporting the scikit-learn consortium, we are contributing to the long-term sustainability of scikit-learn and helping to ensure that it remains an easy to use, reliable and valuable tool for years to come. Furthermore, we hope to help advance the project's development, improve its performance, and enhance its capabilities for machine learning on GPUs. 39 | 40 | Our partnership with the scikit-learn consortium will also enable us to collaborate more closely with the scikit-learn community, and provide us with insights into how we can improve NVIDIA’s [RAPIDS open-source libraries](https://developer.nvidia.com/rapids) to better serve their needs. We are committed to working with the foundation to ensure that scikit-learn remains a powerful and easy to use machine learning library that meets the needs of data science practitioners in science and industry. 41 | 42 | NVIDIA’s commitment to scikit-learn goes beyond financial support. We have hired [Tim Head](https://betatim.github.io), an experienced open-source maintainer, to work full-time on the project. This is not Tim’s first open-source rodeo. He has previously contributed to several high-profile open-source projects, including Project Jupyter. His focus will be reviewing pull requests and coordinating the development of large features. Tim was recently elected as a core maintainer of scikit-learn. His expertise and experience will be invaluable in ensuring the continued growth and success of the project. 43 | 44 | In summary, NVIDIA’s partnership with the scikit-learn consortium is an important step in our ongoing commitment to support the development and growth of open-source software in the machine learning community. We are excited to work with the foundation and the community of contributors to help advance the capabilities of scikit-learn and accelerate the development of machine learning applications. 45 | 46 | AI helped write this blog post! 47 | -------------------------------------------------------------------------------- /_posts/2023-09-12-paris-dev-sprint.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "scikit-learn 2023 In-person Developer Sprint in Paris, France" 3 | date: September 10, 2023 4 | 5 | categories: 6 | - Events 7 | tags: 8 | - Sprints 9 | - Community 10 | featured-image: 2023-paris-dev-sprint.png 11 | 12 | postauthors: 13 | - name: Reshama Shaikh 14 | website: https://reshamas.github.io 15 | image: reshama_shaikh.jpeg 16 | - name: François Goupil 17 | email: francois.goupil@inria.fr 18 | website: https://github.com/francoisgoupil 19 | image: "francois_goupil.jpeg" 20 | --- 21 |
22 | {% include postauthor.html %} 23 |
24 | 25 | 26 | During the week of June 19 to 23, 2023, the scikit-learn team held its first developers sprint since 2019! The sprint took place in Paris, France at the Dataiku office. The sprint event was an in-person event and had 32 participants. 27 | 28 | The following [scikit-learn team members](https://scikit-learn.org/stable/about.html) joined the sprint: 29 | 30 | 1. Adrin Jalali 31 | 1. Arturo Amor Quiroz 32 | 1. François Goupil (@francoisgoupil) 33 | 1. Frank Charras (@fcharras) 34 | 1. Gael Varoquaux (@GaelVaroquaux) 35 | 1. Guillaume Lemaitre (@glemaitre) 36 | 1. Jérémie du Boisberranger (@jeremiedbb) 37 | 1. Joris Van den Bossche 38 | 1. Julien Jerphanion (@jjerphan) 39 | 1. Loïc Estève 40 | 1. Maren Westermann 41 | 1. Olivier Grisel (@ogrisel) 42 | 1. Roman Yurchak 43 | 1. Thomas Fan 44 | 1. Tim Head (@betatim) 45 | 46 | The following community members joined the sprint: 47 | 48 | 1. Alexandre Landeau 49 | 1. Alexandre Vigny 50 | 1. Chaine San Buenaventura 51 | 1. Camille Troillard 52 | 1. Denis Engemann 53 | 1. Franck Charras 54 | 1. Harizo Rajaona 55 | 1. Ines (intern at Dataiku) 56 | 1. Jovan Stojanovic 57 | 1. Leo Dreyfus-Schmidt 58 | 1. Léo Grinsztajn 59 | 1. Lilian Boulard 60 | 1. Louis Fouquet 61 | 1. Riccardo Cappuzzo 62 | 1. Samuel Ronsin 63 | 1. Vincent Maladière 64 | 1. Yann Lechelle 65 | 66 | 67 |
68 | group of people who participated in the sprint 69 |
70 | scikit-learn Developer Sprint, Paris, June 2023; Photo credit: Copyright: Inria / Photo B. Fourrier, June 2023; (from left to right, back to front): 71 | Last Row: Denis Engemann, Riccardo Cappuzzo, François Goupil, Tim Head, Guillaume Lemaitre, Louis Fouquet, Jérémie du Boisberranger, Frank Charras, Léo Grinsztajn, Arturo Amor Quiroz. 72 | Middle Row: Thomas Fan, Lilian Boulard, Gaël Varoquaux, Ines, Jovan Stojanovic, Chaine San Buenaventura. 73 | First Row: Olivier Grisel, Harizo Rajaona, Vincent Maladière. 74 |
75 |
76 | 77 | ## Sponsors 78 | - Dataiku provided the space and some of the food, as well as all of the coffee. 79 | - The scikit-learn consortium organized the sprint, paid for the lunch, the travel and accommodation expenses. 80 | 81 | ## Topics covered at the sprint 82 | - PR #13649: [Monotonic constraints for Tree-based models](https://github.com/scikit-learn/scikit-learn/pull/13649) 83 | - Discussed the vision/future directions for the project. What is important to keep the project relevant in the future. 84 | - Should we share some points beyond the vision statement? 85 | - Thomas F will try and create a vision statement 86 | - Discussed what people are keeping an eye on with a two year time scale in mind in terms of technology and developments that are relevant. 87 | - Tim: keep improving our documentation (not just expanding it but also “gardening” to keep it readable) 88 | - Tim: increase active outreach and communication about new features/improvements and other changes. A lot of cool things in scikit-learn are virtually unknown to the wider public (e.g. Hist grad boosting being on par with lightgbm in terms of performance, …) 89 | 90 | 91 | ### What is next? 92 | 93 | We are discussing co-locating with OpenML in 2024 in Berlin, Germany to organize another developers' sprint. 94 | 95 | 96 |
97 | group of people who participated in the sprint 98 |
99 | scikit-learn Developer Sprint, Paris, June 2023; Photo credit: Copyright Inria / Photo B. Fourrier, June 2023; (from left to right): Thomas Fan, Olivier Grisel 100 |
101 |
102 | -------------------------------------------------------------------------------- /_posts/2023-27-11-mentoring.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "My mentored internship at scikit-learn" 3 | date: November 27, 2023 4 | 5 | categories: 6 | - Diversity 7 | tags: 8 | - Internship 9 | - Diversity 10 | - Inclusiveness 11 | 12 | 13 | postauthors: 14 | - name: Stefanie Senger 15 | email: stefanie.senger@posteo.de 16 | website: https://github.com/StefanieSenger 17 | image: "stefanie-senger.jpeg" 18 | 19 | - name: François Goupil 20 | email: francois.goupil@inria.fr 21 | website: https://github.com/francoisgoupil 22 | image: "francois_goupil.jpeg" 23 | --- 24 |
25 | 26 | {% include postauthor.html %} 27 |
28 | 29 | ## How it is to be an Intern at scikit-learn 30 | 31 | My name is Stefanie Senger, and I recently concluded a five-month mentored internship at scikit-learn, that had been funded by NumFocus as a Small Development Grant with a clear focus on fostering diversity in open-source projects. The idea to couple a grant with mentorship traces back to Maren Westermann's initiative. She envisioned a pathway to integrate more female coders into scikit-learn through internships and support. Scikit-learn would profit from fresh perspectives and some disruption. I was the guinea pig for an initial experiment, as Maren later told me. 32 | 33 | 34 | ## Starting the Internship 35 | 36 | As someone transitioning from a non-technical background to coding, working on scikit-learn was a big thing for me. I had participated in and taught at a data science boot camp, searching diligently for a first role in the field. I never doubted I could tackle more difficult tech challenges over time, but I knew there was much to learn. Scikit-learn had a heavy-tech aura to me, and when I discovered the internship ad, I just thought: this. I was genuinely taken aback when accepted for the role, though. There are many more experienced people looking for such an opportunity, after all. 37 | 38 | When I got to know better both my mentors, Adrin Jalali and Guillaume Lemaitre, it became quickly clear that only effort was required, and I could ask them any question along the way. I felt very welcome in the community, also by the other people I interacted with on GitHub. 39 | 40 | 41 | ## What I Worked on 42 | 43 | I began by working on documentation and examples such as "Multi-class AdaBoosted Decision Trees," to make those more comprehensive and helpful for users. Then some maintenance tasks on the code that were repetitive so I could find out what to do from other contributors' pull requests. Guillaume discovered that one AdaBoost algorithm required deprecation, and it fell on me to execute this. I had never looked at such a huge code base with so many layers of abstraction, and I had to learn quite some more Python to be able to go ahead. I even got the opportunity to present an "Intro to scikit-learn" workshop at EuroSciPy, the European conference on the scientific use of Python in Basel, where I also got to know many other contributors and people from the scikit-learn team at Inria. 44 | 45 | Adrin introduced me to the challenging task of implementing a new feature for metadata routing, developed over many years by the scikit-learn community. It allows users to set metadata, such as sample weights, in meta estimators, that can be routed to sub-estimators and other algorithms that are able to consume it. This was partly uncharted territory and meant finding solutions where there was no predefined path and adapting tests to match the expected behavior. In the last two months of my internship, I implemented metadata routing into some meta-estimators, which was tremendously difficult but, once accomplished, has nourished my professional confidence since. 46 | 47 | 48 | ## Mentorship in Action 49 | 50 | Let me describe how the mentoring worked because Guillaume's and Adrin's support was invaluable. They would both literally drop their tasks when I had questions and right away hint me in the right direction. I met Adrin twice a week, and we would co-work while I would throw questions at him. Guillaume was available remotely, and I knew he would jump into a video call with me when I needed help. They both gave reviewing my PRs a priority, and I got feedback on my work regularly. 51 | 52 | It was essential to have mentors signaling that it's okay to be learning and to propose tasks to me. If I had come into the project individually, I might have hesitated to take on most of the issues I ended up working on, fearing that my skills were insufficient and that I would hinder the progress of the project rather than help it. The mentoring setting gave me a justification to try things that I wasn't sure if I could do. 53 | 54 | 55 | ## Becoming a Community Member 56 | 57 | Looking ahead, I will continue contributing to scikit-learn. As I've gotten to know quite a few of the other contributors in person, I now feel part of the community. I know they care about values like openness and diversity, that I share, and while acknowledging the complexity of the code base, I know what I can learn from taking on issues and the sense of accomplishment when merging my solution into the main branch. And I love contributing to something meaningful, which is something I had always sought. 58 | -------------------------------------------------------------------------------- /_posts/2024-05-04-authorship-info.md: -------------------------------------------------------------------------------- 1 | --- 2 | #### Blog Post Template #### 3 | 4 | #### Post Information #### 5 | title: "Note on Inline Authorship Information in scikit-learn" 6 | date: May 4, 2024 7 | 8 | #### Post Category and Tags #### 9 | # Format in titlecase without dashes (Ex. "Open Source" instead of "open-source") 10 | categories: 11 | - Updates 12 | tags: 13 | - Open Source 14 | - Machine Learning 15 | - License 16 | 17 | #### Featured Image #### 18 | featured-image: BSD_watermark.svg 19 | 20 | #### Author Info #### 21 | # Can accomodate multiple authors 22 | # Add SQUARE Author Image to /assets/images/author_images/ folder 23 | postauthors: 24 | - name: Adrin Jalali 25 | website: https://adrin.info/ 26 | image: adrin-jalali.jpeg 27 | --- 28 |
29 | 30 | {% include postauthor.html %} 31 |
32 | 33 | Historically, scikit-learn's files have included authorship information similar 34 | to the following format: 35 | 36 | ```python 37 | # Authors: Author1, Author2, ... 38 | # License: BSD 3 clause 39 | ``` 40 | 41 | However, after a series of discussions which you can see in detail in [this 42 | issue]( https://github.com/scikit-learn/scikit-learn/pull/28799), we could list 43 | the following caveats to the status quo: 44 | 45 | - Authorship information was not up-to-date and in most cases, but not always, 46 | reflect the original authors of the file; 47 | - It was unfair to all other contributors who have been contributing to the 48 | code-base; 49 | - One can check the real authors and the history of the authors of any part of 50 | the code-base using `git blame` and other `git` tools. 51 | 52 | Therefore we came to the conclusion to standardize all authorship information to 53 | mention "The scikit-learn developers", and have the license notice as: 54 | 55 | ```python 56 | # Authors: The scikit-learn developers 57 | # SPDX-License-Identifier: BSD-3-Clause 58 | ``` 59 | 60 | The change is to happen gradually in the coming months after April 2024. 61 | -------------------------------------------------------------------------------- /_posts/2024-07-18-yao-interview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Interview with Yao Xiao, scikit-learn Team Member" 3 | date: July 18, 2024 4 | categories: 5 | - Team 6 | tags: 7 | - Open Source 8 | featured-image: 9 | 10 | postauthors: 11 | - name: Reshama Shaikh 12 | website: https://reshamas.github.io 13 | image: reshama_shaikh.jpeg 14 | - name: Yao Xiao 15 | website: https://charlie-xiao.github.io/ 16 | image: yao-xiao.jpeg 17 | --- 18 | 19 |
20 | 21 | {% include postauthor.html %} 22 |
23 | 24 | Yao Xiao recently earned his undergraduate degree in mathematics and computer science. He will be pursuing a Master’s degree in Computational Science and Engineering at Harvard SEAS. Yao joined the scikit-learn team in February 2024. 25 | 26 | 1. __Tell us about yourself.__ 27 | 28 | My name is Yao Xiao and I live in Shanghai, China. At the time of interview I have just got my Bachelor’s degree in Honors Mathematics and Computer Science at NYU Shanghai, and I’m going to pursue a Master’s degree in Computational Science and Engineering at Harvard SEAS. My current research interests are in networks and systems (e.g. sys4ml and ml4sys), but this may change in the future. 29 | 30 | - GitHub: [@Charlie](https://github.com/Charlie-XIAO) 31 | - LinkedIn: [@yao-xiao](https://www.linkedin.com/in/yao-xiao-200073244/) 32 | - Website: [https://charlie-xiao.github.io](https://charlie-xiao.github.io/) 33 | 34 | 1. __How did you first become involved in open source and scikit-learn?__ 35 | 36 | In my junior year I took a course at NYU Courant called Open Source Software Development where we needed to make contributions to an open source software as our final project - and I chose scikit-learn. 37 | 38 | 1. __We would love to learn of your open source journey.__ 39 | 40 | I was lucky to get involved in a pretty easy meta-issue when I first started contributing to scikit-learn. I made quite a few PRs towards that issue, familiarizing myself with the coding standards, contributing workflow etc., and during which I gradually explored the codebase and learned a lot from maintainers how to write better code. After that meta-issue was completed, I decided to continue contributing since I enjoyed the experience, and I started looking through the open issues, tried reproducing and investigating them, then opened PRs for those that I was able to solve. It is the process of familiarizing with more parts of the codebase, being able to make more PRs, so on and so forth. While contributing to scikit-learn, sometimes there are also issues to solve upstream, so I also had opportunities to contribute to projects like pandas and pydata-sphinx-theme. Up till today I’m still far from familiar with the entire scikit-learn project, but I will definitely continue the amazing open-source journey. 41 | 42 | 1. __To which OSS projects and communities do you contribute?__ 43 | 44 | I have contributed to scikit-learn, pandas, pydata-sphinx-theme, sphinx-gallery. I’m also writing some small softwares that I decide to make open source. 45 | 46 | 1. __What do you find alluring about OSS?__ 47 | 48 | It is amazing to feel that my code is being used by so many people all around the world through contributing to open source projects. Well it might be inappropriate to say “my code”, but I do feel like making some actual contributions to the community instead of just writing code for myself. Also OSS makes me care about code quality and so on instead of merely making things “work”, which is very important for programmers but not really taught in school. 49 | 50 | 1. __What pain points do you observe in community-led OSS?__ 51 | 52 | Collaboration can lead to better code but also slows down the development process. Especially when there are not enough reviewers around, issues and PRs can easily get stale or forgotten. But I would say it’s more like a tradeoff rather than a pain point. 53 | 54 | 1. __If we discuss how far OS has evolved in 10 years, what would you like to see happen?__ 55 | 56 | I couldn’t say about the past 10 years since I’ve only been involved for about one and a half years, but regarding the scientific Python ecosystem I would like to see better coordination across projects (which is already happening). For instance a common interface for array libraries and dataframe libraries would allow downstream dependents to easily provide more flexible support for different input/output types, etc. And as a Chinese I would also hope that open source can thrive in my country some day as well. 57 | 58 | 1. __What are your favorite resources, books, courses, conferences, etc?__ 59 | 60 | As for physical books I would recommend *The Pragmatic Programmer* by Andy Hunt and Dave Thomas, and *Refactoring: Improving the Design of Existing Code* by Martin Fowler and Kent Back. As for courses I like MIT’s *The Missing Semester of Your CS Education*. In particular about learning Python, *The Python Tutorial* in the official Python documentation is good enough for me. By the way I want to mention that **documentations** of most languages and popular packages are very nice and they are the best place to learn the most up-to-date information. 61 | 62 | 1. __What are your hobbies, outside of work and open source?__ 63 | 64 | I would say my largest hobby is programming (not for school, not for work, just for fun). I’ve recently been fascinated with [Tauri](https://v2.tauri.app/) and wrote a lot of small desktop applications for myself in my spare time. Apart from this I also love playing the piano and I’m an anime lover, so I often listen to or play piano versions of anime theme songs (mostly arranged by [Animenz](https://www.animenzpiano.com/)). 65 | -------------------------------------------------------------------------------- /_posts/2024-09-02-survey-announcement.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Announcing the launch of the scikit-learn user survey" 3 | date: September 2, 2024 4 | 5 | categories: 6 | - Updates 7 | tags: 8 | - Community 9 | - Open Source 10 | 11 | postauthors: 12 | - name: Inessa Pawson 13 | email: inessapawson@gmail.com 14 | website: https://github.com/inessapawson 15 | image: "inessa-pawson.jpg" 16 | - name: François Goupil 17 | email: francois.goupil@inria.fr 18 | website: https://github.com/francoisgoupil 19 | image: "francois_goupil.jpeg" 20 | --- 21 |
22 | 23 | {% include postauthor.html %} 24 |
25 | 26 | We are excited to announce the launch of the scikit-learn user survey! Scikit-learn 27 | continues to evolve thanks to contributions from its diverse user community. As we plan 28 | for future releases, we want to ensure we are focusing on what matters most to you — our 29 | users. 30 | 31 | The goal of this survey is to better understand how users interact with the library, 32 | identify any pain points, learn about the features you find most useful, and what’s 33 | missing. This is your chance to have a say in how the library grows and adapts to meet 34 | the evolving needs of the machine learning community. 35 | 36 | The survey will take about 15 minutes of your time. It is available in Arabic, French, 37 | English, Japanese, Mandarin, Spanish, and Portuguese. You have the option to remain 38 | completely anonymous, and the data collected will be used solely for the purpose of 39 | improving scikit-learn. 40 | 41 | This user survey is a truly collaborative effort. We would like to thank the teams from 42 | probabl, University of Oxford (UK), and POSSEE OpenTeams, as well as many scikit-learn 43 | contributors, for their time and effort in designing and translating it. 44 | 45 | Once the survey closes, we’ll analyze the responses and publish the findings in a 46 | follow-up blog post. 47 | 48 | To take the survey, visit: 49 | [https://forms.gle/p5P7AweCJCbFMzfo6](https://forms.gle/p5P7AweCJCbFMzfo6). 50 | The survey will remain open until October 14th, 2024, and we encourage you to share it with your 51 | colleagues and extended network. 52 | 53 | We value every contribution in our community, and we’re committed to making scikit-learn 54 | even better. Your feedback is the foundation upon which scikit-learn will continue to 55 | grow and evolve. We look forward to hearing from you! 56 | -------------------------------------------------------------------------------- /_posts/templates/2022-01-01-template-post.markdown: -------------------------------------------------------------------------------- 1 | --- 2 | #### Blog Post Template #### 3 | 4 | #### Post Information #### 5 | title: "Blog Post Template" 6 | date: January 4, 2022 7 | 8 | #### Post Category and Tags #### 9 | # Format in titlecase without dashes (Ex. "Open Source" instead of "open-source") 10 | categories: 11 | - Updates 12 | tags: 13 | - Open Source 14 | - Machine Learning 15 | 16 | #### Featured Image #### 17 | featured-image: jml.png 18 | 19 | #### Author Info #### 20 | # Can accomodate multiple authors 21 | # Add SQUARE Author Image to /assets/images/author_images/ folder 22 | postauthors: 23 | - name: First Author 24 | website: https://github.com 25 | email: author@email.com 26 | image: author.jpeg 27 | --- 28 |
29 | 30 | {% include postauthor.html %} 31 |
32 | 33 | Enter blog content here. 34 | -------------------------------------------------------------------------------- /_posts/templates/2022-01-01-test-author-post.markdown: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Author Template" 3 | date: January 4, 2022 4 | categories: 5 | - Updates 6 | tags: 7 | - Open Source 8 | image: 9 | feature: posts_images/AFME2-photo.png 10 | thumb: posts_images/AFME2-photo.png 11 | 12 | postauthors: 13 | - name: Test Author 14 | email: postauthor@gmail.com 15 | website: https://github.io 16 | image: "reshama_shaikh.jpeg" 17 | - name: Test Author 2 18 | email: postauthor2@gmail.com 19 | website: https://github.io 20 | image: reshama_shaikh.jpeg 21 | --- 22 |
23 | 24 | {% include postauthor.html %} 25 |
26 | 27 | 28 | Enter blog content here. 29 | 30 | -------------------------------------------------------------------------------- /_sass/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/_sass/.DS_Store -------------------------------------------------------------------------------- /_sass/minimal-mistakes.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Minimal Mistakes Jekyll Theme 4.24.0 by Michael Rose 3 | * Copyright 2013-2020 Michael Rose - mademistakes.com | @mmistakes 4 | * Licensed under MIT (https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE) 5 | */ 6 | 7 | /* Variables */ 8 | @import "minimal-mistakes/variables"; 9 | 10 | /* Mixins and functions */ 11 | @import "minimal-mistakes/vendor/breakpoint/breakpoint"; 12 | @include breakpoint-set("to ems", true); 13 | @import "minimal-mistakes/vendor/magnific-popup/magnific-popup"; // Magnific Popup 14 | @import "minimal-mistakes/vendor/susy/susy"; 15 | @import "minimal-mistakes/mixins"; 16 | 17 | /* Core CSS */ 18 | @import "minimal-mistakes/reset"; 19 | @import "minimal-mistakes/base"; 20 | @import "minimal-mistakes/forms"; 21 | @import "minimal-mistakes/tables"; 22 | @import "minimal-mistakes/animations"; 23 | 24 | /* Components */ 25 | @import "minimal-mistakes/buttons"; 26 | @import "minimal-mistakes/notices"; 27 | @import "minimal-mistakes/masthead"; 28 | @import "minimal-mistakes/navigation"; 29 | @import "minimal-mistakes/footer"; 30 | @import "minimal-mistakes/search"; 31 | @import "minimal-mistakes/syntax"; 32 | 33 | /* Utility classes */ 34 | @import "minimal-mistakes/utilities"; 35 | 36 | /* Layout specific */ 37 | @import "minimal-mistakes/page"; 38 | @import "minimal-mistakes/archive"; 39 | @import "minimal-mistakes/sidebar"; 40 | @import "minimal-mistakes/print"; 41 | -------------------------------------------------------------------------------- /_sass/minimal-mistakes/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/_sass/minimal-mistakes/.DS_Store -------------------------------------------------------------------------------- /_sass/minimal-mistakes/_animations.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | ANIMATIONS 3 | ========================================================================== */ 4 | 5 | @-webkit-keyframes intro { 6 | 0% { 7 | opacity: 0; 8 | } 9 | 100% { 10 | opacity: 1; 11 | } 12 | } 13 | 14 | @keyframes intro { 15 | 0% { 16 | opacity: 0; 17 | } 18 | 100% { 19 | opacity: 1; 20 | } 21 | } -------------------------------------------------------------------------------- /_sass/minimal-mistakes/_buttons.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | BUTTONS 3 | ========================================================================== */ 4 | 5 | /* 6 | Default button 7 | ========================================================================== */ 8 | 9 | .btn { 10 | /* default */ 11 | display: inline-block; 12 | margin-bottom: 0.25em; 13 | padding: 0.5em 1em; 14 | font-family: $sans-serif; 15 | font-size: $type-size-6; 16 | font-weight: bold; 17 | text-align: center; 18 | text-decoration: none; 19 | border-width: 0; 20 | border-radius: $border-radius; 21 | cursor: pointer; 22 | 23 | .icon { 24 | margin-right: 0.5em; 25 | } 26 | 27 | .icon + .hidden { 28 | margin-left: -0.5em; /* override for hidden text*/ 29 | } 30 | 31 | /* button colors */ 32 | $buttoncolors: 33 | (primary, $primary-color), 34 | (inverse, #fff), 35 | (light-outline, transparent), 36 | (success, $success-color), 37 | (warning, $warning-color), 38 | (danger, $danger-color), 39 | (info, $info-color), 40 | (facebook, $facebook-color), 41 | (twitter, $twitter-color), 42 | (linkedin, $linkedin-color), 43 | (bluesky, $bluesky-color), 44 | (mastodon, $mastodon-color); 45 | 46 | 47 | @each $buttoncolor, $color in $buttoncolors { 48 | &--#{$buttoncolor} { 49 | @include yiq-contrasted($color); 50 | @if ($buttoncolor == inverse) { 51 | border: 1px solid $border-color; 52 | } 53 | @if ($buttoncolor == light-outline) { 54 | border: 1px solid #fff; 55 | } 56 | 57 | &:visited { 58 | @include yiq-contrasted($color); 59 | } 60 | 61 | &:hover { 62 | @include yiq-contrasted(mix(#000, $color, 20%)); 63 | } 64 | } 65 | } 66 | 67 | /* fills width of parent container */ 68 | &--block { 69 | display: block; 70 | width: 100%; 71 | 72 | + .btn--block { 73 | margin-top: 0.25em; 74 | } 75 | } 76 | 77 | /* disabled */ 78 | &--disabled { 79 | pointer-events: none; 80 | cursor: not-allowed; 81 | filter: alpha(opacity=65); 82 | box-shadow: none; 83 | opacity: 0.65; 84 | } 85 | 86 | /* extra large button */ 87 | &--x-large { 88 | font-size: $type-size-4; 89 | } 90 | 91 | /* large button */ 92 | &--large { 93 | font-size: $type-size-5; 94 | } 95 | 96 | /* small button */ 97 | &--small { 98 | font-size: $type-size-7; 99 | } 100 | } -------------------------------------------------------------------------------- /_sass/minimal-mistakes/_footer.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | FOOTER 3 | ========================================================================== */ 4 | 5 | .page__footer { 6 | @include clearfix; 7 | float: left; 8 | margin-left: 0; 9 | margin-right: 0; 10 | width: 100%; 11 | margin-top: 3em; 12 | color: $muted-text-color; 13 | -webkit-animation: $intro-transition; 14 | animation: $intro-transition; 15 | -webkit-animation-delay: 0.45s; 16 | animation-delay: 0.45s; 17 | background-color: $footer-background-color; 18 | 19 | footer { 20 | @include clearfix; 21 | margin-left: auto; 22 | margin-right: auto; 23 | margin-top: 2em; 24 | max-width: 100%; 25 | padding: 0 1em 2em; 26 | 27 | @include breakpoint($x-large) { 28 | max-width: $x-large; 29 | } 30 | } 31 | 32 | a { 33 | color: inherit; 34 | text-decoration: none; 35 | 36 | &:hover { 37 | text-decoration: underline; 38 | } 39 | } 40 | 41 | .fas, 42 | .fab, 43 | .far, 44 | .fal { 45 | color: $muted-text-color; 46 | } 47 | } 48 | 49 | .page__footer-copyright { 50 | font-family: $global-font-family; 51 | font-size: $type-size-7; 52 | } 53 | 54 | .page__footer-follow { 55 | ul { 56 | margin: 0; 57 | padding: 0; 58 | list-style-type: none; 59 | } 60 | 61 | li { 62 | display: inline-block; 63 | padding-top: 5px; 64 | padding-bottom: 5px; 65 | font-family: $sans-serif-narrow; 66 | font-size: $type-size-6; 67 | text-transform: uppercase; 68 | } 69 | 70 | li + li:before { 71 | content: ""; 72 | padding-right: 5px; 73 | } 74 | 75 | a { 76 | padding-right: 10px; 77 | font-weight: bold; 78 | } 79 | 80 | .social-icons { 81 | a { 82 | white-space: nowrap; 83 | } 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /_sass/minimal-mistakes/_masthead.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | MASTHEAD 3 | ========================================================================== */ 4 | 5 | .masthead { 6 | position: relative; 7 | border-bottom: 1px solid $border-color; 8 | -webkit-animation: $intro-transition; 9 | animation: $intro-transition; 10 | -webkit-animation-delay: 0.15s; 11 | animation-delay: 0.15s; 12 | z-index: 20; 13 | 14 | &__inner-wrap { 15 | @include clearfix; 16 | margin-left: auto; 17 | margin-right: auto; 18 | padding: 1em; 19 | max-width: 100%; 20 | display: -webkit-box; 21 | display: -ms-flexbox; 22 | display: flex; 23 | -webkit-box-pack: justify; 24 | -ms-flex-pack: justify; 25 | justify-content: space-between; 26 | font-family: $sans-serif-narrow; 27 | 28 | @include breakpoint($x-large) { 29 | max-width: $max-width; 30 | } 31 | 32 | nav { 33 | z-index: 10; 34 | } 35 | 36 | a { 37 | text-decoration: none; 38 | } 39 | } 40 | } 41 | 42 | .site-logo img { 43 | max-height: 2rem; 44 | } 45 | 46 | .site-title { 47 | display: -webkit-box; 48 | display: -ms-flexbox; 49 | display: flex; 50 | -ms-flex-item-align: center; 51 | align-self: center; 52 | font-weight: bold; 53 | // z-index: 20; 54 | } 55 | 56 | .site-subtitle { 57 | display: block; 58 | font-size: $type-size-8; 59 | } 60 | 61 | .masthead__menu { 62 | float: left; 63 | margin-left: 0; 64 | margin-right: 0; 65 | width: 100%; 66 | clear: both; 67 | 68 | .site-nav { 69 | margin-left: 0; 70 | 71 | @include breakpoint($small) { 72 | float: right; 73 | } 74 | } 75 | 76 | ul { 77 | margin: 0; 78 | padding: 0; 79 | clear: both; 80 | list-style-type: none; 81 | } 82 | } 83 | 84 | .masthead__menu-item { 85 | display: block; 86 | list-style-type: none; 87 | white-space: nowrap; 88 | 89 | &--lg { 90 | padding-right: 2em; 91 | font-weight: 700; 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /_sass/minimal-mistakes/_mixins.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | MIXINS 3 | ========================================================================== */ 4 | 5 | %tab-focus { 6 | /* Default*/ 7 | outline: thin dotted $focus-color; 8 | /* Webkit*/ 9 | outline: 5px auto $focus-color; 10 | outline-offset: -2px; 11 | } 12 | 13 | /* 14 | em function 15 | ========================================================================== */ 16 | 17 | @function em($target, $context: $doc-font-size) { 18 | @return ($target / $context) * 1em; 19 | } 20 | 21 | 22 | /* 23 | Bourbon clearfix 24 | ========================================================================== */ 25 | 26 | /* 27 | * Provides an easy way to include a clearfix for containing floats. 28 | * link http://cssmojo.com/latest_new_clearfix_so_far/ 29 | * 30 | * example scss - Usage 31 | * 32 | * .element { 33 | * @include clearfix; 34 | * } 35 | * 36 | * example css - CSS Output 37 | * 38 | * .element::after { 39 | * clear: both; 40 | * content: ""; 41 | * display: table; 42 | * } 43 | */ 44 | 45 | @mixin clearfix { 46 | clear: both; 47 | 48 | &::after { 49 | clear: both; 50 | content: ""; 51 | display: table; 52 | } 53 | } 54 | 55 | /* 56 | Compass YIQ Color Contrast 57 | https://github.com/easy-designs/yiq-color-contrast 58 | ========================================================================== */ 59 | 60 | @function yiq-is-light( 61 | $color, 62 | $threshold: $yiq-contrasted-threshold 63 | ) { 64 | $red: red($color); 65 | $green: green($color); 66 | $blue: blue($color); 67 | 68 | $yiq: (($red*299)+($green*587)+($blue*114))/1000; 69 | 70 | @if $yiq-debug { @debug $yiq, $threshold; } 71 | 72 | @return if($yiq >= $threshold, true, false); 73 | } 74 | 75 | @function yiq-contrast-color( 76 | $color, 77 | $dark: $yiq-contrasted-dark-default, 78 | $light: $yiq-contrasted-light-default, 79 | $threshold: $yiq-contrasted-threshold 80 | ) { 81 | @return if(yiq-is-light($color, $threshold), $yiq-contrasted-dark-default, $yiq-contrasted-light-default); 82 | } 83 | 84 | @mixin yiq-contrasted( 85 | $background-color, 86 | $dark: $yiq-contrasted-dark-default, 87 | $light: $yiq-contrasted-light-default, 88 | $threshold: $yiq-contrasted-threshold 89 | ) { 90 | background-color: $background-color; 91 | color: yiq-contrast-color($background-color, $dark, $light, $threshold); 92 | } -------------------------------------------------------------------------------- /_sass/minimal-mistakes/_notices.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | NOTICE TEXT BLOCKS 3 | ========================================================================== */ 4 | 5 | /** 6 | * Default Kramdown usage (no indents!): 7 | *
8 | * #### Headline for the Notice 9 | * Text for the notice 10 | *
11 | */ 12 | 13 | @mixin notice($notice-color) { 14 | margin: 2em 0 !important; /* override*/ 15 | padding: 1em; 16 | color: $text-color; 17 | font-family: $global-font-family; 18 | font-size: $type-size-6 !important; 19 | text-indent: initial; /* override*/ 20 | background-color: mix($background-color, $notice-color, $notice-background-mix); 21 | border-radius: $border-radius; 22 | box-shadow: 0 1px 1px rgba($notice-color, 0.25); 23 | 24 | h4 { 25 | margin-top: 0 !important; /* override*/ 26 | margin-bottom: 0.75em; 27 | line-height: inherit; 28 | } 29 | 30 | @at-root .page__content #{&} h4 { 31 | /* using at-root to override .page-content h4 font size*/ 32 | margin-bottom: 0; 33 | font-size: 1em; 34 | } 35 | 36 | p { 37 | &:last-child { 38 | margin-bottom: 0 !important; /* override*/ 39 | } 40 | } 41 | 42 | h4 + p { 43 | /* remove space above paragraphs that appear directly after notice headline*/ 44 | margin-top: 0; 45 | padding-top: 0; 46 | } 47 | 48 | a { 49 | color: mix(#000, $notice-color, 10%); 50 | 51 | &:hover { 52 | color: mix(#000, $notice-color, 50%); 53 | } 54 | } 55 | 56 | code { 57 | background-color: mix($background-color, $notice-color, $code-notice-background-mix) 58 | } 59 | 60 | pre code { 61 | background-color: inherit; 62 | } 63 | 64 | ul { 65 | &:last-child { 66 | margin-bottom: 0; /* override*/ 67 | } 68 | } 69 | } 70 | 71 | /* Default notice */ 72 | 73 | .notice { 74 | @include notice($light-gray); 75 | } 76 | 77 | /* Primary notice */ 78 | 79 | .notice--primary { 80 | @include notice($primary-color); 81 | } 82 | 83 | /* Info notice */ 84 | 85 | .notice--info { 86 | @include notice($info-color); 87 | } 88 | 89 | /* Warning notice */ 90 | 91 | .notice--warning { 92 | @include notice($warning-color); 93 | } 94 | 95 | /* Success notice */ 96 | 97 | .notice--success { 98 | @include notice($success-color); 99 | } 100 | 101 | /* Danger notice */ 102 | 103 | .notice--danger { 104 | @include notice($danger-color); 105 | } 106 | -------------------------------------------------------------------------------- /_sass/minimal-mistakes/_print.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | PRINT STYLES 3 | ========================================================================== */ 4 | 5 | @media print { 6 | 7 | [hidden] { 8 | display: none; 9 | } 10 | 11 | * { 12 | -moz-box-sizing: border-box; 13 | -webkit-box-sizing: border-box; 14 | box-sizing: border-box; 15 | } 16 | 17 | html { 18 | margin: 0; 19 | padding: 0; 20 | min-height: auto !important; 21 | font-size: 16px; 22 | } 23 | 24 | body { 25 | margin: 0 auto; 26 | background: #fff !important; 27 | color: #000 !important; 28 | font-size: 1rem; 29 | line-height: 1.5; 30 | -moz-osx-font-smoothing: grayscale; 31 | -webkit-font-smoothing: antialiased; 32 | text-rendering: optimizeLegibility; 33 | } 34 | 35 | h1, 36 | h2, 37 | h3, 38 | h4, 39 | h5, 40 | h6 { 41 | color: #000; 42 | line-height: 1.2; 43 | margin-bottom: 0.75rem; 44 | margin-top: 0; 45 | } 46 | 47 | h1 { 48 | font-size: 2.5rem; 49 | } 50 | 51 | h2 { 52 | font-size: 2rem; 53 | } 54 | 55 | h3 { 56 | font-size: 1.75rem; 57 | } 58 | 59 | h4 { 60 | font-size: 1.5rem; 61 | } 62 | 63 | h5 { 64 | font-size: 1.25rem; 65 | } 66 | 67 | h6 { 68 | font-size: 1rem; 69 | } 70 | 71 | a, 72 | a:visited { 73 | color: #000; 74 | text-decoration: underline; 75 | word-wrap: break-word; 76 | } 77 | 78 | table { 79 | border-collapse: collapse; 80 | } 81 | 82 | thead { 83 | display: table-header-group; 84 | } 85 | 86 | table, 87 | th, 88 | td { 89 | border-bottom: 1px solid #000; 90 | } 91 | 92 | td, 93 | th { 94 | padding: 8px 16px; 95 | } 96 | 97 | img { 98 | border: 0; 99 | display: block; 100 | max-width: 100% !important; 101 | vertical-align: middle; 102 | } 103 | 104 | hr { 105 | border: 0; 106 | border-bottom: 2px solid #bbb; 107 | height: 0; 108 | margin: 2.25rem 0; 109 | padding: 0; 110 | } 111 | 112 | dt { 113 | font-weight: bold; 114 | } 115 | 116 | dd { 117 | margin: 0; 118 | margin-bottom: 0.75rem; 119 | } 120 | 121 | abbr[title], 122 | acronym[title] { 123 | border: 0; 124 | text-decoration: none; 125 | } 126 | 127 | table, 128 | blockquote, 129 | pre, 130 | code, 131 | figure, 132 | li, 133 | hr, 134 | ul, 135 | ol, 136 | a, 137 | tr { 138 | page-break-inside: avoid; 139 | } 140 | 141 | h2, 142 | h3, 143 | h4, 144 | p, 145 | a { 146 | orphans: 3; 147 | widows: 3; 148 | } 149 | 150 | h1, 151 | h2, 152 | h3, 153 | h4, 154 | h5, 155 | h6 { 156 | page-break-after: avoid; 157 | page-break-inside: avoid; 158 | } 159 | 160 | h1 + p, 161 | h2 + p, 162 | h3 + p { 163 | page-break-before: avoid; 164 | } 165 | 166 | img { 167 | page-break-after: auto; 168 | page-break-before: auto; 169 | page-break-inside: avoid; 170 | } 171 | 172 | pre { 173 | white-space: pre-wrap !important; 174 | word-wrap: break-word; 175 | } 176 | 177 | a[href^='http://']:after, 178 | a[href^='https://']:after, 179 | a[href^='ftp://']:after { 180 | content: " (" attr(href) ")"; 181 | font-size: 80%; 182 | } 183 | 184 | abbr[title]:after, 185 | acronym[title]:after { 186 | content: " (" attr(title) ")"; 187 | } 188 | 189 | #main { 190 | max-width: 100%; 191 | } 192 | 193 | .page { 194 | margin: 0; 195 | padding: 0; 196 | width: 100%; 197 | } 198 | 199 | .page-break, 200 | .page-break-before { 201 | page-break-before: always; 202 | } 203 | 204 | .page-break-after { 205 | page-break-after: always; 206 | } 207 | 208 | .no-print { 209 | display: none; 210 | } 211 | 212 | a.no-reformat:after { 213 | content: ''; 214 | } 215 | 216 | abbr[title].no-reformat:after, 217 | acronym[title].no-reformat:after { 218 | content: ''; 219 | } 220 | 221 | .page__hero-caption { 222 | color: #000 !important; 223 | background: #fff !important; 224 | opacity: 1; 225 | 226 | a { 227 | color: #000 !important; 228 | } 229 | } 230 | 231 | /* 232 | Hide the following elements on print 233 | ========================================================================== */ 234 | 235 | .masthead, 236 | .toc, 237 | .page__share, 238 | .page__related, 239 | .pagination, 240 | .ads, 241 | .page__footer, 242 | .page__comments-form, 243 | .author__avatar, 244 | .author__content, 245 | .author__urls-wrapper, 246 | .nav__list, 247 | .sidebar, 248 | .adsbygoogle { 249 | display: none !important; 250 | height: 1px !important; 251 | } 252 | } -------------------------------------------------------------------------------- /_sass/minimal-mistakes/_reset.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | STYLE RESETS 3 | ========================================================================== */ 4 | 5 | * { box-sizing: border-box; } 6 | 7 | html { 8 | /* apply a natural box layout model to all elements */ 9 | box-sizing: border-box; 10 | background-color: $background-color; 11 | font-size: 16px; 12 | 13 | @include breakpoint($medium) { 14 | font-size: 18px; 15 | } 16 | 17 | @include breakpoint($large) { 18 | font-size: 20px; 19 | } 20 | 21 | @include breakpoint($x-large) { 22 | font-size: 22px; 23 | } 24 | 25 | -webkit-text-size-adjust: 100%; 26 | -ms-text-size-adjust: 100%; 27 | } 28 | 29 | /* Remove margin */ 30 | 31 | body { margin: 0; } 32 | 33 | /* Selected elements */ 34 | 35 | ::-moz-selection { 36 | color: #fff; 37 | background: #000; 38 | } 39 | 40 | ::selection { 41 | color: #fff; 42 | background: #000; 43 | } 44 | 45 | /* Display HTML5 elements in IE6-9 and FF3 */ 46 | 47 | article, 48 | aside, 49 | details, 50 | figcaption, 51 | figure, 52 | footer, 53 | header, 54 | hgroup, 55 | main, 56 | nav, 57 | section { 58 | display: block; 59 | } 60 | 61 | /* Display block in IE6-9 and FF3 */ 62 | 63 | audio, 64 | canvas, 65 | video { 66 | display: inline-block; 67 | *display: inline; 68 | *zoom: 1; 69 | } 70 | 71 | /* Prevents modern browsers from displaying 'audio' without controls */ 72 | 73 | audio:not([controls]) { 74 | display: none; 75 | } 76 | 77 | a { 78 | color: $link-color; 79 | } 80 | 81 | /* Apply focus state */ 82 | 83 | a:focus { 84 | @extend %tab-focus; 85 | } 86 | 87 | /* Remove outline from links */ 88 | 89 | a:hover, 90 | a:active { 91 | outline: 0; 92 | } 93 | 94 | /* Prevent sub and sup affecting line-height in all browsers */ 95 | 96 | sub, 97 | sup { 98 | position: relative; 99 | font-size: 75%; 100 | line-height: 0; 101 | vertical-align: baseline; 102 | } 103 | 104 | sup { 105 | top: -0.5em; 106 | } 107 | 108 | sub { 109 | bottom: -0.25em; 110 | } 111 | 112 | /* img border in anchor's and image quality */ 113 | 114 | img { 115 | /* Responsive images (ensure images don't scale beyond their parents) */ 116 | max-width: 100%; /* part 1: Set a maximum relative to the parent*/ 117 | width: auto\9; /* IE7-8 need help adjusting responsive images*/ 118 | height: auto; /* part 2: Scale the height according to the width, otherwise you get stretching*/ 119 | 120 | vertical-align: middle; 121 | border: 0; 122 | -ms-interpolation-mode: bicubic; 123 | } 124 | 125 | /* Prevent max-width from affecting Google Maps */ 126 | 127 | #map_canvas img, 128 | .google-maps img { 129 | max-width: none; 130 | } 131 | 132 | /* Consistent form font size in all browsers, margin changes, misc */ 133 | 134 | button, 135 | input, 136 | select, 137 | textarea { 138 | margin: 0; 139 | font-size: 100%; 140 | vertical-align: middle; 141 | } 142 | 143 | button, 144 | input { 145 | *overflow: visible; /* inner spacing ie IE6/7*/ 146 | line-height: normal; /* FF3/4 have !important on line-height in UA stylesheet*/ 147 | } 148 | 149 | button::-moz-focus-inner, 150 | input::-moz-focus-inner { /* inner padding and border oddities in FF3/4*/ 151 | padding: 0; 152 | border: 0; 153 | } 154 | 155 | button, 156 | html input[type="button"], // avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls 157 | input[type="reset"], 158 | input[type="submit"] { 159 | -webkit-appearance: button; /* corrects inability to style clickable `input` types in iOS*/ 160 | cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/ 161 | } 162 | 163 | label, 164 | select, 165 | button, 166 | input[type="button"], 167 | input[type="reset"], 168 | input[type="submit"], 169 | input[type="radio"], 170 | input[type="checkbox"] { 171 | cursor: pointer; /* improves usability and consistency of cursor style between image-type `input` and others*/ 172 | } 173 | 174 | input[type="search"] { /* Appearance in Safari/Chrome*/ 175 | box-sizing: border-box; 176 | -webkit-appearance: textfield; 177 | } 178 | 179 | input[type="search"]::-webkit-search-decoration, 180 | input[type="search"]::-webkit-search-cancel-button { 181 | -webkit-appearance: none; /* inner-padding issues in Chrome OSX, Safari 5*/ 182 | } 183 | 184 | textarea { 185 | overflow: auto; /* remove vertical scrollbar in IE6-9*/ 186 | vertical-align: top; /* readability and alignment cross-browser*/ 187 | } -------------------------------------------------------------------------------- /_sass/minimal-mistakes/_search.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | SEARCH 3 | ========================================================================== */ 4 | 5 | .layout--search { 6 | .archive__item-teaser { 7 | margin-bottom: 0.25em; 8 | } 9 | } 10 | 11 | .search__toggle { 12 | margin-left: 1rem; 13 | margin-right: 1rem; 14 | height: $nav-toggle-height; 15 | border: 0; 16 | outline: none; 17 | color: $primary-color; 18 | background-color: transparent; 19 | cursor: pointer; 20 | -webkit-transition: 0.2s; 21 | transition: 0.2s; 22 | 23 | &:hover { 24 | color: mix(#000, $primary-color, 25%); 25 | } 26 | } 27 | 28 | .search-icon { 29 | width: 100%; 30 | height: 100%; 31 | } 32 | 33 | .search-content { 34 | display: none; 35 | visibility: hidden; 36 | padding-top: 1em; 37 | padding-bottom: 1em; 38 | 39 | &__inner-wrap { 40 | width: 100%; 41 | margin-left: auto; 42 | margin-right: auto; 43 | padding-left: 1em; 44 | padding-right: 1em; 45 | -webkit-animation: $intro-transition; 46 | animation: $intro-transition; 47 | -webkit-animation-delay: 0.15s; 48 | animation-delay: 0.15s; 49 | 50 | @include breakpoint($x-large) { 51 | max-width: $max-width; 52 | } 53 | 54 | } 55 | 56 | &__form { 57 | background-color: transparent; 58 | } 59 | 60 | .search-input { 61 | display: block; 62 | margin-bottom: 0; 63 | padding: 0; 64 | border: none; 65 | outline: none; 66 | box-shadow: none; 67 | background-color: transparent; 68 | font-size: $type-size-3; 69 | 70 | @include breakpoint($large) { 71 | font-size: $type-size-2; 72 | } 73 | 74 | @include breakpoint($x-large) { 75 | font-size: $type-size-1; 76 | } 77 | } 78 | 79 | &.is--visible { 80 | display: block; 81 | visibility: visible; 82 | 83 | &::after { 84 | content: ""; 85 | display: block; 86 | } 87 | } 88 | 89 | .results__found { 90 | margin-top: 0.5em; 91 | font-size: $type-size-6; 92 | } 93 | 94 | .archive__item { 95 | margin-bottom: 2em; 96 | 97 | @include breakpoint($large) { 98 | width: 75%; 99 | } 100 | 101 | @include breakpoint($x-large) { 102 | width: 50%; 103 | } 104 | } 105 | 106 | .archive__item-title { 107 | margin-top: 0; 108 | } 109 | 110 | .archive__item-excerpt { 111 | margin-bottom: 0; 112 | } 113 | } 114 | 115 | /* Algolia search */ 116 | 117 | .ais-search-box { 118 | max-width: 100% !important; 119 | margin-bottom: 2em; 120 | } 121 | 122 | .archive__item-title .ais-Highlight { 123 | color: $primary-color; 124 | font-style: normal; 125 | text-decoration: underline; 126 | } 127 | 128 | .archive__item-excerpt .ais-Highlight { 129 | color: $primary-color; 130 | font-style: normal; 131 | font-weight: bold; 132 | } 133 | -------------------------------------------------------------------------------- /_sass/minimal-mistakes/_tables.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | TABLES 3 | ========================================================================== */ 4 | 5 | table { 6 | display: block; 7 | margin-bottom: 1em; 8 | width: 100%; 9 | font-family: $global-font-family; 10 | font-size: $type-size-6; 11 | border-collapse: collapse; 12 | overflow-x: auto; 13 | 14 | & + table { 15 | margin-top: 1em; 16 | } 17 | } 18 | 19 | thead { 20 | background-color: $border-color; 21 | border-bottom: 2px solid mix(#000, $border-color, 25%); 22 | } 23 | 24 | th { 25 | padding: 0.5em; 26 | font-weight: bold; 27 | text-align: left; 28 | } 29 | 30 | td { 31 | padding: 0.5em; 32 | border-bottom: 1px solid mix(#000, $border-color, 25%); 33 | } 34 | 35 | tr, 36 | td, 37 | th { 38 | vertical-align: middle; 39 | } -------------------------------------------------------------------------------- /_sass/minimal-mistakes/skins/_air.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Air skin 3 | ========================================================================== */ 4 | 5 | /* Colors */ 6 | $background-color: #eeeeee !default; 7 | $text-color: #222831 !default; 8 | $muted-text-color: #393e46 !default; 9 | $primary-color: #0092ca !default; 10 | $border-color: mix(#fff, #393e46, 75%) !default; 11 | $footer-background-color: $primary-color !default; 12 | $link-color: #393e46 !default; 13 | $masthead-link-color: $text-color !default; 14 | $masthead-link-color-hover: $text-color !default; 15 | $navicon-link-color-hover: mix(#fff, $text-color, 80%) !default; 16 | 17 | .page__footer { 18 | color: #fff !important; // override 19 | } 20 | 21 | .page__footer-follow .social-icons .svg-inline--fa { 22 | color: inherit; 23 | } 24 | -------------------------------------------------------------------------------- /_sass/minimal-mistakes/skins/_aqua.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Aqua skin 3 | ========================================================================== */ 4 | 5 | /* Colors */ 6 | $gray : #1976d2 !default; 7 | $dark-gray : mix(#000, $gray, 40%) !default; 8 | $darker-gray : mix(#000, $gray, 60%) !default; 9 | $light-gray : mix(#fff, $gray, 50%) !default; 10 | $lighter-gray : mix(#fff, $gray, 90%) !default; 11 | 12 | $body-color : #fff !default; 13 | $background-color : #f0fff0 !default; 14 | $code-background-color : $lighter-gray !default; 15 | $code-background-color-dark : $light-gray !default; 16 | $text-color : $dark-gray !default; 17 | $border-color : $lighter-gray !default; 18 | 19 | $primary-color : $gray !default; 20 | $success-color : #27ae60 !default; 21 | $warning-color : #e67e22 !default; 22 | $danger-color : #c0392b !default; 23 | $info-color : #03a9f4 !default; 24 | 25 | /* links */ 26 | $link-color : $info-color !default; 27 | $link-color-hover : mix(#000, $link-color, 25%) !default; 28 | $link-color-visited : mix(#fff, $link-color, 25%) !default; 29 | $masthead-link-color : $primary-color !default; 30 | $masthead-link-color-hover : mix(#000, $primary-color, 25%) !default; 31 | 32 | /* notices */ 33 | $notice-background-mix: 90% !default; 34 | $code-notice-background-mix: 95% !default; 35 | -------------------------------------------------------------------------------- /_sass/minimal-mistakes/skins/_contrast.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Contrast skin 3 | ========================================================================== */ 4 | 5 | /* Colors */ 6 | $text-color: #000 !default; 7 | $muted-text-color: $text-color !default; 8 | $primary-color: #ff0000 !default; 9 | $border-color: mix(#fff, $text-color, 75%) !default; 10 | $footer-background-color: #000 !default; 11 | $link-color: #0000ff !default; 12 | $masthead-link-color: $text-color !default; 13 | $masthead-link-color-hover: $text-color !default; 14 | $navicon-link-color-hover: mix(#fff, $text-color, 80%) !default; 15 | 16 | /* contrast syntax highlighting (base16) */ 17 | $base00: #000000 !default; 18 | $base01: #242422 !default; 19 | $base02: #484844 !default; 20 | $base03: #6c6c66 !default; 21 | $base04: #918f88 !default; 22 | $base05: #b5b3aa !default; 23 | $base06: #d9d7cc !default; 24 | $base07: #fdfbee !default; 25 | $base08: #ff6c60 !default; 26 | $base09: #e9c062 !default; 27 | $base0a: #ffffb6 !default; 28 | $base0b: #a8ff60 !default; 29 | $base0c: #c6c5fe !default; 30 | $base0d: #96cbfe !default; 31 | $base0e: #ff73fd !default; 32 | $base0f: #b18a3d !default; 33 | 34 | .page__content { 35 | .notice, 36 | .notice--primary, 37 | .notice--info, 38 | .notice--warning, 39 | .notice--success, 40 | .notice--danger { 41 | color: $text-color; 42 | } 43 | } 44 | 45 | .page__footer { 46 | color: #fff !important; // override 47 | } 48 | 49 | .page__footer-follow .social-icons i, 50 | .page__footer-follow .social-icons .svg-inline--fa { 51 | color: inherit; 52 | } 53 | -------------------------------------------------------------------------------- /_sass/minimal-mistakes/skins/_dark.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Dark skin 3 | ========================================================================== */ 4 | 5 | /* Colors */ 6 | $background-color: #252a34 !default; 7 | $text-color: #eaeaea !default; 8 | $primary-color: #00adb5 !default; 9 | $border-color: mix(#fff, $background-color, 20%) !default; 10 | $code-background-color: mix(#000, $background-color, 15%) !default; 11 | $code-background-color-dark: mix(#000, $background-color, 20%) !default; 12 | $form-background-color: mix(#000, $background-color, 15%) !default; 13 | $footer-background-color: mix(#000, $background-color, 30%) !default; 14 | $link-color: mix($primary-color, $text-color, 40%) !default; 15 | $link-color-hover: mix(#fff, $link-color, 25%) !default; 16 | $link-color-visited: mix(#000, $link-color, 25%) !default; 17 | $masthead-link-color: $text-color !default; 18 | $masthead-link-color-hover: mix(#000, $text-color, 20%) !default; 19 | $navicon-link-color-hover: mix(#000, $background-color, 30%) !default; 20 | 21 | .author__urls.social-icons i, 22 | .author__urls.social-icons .svg-inline--fa, 23 | .page__footer-follow .social-icons i, 24 | .page__footer-follow .social-icons .svg-inline--fa { 25 | color: inherit; 26 | } 27 | 28 | .ais-search-box .ais-search-box--input { 29 | background-color: $form-background-color; 30 | } 31 | -------------------------------------------------------------------------------- /_sass/minimal-mistakes/skins/_default.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Default skin 3 | ========================================================================== */ 4 | 5 | // Intentionally left blank 6 | -------------------------------------------------------------------------------- /_sass/minimal-mistakes/skins/_dirt.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Dirt skin 3 | ========================================================================== */ 4 | 5 | /* Colors */ 6 | $background-color: #f3f3f3 !default; 7 | $text-color: #343434 !default; 8 | $muted-text-color: #8e8b82 !default; 9 | $primary-color: #343434 !default; 10 | $border-color: #e9dcbe !default; 11 | $footer-background-color: #e9dcbe !default; 12 | $link-color: #343434 !default; 13 | $masthead-link-color: $text-color !default; 14 | $masthead-link-color-hover: $text-color !default; 15 | $navicon-link-color-hover: mix(#fff, $text-color, 80%) !default; 16 | 17 | /* dirt syntax highlighting (base16) */ 18 | $base00: #231e18 !default; 19 | $base01: #302b25 !default; 20 | $base02: #48413a !default; 21 | $base03: #9d8b70 !default; 22 | $base04: #b4a490 !default; 23 | $base05: #cabcb1 !default; 24 | $base06: #d7c8bc !default; 25 | $base07: #e4d4c8 !default; 26 | $base08: #d35c5c !default; 27 | $base09: #ca7f32 !default; 28 | $base0a: #e0ac16 !default; 29 | $base0b: #b7ba53 !default; 30 | $base0c: #6eb958 !default; 31 | $base0d: #88a4d3 !default; 32 | $base0e: #bb90e2 !default; 33 | $base0f: #b49368 !default; 34 | -------------------------------------------------------------------------------- /_sass/minimal-mistakes/skins/_mint.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Mint skin 3 | ========================================================================== */ 4 | 5 | /* Colors */ 6 | $background-color: #f3f6f6 !default; 7 | $text-color: #40514e !default; 8 | $muted-text-color: #40514e !default; 9 | $primary-color: #11999e !default; 10 | $border-color: mix(#fff, #40514e, 75%) !default; 11 | $footer-background-color: #30e3ca !default; 12 | $link-color: #11999e !default; 13 | $masthead-link-color: $text-color !default; 14 | $masthead-link-color-hover: $text-color !default; 15 | $navicon-link-color-hover: mix(#fff, $text-color, 80%) !default; 16 | 17 | .page__footer { 18 | color: #fff !important; // override 19 | } 20 | 21 | .page__footer-follow .social-icons i, 22 | .page__footer-follow .social-icons .svg-inline--fa { 23 | color: inherit; 24 | } 25 | -------------------------------------------------------------------------------- /_sass/minimal-mistakes/skins/_neon.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Neon skin 3 | ========================================================================== */ 4 | 5 | /* Colors */ 6 | $background-color: #141010 !default; 7 | $text-color: #fff6fb !default; 8 | $primary-color: #f21368 !default; 9 | $border-color: mix(#fff, $background-color, 20%) !default; 10 | $code-background-color: mix(#000, $background-color, 15%) !default; 11 | $code-background-color-dark: mix(#000, $background-color, 20%) !default; 12 | $form-background-color: mix(#000, $background-color, 15%) !default; 13 | $footer-background-color: mix($primary-color, #000, 10%) !default; 14 | $link-color: $primary-color !default; 15 | $link-color-hover: mix(#fff, $link-color, 25%) !default; 16 | $link-color-visited: mix(#000, $link-color, 25%) !default; 17 | $masthead-link-color: $text-color !default; 18 | $masthead-link-color-hover: mix(#000, $text-color, 20%) !default; 19 | $navicon-link-color-hover: mix(#000, $background-color, 30%) !default; 20 | 21 | /* notices */ 22 | $notice-background-mix: 90% !default; 23 | $code-notice-background-mix: 95% !default; 24 | 25 | /* neon syntax highlighting (base16) */ 26 | $base00: #ffffff !default; 27 | $base01: #e0e0e0 !default; 28 | $base02: #d0d0d0 !default; 29 | $base03: #b0b0b0 !default; 30 | $base04: #000000 !default; 31 | $base05: #101010 !default; 32 | $base06: #151515 !default; 33 | $base07: #202020 !default; 34 | $base08: #ff0086 !default; 35 | $base09: #fd8900 !default; 36 | $base0a: #aba800 !default; 37 | $base0b: #00c918 !default; 38 | $base0c: #1faaaa !default; 39 | $base0d: #3777e6 !default; 40 | $base0e: #ad00a1 !default; 41 | $base0f: #cc6633 !default; 42 | 43 | .author__urls.social-icons i, 44 | .author__urls.social-icons .svg-inline--fa, 45 | .page__footer-follow .social-icons i, 46 | .page__footer-follow .social-icons .svg-inline--fa { 47 | color: inherit; 48 | } 49 | 50 | /* next/previous buttons */ 51 | .pagination--pager { 52 | color: $text-color; 53 | background-color: $primary-color; 54 | border-color: transparent; 55 | 56 | &:visited { 57 | color: $text-color; 58 | } 59 | } 60 | 61 | .ais-search-box .ais-search-box--input { 62 | background-color: $form-background-color; 63 | } -------------------------------------------------------------------------------- /_sass/minimal-mistakes/skins/_plum.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Plum skin 3 | ========================================================================== */ 4 | 5 | /* Colors */ 6 | $background-color: #521477 !default; 7 | $text-color: #fffd86 !default; 8 | $primary-color: #c327ab !default; 9 | $border-color: mix(#fff, $background-color, 20%) !default; 10 | $code-background-color: mix(#000, $background-color, 15%) !default; 11 | $code-background-color-dark: mix(#000, $background-color, 20%) !default; 12 | $form-background-color: mix(#000, $background-color, 15%) !default; 13 | $footer-background-color: mix(#000, $background-color, 25%) !default; 14 | $link-color: $primary-color !default; 15 | $link-color-hover: mix(#fff, $link-color, 25%) !default; 16 | $link-color-visited: mix(#000, $link-color, 25%) !default; 17 | $masthead-link-color: $text-color !default; 18 | $masthead-link-color-hover: mix(#000, $text-color, 20%) !default; 19 | $navicon-link-color-hover: mix(#000, $background-color, 30%) !default; 20 | 21 | /* notices */ 22 | $notice-background-mix: 70% !default; 23 | $code-notice-background-mix: 80% !default; 24 | 25 | /* plum syntax highlighting (base16) */ 26 | $base00: #ffffff !default; 27 | $base01: #e0e0e0 !default; 28 | $base02: #d0d0d0 !default; 29 | $base03: #b0b0b0 !default; 30 | $base04: #000000 !default; 31 | $base05: #101010 !default; 32 | $base06: #151515 !default; 33 | $base07: #202020 !default; 34 | $base08: #ff0086 !default; 35 | $base09: #fd8900 !default; 36 | $base0a: #aba800 !default; 37 | $base0b: #00c918 !default; 38 | $base0c: #1faaaa !default; 39 | $base0d: #3777e6 !default; 40 | $base0e: #ad00a1 !default; 41 | $base0f: #cc6633 !default; 42 | 43 | .author__urls.social-icons i, 44 | .author__urls.social-icons .svg-inline--fa, 45 | .page__footer-follow .social-icons i, 46 | .page__footer-follow .social-icons .svg-inline--fa { 47 | color: inherit; 48 | } 49 | 50 | .page__content { 51 | a, 52 | a:visited { 53 | color: inherit; 54 | } 55 | } 56 | 57 | /* next/previous buttons */ 58 | .pagination--pager { 59 | color: $text-color; 60 | background-color: $primary-color; 61 | border-color: transparent; 62 | 63 | &:visited { 64 | color: $text-color; 65 | } 66 | } 67 | 68 | .ais-search-box .ais-search-box--input { 69 | background-color: $form-background-color; 70 | } -------------------------------------------------------------------------------- /_sass/minimal-mistakes/skins/_scikit.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Custom scikit-learn skin 3 | ========================================================================== */ 4 | 5 | /* Colors */ 6 | $background-color: #ffffff !default; 7 | $text-color: #222831 !default; 8 | $muted-text-color: #393e46 !default; 9 | $primary-color: #29ABE2 !default; 10 | $border-color: mix(#fff, #393e46, 75%) !default; 11 | $footer-background-color: $primary-color !default; 12 | $link-color: #393e46 !default; 13 | $masthead-link-color: $text-color !default; 14 | $masthead-link-color-hover: $text-color !default; 15 | $navicon-link-color-hover: mix(#fff, $text-color, 80%) !default; 16 | 17 | .page__footer { 18 | color: #fff !important; // override 19 | } 20 | 21 | .page__footer-follow .social-icons .svg-inline--fa { 22 | color: inherit; 23 | } 24 | -------------------------------------------------------------------------------- /_sass/minimal-mistakes/skins/_sunrise.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Sunrise skin 3 | ========================================================================== */ 4 | 5 | /* Colors */ 6 | $dark-gray: #0e2431 !default; 7 | $background-color: #e8d5b7 !default; 8 | $text-color: #000 !default; 9 | $muted-text-color: $dark-gray !default; 10 | $primary-color: #fc3a52 !default; 11 | $border-color: mix(#000, $background-color, 20%) !default; 12 | $code-background-color: mix(#fff, $background-color, 20%) !default; 13 | $code-background-color-dark: mix(#000, $background-color, 10%) !default; 14 | $form-background-color: mix(#fff, $background-color, 15%) !default; 15 | $footer-background-color: #f9b248 !default; 16 | $link-color: mix(#000, $primary-color, 10%) !default; 17 | $link-color-hover: mix(#fff, $link-color, 25%) !default; 18 | $link-color-visited: mix(#000, $link-color, 25%) !default; 19 | $masthead-link-color: $text-color !default; 20 | $masthead-link-color-hover: mix(#000, $text-color, 20%) !default; 21 | $navicon-link-color-hover: mix(#000, $background-color, 30%) !default; 22 | 23 | /* notices */ 24 | $notice-background-mix: 75% !default; 25 | 26 | /* sunrise syntax highlighting (base16) */ 27 | $base00: #1d1f21 !default; 28 | $base01: #282a2e !default; 29 | $base02: #373b41 !default; 30 | $base03: #969896 !default; 31 | $base04: #b4b7b4 !default; 32 | $base05: #c5c8c6 !default; 33 | $base06: #e0e0e0 !default; 34 | $base07: #ffffff !default; 35 | $base08: #cc6666 !default; 36 | $base09: #de935f !default; 37 | $base0a: #f0c674 !default; 38 | $base0b: #b5bd68 !default; 39 | $base0c: #8abeb7 !default; 40 | $base0d: #81a2be !default; 41 | $base0e: #b294bb !default; 42 | $base0f: #a3685a !default; 43 | 44 | .author__urls.social-icons i, 45 | .author__urls.social-icons .svg-inline--fa, 46 | .page__footer-follow .social-icons i, 47 | .page__footer-follow .social-icons .svg-inline--fa { 48 | color: inherit; 49 | } 50 | -------------------------------------------------------------------------------- /_utils/compress_images.py: -------------------------------------------------------------------------------- 1 | """ 2 | Comprass images using ImageMagick 3 | 4 | Command used to compress images: 5 | python compress_images.py --quality 30 --replace_original --pattern "../assets/images/author_images/*" 6 | """ 7 | 8 | 9 | import argparse 10 | import glob 11 | import os 12 | import subprocess 13 | 14 | 15 | SIZE_THRESHOLD = 25 16 | # Version: ImageMagick 6.9.7-4 Q16 x86_64 20170114 http://www.imagemagick.org 17 | IMAGEMAGICK_COMMAND = r'convert -sampling-factor 4:2:0 -strip -interlace JPEG -colorspace RGB' 18 | 19 | 20 | def compress_image(image_path, quality, replace_original=False): 21 | # Image size in Kilobytes 22 | image_size = os.path.getsize(image_path) / 1000 23 | if image_size > SIZE_THRESHOLD: 24 | print(f"Compressing image '{image_path}' ({image_size}K)") 25 | if replace_original: 26 | new_path = image_path 27 | else: 28 | file_name, extension = os.path.basename(image_path).split(".") 29 | new_file_name = file_name + "_reduced." + extension 30 | new_path = os.path.join(os.path.dirname(image_path), new_file_name) 31 | subprocess.run(f"{IMAGEMAGICK_COMMAND} -quality {quality}% {image_path} {new_path}", shell=True) 32 | print(f">>> New file created: '{new_path}'") 33 | else: 34 | print(f"The image '{image_path}' ({image_size}K) does not need compression.") 35 | 36 | 37 | if __name__ == "__main__": 38 | parser = argparse.ArgumentParser(description="Script to compress images using ImageMagick.") 39 | parser.add_argument("--quality", help="compression level", type=int, default=50) 40 | parser.add_argument("--replace_original", help="replace original image with compressed one", action='store_true') 41 | group = parser.add_mutually_exclusive_group(required=True) 42 | group.add_argument("--file_path", help="image file path", action="append", type=str) 43 | group.add_argument("--pattern", help="glob pattern for images", type=str) 44 | args = parser.parse_args() 45 | print(f"Compressing images with size greater than {SIZE_THRESHOLD}K.") 46 | 47 | if args.file_path: 48 | print(args.file_path) 49 | for p in args.file_path: 50 | if os.path.exists(p): 51 | compress_image(p, args.quality, args.replace_original) 52 | else: 53 | print(f"ERROR: The file '{p}' does not exists.") 54 | else: 55 | paths = glob.glob(args.pattern) 56 | for p in paths: 57 | compress_image(p, args.quality, args.replace_original) 58 | -------------------------------------------------------------------------------- /assets/css/main.scss: -------------------------------------------------------------------------------- 1 | // --- 2 | // # Only the main Sass file needs front matter (the dashes are enough) 3 | // --- 4 | 5 | @charset "utf-8"; 6 | 7 | @import "minimal-mistakes/skins/{{ site.minimal_mistakes_skin | default: 'default' }}"; // skin 8 | @import "minimal-mistakes"; // main partials 9 | 10 | html { 11 | font-size: 15px; // default font size 12 | 13 | @include breakpoint($medium) { 14 | font-size: 17px; // medium 15 | } 16 | 17 | @include breakpoint($large) { 18 | font-size: 19px; // large 19 | } 20 | 21 | @include breakpoint($x-large) { 22 | font-size: 21px; // extra large 23 | } 24 | } 25 | 26 | .archive__item-title { 27 | position: relative; 28 | font-size: 22px; 29 | } 30 | 31 | video { 32 | width: 100% !important; 33 | height: auto !important; 34 | } -------------------------------------------------------------------------------- /assets/images/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/android-chrome-192x192.png -------------------------------------------------------------------------------- /assets/images/android-chrome-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/android-chrome-256x256.png -------------------------------------------------------------------------------- /assets/images/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/apple-touch-icon.png -------------------------------------------------------------------------------- /assets/images/author_images/adam-li.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/adam-li.jpeg -------------------------------------------------------------------------------- /assets/images/author_images/adrin-jalali.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/adrin-jalali.jpeg -------------------------------------------------------------------------------- /assets/images/author_images/andreas-mueller.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/andreas-mueller.jpg -------------------------------------------------------------------------------- /assets/images/author_images/angela_okune.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/angela_okune.jpg -------------------------------------------------------------------------------- /assets/images/author_images/chiara_marmo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/chiara_marmo.png -------------------------------------------------------------------------------- /assets/images/author_images/francois_goupil.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/francois_goupil.jpeg -------------------------------------------------------------------------------- /assets/images/author_images/guillaume-lemaitre.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/guillaume-lemaitre.jpg -------------------------------------------------------------------------------- /assets/images/author_images/inessa-pawson.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/inessa-pawson.jpg -------------------------------------------------------------------------------- /assets/images/author_images/jjerphan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/jjerphan.jpg -------------------------------------------------------------------------------- /assets/images/author_images/juan-martin-loyola.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/juan-martin-loyola.jpeg -------------------------------------------------------------------------------- /assets/images/author_images/lucyliu.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/lucyliu.jpeg -------------------------------------------------------------------------------- /assets/images/author_images/lysandre_debut.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/lysandre_debut.jpg -------------------------------------------------------------------------------- /assets/images/author_images/maren-westerman.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/maren-westerman.jpg -------------------------------------------------------------------------------- /assets/images/author_images/meekail-zain.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/meekail-zain.jpg -------------------------------------------------------------------------------- /assets/images/author_images/nicolas_hug.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/nicolas_hug.jpg -------------------------------------------------------------------------------- /assets/images/author_images/norbert.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/norbert.jpeg -------------------------------------------------------------------------------- /assets/images/author_images/nvidia-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/nvidia-logo.png -------------------------------------------------------------------------------- /assets/images/author_images/reshama_shaikh.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/reshama_shaikh.jpeg -------------------------------------------------------------------------------- /assets/images/author_images/sangam_swadik.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/sangam_swadik.jpg -------------------------------------------------------------------------------- /assets/images/author_images/stefanie-senger.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/stefanie-senger.jpeg -------------------------------------------------------------------------------- /assets/images/author_images/thomas_fan.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/thomas_fan.jpeg -------------------------------------------------------------------------------- /assets/images/author_images/yao-xiao.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/author_images/yao-xiao.jpeg -------------------------------------------------------------------------------- /assets/images/brand_images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/brand_images/.DS_Store -------------------------------------------------------------------------------- /assets/images/brand_images/categories_tags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/brand_images/categories_tags.png -------------------------------------------------------------------------------- /assets/images/brand_images/category_tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/brand_images/category_tag.png -------------------------------------------------------------------------------- /assets/images/brand_images/category_tag_template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/brand_images/category_tag_template.png -------------------------------------------------------------------------------- /assets/images/brand_images/colorswatch_29ABE2_cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/brand_images/colorswatch_29ABE2_cyan.png -------------------------------------------------------------------------------- /assets/images/brand_images/colorswatch_9B4600_brown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/brand_images/colorswatch_9B4600_brown.png -------------------------------------------------------------------------------- /assets/images/brand_images/colorswatch_F7931E_orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/brand_images/colorswatch_F7931E_orange.png -------------------------------------------------------------------------------- /assets/images/brand_images/highlighted-text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/brand_images/highlighted-text.png -------------------------------------------------------------------------------- /assets/images/brand_images/multiple-author-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/brand_images/multiple-author-post.png -------------------------------------------------------------------------------- /assets/images/brand_images/single-author-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/brand_images/single-author-post.png -------------------------------------------------------------------------------- /assets/images/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #da532c 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /assets/images/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/favicon-16x16.png -------------------------------------------------------------------------------- /assets/images/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/favicon-32x32.png -------------------------------------------------------------------------------- /assets/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/favicon.ico -------------------------------------------------------------------------------- /assets/images/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/mstile-150x150.png -------------------------------------------------------------------------------- /assets/images/posts_images/2010sprint.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/2010sprint.jpg -------------------------------------------------------------------------------- /assets/images/posts_images/2023-paris-dev-sprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/2023-paris-dev-sprint.png -------------------------------------------------------------------------------- /assets/images/posts_images/2023-paris-sprint/paris_2023.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/2023-paris-sprint/paris_2023.jpg -------------------------------------------------------------------------------- /assets/images/posts_images/2023-paris-sprint/thomas_olivier.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/2023-paris-sprint/thomas_olivier.jpg -------------------------------------------------------------------------------- /assets/images/posts_images/AFME2-photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/AFME2-photo.png -------------------------------------------------------------------------------- /assets/images/posts_images/BSD_wordmark.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/posts_images/Frenchaward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/Frenchaward.png -------------------------------------------------------------------------------- /assets/images/posts_images/HFxsklearn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/HFxsklearn.png -------------------------------------------------------------------------------- /assets/images/posts_images/NVIDIAxsklearn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/NVIDIAxsklearn.jpg -------------------------------------------------------------------------------- /assets/images/posts_images/Paris-s.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/Paris-s.jpg -------------------------------------------------------------------------------- /assets/images/posts_images/adam-li-interview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/adam-li-interview.png -------------------------------------------------------------------------------- /assets/images/posts_images/afme1-summary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/afme1-summary.png -------------------------------------------------------------------------------- /assets/images/posts_images/behind_the_scenes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/behind_the_scenes.png -------------------------------------------------------------------------------- /assets/images/posts_images/chiara.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/chiara.png -------------------------------------------------------------------------------- /assets/images/posts_images/dialetto-s.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/dialetto-s.jpg -------------------------------------------------------------------------------- /assets/images/posts_images/gbdt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/gbdt.png -------------------------------------------------------------------------------- /assets/images/posts_images/global_sprint_annonce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/global_sprint_annonce.png -------------------------------------------------------------------------------- /assets/images/posts_images/jml-interview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/jml-interview.png -------------------------------------------------------------------------------- /assets/images/posts_images/jml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/jml.png -------------------------------------------------------------------------------- /assets/images/posts_images/julien-performances.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/julien-performances.png -------------------------------------------------------------------------------- /assets/images/posts_images/latam-group-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/latam-group-cover.png -------------------------------------------------------------------------------- /assets/images/posts_images/lucy_card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/lucy_card.png -------------------------------------------------------------------------------- /assets/images/posts_images/maren-interview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/maren-interview.png -------------------------------------------------------------------------------- /assets/images/posts_images/meekail-zain-interview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/meekail-zain-interview.png -------------------------------------------------------------------------------- /assets/images/posts_images/mlconf-interview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/mlconf-interview.png -------------------------------------------------------------------------------- /assets/images/posts_images/nairobi-group.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/nairobi-group.jpg -------------------------------------------------------------------------------- /assets/images/posts_images/nairobi-sklearn.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/nairobi-sklearn.jpg -------------------------------------------------------------------------------- /assets/images/posts_images/norbert-interview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/norbert-interview.png -------------------------------------------------------------------------------- /assets/images/posts_images/norbert-japan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/norbert-japan.png -------------------------------------------------------------------------------- /assets/images/posts_images/nyc-sprint-2018.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/nyc-sprint-2018.jpg -------------------------------------------------------------------------------- /assets/images/posts_images/pandas_output_sklearn_transformers.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/pandas_output_sklearn_transformers.PNG -------------------------------------------------------------------------------- /assets/images/posts_images/reshama-pyconde.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/reshama-pyconde.png -------------------------------------------------------------------------------- /assets/images/posts_images/scipy-la-2022_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/scipy-la-2022_logo.png -------------------------------------------------------------------------------- /assets/images/posts_images/sklearn_czi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/sklearn_czi.png -------------------------------------------------------------------------------- /assets/images/posts_images/sprint-neurips-2011.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/sprint-neurips-2011.jpeg -------------------------------------------------------------------------------- /assets/images/posts_images/sprint-salta-2022-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/sprint-salta-2022-1.jpg -------------------------------------------------------------------------------- /assets/images/posts_images/sprint-salta-2022-2.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/sprint-salta-2022-2.jpeg -------------------------------------------------------------------------------- /assets/images/posts_images/sprint-videos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/sprint-videos.png -------------------------------------------------------------------------------- /assets/images/posts_images/sprints-value.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/sprints-value.png -------------------------------------------------------------------------------- /assets/images/posts_images/sprints-value2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/sprints-value2.png -------------------------------------------------------------------------------- /assets/images/posts_images/wimlds-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/posts_images/wimlds-logo.png -------------------------------------------------------------------------------- /assets/images/safari-pinned-tab.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 7 | 8 | Created by potrace 1.14, written by Peter Selinger 2001-2017 9 | 10 | 12 | 24 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /assets/images/scikit-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/scikit-header.png -------------------------------------------------------------------------------- /assets/images/scikit-learn-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/scikit-learn-logo.png -------------------------------------------------------------------------------- /assets/images/scikit-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/images/scikit-logo.png -------------------------------------------------------------------------------- /assets/images/site.webmanifest: -------------------------------------------------------------------------------- 1 | { 2 | "name": "", 3 | "short_name": "", 4 | "icons": [ 5 | { 6 | "src": "/assets/images/android-chrome-192x192.png", 7 | "sizes": "192x192", 8 | "type": "image/png" 9 | }, 10 | { 11 | "src": "/assets/images/android-chrome-256x256.png", 12 | "sizes": "256x256", 13 | "type": "image/png" 14 | } 15 | ], 16 | "theme_color": "#ffffff", 17 | "background_color": "#ffffff", 18 | "display": "standalone" 19 | } 20 | -------------------------------------------------------------------------------- /assets/videos/HFxsklearn.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/videos/HFxsklearn.mp4 -------------------------------------------------------------------------------- /assets/videos/NVIDIAxsklearn.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/assets/videos/NVIDIAxsklearn.mp4 -------------------------------------------------------------------------------- /category-archive.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Posts by Category" 3 | layout: categories 4 | permalink: /categories/ 5 | author_profile: true 6 | sidebar: 7 | nav: "docs" 8 | --- 9 | 10 | -------------------------------------------------------------------------------- /index.markdown: -------------------------------------------------------------------------------- 1 | --- 2 | layout: home 3 | author_profile: true 4 | title: "scikit-learn Blog" 5 | header: 6 | #og_image: /assets/images/scikit-header.png 7 | overlay_image: /assets/images/scikit-header.png 8 | overlay_filter: linear-gradient(rgba(41,171,226,0.9), rgba(247,147,30,0.9)) 9 | excerpt: News and updates from the scikit-learn community. 10 | sidebar: 11 | nav: "docs" 12 | --- 13 | 14 | 15 | -------------------------------------------------------------------------------- /tag-archive.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Posts by Tag" 3 | permalink: /tags/ 4 | layout: tags 5 | author_profile: true 6 | sidebar: 7 | nav: "docs" 8 | --- 9 | -------------------------------------------------------------------------------- /welcome-bot/BannerCongratulations.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/welcome-bot/BannerCongratulations.jpg -------------------------------------------------------------------------------- /welcome-bot/BannerThanks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/welcome-bot/BannerThanks.jpg -------------------------------------------------------------------------------- /welcome-bot/BannerWelcome.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/scikit-learn/blog/3ea316d3ea7f388ef479e7e3a4508e511c58549f/welcome-bot/BannerWelcome.jpg -------------------------------------------------------------------------------- /year-archive.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Posts by Year" 3 | permalink: /years/ 4 | layout: posts 5 | author_profile: true 6 | sidebar: 7 | nav: "docs" 8 | --- 9 | --------------------------------------------------------------------------------