Линейная регрессия на службе программиста - просто и...

Post on 22-Mar-2017

1.561 Views

Category:

Data & Analytics

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Добро пожаловать

http://geekbrains.ru/events/142

Будем знакомы

Цель нашей встречи

Цель нашей встречи 0 Линейная регрессия

0 Что за зверь?

Цель нашей встречи 0 Линейная регрессия

0 Что за зверь?

0 Зачем нужна человеку?

Цель нашей встречи 0 Линейная регрессия

0 Что за зверь?

0 Зачем нужна человеку?

0 Зачем нужна программисту?

Цель нашей встречи 0 Линейная регрессия

0 Что за зверь?

0 Зачем нужна человеку?

0 Зачем нужна программисту?

0 Как ей пользоваться?

Цель нашей встречи 0 Линейная регрессия

0 Что за зверь?

0 Зачем нужна человеку?

0 Зачем нужна программисту?

0 Как ей пользоваться?

0 Бесплатные онлайн курсы

0 Литература

ГОТОВЫ?

Мотивация

0 Определение сложности работы алгоритма

0 Определение уровня зарплаты

Мотивация 0 Определение сложности работы алгоритма

0 Определение уровня зарплаты

0 Как поливать цветок?

0 предсказание качества роста растения как функция полива

0 Как лучше печь пирог?

0 предсказание вкуса пирога, как функция времени и температуры выпекания

Пример 1

0 Сложность работы сортировки?

0 Как посчитать\оценить?

Пример 1

0 Сложность работы сортировки?

0 Как посчитать\оценить?

0 Способ А: математический (теоретический)

Пример 1 – способ А

Пример 1 – способ А

Пример 1 – способ А

Пример 1 – способ А

Пример 1

0 Сложность работы сортировки?

0 Как посчитать\оценить?

0 Способ А: математический (теоретический)

0 Способ Б: симуляция + регрессия

Пример 1 – способ Б 0 Запустим алгоритм сортировки на данный разной

0 длины и определим время работы:

t=(runif(10,0,1000)*1000)

a=Sys.time();rez=sort(t);Sys.time()-a

Пример 1 – способ Б 0 Запустим алгоритм сортировки на данный разной

0 длины и определим время работы:

С помощью регрессии найдем прямую линию лучше всего приближающую данные

0 Поиск прямой линии лучше всего описывающий время работы алгоритма: model=lm(time ~size)

Пример 1 – способ Б 0 Запустим алгоритм сортировки на данный разной

0 длины и определим время работы:

С помощью регрессии найдем n*log n функцию лучше всего приближающую данные

0 Улучшенная модель: k*n* log(n) + c*n

0 2.9*n*log(n) – 30*n – чем больше точек возьмем, тем точнее будет оценка

Вывод 0 Применение регрессии может помочь, для проверки

верности оценки сложности работы алгоритма

0 Применение регрессии может помочь, для первичной оценки сложности оценки алгоритма

0 Можно пользоваться регрессией как черным ящиком, не вникая в детали (но это не наш путь)

Пример 2

0 Вася программист

Пример 2

0 Вася программист

0 Вася приступает к поиску работы

Пример 2

0 Вася программист

0 Вася приступает к поиску работы

0 Вася не знает какую зарплату ему запросить?

Пример

0 Вася программист

0 Вася приступает к поиску работы

0 Вася не знает какую зарплату ему запросить?

0 Как быть Васе?

Как быть Васе?

0 Что вы думаете?

Как быть Васе?

0 Что вы думаете?

0 Соглашайся на первое предложение?

0 Ищи максимальную зарплату?

0 Ищи работу для души. Деньги – не главное!

0 …

0 …

Вася и регрессия Вася опросил знакомых программистов об их образовании, опыте работы, а также о зарплате

Вася и регрессия

Вася и регрессия Вася опросил знакомых программистов об их образовании, опыте работы, а также о зарплате

Васе пришла в голову идея - ….

