Расскажите о командах systemd для управления Docker
Ответ
Для запуска Docker многие дистрибутивы Linux используют systemd. Для запуска сервисов используется команда systemctl. Если ее нет, следует использовать команду service.
Чтобы добавить сервис в автозагрузку, либо убрать его:
Для проверки параметров запуска сервиса и их изменения:
Просмотра связанных с сервисом журналов:
Опишите процесс масштабирования контейнеров Docker
Контейнеры могут быть масштабированы с использованием команды docker-compose scale. Процесс масштабирования такой:
Масштабируем контейнер и запускаем n экземпляров:
В вышеприведенном примере имя сервиса задается в файле docker-compose-run-srvr.yml, а также запускается n копий контейнеров, где n — любое целое положительное число.
После масштабирования контейнера для проверки можно использовать такую команду:
@machinelearning_interview
Ответ
Для запуска Docker многие дистрибутивы Linux используют systemd. Для запуска сервисов используется команда systemctl. Если ее нет, следует использовать команду service.
$ sudo systemctl start docker
$ sudo service docker start
Чтобы добавить сервис в автозагрузку, либо убрать его:
$ sudo systemctl enable docker
$ sudo systemctl disable docker
Для проверки параметров запуска сервиса и их изменения:
$ sudo systemctl edit docker
Просмотра связанных с сервисом журналов:
$ journalctl -u docker
Опишите процесс масштабирования контейнеров Docker
Контейнеры могут быть масштабированы с использованием команды docker-compose scale. Процесс масштабирования такой:
Масштабируем контейнер и запускаем n экземпляров:
$ docker-compose --file docker-compose-run-srvr.yml scale <service_name>=<n>
В вышеприведенном примере имя сервиса задается в файле docker-compose-run-srvr.yml, а также запускается n копий контейнеров, где n — любое целое положительное число.
После масштабирования контейнера для проверки можно использовать такую команду:
$ docker ps -a
@machinelearning_interview
Во вложении датасет – отток абонентов в телекоме. Целевая переменная – churn (индикатор оттока).
Нужно построить модель, предсказывающую отток, оценить качество этой модели и гипотетические перспективы использования этой модели в реальном бизнес процессе.
Дополнительной информации об этом датасете нет, названия столбцов в большинстве случаев достаточно хорошо отражают их содержание.
Варианты решиний пишите в комментариях.
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Преобразование Бокса-Кокса — это широко используемый метод преобразования ненормально распределенного набора данных в более нормально распределенный.
Основная идея этого метода состоит в том, чтобы найти некоторое значение λ, чтобы преобразованные данные были как можно ближе к нормальному распределению, используя следующую формулу:
y(λ) = (y λ – 1) / λ, если y ≠ 0
y(λ) = log(y), если y = 0
Мы можем выполнить преобразование box-cox в R, используя функцию boxcox() из библиотеки MASS().В следующем примере показано, как использовать эту функцию на практике.
Пример: преобразование Бокса-Кокса в R
В следующем коде показано, как подобрать модель линейной регрессии к набору данных, а затем использовать функцию boxcox() , чтобы найти оптимальную лямбду для преобразования переменной ответа и соответствия новой модели.
library (MASS)
#create data
y=c(1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 6, 7,8)
x=c(7, 7, 8, 3, 2, 4, 4, 6, 6, 7, 5, 3, 3, 5,8)
#fit linear regression model
model <- lm(y~x)
#find optimal lambda for Box-Cox transformation
bc <- boxcox(y ~ x)
(lambda <- bc$x[which.max(bc$y)])
[1] -0.4242424
#fit new linear regression model using the Box-Cox transformation
new_model <- lm(((y^lambda-1)/lambda) ~ x)
Оптимальная лямбда оказалась равной -0,4242424.Таким образом, новая регрессионная модель заменила исходную переменную отклика y на переменную y = (y -0,4242424 – 1) / -0,4242424.
В следующем коде показано, как создать два графика QQ в R, чтобы визуализировать различия в остатках между двумя моделями регрессии:
#define plotting area
op <- par(pty = "s", mfrow = c(1, 2))
#Q-Q plot for original model
qqnorm(model$residuals)
qqline(model$residuals)
#Q-Q plot for Box-Cox transformed model
qqnorm(new_model$residuals)
qqline(new_model$residuals)
#display both Q-Q plots
par(op)
Как правило, если точки данных падают на прямую диагональную линию на графике QQ, то набор данных, вероятно, следует нормальному распределению.
Обратите внимание, как модель преобразования Бокса-Кокса создает график QQ с гораздо более прямой линией, чем исходная модель регрессии.
Это указывает на то, что остатки модели, преобразованной по боксу-коксу, распределяются гораздо более нормально, что удовлетворяет одному из предположений линейной регрессии .
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
В этой таблице безымянная частичная выгрузка перемещения пользователей по сайту. Один user_id — один пользователь. Расскажите нам всё, что сможете понять по такой выгрузке
Проведите когортный анализ (за основу для когорты можно взять неделю регистрации), подсчитайте ориентировочный срок жизни клиента/когорты оцените популярность отдельных материалов и форматов
Попробуйте определить общие паттерны у тех пользователей, кто перестал учиться на платформе, и у тех, кто продолжает учиться. Вероятно, на основе этих данных вы сможете сделать предложения по адаптации платформы? Каких данных вам не хватает, чтобы провести более детальный анализ?
Выгрузка неполная, поэтому результаты могут быть искажены. Нам важны не итоговые значения, а ход решения, который вы выберите
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Время на выполнение 3-4 дня
Решение лучше кидайте в комменты в виде jupyter notebook’а.
Задание #1:
Таблица (task2.txt) содержит 11 столбцов чисел. Первые 10 столбцов - входные переменные (x_1 , …. , x_10), 11-й столбец - выходная прогнозируемая переменная y. Каждая строка в файле - это один обучающий пример для построения статистической модели для зависимости y = y(x_1,x_2,..,x_10). Конкретный вид связи между выходной и входными переменными не известен.
Требуется провести разведочный анализ данных, выбрать критерий для точности модели, и указать степень важности (информативности) каждой из 10 входных переменных с точки зрения точности модели. Что еще можно предложить чтобы улучшить получившийся результат?
Файл: tesk2.txt
Задание #2:
Нужно предложить и обосновать подход для группировки идентичных наименований товаров.
Пример входа:
[1] "Кисломолочный напиток Актимель ежевично-черничный 100 г"
[2] "Напиток Данон Актимель черника/ежевика 2,5% 6*0,1л Россия"
[3] "Гель для душа Роскошная мягкость Черная орхидея Palmolive, 250 мл". [4] "Гель Palmolive Naturals д/душа Роскошная мягкость Черная орхидея 250мл Италия"
[5] "Гель для душа Palmolive "Черная орхидея" 250 мл"
[6] "Корм Whiskas говядина/кролик канапе новогодний 85г Россия"
Пример выхода: [1 2] [3 4 5] 6 (см. вложенный файл).
Файл: test_task_NLP.json.
final_top.csv
Другие решения: Решение от одного из DS Accenture (для задания 1):
https://github.com/pdudukin/Regression-Guide/blob/master/Regression%20Guide.ipynbRegression%20Guide.ipynb
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
В Контуре есть 4 продукта для ритейла и товарного учета:
Контур.Ритейл
Контур.Поставки
Контур.Маркет
Контур.ОФД
Во всех этих продуктах идет работа с товарами. Мы хотим, чтобы с товарами было удобно работать:
названия были понятными и читаемыми
удобные классификаторы, с помощью которых можно выбирать один или множество товаров:
категория товара (чай, творог, и др.)
объем/вес/количество товара в упаковке
рецепт товара (провансаль, пломбир, и др.)
тип упаковки (банка, бутылка, коробка и др.)
В этом тестовом задании мы предлагаем вам попробовать решить одну из таких задач: классифицировать тип упаковки товара по его названию.
Формат входных данных
DataSet разделен на 2 части:
train - для обучения, в нем присутствует ID, название товара (name) и тип его упаковки (tare)
test - для оценки качества обученного вами классификатора, в нем присутствует только ID и название товара. Метрика качества, которая применяется для оценки: accuracy.
Формат решения
Требуется обучить модель на данных из train и предсказать тип упаковки для данных из test. В качестве результата мы ожидаем архив в виде “{Фамилия}_{Имя}.zip”, в котором будут 2 файла:
prediction.csv: предсказание для test в формате csv - id,tare
report.ipynb: jupyter notebook, где описан ход вашего решения от data exploration до построения предсказания для test.csv
Итоговый архив для проверки нужно было загрузить в гугл-форму.
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
В данном ноутбуке содержится код алгоритма предсказания поисковой выдачи. Алгоритм довольно простой:
на исторических запросах строится TF-IDF индекс слов, биграмм и триграмм
описание товаров и значение их атрибутов объединяются в одно суммарное описание
суммарное описание каждого товара прогоняется через построенный индекс
к каждому запросу ищутся топ-25 релевантных товаров по скалярному произведению векторных представлений
Данный код не идеален и ему требуется внимание знающего человека. Подробнее об этом в каждом из пунктов этого ноутбука.
nB! Для выполнения данного задания должны быть установлены библиотеки numpy, pandas, matplotlib, joblib, а так же scikit-learn. Версии указаны в requirements.txt.
Данный ноутбук может быть выполнен в его текущем состоянии от начала и до конца, поэтому пункты можно решать не последовательно.
Однако для того чтобы приступить к некоторым пунктам, сначала необходимо прогнать ячейки с кодом предыдущих.
Все ячейки кроме пустых заблокированы для редактирования, не стесняйтесь создавать новые.
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Подробнная статья о собеседование инженера-программиста по машинному обучению в Google. Собеседование действительно сложное. Вопросы комплексные и специфичные для Google и охватывают широкий круг тем.
Правильная подготовка может иметь большое значение и может помочь вам получить работу по машинному обучению в таких компаниях как Google. В статье приведено полное руководство по прохождению интервью, чтобы помочь вам максимально увеличить ваши шансы на успех.
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Ответ
Это еще один вопрос, который регулярно задают на собеседованиях по глубокому обучению. Тензор — это математическое понятие, которое визуализируется как многомерные массивы.
Те́нзор (от лат. tensus, «напряжённый») — объект линейной алгебры, линейно преобразующий элементы одного линейного пространства в элементы другого. Частными случаями тензоров являются скаляры, векторы, билинейные формы и т. п.
Звучит непросто для тех, кто не разбирается в математике!
К счастью, на практике намного проще понять, что такое тензор и как он используется в науке о данных.
Я предпочитаю изображать тензор в виде вложенных “списков” чисел с любым количеством “уровней”. Другой способ представления: ячейка в электронной таблице Excel, содержащая все данные из другой таблицы. Во второй таблице каждая ячейка связана с другой таблицей и так далее. Каждую таблицу можно рассматривать как дополнительное “измерение”.
Тензор первого порядка имеет только одно измерение. В компьютерных науках это можно назвать вектором или упорядоченным набором чисел. Тензор второго порядка будет матрицей, как электронная таблица в Excel, то есть двумерным. С ростом числа измерений можно рассматривать информацию как векторы, матрицы или массивы, вложенные в массивы, с любым числом измерений (n-мерные).
С помощью Python и Numpy создадим массив числовых данных из примера:
from numpy import array
T = array([
[[111,121,131], [211,221,231], [311,321,331]],
[[112,122,132], [212,222,232], [312,322,332]],
[[113,123,133], [213,223,233], [313,323,333]],
])
При таком кодировании нам доступно любое количество измерений, что имеет колоссальное значение при работе с гигантскими объёмами сложных данных!
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Цель банка: Увеличение продаж новым клиентам инвестиционных продуктов
Описание стратегии: Стратегия состоит в предложении депозита с повышенной ставкой, значение которой существенно выше рыночной. Но после окончания депозита клиентам предлагается приобрести менее доходный инвестиционный продукт.
Входные данные (считаем постоянными для всех временных периодов):
- Ежемесячное открытие новых вкладов - 1000 клиентов
- Отток новых клиентов после прихода в среднем происходит через 30 месяцев
- Выручка, полученная от банковских активов после экспирации, от средних активов по банку составляет 0.05%
- Выручка, полученная от инвестиционных активов после экспирации, от средних активов по инвестиционным продуктам составляет 3%
- Затраты на депозит со стороны банка равны 0.06%
- Отток клиентов после окончания высокодоходного депозита может быть равен равновероятно 35%, 50% или 70%.
- Средняя сумма первоначального вклада может быть равна равновероятно 500 или 700 тыс. руб.
- Довнесение активов после окончания высокодоходного депозита оставшимися клиентами составляет равновероятно 50% или 100% от первоначальной суммы.
- Доля инвестиционных активов после экспирации может быть равной 20% или 40% с одинаковой вероятностью
Задание: Необходимо рассчитать для каждого сценария значения следующих показателей через Т лет (Т=1,2,3):
1. количество новых клиентов
2. объем новых активов
3. выручка
4. затраты
5. рентабельность
В качестве возможных сценариев необходимо рассмотреть все комбинации входных данных, а именно все комбинации различных значений показателей оттока клиентов, величины средней суммы первоначального вклада, объема довнесения активов и доли инвестиционных активов. Таким образом количество сценариев составляет 3х2х2х2=24.
📌 Решение
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Виды собеседований на должность Data Scientist'а, их течение и советы для успеха.
Если вы ошеломлены подготовкой к собеседованию на должность Data Scientist'а, вы не одиноки. Поиск "собеседование в Data Science" вернет вам бесконечное количество ссылок, включая статьи о Python, R, статистике, A/B тестированию, машинному обучению, Big Data. Вам посоветуют прочитать бесконечное количество книг. К сожалению, мы и сами давали такие же обширные рекомендации другим.
В реальности вам не нужно готовиться ко всему, чтобы получить свою первую работу Data Scientist'ом.
В этой статье мы расскажем вам о четырех ключевым вещах:
- Виды должностей Data Scientist'ов.
- Виды собеседований, к которым вы должны приготовиться.
- Чего ожидать в процессе собеседования.
- Что оценивают собеседующие.
Давайте погрузимся в эти темы.
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Время на выполнение примерно час, онлайн тест.
Примеры вопросов и описание позиции.
Тест
Датасет 1
Датасет 2
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Interview Query
Top 22 Uber Data Scientist Interview Questions + Guide in 2025
Explore expert tips and strategies for tackling Uber Data Scientist interview questions. An ideal guide for candidates, offering insights and more.
Интервью Facebook по науке о данных состоит из нескольких технических вопросов и бизнес-кейсах, в значительной степени сосредоточенных на применении технических знаний к сценариям бизнес-кейсов. Ожидается, что специалисты по данным Facebook будут работать в разных направлениях и исследовать, анализировать и агрегировать большие наборы данных.
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Если скорость обучения слишком мала, обучение модели будет слишком медленным, поскольку веса будут изменяться ненамного. Однако, если скорость обучения слишком велика, это может привести к тому, что функция потерь будет беспорядочно прыгать вследствие сильных изменений весов. Модель может не сойтись в какой-то одной точке или даже отклониться от минимума, если данные слишком хаотичны для обучения нейронной сети.
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Собеседование
Мы предлагаем вам пройти тестовое задание на знание методов обработки данных. Задание никак не связано непосредственно с медициной и необходимо для демонстрации ваших знаний и умении применять их на практике.
Задание основано на открытом датасете https://archive.ics.uci.edu/ml/datasets/automobile , содержащем информацию о параметрах различных автомобилей (подробное описание датасета по ссылке).
Датасет содержит всего 205 строк, очевидно этого недостаточно для создания полноценной стабильной модели. Цель данного кейса не решить конкретную задачу, добившись максимальной точности, а продемонстрировать ход ваших мыслей и владение инструментами и методами анализа данных. Задание рассчитано на 3-4 часа.
Пожалуйста, проанализируйте представленные данные (dataset.csv) и ответьте на несколько вопросов:
1. Придумайте и опишите наибольшее число вариантов использования этих данных.Для решения каких практических задач их можно применить?
2. Выберите одну из описанных вами задачи реализуйте решение на Python/R при помощи оптимальной на ваш взгляд модели. Опишите, почему вы выбрали именно эту модель.
3. Опишите ваш подход к предварительному анализу (в т.ч. визуализации) и обработке данных, работе с признаками, кросс валидацией, настройкой модели и ее оценкой.
4. Объясните выбор того или иного решения и, по возможности, сравните с альтернативами.
Опишите, как бы вы улучшили модель из пункта 2, если бы у вас было больше времени и существенно больший датасет
➡️ Решение
➡️ Датасет
@machinelearning_interview
Мы предлагаем вам пройти тестовое задание на знание методов обработки данных. Задание никак не связано непосредственно с медициной и необходимо для демонстрации ваших знаний и умении применять их на практике.
Задание основано на открытом датасете https://archive.ics.uci.edu/ml/datasets/automobile , содержащем информацию о параметрах различных автомобилей (подробное описание датасета по ссылке).
Датасет содержит всего 205 строк, очевидно этого недостаточно для создания полноценной стабильной модели. Цель данного кейса не решить конкретную задачу, добившись максимальной точности, а продемонстрировать ход ваших мыслей и владение инструментами и методами анализа данных. Задание рассчитано на 3-4 часа.
Пожалуйста, проанализируйте представленные данные (dataset.csv) и ответьте на несколько вопросов:
1. Придумайте и опишите наибольшее число вариантов использования этих данных.Для решения каких практических задач их можно применить?
2. Выберите одну из описанных вами задачи реализуйте решение на Python/R при помощи оптимальной на ваш взгляд модели. Опишите, почему вы выбрали именно эту модель.
3. Опишите ваш подход к предварительному анализу (в т.ч. визуализации) и обработке данных, работе с признаками, кросс валидацией, настройкой модели и ее оценкой.
4. Объясните выбор того или иного решения и, по возможности, сравните с альтернативами.
Опишите, как бы вы улучшили модель из пункта 2, если бы у вас было больше времени и существенно больший датасет
➡️ Решение
➡️ Датасет
@machinelearning_interview
GitHub
testovoe/doc+/Solution.ipynb at master · slgero/testovoe
Home assignments for data science positions. Contribute to slgero/testovoe development by creating an account on GitHub.
Какой алгоритм является детерминированным: PCA или k-средних?
Anonymous Quiz
42%
PCA
29%
K-средних
15%
Ни один из них
14%
Оба
Что такое проблемы взрывающегося и затухающего градиента?
Градиент — это вектор частных производных функции потерь по весам нейросети. Он показывает вектор наибольшего роста функции для всех весов.
В процессе обучения при обратном распространении ошибки при прохождении через слои нейронной сети в элементах градиента могут накапливаться большие значения, что будет приводить к сильным изменениям весов. Это дестабилизирует алгоритм нейросети. Эта проблема называется взрывающимся градиентом.
Аналогичная обратная проблема, в которой при прохождении ошибки через слои градиент становится меньше, называется затухающим градиентом.
Чем больше количество слоев нейросети, тем выше риски данных ошибок. Для решения сложных задач с помощью нейронных сетей необходимо уметь определять и устранять её.
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Описание процесса
Есть производство некотрого продукта посредством электролиза (нагреваемый ящик, стоит в неотапливаемом помещении). Заглядывать в ящик часто нельзя - лабораторный сбор по уточнению процентного содержания в смеси происходит дважды в день, хотелось бы делать замеры еще реже и в перспективе полагатсья только на модель - отсюда и задача. Требуется предсказать по данным (до 2018-10-18) с различных датчиков процентное содержание продукта в смеси файл target.csv.
В качестве данных доступны
Файл 3min Series (00sec) Outer new:
- Шум в электрике
- Обратная ЭДС сети устройства
- Ср.прир.напр Средний прирост напряжения в сети
- Сум.доз АПГ Сумма доз АПГ (происходит периодичный вброс катализатора в ящик - это число соответствует кол-ву раз которое производилось вбрасывание за промежуток времени)
- Температурные датчики (ящик прямоугольной формы, они рсполагаются по всему периметру, см boards.png - схематическое расположение, нумерация вдоль длины ящика дана как пример)
- Board Temp. {i} - датчики температуры по длинне ящика с обоих сторон
- Board Face Temp. {1,6} - датчики с лицевой стороны
- Board Deaf Temp. {1,6} - датчики с тыльной стороны
Файл Средняя масса доли АПГ New : массовые доли каждого из вбросов показателя Сумма доз АПГ. То есть можно понять сколько массы было вброшено в период Итог масс АПГ = Сум.доз АПГ * avg_mass_apg.
Критерии успешности выполнения задания:
- Получение инсайтов по данным
- Обоснованное построение модели
- Оценка полученной модели
- (Доп.) Запаковка в функцию / модуль / сервис / приложение
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Подготовьтесь к типам вопросов, которые вам, вероятно, будут задавать при собеседовании на должность, где будет использоваться Azure Machine Learning. Вопросы и ответы
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Двоичная классификация включает классификацию данных в две группы. Например, независимо от того, покупает ли клиент определенный продукт (Да / Нет), модель строится на основе независимых переменных, таких как пол, возраст, местоположение и т. д.
Поскольку целевая переменная не является непрерывной, двоичная модель классификации предсказывает вероятность того, что целевая переменная будет Да / Нет. Для оценки такой модели используется метрика, называемая матрицей путаницы, также называемая классификацией или матрицей совпадений. С помощью матрицы путаницы мы можем вычислить важные показатели эффективности:
- True Positive Rate (TPR) or Recall or Sensitivity = TP / (TP + FN)
- Precision = TP / (TP + FP)
- False Positive Rate(FPR) or False Alarm Rate = 1 - Specificity = 1 - (TN / (TN + FP))
- Accuracy = (TP + TN) / (TP + TN + FP + FN)
- Error Rate = 1 – Accuracy
- F-measure = 2 / ((1 / Precision) + (1 / Recall)) = 2 * (precision * recall) / (precision + recall)
- ROC (Receiver Operating Characteristics) = plot of FPR vs TPR
- AUC (Area Under the Curve)
@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM