What is scikit learn?
Tags: python, machinelearning
Published: 2019-11-03 12:16:55

---
title: What is scikit learn?
tags: python, machine learning
cover_image: https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Ftse2.mm.bing.net%2Fth%3Fid%3DOIP.ZzfzbFCqkSvlP9FlOEBb7gHaD7%26pid%3DApi&f=1
published: true
---
<a href="https://scikit-learn.org/stable/index.html">Sci-kit (pronounced sai kit) learn</a> is a free software machine learning library for <a href="https://python.org">Python</a>. Library in computer language simply means a collection o languages, behaviors, routines, scripts, files, programs and functions which can be used or referenced in a programming code.

<a href="https://pythonprogramminglanguage.com/python-machine-learning/">Machine learning</a> itself is a method of study of algorithms that can be used by computer systems to perform a specific task or a group of tasks without getting an explicit instruction from a controller, which would be a human in this case, but rather relying on past patterns and experiences to draw inferences that could then be used to perform the required task. 

<img src="https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fjaquesgrobler.github.io%2FOnline-Scikit-Learn-stat-tut%2F_images%2Fplot_lda_qda_1.png&f=1&nofb=1">

Sci-kit learn is therefore a collection of languages, functions and routines for python that helps provide many supervised and unsupervised learning algorithms. 

Sci-kit learn is built from already existing and familiar technology like NumPy, pandas, iPhython, Sympy and Matplotlib. 

The two kinds of machine learning models that exist in reality are:

* *The traditional machine learning model*
* *Artificial neural network*

Sci-kit learn is a library in python that helps in building traditional machine learning models. There are other libraries in python that help in building artificial neural networks, like the python library called 
Keras. 

## Brief history of Sci-kit Learn

<a href="https://scikit-learn.org/stable/index.html">Scikit-learn</a> was initially developed by David Cournapeau, a data scientist who had worked for Silveregg, a SaaS company, as well as Enthought, a scientific consulting company for years. The sci-kit learn project initially started as scikits.learn, which was a Google summer of code project in 2007.

<a href="https://summerofcode.withgoogle.com/">Google summer of code</a>, which had started two years prior to the sci-kit learn project, is an international annual project sponsored by Google to award stipends to university students aged 18 years or over who can successfully create a free and open source software program during the summer of code (which happens to be an actual summer).

<img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fimages.idgesg.net%2Fimages%2Farticle%2F2018%2F01%2Ftoy2018-scikit-learn-100748100-orig.jpg&f=1&nofb=1">

The name was built from the idea that is a SciPy toolkit, which is a separately developed and distributed third-party extension to SciPy. 

Since that time, the original codebase has be rewritten by other developers, such as Fabian Pedregosa, Vincent Michel, Alexandre Gramfort and Gael Varoquaux. 

All of the above computer scientists come from the <a href="https://www.inria.fr/en/">French Institute for Research in Computer Science and Automation</a>, located in Rocquencourt, France.
 
<img src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fresearchleap.com%2Fwp-content%2Fuploads%2F2015%2F08%2FScientists-Collaborating-with-Industry-An-Exploration-of-Industry-Engagement-Types.jpg&f=1&nofb=1">

These scientists took charge of the project in 2010, and the first public release of the project was made by them on 1st February, 2010.The stable release of the software was done on 17th May, 2019.  


## Why Sci-kit learn?

So what can you do with scikit-learn? You can run the traditional Machine Learning algorithms. Implementation of many algorithms is included in the module.

Some of the functionalities provided by sci-kit learn include:

* <a href="https://pythonbasics.org/machine-learning-regression/">Regression</a>: this includes Logistic and Linear Regression
* <a href="https://pythonprogramminglanguage.com/kmeans-clustering-algorithm/">Clustering</a>: this includes K-Means and K-Means ++

<img src="https://external-content.duckduckgo.com/iu/?u=http%3A%2F%2Fgael-varoquaux.info%2Fscipy-lecture-notes%2F_images%2Fsphx_glr_plot_iris_knn_001.png&f=1&nofb=1" alt="clustering">

Model Selection

* Preprocessing: this includes Min to Max Normalization
* <a href="https://pythonbasics.org/machine-learning-classifier/">Classification</a>: this includes K-Nearest Neighbors

Benefits of using sci-kit learn include:

* It can work well with Numpy as it has a good integration
* It has a good documentation, and a very clean, consistent API
* It provides lots of useful utilities for doing rare matrix operations and for splitting data.

Sci-kit learn is an important model interface that can be used for various functions like data splitting, even if you do not use the interface primarily.

**Related links**
* <a href="https://scikit-learn.org/stable/index.html">Scikit-learn Python module</a>
* <a href="https://gum.co/MnRYU">Course: Introduction to Machine Learning</a>
* <a href="https://pythonbasics.org/machine-learning-classifier/">Short ML tutorial</a>