Быстрый старт K-кратной перекрестной проверки с практическим примером использования машинного обучения в Python

Оглавление:

  1. Введение в машинное обучение
  • О машинном обучении
  • Что такое машинное обучение и его применение

2. Перекрестная проверка

  • Перекрестная проверка и ее виды
  • K-кратная перекрестная проверка

3. Практический пример: прогнозирование статуса кредита с помощью метода K-кратной перекрестной проверки

4. Заключительное резюме

1.1 О машинном обучении?

Артур Сэмюэл впервые придумал фразу «Машинное обучение» в 1952 году. Но сейчас машинное обучение (также известное как МО) становится одной из самых популярных областей, и никогда не забывайте, что это также обширная область.

Он проник в различные аспекты нашей жизни, например Siri / Alexa, автомобили с искусственным интеллектом, медицинский сектор, автомобильный сектор, а также полезен для прогнозирования мошенничества и прогноза погоды.

1.2 Итак, теперь рассказывается, что такое машинное обучение???

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

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

Для получения дополнительной информации: https://en.m.wikipedia.org/wiki/Machine_learning

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

2.1 Что такое перекрестная проверка?

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

Вот шаги, связанные с перекрестной проверкой:

  • Вы резервируете образец набора данных
  • Обучите модель, используя оставшуюся часть набора данных
  • Используйте резервную выборку тестового (проверочного) набора. Это поможет вам оценить эффективность работы вашей модели. Если ваша модель дает положительный результат на данных проверки, продолжайте использовать текущую модель. Оно работает!

Несколько распространенных методов, используемых для перекрестной проверки

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

  1. Подход с набором валидации
  2. Оставьте одну вне перекрестной проверки (LOOCV)
  3. K-кратная перекрестная проверка
  4. Стратифицированная K-кратная перекрестная проверка
  5. Состязательная проверка
  6. Перекрестная проверка для временных рядов
  7. Пользовательский метод перекрестной проверки

Но в этом блоге давайте обсудим в основном перекрестную проверку K-Fold для Python в моделях машинного обучения.

2.2 K-кратная перекрестная проверка:

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

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

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

Общая процедура выглядит следующим образом:

  • Перемешайте набор данных случайным образом.
  • Разбить набор данных на k групп
  • Для каждой уникальной группы:
  1. Возьмите группу в качестве контрольного или тестового набора данных
  2. Возьмите оставшиеся группы в качестве обучающего набора данных.
  3. Установите модель на тренировочном наборе и оцените ее на тестовом наборе.
  4. Сохраните оценку и выбросьте модель.
  • Суммируйте навыки модели, используя выборку баллов оценки модели.

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

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

3. Практический пример: прогнозирование статуса кредита с K-кратной перекрестной проверкой в ​​python

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

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

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

Вы можете загрузить наборы данных с: https://github.com/Athish17/Loan-Status-Excel-Files

Шаг 1. Импорт библиотек и наборов данных[Здесь у нас есть 2 набора данных, один для обучения модели, а другой для тестирования модели]

[Код] :

импортировать pandas как pd
импортировать numpy как np
импортировать os
импортировать matplotlib.pyplot как plt
%pylab inline
импортировать seaborn как sns

из sklearn import preprocessing
from sklearn.preprocessing import LabelEncoder

Шаг 2. Проверьте информацию о данных и информацию о столбцах

[Код]:

Из приведенных выше результатов видно, что в наборе данных поезда 614 строк и 13 столбцов, а в наборе тестовых данных 12 столбцов.

Шаг 3: Для нечисловых значений (например, Property_Area, Credit_History и т. д.) мы можем посмотреть на частотное распределение, чтобы понять, имеют ли они смысл или нет.

[Код]:

Шаг 4. Понимание распределения числовых переменных

• Доход заявителя

[Код]:

Мы видим, что нет существенной разницы между средним доходом выпускников и не выпускников. Но выпускники с очень высокими доходами оказываются исключением.

• Сумма кредита

[Код]:

LoanAmount имеет как отсутствующие, так и экстремальные значения, в то время как ApplicantIncome имеет несколько экстремальных значений.

Давайте проверим отсутствующее значение:

[Код]:

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

Шаг 5: Выбросы суммы кредита и дохода заявителя

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

Шаг 6: Подготовка данных для построения модели

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

[Код]:

Шаг 7: Общая функция классификации (K-кратная перекрестная проверка)

[Код]:

Шаг 8: Модель логистической регрессии

  1. Шансы на получение кредита будут выше для:
  • Соискатели с кредитной историей.
  • Кандидаты с более высоким доходом заявителя и созаявителя.
  • Кандидаты с высшим образованием.
  • Недвижимость в городских районах.

Итак, давайте создадим нашу модель, используя следующие условия:

[Код]:

4. Заключительное резюме

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

Если вы хотите увидеть полный код на питоне, загляните на мой git-хаб (https://github.com/Athish17/loan-Status/blob/master/Loan%20Status.ipynb)

Примечание. Этот код лучше всего работает в записной книжке Jupyter.

Справочные и полезные источники:

Вы можете скачать наборы данных с Kaggle и поэкспериментировать с наборами данных.