www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Нежное введение в Scikit-Learn: библиотека машинного обучения Python

Дата публикации 2014-04-16

Если вы программист на Python или ищете надежную библиотеку, которую вы можете использовать для внедрения машинного обучения в производственную систему, то библиотека, которую вы захотите серьезно рассмотреть, является scikit-learn.

В этом посте вы получите обзор библиотеки scikit-learn и полезные ссылки, где вы можете узнать больше.

Откуда это?

Изначально Scikit-learn был разработан Дэвидом Курнапо в качестве проекта Google Summer of Code в 2007 году.

Позже Матье Брухер присоединился к проекту и начал использовать его как часть своей дипломной работы. В 2010 году INRIA присоединилась, и первый публичный релиз (v0.1 beta) был опубликован в конце января 2010 года.

В настоящее время в проекте участвуют более 30 активных участников, и его спонсором было оплаченоINRIAGoogle,TinycluesиPython Software Foundation,

Что такое Scikit-Learn?

Scikit-learn предоставляет ряд контролируемых и неконтролируемых алгоритмов обучения через согласованный интерфейс в Python.

Он лицензируется по разрешающей упрощенной лицензии BSD и распространяется во многих дистрибутивах Linux, поощряя академическое и коммерческое использование.

Библиотека построена на SciPy (Scientific Python), который должен быть установлен, прежде чем вы сможете использовать scikit-learn. Этот стек, который включает в себя:

  • NumPy: Базовый пакет n-мерного массива
  • SciPy: Фундаментальная библиотека для научных вычислений
  • Matplotlib: Всестороннее 2D / 3D изображение
  • IPython: Улучшенная интерактивная консоль
  • SymPy: Символическая математика
  • Панды: Структуры данных и анализ

Расширения или модули для обслуживания SciPy с условным названиемSciKits, Таким образом, модуль предоставляет алгоритмы обучения и называется scikit-learn.

Концепция библиотеки - это уровень надежности и поддержки, необходимый для использования в производственных системах. Это означает глубокое внимание к таким проблемам, как простота использования, качество кода, совместная работа, документирование и производительность.

Хотя интерфейс Python, c-библиотеки являются рычагом для повышения производительности, таким как numpy для массивов и матричных операций,LAPACK,LibSVMи осторожное использование Cython.

Каковы особенности?

Библиотека ориентирована на моделирование данных. Он не ориентирован на загрузку, манипулирование и суммирование данных. Для этих функций, обратитесь к NumPy и Pandas.

Некоторые популярные группы моделей, предоставляемые Scikit-Learn, включают в себя:

  • Кластеризация: для группировки немаркированных данных, таких как KMeans.
  • Перекрестная проверка: для оценки производительности контролируемых моделей на невидимых данных.
  • Datasets: для тестовых наборов данных и для создания наборов данных со специфическими свойствами для исследования поведения модели.
  • Уменьшение размерности: для уменьшения количества атрибутов в данных для суммирования, визуализации и выбора функций, таких как анализ главных компонентов.
  • Методы ансамбля: для объединения прогнозов нескольких контролируемых моделей.
  • Извлечение функций: для определения атрибутов в графических и текстовых данных.
  • Выбор функции: для определения значимых атрибутов, из которых можно создавать контролируемые модели.
  • Настройка параметров: для получения максимальной отдачи от контролируемых моделей.
  • Многообразие обучения: Для суммирования и отображения сложных многомерных данных.
  • Модели под наблюдением: обширный массив, не ограниченный обобщенными линейными моделями, дискриминирующим анализом, наивными байесовскими алгоритмами, ленивыми методами, нейронными сетями, машинами опорных векторов и деревьями решений.

Пример: деревья классификации и регрессии

Я хочу дать вам пример, чтобы показать, как легко пользоваться библиотекой.

В этом примере мы используем алгоритм дерева решений деревьев классификации и регрессии (CART) для моделирования набора данных цветов радужной оболочки.

Этот набор данных предоставляется в качестве примера набора данных с библиотекой и загружается. Классификатор соответствует данным, а затем делаются прогнозы по данным обучения.

Наконец, точность классификации и путаница печатается.

# Sample Decision Tree Classifier
from sklearn import datasets
from sklearn import metrics
from sklearn.tree import DecisionTreeClassifier
# load the iris datasets
dataset = datasets.load_iris()
# fit a CART model to the data
model = DecisionTreeClassifier()
model.fit(dataset.data, dataset.target)
print(model)
# make predictions
expected = dataset.target
predicted = model.predict(dataset.data)
# summarize the fit of the model
print(metrics.classification_report(expected, predicted))
print(metrics.confusion_matrix(expected, predicted))

Выполнение этого примера приводит к следующему выводу, показывая вам подробности обученной модели, навыки модели в соответствии с некоторыми общими метриками и матрицу путаницы.

DecisionTreeClassifier(class_weight=None, criterion='gini', max_depth=None,
            max_features=None, max_leaf_nodes=None, min_samples_leaf=1,
            min_samples_split=2, min_weight_fraction_leaf=0.0,
            presort=False, random_state=None, splitter='best')
             precision    recall  f1-score   support

          0       1.00      1.00      1.00        50
          1       1.00      1.00      1.00        50
          2       1.00      1.00      1.00        50

avg / total       1.00      1.00      1.00       150

[[50  0  0]
 [ 0 50  0]
 [ 0  0 50]]

Кто это использует?

страница отзывов о scikit-learnInria, Mendeley, wise.io, Evernote, Telecom ParisTech и AWeber в качестве пользователей библиотеки.

Если это небольшое указание компаний, которые представили информацию об их использовании, то весьма вероятно, что от десятков до сотен крупных организаций используют библиотеку.

Он имеет хорошее тестовое покрытие и управляемые релизы и подходит как для прототипов, так и для производственных проектов.

Ресурсы

Если вы заинтересованы в получении дополнительной информации, проверьтеScikit-Learn домашняя страницаэто включает документацию и связанные ресурсы.

Вы можете получить код отGitHub хранилищеи релизы исторически доступны наПроект Sourceforge

Документация

Я рекомендую начать с краткого руководства и пролистать руководство пользователя и примеры галерей для алгоритмов, которые вас интересуют.

В конечном счете, scikit-learn - это библиотека, а справочник по API станет лучшей документацией для достижения цели.

документы

Если вы заинтересованы в получении дополнительной информации о том, как проект начался, и о его видении, есть некоторые документы, которые вы можете проверить.

книги

Если вы ищете хорошую книгу, я рекомендую «Создание систем машинного обучения с использованием Python». Это хорошо написано, и примеры интересны.

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map