Concepts / Machine learning prerequisites for scikit-learn

Machine learning prerequisites for scikit-learn

scikit-learn is a machine learning library containing a number of state-of-the-art algorithms, each supported by comprehensive documentation.

  • Programming

Why Practitioners Rely on Ready-Made Tools

Imagine you want to teach a computer to spot patterns in data. Two common examples are predicting house prices from floor area, or sorting email into spam and non-spam. You could try to write every mathematical method yourself and test each one from scratch. Most practitioners do not work that way. Instead they rely on a library, which is a collection of ready-made tools that someone else has written, tested, and shared.

scikit-learn is one of the most widely used libraries for this kind of work in the Python ecosystem. Before you write a single line of code with it, it helps to understand what it contains, how it is maintained, and why each of those facts matters to a beginner.

What scikit-learn Is

Definition

scikit-learn is a machine learning library containing a number of state-of-the-art algorithms, each supported by comprehensive documentation.

The key word is library. A library is code you bring into your own program, rather than a program you launch on its own. When you use scikit-learn, its tools become part of the work you are doing in your own code. A standalone application, by contrast, is a complete program you run directly. The diagram below sets these two kinds of software side by side.

Imported into yourcodeRuns as its ownprogramTools called fromyour programComplete program youlaunch
Where does scikit-learn sit in my workflow: is it a program I run, or code I import into my own program?

The source describes scikit-learn as a library that works well with other scientific Python tools and is designed to fit into a larger set of tools rather than to stand alone. This is why it is best understood as one component inside your work, not as the whole environment you work in.

Predicting Where scikit-learn Sits

What do you think happens?

When you use scikit-learn, do you run it as a separate program, or do you import its tools into code you write?

  • Run it as a separate program

  • Import its tools into code I write

Reveal answer
Answer:

Import its tools into code you write

scikit-learn is a library, a collection of ready-made tools that you bring into your own program. It is not described in the source as a program you launch on its own.

The Algorithms at the Core

The core of scikit-learn is its collection of machine learning algorithms. In this context, an algorithm is a procedure that takes data as input and learns a rule or model from it. That learned rule can then be used to make predictions or to find structure in the data. scikit-learn provides a number of these procedures.

The source describes these procedures as state-of-the-art. In plain terms, they reflect current, well-established practice rather than historical or experimental methods. This is one reason the library is a sensible starting point: the tools it offers are the ones practitioners are using now.

How the Pieces Fit Together

The algorithms are the main content of the library, but they do not arrive alone. Each algorithm comes with documentation, and that documentation is part of the same package of resources a learner can reach from the library itself. Beyond that, a large community surrounds the project. The concept map below shows how these parts relate.

scikit-learnAlgorithmsmain contentUser guidebroad orientationDocumentationper algorithmAPI documentationoptions per algorithmCommunityactive usersOnline tutorialsshared examplesprovidesdocumented bysupported byincludesincludesproduces
How do scikit-learn's algorithms, documentation, and community relate to one another, and which one connects to which?

Two Kinds of Documentation

Documentation is not an afterthought in scikit-learn, and the online material is extensive. Two kinds of reference are worth knowing. The user guide gives a broader orientation to the library's methods, which helps you understand what a family of methods is for. The API documentation lists the individual options available for each algorithm. It matters most when you want to change how a method behaves rather than accept its defaults.

Worked example

Choosing the Right Reference

You are using an algorithm and want to change one of its behaviors instead of accepting the default. Which reference should you consult first, and why?

  1. 1
    Identify the goal

    You want to change a specific behavior, not understand the general purpose of the method.

  2. 2
    Match the goal to a reference

    The user guide gives broad orientation. The API documentation lists the individual options for each algorithm, which is where configurable behaviors are described.

  3. 3
    Choose the API documentation

    Because you need the options for this one algorithm, the API documentation is the right place to look first.

  4. 4
    Return to the user guide if needed

    If the options do not make the method's purpose clear, the broader user guide can supply that orientation.

