Аннотация:
Погрузитесь в захватывающий мир контролируемого обучения с помощью Python в этой увлекательной статье. Мы расскажем об основах обучения с учителем, важности разработки признаков и о том, как выбрать правильный алгоритм для решения вашей задачи. Получите практический опыт с пошаговым примером, используя популярную библиотеку Python Scikit-learn. Наконец, мы раскроем секреты оценки и тонкой настройки моделей для максимально возможной производительности.
Ключевые слова: контролируемое обучение, Python, Scikit-learn, разработка функций, оценка модели, настройка гиперпараметров.
Введение
Обучение с учителем — это фундаментальный подход к машинному обучению, при котором модель обучается на размеченном наборе данных, чтобы делать прогнозы на основе входных признаков. Он имеет множество приложений в различных областях, включая распознавание изображений, обработку естественного языка и медицинскую диагностику. В этой статье рассматривается контролируемое обучение с упором на реализацию этих методов с использованием Python.
Теория контролируемого обучения
2.1. Постановка проблемы
Обучение с учителем основано на концепции обучения функции, которая сопоставляет входные объекты с выходными метками с использованием помеченного набора данных. Набор данных содержит набор пар вход-выход, где каждая пара состоит из вектора входных признаков и соответствующей ему выходной метки. Цель состоит в том, чтобы найти функцию, которая может хорошо обобщать новые, невидимые данные.
2.2. Классификация против регрессии
Проблемы контролируемого обучения можно разделить на два типа: классификация и регрессия. Классификация связана с прогнозированием дискретных выходных меток, а регрессия фокусируется на прогнозировании непрерывных выходных значений. Это различие определяет выбор алгоритмов и метрик оценки.
Разработка функций
Разработка функций включает в себя выбор, преобразование и создание соответствующих функций для модели. Это важный шаг в обучении с учителем, так как он влияет на производительность алгоритма. Некоторые распространенные методы включают масштабирование, нормализацию и горячее кодирование.
Выбор правильного алгоритма
Выбор подходящего алгоритма для задачи обучения с учителем зависит от различных факторов, включая тип проблемы (классификация или регрессия), размер набора данных и характер данных. Популярные алгоритмы включают логистическую регрессию, k-ближайших соседей, деревья решений, случайные леса и методы опорных векторов.
Контролируемое обучение с помощью Scikit-learn: пример Python
Scikit-learn — популярная библиотека Python для реализации алгоритмов машинного обучения. Следующие шаги демонстрируют, как использовать его для контролируемой учебной задачи:
5.1. Загрузка данных
5.2. Предварительная обработка данных
5.3. Разделение данных на обучающие и тестовые наборы
5.4. Выбор и обучение модели
5.5. Делать прогнозы
Оценка модели
Для оценки эффективности модели контролируемого обучения можно использовать различные метрики оценки. Для задач классификации общие показатели включают точность, прецизионность, полноту, F1-оценку и площадь под кривой рабочих характеристик приемника (ROC). Для задач регрессии можно использовать такие показатели, как среднеквадратическая ошибка (MSE), среднеквадратическая ошибка (RMSE), средняя абсолютная ошибка (MAE) и R-квадрат.
Настройка гиперпараметров
Тонкая настройка модели включает настройку ее гиперпараметров для оптимизации производительности. Для поиска наилучшей комбинации гиперпараметров можно использовать такие методы, как поиск по сетке, случайный поиск и байесовскую оптимизацию.
Заключение
В этой статье представлен всесторонний обзор методов обучения с учителем и их реализации в Python. Понимание теоретических основ, важности разработки признаков и процесса выбора правильного алгоритма имеет решающее значение для эффективной разработки модели. Кроме того, оценка производительности модели и точная настройка гиперпараметров обеспечивают оптимальные результаты для задач обучения под наблюдением.
В этом простом руководстве мы продемонстрируем контролируемое обучение с использованием набора данных Iris и алгоритма дерева решений с помощью Python и библиотеки Scikit-learn.
Установите Scikit-Learn:
pip install scikit-learn
Создайте новый файл Python (например, iris_decision_tree.py) и импортируйте необходимые библиотеки:
import numpy as np from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import accuracy_score, classification_report
Загрузите набор данных Iris и разделите его на наборы для обучения и тестирования:
# Load the Iris dataset iris = load_iris() X = iris.data y = iris.target # Split the dataset into a training set (70%) and a testing set (30%) X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
Обучите модель дерева решений:
# Create a Decision Tree classifier clf = DecisionTreeClassifier(random_state=42) # Train the model using the training data clf.fit(X_train, y_train)
Сделайте прогнозы и оцените модель:
# Make predictions using the testing data y_pred = clf.predict(X_test) # Calculate the accuracy of the model accuracy = accuracy_score(y_test, y_pred) print("Accuracy:", accuracy) # Print the classification report report = classification_report(y_test, y_pred, target_names=iris.target_names) print("Classification Report:\n", report)
Сохраните файл и запустите его в терминале или в командной строке:
python iris_decision_tree.py
Наблюдайте за результатом вывода:
Accuracy: 1.0 Classification Report: precision recall f1-score support setosa 1.00 1.00 1.00 19 versicolor 1.00 1.00 1.00 13 virginica 1.00 1.00 1.00 13 accuracy 1.00 45 macro avg 1.00 1.00 1.00 45 weighted avg 1.00 1.00 1.00 45
В этом руководстве мы продемонстрировали контролируемое обучение с использованием набора данных Iris и алгоритма дерева решений в Python. Мы импортировали необходимые библиотеки, загрузили набор данных, разбили его на обучающую и тестовую выборки, обучили модель, сделали прогнозы и оценили производительность модели. Выходные данные показывают точность и отчет о классификации для модели.
Вот несколько ссылок, которые помогут вам узнать больше об обучении с учителем, Python и Scikit-learn:
- Епископ, CM (2006). Распознавание образов и машинное обучение. Спрингер.
- URL-адрес: https://www.springer.com/gp/book/9780387310732
- Гудфеллоу И., Бенжио Ю. и Курвиль А. (2016). Глубокое обучение. Массачусетский технологический институт Пресс.
- URL: https://www.deeplearningbook.org/
- Джеймс Г., Виттен Д., Хасти Т. и Тибширани Р. (2013). Введение в статистическое обучение: с приложениями в R. Springer.
- URL: https://www.springer.com/gp/book/9781461471370
- Фонд программного обеспечения Python. (2021). Справочник по языку Python, версия 3.9.1. Фонд программного обеспечения Python.
- URL: https://docs.python.org/3/reference/index.html
- Scikit-learn разработчики. (2021). Scikit-learn: Машинное обучение в Python.
- URL: https://scikit-learn.org/stable/index.html
- Педрегоса, Ф., Вароко, Г., Грамфор, А., Мишель, В., Тирион, Б., Гризель, О., … и Вандерплас, Дж. (2011). Scikit-learn: Машинное обучение в Python. Журнал исследований машинного обучения, 12, 2825–2830.
- URL: https://jmlr.org/papers/v12/pedregosa11a.html
- Рашка С. и Мирджалили В. (2019). Машинное обучение Python: машинное обучение и глубокое обучение с помощью Python, scikit-learn и TensorFlow 2 (3-е изд.). Издательство Пакет.
- URL-адрес: https://www.packtpub.com/product/python-machine-learning- Third-edition/9781789955750