Simulative – Telegram
7.39K subscribers
1.7K photos
70 videos
1 file
1.26K links
Привет! Мы — образовательная платформа в сфере аналитики Simulative: simulative.ru

Создаём курсы-симуляторы, где обучаем не на «апельсинках», а на кейсах из реального бизнеса.

Наш уютный чат: @itresume_chat
Поддержка: @simulative_support
Download Telegram
​​GROK IT! Ответ на задачу о линейной регрессии 🔔

Вчера опубликовали вопрос: Какое допущение не относится к линейной регрессии?

» Отсутствие корреляции между предикторами
» Гетероскедастичность
» Отсутствие автокорреляции в остатках
» Нормальность ошибок

Ответ: Гетероскедастичность

💥 Объяснение:

Итак, линейная регрессия - метод составления прогноза на основе независимых переменных. Задача прогнозирования сводится к нахождению коэффициентов уравнения регрессии.

Само собой, модель нельзя применять бездумно - существуют некоторые ограничения модели.

1. Линейная связь между предикторами и предсказываемой переменной

Пожалуй, это очевидно вытекает из названия. Регрессия все-таки линейная, поэтому связь между предиктором (независимой переменной) и целью должна быть линейной. Например, цена квартиры зависит от ее близости к центру. Чем ближе к центру - тем дороже квартира.

2. Отсутствие мультиколлинеарности

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

3. Гомоскедастичность

Гомоскедастичность - термин, характеризующий однородность наблюдений. Другими словами - это постоянство дисперсии случайных ошибок модели. Т.е. не должно быть какого-то четкого правила, по которому распределены ошибки - они должны быть "разбросаны" одинаково для всех значений.

Обратное явление - гетероскедастичность, когда дисперсия ошибок непостоянна.

4. Нормальное распределение ошибок

Ошибки модели должны быть распределены по нормальному закону. Особенно это важно для небольших выборок. Если выборка средняя по размеру или даже большая, то этот пункт теряет свою силу: это и есть действие Центральной предельной теоремы в реальной жизни.

5. Отсутствие автокорреляции в остатках

Если ошибки зависят друг от друга, то это может отрицательно сказаться на качестве модели. Соответственно, такой ситуации лучше избегать.

❗️Таким образом, правильный ответ - Гетероскедастичность.

#grokit #datascience
​​☀️Как же чудесно, что сегодня воскресенье, но впереди еще один выходной!

А это значит, что есть время прочитать все, что Вы добавили в закладки за неделю. 📚

Вот и мы подкинем Вам полезную статью о заданиях по SQL с реальных собеседований, которую мы подготовили вместе с Типичный программист!

Приятного воскресного чтения 😊

#itresume
​​Рубрика «Вопросы с собеседований» 💥

Что такое CTE?

Ответ:

CTE (Common Table Expressions, Общие табличные выражения) - способ определения временных таблиц, существующих только для одного запроса.

Основная задача CTE - разгрузить сложный запрос и разбить его на более простые.

Используются CTE следующим образом:

WITH <название_временной_таблицы> AS
( <тело_запроса> )
SELECT <основной_запрос> ...


Примечание: Вы можете создавать несколько временных таблиц одновременно.

Пример:

WITH regional_sales AS (
SELECT region, SUM(amount) AS total_sales
FROM orders
GROUP BY region
),

top_regions AS (
SELECT region
FROM regional_sales
WHERE total_sales > 20
)

SELECT region,
product,
SUM(quantity) AS product_units,
SUM(amount) AS product_sales
FROM orders
WHERE region IN (SELECT region FROM top_regions)
GROUP BY region, product


Также с помощью WITH мы можем расширять стандартные возможности SQL. А именно, создавать рекурсивные запросы, просто указав RECURSIVE.

Например:

WITH RECURSIVE t(n) AS (
VALUES (1)
UNION ALL
SELECT n+1 FROM t WHERE n < 100
)
SELECT sum(n) FROM t;


#interview_problems #sql
​​Дайджест вакансий за 01.03.2021 - 08.03.2021 🕵️‍♂️

✉️ Присылайте свои резюме на почту hr@itresume.ru

Аналитик данных

Зарплата: от 70 000 руб.

Компания: ЦЕНТРОФИНАНС

Занятость: Полная занятость, удаленная работа

Опыт: 1-3 года

