Misplaced Pages

Scikit-learn: Difference between revisions

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Browse history interactively← Previous editContent deleted Content addedVisualWikitext
Revision as of 20:40, 1 January 2021 editPatsysmith349 (talk | contribs)38 editsm Version history: added timeline chart.← Previous edit Latest revision as of 21:08, 25 November 2024 edit undoViktor Guer (talk | contribs)Extended confirmed users3,200 edits External links 
(46 intermediate revisions by 39 users not shown)
Line 1: Line 1:
{{short description|Machine learning library for the Python programming language}} {{Short description|Python library for machine learning}}
{{lowercase title}} {{lowercase title}}
{{Infobox software {{Infobox software
Line 12: Line 12:
| latest release version = {{wikidata|property|reference|P348}} | latest release version = {{wikidata|property|reference|P348}}
| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}} | latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}
| latest preview version = | latest preview version =
| latest preview date = | latest preview date =
| programming language = ], ], ] and ] | programming language = ], ], ] and ]{{wikidata|reference|P277}}
| operating system = ], ], ] | operating system = ], ], ]
| platform = | platform =
Line 23: Line 23:
| website = {{URL|https://scikit-learn.org/}} | website = {{URL|https://scikit-learn.org/}}
}} }}
'''Scikit-learn''' (formerly '''scikits.learn''' and also known as '''sklearn''') is a ] ] ] for the ] ].<ref name="jmlr">{{cite journal '''scikit-learn''' (formerly '''scikits.learn''' and also known as '''sklearn''') is a ] ] ] for the ] ].<ref name="jmlr">{{cite journal
|author1=Fabian Pedregosa |author1=Fabian Pedregosa
|author2=Gaël Varoquaux |author2=Gaël Varoquaux
Line 39: Line 39:
|author14=Matthieu Perrot |author14=Matthieu Perrot
|author15=Édouard Duchesnay |author15=Édouard Duchesnay
|title=Scikit-learn: Machine Learning in Python |title=scikit-learn: Machine Learning in Python
|journal=Journal of Machine Learning Research |journal=Journal of Machine Learning Research
|year=2011 |year=2011
Line 46: Line 46:
|url=http://jmlr.org/papers/v12/pedregosa11a.html |url=http://jmlr.org/papers/v12/pedregosa11a.html
}}</ref> }}</ref>
It features various ], ] and ] algorithms including ]s, ], ], ] and ], and is designed to interoperate with the Python numerical and scientific libraries ] and ]. It features various ], ] and ] ] including ]s, ], ], ] and ], and is designed to interoperate with the ] numerical and scientific libraries ] and ]. Scikit-learn is a ] fiscally sponsored project.<ref>{{cite web|title=NumFOCUS Sponsored Projects|url=https://numfocus.org/sponsored-projects|publisher=NumFOCUS|access-date=2021-10-25}}</ref>


==Overview== ==Overview==
The scikit-learn project started as scikits.learn, a ] project by ]. Its name stems from the notion that it is a "SciKit" (SciPy Toolkit), a separately-developed and distributed third-party extension to SciPy.<ref>{{cite web The scikit-learn project started as scikits.learn, a ] project by French ] ]. The name of the project stems from the notion that it is a "SciKit" (SciPy Toolkit), a separately developed and distributed third-party extension to ].<ref>{{cite web
|url=https://scikits.appspot.com/scikit-learn |url=https://scikits.appspot.com/scikit-learn
|title=scikit-learn |title=scikit-learn
Line 55: Line 55:
|first1=Janto |first1=Janto
}}</ref> }}</ref>
The original ] was later rewritten by other developers. In 2010 Fabian Pedregosa, Gael Varoquaux, Alexandre Gramfort and Vincent Michel, all from the ] in ], ], took leadership of the project and made the first public release on February the 1st 2010.<ref>{{cite web|url=https://scikit-learn.org/stable/about.html#history|title=About us — scikit-learn 0.20.1 documentation|website=scikit-learn.org}}</ref> Of the various scikits, scikit-learn as well as ] were described as "well-maintained and popular" {{As of|2012|11|alt=in November 2012}}.<ref>{{cite book The original ] was later rewritten by other ]. In 2010, contributors Fabian Pedregosa, Gaël Varoquaux, Alexandre Gramfort and Vincent Michel, from the ] in ], ], took leadership of the project and released the first public version of the library on February 1, 2010.<ref>{{cite web|url=https://scikit-learn.org/stable/about.html#history|title=About us — scikit-learn 0.20.1 documentation|website=scikit-learn.org}}</ref> In November 2012, scikit-learn as well as ] were described as two of the "well-maintained and popular" {{As of|2012|11|alt=scikits libraries}}.<ref>{{cite book
|author=Eli Bressert |author=Eli Bressert
|title=SciPy and NumPy: an overview for developers |title=SciPy and NumPy: an overview for developers
Line 62: Line 62:
|url=https://books.google.com/books?id=fLKTuJqQLVEC&pg=PA43 |url=https://books.google.com/books?id=fLKTuJqQLVEC&pg=PA43
|page=43 |page=43
}}</ref> Scikit-learn is one of the most popular machine learning libraries on ].<ref>{{Cite web|url=https://github.blog/2019-01-24-the-state-of-the-octoverse-machine-learning/|title=The State of the Octoverse: machine learning|date=2019-01-24|website=The GitHub Blog|publisher=]|language=en-US|access-date=2019-10-17}}</ref> }}</ref> In 2019, it was noted that scikit-learn is one of the most popular machine learning libraries on ].<ref>{{Cite web|url=https://github.blog/2019-01-24-the-state-of-the-octoverse-machine-learning/|title=The State of the Octoverse: machine learning|date=2019-01-24|website=The GitHub Blog|publisher=]|language=en-US|access-date=2019-10-17}}</ref>


==Implementation== ==Implementation==
Scikit-learn is largely written in Python, and uses ] extensively for high-performance linear algebra and array operations. Furthermore, some core algorithms are written in ] to improve performance. Support vector machines are implemented by a Cython wrapper around ]; logistic regression and linear support vector machines by a similar wrapper around ]. In such cases, extending these methods with Python may not be possible. scikit-learn is largely written in Python, and uses ] extensively for high-performance linear algebra and array operations. Furthermore, some core algorithms are written in ] to improve performance. Support vector machines are implemented by a Cython wrapper around ]; logistic regression and linear support vector machines by a similar wrapper around ]. In such cases, extending these methods with Python may not be possible.


Scikit-learn integrates well with many other Python libraries, such as ] and ] for plotting, ] for array vectorization, ] dataframes, ], and many more. scikit-learn integrates well with many other Python libraries, such as ] and ] for plotting, ] for array vectorization, ] dataframes, ], and many more.


== Version history == == Version history ==
Scikit-learn was initially developed by David Cournapeau as a ] summer of code project in 2007. Later Matthieu Brucher joined the project and started to use it as a part of his thesis work. In 2010 ], the ], got involved and the first public release (v0.1 beta) was published in late January 2010. scikit-learn was initially developed by David Cournapeau as a Google Summer of Code project in 2007. Later that year, Matthieu Brucher joined the project and started to use it as a part of his thesis work. In 2010, ], the ], got involved and the first public release (v0.1 beta) was published in late January 2010.
* August 2013. scikit-learn 0.14<ref name=":0" />
* May 2020. scikit-learn 0.23.0<ref>{{cite web |title=Release History - 0.23.0 documentation |url=https://scikit-learn.org/dev/whats_new/v0.23.html#version-0-23-0 |website=scikit-learn |accessdate=7 June 2020}}</ref>
* July 2014. scikit-learn 0.15.0<ref name=":0" />
* December 2019. scikit-learn 0.22.0<ref>{{cite web |title=Release History - 0.22.0 documentation |url=https://scikit-learn.org/dev/whats_new/v0.22.html#version-0-22-0 |website=scikit-learn |accessdate=7 June 2020}}</ref>
* March 2015. scikit-learn 0.16.0<ref name=":0" />
* May 2019. scikit-learn 0.21.0<ref>{{cite web |title=Release History - 0.21.0 documentation |url=https://scikit-learn.org/stable/whats_new.html#version-0-21-0 |website=scikit-learn |accessdate=5 May 2019}}</ref>
* September 2018. scikit-learn 0.20.0<ref>{{cite web |title=Release History - 0.20.0 documentation |url=https://scikit-learn.org/stable/whats_new.html#version-0-20 |website=scikit-learn |accessdate=6 November 2018}}</ref> * November 2015. scikit-learn 0.17.0<ref name=":0">{{Cite web|url=https://scikit-learn.org/dev/whats_new.html|title=Release history — scikit-learn 0.19.dev0 documentation|website=scikit-learn.org|access-date=2017-02-27}}</ref>
* September 2016. scikit-learn 0.18.0
* July 2017. scikit-learn 0.19.0 * July 2017. scikit-learn 0.19.0
* September 2018. scikit-learn 0.20.0<ref>{{cite web |title=Release History - 0.20.0 documentation |url=https://scikit-learn.org/stable/whats_new.html#version-0-20 |website=scikit-learn |access-date=6 November 2018}}</ref>
* September 2016. scikit-learn 0.18.0
* November 2015. scikit-learn 0.17.0<ref name=":0">{{Cite web|url=https://scikit-learn.org/dev/whats_new.html|title=Release history — scikit-learn 0.19.dev0 documentation|website=scikit-learn.org|access-date=2017-02-27}}</ref> * May 2019. scikit-learn 0.21.0<ref>{{cite web |title=Release History - 0.21.0 documentation |url=https://scikit-learn.org/stable/whats_new.html#version-0-21-0 |website=scikit-learn |access-date=5 May 2019}}</ref>
* December 2019. scikit-learn 0.22<ref>{{cite web |title=Release History - 0.22 documentation |url=https://scikit-learn.org/dev/whats_new/v0.22.html |website=scikit-learn |access-date=7 June 2020}}</ref>
* March 2015. scikit-learn 0.16.0<ref name=":0" />
* May 2020. scikit-learn 0.23.0<ref>{{cite web |title=Release History - 0.23.0 documentation |url=https://scikit-learn.org/dev/whats_new/v0.23.html#version-0-23-0 |website=scikit-learn |access-date=7 June 2020}}</ref>
* July 2014. scikit-learn 0.15.0<ref name=":0" />
* Jan 2021. scikit-learn 0.24<ref>{{Citation|title=Release History - 0.24 documentation |url=https://scikit-learn.org/dev/whats_new/v0.24.html |website=scikit-learn |access-date=2021-02-08}}</ref>
* August 2013. scikit-learn 0.14<ref name=":0" />
* September 2021. scikit-learn 1.0.0<ref>{{cite web |title=Release History - 1.0.0 documentation |url=https://scikit-learn.org/dev/whats_new/v1.0.html#version-1-0-0 |website=scikit-learn }}</ref>

* October 2021. scikit-learn 1.0.1<ref>{{cite web |title=Release History - 1.0.1 documentation |url=https://scikit-learn.org/dev/whats_new/v1.0.html#version-1-0-1 |website=scikit-learn }}</ref>

* December 2021. scikit-learn 1.0.2<ref>{{cite web |title=Release History - 1.0.2 documentation |url=https://scikit-learn.org/dev/whats_new/v1.0.html |website=scikit-learn }}</ref>
The timeline of there releases is depicted in the following chart.
* May 2022. scikit-learn 1.1.0<ref>{{cite web |title=Release History - 1.1.0 documentation |url=https://scikit-learn.org/dev/whats_new/v1.1.html#version-1-1-0 |website=scikit-learn }}</ref>

* May 2022. scikit-learn 1.1.1<ref>{{cite web |title=Release History - 1.1.1 documentation |url=https://scikit-learn.org/dev/whats_new/v1.1.html#version-1-1-1 |website=scikit-learn }}</ref>
{{#tag:timeline|
* August 2022. scikit-learn 1.1.2<ref>{{cite web |title=Release History - 1.1.2 documentation |url=https://scikit-learn.org/dev/whats_new/v1.1.html#version-1-1-2 |website=scikit-learn }}</ref>
ImageSize = width:700 height:auto barincrement:26
* October 2022. scikit-learn 1.1.3<ref>{{cite web |title=Release History - 1.1.3 documentation |url=https://scikit-learn.org/dev/whats_new/v1.1.html |website=scikit-learn }}</ref>
PlotArea = left:130 bottom:100 top:10 right:20
* December 2022. scikit-learn 1.2.0<ref>{{cite web |title=Release History - 1.2.0 documentation |url=https://scikit-learn.org/dev/whats_new/v1.2.html#version-1-2-0 |website=scikit-learn }}</ref>
Alignbars = justify
* January 2023. scikit-learn 1.2.1<ref>{{cite web |title=Release History - 1.2.1 documentation |url=https://scikit-learn.org/dev/whats_new/v1.2.html#version-1-2-1 |website=scikit-learn }}</ref>
DateFormat = dd/mm/yyyy
* March 2023. scikit-learn 1.2.2<ref>{{cite web |title=Release History - 1.2.2 documentation |url=https://scikit-learn.org/dev/whats_new/v1.2.html |website=scikit-learn }}</ref>
Period = from:01/01/2013 till:31/12/2021
TimeAxis = orientation:horizontal format:yyyy
Legend = orientation:vertical position:bottom columns:1
ScaleMajor = increment:2 start:2014
ScaleMinor = increment:1 start:2013

Colors =
id:p1 value:red legend:VersionRelease

BarData =
bar:0.23.0 text:scikit-learn 0.23.0
bar:0.22.0 text:scikit-learn 0.22.0
bar:0.21.0 text:scikit-learn 0.21.0
bar:0.20.0 text:scikit-learn 0.20.0
bar:0.19.0 text:scikit-learn 0.19.0
bar:0.18.0 text:scikit-learn 0.18.0
bar:0.17.0 text:scikit-learn 0.17.0
bar:0.16.0 text:scikit-learn 0.16.0
bar:0.15.0 text:scikit-learn 0.15.0
bar:0.14.0 text:scikit-learn 0.14.0

PlotData=
width:11 textcolor:black align:left anchor:from shift:(11,-4)
color:p1
bar:0.23.0 from:01/05/2020 till:30/05/2020 width:3
bar:0.22.0 from:01/12/2019 till:30/12/2019 width:3
bar:0.21.0 from:01/05/2019 till:30/05/2019 width:3
bar:0.20.0 from:01/09/2018 till:30/09/2018 width:3
bar:0.19.0 from:01/07/2017 till:30/07/2017 width:3
bar:0.18.0 from:01/09/2016 till:30/09/2016 width:3
bar:0.17.0 from:01/11/2015 till:30/11/2015 width:3
bar:0.16.0 from:01/03/2015 till:30/03/2015 width:3
bar:0.15.0 from:01/07/2014 till:30/07/2014 width:3
bar:0.14.0 from:01/08/2013 till:30/08/2013 width:3
}}


==scikit-learn alternatives==
==See also==
* ] * ]
* ] * ]
Line 141: Line 108:
==External links== ==External links==
* {{Official website|https://scikit-learn.org/}} * {{Official website|https://scikit-learn.org/}}
* {{GitHub|https://github.com/scikit-learn}}


{{SciPy ecosystem}} {{SciPy ecosystem}}
{{differentiable computing}}


] ]

Latest revision as of 21:08, 25 November 2024

Python library for machine learning
scikit-learn
Original author(s)David Cournapeau
Initial releaseJune 2007; 17 years ago (2007-06)
Stable release1.6.0 / 9 December 2024; 23 days ago (9 December 2024)
Repository
Written inPython, Cython, C and C++
Operating systemLinux, macOS, Windows
TypeLibrary for machine learning
LicenseNew BSD License
Websitescikit-learn.org

scikit-learn (formerly scikits.learn and also known as sklearn) is a free and open-source machine learning library for the Python programming language. It features various classification, regression and clustering algorithms including support-vector machines, random forests, gradient boosting, k-means and DBSCAN, and is designed to interoperate with the Python numerical and scientific libraries NumPy and SciPy. Scikit-learn is a NumFOCUS fiscally sponsored project.

Overview

The scikit-learn project started as scikits.learn, a Google Summer of Code project by French data scientist David Cournapeau. The name of the project stems from the notion that it is a "SciKit" (SciPy Toolkit), a separately developed and distributed third-party extension to SciPy. The original codebase was later rewritten by other developers. In 2010, contributors Fabian Pedregosa, Gaël Varoquaux, Alexandre Gramfort and Vincent Michel, from the French Institute for Research in Computer Science and Automation in Saclay, France, took leadership of the project and released the first public version of the library on February 1, 2010. In November 2012, scikit-learn as well as scikit-image were described as two of the "well-maintained and popular" scikits libraries. In 2019, it was noted that scikit-learn is one of the most popular machine learning libraries on GitHub.

Implementation

scikit-learn is largely written in Python, and uses NumPy extensively for high-performance linear algebra and array operations. Furthermore, some core algorithms are written in Cython to improve performance. Support vector machines are implemented by a Cython wrapper around LIBSVM; logistic regression and linear support vector machines by a similar wrapper around LIBLINEAR. In such cases, extending these methods with Python may not be possible.

scikit-learn integrates well with many other Python libraries, such as Matplotlib and plotly for plotting, NumPy for array vectorization, Pandas dataframes, SciPy, and many more.

Version history

scikit-learn was initially developed by David Cournapeau as a Google Summer of Code project in 2007. Later that year, Matthieu Brucher joined the project and started to use it as a part of his thesis work. In 2010, INRIA, the French Institute for Research in Computer Science and Automation, got involved and the first public release (v0.1 beta) was published in late January 2010.

  • August 2013. scikit-learn 0.14
  • July 2014. scikit-learn 0.15.0
  • March 2015. scikit-learn 0.16.0
  • November 2015. scikit-learn 0.17.0
  • September 2016. scikit-learn 0.18.0
  • July 2017. scikit-learn 0.19.0
  • September 2018. scikit-learn 0.20.0
  • May 2019. scikit-learn 0.21.0
  • December 2019. scikit-learn 0.22
  • May 2020. scikit-learn 0.23.0
  • Jan 2021. scikit-learn 0.24
  • September 2021. scikit-learn 1.0.0
  • October 2021. scikit-learn 1.0.1
  • December 2021. scikit-learn 1.0.2
  • May 2022. scikit-learn 1.1.0
  • May 2022. scikit-learn 1.1.1
  • August 2022. scikit-learn 1.1.2
  • October 2022. scikit-learn 1.1.3
  • December 2022. scikit-learn 1.2.0
  • January 2023. scikit-learn 1.2.1
  • March 2023. scikit-learn 1.2.2

scikit-learn alternatives

References

  1. "Release 1.6.0". 9 December 2024. Retrieved 29 December 2024.
  2. "The scikit-learn Open Source Project on Open Hub: Languages Page". Open Hub. Retrieved 14 July 2018.
  3. Fabian Pedregosa; Gaël Varoquaux; Alexandre Gramfort; Vincent Michel; Bertrand Thirion; Olivier Grisel; Mathieu Blondel; Peter Prettenhofer; Ron Weiss; Vincent Dubourg; Jake Vanderplas; Alexandre Passos; David Cournapeau; Matthieu Perrot; Édouard Duchesnay (2011). "scikit-learn: Machine Learning in Python". Journal of Machine Learning Research. 12: 2825–2830.
  4. "NumFOCUS Sponsored Projects". NumFOCUS. Retrieved 2021-10-25.
  5. Dreijer, Janto. "scikit-learn".
  6. "About us — scikit-learn 0.20.1 documentation". scikit-learn.org.
  7. Eli Bressert (2012). SciPy and NumPy: an overview for developers. O'Reilly. p. 43.
  8. "The State of the Octoverse: machine learning". The GitHub Blog. GitHub. 2019-01-24. Retrieved 2019-10-17.
  9. ^ "Release history — scikit-learn 0.19.dev0 documentation". scikit-learn.org. Retrieved 2017-02-27.
  10. "Release History - 0.20.0 documentation". scikit-learn. Retrieved 6 November 2018.
  11. "Release History - 0.21.0 documentation". scikit-learn. Retrieved 5 May 2019.
  12. "Release History - 0.22 documentation". scikit-learn. Retrieved 7 June 2020.
  13. "Release History - 0.23.0 documentation". scikit-learn. Retrieved 7 June 2020.
  14. "Release History - 0.24 documentation", scikit-learn, retrieved 2021-02-08
  15. "Release History - 1.0.0 documentation". scikit-learn.
  16. "Release History - 1.0.1 documentation". scikit-learn.
  17. "Release History - 1.0.2 documentation". scikit-learn.
  18. "Release History - 1.1.0 documentation". scikit-learn.
  19. "Release History - 1.1.1 documentation". scikit-learn.
  20. "Release History - 1.1.2 documentation". scikit-learn.
  21. "Release History - 1.1.3 documentation". scikit-learn.
  22. "Release History - 1.2.0 documentation". scikit-learn.
  23. "Release History - 1.2.1 documentation". scikit-learn.
  24. "Release History - 1.2.2 documentation". scikit-learn.

External links

Scientific software in Python
Differentiable computing
General
Hardware
Software libraries
Categories: