Data Science Made Simple: 5 основных приемов Scikit-learn

5 основных приемов Scikit-learn Изучение

Scikit-learn (также называемая sklearn) — самая популярная библиотека машинного обучения Python для науки о данных. Любому специалисту по анализу данных или инженеру по машинному обучению нужен Scikit в своем арсенале инструментов. Для многих крупных компаний, таких как JP Morgan, Spotify, Hugging Face и других, Scikit-learn является неотъемлемой частью разработки их продуктов.

Понимание этого инструмента может открыть двери для работы в мире науки о данных и помочь вам получить работу в области науки о данных.

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

1. Внесение пропущенных значений с помощью iterative imputer

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

Легко придерживаться традиционных методов для вменения пропущенных значений, таких как режим (для классификации) или среднее / медианное значение (для регрессии). Но Sklearn предоставляет более эффективные и простые способы вменения пропущенных значений.

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

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

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

>>> # explicitly require this experimental feature
>>> from sklearn.experimental import enable_iterative_imputer
>>> # now you can import normally from sklearn.impute
>>> from sklearn.impute import IterativeImputer

Взгляните на этот пример кода ниже, чтобы увидеть, насколько это просто IterativeImputer. С помощью этого кода любые отсутствующие значения в кадре данных будут заполнены в новом кадре данных с именем impute_df.

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

from sklearn.experimental import enable_iterative_imputer
from sklearn.impute import IterativeImputer
df = pd.DataFrame(*a dataset with missing values that we want to impute*)
imp = IterativeImputer(max_iter=10, verbose=0)
imp.fit(df)
impute_df = imp.transform(df)
impute_df = pd.DataFrame(impute_df, columns=df.columns)

2. Генерация случайных фиктивных данных

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

Sklearn упрощает создание надежных фиктивных данных. Мы просто используем функции make_classification()для данных классификации или make_regression()для данных регрессии. Вы также захотите установить параметры, такие как количество образцов и функций.

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

Посмотрите на приведенный ниже пример кода с 1000 образцами и 20 функциями.

Look at the code example below with 1,000 samples and 20 features.
from sklearn.datasets import make_classification
X, y = make_classification(n_samples=1000, n_features=20)

3. Использование Pickle для сохранения модели

Сопротивление модели позволяет нам повторно использовать модель машинного обучения без ее переобучения. Модель Pickle Sklearn позволяет нам повторно использовать модель и добиться устойчивости модели. После того, как вы сохраните модель как Pickle, ее можно будет легко загрузить позже в любое время для получения дополнительных прогнозов.

Для сериализации ваших алгоритмов и их сохранения вы можете использовать библиотеки Python pickleили joblibPython. Взгляните на приведенный ниже пример кода.

import pickle
# Save a KNN model
saved_model = pickle.dumps(knn)
# Load a saved KNN model
load_model = pickle.loads(saved_model)
# Make new predictions from a pickled model
load_model.predict(test_X)

4. Построение матрицы неточностей

Матрица неточностей — это таблица, описывающая производительность классификатора для тестовых данных. В последней версии Sklearn добавлена ​​функция plot_confusion_matrixдля создания доступной и настраиваемой матрицы путаницы, которая отображает наши истинно положительные, ложноположительные, ложноотрицательные и истинно отрицательные значения.

Взгляните на этот пример кода из документации Sklearn.

>>> from sklearn.metrics import confusion_matrix
>>> y_true = [2, 0, 2, 2, 0, 1]
>>> y_pred = [0, 0, 2, 2, 0, 2]
>>> confusion_matrix(y_true, y_pred)
array([[2, 0, 0],
       [0, 0, 1],
       [1, 0, 2]])

5. Создание визуализаций для деревьев решений

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

Теперь мы можем визуализировать деревья решений с помощью matplotlib, используя tree.plot_tree. Это означает, что вам не нужно устанавливать какие-либо зависимости для создания простых визуализаций. Затем вы можете сохранить свое дерево в виде.pngфайла для быстрого доступа.

Взгляните на этот пример из документации Sklearn. Пример визуального дерева решений должен дать вам базовую структуру того, что генерирует Scikit-learn (дополнительные подробности см. В официальной документации).

tree.plot_tree(clf)

Создание визуализаций для деревьев решений

Читайте также:  Руководство для начинающих YAML
Оцените статью
bestprogrammer.ru
Добавить комментарий