Proglib.academy | IT-курсы
3.74K subscribers
2.09K photos
71 videos
14 files
1.96K links
Онлайн-курсы для программистов от создателей «Библиотеки программиста».

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/9f60aed6

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
Что такое нормализация данных и зачем она нам нужна?

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

Если этого не сделать, некоторые признаки будут иметь более высокий вес в функции стоимости. Нормализация позволяет сделать все признаки одинаково взвешенными.

#вопросы_с_собеседований
👍2🔥1
В чем разница между func и func()?

Вопрос должен проверить ваше понимание, что все функции в Python также являются объектами:

def func():
print('Im a function')

func
#=> function main.func>
func()
#=> Im a function

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

#вопросы_с_собеседований
👍1
Что такое оверфиттинг (переобучение)?

Когда ваша модель очень хорошо работает на вашем тренировочном наборе, но не может обобщить тестовый набор, потому что она сильно адаптирована к тренировочному набору.

#вопросы_с_собеседований
🔥1
В чем разница между машинным обучением с учителем и без учителя?

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

#вопросы_с_собеседований
Что такое рекуррентные нейронные сети (RNN)?

Рекуррентные нейронные сети — это вид нейросетей, в которых связи между элементами образуют направленную последовательность. Это позволяет обрабатывать серии событий во времени или последовательные пространственные цепочки.
Они используются преимущественно для задач, где нечто цельное состоит из ряда объектов, например при распознавании рукописного текста или речи.

#вопросы_с_собеседований
👍2
Что такое нормальное распределение?

График колокола, также известный как нормальное распределение, представляет собой распределение, в котором большинство наблюдений сосредоточены в центре, а по мере удаления от центра количество наблюдений уменьшается. Статистически значимым является то, что при нормальном распределении 68% данных попадают в пределы одного стандартного отклонения от среднего значения, 95% данных — в пределы двух стандартных отклонений, а 99.7% данных — в пределы трех стандартных отклонений от среднего.
#вопросы_с_собеседований
👍1
Что такое learning rate?

Скорость обучения — важный гиперпараметр, который контролирует, насколько быстро модель адаптируется к проблеме во время обучения. Его можно рассматривать как «ширину шага» во время обновления параметров, т. е. насколько далеко веса перемещаются в направлении минимума нашей задачи оптимизации.
#вопросы_с_собеседований
Что такое закон больших чисел и как его используют в Data Science?

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

🔢 В Data Science закон больших чисел может использоваться в таких областях, как прогностическое моделирование, оценка рисков и контроль качества. Он помогает гарантировать, что среднее значение результатов большого числа независимых испытаний будет сходиться к ожидаемому значению. Это обеспечивает основу для статистического вывода и проверки гипотез.

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

#вопросы_с_собеседований
Что вы знаете про нормальное распределение? Зачем оно нужно в Data Science?

Многие величины имеют нормальное распределение, которое также называют распределением Гаусса. Чаще всего, если на какую-то величину влияет много слабых независимых факторов, то эта величина будет иметь близкое к нормальному распределение.

У нормального распределения есть два параметра: математическое ожидание (среднее) и дисперсия. Распределение, у которого эти параметры соответственно равны нулю и единице, называют стандартным.

Также у нормального распределения есть несколько свойств:
▪️Симметричность относительно своего среднего значения.
▪️ График нормального распределения имеет характерную форму колокола.
▪️ Правило трёх сигм: около 68% значений лежат в пределах одного стандартного отклонения от среднего, около 95% — в пределах двух стандартных отклонений, и около 99.7% — в пределах трёх стандартных отклонений.

Многие статистические методы предполагают или опираются на нормальное распределение данных. К примеру, t-тест эффективен только тогда, когда данные соответствуют нормальному распределению. Кроме того, некоторые алгоритмы машинного обучения предполагают, что входные данные распределены нормально.

#вопросы_с_собеседований
👍31
Какие существуют модификации KNN?

Метод k-ближайших соседей, или k-nearest neighbors (KNN), — довольно простой и легко интерпретируемый алгоритм. Он работает, идентифицируя k объектов обучающего набора данных, которые находятся ближе всего к объекту, который нужно классифицировать или для которого нужно предсказать значение.

Как алгоритм можно модифицировать?

🔹Выбор метрики
Во-первых, можно использовать разные функции расстояния для вычисления дистанции между объектами. Это могут быть Манхэттенская метрика, метрика Минковского, косинусное расстояние, расстояние Жаккара.
🔹Взвешенный KNN
Решает главный недостаток оригинального алгоритма: он никак не учитывает расстояния до соседних объектов, хотя эта информация может быть полезной. В этой модификации чем ближе сосед, тем больше его вклад в принятие решения. Это позволяет уменьшить влияние «далёких» соседей.
🔹Адаптивный KNN
В этой версии алгоритма значение k может адаптироваться в зависимости от локальной плотности данных. Это означает, что для объектов в разреженных областях пространства будет использоваться большее значение k, а в плотных областях — меньшее.

#вопросы_с_собеседований
4
Что вы знаете про регрессию? Зачем она нужна в Data Science?

Регрессия — это один из основных методов анализа данных, широко используемый в Data Science. Она позволяет моделировать и анализировать отношения между переменными, что делает её незаменимым инструментом для предсказаний и интерпретаций данных.

Регрессия бывает различных видов, каждый из которых используется для решения специфических задач:

▪️Линейная регрессия: моделирует линейную зависимость между независимой переменной (предиктором) и зависимой переменной (ответом).
▪️Логистическая регрессия: используется для бинарных исходов, предсказывая вероятность принадлежности к одному из двух классов.
▪️Полиномиальная регрессии: моделирует нелинейные зависимости, позволяя учитывать криволинейные отношения между переменными.

Многие статистические методы предполагают или опираются на регрессию. К примеру, анализ дисперсии (ANOVA) эффективен только тогда, когда соблюдаются условия линейной регрессии. Кроме того, некоторые алгоритмы машинного обучения предполагают использование регрессионных моделей для предсказания и анализа данных.

#вопросы_с_собеседований
👾1
✍️ Опишите алгоритм обратного распространения ошибки

В модели машинного обучения, по сути, происходит вычисление значения некоторой функции. Можно сказать, что движение идёт прямо по графу вычислений. Однако по нему же можно вычислить не только значение в точке, но и значения частных производных. Для этого нужно двигаться в обратном направлении по графу. Это и называется обратным распространением ошибки (backpropagation).

Алгоритм таков:

▪️Начинаем с вычисления ошибки на выходе модели. Это обычно разница между предсказанным значением и истинным значением.
▪️Затем вычисляется градиент, то есть вектор частных производных функции ошибки по выходному слою.
▪️Движение идёт обратно через слои модели. На каждом слое используется цепное правило для вычисления градиента ошибки по весам слоя.
▪️После того, как градиенты вычислены, веса модели корректируются в направлении, противоположном градиенту, чтобы уменьшить ошибку.
▪️Процесс повторяется до тех пор, пока модель не достигнет желаемой производительности или не сойдётся.

#вопросы_с_собеседований
Запустится ли этот код на Python 3? Если да, то что он выведет?

sys.allow_boolean_assignment разрешает создавать переменные с именами, зарезервированными под идентификаторы типа bool. Поэтому этот код запустится и выведет «True is False».

Эта настройка введена в известном первоапрельском коммите, который до сих пор остался в коде интерпретатора. Если кандидат об этом знает, можно с уверенностью сказать, что он общается в должных профессиональных кругах и любят углубляться в детали.
#вопросы_с_собеседований
🤔1