bootg.com »
United States »
Библиотека собеса по Data Science | вопросы с собеседований » Telegram Web
Запустится ли этот код на Python 3? Если да, то что он выведет?
sys.allow_boolean_assignment разрешает создавать переменные с именами, зарезервированными под идентификаторы типа bool. Поэтому этот код запустится и выведет "True is False".
Эта настройка введена в известном первоапрельском коммите, который до сих пор остался в коде интерпретатора. Если кандидат об этом знает, можно с уверенностью сказать, что он общается в должных профессиональных кругах и любят углубляться в детали.
sys.allow_boolean_assignment разрешает создавать переменные с именами, зарезервированными под идентификаторы типа bool. Поэтому этот код запустится и выведет "True is False".
Эта настройка введена в известном первоапрельском коммите, который до сих пор остался в коде интерпретатора. Если кандидат об этом знает, можно с уверенностью сказать, что он общается в должных профессиональных кругах и любят углубляться в детали.
👍7❤2⚡1
Расскажите про какую-нибудь полезную библиотеку с машинным обучением, которую вы недавно использовали.
Для сравнения двух лиц на фото в Python можно использовать библиотеку face_recognition. В этом примере мы сначала загружаем изображения лиц и находим лица на изображениях с помощью функции face_locations().
Затем мы кодируем найденные лица с помощью функции face_encodings() и сравниваем их между собой с помощью функции compare_faces(). Результат сравнения — список булевых значений (True или False), которые сообщают, совпадают ли два лица на фото.
Для сравнения двух лиц на фото в Python можно использовать библиотеку face_recognition. В этом примере мы сначала загружаем изображения лиц и находим лица на изображениях с помощью функции face_locations().
Затем мы кодируем найденные лица с помощью функции face_encodings() и сравниваем их между собой с помощью функции compare_faces(). Результат сравнения — список булевых значений (True или False), которые сообщают, совпадают ли два лица на фото.
👍7⚡1
Приведите пример библиотеки для создания графиков
Leather используется для создания графиков. В отличие от ряда подобных библиотек, Leather способна взаимодействовать с широким разнообразием данных и выводить их через векторную графику.
В примере используются следующие функции:
leather.Chart() — создает график с заданным заголовком.
chart.add_dots() — добавляет точки на график. Также в ней можно указать функцию для определения цвета точек.
chart.to_svg() — позволяет сохранить график в формате .svg в указанный файл.
На втором изображении представлен результат работы программы.
Leather используется для создания графиков. В отличие от ряда подобных библиотек, Leather способна взаимодействовать с широким разнообразием данных и выводить их через векторную графику.
В примере используются следующие функции:
leather.Chart() — создает график с заданным заголовком.
chart.add_dots() — добавляет точки на график. Также в ней можно указать функцию для определения цвета точек.
chart.to_svg() — позволяет сохранить график в формате .svg в указанный файл.
На втором изображении представлен результат работы программы.
👍4⚡1🔥1
Объясните, как работает функция map
Она возвращает объект (итератор), который перебирает значения, применяя функцию к каждому элементу. В случае необходимости объект можно преобразовать в список:
def add_three(x):
return x + 3
li = [1,2,3]
list(map(add_three, li))
#=> [4, 5, 6]
Здесь к каждому элементу в списке мы добавляем число 3.
Она возвращает объект (итератор), который перебирает значения, применяя функцию к каждому элементу. В случае необходимости объект можно преобразовать в список:
def add_three(x):
return x + 3
li = [1,2,3]
list(map(add_three, li))
#=> [4, 5, 6]
Здесь к каждому элементу в списке мы добавляем число 3.
👍7
Как работает умножение списка?
Посмотрим на результат умножения списка [1,2,3] на 2:
[1,2,3] * 2
#=> [1, 2, 3, 1, 2, 3]
Содержание списка [1,2,3] повторяется дважды.
Посмотрим на результат умножения списка [1,2,3] на 2:
[1,2,3] * 2
#=> [1, 2, 3, 1, 2, 3]
Содержание списка [1,2,3] повторяется дважды.
👍4
Предложите библиотеку для прогнозирования временных рядов.
PyFlux — это библиотека для прогнозирования временных рядов. Она предоставляет удобный интерфейс для работы с моделями временных рядов, такими как анализ авторегрессии (AR), интегрированной скользящей средней (ARIMA), авторегрессии скользящего среднего (ARMA) и др.
В этом примере создается искусственный временной ряд и на его основе модель ARMA обучается для прогнозирования следующих 10 значений этого ряда.
PyFlux — это библиотека для прогнозирования временных рядов. Она предоставляет удобный интерфейс для работы с моделями временных рядов, такими как анализ авторегрессии (AR), интегрированной скользящей средней (ARIMA), авторегрессии скользящего среднего (ARMA) и др.
В этом примере создается искусственный временной ряд и на его основе модель ARMA обучается для прогнозирования следующих 10 значений этого ряда.
👍10
Какая разница между словарями и JSON?
Dict (словарь) — это тип данных Python, представляющий собой набор индексированных, но неупорядоченных пар ключ-значение.
JSON — просто строка, которая следует заданному формату и предназначена для передачи данных.
Dict (словарь) — это тип данных Python, представляющий собой набор индексированных, но неупорядоченных пар ключ-значение.
JSON — просто строка, которая следует заданному формату и предназначена для передачи данных.
👍2
В чем разница между append и extend?
append добавляет значения в список, а extend добавляет в список значения из другого списка:
a = [1,2,3]
b = [1,2,3]
a.append(6)
print(a)
#=> [1, 2, 3, 6]
b.extend([4,5])
print(b)
#=> [1, 2, 3, 4, 5]
append добавляет значения в список, а extend добавляет в список значения из другого списка:
a = [1,2,3]
b = [1,2,3]
a.append(6)
print(a)
#=> [1, 2, 3, 6]
b.extend([4,5])
print(b)
#=> [1, 2, 3, 4, 5]
👍4👏2
Как вернуть двоичный код целого числа?
Используйте функцию bin():
bin(5)
#=> '0b101'
Используйте функцию bin():
bin(5)
#=> '0b101'
👍2
Что такое градиентный спуск? Как это работает?
Градиентный спуск — это алгоритм, который использует концепцию исчисления градиента, чтобы попытаться достичь локальных или глобальных минимумов. Он работает, беря отрицательное значение градиента в точке заданной функции и многократно обновляет эту точку, используя вычисленный отрицательный градиент, пока алгоритм не достигнет локального или глобального минимума, что приведет к тому, что будущие итерации алгоритма будут возвращать значения, которые равны или слишком близки к текущей точке. Он широко используется в приложениях машинного обучения.
Градиентный спуск — это алгоритм, который использует концепцию исчисления градиента, чтобы попытаться достичь локальных или глобальных минимумов. Он работает, беря отрицательное значение градиента в точке заданной функции и многократно обновляет эту точку, используя вычисленный отрицательный градиент, пока алгоритм не достигнет локального или глобального минимума, что приведет к тому, что будущие итерации алгоритма будут возвращать значения, которые равны или слишком близки к текущей точке. Он широко используется в приложениях машинного обучения.
👍6👎3❤1
Что произойдет с нашей моделью линейной регрессии, если у нас есть три столбца в наших данных: x, y, z — и z является суммой x и y?
Мы не смогли бы выполнить регрессию. Поскольку z линейно зависит от x и y, поэтому при выполнении регрессии будет сингулярная (не обратимая) матрица.
Мы не смогли бы выполнить регрессию. Поскольку z линейно зависит от x и y, поэтому при выполнении регрессии будет сингулярная (не обратимая) матрица.
🤔5👍1
Что такое оверфиттинг (переобучение)?
Когда ваша модель очень хорошо работает на вашем тренировочном наборе, но не может обобщить тестовый набор, потому что она сильно адаптирована к тренировочному набору.
Когда ваша модель очень хорошо работает на вашем тренировочном наборе, но не может обобщить тестовый набор, потому что она сильно адаптирована к тренировочному набору.
👍7
Какие методы регуляризации применимы к линейным моделям?
AIC/BIC, Ридж-регрессия, Лассо, Эластичная сеть, Basis pursuit denoising, модель Рудина – Ошера – Фатеми, модель Поттса, RLAD, селектор Данцига, SLOPE.
️
AIC/BIC, Ридж-регрессия, Лассо, Эластичная сеть, Basis pursuit denoising, модель Рудина – Ошера – Фатеми, модель Поттса, RLAD, селектор Данцига, SLOPE.
️
👍6😱2
Чем временные ряды отличаются от обычной задачи регрессии?
Принцип причинного прогнозирования заключается в том, что значение, которое необходимо спрогнозировать, зависит от входных характеристик (причинных факторов). Ожидается, что при прогнозировании временных рядов прогнозируемое значение будет следовать определенной закономерности с течением времени.
Принцип причинного прогнозирования заключается в том, что значение, которое необходимо спрогнозировать, зависит от входных характеристик (причинных факторов). Ожидается, что при прогнозировании временных рядов прогнозируемое значение будет следовать определенной закономерности с течением времени.
❤3🤯1😱1😢1
Как регуляризация L2 влияет на веса линейной модели?
Регуляризация L2 более сильно влияет на большие веса (из-за квадрата), что способствует уменьшению значений веса к нулю.
Регуляризация L2 более сильно влияет на большие веса (из-за квадрата), что способствует уменьшению значений веса к нулю.
👍1
Каковы основные параметры в модели повышения градиента?
Существует множество параметров, но ниже приведены несколько ключевых значений по умолчанию.
learning_rate=0.1.
n_estimators=100 (количество деревьев).
max_depth=3.
min_samples_split=2.
min_samples_leaf=1.
subsample=1.0.
Существует множество параметров, но ниже приведены несколько ключевых значений по умолчанию.
learning_rate=0.1.
n_estimators=100 (количество деревьев).
max_depth=3.
min_samples_split=2.
min_samples_leaf=1.
subsample=1.0.
👍4😁1
Зачем нам нужны функции активации?
Основная идея использования нейронных сетей — обучение сложных нелинейных функций. Если мы не используем функцию активации между различными уровнями нейронной сети, мы просто накладываем несколько линейных слоев один на другой, и это приводит к обучению линейной функции. Нелинейность присутствует только в функции активации.
Основная идея использования нейронных сетей — обучение сложных нелинейных функций. Если мы не используем функцию активации между различными уровнями нейронной сети, мы просто накладываем несколько линейных слоев один на другой, и это приводит к обучению линейной функции. Нелинейность присутствует только в функции активации.
Как работает обычная полносвязная нейронная сеть прямого распространения?
В обычной полносвязной сети прямого распространения каждый нейрон получает входные данные от каждого элемента предыдущего слоя, и, таким образом, рецептивным полем нейрона является весь предыдущий слой. Они обычно используются для представления векторов признаков для входных данных в задачах классификации, но их обучение может быть дорогостоящим из-за количества задействованных вычислений.
В обычной полносвязной сети прямого распространения каждый нейрон получает входные данные от каждого элемента предыдущего слоя, и, таким образом, рецептивным полем нейрона является весь предыдущий слой. Они обычно используются для представления векторов признаков для входных данных в задачах классификации, но их обучение может быть дорогостоящим из-за количества задействованных вычислений.
👍2
Как выбрать количество деревьев в модели повышения градиента?
Большинство реализаций повышения градиента по умолчанию настраиваются с относительно небольшим количеством деревьев, например сотнями или тысячами. Используя scikit-learn, мы можем выполнить поиск по сетке параметра модели n_estimators.
Большинство реализаций повышения градиента по умолчанию настраиваются с относительно небольшим количеством деревьев, например сотнями или тысячами. Используя scikit-learn, мы можем выполнить поиск по сетке параметра модели n_estimators.
🌚3