7. Цель нашей встречи
0 Линейная регрессия
0 Что за зверь?
0 Зачем нужна человеку?
0 Зачем нужна программисту?
8. Цель нашей встречи
0 Линейная регрессия
0 Что за зверь?
0 Зачем нужна человеку?
0 Зачем нужна программисту?
0 Как ей пользоваться?
9. Цель нашей встречи
0 Линейная регрессия
0 Что за зверь?
0 Зачем нужна человеку?
0 Зачем нужна программисту?
0 Как ей пользоваться?
0 Бесплатные онлайн курсы
0 Литература
12. Мотивация
0 Определение сложности работы алгоритма
0 Определение уровня зарплаты
0 Как поливать цветок?
0 предсказание качества роста растения как функция полива
0 Как лучше печь пирог?
0 предсказание вкуса пирога, как функция времени и
температуры выпекания
19. Пример 1
0 Сложность работы сортировки?
0 Как посчитатьоценить?
0 Способ А: математический (теоретический)
0 Способ Б: симуляция + регрессия
20. Пример 1 – способ Б
0 Запустим алгоритм сортировки на данный разной
0 длины и определим время работы:
t=(runif(10,0,1000)*1000)
a=Sys.time();rez=sort(t);Sys.time()-a
21. Пример 1 – способ Б
0 Запустим алгоритм сортировки на данный разной
0 длины и определим время работы:
С помощью регрессии найдем прямую линию лучше всего
приближающую данные
22. 0 Поиск прямой линии лучше всего описывающий время
работы алгоритма: model=lm(time ~size)
23. Пример 1 – способ Б
0 Запустим алгоритм сортировки на данный разной
0 длины и определим время работы:
С помощью регрессии найдем n*log n функцию лучше всего
приближающую данные
24. 0 Улучшенная модель: k*n* log(n) + c*n
0 2.9*n*log(n) – 30*n – чем больше точек возьмем, тем точнее
будет оценка
25. Вывод
0 Применение регрессии может помочь, для проверки
верности оценки сложности работы алгоритма
0 Применение регрессии может помочь, для первичной
оценки сложности оценки алгоритма
0 Можно пользоваться регрессией как черным ящиком, не
вникая в детали (но это не наш путь)
31. Как быть Васе?
0 Что вы думаете?
0 Соглашайся на первое предложение?
0 Ищи максимальную зарплату?
0 Ищи работу для души. Деньги – не главное!
0 …
0 …
32. Вася и регрессия
Вася опросил знакомых программистов об их образовании,
опыте работы, а также о зарплате
34. Вася и регрессия
Вася опросил знакомых программистов об их образовании,
опыте работы, а также о зарплате
Васе пришла в голову идея - ….
35. Вася и регрессия
Вася опросил знакомых программистов об их образовании,
опыте работы, а также о зарплате
Васе пришла в голову идея - возможно стоит оценить
зарплату, основываясь на стаже?
36.
37.
38. Вася и регрессия
Нет ни одного знакомого программиста с таким же стажем, как
и у Васи (печаль)
39. Как быть?
Нет ни одного знакомого программиста с таким же стажем, как
и у Васи (печаль)
41. Как быть?
Нет ни одного знакомого программиста с таким же стажем, как
и у Васи (печаль)
Можно взять программистов с похожим стажем и вычислить
их среднюю зарплату
45. Метод ближайших соседей
Неплохая стратегия – при определённых условиях
Жертва – проклятья размерности (чем больше размерность
тем хуже работает)
46. Метод ближайших соседей
Неплохая стратегия – при определённых условиях
Жертва – проклятья размерности (чем больше размерность
тем хуже работает)
Модус операнди – «скажи мне кто твой друг, а я скажу кто
ты»
47. Метод ближайших соседей
Неплохая стратегия – при определённых условиях
Жертва – проклятья размерности (чем больше размерность
тем хуже работает)
Модус операнди – «скажи мне кто твой друг, а я скажу кто ты»
Детали на вебинаре «Биг дата» https://goo.gl/J7F1dn
48.
49. Линейная регрессия
Возможно можно построить линию которая более-менее точно
опишет зависимость зарплаты от образования?
Почему линию?
50. Линейная регрессия
Возможно можно построить линию которая более-менее точно
опишет зависимость зарплаты от образования?
Почему линию?
Линия относительно проста – требует всего два параметра
56. Линейная регрессия
Вопросы:
Как лучше всего построить линию?
Можно ли доверять линии на сто процентов?
Всегда ли предсказание имеет смысл?
Как оценить качество линии?
58. Линейная регрессия
Вопросы:
Как лучше всего построить линию?
Ответ для продвинутого пользователя: построим линию
которая минимизирует сумму квадратов ошибок
59. Линейная регрессия
Вопросы:
Как лучше всего построить линию?
Ответ для продвинутого пользователя: построим линию
которая минимизирует квадрат ошибок
62. Линейная регрессия
Вопросы:
0 Как лучше всего построить линию?
0 Как компьютер находит лучшую линию?
0 Можно ли доверять линии на сто процентов?
0 Нет
0 Почти всегда есть разброс
0 Но иногда можно оценить степень уверенности в модели
63. Линейная регрессия
Что мы видели:
Использование линейной регрессии в случае с зарплатой
Васи, позволило нам, более менее точно, предсказывать
зарплату Васи, а также оценить влияние стажа на з.п.
y=53+12.16*x - в соответствии с полученной моделью, каждый
год стажа добавляет в среднем к з.п. 12.16 т.р.
65. Будьте осторожны
0 Друг Васи, решил оценить свою зарплату основываясь на
второй цифре в номере паспорта
0 Как вы думаете, что получиться у друга Васи?
70. Более сложная модель
0 Оля - знакомая Васи предложила использовать для
предсказания более сложную модель
71. Более сложная модель
0 Оля - знакомая Васи предложила использовать для
предсказания более сложную модель (квадратичную
функцию)
72. Более сложная модель
0 Оля - знакомая Васи предложила использовать для
предсказания более сложную модель
73. Более сложная модель
0 Оля - знакомая Васи предложила использовать для
предсказания более сложную модель
0 Интересные и важные вопросы:
0 «Как выбрать подходящую модель?»
0 «Что такое подходящая модель?»
0 Полином, тригонометрические функции, сплайны,….
74. Более сложная модель
0 Васин друг предложил еще больше улучшить качество
предсказания и взять полином 10 степени
75. Более сложная модель
0 Васин друг предложил еще больше улучшить качество
предсказания и взять полином 10 степени
76.
77.
78. Более сложная модель
0 Васин друг предложил еще больше улучшить качество
предсказания и взять полином 10 степени
0 Overfitting – недостаточно данных, чтобы настроить
такую сложную модель
80. Бритва Оккама
• Принцип Бритва Оккама не является
теоремой.
• Kolmogorov complexity -
en.wikipedia.org/wiki/Kolmogorov_complexity
81. 2D – 3D
• Как еще можно улучшить предсказание
зарплаты?
82. 2D – 3D
• Как еще можно улучшить предсказание
зарплаты?
• Почему бы не определять зарплату с помощью
двух параметров:
• стаж
• количество лет образования
84. Более сложная модель
0 Чем больше релевантных параметров будет, тем лучше
может получиться модель
0 Но как выбрать важные и релевантные параметры?
0 Что делать если параметры коррелированы между
собой?
0 Как оценить важность параметров?
85. Более сложная модель
0 Но как выбрать важные и релевантные параметры?
0 Что делать если параметры коррелированы между
собой?
0 Как оценить важность параметров?
0 Ответы на курсах по машинному обучению или
статистическому обучению
87. Резюме
0 Линейная регрессия – одна из самых простых
модель описания и предсказания зависимостей
0 Модель возможно и не самая точная, но
интуитивно понятная и может служить
начальным приближением для оценок
89. Онлайн курсы
0 EDX – MIT – «Меч Аналитики»
0 edx.org/course/analytics-edge-mitx-15-071x-0
0 Достоинства курса:
0 множество интересных примеров
0 минимум теории,
0 максимум практики
0 Язык программирования R
90. Онлайн курсы
0 Stanford – Statistical Learning
0 lagunita.stanford.edu/courses/HumanitiesandScience/StatLearning/Winter2015
/about
0 Достоинства курса:
0 немного теории
0 много практики
0 хороший учебник по курсу
0 Язык программирования: R
91. Онлайн курсы
0 Coursera, Stanford – Machine Learning
0 coursera.org/learn/machine-learning
0 Достоинства курса:
0 удачное сочетание практики и теории
0 Язык программирования: Matlab, Octave
92. Онлайн курсы
0 Edx, Caltech, Learning from data
0 https://work.caltech.edu/telecourse.html
0 Достоинства курса:
0 твердый теоретический фундамент
0 основные теоретические моменты объяснены в
интересной и доступной форме
0 хороший учебник сопровождающий курс