2016-08-03 5 views
1

Предположим, я пытаюсь использовать нейронную сеть, чтобы предсказать, сколько времени займет мой пробег. У меня много данных из прошлых прогонов. Сколько миль я планирую на бегу, полное изменение высоты (холмы), температура и погода: солнечный, пасмурный, дождь или снег.Как справиться с качественными данными в алгоритмах машинного обучения

Я смущен тем, что делать с последней частью данных. Для всего остального я могу нормально вводить данные после стандартизации, но я не могу этого сделать для погоды. Мой первоначальный вариант состоял только в том, чтобы иметь 4 дополнительные переменные, по одному для каждого типа погоды, а ввод - 1 или 0 в зависимости от того, что это такое.

Это хороший подход к ситуации? есть ли другие подходы, которые я должен попробовать?

ответ

2

У вас есть категориальная переменная, которая имеет четыре уровня.

Очень типичным способом кодирования таких значений является использование отдельной переменной для каждой из них. Или, чаще всего, кодирование «n-1», где используется один меньше флага (четвертое значение представлено всем равным 0).

n-1 кодирование используется для техник, которым требуются числовые входы - включая логистическую регрессию и нейронные сети. При больших значениях «n» это плохой выбор. Проблема состоит в том, что он создает множество вложений с разреженными данными; редкие данные сильно коррелированы. Больше входных сигналов означает большее количество степеней свободы в сети, что затрудняет обучение сети.

В вашем случае у вас есть только четыре значения для этого конкретного входа. Разделить его на три переменные, вероятно, разумно.

Смежные вопросы