Scikit-learn (требует наличия NumPy и SciPy)
Не умеет работать с GPU, прохо подходит для нейросетей (глубокого обучения).
Зато изучение ML обычно начинается именно с нее, наверное из-за простоты.
Все алгоритмы в scikit-learn, будь-то предварительная обработка, алгоритмы машинного обучения с учителем или машинное обучения без учителя, реализованы в виде классов. Эти классы в scikit-learn называются estimators (моделями).
Чтобы применить алгоритм, вы сперва должны создать экземпляр конкретного класса:
from sklearn.linear_model import LogisticRegression
logreg = LogisticRegression()
Этот класс-модель содержит алгоритм, а также записывает модель, обученную на данных с помощью этого алгоритма.
При построении модели вы должны задать те ли иные ее параметры. Эти параметры включают в себя регуляризацию, настройку сложности, количество выделяемых кластеров и т.д. Все модели имеют метод fit, который используется для построения модели. Метод fit всегда требует в качестве первого аргумента данные X, представленных в виде массива NumPy или разреженной матрицы SciPy, в которой каждая строка представляет собой отдельную точку данных.
Предполагается, что данные Х всегда записаны в виде массива NumPy или разреженной матрицы SciPy, которая содержит непрерывные элементы (числа с плавающей точкой). Алгоритмы машинного обучения с учителем дополнительно требуют аргумент y, который является одномерным массивом NumPy, содержащим целевые значения для регрессии или классификации (т.е. уже известные метки или ответы).
Есть два основных способа применить обученную модель в scikit-learn. Чтобы создать прогноз в виде нового ответа типа у, вы должны использовать метод predict. Для создания нового представления входных данных X используется метод transform.
Дополнителбные библиотеки, с которыми приходится работать при использовании Scikit-learn.
NumPy – это один из основных пакетов для научных вычислений в Python. Он содержит функциональные возможности для работы с многомерными массивами, высокоуровневыми математическими функциями (операции линейной алгебры, преобразование Фурье, генератор псевдослучайных чисел).
В scikit-learn массив NumPy – это основная структура данных. scikit-learn принимает данные в виде массивов NumPy. Любые данные, которые вы используете, должны быть преобразованы в массив NumPy.
SciPy – это набор функций для научных вычислений в Python. Помимо всего прочего он предлагает продвинутые процедуры линейной алгебры, математическую оптимизацию функций, обработку сигналов, специальные математические функции и статистические функции.
scikit-learn использует набор функций SciPy для реализации своих алгоритмов. Для нас наиболее важной частью SciPy является пакет scipy.sparse: с помощью него мы получаем разреженные матрицы ( sparse matrices ), которые представляют собой еще один формат данных, который используется в scikit-learn. Разреженные матрицы используются всякий раз, когда нам нужно сохранить 2D массив, который содержит в основном нули
matplotlib – это основная библиотека для построения научных графиков в Python. Она включает функции для создания высококачественных визуализаций типа линейных диаграмм, гистограмм, диаграмм разброса и т.д.
pandas – библиотека Python для обработки и анализа данных. Она построена на основе структуры данных, называемой DataFrame и смоделированной по принципу датафреймов среды статистического программирования R. Проще говоря, DataFrame библиотеки pandas представляет собой таблицу, похожую на электронную таблицу Excel.
Библиотека pandas предлагает большой спектр методов по работе с этой таблицей, в частности, она позволяет выполнять SQL-подобные запросы и присоединения таблиц.