Ключевые навыки: Python, R, Реляционные БД, Linux, Git

Ссылка на вакансию: https://vk.cc/bZq61S


Программист Oracle

Зарплата: от 120 000 руб.

Компания: ООО ГК СЕВЕРТРАНС

Занятость: Полная занятость, удаленная работа

Опыт: 1-3 года

Ключевые навыки: Проектирование БД (СУБД Oracle 9/10/11/12), Интеграционное взаимодействие посредством WEB-SERVICES, Oracle Forms 6, Word, Excel (для построения отчетов), VBA, SMTP, POP3.

Дополнительные навыки: стандарта MIME, Crystal Reports

Ссылка на вакансию: https://vk.cc/bZq7mf


Data Scientist (компьютерное зрение)

Зарплата: от 70 000 до 400 000 руб.

Компания: ООО Дип Системс

Занятость: Полная занятость, удаленная работа

Опыт: 1-3 года

Ключевые навыки: Deep Learning, CV, Python, Linux, Git, Opencv, Pytorch

Дополнительные навыки: Нейронные сети, Docker, Tensorflow

Ссылка на вакансию: https://vk.cc/bZq7TD


Middle backend developer (python/django)

Зарплата: от 1 300 до 2 000 USD

Компания: ООО АРЕС

Занятость: Полная занятость, удаленная работа

Опыт: от 2 лет

Ключевые навыки: Python, Django, API, PostgreSQL, Agile, Docker

Дополнительные навыки: Один из веб-фреймворков: (drf, aiohttp, flask, tornado, twisted, pyramid), NoSQL, Kubernetes, CI/CD Frontend разработка, Machine Learning.

Ссылка на вакансию: https://vk.cc/bZq6N3


Python Developer (ЕВРАЗ) - удаленно

Зарплата: от 200 000 руб.

Компания: ООО ИЦ АЙ-ТЕКО

Занятость: Полная занятость, удаленная работа

Опыт: не требуется

Ключевые навыки: Python 3.7, SQLAlchemy, Alembic, Falcon, Docker, RabbitMQ, Kombu\Celery

Дополнительные навыки: ООП, понимание SOLID, Hexagonal Architecture, Clean Architecture​

Ссылка на вакансию: https://vk.cc/bZq5os


Junior / Middle Тестировщик ПО (Python)

Зарплата: от 90 000 до 130 000 руб.

Компания: MedPoint24

Занятость: Полная занятость, удаленная работа

Опыт: от 1 года

Ключевые навыки: ООП, Python, Pytest, Тестирования API, Linux (сборки: Centos и/или Ubuntu)

Дополнительные навыки: Bash, PL/pgsql, JavaScript, CI/CD (Jenkins или Gitlab CI)

Ссылка на вакансию: https://vk.cc/bZq4SK


Middle Python developer

Зарплата: от 140 000 до 180 000 руб.

Компания:GamesBoost42

Занятость: Полная занятость, удаленная работа

Опыт: 1–3 года

Ключевые навыки: Python, Unit тесты, FastAPI, REST API, ООП, Docker, Mysql / Percona, Redis, Git

Ссылка на вакансию: https://vk.cc/bZq4nm

#vacancy
​​GROK IT!

Задача по Python: В чем ошибка при создании итератора?

Правильный ответ раскроем завтра 😏

#grokit #python
​​GROK IT! Ответ на задачу об итераторе 🔔

Вчера опубликовали вопрос: В чем ошибка при создании итератора?

» return self вернет ошибку
» В классе не хватает методов
» Вместо iter должен быть next

Ответ: В классе не хватает методов

💥 Объяснение:

Давайте начнем с определения - что такое вообще итератор.

Итератор (iterator) - это объект, который позволяет возвращать свои элементы по одному за раз.

Такой поэлементный возврат осуществляется с помощью функции next, которая вызывает метод next. Если следующего элемента нет, то метод должен бросить исключение StopIteration.

Помимо этого, итератор должен содержать метод iter который возвращает сам итератор (т.е. return self). Этот метод необходим, чтобы Вы могли итерировать (т.е. перебирать в цикле) по элементам Вашего объекта. Например, если Вы создаете класс для нового типа данных - newlist, и хотите, чтобы можно было итерировать по элементам newlist в цикле for, то метод iter необходим, т.к. он неявно вызывается в цикле.

Получается, что итератор должен содержать 2 метода - iter и next, а в нашем примере есть только iter.

