2015-11-15 9 views
2

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

Предположим, у меня есть переменная ввода X, которая колеблется от -70 до 70. И у меня есть выходная переменная Y, которая колеблется между -5 и 5. X имеет 39 функций, а Y имеет 16 функций, и они имеют по 50 000 примеров. Затем я хотел бы обучить их глубокой сети убеждений (DBN) в python.

Я использовал сценарий на домашней странице anano, где описал DBN с данными (классификацией) MNIST. http://deeplearning.net/tutorial/DBN.html

Не могли бы вы рассказать мне, какие конкретные строки мне нужно изменить, чтобы применить проблему регрессии, которую я объяснил выше? Функция

Например, я должен изменить ...

  1. сигмовидной к функции TANH. : Я слышал, что функция активации tanh работает лучше, чем сигмоид в регрессии. правильно?
  2. вместо использования отрицательного логарифма правдоподобия, я должен использовать ошибку наименьшего квадрата ....?
  3. Нормализация нормализации входных и выходных данных по zscore?

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

Спасибо заранее.

+1

Просто общая мысль - ** не начинайте изучать машинное обучение из глубоких моделей. Это как научная физика, начиная с квантовой механики. Все, кто включает в себя глубокое обучение в учебниках для новичков, просто не знают, что они делают (и, вероятно, сами новички). Короче говоря, если вы задаете такие вопросы, то глубокие модели не рекомендуется начинать с начала линейной регрессии, а затем с нелинейными типами, такими как регрессия ядра, регрессия knn, rf-регрессия и т. Д. В противном случае вы потерпите неудачу, я гарантирую. – lejlot

ответ

0
@hyungwon yang: 

Я не видел код питона, но я думаю, что следующее будет полезно: функция

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

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

Normalisations: Вы можете сделать мин-макс нормализации (см интеллектуального анализа данных по Чару Агарвал), моя реализация в Matlab выглядит следующим образом:

%inputData: Is your N samples * of first feature, you have to iteratively do %this process for each and every feature. 
function normOut = NormaliseAnyData (inputData) 
denominator = (max(inputData) - min (inputData)); 
numerator = (inputData - min(inputData)); 
normOut = numerator/denominator; 
end 

Надеется, что это помогает. Дайте мне знать, если у вас возникнут дополнительные вопросы.

+0

Большое вам спасибо. Я знал, что я там делаю, но я хотел бы услышать более эвристические комментарии. Ты мне дал! –