Вася и регрессия Вася опросил знакомых программистов об их образовании, опыте работы, а также о зарплате

Васе пришла в голову идея - возможно стоит оценить зарплату, основываясь на стаже?

Вася и регрессия Нет ни одного знакомого программиста с таким же стажем, как и у Васи (печаль)

Как быть? Нет ни одного знакомого программиста с таким же стажем, как и у Васи (печаль)

Помощь зала

Как быть? Нет ни одного знакомого программиста с таким же стажем, как и у Васи (печаль)

Можно взять программистов с похожим стажем и вычислить их среднюю зарплату

Метод ближайших соседей Неплохая стратегия – при определённых условиях

Метод ближайших соседей Неплохая стратегия – при определённых условиях

Жертва – проклятья размерности (чем больше размерность тем хуже работает)

Метод ближайших соседей Неплохая стратегия – при определённых условиях

Жертва – проклятья размерности (чем больше размерность тем хуже работает)

Модус операнди – «скажи мне кто твой друг, а я скажу кто ты»

Метод ближайших соседей Неплохая стратегия – при определённых условиях

Жертва – проклятья размерности (чем больше размерность тем хуже работает)

Модус операнди – «скажи мне кто твой друг, а я скажу кто ты»

Детали на вебинаре «Биг дата» https://goo.gl/J7F1dn

Линейная регрессия Возможно можно построить линию которая более-менее точно опишет зависимость зарплаты от образования?

Почему линию?

Линейная регрессия Возможно можно построить линию которая более-менее точно опишет зависимость зарплаты от образования?

Почему линию?

Линия относительно проста – требует всего два параметра

Линейная регрессия Зная параметры линии предсказать зарплату Васи несложно

Линейная регрессия Зная параметры линии предсказать зарплату Васи несложно

y=53+12.16*x

Васин стаж 2.3 года

Y=53+12.16*2.3= 81 т.р.

Линейная регрессия Зная параметры линии предсказать зарплату Васи несложно

y=53+12.16*x

Васин стаж 2.3 года

Y=53+12.16*2.3= 81 т.р.

Линейная регрессия Вопросы:

Как лучше всего построить линию?

Можно ли доверять линии на сто процентов?

Всегда ли предсказание имеет смысл?

Как оценить качество линии?

Линейная регрессия Вопросы:

Как лучше всего построить линию?

Ответ для пользователя: black box - есть функция которая строит лучшую линию:

Линейная регрессия Вопросы:

Как лучше всего построить линию?

Ответ для продвинутого пользователя: построим линию которая минимизирует сумму квадратов ошибок

Линейная регрессия Вопросы:

Как лучше всего построить линию?

Ответ для продвинутого пользователя: построим линию которая минимизирует квадрат ошибок

Линейная регрессия Вопросы:

0 Как лучше всего построить линию?

0 Как компьютер находит лучшую линию?

Линейная регрессия Вопросы:

0 Как лучше всего построить линию?

0 Как компьютер находит лучшую линию? 0 Есть специальная формула

Линейная регрессия Вопросы:

0 Как лучше всего построить линию?

0 Как компьютер находит лучшую линию?

0 Можно ли доверять линии на сто процентов? 0 Нет

0 Почти всегда есть разброс

0 Но иногда можно оценить степень уверенности в модели

Линейная регрессия Что мы видели:

Использование линейной регрессии в случае с зарплатой Васи, позволило нам, более менее точно, предсказывать зарплату Васи, а также оценить влияние стажа на з.п.

y=53+12.16*x - в соответствии с полученной моделью, каждый год стажа добавляет в среднем к з.п. 12.16 т.р.

Будьте осторожны

Будьте осторожны

0 Друг Васи, решил оценить свою зарплату основываясь на второй цифре в номере паспорта

0 Как вы думаете, что получиться у друга Васи?

run = floor(runif(300,0,10)) zp = floor(rnorm(300,90,20)) plot(run,zp)

Попробуем предсказать зарплату?

