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

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

Машинное обучение расходится на два подхода. 1.Контролируемое 2.Неконтролируемое обучение.

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

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

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

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

Большинству алгоритмов требуется масштабирование функций, если ваши переменные набора данных непропорциональны в числах. Например, ось X соответствует «летам опыта», а ось Y — «зарплате». 1 год опыта может принести пару тысяч долларов в зарплате. Таким образом, евклидово расстояние будет благоприятствовать оси Y, поэтому прогноз вашей модели не будет точным.

В R следующий пример кода будет работать:

Когда ваш набор данных будет готов, мы можем разделить набор данных на обучающий и тестовый наборы.

Разделение набора данных. Как мы упоминали выше, для обучения с учителем нам необходимо обучить наш алгоритм на данных. Итак, в этом примере мы разделили наш набор данных на 80% в пользу нашего обучающего набора и 20% на наш тестовый набор.

Для R нам нужно установить пакет «caTools», чтобы обеспечить простое разделение.

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

Ответ заключается в том, какова ваша цель и какие данные у вас есть.

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

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

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

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

Но для некоторых наборов данных точки данных не так хорошо коррелированы. Такие как:

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

Если у вас более одной независимой переменной, вы можете выбрать множественную линейную регрессию. Но важно, чтобы вам нужно было исключить любую независимую переменную, которая не сильно коррелирует с зависимой переменной, используя метод обратного исключения (есть и другие методы).

Давайте сделаем это в примере на R. Во-первых, нам нужно подогнать нашу множественную линейную регрессию к нашему обучающему набору.

Наша зависимая переменная — это прибыль, а независимые переменные — это НИОКР, маркетинг и административные расходы. Если мы посмотрим на статистическую значимость между зависимыми и независимыми переменными:

Расходы на НИОКР сильно статически значимы с зависимой переменной Прибыль.

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

В целях ускорения я шаг за шагом заранее исключил несколько независимых переменных и пришел к следующему результату:

Как мы уже говорили, исследования и разработки сильно взаимосвязаны. Но расходы на маркетинг несколько коррелированы. На этом этапе вам необходимо установить порог статистической значимости. В основном этот порог установлен на уровне 5%. Так что это ваше решение использовать переменную расходов на маркетинг или нет, чтобы сделать прогноз.

В R, чтобы сделать прогноз, будет работать следующий код:

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

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

Наилучшие пожелания,

Алпарслан Капани