Result

Use the API documentation to find the individual options for the algorithm, and use the user guide when you need broader context about the method.

Why Open Source and Free Use Matter

scikit-learn is an open source project. Open source means the source code, which is the human-written text that defines how the software works, is publicly available. Anyone can obtain it and read it to see how an algorithm is actually implemented. The project is also free to use and free to distribute, so cost does not stand between a learner and the tools.

For a learner, this has a practical consequence. Because the source code is visible, you are not limited to trusting a summary of an algorithm. When a method behaves in a way you do not expect, you can trace what it is doing. The project is also continually developed and improved, and it has an active user community that contributes to that work.

Popularity, Tutorials, and Transferable Skills

The source describes scikit-learn as the most prominent Python library for machine learning, used both in industry and in academia. This matters for a beginner in two ways. First, a large body of tutorials and code snippets is available online, so when you get stuck, you are likely to find someone who has solved a similar problem. Second, skills learned with this library transfer to many professional and research settings where it is already in use.

Tracing a Stuck Question Through the Resources

Follow a learner who is stuck on an algorithm. Each step moves the question closer to a solution.

  1. 1
    Start with the user guide to recover the broad purpose of the method.
  2. 2
    If you need to change how the method behaves, move to the API documentation and read the options listed for that algorithm.
  3. 3
    If the documentation still leaves you unsure, search online tutorials for a similar problem, since many learners have already asked it.
  4. 4
    If the library behaves in a way you did not expect, read the publicly available source code to see what it is actually doing.
  5. 5
    Return to your own code with the answer, now understood rather than copied.

Mistakes Beginners Make

  • Common mistake

    Treating scikit-learn as a standalone application you launch and click through

    What it looks like

    Looking for a program window to start and expecting the tools to run on their own.

    Why it fails

    scikit-learn is a library, a collection of tools you import into your own code.

    Do this instead

    Think of it as code you bring into your own program, one part of a larger set of tools.

  • Common mistake

    Assuming the documentation is optional because the algorithms are the main content

    Why it fails

    Each algorithm has its own documentation, and the source describes that documentation as comprehensive.

    Do this instead

    Use the user guide for orientation and the API documentation for the options of each algorithm.

  • Common mistake

    Using the user guide and the API documentation interchangeably

    What it looks like

    Reading the broad user guide when you need the individual options for one algorithm.

    Why it fails

    The user guide gives broad orientation, while the API documentation details the options for each algorithm.

    Do this instead

    Match the question to the reference: purpose calls for the user guide, configurable options call for the API documentation.

  • Common mistake

    Believing that open source means the code is only for experts to read

    Why it fails

    The source code is publicly available, and anyone can obtain it and read it to see how an algorithm is implemented.

    Do this instead

    Treat the visible source code as a resource you can consult when a method behaves unexpectedly.

  • Common mistake

    Assuming that being stuck means no one else has faced the problem, when a large body of online tutorials exists

Checking Your Understanding

EASY

A colleague tells you that scikit-learn is a standalone app that you install and click through, and that the documentation is only for people who already know the algorithms. Explain what is wrong with each claim. Then say which reference you would check first if you wanted to change one option of a method.

Hints
  • Recall whether scikit-learn is described as a library you import or a program you run on its own.
  • Think about what the user guide offers compared with what the API documentation lists.
  • The option you want to change is an individual behavior of one algorithm.

Key Takeaways

  • scikit-learn is a machine learning library, a collection of ready-made state-of-the-art algorithms that you import into your own code rather than a standalone program.
  • Each algorithm is supported by documentation: the user guide gives broad orientation, and the API documentation details the options for each algorithm.
  • Being open source means the source code is publicly available for inspection, and being free to use and distribute removes cost as a barrier.
  • The library is popular in industry and academia, has a large body of online tutorials, and works well with other scientific Python tools, so skills learned with it transfer widely.

Related concepts

More concepts starting with M