Попробуем предсказать зарплату?

Кто Вася?

Более сложная модель

0 Оля - знакомая Васи предложила использовать для предсказания более сложную модель

Более сложная модель

0 Оля - знакомая Васи предложила использовать для предсказания более сложную модель (квадратичную функцию)

Более сложная модель

0 Оля - знакомая Васи предложила использовать для предсказания более сложную модель

Более сложная модель

0 Оля - знакомая Васи предложила использовать для предсказания более сложную модель

0 Интересные и важные вопросы:

0 «Как выбрать подходящую модель?»

0 «Что такое подходящая модель?»

0 Полином, тригонометрические функции, сплайны,….

Более сложная модель

0 Васин друг предложил еще больше улучшить качество предсказания и взять полином 10 степени

Более сложная модель

0 Васин друг предложил еще больше улучшить качество предсказания и взять полином 10 степени

Более сложная модель

0 Васин друг предложил еще больше улучшить качество предсказания и взять полином 10 степени

0 Overfitting – недостаточно данных, чтобы настроить такую сложную модель

Бритва Оккама

Бритва Оккама

• Принцип Бритва Оккама не является теоремой.

• Kolmogorov complexity - en.wikipedia.org/wiki/Kolmogorov_complexity

2D – 3D

• Как еще можно улучшить предсказание зарплаты?

2D – 3D • Как еще можно улучшить предсказание

зарплаты?

• Почему бы не определять зарплату с помощью двух параметров: • стаж • количество лет образования

ъ

model = lm(Salary ~ Education + WorkExp)

Более сложная модель

0 Чем больше релевантных параметров будет, тем лучше может получиться модель

0 Но как выбрать важные и релевантные параметры?

0 Что делать если параметры коррелированы между собой?

0 Как оценить важность параметров?

Более сложная модель

0 Но как выбрать важные и релевантные параметры?

0 Что делать если параметры коррелированы между собой?

0 Как оценить важность параметров?

0 Ответы на курсах по машинному обучению или статистическому обучению

Резюме

0 Линейная регрессия – одна из самых простых модель описания и предсказания зависимостей

Резюме

0 Линейная регрессия – одна из самых простых модель описания и предсказания зависимостей

0 Модель возможно и не самая точная, но интуитивно понятная и может служить начальным приближением для оценок

Резюме

"All models are wrong but some are useful".

Онлайн курсы 0 EDX – MIT – «Меч Аналитики»

0 edx.org/course/analytics-edge-mitx-15-071x-0

0 Достоинства курса: 0 множество интересных примеров

0 минимум теории,

0 максимум практики

0 Язык программирования R

Онлайн курсы 0 Stanford – Statistical Learning 0 lagunita.stanford.edu/courses/HumanitiesandScience/StatLearning/Winter2015

/about

0 Достоинства курса: 0 немного теории

0 много практики

0 хороший учебник по курсу

0 Язык программирования: R

Онлайн курсы 0 Coursera, Stanford – Machine Learning

0 coursera.org/learn/machine-learning

0 Достоинства курса:

0 удачное сочетание практики и теории

0 Язык программирования: Matlab, Octave

Онлайн курсы 0 Edx, Caltech, Learning from data

0 https://work.caltech.edu/telecourse.html

0 Достоинства курса:

0 твердый теоретический фундамент

0 основные теоретические моменты объяснены в интересной и доступной форме

0 хороший учебник сопровождающий курс

Уголок Библиофила

ОБРАТНАЯ СВЯЗЬ 0 igkleiner@gmail.com

0в контакте: vk.com/agile_psy

0youtube: youtube.com/user/igorkle1

Ваши вопросы и обратная связь суть лучший источник мотивации

Благодарности

Благодарности

Образовательный IT-портал GeekBrains

Благодарности

0Клейнер Надежда

0Бородин Захар

0Гольцман Александр

0Дубинский Игаль

0Гликин Григорий

Ответы на вопросы участников

top related