Правильный класс выглядел бы так:

class myCount:
def __init__(self, start=0):
self.num = start

def __iter__(self):
return self

def __next__(self):
y = self.num
self.num += 1
return y


Подробнее про итераторы: https://vk.cc/bZrJTT

❗️Таким образом, правильный ответ - В классе не хватает методов.

#grokit #python
Ориентируетесь в итераторах/генераторах?
Anonymous Poll
25%
Конечно!
25%
Нет, все никак не запомню
50%
Нет, надо выучить!
​​💥 Интегрирование методом Монте-Карло в Python

Что-то давно мы с Вами не разбирались в методах и алгоритмах. Сегодня поговорим о популярном методе Монте-Карло, который часто используется для моделирования в бизнесе и науке:

→ Обсудим историю возникновения
→ Вспомним математическую основу метода
→ Напишем реализацию на Python
→ Проверим код на точность
→ Сравним с другими методами по скорости

Приятного чтения!😉

#python #math
​​👨‍💻Какой IDE Вы пользуетесь?

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

Посмотрим, какая IDE среди наших подписчиков пользуется большей популярностью!

Если у Вас несколько фаваритов, выбирайте всех) Борьба должна быть честной 💪🏻

А если вашего любимчика нет в списке, тогда пишите в комментариях!
​​Рубрика «Вопросы с собеседований» 💥

Функциональное программирование в Python?

Ответ:

ЧТО ТАКОЕ ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ

Для начала ответим на вопрос, что вообще такое функциональное программирование.

Функциональное программирование (ФП) - парадигма программирования, где основной операцией является вычисление результата той или иной функции. Т.е. любое действие с объектом, даже самое сложное, сводится к последовательному применению различных функций и получению итогового результата.

Другим словами, в парадигме ФП работа программы сводится к вычислению разных функций.

Стоит отметить, что в Python эта парадигма используется не очень часто. Однако, во многих задачах полезно ее использовать и на базовом уровне стоит ей владеть.

Вот несколько пунктов, которые делают возможным применять ФП в Python:

✓ Функцию можно передавать в качестве аргумента в другую функцию
✓ Функцию можно возвращать в качестве результата из другой функции
✓ Функции можно задавать анонимно (лямбда-функции), без определения имени

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

ФУНКЦИОНАЛЬНОЕ ПРОГРАММИРОВАНИЕ В PYTHON

Самые популярные примеры использования парадигмы ФП в Python - функции map, reduce и filter.

✓ Функция map(<f>, <iterable>) применяет функцию f ко всем элементам итерируемого объекта iterable. Функция возвращает итератор. Чтобы сделать список, надо использовать list:


 animals = ["cat", "dog", "hedgehog", "gecko"]
res = list(map(reverse, animals))
res
#['tac', 'god', 'gohegdeh', 'okceg']

✓ Функция filter(<f>, <iterable>) применяет функцию f ко всем элементам iterable и возвращает только те элементы, для которых результат f является true. Результатом также является итератор.


 list(filter(lambda x: x > 100, [1, 111, 2, 222, 3, 333]))
# [111, 222, 333]

✓ Функция reduce(<f>, <iterable>) последовательно применяет функцию f к элементам iterable. Функция возвращает итератор.

 from functools import reduce
reduce(lambda x, y: x + y, [1, 2, 3, 4, 5])
# 15

В данном примере функция reduce последовательно складывает числа, а следующее число добавляет к результату. Т.е.:

  1 + 2 = 3
3 + 3 = 6
6 + 4 = 10
10 + 5 = 15

Узнать еще больше про парадигму функционального программирования в Python можно здесь: https://vk.cc/bZwH0M

#interview_problems #python
🔥 Python vs R

Между программистами идет вечное противостояние - какой язык выбрать: R или Python? Отвечаем - оба!

А чтобы Вам легче было использовать 2 языка одновременно, вместе с R4marketing подготовили для Вас шпаргалку.

В карточках разбираем основные функции и понятия, необходимые для обработки данных. Причем сразу на 2 языках 🤤

Осталось применить на практике 😎

#python #rstat #cheatsheet
​​GROK IT!

Задача по Математике:

Что более вероятно выиграть у равносильного противника: не менее двух партий из трёх или не более одной из двух?

Правильный ответ раскроем завтра 😏

#itresume #grokit #math