Как стать автором
Обновить

Комментарии 9

На правах «только начинающего постигать азы».
Расскажите пожалуйста, параметры int numIterations = 200; double stepSize = 2; как выбраны? На сколько я понимаю, их нужно подбирать на основе анализа истории «спуска».
В данном случае эти параметры оказались именно такими практически случайным образом, это ведь не настоящие данные, а для разработки (были сгенерированны функцией rand() в экселе).

Вообще их выбирают исходя из того, что слишком большой шаг ведет к расходимости, а слишком маленький долго работает. Насколько я понимаю, данная реализация уменьшает шаг с каждой итерацией на stepSize/sqrt(t). Но пока с этим не разбирался детально.
Классно, обучающая статья с «У меня тут не получилось, сделал велосипед» и «Так делать нельзя, но я сделяль!».
Не надо так.
Знать как делать селекты — полезно. Как скрещивать наборы — полезно. Человек с мозгами разберется как с этим работать. Если человек без мозгов, то читать это не будет. Лично мне бы такой пример сэкономил ровно три дня.
Проблема наверное в том, что менеджеры могут выбивать бюджеты под магические слова Big Data


Вы просто глядите со своей колокольни (data science). Если посмотреть на hadoop как решение для data warehouse, бюджеты не покажутся такими уж фантастическими (по сравнению с ценниками Teradata, Netezza,...).
Тут я имел в виду не столько цену hadoop решений самих по себе, сколько возможности обосновать исследовательские расходы. Если условный менеджер приходит и говорит:

«давайте построим хранилище Big Data и найдем там что-то полезное за X рублей»

ему могут их дать. А если он скажет:

«давайте построим хранилище и найдем там что-то полезное за X/5 рублей»

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

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

Публикации