31 августа 2015

Разбиение исходных данных на обучающую и контрольную выборки



Как было отмечено ранее, при построении предсказательных моделей исходные данные обычно разбиваются на обучающую ("training set") и контрольную ("test set", "validation set") выборки. Обучающая выборка используется собственно для "обучения" той или иной модели, т.е. для построения математических отношений между некоторой переменной-откликом и предикторами, тогда как контрольная (= "проверочная", "экзаменационная") выборка служит для получения оценки прогнозных свойств модели на новых данных, т.е. данных, которые не были использованы для обучения модели. Как правило, обучающая выборка составляет 75-80% от объема исходных данных, хотя каких-то строгих правил в этом отношении не существует. Рассмотрим, как можно выполнить подобное разбиение исходных данных на обучающую и контрольную выборки стандартными средствами R и при помощи пакета caret.


13 августа 2015

Подготовка данных для создания предсказательных моделей: преобразование качественных переменных в количественные



Рисунок заимствован из Wiki
Эта статья завершает обзор основных методов подготовки данных для создания предсказательных моделей и посвящена преобразованию качественных предикторов (= категориальных, или факторных переменных) в количественные. Многие статистические методы требуют, чтобы все входные данные были представлены количественными переменными. Однако обычны ситуации, когда в состав данных входят не только количественные, но и качественные предикторы (пол, социальный статус, должность, почтовый индекс, город, наличие заболевания и т.п.). Распространенным подходом для преобразования таких переменных в количественные является создание индикаторных, или фиктивных переменных (англ. "dummy variables"). Мы уже сталкивались с такими переменными при рассмотрении линейных моделей, подгоняемых при помощи базовой функции lm(). Эта и подобные ей функции (например, glm()) выполняют преобразование качественных предикторов в индикаторные "на лету", не требуя от пользователя никаких дополнительных действий. Однако при работе со многими методами машинного обучения пользователь должен сначала самостоятельно преобразовать качественные переменные в индикаторные и добавить их в таблицу с данными. Рассмотрим, как это можно сделать при помощи пакета caret.


09 августа 2015

Интересное из мира R (13 июля - 9 августа 2015 г.)



  • В блоге Revolution Analytics Дэвид Смит (David Smith) сообщил о создании нового подкаста "R Talk", который будет посвящен новостям о языке R и примерам его использования в академических исследованиях и промышленных приложениях.
  • Боб Мюнхен (Bob Muenchen) в своем блоге перечислил области, на которые, по его мнению должен обратить внимание недавно созданный консорциум "R Consortium". Эти области включают: разработку механизма, облегчающего пользователям поиск и выбор необходимых им пакетов; тестирование точности вычислений наиболее популярных пакетов; разработку рейтинга пакетов по числу их разработчиков (что поможет пользователю оценить потенциальную длительность "жизненного цикла" того или иного пакета); агитацию по использованию ряда функций общего назначения ("generic functions"), широко применимых в разнотипных аналитических проектах; создание механизмов, облегчающих вывод результатов вычислений из R в Microsoft Word; создание графического пользовательского интерфейса наподобие тех, что реализованы в платформах Alteryx или KNIME.
  • Норман Мэтлофф (Norman Matloff, автор известной книги The Art of R Programming) сообщил о публикации новой версии своего пакета partools, который позволяет организовать параллельные вычисления над данными большого объема, используя принципы, реализованные в Spark'е, но средствами R.
  • Компания Microsoft запустила собственный онлайн-курс по R на базе платформы EdX. При успешном окончании курса возможно получение сертификата.



02 августа 2015

Какую модель выбрать, учитывая, что бесплатный сыр бывает только в мышеловке?



Рисунок заимствован с сайта coursera.org
Одна из ключевых проблем, с которой исследователь сталкивается при разработке предсказательной модели, заключается в выборе оптимального для конкретного случая статистического метода. За последние несколько десятилетий было разработано огромное множество методов для решения задач классификации и регрессии (см., например, список моделей, реализованных в пакете caret), что, безусловно, существенно затрудняет этот выбор. Часто выбор того или иного метода обусловлен предыдущим опытом и уровнем осведомленности исследователя. Так, в определенных областях может существовать своего рода "традиция" по использованию тех или иных методов для решения конкретного круга задач. В силу естественной ограниченности своей специализации исследовать может также просто не знать о существовании методов, которые являются более подходящими для его ситуации. Можно столкнуться и с такими случаями, когда некий разработчик аналитического программного обеспечения утверждает, что его новый алгоритм "не имеет аналогов", превосходя все другие доступные решения. В этой связи хорошо было бы иметь хотя бы общее представление о том, на какие методы следует обратить особое внимание, т.е. какие из них с высокой вероятностью хорошо сработают в большинстве ситуаций. Наличие подобной информации будет особенно полезным при работе над новыми проектами/данными, когда предыдущий опыт, который мог бы подсказать, с чего стоит начинать, отсутствует.


19 июля 2015

Подготовка данных для создания предсказательных моделей: трансформация предикторов



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