more lectures

This commit is contained in:
Ivan I. Ovchinnikov 2023-02-14 12:34:47 +03:00
parent de835acd08
commit 1a103ca40c
5 changed files with 447 additions and 66 deletions

View File

@ -1,8 +1,8 @@
\documentclass[a4paper,fontsize=14bp]{article} \documentclass[a4paper,fontsize=14bp]{article}
\input{../common-preamble} \input{settings/common-preamble}
\input{../fancy-listings-preamble} \input{settings/fancy-listings-preamble}
\input{../bmstu-preamble} \input{settings/bmstu-preamble}
\numerationTop \numerationTop
\begin{document} \begin{document}

View File

@ -12,18 +12,32 @@
\tableofcontents \tableofcontents
\newpage \newpage
\section{Введение} \section{Введение}
Основы ТВ и МС (случайные величины, непрерывные и дискретные СВ, матожидание, дисперсия, ковариация, корреляция) \subsection{Что нужно знать}
выборка, статистика, гистограмма, смещение \begin{itemize}
несмещённая оценка... \item \textbf{Основы теории вероятностей и математической статистики} (случайные величины, непрерывные и дискретные случайные величины, матожидание, дисперсия, ковариация, корреляция)
\item выборка, статистика, гистограмма, смещение
\item несмещённая оценка, асимптотически несмещённая оценка, состоятельная оценка, дисперсия оценки, коэффициент корреляции Пирсона, коэффициент корреляции Спирмена, нормальное (гауссовское) распределение (одномерное и многомерное), центральная предельная
\item \textbf{основы линейной алгебры}
\begin{itemize}
\item Вектор, операции над векторами и их свойства, векторное пространство, аксиомы векторного пространства, размерность векторного пространства.
\item Линейная зависимость векторов, линейная независимость векторов, методы проверки линейной независимости векторов.
\item Матрица, операции над матрицами, умножение матрицы на вектор, умножение матрицы на матрицу, ранг матрицы, транспонирование матриц, обратная матрица.
\item Система линейных уравнений (СЛУ), число решений СЛУ, ранг матрицы СЛУ и число ее решений.
\item Евклидово пространство, его свойства, норма вектора, ее свойства, метрика, евклидова метрика, скалярное произведение векторов, угол между векторами.
\end{itemize}
\item \textbf{Теория информации} Информационная энтропия (Entropy) мера неопределённости некоторой системы
\item \textbf{Python} Библиотеки: Scikit-Learn, Numpy, Scipy, Pandas, Matplotlib, ...
\end{itemize}
основы линейной алгебры. (матрицы, энтропия, ...) \subsection{Типы задач анализа данных}
\begin{itemize}
\item Визуализация - анализ ситуации, анализ исходной информации, анализ, интерпретация и представление результатов
\item Поиск шаблонов поиск частых наборов - метод ассоциативных правил - market basket analysis
\item прогнозирование - определение нового класса или объекта, которого не было в обучающей выборке
\item кластеризация или сегментация
\end{itemize}
Визуализация - анализ ситуации, анализ исходной информации, анализ, интерпретация и представление результатов \textbf{Этапы решения задачи алгоритмами машинного обучения}
Поиск шаблонов поиск частых наборов - метод ассоциативных правил - market basket analysis
прогнозирование - определение нового класса или объекта, которого не было в обучающей выборке
\textbf{Этапы}
Пример - Скоринг - определение платёжеспособности.
\begin{itemize} \begin{itemize}
\item формальная постановка задачи (кампания по привлечению кредитов, найти модель) \item формальная постановка задачи (кампания по привлечению кредитов, найти модель)
\item данные (признаковое описание -- бинарные, числовые, категориальные, порядковые; матрица расстояний между объектами, временные ряды скалярных или векторных наблюдений, итого 16 прпизнаков) \item данные (признаковое описание -- бинарные, числовые, категориальные, порядковые; матрица расстояний между объектами, временные ряды скалярных или векторных наблюдений, итого 16 прпизнаков)
@ -33,41 +47,182 @@
\item предобработка данных (если клиентов приндалежащих какому-то классу меньше 5\% выборка не сбалансирована) \item предобработка данных (если клиентов приндалежащих какому-то классу меньше 5\% выборка не сбалансирована)
\item реализация, оценка качества \item реализация, оценка качества
\end{itemize} \end{itemize}
Пример -- Скоринг -- определение платёжеспособности.
Работа с несбалансированными выборками
\begin{enumerate} \begin{enumerate}
\item выкинуть лишнее или продублировать недостающее \item \textbf{Постановка задачи}. Проводилась компания по привлечению клиентов для открытия депозита. Цель маркетинговой компании: привлечь клиентов на депозит, предлагая долгосрочные депозитные заявки с высокими процентными ставками, при сокращении затрат и времени на проведение компании: контактов должно быть меньше, но число клиентов, подписавшихся на депозит не должно уменьшаться. Цель исследования: найти модель, которая может объяснить успех компании т. е., если клиент подписывает депозит. Решается задача классификации: по имеющемуся признаковому описанию клиента определить подпишет ли он депозит (успех) и нет (неудача).
\item создать недостающие параметры \item \textbf{Данные задачи}. \textbf{Типы входных данных}: признаковое описание, каждый объект описывается набором числовых или нечисловых признаков; матрица расстояний между объектами (метод ближайших соседей); временные ряды скалярных или векторных наблюдений (сигналы); изображение или видеоряд;
\item изменить веса параметров
\textbf{Признаковое описание} Бинарные признаки $(0, 1)$; Числовые признаки: $x_{ik} \in R$ -- с этими признаками удобно работать, практически любой метод применим к задаче с числовыми признаками; Категориальные признаки $x_{ik} \in \{\alpha_1, ..., \alpha_k\}$ нет метрики, нет упорядочения; Порядковые признаки $x_{ik} \in \{\alpha_1, ..., \alpha_k\}$ есть упорядочение.
\textbf{Входные данные 16 признаков}
\textbf{Общие данные о клиенте}
1 - age (numeric);
2 - job : (categorical: "admin.", "unknown", "unemployed", "management", "housemaid", "entrepreneur", "student", "blue-collar", "self-employed", "retired", "technician", "services")
3 - marital (categorical: "married", "divorced", "single")
4 - education (categorical: "unknown","secondary","primary","tertiary")
\textbf{Финансовое положение}
5 - default: has credit in default? (binary: "yes","no")
6 - balance:, in euros (numeric)
7 - housing: has housing loan? (binary: "yes","no")
8 - loan: has personal loan? (binary: "yes","no")
\textbf{Данные о рекламной компании}
9 - contact: contact communication type (categorical: "unknown","telephone","cellular")
10 - day: last contact day of the month (numeric)
11 - month: last contact month of year (categorical: "jan", "feb", "mar", ..., "nov", "dec")
12 - duration: last contact duration, in seconds (numeric)
13 - campaign: number of contacts performed during this campaign (numerict)
14 - pdays: number of days that passed by after the client was last contacted (numeric)
15 - previous: number of contacts performed before this campaign and for this client (numeric)
16 - poutcome: outcome of the c (categorical: "unknown","other","failure","success")
17 - y - has the client subscribed a term deposit? (binary: "yes","no")
\item \textbf{Предварительная обработка и проверка качества исходных данных}
1. Какова доля объектов первого класса в данных? Если эта доля менее 5\% - имеем несбалансированную выборку.
2.Какова доля выбросов, пропусков в данных? Выбросы могут быть результатом: событий, которые происходят с небольшой вероятностью и большим воздействием, системной ошибки.
\item \textbf{Определение ответа} Варианты ответов: клиент подписывает контракт -- класс 1, клиент не подписывает -- класс 0;
вектор $\{p, 1-p\} = P, p$ --степень уверенности алгоритма (вероятность) в том, что объект принадлежит классу 1 .
\item Выбор критериев: метрики оценивания используемого метода решения должны иметь интерпретацию, значимую для решаемой бизнес-задачи.
\end{enumerate} \end{enumerate}
Метрики \subsection{Работа с несбалансированными выборками}
TP FP FN TN (ошибки первого и второго рода). Метрики для несбалансированных наборов данных: AUC-ROC (площадь под ROC-кривой) , f1-score.
Accuracy = TN + TP / n - метрика сама по себе неприменима. \begin{enumerate}
Precision = TP/TP+FP уровень доверия к положительным ответам модели, доля истинных положительных объектов, выделенных классификатором как положительные \item Удаление части элементов мажоритарного класса (недостаток: потеря данных).
Recall = TP/TP+FN какая часть положительных объектов правильно определена классификатором \item Дополнение миноритарного класса повторяющимися данными (недостаток: переобучение на элементах миноритарного класса).
\item Создание дополнительных искусственных объектов.
\item Настройка классификатора с использованием весов. В контексте кредитования потеря денег из-за незаслуживающего доверия заемщика обходится существенно выше, чем отсутствие возможности кредитования надежного заемщика. Поэтому мы можем назначать этим классам различные веса и отсечки
\end{enumerate}
F - мера (F-score)- гармоническое среднее точности и полноты. F мера обладает важным свойством - она близка к нулю, если хотя бы один из аргументов близок к нулю: F = 2*precision recall precision+recall 0≤ F ≤ 1 Метрики Качества. Пусть имеется два класса 1 -- положительный и 0 -- отрицательный
\begin{itemize}
\item True positive TP объекты, принадлежащие положительному классу $Y_1$, определены алгоритмом как положительные
\[ TP = \{ X_t \in Y_1 | a(X_t, g) = 1 \} \]
\item False positive FP объекты, принадлежащие отрицательному классу $Y_0$ ,определены алгоритмом как положительные
\[ FP = \{ X_t \in Y_0 | a(X_t, g) = 1 \} \]
\item False negative FN объекты, принадлежащие положительному классу $Y_1$ , определены алгоритмом как отрицательные
\[ FN = \{ X_t \in Y_1 | a(X_t, g) = 0 \} \]
\item True negative TN объекты, принадлежащие отрицательному классу $Y_0$ , определены алгоритмом как отрицательные
\[ TN = \{ X_t \in Y_0 | a(X_t, g) = 0 \} \]
\end{itemize}
Ошибка 1 рода (Туре I Error) случается, когда объект ошибочно относится к положительному классу \subsection{Метрики качества оценки алгоритмов машинного обучения}
Ошибка 2 рода (Туре II Error) случается, когда объект ошибочно относится к отрицательному классу \begin{itemize}
\item \textbf{Accuracy} $\frac{TN + TP}{n}$ -- метрика сама по себе неприменима.
\item \textbf{Precision} $\frac{TP}{TP+FP}$ -- уровень доверия к положительным ответам модели, доля истинных положительных объектов, выделенных классификатором как положительные.
\item \textbf{Recall} $\frac{TP}{TP+FN}$ -- какая часть положительных объектов правильно определена классификатором
\item \textbf{F-мера} (F-score) -- гармоническое среднее точности и полноты. F-мера обладает важным свойством -- она близка к нулю, если хотя бы один из аргументов близок к нулю: $F = \frac{2*precision*recall}{precision+recall}, 0\leq F \leq 1$
\item Ошибка 1 рода (Туре I Error) случается, когда объект ошибочно относится к положительному классу
\item Ошибка 2 рода (Туре II Error) случается, когда объект ошибочно относится к отрицательному классу
\end{itemize}
Confusion Matrix \subsection{Confusion Matrix}
TP FP Хорошо подходит для многоклассовой классификации. Классификация в случае двух классов:
FN TN \begin{equation*}
Хорошо подходит для многоклассовой классификации. \begin{pmatrix}
TP & FP \\
FN & TN \\
\end{pmatrix}
\end{equation*}
FP, FN -- число элементов, определённых ложно.
ROC-кривая Многоклассовая классификация, $m$ классов.
Число строк в квадрате справа равно числу единиц, число столбцов - числу нулей. Стартуем из точки (0, 0)(левый нижний угол. Если значение метки класса в просматриваемой строке 1, то делаем шаг вверх; если 0, то делаем шаг вправо, если у нескольких объектов значения оценок равны, то делаем шаг в точку а блоков выше и блоков правее, где а - число единиц, b - число нулей в рассматриваемой группе объектов. Считаем сколько \% покрыто. \begin{itemize}
\item $C = (c_{ij} i = 1, ..., m, j = 1, ..., m)$
\item $c_{ij} = |X_t:X_t \in i|a(X_t, g)= j|$
\item число объектов, принадлежащих классу $i$, отнесённые алгоритмом к классу $j$.
\begin{equation*}
\begin{pmatrix}
10 & 5 & 0 & 0 \\
3 & 12 & 0 & 0 \\
0 & 0 & 14 & 1 \\
0 & 0 & 0 & 15 \\
\end{pmatrix}
\end{equation*}
\end{itemize}
\subsection{Отбор признаков}
Посчитаем число вариантов признаковых описаний одного клиента. Число значений категориальных и бинарных признаков каждого клиента, не считая возраста, равно
\[N = 12 * 3 * 4 * 8 * 3 * 12 * 4 = 144 * 24 * 48 = 165888.\]
С ростом размера признакового пространства увеличивается сложность задачи и снижается достоверность решения.
\textbf{Шумовые признаки} -- это признаки, которые никак не связаны с целевой переменной. Зашумленность данных означает, что отдельные значимые объясняющие переменные, возможно, не были зарегистрированы или что дефолт произошел случайно.
\textbf{Методы отбора признаков}
\begin{itemize}
\item Обертки -- использующие для отбора признаков конкретную модель. Модель обучается на подмножестве признаков, для нее строится матрица ошибок, затем на другом и т.д.
\item Фильтры -- удаляем коррелированные данные матрица рассеяния, F-тест -- оценивает степень линейной зависимости между признаками и целевой переменной, поэтому он лучше всего подойдёт для линейных моделей. Реализован как \code{f_classif} для классификации; хи-квадрат -- оценивает степень линейной зависимости между признаками и целевой переменной.
\item Встроенные методы -- задача отбора признаков -- побочная задача (случайный лес)
\[ IG = H(S_i) - \frac{|S_{il}|}{|S_i|} H(S_{il}) - \frac{|S_{ir}|}{|S_i|} H(S_{ir}) \to \max \]
\end{itemize}
\textbf{Отбор категориальных признаков}
Значения категориальных признаков могут быть любыми объектами, на которых определена операция сравнения (равно и не равно).
\begin{itemize}
\item \textbf{Lable encoding} -- отображение каждого признака в число позволяет использовать его в модели обучения. Недостатки: неявно задает порядок категории, не может работать с неизвестными в процессе обучения значениями категориального признака
\item \textbf{Onehot coding} -- недостатки: увеличение количества признаков
\item \textbf{Target encoding} -- кодирование с учётом целевой переменной
\[ p_j(x \in X) = \frac{\sum_{i=1}^N[f_j(x\in X) = f_j(x_i)][y_i = 1]}{\sum_{i=1}^N[f_j(x\in X) = f_j(x_i)]} \]
где $p_j(x \in X)$ -- числовое значение $j$-го категориального признака на объекте $x, f_j(x_i)$ -- исходное значение $j$-го категориального признака на объекте $x_i$. Использование счетчиков может привести к переобучению. Модель может опираться на счетчики, если есть уверенность в том, что модель обучена по большому числу объектов. Сглаживание
\[ p_j(x \in X) = \frac{\sum_{i=1}^N[f_j(x\in X) = f_j(x_i)][y_i = 1] + C/N \sum_{i=1}^N[y_i = 1]}{\sum_{i=1}^N[f_j(x\in X) = f_j(x_i)] + C} \]
Если мало объектов этой категории, то числовое значение признака приближается близко к среднему по всей выборке, а для популярных к среднему значению по категории. $p_j(X) \to 1/N \sum_{i=1}^N[y_i = 1]$, если мало объектов в категории.
Значение категориального признака в задаче регрессии
\[ p_j(x \in X) = \frac{\sum_{i=1}^N[f_j(x\in X) = f_j(x_i)]*\ddot{y_i}}{\sum_{i=1}^N[f_j(x\in X) = f_j(x_i)]} \]
$\ddot{y_j}$ -- среднее значение $y_t$ для объектов с категориальным признаком.
\end{itemize}
\subsection{Permutation Importance, Feature selection}
Важность перестановки
\begin{itemize}
\item Случайным образом тасуется один столбец в валидационной выборке. Признак считается значимым, если точность модели сильно падает и вызывает увеличение ошибки и «неважным», если перетасовка его значений не влияет на точность модели.
\item Permutation Importance рассчитывается после обучения модели с использованием библиотеки ELI5. ELI5 -- это библиотека Python, которая позволяет визуализировать и отлаживать различные модели машинного обучения с использованием унифицированного API.
\item Feature selection -- отбор самых важных признаков. Оценка информативности признаков: Вычисление дисперсии: чем больше дисперсия, тем информативнее признак
\[ Var(x_j) = \frac{1}{N}\sum_{i=1}^N(x_{ij} - \overline{x_j})^2\]
Позволяет убирать малоинформативные признаки, недостатки: никак не учитываются значения целевой переменной.
\item Вычисление корреляции между значениями признака и целевой переменной (задача регрессии)
\item Задача классификации: Подсчет процента успешной классификации для каждого из значений признака $p$. По теореме Байеса считаем $P(X_j|Y)$ -- вероятность признака $X_j$, если объект принадлежит положительному классу. Если $P(X_j|Y = 1) > 0,7 \cup P(X_j|Y = 1) < 0,3$, то считаем $X_j$ информативным признаком.
\end{itemize}
\subsection{ROC-кривая}
Число строк в квадрате справа равно числу единиц, число столбцов -- числу нулей. Стартуем из точки (0, 0)(левый нижний угол. Если значение метки класса в просматриваемой строке 1, то делаем шаг вверх; если 0, то делаем шаг вправо, если у нескольких объектов значения оценок равны, то делаем шаг в точку \textbf{а} блоков выше и \textbf{b} блоков правее, где \textbf{а} -- число единиц, \textbf{b} -- число нулей в рассматриваемой группе объектов.
Считаем сколько \% покрыто.
\begin{figure}[H]
\centering
\fontsize{14}{1}\selectfont
\includesvg[scale=1.01]{pics/04-bdisdt-00-roc.svg}
\end{figure}
\textbf{Принятие решений на основе кривой.} Для того, чтобы решить, какие объекты отнести к классу 1, а какие к классу 0, нужно будет выбрать некоторый порог (объекты с оценками выше порога относим к классу 1, остальные -- 0). Выбору порога соответствует выбор точки на ROC-кривой. Здесь для порога $0.25$ выбрана точка (1/4,2/3).
\begin{tabular}{||r|c|c||}
\hline
id & $>0.25$ & класс \\ [0.5ex]
\hline
4 & 1 & 1 \\
1 & 1 & 0 \\
6 & 1 & 1 \\
3 & 0 & 0 \\
5 & 0 & 1 \\
2 & 0 & 0 \\
7 & 0 & 0 \\
\hline
\end{tabular}
Принятие решений на основе кривой.Для того, чтобы решить, какие объекты отнести к классу 1, а какие к классу 0, нужно будет выбрать некоторый порог (объекты с оценками выше порога относим к классу 1, остальные 0). Выбору порога соответствует выбор точки на ROC-кривой. Здесь для порога 0.25 выбрана точка (1/4,2/3), (табл. 3).
1/4 - это \% точек класса 0, которые неверно классифицированы алгоритмом (FPR = False Positive Rate), 1/4 - это \% точек класса 0, которые неверно классифицированы алгоритмом (FPR = False Positive Rate),
2/3 - \% точек класса 1, верно классифицированых алгоритмом (TPR = True Positive Rate). 2/3 - \% точек класса 1, верно классифицированых алгоритмом (TPR = True Positive Rate).
Отбор признаков
Могут быть зашумлены
Методы: обёртки, фильтры, внутренние методы.
\end{document} \end{document}

View File

@ -19,34 +19,54 @@ DevOps -- стратегия разработки ПО, призванная у
Методологии разработки - waterfall (последовательный переход от одного этапа к другому), agile (scrum, lean) -- гибкая методология, система идей. Ключевой принцип - разработка через короткие итерации. Методологии разработки - waterfall (последовательный переход от одного этапа к другому), agile (scrum, lean) -- гибкая методология, система идей. Ключевой принцип - разработка через короткие итерации.
Водопадная модель разработки (Waterfall-разработка): Водопадная модель разработки (Waterfall-разработка):
Системные и программные требования: закрепляются в PRD (product requirements documents, документ требований к продукту). \begin{itemize}
Анализ: воплощается в моделях, схемах и бизнес-правилах. \item Системные и программные требования: закрепляются в PRD (product requirements documents, документ требований к продукту).
Дизайн: разрабатывается внутренняя архитектура ПО, способы реализации требований; си внешний вид ПО, ной \item Анализ: воплощается в моделях, схемах и бизнес-правилах.
его внутренняя структурная логи \item Дизайн: разрабатывается внутренняя архитектура ПО, способы реализации требований; Не только интерфейс, и внешний вид ПО, но и его внутренняя структурная логика.
\item Кодинг: непосредственно пишется код программы, идёт интеграция ПО.
\item Тестирование: баг-тестеры (тестировщики) проверяют финальный продукт, занося в трекеры сведения о дефектах кода программы или функционала. В случае ошибок и наличия времени/финансов происходит исправление багов.
\item Операции: продукт адаптируется под разные операционные системы, регулярно обновляется для исправления обнаруженных пользователями багов и добавления функционала. В рамках стадии также осуществляется техническая поддержка клиентов.
\end{itemize}
. Кодинг: непосредственно пишется код программы, идёт интеграция ПО. Основные принципы гибкой методологии:
\begin{itemize}
\item Люди и взаимодействие важнее процессов и инструментов
\item работающий продукт важнее исчерпывающей документации
\item сотрудничество с заказчиком важнее согласования условий контракта
\item готовность к изменениям важнее следования первоначальному плану.
\end{itemize}
'Нетолько интерф Обычно ИТ-команда это разработчики(Dev), тестировщики(QA), группа эксплуатации(Ops). Толчком к появлению девопс стало появление микросервисов. Цели девопс -- Сокращение времени выхода на рынок, надёжность (снижение частоты отказов новых релизов), сокращение времени выполнения исправлений, уменьшение количества времени на восстановления (в случае сбоя).
- Тестирование: баг-тестеры (т
продукт, занося в трекеры сведения о дефектах кода програм
функционала. В случае ошибок и наличия времени финансов происходит
исправление багов.
Операции: продукт эдаптируется под разные операционные системы,
регулярно обновляется для исправления обнаруженных пользователями
бэгов и добавления функционала. В рамках стадии также осуществляется
техническая поддержка клиентов:
Обычно ИТ-команда это разработчики(Dev), тестировщики(QA), группа эксплуатации(Ops). Толчком к появлению девопс стало появление микросервисов.
цели - надёжность, скорость выхода на рынок.
девопс предлагает представителям ранее разрозненных подразделений координировать свои действия. Культура: совместная работа и согласованность, изменения в сфере участия и ответственности, сокращение циклов выпуска (не количество, а сами циклы), непрерывное обучение. девопс предлагает представителям ранее разрозненных подразделений координировать свои действия. Культура: совместная работа и согласованность, изменения в сфере участия и ответственности, сокращение циклов выпуска (не количество, а сами циклы), непрерывное обучение.
методики Жизненный цикл приложения
\begin{itemize}
\item \textbf{Планирование} помогает обеспечить командам гибкость и прозрачность
\begin{itemize}
\item представляют, определяют и описывают функции и возможности создаваемых приложений
\item отслеживают ход работы на низком и высоком уровнях детализации
\item создают журналы невыполненной работы, отслеживая ошибки, и так далее.
\end{itemize}
\item \textbf{Разработка} включает написание, тестирование, проверку и интеграцию кода участниками команды. Быстро внедряют инновации, автоматизируя рутинные действия, а также запускают итерации с маленьким шагом при помощи автоматического тестирования и непрерывной интеграции.
\item \textbf{Доставка} -- это процесс последовательного и надёжного развёртывания приложений в рабочих средах. Этап доставки также включает развёртывание и настройку полностью управляемой базовой инфраструктуры, лежащей в основе этих сред.
\begin{itemize}
\item определяют процесс управления выпусками
\item устанавливают автоматические шлюзы, с помощью которых приложения перемещаются между этапами, пока не станут доступными клиентам
\end{itemize}
\item \textbf{Эксплуатация}.
\begin{itemize}
\item обслуживание
\item мониторинг
\item устранение неполадок приложений в рабочих средах
\end{itemize}
внедряя методики девопс, различные подразделения стремятся обеспечить надёжность системы и высокую доступность, свести простои к нулю, а также повысить уровень безопасности и усовершенствовать управление.
\end{itemize}
Девопс предполагает представителям ранее разрозненных подразделений компании координировать свои действия и совместно создавать более качественные и надёжные продукты (постоянная обратная связь и оптимизация). Совместная работа и согласованность, изменения в сфере участия и ответственности, сокращение циклов выпуска, непрерывное обучение.
методики девопс
\begin{itemize} \begin{itemize}
\item непрерывная доставка (CI/CD) \item непрерывная доставка (CI/CD)
\item управление версиями (git) \item управление версиями (git)
@ -59,12 +79,11 @@ DevOps -- стратегия разработки ПО, призванная у
\begin{figure}[H] \begin{figure}[H]
\centering \centering
\includegraphics[width=12cm]{04-telematics-devops.png} \includegraphics[width=12cm]{04-telematics-devops.png}
\includegraphics[width=12cm]{04-t-devops-table.jpg}
\end{figure} \end{figure}
(инструменты как таблица менделеева) Внедрение облачных технологий в корне изменило способы создания развёртывания и эксплуатации приложений. Преимущества: затраты, скорость, глобальный масштаб, производительность, эффективность, надёжность, безопасность.
Внедрение облачных технологий в корне изменило способы создания развёртывания и эксплуатации приложений. Затраты, скорость, глобальный масштаб, производительность, эффективность, надёжность, безопасность.
Три способа развёртывания облачных служб: Три способа развёртывания облачных служб:
\begin{itemize} \begin{itemize}
@ -80,7 +99,7 @@ DevOps -- стратегия разработки ПО, призванная у
\item Saas -- software (предоставление уже разработанного ПО как услуги); \item Saas -- software (предоставление уже разработанного ПО как услуги);
\end{itemize} \end{itemize}
В девопс облаке, с помощью девопс возможно: В облаке, с помощью девопс возможно:
\begin{itemize} \begin{itemize}
\item создание собственных облачных приложений \item создание собственных облачных приложений
\item тестирование и сборка приложений \item тестирование и сборка приложений
@ -89,7 +108,17 @@ DevOps -- стратегия разработки ПО, призванная у
\item доставка ПО по запросу \item доставка ПО по запросу
\end{itemize} \end{itemize}
DevOps-инженер -- высококвалифицированный специалист, который отвечает за автоматизацию всех этапов создания приложений и обеспечивает взаимодействие программистов и системных администраторов. Прорабатывает сборку, доставку и тестирование. Build-инженер, Release-инженер, Automation-инженер DevOps-инженер -- высококвалифицированный специалист, который отвечает за автоматизацию всех этапов создания приложений и обеспечивает взаимодействие программистов и системных администраторов. Прорабатывает сборку, доставку и тестирование. Build-инженер, Release-инженер, Automation-инженер, Security-инженер.
\begin{itemize}
\item [+] высокий заработок
\item [+] востребованность
\item [+] интересные задачи
\item [+] перспектива карьерного роста
\item [-] непрерывное обучение (\textit{а минус ли это? прим. Овчинников})
\item [-] необходимость знать много из разных областей
\item [-] возможны стрессовые ситуации и высокая нагрузка
\end{itemize}
Необходимые знания: Необходимые знания:
\begin{itemize} \begin{itemize}

197
pics/04-bdisdt-00-roc.svg Normal file
View File

@ -0,0 +1,197 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg8"
inkscape:version="1.0.2 (e86c870879, 2021-01-15)"
sodipodi:docname="04-bdisdt-00-roc.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.979899"
inkscape:cx="168.14713"
inkscape:cy="433.61837"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
inkscape:document-rotation="0"
showgrid="true"
inkscape:window-width="1533"
inkscape:window-height="1205"
inkscape:window-x="513"
inkscape:window-y="83"
inkscape:window-maximized="0">
<inkscape:grid
type="xygrid"
id="grid10" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<rect
style="fill:none;stroke:#000000;stroke-width:0.264999"
id="rect12"
width="78.052086"
height="78.052086"
x="22.489584"
y="71.4375" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 22.489583,95.249999 H 100.54167"
id="path14" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 22.489583,123.03125 H 100.54167"
id="path16" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 60.854166,71.437499 V 149.48958"
id="path18" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 41.010416,71.437499 V 149.48958"
id="path20" />
<path
style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 80.697916,71.437499 V 149.48958"
id="path22" />
<path
style="fill:none;stroke:#0000c1;stroke-width:1.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="M 22.489583,149.48958 V 123.03125 H 41.010416 V 95.249999 l 19.84375,-23.8125 h 39.687504"
id="path24" />
<circle
style="fill:none;stroke:#000000;stroke-width:1.265;stroke-miterlimit:4;stroke-dasharray:none"
id="path851"
cx="41.010418"
cy="95.25"
r="3.96875" />
<path
style="fill:none;stroke:#008200;stroke-width:1.265;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
d="M 22.489583,149.48958 41.010416,95.249999 100.54167,71.437499"
id="path853" />
<path
style="fill:#00c200;stroke:none;stroke-width:2.41482;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;fill-opacity:1"
d="m 230.52405,346.03852 v -13.33365 l 36.23922,-14.50293 c 19.93158,-7.97662 36.52333,-14.61507 36.87057,-14.75213 0.5005,-0.19755 0.63135,5.57177 0.63135,27.83657 v 28.08578 h -36.87057 -36.87057 z"
id="path855"
transform="scale(0.26458333)" />
<path
style="fill:#00c200;fill-opacity:1;stroke:none;stroke-width:2.41482;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 305.78741,330.96161 0.007,-28.41054 35.72716,-14.25169 c 19.64993,-7.83844 36.1249,-14.39718 36.61103,-14.57498 0.8374,-0.30629 0.88389,1.93721 0.88389,42.66223 v 42.98553 h -36.61803 -36.61803 z"
id="path857"
transform="scale(0.26458333)" />
<path
style="fill:#00c200;fill-opacity:1;stroke:none;stroke-width:2.41482;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 172.44028,357.656 v -1.71615 l 27.90546,-11.1638 c 15.34801,-6.14009 28.07593,-11.16357 28.28428,-11.16329 0.20834,2.8e-4 0.3788,5.79626 0.3788,12.87995 v 12.87945 h -28.28427 -28.28427 z"
id="path859"
transform="scale(0.26458333)" />
<path
style="fill:#00c200;fill-opacity:1;stroke:none;stroke-width:2.41482;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 157.91653,420.92092 0.12908,-43.50711 2.12837,-0.62841 c 6.33616,-1.87077 11.23819,-7.39536 12.0925,-13.62829 l 0.3111,-2.26973 h 28.21562 28.21562 v 51.77032 51.77032 h -35.61068 -35.61068 z"
id="path861"
transform="scale(0.26458333)" />
<path
style="fill:#00c200;fill-opacity:1;stroke:none;stroke-width:2.41482;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 122.94281,462.2635 c 0,-0.41471 28.82188,-84.40442 29.03854,-84.62108 0.14073,-0.14073 0.25588,18.87389 0.25588,42.25471 v 42.51058 h -14.64721 c -8.05597,0 -14.64721,-0.0649 -14.64721,-0.14421 z"
id="path863"
transform="scale(0.26458333)" />
<path
style="fill:#00c200;fill-opacity:1;stroke:none;stroke-width:2.41482;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 88.220801,563.80178 c 0.129983,-0.34724 7.588256,-22.16654 16.573939,-48.48733 l 16.33761,-47.85597 h 16.56259 16.56259 v 48.48732 48.48732 H 121.121 c -26.298552,0 -33.087763,-0.13028 -32.900199,-0.63134 z"
id="path865"
transform="scale(0.26458333)" />
<path
style="fill:#00c200;fill-opacity:1;stroke:none;stroke-width:2.41482;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 155.77276,515.9458 c 0,-48.1506 0.007,-48.48732 1.01016,-48.48732 0.56119,0 1.01015,-0.33672 1.01015,-0.75762 0,-0.66627 4.29315,-0.75761 35.60788,-0.75761 h 35.60787 v 49.24494 49.24493 h -36.61803 -36.61803 z"
id="path867"
transform="scale(0.26458333)" />
<path
style="fill:#00c200;fill-opacity:1;stroke:none;stroke-width:2.41482;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 230.52405,515.18819 v -49.24494 h 36.87057 36.87057 v 49.24494 49.24493 h -36.87057 -36.87057 z"
id="path869"
transform="scale(0.26458333)" />
<path
style="fill:#00c200;fill-opacity:1;stroke:none;stroke-width:2.41482;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 230.52405,412.6577 v -51.77032 h 36.87057 36.87057 v 51.77032 51.77032 h -36.87057 -36.87057 z"
id="path871"
transform="scale(0.26458333)" />
<path
style="fill:#00c200;fill-opacity:1;stroke:none;stroke-width:2.41482;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 305.78042,412.6577 v -51.77032 h 36.61803 36.61803 v 51.77032 51.77032 h -36.61803 -36.61803 z"
id="path873"
transform="scale(0.26458333)" />
<path
style="fill:#00c200;fill-opacity:1;stroke:none;stroke-width:2.41482;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 305.78042,515.18819 v -49.24494 h 36.61803 36.61803 v 49.24494 49.24493 h -36.61803 -36.61803 z"
id="path875"
transform="scale(0.26458333)" />
<path
style="fill:#e3a8c2;fill-opacity:1;stroke:none;stroke-width:2.41482;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 230.52405,300.52194 c 0,-14.53378 0.13796,-26.78457 0.30658,-27.22398 0.27565,-0.71833 3.99491,-0.79892 36.87057,-0.79892 h 36.56399 l -0.007,12.50063 -0.007,12.50064 -36.86341,14.72334 -36.8634,14.72335 z"
id="path877"
transform="scale(0.26458333)" />
<path
style="fill:#e3a8c2;fill-opacity:1;stroke:none;stroke-width:2.41482;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 305.78042,284.6749 v -12.17586 h 30.13621 c 16.57492,0 30.04152,0.0925 29.92577,0.2056 -0.14941,0.14598 -46.94861,18.96358 -59.43064,23.89662 -0.49452,0.19544 -0.63134,-2.3893 -0.63134,-11.92636 z"
id="path879"
transform="scale(0.26458333)" />
<path
style="fill:#e3a8c2;fill-opacity:1;stroke:none;stroke-width:2.41482;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 169.21286,349.53711 -0.86342,-1.31775 30.33427,-36.40036 30.33426,-36.40036 -0.13084,26.11695 -0.13085,26.11695 -28.28427,11.32649 c -15.55635,6.22956 -28.75934,11.45008 -29.33999,11.60116 -0.76096,0.19798 -1.29681,-0.0933 -1.91916,-1.04308 z"
id="path881"
transform="scale(0.26458333)" />
<path
style="fill:#e3a8c2;fill-opacity:1;stroke:none;stroke-width:2.41482;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 87.623055,507.99085 -0.03559,-40.53237 h 13.889595 c 7.63928,0 13.8896,0.0794 13.8896,0.17637 0,0.23925 -26.001001,76.32247 -26.952702,78.86806 -0.681348,1.82246 -0.758801,-1.949 -0.790903,-38.51206 z"
id="path883"
transform="scale(0.26458333)" />
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="6.614583"
y="111.125"
id="text887"><tspan
sodipodi:role="line"
id="tspan885"
x="6.614583"
y="111.125"
style="stroke-width:0.264583">TPR</tspan></text>
<text
xml:space="preserve"
style="font-size:4.9389px;line-height:1.25;font-family:'PT Astra Serif';-inkscape-font-specification:'PT Astra Serif';stroke-width:0.264583"
x="56.885414"
y="157.42708"
id="text891"><tspan
sodipodi:role="line"
id="tspan889"
x="56.885414"
y="157.42708"
style="stroke-width:0.264583">FPR</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

BIN
pics/04-t-devops-table.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 KiB