🪝 Вопрос с реального собеседования Data Science
Условие: Какой функционал оптимизируется в задаче линейной регрессии и как записать это в векторной записи.
Линейная регрессия — это метод восстановления зависимости между двумя переменными. Её оптимизация сводится к максимизации прадоподобия, что эквивалентно минимизации среднеквадратичной ошибки (MSE), которая широко используется в реальных задачах
#собес_academy
Условие: Какой функционал оптимизируется в задаче линейной регрессии и как записать это в векторной записи.
Линейная регрессия — это метод восстановления зависимости между двумя переменными. Её оптимизация сводится к максимизации прадоподобия, что эквивалентно минимизации среднеквадратичной ошибки (MSE), которая широко используется в реальных задачах
#собес_academy
✏️ Вопрос с реального собеседования по Data Science
Что вы знаете про биномиальное распределение? Зачем оно нужно в Data Science?
Биномиальное распределение в основном моделирует количество успешных исходов в фиксированном числе испытаний. В целом, позволяет характеризовать испытания с помощью двух параметров n и p, представляющих количество испытаний и вероятность успеха в одном испытании соответственно.
На практике биномиальное распределение можно использовать для определения вероятности определённого числа успехов, таких как продажи, за определённый период для нового продукта. Кроме того, биномиальное распределение помогает понять вероятностное распределение числа клиентов, обслуживаемых в течение временного интервала.
#собес_academy
Что вы знаете про биномиальное распределение? Зачем оно нужно в Data Science?
Биномиальное распределение в основном моделирует количество успешных исходов в фиксированном числе испытаний. В целом, позволяет характеризовать испытания с помощью двух параметров n и p, представляющих количество испытаний и вероятность успеха в одном испытании соответственно.
На практике биномиальное распределение можно использовать для определения вероятности определённого числа успехов, таких как продажи, за определённый период для нового продукта. Кроме того, биномиальное распределение помогает понять вероятностное распределение числа клиентов, обслуживаемых в течение временного интервала.
#собес_academy
👍3❤2
✏️ Вопрос с реального собеседования по Data Science
Что такое Random Forest?
Алгоритм случайного леса (Random Forest) — универсальный алгоритм машинного обучения, суть которого состоит в использовании ансамбля решающих деревьев. Само по себе решающее дерево предоставляет крайне невысокое качество классификации, но из-за большого их количества результат значительно улучшается. Также это один из немногих алгоритмов, который можно использовать в абсолютном большинстве задач.
Случайный лес состоит из большого количества отдельных деревьев решений, которые по сути являются ансамблем методов. Каждое дерево в случайном лесу возвращает прогноз класса, и класс с наибольшим количеством голосов становится прогнозом леса.
#собес_academy
Что такое Random Forest?
Алгоритм случайного леса (Random Forest) — универсальный алгоритм машинного обучения, суть которого состоит в использовании ансамбля решающих деревьев. Само по себе решающее дерево предоставляет крайне невысокое качество классификации, но из-за большого их количества результат значительно улучшается. Также это один из немногих алгоритмов, который можно использовать в абсолютном большинстве задач.
Случайный лес состоит из большого количества отдельных деревьев решений, которые по сути являются ансамблем методов. Каждое дерево в случайном лесу возвращает прогноз класса, и класс с наибольшим количеством голосов становится прогнозом леса.
#собес_academy
👍4❤1
✏️ Вопрос с реального собеседования по Python
Что такое модуль в Python? Как узнать имя модуля? Что такое модульное программирование?
Модуль — это функционально законченный фрагмент программы, представленный в виде отдельного файла с исходным кодом или непрерывной части кода. С его помощью можно разбивать сложные задачи на более мелкие, что соответствует принципу модульности. Например, файл с кодом на Python является модулем, а модули могут объединяться в пакеты и библиотеки.
Как узнать имя модуля:
Каждый модуль в Python имеет глобальную переменную
Что такое модульное программирование:
Модульное программирование — это подход к созданию программ из небольших независимых блоков (модулей). Это упрощает тестирование, поиск ошибок, а также улучшает переносимость программ.
#собес_academy
Что такое модуль в Python? Как узнать имя модуля? Что такое модульное программирование?
Модуль — это функционально законченный фрагмент программы, представленный в виде отдельного файла с исходным кодом или непрерывной части кода. С его помощью можно разбивать сложные задачи на более мелкие, что соответствует принципу модульности. Например, файл с кодом на Python является модулем, а модули могут объединяться в пакеты и библиотеки.
Как узнать имя модуля:
Каждый модуль в Python имеет глобальную переменную
__name__
. Если модуль запущен как скрипт, то значение этой переменной будет __main__
.Что такое модульное программирование:
Модульное программирование — это подход к созданию программ из небольших независимых блоков (модулей). Это упрощает тестирование, поиск ошибок, а также улучшает переносимость программ.
#собес_academy
👍4🔥1
✏️ Вопрос с реального собеседования по Python
В чем разница между списком и кортежем?
1️⃣ Список можно изменить после создания
2️⃣ Кортеж нельзя изменить после создания
3️⃣ Список упорядочен. Он представляет собой упорядоченные последовательности объектов, как правило, одного и того же типа. Например, все имена пользователей упорядочены по дате создания: [«Max», «Steph», «Daphna»]
4️⃣ У кортежа есть структура. В каждом индексе могут сосуществовать различные типы данных. Например, такая запись базы данных в памяти: (2, «Steph», «2024–09–24») # id, name, created_at.
#собес_academy
В чем разница между списком и кортежем?
#собес_academy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
✏️ Вопрос с реального собеседования по Python
Как выполняется интерполяция строк?
Без импорта класса Template есть три способа интерполяции строк:
#собес_academy
Как выполняется интерполяция строк?
Без импорта класса Template есть три способа интерполяции строк:
father = 'Boris'
# 1. f strings
print(f'Hello {father}')
# 2. % operator
print('Hey %s %s' % (father, father))
# 3. format
print(
"My father name is {}".format((father))
)
#собес_academy
👍1
✏️ Вопрос с реального собеседования по Python
В чем разница между «is» и «==»?
is проверяет идентичность, а == проверяет равенство.
Создайте несколько списков и назначьте им имена. Обратите внимание, что ниже b указывает на тот же объект, что и a:
Проверьте равенство и обратите внимание, что все объекты равны:
Но являются ли все они идентичными? Нет:
Можем проверить это, распечатав их идентификаторы объектов:
#собес_academy
В чем разница между «is» и «==»?
is проверяет идентичность, а == проверяет равенство.
Создайте несколько списков и назначьте им имена. Обратите внимание, что ниже b указывает на тот же объект, что и a:
a = [1,2,3]
b = a
c = [1,2,3]
Проверьте равенство и обратите внимание, что все объекты равны:
print(a == b)
print(a == c)
#=> True
#=> True
Но являются ли все они идентичными? Нет:
print(a is b)
print(a is c)
#=> True
#=> False
Можем проверить это, распечатав их идентификаторы объектов:
print(id(a))
print(id(b))
print(id(c))
#=> 4369567560
#=> 4369567560
#=> 4369567624
#собес_academy
👍5
✏️ Вопрос с реального собеседования по Python
Что такое функция range() и как её использовать
Функция range() создаёт последовательности целых чисел. Её можно применять в трёх вариантах:
Она может принимать от одного до трёх аргументов. В примерах ниже вывод обёрнут в список для отображения всех генерируемых значений.
1️⃣ range(stop): генерирует числа от 0 до значения stop (не включая его).
2️⃣ range(start, stop): генерирует числа от значения start до stop (также не включая stop).
3️⃣ range(start, stop, step): создаёт последовательность от start до stop, с шагом, равным значению step.
#собес_academy
Что такое функция range() и как её использовать
Функция range() создаёт последовательности целых чисел. Её можно применять в трёх вариантах:
Она может принимать от одного до трёх аргументов. В примерах ниже вывод обёрнут в список для отображения всех генерируемых значений.
[x for x in range(10)]
# Результат: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[x for x in range(3, 10)]
# Результат: [3, 4, 5, 6, 7, 8, 9]
[x for x in range(2, 10, 2)]
# Результат: [2, 4, 6, 8]
#собес_academy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
✏️ Вопрос с реального собеседования по Python
Определите класс book с двумя атрибутами: название и автор. Затем создайте экземпляр и верните автора
Вот как это сделать:
#собес_academy
Определите класс book с двумя атрибутами: название и автор. Затем создайте экземпляр и верните автора
Вот как это сделать:
class Book:
def __init__(self, название, автор):
self.название = название
self.автор = автор
# Создаем экземпляр класса
книга = Book('Мастер и Маргарита', 'Михаил Булгаков')
# Выводим автора
книга.автор
# => 'Михаил Булгаков
#собес_academy
👍8
✏️ Вопрос с реального собеседования по Python
В чём разница между методами экземпляра, класса и статическими методами?
Методы экземпляра используют параметр self и относятся к конкретному экземпляру класса.
Статические методы с декоратором @staticmethod не связаны с экземпляром класса и не могут изменять его атрибуты.
Методы класса принимают параметр cls и позволяют изменять сам класс.
#собес_academy
В чём разница между методами экземпляра, класса и статическими методами?
Методы экземпляра используют параметр self и относятся к конкретному экземпляру класса.
Статические методы с декоратором @staticmethod не связаны с экземпляром класса и не могут изменять его атрибуты.
Методы класса принимают параметр cls и позволяют изменять сам класс.
class TeaShop:
specialty = 'green tea'
def __init__(self, tea_price):
self.tea_price = tea_price
# instance method
def make_tea(self):
print(f'Making {self.specialty} for ${self.tea_price}')
# static method
@staticmethod
def check_weather(): // Статический метод просто сообщает, что солнечно, не взаимодействуя с экземпляром или классом
print('Its sunny')
# class method
@classmethod
def change_specialty(cls, specialty): // Метод класса меняет фирменный напиток
cls.specialty = specialty
print(f'Specialty changed to {specialty}')
tea_shop = TeaShop(5) // Метод экземпляра (make_tea) создаёт чай с текущими атрибутами экземпляра
tea_shop.make_tea()
# => Making green tea for $5
#собес_academy
👍3
✏️ Вопрос с реального собеседования по Python
В чём разница между func и func()?
func — это объект функции, а func() — это вызов функции.
func: Это объект самой функции, который можно сохранить в переменную, передать в качестве аргумента другой функции. Например, если присвоить func новой переменной, например, new_func = func, то new_func() будет эквивалентен вызову func(). Без круглых скобок функция не выполняется, она просто существует как объект.
func(): Это фактический вызов функции. Круглые скобки указывают Python на выполнение кода внутри функции и возврат её результата. Если бы функция принимала аргументы, они передавались бы в скобках — например, func(arg1, arg2).
Пример для наглядности:
#собес_academy
В чём разница между func и func()?
func — это объект функции, а func() — это вызов функции.
func: Это объект самой функции, который можно сохранить в переменную, передать в качестве аргумента другой функции. Например, если присвоить func новой переменной, например, new_func = func, то new_func() будет эквивалентен вызову func(). Без круглых скобок функция не выполняется, она просто существует как объект.
func(): Это фактический вызов функции. Круглые скобки указывают Python на выполнение кода внутри функции и возврат её результата. Если бы функция принимала аргументы, они передавались бы в скобках — например, func(arg1, arg2).
Пример для наглядности:
def func():
print('I am a function')
# Присваиваем функцию переменной
new_func = func
new_func() # Вывод: I am a function
# Передаем функцию как аргумент другой функции
def call_func(f):
f() # Вызов переданной функции
call_func(func) # Вывод: I am a function
#собес_academy
👍5
✏️ Вопрос с реального собеседования по Python
Объясните, как работает функция map
map возвращает итератор, который применяет функцию к каждому элементу списка. Если нужно, его можно преобразовать в список:
В примере к каждому элементу списка добавляется 3.
#собес_academy
Объясните, как работает функция map
map возвращает итератор, который применяет функцию к каждому элементу списка. Если нужно, его можно преобразовать в список:
def add_three(y):
return y + 3
li = [1, 2, 3]
list(map(add_three, li))
#=> [4, 5, 6]
В примере к каждому элементу списка добавляется 3.
#собес_academy
👍2
✏️ Вопрос с реального собеседования по Python
Объясните, как работает функция reduce
Функция reduce может сначала показаться сложной, но как только вы попробуете её несколько раз, всё встанет на свои места.
🌻 Что делает reduce?
Она принимает функцию и последовательность. Затем последовательно применяет эту функцию к элементам, начиная с первых двух, и продолжает использовать результат предыдущей операции на следующем шаге. На выходе остаётся одно итоговое значение.
#собес_academy
Объясните, как работает функция reduce
Функция reduce может сначала показаться сложной, но как только вы попробуете её несколько раз, всё встанет на свои места.
Она принимает функцию и последовательность. Затем последовательно применяет эту функцию к элементам, начиная с первых двух, и продолжает использовать результат предыдущей операции на следующем шаге. На выходе остаётся одно итоговое значение.
from functools import reduce
# Определяем функцию сложения
def сложить_числа(первое, второе):
return первое + второе
# Исходный список
числа = [1, 2, 3, 5]
# Применяем reduce
итог = reduce(сложить_числа, числа)
print(итог) # => 11
#собес_academy
Please open Telegram to view this post
VIEW IN TELEGRAM
1
✏️ Вопрос с реального собеседования по Python
Как работает функция filter
Функция filter выполняет задачу, полностью соответствующую своему названию: она отбирает элементы из последовательности, которые соответствуют заданному условию.
Каждый элемент последовательности передается в указанную функцию. Если функция возвращает True, элемент остается в результате, если False — он исключается.
В результате остаются только те элементы, которые делятся на 2 без остатка, а остальные удаляются из последовательности.
#собес_academy
Как работает функция filter
Функция filter выполняет задачу, полностью соответствующую своему названию: она отбирает элементы из последовательности, которые соответствуют заданному условию.
Каждый элемент последовательности передается в указанную функцию. Если функция возвращает True, элемент остается в результате, если False — он исключается.
def is_even(number):
return number % 2 == 0
array = [1, 2, 3, 4, 5, 6, 7, 8]
filtered = [item for item in filter(is_even, array)]
print(filtered)
# Output: [2, 4, 6, 8]
В результате остаются только те элементы, которые делятся на 2 без остатка, а остальные удаляются из последовательности.
#собес_academy
👍1
✏️ Вопрос с реального собеседования по Python
Переменные в Python передаются по ссылке или по значению?
В Python переменные передаются по ссылке, но есть нюанс: одни объекты хранятся как данные, другие — как указатели.
Например, строки неизменяемы: если изменить их внутри функции, создаётся новый объект, а старый остаётся неизменным. Делая
#собес_academy
Переменные в Python передаются по ссылке или по значению?
В Python переменные передаются по ссылке, но есть нюанс: одни объекты хранятся как данные, другие — как указатели.
Например, строки неизменяемы: если изменить их внутри функции, создаётся новый объект, а старый остаётся неизменным. Делая
x = 'text'
и y = x
, вы создаёте две ссылки на один объект. Но если изменить x, это уже будет новая сущность, а y останется прежним.#собес_academy
🔥1
✏️ Вопрос с реального собеседования по Python
Как развернуть список?
Метод reverse() переворачивает список, но не возвращает его. Он изменяет сам объект.
Пример:
Если нужно получить новый перевёрнутый список, используйте срез:
#собес_academy
Как развернуть список?
Метод reverse() переворачивает список, но не возвращает его. Он изменяет сам объект.
Пример:
li = ['a', 'b', 'c']
print(li) # ['a', 'b', 'c']
li.reverse()
print(li) # ['c', 'b', 'a']
Если нужно получить новый перевёрнутый список, используйте срез:
new_list = li[::-1]
#собес_academy
👍1
✏️ Вопрос с реального собеседования по Python
Как работает умножение строк в Python?
Допустим, у нас есть строка 'cat', и мы хотим умножить её на 3. Давайте посмотрим:
⭐ Что произошло?
Python просто повторил содержимое строки трижды и вернул новый результат. Это удобно, когда нужно быстро создать повторяющийся шаблон или, например, добавить разделитель
#собес_academy
Как работает умножение строк в Python?
Допустим, у нас есть строка 'cat', и мы хотим умножить её на 3. Давайте посмотрим:
'cat' * 3
# => 'catcatcat'
Python просто повторил содержимое строки трижды и вернул новый результат. Это удобно, когда нужно быстро создать повторяющийся шаблон или, например, добавить разделитель
#собес_academy
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤1👍1