From 7335ca7c2372457519394973e0655b89b8afc4f3 Mon Sep 17 00:00:00 2001
From: Dmitry
Date: Sun, 24 May 2026 15:03:28 +0300
Subject: [PATCH] vault backup: 2026-05-24 15:03:28
---
.../embedding_models~20260523-090051.ajson | 0
.../event_logs~20260523-090051.ajson | 0
...tration_CA_и_NGINX_md~20260523-090051.ajson | 0
...nsible_Ansible_-_основы_md~20260523-090051.ajson | 0
...s_Ansible_Ansible_md~20260523-090051.ajson | 0
...ail2Ban_-_Ansible_md~20260523-090051.ajson | 0
...ventory_-_Ansible_md~20260523-090051.ajson | 0
...e_Loops_-_Ansuble_md~20260523-090051.ajson | 0
...Modules_-_Ansible_md~20260523-090051.ajson | 0
...aybooks_-_Ansible_md~20260523-090051.ajson | 0
..._DevOps_DevOps_-_основы_md~20260523-090051.ajson | 0
...Docker_Docker_-_Дополнительные_знания_md~20260523-090051.ajson | 0
...Ops_Docker_Docker_md~20260523-090051.ajson | 0
...ckerfile_-_Docker_md~20260523-090051.ajson | 0
...istaging_-_Docker_md~20260523-090051.ajson | 0
..._Drivers_-_Docker_md~20260523-090051.ajson | 0
..._Drivers_-_Docker_md~20260523-090051.ajson | 0
...r_Volume_-_Docker_md~20260523-090051.ajson | 0
..._Docker_Основы_-_Docker_md~20260523-090051.ajson | 0
..._02_DevOps_IaC_-_основы_md~20260523-090051.ajson | 0
...DevOps_Kubernetes_md~20260523-090051.ajson | 0
...DevOps_ReplicaSet_md~20260523-090051.ajson | 0
..._DevOps_Terraform_md~20260523-090051.ajson | 0
...Ops_Контейнеризация_Apache_Mesos_md~20260523-090051.ajson | 0
...Ops_Контейнеризация_Docker_Swarm_md~20260523-090051.ajson | 0
..._Контейнеризация_HashiCorp_Nomad_md~20260523-090051.ajson | 0
...evOps_Контейнеризация_Kubernetes_md~20260523-090051.ajson | 0
...ibrary_02_DevOps_Контейнеризация_md~20260523-090051.ajson | 0
...Statistics_Временные_ряды_Автокорреляционная_функция_(АКФ)_md~20260523-090051.ajson | 0
..._Statistics_Временные_ряды_ВР_-_основы_md~20260523-090051.ajson | 0
...th_Statistics_Временные_ряды_Временные_ряды_md~20260523-090051.ajson | 0
...tatistics_Временные_ряды_Модели_АРПСС__Методология_Бокса-Дженкинса_md~20260523-090051.ajson | 0
...h_Statistics_Временные_ряды_Моделирование_временных_рядов_md~20260523-090051.ajson | 0
..._Statistics_Временные_ряды_Стационарность_-_ВР_md~20260523-090051.ajson | 0
...h_Statistics_Временные_ряды_Частная_автокорреляционная_функция_md~20260523-090051.ajson | 0
...th_Statistics_Дискриминантный_анализ_Дискриминантный_анализ_md~20260523-090051.ajson | 0
...istics_Дискриминантный_анализ_Условие_отнесения_объекта_к_классу_в_случае_двух_признаков_md~20260523-090051.ajson | 0
..._Math_Statistics_Классификация_md~20260523-090051.ajson | 0
...h_Statistics_Кластерный_анализ_Понятие_однородности_объектов_md~20260523-090051.ajson | 0
..._Statistics_Кластерный_анализ_Постановка_задачи_Кластерного_анализа_md~20260523-090051.ajson | 0
..._Statistics_Кластерный_анализ_Расстояние_между_классами_объектов_md~20260523-090051.ajson | 0
...h_Statistics_Кластерный_анализ_Расстояние_между_объектами_md~20260523-090051.ajson | 0
..._Statistics_Факторный_анализ_ФА_-_вращение_md~20260523-090051.ajson | 0
...tistics_Факторный_анализ_ФА_-_модель,_цель,_сущность_md~20260523-090051.ajson | 0
...th_Statistics_Факторный_анализ_Факторный_анализ_md~20260523-090051.ajson | 0
...tworking_Ethernet_md~20260523-090051.ajson | 0
...orking_LAN_vs_WAN_md~20260523-090051.ajson | 0
...4_Networking_MAC-адрес_md~20260523-090051.ajson | 0
...04_Networking_NAT_md~20260523-090051.ajson | 0
...Stick_RoaS_-_Base_md~20260523-090051.ajson | 0
...Router-on-a-Stick_md~20260523-090051.ajson | 0
...ойка_коммутатора_Cisco_(Router-on-a-Stick)_md~20260523-090051.ajson | 0
..._VLAN_VLAN_-_Base_md~20260523-090051.ajson | 0
...king_VLAN_VLAN_-_диапазоны_md~20260523-090051.ajson | 0
...AN_VLAN_-_история_и_trunk_md~20260523-090051.ajson | 0
...LAN_VLAN_-_настройка_Cisco_md~20260523-090051.ajson | 0
...AN_VLAN_-_полная_настройка_Cisco_md~20260523-090051.ajson | 0
...working_VLAN_VLAN_md~20260523-090051.ajson | 0
...4_Networking_VLSM_md~20260523-090051.ajson | 0
...04_Networking_VPN_md~20260523-090051.ajson | 0
..._04_Networking_Базовая_настройка_коммутатора_md~20260523-090051.ajson | 0
...y_04_Networking_Витая_пара_md~20260523-090051.ajson | 0
...etworking_Иерархическая_модель_Cisco_md~20260523-090051.ajson | 0
...y_04_Networking_Инкапсуляция_данных_md~20260523-090051.ajson | 0
...etworking_Коммутатор_L3_vs_Маршрутизатор_md~20260523-090051.ajson | 0
...4_Networking_Модель_OSI_md~20260523-090051.ajson | 0
...tworking_Пример_настройки_DHCPv6_md~20260523-090051.ajson | 0
...4_Networking_Протоколы_ARP_md~20260523-090051.ajson | 0
...ротоколы_DHCP_DHCP-snooping_md~20260523-090051.ajson | 0
...orking_Протоколы_DHCP_DHCP_md~20260523-090051.ajson | 0
...олы_DHCP_Dynamic_ARP_Inspection_md~20260523-090051.ajson | 0
...ng_Протоколы_DHCP_Механизм_работы_-_DHCP_md~20260523-090051.ajson | 0
...ротоколы_DHCP_Настройка_DHCP_-_Cisco_md~20260523-090051.ajson | 0
...околы_DHCP_Настройка_DHCP_Snooping_и_DAI_md~20260523-090051.ajson | 0
...4_Networking_Протоколы_DNS_md~20260523-090051.ajson | 0
...лы_ICMP_-_Internet_Control_Messag_md~20260523-090051.ajson | 0
...4_Networking_Протоколы_IP-адрес_md~20260523-090051.ajson | 0
..._Networking_Протоколы_IPv6_md~20260523-090051.ajson | 0
...rking_Протоколы_TCP_vs_UDP_md~20260523-090051.ajson | 0
...4_Networking_Режимы_передачи_данных_в_сетях_md~20260523-090051.ajson | 0
...y_04_Networking_Сегментация_сети_md~20260523-090051.ajson | 0
...y_04_Networking_Сетевые_устройства_md~20260523-090051.ajson | 0
..._Networking_Утилита_Ping_md~20260523-090051.ajson | 0
...Networking_Широковещательные_и_коллизионные_домены__Коммутация__md~20260523-090051.ajson | 0
...Networking_Широковещательные_и_коллизионные_домены__Маршрутизация__md~20260523-090051.ajson | 0
...inux_Command_Help_md~20260523-090051.ajson | 0
...inux_Command_Path_md~20260523-090051.ajson | 0
...ronment_Variables_md~20260523-090051.ajson | 0
..._File_Permissions_md~20260523-090051.ajson | 0
...ystem_Linux_Linux_md~20260523-090051.ajson | 0
...m_Linux_Redirects_md~20260523-090051.ajson | 0
..._Linux_Super-user_md~20260523-090051.ajson | 0
...ls_Active_Storage_md~20260523-090051.ajson | 0
...ils_Ruby_On_Rails_md~20260523-090051.ajson | 0
...Rails_Sidekiq_-_основа_работы_md~20260523-090051.ajson | 0
...ary_07_SelfHost_БД_Флешек_md~20260523-090051.ajson | 0
...8_Study_31,_32_-_Налоги_md~20260523-090051.ajson | 0
...08_Study_OSINT_-_Зачет_md~20260523-090051.ajson | 0
...rary_08_Study_МСМП_-_Экзамен_md~20260523-090051.ajson | 0
...ary_08_Study_Налоги_-_Организационные_моменты_md~20260523-090051.ajson | 0
...ary_08_Study_Налоги_-_СР2_md~20260523-090051.ajson | 0
...rary_08_Study_Налоги_-_Экзамен_md~20260523-090051.ajson | 0
...Library_08_Study_Староста_md~20260523-090051.ajson | 0
...тренировок_(FullBody_+_Upper-Lower)_md~20260523-090051.ajson | 0
...brary_90_Other_Сканер_отпечатка_пальцев_md~20260523-090051.ajson | 0
...tration_CA_и_NGINX_md~20260523-090051.ajson | 0
...nsible_Ansible_-_основы_md~20260523-090051.ajson | 0
...ail2Ban_-_Ansible_md~20260523-090051.ajson | 0
...ventory_-_Ansible_md~20260523-090051.ajson | 0
...e_Loops_-_Ansuble_md~20260523-090051.ajson | 0
...Modules_-_Ansible_md~20260523-090051.ajson | 0
...aybooks_-_Ansible_md~20260523-090051.ajson | 0
..._DevOps_DevOps_-_основы_md~20260523-090051.ajson | 0
...Docker_Docker_-_Дополнительные_знания_md~20260523-090051.ajson | 0
...ckerfile_-_Docker_md~20260523-090051.ajson | 0
...istaging_-_Docker_md~20260523-090051.ajson | 0
..._Drivers_-_Docker_md~20260523-090051.ajson | 0
..._Drivers_-_Docker_md~20260523-090051.ajson | 0
...r_Volume_-_Docker_md~20260523-090051.ajson | 0
..._Docker_Основы_-_Docker_md~20260523-090051.ajson | 0
...ary_DevOps_IaC_-_основы_md~20260523-090051.ajson | 0
..._DevOps_Terraform_md~20260523-090051.ajson | 0
...Ops_Контейнеризация_Apache_Mesos_md~20260523-090051.ajson | 0
...Ops_Контейнеризация_Docker_Swarm_md~20260523-090051.ajson | 0
..._Контейнеризация_HashiCorp_Nomad_md~20260523-090051.ajson | 0
...evOps_Контейнеризация_Kubernetes_md~20260523-090051.ajson | 0
...1_Library_DevOps_Контейнеризация_md~20260523-090051.ajson | 0
...Statistics_Временные_ряды_Автокорреляционная_функция_(АКФ)_md~20260523-090051.ajson | 0
..._Statistics_Временные_ряды_ВР_-_основы_md~20260523-090051.ajson | 0
...tatistics_Временные_ряды_Модели_АРПСС__Методология_Бокса-Дженкинса_md~20260523-090051.ajson | 0
...h_Statistics_Временные_ряды_Моделирование_временных_рядов_md~20260523-090051.ajson | 0
..._Statistics_Временные_ряды_Стационарность_-_ВР_md~20260523-090051.ajson | 0
...h_Statistics_Временные_ряды_Частная_автокорреляционная_функция_md~20260523-090051.ajson | 0
...th_Statistics_Дискриминантный_анализ_Дискриминантный_анализ_md~20260523-090051.ajson | 0
...Statistics_Дискриминантный_анализ_Условие_отнесения_объекта_к_кл_md~20260523-090051.ajson | 0
..._Statistics_Факторный_анализ_ФА_-_вращение_md~20260523-090051.ajson | 0
...tistics_Факторный_анализ_ФА_-_модель,_цель,_сущность_md~20260523-090051.ajson | 0
...th_Statistics_Факторный_анализ_Факторный_анализ_md~20260523-090051.ajson | 0
...tworking_Ethernet_md~20260523-090051.ajson | 0
...orking_LAN_vs_WAN_md~20260523-090051.ajson | 0
...y_Networking_MAC-адрес_md~20260523-090051.ajson | 0
...ry_Networking_NAT_md~20260523-090051.ajson | 0
...Router-on-a-Stick_md~20260523-090051.ajson | 0
...ойка_коммутатора_Cisco_(Router-on-a-Stick)_md~20260523-090051.ajson | 0
...king_VLAN_VLAN_-_база_md~20260523-090051.ajson | 0
...king_VLAN_VLAN_-_диапазоны_md~20260523-090051.ajson | 0
...AN_VLAN_-_история_и_trunk_md~20260523-090051.ajson | 0
...LAN_VLAN_-_настройка_Cisco_md~20260523-090051.ajson | 0
...AN_VLAN_-_полная_настройка_Cisco_md~20260523-090051.ajson | 0
...working_VLAN_VLAN_md~20260523-090051.ajson | 0
...y_Networking_VLSM_md~20260523-090051.ajson | 0
...ry_Networking_VPN_md~20260523-090051.ajson | 0
...ary_Networking_Базовая_настройка_коммутатора_md~20260523-090051.ajson | 0
...rary_Networking_Витая_пара_md~20260523-090051.ajson | 0
...etworking_Иерархическая_модель_Cisco_md~20260523-090051.ajson | 0
...rary_Networking_Инкапсуляция_данных_md~20260523-090051.ajson | 0
...etworking_Коммутатор_L3_vs_Маршрутизатор_md~20260523-090051.ajson | 0
...y_Networking_Модель_OSI_md~20260523-090051.ajson | 0
...y_Networking_Протоколы_ARP_md~20260523-090051.ajson | 0
...orking_Протоколы_DHCP_DHCP_md~20260523-090051.ajson | 0
...ng_Протоколы_DHCP_Механизм_работы_-_DHCP_md~20260523-090051.ajson | 0
...ротоколы_DHCP_Настройка_DHCP_-_Cisco_md~20260523-090051.ajson | 0
...y_Networking_Протоколы_DNS_md~20260523-090051.ajson | 0
...лы_ICMP_-_Internet_Control_Messag_md~20260523-090051.ajson | 0
...y_Networking_Протоколы_IP-адрес_md~20260523-090051.ajson | 0
..._Networking_Протоколы_IPv6_md~20260523-090051.ajson | 0
...rking_Протоколы_TCP_vs_UDP_md~20260523-090051.ajson | 0
...y_Networking_Режимы_передачи_данных_в_сетях_md~20260523-090051.ajson | 0
...rary_Networking_Сегментация_сети_md~20260523-090051.ajson | 0
...rary_Networking_Сетевые_устройства_md~20260523-090051.ajson | 0
..._Networking_Утилита_Ping_md~20260523-090051.ajson | 0
...Networking_Широковещательные_и_коллизионные_домены__Коммутация__md~20260523-090051.ajson | 0
...Networking_Широковещательные_и_коллизионные_домены__Маршрутизация__md~20260523-090051.ajson | 0
...inux_Command_Help_md~20260523-090051.ajson | 0
...inux_Command_Path_md~20260523-090051.ajson | 0
...ronment_Variables_md~20260523-090051.ajson | 0
..._File_Permissions_md~20260523-090051.ajson | 0
...stems_Linux_Linux_md~20260523-090051.ajson | 0
...s_Linux_Redirects_md~20260523-090051.ajson | 0
..._Linux_Super-user_md~20260523-090051.ajson | 0
...ls_Active_Storage_md~20260523-090051.ajson | 0
...ils_Ruby_On_Rails_md~20260523-090051.ajson | 0
...Rails_Sidekiq_-_основа_работы_md~20260523-090051.ajson | 0
...ibrary_SelfHost_БД_Флешек_md~20260523-090051.ajson | 0
...y_Study_31,_32_-_Налоги_md~20260523-090051.ajson | 0
...ibrary_Study_Налоги_-_Организационные_моменты_md~20260523-090051.ajson | 0
...ibrary_Study_Налоги_-_СР2_md~20260523-090051.ajson | 0
...Library_Study_Налоги_-_Экзамен_md~20260523-090051.ajson | 0
...01_Library_Study_Староста_md~20260523-090051.ajson | 0
...rojects_Статьи_Guide_-_Статья_md~20260523-090051.ajson | 0
.../03_Projects_Статьи_Дополнение_к_статье_md~20260523-090051.ajson | 0
.../03_Projects_Статьи_Идеи_для_статьи_md~20260523-090051.ajson | 0
...Projects_Статьи_Разработка_алгоритма_автоматического_бэкапа_на_основе_«важности»_данных_md~20260523-090051.ajson | 0
...ournal_04_Journal_md~20260523-090051.ajson | 0
...11_25_-_Wednesday_md~20260523-090051.ajson | 0
..._11_25_-_Thursday_md~20260523-090051.ajson | 0
...07_11_25_-_Friday_md~20260523-090051.ajson | 0
..._11_25_-_Saturday_md~20260523-090051.ajson | 0
...09_11_25_-_Sunday_md~20260523-090051.ajson | 0
...10_11_25_-_Monday_md~20260523-090051.ajson | 0
...1_11_25_-_Tuesday_md~20260523-090051.ajson | 0
...5_11_25_-_Tuesday_md~20260523-090051.ajson | 0
...11_25_-_Wednesday_md~20260523-090051.ajson | 0
..._11_25_-_Thursday_md~20260523-090051.ajson | 0
...28_11_25_-_Friday_md~20260523-090051.ajson | 0
..._11_25_-_Saturday_md~20260523-090051.ajson | 0
...30_11_25_-_Sunday_md~20260523-090051.ajson | 0
...01_12_25_-_Monday_md~20260523-090051.ajson | 0
...2_12_25_-_Tuesday_md~20260523-090051.ajson | 0
...12_25_-_Wednesday_md~20260523-090051.ajson | 0
..._12_25_-_Thursday_md~20260523-090051.ajson | 0
...9_12_25_-_Tuesday_md~20260523-090051.ajson | 0
...12_25_-_Wednesday_md~20260523-090051.ajson | 0
...12_12_25_-_Friday_md~20260523-090051.ajson | 0
..._12_25_-_Saturday_md~20260523-090051.ajson | 0
...14_12_25_-_Sunday_md~20260523-090051.ajson | 0
...15_12_25_-_Monday_md~20260523-090051.ajson | 0
...6_12_25_-_Tuesday_md~20260523-090051.ajson | 0
...12_25_-_Wednesday_md~20260523-090051.ajson | 0
..._12_25_-_Thursday_md~20260523-090051.ajson | 0
...19_12_25_-_Friday_md~20260523-090051.ajson | 0
..._12_25_-_Saturday_md~20260523-090051.ajson | 0
...21_12_25_-_Sunday_md~20260523-090051.ajson | 0
...22_12_25_-_Monday_md~20260523-090051.ajson | 0
...3_12_25_-_Tuesday_md~20260523-090051.ajson | 0
...12_25_-_Wednesday_md~20260523-090051.ajson | 0
..._12_25_-_Thursday_md~20260523-090051.ajson | 0
...26_12_25_-_Friday_md~20260523-090051.ajson | 0
...28_12_25_-_Sunday_md~20260523-090051.ajson | 0
...29_12_25_-_Monday_md~20260523-090051.ajson | 0
...0_12_25_-_Tuesday_md~20260523-090051.ajson | 0
..._01_26_-_Saturday_md~20260523-090051.ajson | 0
.../91_Archive_Поздравления_с_НГ_md~20260523-090051.ajson | 0
..._System_95_System_md~20260523-090051.ajson | 0
...emplate_Base_Note_md~20260523-090051.ajson | 0
...mplate_Daily_Note_md~20260523-090051.ajson | 0
.../.smart-env/smart_env~20260523-090051.json | 0
.../00 Inbox/Untitled~20260523-092546.md | 8 +
.../00 Inbox/Untitled~20260523-112306.md | 607 ++++
.../00 Inbox/Untitled~20260524-145240.md | 0
.../02 Projects/Личные/reader~20260523-092256.md | 0
.../02 Projects/Личные/Финансы/Подписки - календарь~20260523-092256.md | 0
.../01 Admin/CA и NGINX~20260523-090051.md | 0
...inx Proxy Manager под path~20260523-090050.md | 0
.../Ansible/Ansible - основы~20260523-090051.md | 0
.../Fail2Ban - Ansible~20260523-090051.md | 0
.../Inventory - Ansible~20260523-090051.md | 0
.../Loops - Ansuble~20260523-090051.md | 0
.../Modules - Ansible~20260523-090051.md | 0
.../Playbooks - Ansible~20260523-090051.md | 0
.../02 DevOps/DevOps - основы~20260523-090050.md | 0
.../02 DevOps/Gitlab~20260523-090051.md | 0
.../02 DevOps/Git~20260523-090051.md | 0
.../02 DevOps/IaC - основы~20260523-090051.md | 0
.../Control Plane - Плоскость управления~20260523-090050.md | 0
.../Data Plane - Плоскость данных~20260523-090050.md | 0
.../Deployment и ReplicaSet~20260523-090051.md | 0
.../Kubernetes/Kubernetes~20260523-090050.md | 0
.../Kubernetes/PV, PVC~20260523-090051.md | 0
.../Kubernetes/Алгоритм выбора лидера Lease~20260523-090051.md | 0
.../Kubernetes/Алгоритм консенсуса raft~20260523-090051.md | 0
.../Kubernetes/Шаблонизатор Helm~20260523-090050.md | 0
.../02 DevOps/Terraform~20260523-090051.md | 0
.../Контейнеризация/Apache Mesos~20260523-090051.md | 0
.../Контейнеризация/Docker Swarm~20260523-090050.md | 0
.../Контейнеризация/Docker/Docker - Дополнительные знания~20260523-090051.md | 0
.../Docker/Images, Dockerfile - Docker~20260523-090050.md | 0
.../Docker/Multistaging - Docker~20260523-090051.md | 0
.../Docker/Network Drivers - Docker~20260523-090051.md | 0
.../Docker/Storage Drivers - Docker~20260523-090051.md | 0
.../Docker/Volume - Docker~20260523-090051.md | 0
.../Контейнеризация/Docker/Основы - Docker~20260523-090051.md | 0
.../Контейнеризация/HashiCorp Nomad~20260523-090051.md | 0
.../02 DevOps/Основные команды git~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/TS и DS ряды~20260523-090050.md | 0
.../Статистика/Временные ряды/Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Автокорреляционная функция (АКФ)~20260523-090050.md | 0
.../03 Math/Статистика/Временные ряды/Авторегрессия AR~20260523-090050.md | 0
.../03 Math/Статистика/Временные ряды/Белый шум~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/ВР - основы~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Временные ряды~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Лаговый оператор~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Модели АРПСС. Методология Бокса-Дженкинса~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Модели скользящего среднего~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Моделирование временных рядов~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Общая схема методологии Бокса-Дженкинса~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Определение временного ряда, виды и особенности~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Определение порядков АР и СС~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Переход к стационарным разностям~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Порядок интегрированности ряда~20260523-090050.md | 0
.../03 Math/Статистика/Временные ряды/Проверка адекватности и выбор модели~20260523-090050.md | 0
.../03 Math/Статистика/Временные ряды/Процедура Доладо — Дженкинса — Сосвилла — Ривера~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Процесс ARIMA~20260523-090050.md | 0
.../03 Math/Статистика/Временные ряды/Разложение Вольда~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Скользящее среднее MA~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Случайное блуждание~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Смешанные модели (ARMA)~20260523-090050.md | 0
.../03 Math/Статистика/Временные ряды/Стационарность - ВР~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Стационарность. Строгая и слабая стационарность~20260523-090050.md | 0
.../03 Math/Статистика/Временные ряды/Тесты на единичный корень и Дики-Фуллер~20260523-090051.md | 0
.../03 Math/Статистика/Временные ряды/Частная автокорреляционная функция~20260523-090050.md | 0
.../03 Math/Статистика/Дискриминантный анализ/Дискриминантный анализ~20260523-090051.md | 0
.../03 Math/Статистика/Дискриминантный анализ/Параметрический дискриминантный анализ в случае нормального закона распределения классов~20260523-090051.md | 0
.../03 Math/Статистика/Дискриминантный анализ/Построение оптимальной процедуры классификации~20260523-090051.md | 0
.../03 Math/Статистика/Дискриминантный анализ/Принципы дискриминантного анализа~20260523-090051.md | 0
.../03 Math/Статистика/Дискриминантный анализ/Условие отнесения объекта к классу в случае двух признаков~20260523-090051.md | 0
.../03 Math/Статистика/Дискриминантный анализ/Функция потерь~20260523-090051.md | 0
.../03 Math/Статистика/Кластерный анализ/Агломеративные (иерархические) методы~20260523-090051.md | 0
.../03 Math/Статистика/Кластерный анализ/Дивизимные методы~20260523-090051.md | 0
.../03 Math/Статистика/Кластерный анализ/Интерпретация результатов кластеризации~20260523-090051.md | 0
.../Статистика/Кластерный анализ/Итерационная классификация. Метод K-средних (K-means)~20260523-090051.md | 0
.../90 Library/03 Math/Статистика/Кластерный анализ/Классификация~20260523-090051.md | 0
.../03 Math/Статистика/Кластерный анализ/Кластерный анализ~20260523-090050.md | 0
.../03 Math/Статистика/Кластерный анализ/Критерии определения оптимального числа классов~20260523-090051.md | 0
.../03 Math/Статистика/Кластерный анализ/Наивный Байесовский алгоритм~20260523-090050.md | 0
.../03 Math/Статистика/Кластерный анализ/Понятие однородности объектов~20260523-090050.md | 0
.../03 Math/Статистика/Кластерный анализ/Постановка задачи Кластерного анализа~20260523-090050.md | 0
.../03 Math/Статистика/Кластерный анализ/Расстояние между классами объектов~20260523-090051.md | 0
.../03 Math/Статистика/Кластерный анализ/Расстояние между объектами~20260523-090051.md | 0
.../03 Math/Статистика/Кластерный анализ/Функционалы качества разбиения~20260523-090051.md | 0
.../03 Math/Статистика/Факторный анализ/Алгоритм оценки главных компонент~20260523-090051.md | 0
.../03 Math/Статистика/Факторный анализ/Алгоритм оценки главных факторов. Матрица индивидуальных значений ГФ~20260523-090051.md | 0
.../03 Math/Статистика/Факторный анализ/Вращение факторов~20260523-090051.md | 0
.../03 Math/Статистика/Факторный анализ/Матрица индивидуальных значений~20260523-090051.md | 0
.../03 Math/Статистика/Факторный анализ/Матрица нагрузок и её свойства~20260523-090051.md | 0
.../03 Math/Статистика/Факторный анализ/Метод главных факторов. Методы оценки общности~20260523-090050.md | 0
.../03 Math/Статистика/Факторный анализ/Определение первой и последующих компонент~20260523-090051.md | 0
.../03 Math/Статистика/Факторный анализ/Основные числовые характеристики главных компонент~20260523-090051.md | 0
.../03 Math/Статистика/Факторный анализ/Постановка задачи снижения размерности признакового пространства~20260523-090051.md | 0
.../03 Math/Статистика/Факторный анализ/Процедура построения первой и остальных главных компонент~20260523-090050.md | 0
.../03 Math/Статистика/Факторный анализ/Разложение дисперсии в факторном анализе. Разложение характерности в факторном анализе~20260523-090051.md | 0
.../03 Math/Статистика/Факторный анализ/Требования к факторам. Линейная модель факторного анализа~20260523-090051.md | 0
.../03 Math/Статистика/Факторный анализ/ФА - вращение~20260523-090050.md | 0
.../03 Math/Статистика/Факторный анализ/ФА - модель, цель, сущность~20260523-090050.md | 0
.../03 Math/Статистика/Факторный анализ/Факторное отображение. Факторная структура~20260523-090051.md | 0
.../Статистика/Факторный анализ/Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент~20260523-090051.md | 0
.../03 Math/Статистика/Факторный анализ/Факторный анализ~20260523-090051.md | 0
.../03 Math/Статистика/Факторный анализ/Фундаментальная теорема факторного анализа~20260523-090051.md | 0
.../03 Math/Статистика/Факторный анализ/Этапы ФА. Выделение факторов~20260523-090051.md | 0
.../03 Math/Теория нечетких множеств/Доказательство законов Де Моргана~20260523-090051.md | 0
.../03 Math/Теория нечетких множеств/Коэффициенты функций принадлежности~20260523-090051.md | 0
.../03 Math/Теория нечетких множеств/Логические операции над нечеткими множествами~20260523-090051.md | 0
.../03 Math/Теория нечетких множеств/Определение нечеткого множества~20260523-090051.md | 0
.../03 Math/Теория нечетких множеств/Теория нечетких множеств~20260523-090050.md | 0
.../03 Math/Теория нечетких множеств/Функция принадлежности~20260523-090051.md | 0
.../04 Networking/Ethernet~20260523-090051.md | 0
.../LAN vs WAN~20260523-090051.md | 0
.../04 Networking/MAC-адрес~20260523-090050.md | 0
.../04 Networking/NAT~20260523-090051.md | 0
.../Networking - MOC~20260523-090051.md | 0
.../RoaS - Base~20260523-090051.md | 0
.../Router-on-a-Stick~20260523-090051.md | 0
...стройка коммутатора Cisco (Router-on-a-Stick)~20260523-090050.md | 0
.../VLAN/VLAN - Base~20260523-090050.md | 0
.../VLAN/VLAN - диапазоны~20260523-090051.md | 0
.../VLAN/VLAN - история и trunk~20260523-090051.md | 0
.../VLAN/VLAN - настройка Cisco~20260523-090051.md | 0
.../VLAN/VLAN - полная настройка Cisco~20260523-090051.md | 0
.../VLAN/VLAN~20260523-090051.md | 0
.../04 Networking/VLSM~20260523-090051.md | 0
.../04 Networking/VPN~20260523-090050.md | 0
.../04 Networking/Базовая настройка коммутатора~20260523-090051.md | 0
.../04 Networking/Введение в сетевую безопасность~20260523-090051.md | 0
.../04 Networking/Витая пара~20260523-090050.md | 0
.../04 Networking/Иерархическая модель Cisco~20260523-090050.md | 0
.../04 Networking/Инкапсуляция данных~20260523-090051.md | 0
.../04 Networking/Коммутатор L3 vs Маршрутизатор~20260523-090051.md | 0
.../04 Networking/Модель OSI~20260523-090050.md | 0
.../04 Networking/Пример настройки DHCPv6~20260523-090051.md | 0
.../04 Networking/Протоколы/ARP~20260523-090050.md | 0
.../Протоколы/DHCP/DHCP-snooping~20260523-090051.md | 0
.../Протоколы/DHCP/DHCP~20260523-090051.md | 0
.../DHCP/Dynamic ARP Inspection~20260523-090051.md | 0
.../Протоколы/DHCP/Механизм работы - DHCP~20260523-090050.md | 0
.../Протоколы/DHCP/Настройка DHCP - Cisco~20260523-090051.md | 0
.../DHCP/Настройка DHCP Snooping и DAI~20260523-090050.md | 0
.../04 Networking/Протоколы/DNS~20260523-090051.md | 0
.../ICMP - Internet Control Messag~20260523-090051.md | 0
.../04 Networking/Протоколы/IP-адрес~20260523-090051.md | 0
.../04 Networking/Протоколы/IPv6~20260523-090050.md | 0
.../Протоколы/TCP vs UDP~20260523-090051.md | 0
.../04 Networking/Режимы передачи данных в сетях~20260523-090051.md | 0
.../04 Networking/Сегментация сети~20260523-090051.md | 0
.../04 Networking/Сетевые устройства~20260523-090051.md | 0
.../04 Networking/Утилита Ping~20260523-090051.md | 0
.../04 Networking/Широковещательные и коллизионные домены. Коммутация.~20260523-090051.md | 0
.../04 Networking/Широковещательные и коллизионные домены. Маршрутизация.~20260523-090051.md | 0
.../Linux/Command Help~20260523-090050.md | 0
.../Linux/Command Path~20260523-090051.md | 0
.../Environment Variables~20260523-090050.md | 0
.../Linux/File Permissions~20260523-090050.md | 0
.../Linux/Linux~20260523-090051.md | 0
.../Linux/Redirects~20260523-090051.md | 0
.../Linux/Super-user~20260523-090051.md | 0
.../06 Programming/Ruby - массивы~20260523-090050.md | 0
.../Ruby - основы языка~20260523-090051.md | 0
.../Active Storage~20260523-090050.md | 0
...ils credentials edit не открывает редактор~20260523-090051.md | 0
.../Ruby On Rails~20260523-090051.md | 0
.../Sidekiq - основа работы~20260523-090051.md | 0
.../Infrastructure — ada-dev~20260523-090050.md | 0
.../07 HomeLab/Проблемы дистрибутивов~20260523-090051.md | 0
.../90 Library/08 Study/УИР~20260523-090051.md | 0
.../90 Library/09 Sport/L-карнитин~20260523-090050.md | 0
.../90 Library/09 Sport/Креатин~20260523-090051.md | 0
.../10 Finance/Бухгалтерский учет/Бухгалтерский баланс~20260523-090050.md | 0
.../10 Finance/Бухгалтерский учет/Отчет о финансовых результатах~20260523-090050.md | 0
.../10 Finance/Инвестиции/Акции~20260523-090050.md | 0
.../10 Finance/Инвестиции/База инвестора~20260523-090050.md | 0
.../10 Finance/Инвестиции/Дивидендный портфель~20260523-090050.md | 0
.../10 Finance/Инвестиции/Золото в портфеле~20260523-090051.md | 0
.../10 Finance/Инвестиции/Инвестиционные фонды~20260523-090051.md | 0
.../10 Finance/Инвестиции/Инвестиционный портфель~20260523-090050.md | 0
.../10 Finance/Инвестиции/Индексное инвестирование~20260523-090051.md | 0
.../10 Finance/Инвестиции/Инсайдерская торговля и манипулирование рынком~20260523-090050.md | 0
.../10 Finance/Инвестиции/Криптовалюты как инвестиционный актив~20260523-090050.md | 0
.../10 Finance/Инвестиции/Облигации с залоговым обеспечением~20260523-090051.md | 0
.../10 Finance/Инвестиции/Облигации~20260523-090051.md | 0
.../10 Finance/Инвестиции/Оценка акций~20260523-090051.md | 0
.../10 Finance/Инвестиции/Риск-профиль инвестора~20260523-090051.md | 0
.../10 Finance/Инвестиции/Трейдинг~20260523-090050.md | 0
.../10 Finance/Инвестиции/Управление инвестиционным портфелем~20260523-090051.md | 0
.../10 Finance/Налоги/Акцизы~20260523-090051.md | 0
.../10 Finance/Налоги/Государственная пошлина~20260523-090051.md | 0
.../10 Finance/Налоги/Государственный бюджет~20260523-090050.md | 0
.../10 Finance/Налоги/Доходы в целях налога на прибыль~20260523-090050.md | 0
.../10 Finance/Налоги/Законодательная база~20260523-090050.md | 0
.../10 Finance/Налоги/Кривая Лаффера~20260523-090051.md | 0
.../10 Finance/Налоги/Методы признания доходов и расходов~20260523-090051.md | 0
.../10 Finance/Налоги/Налог на добавленную стоимость~20260523-090051.md | 0
.../10 Finance/Налоги/Налог на доходы физических лиц (НДФЛ)~20260523-090051.md | 0
.../10 Finance/Налоги/Налог на имущество ФЛ~20260523-090051.md | 0
.../10 Finance/Налоги/Налог на имущество организаций~20260523-090050.md | 0
.../10 Finance/Налоги/Налог на прибыль~20260523-090050.md | 0
.../10 Finance/Налоги/Налоговая декларация~20260523-090051.md | 0
.../10 Finance/Налоги/Налоговая нагрузка~20260523-090051.md | 0
.../10 Finance/Налоги/Налоговая система (Классификация налогов)~20260523-090051.md | 0
.../10 Finance/Налоги/Налоговые вычеты~20260523-090051.md | 0
.../10 Finance/Налоги/Налоговый контроль (камеральные, выездные проверки)~20260523-090051.md | 0
.../10 Finance/Налоги/Налогообложение в России~20260523-090051.md | 0
.../10 Finance/Налоги/Налогоплательщики и объекты налога на прибыль организаций~20260523-090051.md | 0
.../10 Finance/Налоги/Ответственность (санкции, административная и уголовная)~20260523-090050.md | 0
.../10 Finance/Налоги/Производные финансовые инструменты~20260523-090051.md | 0
.../10 Finance/Налоги/Разница метода по отгрузке и по оплате~20260523-090051.md | 0
.../10 Finance/Налоги/Расходы в целях налога на прибыль~20260523-090051.md | 0
.../10 Finance/Налоги/Специальные налоги организаций~20260523-090051.md | 0
.../10 Finance/Налоги/Специальные налоговые режимы~20260523-090051.md | 0
.../10 Finance/Налоги/Страховые взносы~20260523-090050.md | 0
.../10 Finance/Налоги/Субъекты налоговой системы (права и обязанности)~20260523-090051.md | 0
.../10 Finance/Налоги/Сущность и история налогов~20260523-090051.md | 0
.../10 Finance/Налоги/Таможенные пошлины~20260523-090050.md | 0
.../10 Finance/Налоги/Функции налогов и экономические циклы~20260523-090051.md | 0
.../10 Finance/Экономическая Безопасность/Индикаторы экономической безопасность~20260523-090050.md | 0
.../10 Finance/Экономическая Безопасность/Экономическая безопасность - база~20260523-090051.md | 0
.../Backpropagation для многослойной нейронной сети~20260523-090051.md | 0
.../Backpropagation для однослойного перцептрона~20260523-090051.md | 0
.../Алгоритм обучения сети Кохонена~20260523-090051.md | 0
.../11 Machine Learning/Линейные модели~20260523-090051.md | 0
.../11 Machine Learning/Метрические алгоритмы~20260523-090051.md | 0
.../11 Machine Learning/Нейронная сеть Кохонена~20260523-090051.md | 0
.../11 Machine Learning/Нейронные сети~20260523-090051.md | 0
.../11 Machine Learning/Обратное распространение ошибки~20260523-090050.md | 0
.../Обучение без учителя. Алгоритм Хебба~20260523-090051.md | 0
.../11 Machine Learning/Персептрон~20260523-090050.md | 0
.../Предобработка данных для нейронных сетей~20260523-090050.md | 0
.../11 Machine Learning/Сеть Хопфилда~20260523-090051.md | 0
.../11 Machine Learning/Сеть Хэмминга~20260523-090050.md | 0
.../90 Other/Guide - Статья~20260523-090051.md | 0
.../90 Library/90 Other/Гайд на научников~20260523-090051.md | 0
.../90 Library/90 Other/Сканер отпечатка пальцев~20260523-090051.md | 0
.stversions/AGENTS~20260523-090051.md | 213 ++
00 Inbox/Hello.md | 6 +
00 Inbox/Untitled.md | 0
02 Projects/УИР.md | 47 +
90 Library/Containers/Apache Mesos.md | 46 +
90 Library/Containers/Docker Swarm.md | 59 +
.../Docker/Docker - Дополнительные знания.md | 40 +
.../Docker/Images, Dockerfile - Docker.md | 91 +
.../Docker/Multistaging - Docker.md | 31 +
.../Docker/Network Drivers - Docker.md | 83 +
.../Docker/Storage Drivers - Docker.md | 60 +
.../Containers/Docker/Volume - Docker.md | 62 +
.../Containers/Docker/Основы - Docker.md | 21 +
90 Library/Containers/HashiCorp Nomad.md | 51 +
.../Control Plane - Плоскость управления.md | 120 +
.../Data Plane - Плоскость данных.md | 46 +
.../Kubernetes/Deployment и ReplicaSet.md | 57 +
.../Containers/Kubernetes/Kubernetes.md | 42 +
90 Library/Containers/Kubernetes/PV, PVC.md | 37 +
.../Алгоритм выбора лидера Lease.md | 19 +
.../Kubernetes/Алгоритм консенсуса raft.md | 28 +
.../Kubernetes/Шаблонизатор Helm.md | 92 +
90 Library/DevOps/Ansible/Ansible - основы.md | 46 +
.../DevOps/Ansible/Fail2Ban - Ansible.md | 57 +
.../DevOps/Ansible/Inventory - Ansible.md | 88 +
90 Library/DevOps/Ansible/Loops - Ansuble.md | 75 +
.../DevOps/Ansible/Modules - Ansible.md | 94 +
.../DevOps/Ansible/Playbooks - Ansible.md | 52 +
90 Library/DevOps/DevOps - основы.md | 66 +
90 Library/DevOps/Git.md | 85 +
90 Library/DevOps/Gitlab.md | 54 +
90 Library/DevOps/IaC - основы.md | 52 +
90 Library/DevOps/Terraform.md | 35 +
90 Library/DevOps/Основные команды git.md | 72 +
.../Бухгалтерский баланс.md | 103 +
.../Отчет о финансовых результатах.md | 59 +
90 Library/Finance/Инвестиции/Акции.md | 83 +
.../Finance/Инвестиции/База инвестора.md | 50 +
.../Инвестиции/Дивидендный портфель.md | 56 +
.../Finance/Инвестиции/Золото в портфеле.md | 49 +
.../Инвестиции/Инвестиционные фонды.md | 64 +
.../Инвестиции/Инвестиционный портфель.md | 62 +
.../Инвестиции/Индексное инвестирование.md | 54 +
.../Инсайдерская торговля и манипулирование рынком.md | 43 +
.../Криптовалюты как инвестиционный актив.md | 67 +
.../Облигации с залоговым обеспечением.md | 40 +
90 Library/Finance/Инвестиции/Облигации.md | 94 +
90 Library/Finance/Инвестиции/Оценка акций.md | 70 +
.../Инвестиции/Риск-профиль инвестора.md | 53 +
90 Library/Finance/Инвестиции/Трейдинг.md | 87 +
.../Управление инвестиционным портфелем.md | 84 +
90 Library/Finance/Налоги/Акцизы.md | 49 +
.../Finance/Налоги/Государственная пошлина.md | 22 +
.../Finance/Налоги/Государственный бюджет.md | 56 +
.../Доходы в целях налога на прибыль.md | 34 +
.../Finance/Налоги/Законодательная база.md | 23 +
90 Library/Finance/Налоги/Кривая Лаффера.md | 22 +
.../Методы признания доходов и расходов.md | 32 +
.../Налоги/Налог на добавленную стоимость.md | 28 +
.../Налог на доходы физических лиц (НДФЛ).md | 71 +
.../Finance/Налоги/Налог на имущество ФЛ.md | 47 +
.../Налоги/Налог на имущество организаций.md | 27 +
90 Library/Finance/Налоги/Налог на прибыль.md | 38 +
.../Finance/Налоги/Налоговая декларация.md | 48 +
.../Finance/Налоги/Налоговая нагрузка.md | 23 +
.../Налоговая система (Классификация налогов).md | 63 +
90 Library/Finance/Налоги/Налоговые вычеты.md | 69 +
...оговый контроль (камеральные, выездные проверки).md | 13 +
.../Налоги/Налогообложение в России.md | 62 +
...плательщики и объекты налога на прибыль организаций.md | 30 +
...ственность (санкции, административная и уголовная).md | 48 +
.../Производные финансовые инструменты.md | 22 +
.../Разница метода по отгрузке и по оплате.md | 37 +
.../Расходы в целях налога на прибыль.md | 57 +
.../Налоги/Специальные налоги организаций.md | 90 +
.../Налоги/Специальные налоговые режимы.md | 54 +
90 Library/Finance/Налоги/Страховые взносы.md | 54 +
...бъекты налоговой системы (права и обязанности).md | 25 +
.../Налоги/Сущность и история налогов.md | 26 +
.../Finance/Налоги/Таможенные пошлины.md | 71 +
.../Функции налогов и экономические циклы.md | 31 +
.../Индикаторы экономической безопасность.md | 21 +
.../Экономическая безопасность - база.md | 291 ++
.../HomeLab/Infrastructure — ada-dev.md | 118 +
90 Library/HomeLab/Proxy/CA и NGINX.md | 45 +
.../Proxy/Nginx Proxy Manager под path.md | 58 +
90 Library/HomeLab/Проблемы дистрибутивов.md | 42 +
90 Library/Linux/Command Help.md | 43 +
90 Library/Linux/Command Path.md | 39 +
90 Library/Linux/Environment Variables.md | 35 +
90 Library/Linux/File Permissions.md | 71 +
90 Library/Linux/Linux.md | 23 +
90 Library/Linux/Redirects.md | 39 +
90 Library/Linux/Super-user.md | 27 +
...agation для многослойной нейронной сети.md | 184 +
...ropagation для однослойного перцептрона.md | 242 ++
.../Алгоритм обучения сети Кохонена.md | 101 +
.../Machine Learning/Линейные модели.md | 2973 +++++++++++++++++
.../Machine Learning/Метрические алгоритмы.md | 1695 ++++++++++
.../Нейронная сеть Кохонена.md | 87 +
90 Library/Machine Learning/Нейронные сети.md | 284 ++
.../Обратное распространение ошибки.md | 115 +
.../Обучение без учителя. Алгоритм Хебба.md | 65 +
90 Library/Machine Learning/Персептрон.md | 76 +
...редобработка данных для нейронных сетей.md | 82 +
90 Library/Machine Learning/Сеть Хопфилда.md | 126 +
90 Library/Machine Learning/Сеть Хэмминга.md | 117 +
.../Статистика/Временные ряды/TS и DS ряды.md | 21 +
...окорреляционная (ACF) и частная автокорреляционная (PACF) функции.md | 43 +
.../Временные ряды/Автокорреляционная функция (АКФ).md | 39 +
.../Временные ряды/Авторегрессия AR.md | 60 +
.../Статистика/Временные ряды/Белый шум.md | 34 +
.../Статистика/Временные ряды/ВР - основы.md | 74 +
.../Временные ряды/Временные ряды.md | 42 +
.../Временные ряды/Лаговый оператор.md | 23 +
.../Модели АРПСС. Методология Бокса-Дженкинса.md | 69 +
.../Временные ряды/Модели скользящего среднего.md | 25 +
.../Временные ряды/Моделирование временных рядов.md | 92 +
.../Общая схема методологии Бокса-Дженкинса.md | 24 +
.../Определение временного ряда, виды и особенности.md | 65 +
.../Временные ряды/Определение порядков АР и СС.md | 34 +
.../Временные ряды/Переход к стационарным разностям.md | 26 +
.../Временные ряды/Порядок интегрированности ряда.md | 21 +
.../Проверка адекватности и выбор модели.md | 55 +
.../Процедура Доладо — Дженкинса — Сосвилла — Ривера.md | 47 +
.../Временные ряды/Процесс ARIMA.md | 22 +
.../Временные ряды/Разложение Вольда.md | 31 +
.../Временные ряды/Скользящее среднее MA.md | 47 +
.../Временные ряды/Случайное блуждание.md | 29 +
.../Временные ряды/Смешанные модели (ARMA).md | 29 +
.../Временные ряды/Стационарность - ВР.md | 31 +
.../Стационарность. Строгая и слабая стационарность.md | 25 +
.../Тесты на единичный корень и Дики-Фуллер.md | 121 +
.../Частная автокорреляционная функция.md | 26 +
.../Дискриминантный анализ/Дискриминантный анализ.md | 22 +
...ческий дискриминантный анализ в случае нормального закона распределения классов.md | 25 +
.../Построение оптимальной процедуры классификации.md | 27 +
.../Принципы дискриминантного анализа.md | 39 +
.../Условие отнесения объекта к классу в случае двух признаков.md | 22 +
.../Дискриминантный анализ/Функция потерь.md | 47 +
.../Агломеративные (иерархические) методы.md | 52 +
.../Кластерный анализ/Дивизимные методы.md | 28 +
.../Интерпретация результатов кластеризации.md | 22 +
.../Итерационная классификация. Метод K-средних (K-means).md | 50 +
.../Кластерный анализ/Классификация.md | 47 +
.../Кластерный анализ/Кластерный анализ.md | 34 +
.../Критерии определения оптимального числа классов.md | 21 +
.../Кластерный анализ/Наивный Байесовский алгоритм.md | 20 +
.../Кластерный анализ/Понятие однородности объектов.md | 23 +
.../Постановка задачи Кластерного анализа.md | 34 +
.../Расстояние между классами объектов.md | 35 +
.../Кластерный анализ/Расстояние между объектами.md | 43 +
.../Кластерный анализ/Функционалы качества разбиения.md | 32 +
.../Алгоритм оценки главных компонент.md | 38 +
...горитм оценки главных факторов. Матрица индивидуальных значений ГФ.md | 65 +
.../Факторный анализ/Вращение факторов.md | 59 +
.../Факторный анализ/Матрица индивидуальных значений.md | 21 +
.../Факторный анализ/Матрица нагрузок и её свойства.md | 40 +
.../Метод главных факторов. Методы оценки общности.md | 36 +
.../Определение первой и последующих компонент.md | 24 +
.../Основные числовые характеристики главных компонент.md | 34 +
...Постановка задачи снижения размерности признакового пространства.md | 35 +
.../Процедура построения первой и остальных главных компонент.md | 31 +
...исперсии в факторном анализе. Разложение характерности в факторном анализе.md | 32 +
.../Требования к факторам. Линейная модель факторного анализа.md | 64 +
.../Факторный анализ/ФА - вращение.md | 25 +
.../Факторный анализ/ФА - модель, цель, сущность.md | 59 +
.../Факторное отображение. Факторная структура.md | 29 +
...из. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент.md | 45 +
.../Факторный анализ/Факторный анализ.md | 38 +
.../Фундаментальная теорема факторного анализа.md | 26 +
.../Факторный анализ/Этапы ФА. Выделение факторов.md | 45 +
.../Доказательство законов Де Моргана.md | 35 +
.../Коэффициенты функций принадлежности.md | 15 +
.../Логические операции над нечеткими множествами.md | 43 +
.../Определение нечеткого множества.md | 30 +
.../Теория нечетких множеств.md | 25 +
.../Функция принадлежности.md | 45 +
90 Library/Networking/Ethernet.md | 51 +
90 Library/Networking/LAN vs WAN.md | 23 +
90 Library/Networking/MAC-адрес.md | 16 +
90 Library/Networking/NAT.md | 95 +
90 Library/Networking/Networking - MOC.md | 60 +
.../Router-on-a-Stick/RoaS - Base.md | 34 +
.../Router-on-a-Stick/Router-on-a-Stick.md | 24 +
...ройка коммутатора Cisco (Router-on-a-Stick).md | 68 +
90 Library/Networking/VLAN/VLAN - Base.md | 33 +
.../Networking/VLAN/VLAN - диапазоны.md | 70 +
.../Networking/VLAN/VLAN - история и trunk.md | 27 +
.../Networking/VLAN/VLAN - настройка Cisco.md | 74 +
.../VLAN/VLAN - полная настройка Cisco.md | 390 +++
90 Library/Networking/VLAN/VLAN.md | 22 +
90 Library/Networking/VLSM.md | 66 +
90 Library/Networking/VPN.md | 28 +
.../Базовая настройка коммутатора.md | 88 +
.../Введение в сетевую безопасность.md | 74 +
90 Library/Networking/Витая пара.md | 51 +
.../Networking/Иерархическая модель Cisco.md | 48 +
90 Library/Networking/Инкапсуляция данных.md | 48 +
.../Коммутатор L3 vs Маршрутизатор.md | 33 +
90 Library/Networking/Модель OSI.md | 78 +
.../Networking/Пример настройки DHCPv6.md | 27 +
90 Library/Networking/Протоколы/ARP.md | 78 +
.../Протоколы/DHCP/DHCP-snooping.md | 17 +
90 Library/Networking/Протоколы/DHCP/DHCP.md | 34 +
.../Протоколы/DHCP/Dynamic ARP Inspection.md | 19 +
.../Протоколы/DHCP/Механизм работы - DHCP.md | 33 +
.../Протоколы/DHCP/Настройка DHCP - Cisco.md | 49 +
.../DHCP/Настройка DHCP Snooping и DAI.md | 61 +
90 Library/Networking/Протоколы/DNS.md | 49 +
.../ICMP - Internet Control Messag.md | 27 +
90 Library/Networking/Протоколы/IP-адрес.md | 24 +
90 Library/Networking/Протоколы/IPv6.md | 127 +
90 Library/Networking/Протоколы/TCP vs UDP.md | 42 +
.../Режимы передачи данных в сетях.md | 52 +
90 Library/Networking/Сегментация сети.md | 54 +
90 Library/Networking/Сетевые устройства.md | 29 +
90 Library/Networking/Утилита Ping.md | 23 +
...ещательные и коллизионные домены. Коммутация..md | 31 +
...щательные и коллизионные домены. Маршрутизация..md | 29 +
90 Library/Other/Guide - Статья.md | 25 +
90 Library/Other/Гайд на научников.md | 83 +
90 Library/Other/Сканер отпечатка пальцев.md | 13 +
90 Library/Programming/Ruby - массивы.md | 97 +
90 Library/Programming/Ruby - основы языка.md | 121 +
.../Ruby On Rails/Active Storage.md | 25 +
... credentials edit не открывает редактор.md | 70 +
.../Ruby On Rails/Ruby On Rails.md | 19 +
.../Ruby On Rails/Sidekiq - основа работы.md | 21 +
90 Library/Sport/L-карнитин.md | 104 +
90 Library/Sport/Креатин.md | 97 +
99 System/Archive/reader.md | 15 +
.../Archive/Финансы/Подписки - календарь.md | 24 +
AGENTS.md | 244 +-
INDEX.md | 502 +++
705 files changed, 18360 insertions(+), 154 deletions(-)
rename .smart-env/embedding_models/embedding_models.ajson => .stversions/.smart-env/embedding_models/embedding_models~20260523-090051.ajson (100%)
rename .smart-env/event_logs/event_logs.ajson => .stversions/.smart-env/event_logs/event_logs~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_01_Administration_CA_и_NGINX_md.ajson => .stversions/.smart-env/multi/01_Library_01_Administration_CA_и_NGINX_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Ansible_Ansible_-_основы_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Ansible_-_основы_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Ansible_Ansible_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Ansible_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Ansible_Fail2Ban_-_Ansible_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Fail2Ban_-_Ansible_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Ansible_Inventory_-_Ansible_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Inventory_-_Ansible_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Ansible_Loops_-_Ansuble_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Loops_-_Ansuble_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Ansible_Modules_-_Ansible_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Modules_-_Ansible_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Ansible_Playbooks_-_Ansible_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Playbooks_-_Ansible_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_DevOps_-_основы_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_DevOps_-_основы_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Docker_Docker_-_Дополнительные_знания_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Docker_-_Дополнительные_знания_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Docker_Docker_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Docker_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Docker_Images,_Dockerfile_-_Docker_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Images,_Dockerfile_-_Docker_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Docker_Multistaging_-_Docker_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Multistaging_-_Docker_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Docker_Network_Drivers_-_Docker_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Network_Drivers_-_Docker_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Docker_Storage_Drivers_-_Docker_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Storage_Drivers_-_Docker_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Docker_Volume_-_Docker_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Volume_-_Docker_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Docker_Основы_-_Docker_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Основы_-_Docker_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_IaC_-_основы_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_IaC_-_основы_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Kubernetes_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Kubernetes_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_ReplicaSet_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_ReplicaSet_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Terraform_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Terraform_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Контейнеризация_Apache_Mesos_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_Apache_Mesos_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Контейнеризация_Docker_Swarm_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_Docker_Swarm_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Контейнеризация_HashiCorp_Nomad_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_HashiCorp_Nomad_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Контейнеризация_Kubernetes_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_Kubernetes_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_02_DevOps_Контейнеризация_md.ajson => .stversions/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Автокорреляционная_функция_(АКФ)_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Автокорреляционная_функция_(АКФ)_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_ВР_-_основы_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_ВР_-_основы_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Временные_ряды_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Временные_ряды_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Модели_АРПСС__Методология_Бокса-Дженкинса_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Модели_АРПСС__Методология_Бокса-Дженкинса_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Моделирование_временных_рядов_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Моделирование_временных_рядов_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Стационарность_-_ВР_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Стационарность_-_ВР_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Частная_автокорреляционная_функция_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Частная_автокорреляционная_функция_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Дискриминантный_анализ_Дискриминантный_анализ_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Дискриминантный_анализ_Дискриминантный_анализ_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Дискриминантный_анализ_Условие_отнесения_объекта_к_классу_в_случае_двух_признаков_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Дискриминантный_анализ_Условие_отнесения_объекта_к_классу_в_случае_двух_признаков_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Классификация_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Классификация_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Понятие_однородности_объектов_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Понятие_однородности_объектов_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Постановка_задачи_Кластерного_анализа_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Постановка_задачи_Кластерного_анализа_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Расстояние_между_классами_объектов_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Расстояние_между_классами_объектов_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Расстояние_между_объектами_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Расстояние_между_объектами_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_ФА_-_вращение_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_ФА_-_вращение_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_ФА_-_модель,_цель,_сущность_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_ФА_-_модель,_цель,_сущность_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_Факторный_анализ_md.ajson => .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_Факторный_анализ_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Ethernet_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Ethernet_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_LAN_vs_WAN_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_LAN_vs_WAN_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_MAC-адрес_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_MAC-адрес_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_NAT_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_NAT_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_RoaS_-_Base_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_RoaS_-_Base_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_Router-on-a-Stick_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_Router-on-a-Stick_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_Настройка_коммутатора_Cisco_(Router-on-a-Stick)_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_Настройка_коммутатора_Cisco_(Router-on-a-Stick)_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_Base_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_Base_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_диапазоны_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_диапазоны_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_история_и_trunk_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_история_и_trunk_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_настройка_Cisco_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_настройка_Cisco_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_полная_настройка_Cisco_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_полная_настройка_Cisco_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_VLAN_VLAN_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_VLSM_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_VLSM_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_VPN_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_VPN_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Базовая_настройка_коммутатора_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Базовая_настройка_коммутатора_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Витая_пара_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Витая_пара_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Иерархическая_модель_Cisco_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Иерархическая_модель_Cisco_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Инкапсуляция_данных_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Инкапсуляция_данных_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Коммутатор_L3_vs_Маршрутизатор_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Коммутатор_L3_vs_Маршрутизатор_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Модель_OSI_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Модель_OSI_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Пример_настройки_DHCPv6_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Пример_настройки_DHCPv6_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Протоколы_ARP_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_ARP_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_DHCP-snooping_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_DHCP-snooping_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_DHCP_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_DHCP_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Dynamic_ARP_Inspection_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Dynamic_ARP_Inspection_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Механизм_работы_-_DHCP_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Механизм_работы_-_DHCP_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Настройка_DHCP_-_Cisco_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Настройка_DHCP_-_Cisco_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Настройка_DHCP_Snooping_и_DAI_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Настройка_DHCP_Snooping_и_DAI_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Протоколы_DNS_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DNS_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Протоколы_ICMP_-_Internet_Control_Messag_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_ICMP_-_Internet_Control_Messag_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Протоколы_IP-адрес_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_IP-адрес_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Протоколы_IPv6_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_IPv6_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Протоколы_TCP_vs_UDP_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_TCP_vs_UDP_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Режимы_передачи_данных_в_сетях_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Режимы_передачи_данных_в_сетях_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Сегментация_сети_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Сегментация_сети_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Сетевые_устройства_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Сетевые_устройства_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Утилита_Ping_md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Утилита_Ping_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Широковещательные_и_коллизионные_домены__Коммутация__md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Широковещательные_и_коллизионные_домены__Коммутация__md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_04_Networking_Широковещательные_и_коллизионные_домены__Маршрутизация__md.ajson => .stversions/.smart-env/multi/01_Library_04_Networking_Широковещательные_и_коллизионные_домены__Маршрутизация__md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_05_Operating_System_Linux_Command_Help_md.ajson => .stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Command_Help_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_05_Operating_System_Linux_Command_Path_md.ajson => .stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Command_Path_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_05_Operating_System_Linux_Environment_Variables_md.ajson => .stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Environment_Variables_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_05_Operating_System_Linux_File_Permissions_md.ajson => .stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_File_Permissions_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_05_Operating_System_Linux_Linux_md.ajson => .stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Linux_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_05_Operating_System_Linux_Redirects_md.ajson => .stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Redirects_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_05_Operating_System_Linux_Super-user_md.ajson => .stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Super-user_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Active_Storage_md.ajson => .stversions/.smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Active_Storage_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Ruby_On_Rails_md.ajson => .stversions/.smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Ruby_On_Rails_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Sidekiq_-_основа_работы_md.ajson => .stversions/.smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Sidekiq_-_основа_работы_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_07_SelfHost_БД_Флешек_md.ajson => .stversions/.smart-env/multi/01_Library_07_SelfHost_БД_Флешек_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_08_Study_31,_32_-_Налоги_md.ajson => .stversions/.smart-env/multi/01_Library_08_Study_31,_32_-_Налоги_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_08_Study_OSINT_-_Зачет_md.ajson => .stversions/.smart-env/multi/01_Library_08_Study_OSINT_-_Зачет_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_08_Study_МСМП_-_Экзамен_md.ajson => .stversions/.smart-env/multi/01_Library_08_Study_МСМП_-_Экзамен_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_08_Study_Налоги_-_Организационные_моменты_md.ajson => .stversions/.smart-env/multi/01_Library_08_Study_Налоги_-_Организационные_моменты_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_08_Study_Налоги_-_СР2_md.ajson => .stversions/.smart-env/multi/01_Library_08_Study_Налоги_-_СР2_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_08_Study_Налоги_-_Экзамен_md.ajson => .stversions/.smart-env/multi/01_Library_08_Study_Налоги_-_Экзамен_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_08_Study_Староста_md.ajson => .stversions/.smart-env/multi/01_Library_08_Study_Староста_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_09_Sport_План_тренировок_(FullBody_+_Upper-Lower)_md.ajson => .stversions/.smart-env/multi/01_Library_09_Sport_План_тренировок_(FullBody_+_Upper-Lower)_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_90_Other_Сканер_отпечатка_пальцев_md.ajson => .stversions/.smart-env/multi/01_Library_90_Other_Сканер_отпечатка_пальцев_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Administration_CA_и_NGINX_md.ajson => .stversions/.smart-env/multi/01_Library_Administration_CA_и_NGINX_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Ansible_Ansible_-_основы_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Ansible_Ansible_-_основы_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Ansible_Fail2Ban_-_Ansible_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Ansible_Fail2Ban_-_Ansible_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Ansible_Inventory_-_Ansible_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Ansible_Inventory_-_Ansible_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Ansible_Loops_-_Ansuble_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Ansible_Loops_-_Ansuble_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Ansible_Modules_-_Ansible_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Ansible_Modules_-_Ansible_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Ansible_Playbooks_-_Ansible_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Ansible_Playbooks_-_Ansible_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_DevOps_-_основы_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_DevOps_-_основы_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Docker_Docker_-_Дополнительные_знания_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Docker_Docker_-_Дополнительные_знания_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Docker_Images,_Dockerfile_-_Docker_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Docker_Images,_Dockerfile_-_Docker_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Docker_Multistaging_-_Docker_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Docker_Multistaging_-_Docker_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Docker_Network_Drivers_-_Docker_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Docker_Network_Drivers_-_Docker_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Docker_Storage_Drivers_-_Docker_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Docker_Storage_Drivers_-_Docker_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Docker_Volume_-_Docker_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Docker_Volume_-_Docker_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Docker_Основы_-_Docker_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Docker_Основы_-_Docker_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_IaC_-_основы_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_IaC_-_основы_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Terraform_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Terraform_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Контейнеризация_Apache_Mesos_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Контейнеризация_Apache_Mesos_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Контейнеризация_Docker_Swarm_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Контейнеризация_Docker_Swarm_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Контейнеризация_HashiCorp_Nomad_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Контейнеризация_HashiCorp_Nomad_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Контейнеризация_Kubernetes_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Контейнеризация_Kubernetes_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_DevOps_Контейнеризация_md.ajson => .stversions/.smart-env/multi/01_Library_DevOps_Контейнеризация_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Автокорреляционная_функция_(АКФ)_md.ajson => .stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Автокорреляционная_функция_(АКФ)_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Math_Statistics_Временные_ряды_ВР_-_основы_md.ajson => .stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_ВР_-_основы_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Модели_АРПСС__Методология_Бокса-Дженкинса_md.ajson => .stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Модели_АРПСС__Методология_Бокса-Дженкинса_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Моделирование_временных_рядов_md.ajson => .stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Моделирование_временных_рядов_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Стационарность_-_ВР_md.ajson => .stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Стационарность_-_ВР_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Частная_автокорреляционная_функция_md.ajson => .stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Частная_автокорреляционная_функция_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Math_Statistics_Дискриминантный_анализ_Дискриминантный_анализ_md.ajson => .stversions/.smart-env/multi/01_Library_Math_Statistics_Дискриминантный_анализ_Дискриминантный_анализ_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Math_Statistics_Дискриминантный_анализ_Условие_отнесения_объекта_к_кл_md.ajson => .stversions/.smart-env/multi/01_Library_Math_Statistics_Дискриминантный_анализ_Условие_отнесения_объекта_к_кл_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_ФА_-_вращение_md.ajson => .stversions/.smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_ФА_-_вращение_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_ФА_-_модель,_цель,_сущность_md.ajson => .stversions/.smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_ФА_-_модель,_цель,_сущность_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_Факторный_анализ_md.ajson => .stversions/.smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_Факторный_анализ_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Ethernet_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Ethernet_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_LAN_vs_WAN_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_LAN_vs_WAN_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_MAC-адрес_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_MAC-адрес_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_NAT_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_NAT_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Router-on-a-Stick_Router-on-a-Stick_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Router-on-a-Stick_Router-on-a-Stick_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Router-on-a-Stick_Настройка_коммутатора_Cisco_(Router-on-a-Stick)_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Router-on-a-Stick_Настройка_коммутатора_Cisco_(Router-on-a-Stick)_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_VLAN_VLAN_-_база_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_база_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_VLAN_VLAN_-_диапазоны_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_диапазоны_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_VLAN_VLAN_-_история_и_trunk_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_история_и_trunk_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_VLAN_VLAN_-_настройка_Cisco_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_настройка_Cisco_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_VLAN_VLAN_-_полная_настройка_Cisco_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_полная_настройка_Cisco_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_VLAN_VLAN_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_VLSM_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_VLSM_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_VPN_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_VPN_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Базовая_настройка_коммутатора_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Базовая_настройка_коммутатора_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Витая_пара_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Витая_пара_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Иерархическая_модель_Cisco_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Иерархическая_модель_Cisco_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Инкапсуляция_данных_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Инкапсуляция_данных_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Коммутатор_L3_vs_Маршрутизатор_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Коммутатор_L3_vs_Маршрутизатор_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Модель_OSI_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Модель_OSI_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Протоколы_ARP_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Протоколы_ARP_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Протоколы_DHCP_DHCP_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Протоколы_DHCP_DHCP_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Протоколы_DHCP_Механизм_работы_-_DHCP_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Протоколы_DHCP_Механизм_работы_-_DHCP_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Протоколы_DHCP_Настройка_DHCP_-_Cisco_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Протоколы_DHCP_Настройка_DHCP_-_Cisco_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Протоколы_DNS_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Протоколы_DNS_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Протоколы_ICMP_-_Internet_Control_Messag_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Протоколы_ICMP_-_Internet_Control_Messag_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Протоколы_IP-адрес_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Протоколы_IP-адрес_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Протоколы_IPv6_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Протоколы_IPv6_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Протоколы_TCP_vs_UDP_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Протоколы_TCP_vs_UDP_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Режимы_передачи_данных_в_сетях_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Режимы_передачи_данных_в_сетях_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Сегментация_сети_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Сегментация_сети_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Сетевые_устройства_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Сетевые_устройства_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Утилита_Ping_md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Утилита_Ping_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Широковещательные_и_коллизионные_домены__Коммутация__md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Широковещательные_и_коллизионные_домены__Коммутация__md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Networking_Широковещательные_и_коллизионные_домены__Маршрутизация__md.ajson => .stversions/.smart-env/multi/01_Library_Networking_Широковещательные_и_коллизионные_домены__Маршрутизация__md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Operating_Systems_Linux_Command_Help_md.ajson => .stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Command_Help_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Operating_Systems_Linux_Command_Path_md.ajson => .stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Command_Path_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Operating_Systems_Linux_Environment_Variables_md.ajson => .stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Environment_Variables_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Operating_Systems_Linux_File_Permissions_md.ajson => .stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_File_Permissions_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Operating_Systems_Linux_Linux_md.ajson => .stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Linux_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Operating_Systems_Linux_Redirects_md.ajson => .stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Redirects_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Operating_Systems_Linux_Super-user_md.ajson => .stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Super-user_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Programming_Ruby_On_Rails_Active_Storage_md.ajson => .stversions/.smart-env/multi/01_Library_Programming_Ruby_On_Rails_Active_Storage_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Programming_Ruby_On_Rails_Ruby_On_Rails_md.ajson => .stversions/.smart-env/multi/01_Library_Programming_Ruby_On_Rails_Ruby_On_Rails_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Programming_Ruby_On_Rails_Sidekiq_-_основа_работы_md.ajson => .stversions/.smart-env/multi/01_Library_Programming_Ruby_On_Rails_Sidekiq_-_основа_работы_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_SelfHost_БД_Флешек_md.ajson => .stversions/.smart-env/multi/01_Library_SelfHost_БД_Флешек_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Study_31,_32_-_Налоги_md.ajson => .stversions/.smart-env/multi/01_Library_Study_31,_32_-_Налоги_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Study_Налоги_-_Организационные_моменты_md.ajson => .stversions/.smart-env/multi/01_Library_Study_Налоги_-_Организационные_моменты_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Study_Налоги_-_СР2_md.ajson => .stversions/.smart-env/multi/01_Library_Study_Налоги_-_СР2_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Study_Налоги_-_Экзамен_md.ajson => .stversions/.smart-env/multi/01_Library_Study_Налоги_-_Экзамен_md~20260523-090051.ajson (100%)
rename .smart-env/multi/01_Library_Study_Староста_md.ajson => .stversions/.smart-env/multi/01_Library_Study_Староста_md~20260523-090051.ajson (100%)
rename .smart-env/multi/03_Projects_Статьи_Guide_-_Статья_md.ajson => .stversions/.smart-env/multi/03_Projects_Статьи_Guide_-_Статья_md~20260523-090051.ajson (100%)
rename .smart-env/multi/03_Projects_Статьи_Дополнение_к_статье_md.ajson => .stversions/.smart-env/multi/03_Projects_Статьи_Дополнение_к_статье_md~20260523-090051.ajson (100%)
rename .smart-env/multi/03_Projects_Статьи_Идеи_для_статьи_md.ajson => .stversions/.smart-env/multi/03_Projects_Статьи_Идеи_для_статьи_md~20260523-090051.ajson (100%)
rename .smart-env/multi/03_Projects_Статьи_Разработка_алгоритма_автоматического_бэкапа_на_основе_«важности»_данных_md.ajson => .stversions/.smart-env/multi/03_Projects_Статьи_Разработка_алгоритма_автоматического_бэкапа_на_основе_«важности»_данных_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_04_Journal_md.ajson => .stversions/.smart-env/multi/04_Journal_04_Journal_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_11_-_November_05_11_25_-_Wednesday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_11_-_November_05_11_25_-_Wednesday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_11_-_November_06_11_25_-_Thursday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_11_-_November_06_11_25_-_Thursday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_11_-_November_07_11_25_-_Friday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_11_-_November_07_11_25_-_Friday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_11_-_November_08_11_25_-_Saturday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_11_-_November_08_11_25_-_Saturday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_11_-_November_09_11_25_-_Sunday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_11_-_November_09_11_25_-_Sunday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_11_-_November_10_11_25_-_Monday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_11_-_November_10_11_25_-_Monday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_11_-_November_11_11_25_-_Tuesday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_11_-_November_11_11_25_-_Tuesday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_11_-_November_25_11_25_-_Tuesday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_11_-_November_25_11_25_-_Tuesday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_11_-_November_26_11_25_-_Wednesday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_11_-_November_26_11_25_-_Wednesday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_11_-_November_27_11_25_-_Thursday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_11_-_November_27_11_25_-_Thursday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_11_-_November_28_11_25_-_Friday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_11_-_November_28_11_25_-_Friday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_11_-_November_29_11_25_-_Saturday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_11_-_November_29_11_25_-_Saturday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_11_-_November_30_11_25_-_Sunday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_11_-_November_30_11_25_-_Sunday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_01_12_25_-_Monday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_01_12_25_-_Monday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_02_12_25_-_Tuesday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_02_12_25_-_Tuesday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_03_12_25_-_Wednesday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_03_12_25_-_Wednesday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_04_12_25_-_Thursday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_04_12_25_-_Thursday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_09_12_25_-_Tuesday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_09_12_25_-_Tuesday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_10_12_25_-_Wednesday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_10_12_25_-_Wednesday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_12_12_25_-_Friday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_12_12_25_-_Friday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_13_12_25_-_Saturday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_13_12_25_-_Saturday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_14_12_25_-_Sunday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_14_12_25_-_Sunday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_15_12_25_-_Monday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_15_12_25_-_Monday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_16_12_25_-_Tuesday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_16_12_25_-_Tuesday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_17_12_25_-_Wednesday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_17_12_25_-_Wednesday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_18_12_25_-_Thursday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_18_12_25_-_Thursday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_19_12_25_-_Friday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_19_12_25_-_Friday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_20_12_25_-_Saturday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_20_12_25_-_Saturday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_21_12_25_-_Sunday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_21_12_25_-_Sunday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_22_12_25_-_Monday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_22_12_25_-_Monday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_23_12_25_-_Tuesday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_23_12_25_-_Tuesday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_24_12_25_-_Wednesday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_24_12_25_-_Wednesday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_25_12_25_-_Thursday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_25_12_25_-_Thursday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_26_12_25_-_Friday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_26_12_25_-_Friday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_28_12_25_-_Sunday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_28_12_25_-_Sunday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_29_12_25_-_Monday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_29_12_25_-_Monday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2025_12_-_December_30_12_25_-_Tuesday_md.ajson => .stversions/.smart-env/multi/04_Journal_2025_12_-_December_30_12_25_-_Tuesday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/04_Journal_2026_01_-_January_03_01_26_-_Saturday_md.ajson => .stversions/.smart-env/multi/04_Journal_2026_01_-_January_03_01_26_-_Saturday_md~20260523-090051.ajson (100%)
rename .smart-env/multi/91_Archive_Поздравления_с_НГ_md.ajson => .stversions/.smart-env/multi/91_Archive_Поздравления_с_НГ_md~20260523-090051.ajson (100%)
rename .smart-env/multi/95_System_95_System_md.ajson => .stversions/.smart-env/multi/95_System_95_System_md~20260523-090051.ajson (100%)
rename .smart-env/multi/95_System_Template_Base_Note_md.ajson => .stversions/.smart-env/multi/95_System_Template_Base_Note_md~20260523-090051.ajson (100%)
rename .smart-env/multi/95_System_Template_Daily_Note_md.ajson => .stversions/.smart-env/multi/95_System_Template_Daily_Note_md~20260523-090051.ajson (100%)
rename .smart-env/smart_env.json => .stversions/.smart-env/smart_env~20260523-090051.json (100%)
create mode 100644 .stversions/00 Inbox/Untitled~20260523-092546.md
create mode 100644 .stversions/00 Inbox/Untitled~20260523-112306.md
create mode 100644 .stversions/00 Inbox/Untitled~20260524-145240.md
rename 02 Projects/Личные/reader.md => .stversions/02 Projects/Личные/reader~20260523-092256.md (100%)
rename 02 Projects/Личные/Финансы/Подписки - календарь.md => .stversions/02 Projects/Личные/Финансы/Подписки - календарь~20260523-092256.md (100%)
rename 90 Library/01 Admin/CA и NGINX.md => .stversions/90 Library/01 Admin/CA и NGINX~20260523-090051.md (100%)
rename 90 Library/01 Admin/Nginx Proxy Manager под path.md => .stversions/90 Library/01 Admin/Nginx Proxy Manager под path~20260523-090050.md (100%)
rename 90 Library/02 DevOps/Ansible/Ansible - основы.md => .stversions/90 Library/02 DevOps/Ansible/Ansible - основы~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Ansible/Fail2Ban - Ansible.md => .stversions/90 Library/02 DevOps/Ansible/Fail2Ban - Ansible~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Ansible/Inventory - Ansible.md => .stversions/90 Library/02 DevOps/Ansible/Inventory - Ansible~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Ansible/Loops - Ansuble.md => .stversions/90 Library/02 DevOps/Ansible/Loops - Ansuble~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Ansible/Modules - Ansible.md => .stversions/90 Library/02 DevOps/Ansible/Modules - Ansible~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Ansible/Playbooks - Ansible.md => .stversions/90 Library/02 DevOps/Ansible/Playbooks - Ansible~20260523-090051.md (100%)
rename 90 Library/02 DevOps/DevOps - основы.md => .stversions/90 Library/02 DevOps/DevOps - основы~20260523-090050.md (100%)
rename 90 Library/02 DevOps/Gitlab.md => .stversions/90 Library/02 DevOps/Gitlab~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Git.md => .stversions/90 Library/02 DevOps/Git~20260523-090051.md (100%)
rename 90 Library/02 DevOps/IaC - основы.md => .stversions/90 Library/02 DevOps/IaC - основы~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Kubernetes/Control Plane - Плоскость управления.md => .stversions/90 Library/02 DevOps/Kubernetes/Control Plane - Плоскость управления~20260523-090050.md (100%)
rename 90 Library/02 DevOps/Kubernetes/Data Plane - Плоскость данных.md => .stversions/90 Library/02 DevOps/Kubernetes/Data Plane - Плоскость данных~20260523-090050.md (100%)
rename 90 Library/02 DevOps/Kubernetes/Deployment и ReplicaSet.md => .stversions/90 Library/02 DevOps/Kubernetes/Deployment и ReplicaSet~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Kubernetes/Kubernetes.md => .stversions/90 Library/02 DevOps/Kubernetes/Kubernetes~20260523-090050.md (100%)
rename 90 Library/02 DevOps/Kubernetes/PV, PVC.md => .stversions/90 Library/02 DevOps/Kubernetes/PV, PVC~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Kubernetes/Алгоритм выбора лидера Lease.md => .stversions/90 Library/02 DevOps/Kubernetes/Алгоритм выбора лидера Lease~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Kubernetes/Алгоритм консенсуса raft.md => .stversions/90 Library/02 DevOps/Kubernetes/Алгоритм консенсуса raft~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Kubernetes/Шаблонизатор Helm.md => .stversions/90 Library/02 DevOps/Kubernetes/Шаблонизатор Helm~20260523-090050.md (100%)
rename 90 Library/02 DevOps/Terraform.md => .stversions/90 Library/02 DevOps/Terraform~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Контейнеризация/Apache Mesos.md => .stversions/90 Library/02 DevOps/Контейнеризация/Apache Mesos~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Контейнеризация/Docker Swarm.md => .stversions/90 Library/02 DevOps/Контейнеризация/Docker Swarm~20260523-090050.md (100%)
rename 90 Library/02 DevOps/Контейнеризация/Docker/Docker - Дополнительные знания.md => .stversions/90 Library/02 DevOps/Контейнеризация/Docker/Docker - Дополнительные знания~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Контейнеризация/Docker/Images, Dockerfile - Docker.md => .stversions/90 Library/02 DevOps/Контейнеризация/Docker/Images, Dockerfile - Docker~20260523-090050.md (100%)
rename 90 Library/02 DevOps/Контейнеризация/Docker/Multistaging - Docker.md => .stversions/90 Library/02 DevOps/Контейнеризация/Docker/Multistaging - Docker~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Контейнеризация/Docker/Network Drivers - Docker.md => .stversions/90 Library/02 DevOps/Контейнеризация/Docker/Network Drivers - Docker~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Контейнеризация/Docker/Storage Drivers - Docker.md => .stversions/90 Library/02 DevOps/Контейнеризация/Docker/Storage Drivers - Docker~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Контейнеризация/Docker/Volume - Docker.md => .stversions/90 Library/02 DevOps/Контейнеризация/Docker/Volume - Docker~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Контейнеризация/Docker/Основы - Docker.md => .stversions/90 Library/02 DevOps/Контейнеризация/Docker/Основы - Docker~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Контейнеризация/HashiCorp Nomad.md => .stversions/90 Library/02 DevOps/Контейнеризация/HashiCorp Nomad~20260523-090051.md (100%)
rename 90 Library/02 DevOps/Основные команды git.md => .stversions/90 Library/02 DevOps/Основные команды git~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/TS и DS ряды.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/TS и DS ряды~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Автокорреляционная функция (АКФ).md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Автокорреляционная функция (АКФ)~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Авторегрессия AR.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Авторегрессия AR~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Белый шум.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Белый шум~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/ВР - основы.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/ВР - основы~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Временные ряды.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Временные ряды~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Лаговый оператор.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Лаговый оператор~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Модели АРПСС. Методология Бокса-Дженкинса.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Модели АРПСС. Методология Бокса-Дженкинса~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Модели скользящего среднего.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Модели скользящего среднего~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Моделирование временных рядов.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Моделирование временных рядов~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Общая схема методологии Бокса-Дженкинса.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Общая схема методологии Бокса-Дженкинса~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Определение временного ряда, виды и особенности.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Определение временного ряда, виды и особенности~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Определение порядков АР и СС.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Определение порядков АР и СС~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Переход к стационарным разностям.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Переход к стационарным разностям~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Порядок интегрированности ряда.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Порядок интегрированности ряда~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Проверка адекватности и выбор модели.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Проверка адекватности и выбор модели~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Процедура Доладо — Дженкинса — Сосвилла — Ривера.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Процедура Доладо — Дженкинса — Сосвилла — Ривера~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Процесс ARIMA.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Процесс ARIMA~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Разложение Вольда.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Разложение Вольда~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Скользящее среднее MA.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Скользящее среднее MA~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Случайное блуждание.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Случайное блуждание~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Смешанные модели (ARMA).md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Смешанные модели (ARMA)~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Стационарность - ВР.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Стационарность - ВР~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Стационарность. Строгая и слабая стационарность.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Стационарность. Строгая и слабая стационарность~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Тесты на единичный корень и Дики-Фуллер.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Тесты на единичный корень и Дики-Фуллер~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Временные ряды/Частная автокорреляционная функция.md => .stversions/90 Library/03 Math/Статистика/Временные ряды/Частная автокорреляционная функция~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Дискриминантный анализ/Дискриминантный анализ.md => .stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Дискриминантный анализ~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Дискриминантный анализ/Параметрический дискриминантный анализ в случае нормального закона распределения классов.md => .stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Параметрический дискриминантный анализ в случае нормального закона распределения классов~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Дискриминантный анализ/Построение оптимальной процедуры классификации.md => .stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Построение оптимальной процедуры классификации~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Дискриминантный анализ/Принципы дискриминантного анализа.md => .stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Принципы дискриминантного анализа~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Дискриминантный анализ/Условие отнесения объекта к классу в случае двух признаков.md => .stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Условие отнесения объекта к классу в случае двух признаков~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Дискриминантный анализ/Функция потерь.md => .stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Функция потерь~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Кластерный анализ/Агломеративные (иерархические) методы.md => .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Агломеративные (иерархические) методы~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Кластерный анализ/Дивизимные методы.md => .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Дивизимные методы~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Кластерный анализ/Интерпретация результатов кластеризации.md => .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Интерпретация результатов кластеризации~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Кластерный анализ/Итерационная классификация. Метод K-средних (K-means).md => .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Итерационная классификация. Метод K-средних (K-means)~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Кластерный анализ/Классификация.md => .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Классификация~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Кластерный анализ/Кластерный анализ.md => .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Кластерный анализ~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Кластерный анализ/Критерии определения оптимального числа классов.md => .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Критерии определения оптимального числа классов~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Кластерный анализ/Наивный Байесовский алгоритм.md => .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Наивный Байесовский алгоритм~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Кластерный анализ/Понятие однородности объектов.md => .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Понятие однородности объектов~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Кластерный анализ/Постановка задачи Кластерного анализа.md => .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Постановка задачи Кластерного анализа~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между классами объектов.md => .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между классами объектов~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между объектами.md => .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между объектами~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Кластерный анализ/Функционалы качества разбиения.md => .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Функционалы качества разбиения~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Алгоритм оценки главных компонент.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Алгоритм оценки главных компонент~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Алгоритм оценки главных факторов. Матрица индивидуальных значений ГФ.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Алгоритм оценки главных факторов. Матрица индивидуальных значений ГФ~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Вращение факторов.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Вращение факторов~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Матрица индивидуальных значений.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Матрица индивидуальных значений~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Матрица нагрузок и её свойства.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Матрица нагрузок и её свойства~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Метод главных факторов. Методы оценки общности.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Метод главных факторов. Методы оценки общности~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Определение первой и последующих компонент.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Определение первой и последующих компонент~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Основные числовые характеристики главных компонент.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Основные числовые характеристики главных компонент~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Постановка задачи снижения размерности признакового пространства.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Постановка задачи снижения размерности признакового пространства~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Процедура построения первой и остальных главных компонент.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Процедура построения первой и остальных главных компонент~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Разложение дисперсии в факторном анализе. Разложение характерности в факторном анализе.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Разложение дисперсии в факторном анализе. Разложение характерности в факторном анализе~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Требования к факторам. Линейная модель факторного анализа.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Требования к факторам. Линейная модель факторного анализа~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/ФА - вращение.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/ФА - вращение~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/ФА - модель, цель, сущность.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/ФА - модель, цель, сущность~20260523-090050.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Факторное отображение. Факторная структура.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Факторное отображение. Факторная структура~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Факторный анализ.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Факторный анализ~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Фундаментальная теорема факторного анализа.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Фундаментальная теорема факторного анализа~20260523-090051.md (100%)
rename 90 Library/03 Math/Статистика/Факторный анализ/Этапы ФА. Выделение факторов.md => .stversions/90 Library/03 Math/Статистика/Факторный анализ/Этапы ФА. Выделение факторов~20260523-090051.md (100%)
rename 90 Library/03 Math/Теория нечетких множеств/Доказательство законов Де Моргана.md => .stversions/90 Library/03 Math/Теория нечетких множеств/Доказательство законов Де Моргана~20260523-090051.md (100%)
rename 90 Library/03 Math/Теория нечетких множеств/Коэффициенты функций принадлежности.md => .stversions/90 Library/03 Math/Теория нечетких множеств/Коэффициенты функций принадлежности~20260523-090051.md (100%)
rename 90 Library/03 Math/Теория нечетких множеств/Логические операции над нечеткими множествами.md => .stversions/90 Library/03 Math/Теория нечетких множеств/Логические операции над нечеткими множествами~20260523-090051.md (100%)
rename 90 Library/03 Math/Теория нечетких множеств/Определение нечеткого множества.md => .stversions/90 Library/03 Math/Теория нечетких множеств/Определение нечеткого множества~20260523-090051.md (100%)
rename 90 Library/03 Math/Теория нечетких множеств/Теория нечетких множеств.md => .stversions/90 Library/03 Math/Теория нечетких множеств/Теория нечетких множеств~20260523-090050.md (100%)
rename 90 Library/03 Math/Теория нечетких множеств/Функция принадлежности.md => .stversions/90 Library/03 Math/Теория нечетких множеств/Функция принадлежности~20260523-090051.md (100%)
rename 90 Library/04 Networking/Ethernet.md => .stversions/90 Library/04 Networking/Ethernet~20260523-090051.md (100%)
rename 90 Library/04 Networking/LAN vs WAN.md => .stversions/90 Library/04 Networking/LAN vs WAN~20260523-090051.md (100%)
rename 90 Library/04 Networking/MAC-адрес.md => .stversions/90 Library/04 Networking/MAC-адрес~20260523-090050.md (100%)
rename 90 Library/04 Networking/NAT.md => .stversions/90 Library/04 Networking/NAT~20260523-090051.md (100%)
rename 90 Library/04 Networking/Networking - MOC.md => .stversions/90 Library/04 Networking/Networking - MOC~20260523-090051.md (100%)
rename 90 Library/04 Networking/Router-on-a-Stick/RoaS - Base.md => .stversions/90 Library/04 Networking/Router-on-a-Stick/RoaS - Base~20260523-090051.md (100%)
rename 90 Library/04 Networking/Router-on-a-Stick/Router-on-a-Stick.md => .stversions/90 Library/04 Networking/Router-on-a-Stick/Router-on-a-Stick~20260523-090051.md (100%)
rename 90 Library/04 Networking/Router-on-a-Stick/Настройка коммутатора Cisco (Router-on-a-Stick).md => .stversions/90 Library/04 Networking/Router-on-a-Stick/Настройка коммутатора Cisco (Router-on-a-Stick)~20260523-090050.md (100%)
rename 90 Library/04 Networking/VLAN/VLAN - Base.md => .stversions/90 Library/04 Networking/VLAN/VLAN - Base~20260523-090050.md (100%)
rename 90 Library/04 Networking/VLAN/VLAN - диапазоны.md => .stversions/90 Library/04 Networking/VLAN/VLAN - диапазоны~20260523-090051.md (100%)
rename 90 Library/04 Networking/VLAN/VLAN - история и trunk.md => .stversions/90 Library/04 Networking/VLAN/VLAN - история и trunk~20260523-090051.md (100%)
rename 90 Library/04 Networking/VLAN/VLAN - настройка Cisco.md => .stversions/90 Library/04 Networking/VLAN/VLAN - настройка Cisco~20260523-090051.md (100%)
rename 90 Library/04 Networking/VLAN/VLAN - полная настройка Cisco.md => .stversions/90 Library/04 Networking/VLAN/VLAN - полная настройка Cisco~20260523-090051.md (100%)
rename 90 Library/04 Networking/VLAN/VLAN.md => .stversions/90 Library/04 Networking/VLAN/VLAN~20260523-090051.md (100%)
rename 90 Library/04 Networking/VLSM.md => .stversions/90 Library/04 Networking/VLSM~20260523-090051.md (100%)
rename 90 Library/04 Networking/VPN.md => .stversions/90 Library/04 Networking/VPN~20260523-090050.md (100%)
rename 90 Library/04 Networking/Базовая настройка коммутатора.md => .stversions/90 Library/04 Networking/Базовая настройка коммутатора~20260523-090051.md (100%)
rename 90 Library/04 Networking/Введение в сетевую безопасность.md => .stversions/90 Library/04 Networking/Введение в сетевую безопасность~20260523-090051.md (100%)
rename 90 Library/04 Networking/Витая пара.md => .stversions/90 Library/04 Networking/Витая пара~20260523-090050.md (100%)
rename 90 Library/04 Networking/Иерархическая модель Cisco.md => .stversions/90 Library/04 Networking/Иерархическая модель Cisco~20260523-090050.md (100%)
rename 90 Library/04 Networking/Инкапсуляция данных.md => .stversions/90 Library/04 Networking/Инкапсуляция данных~20260523-090051.md (100%)
rename 90 Library/04 Networking/Коммутатор L3 vs Маршрутизатор.md => .stversions/90 Library/04 Networking/Коммутатор L3 vs Маршрутизатор~20260523-090051.md (100%)
rename 90 Library/04 Networking/Модель OSI.md => .stversions/90 Library/04 Networking/Модель OSI~20260523-090050.md (100%)
rename 90 Library/04 Networking/Пример настройки DHCPv6.md => .stversions/90 Library/04 Networking/Пример настройки DHCPv6~20260523-090051.md (100%)
rename 90 Library/04 Networking/Протоколы/ARP.md => .stversions/90 Library/04 Networking/Протоколы/ARP~20260523-090050.md (100%)
rename 90 Library/04 Networking/Протоколы/DHCP/DHCP-snooping.md => .stversions/90 Library/04 Networking/Протоколы/DHCP/DHCP-snooping~20260523-090051.md (100%)
rename 90 Library/04 Networking/Протоколы/DHCP/DHCP.md => .stversions/90 Library/04 Networking/Протоколы/DHCP/DHCP~20260523-090051.md (100%)
rename 90 Library/04 Networking/Протоколы/DHCP/Dynamic ARP Inspection.md => .stversions/90 Library/04 Networking/Протоколы/DHCP/Dynamic ARP Inspection~20260523-090051.md (100%)
rename 90 Library/04 Networking/Протоколы/DHCP/Механизм работы - DHCP.md => .stversions/90 Library/04 Networking/Протоколы/DHCP/Механизм работы - DHCP~20260523-090050.md (100%)
rename 90 Library/04 Networking/Протоколы/DHCP/Настройка DHCP - Cisco.md => .stversions/90 Library/04 Networking/Протоколы/DHCP/Настройка DHCP - Cisco~20260523-090051.md (100%)
rename 90 Library/04 Networking/Протоколы/DHCP/Настройка DHCP Snooping и DAI.md => .stversions/90 Library/04 Networking/Протоколы/DHCP/Настройка DHCP Snooping и DAI~20260523-090050.md (100%)
rename 90 Library/04 Networking/Протоколы/DNS.md => .stversions/90 Library/04 Networking/Протоколы/DNS~20260523-090051.md (100%)
rename 90 Library/04 Networking/Протоколы/ICMP - Internet Control Messag.md => .stversions/90 Library/04 Networking/Протоколы/ICMP - Internet Control Messag~20260523-090051.md (100%)
rename 90 Library/04 Networking/Протоколы/IP-адрес.md => .stversions/90 Library/04 Networking/Протоколы/IP-адрес~20260523-090051.md (100%)
rename 90 Library/04 Networking/Протоколы/IPv6.md => .stversions/90 Library/04 Networking/Протоколы/IPv6~20260523-090050.md (100%)
rename 90 Library/04 Networking/Протоколы/TCP vs UDP.md => .stversions/90 Library/04 Networking/Протоколы/TCP vs UDP~20260523-090051.md (100%)
rename 90 Library/04 Networking/Режимы передачи данных в сетях.md => .stversions/90 Library/04 Networking/Режимы передачи данных в сетях~20260523-090051.md (100%)
rename 90 Library/04 Networking/Сегментация сети.md => .stversions/90 Library/04 Networking/Сегментация сети~20260523-090051.md (100%)
rename 90 Library/04 Networking/Сетевые устройства.md => .stversions/90 Library/04 Networking/Сетевые устройства~20260523-090051.md (100%)
rename 90 Library/04 Networking/Утилита Ping.md => .stversions/90 Library/04 Networking/Утилита Ping~20260523-090051.md (100%)
rename 90 Library/04 Networking/Широковещательные и коллизионные домены. Коммутация..md => .stversions/90 Library/04 Networking/Широковещательные и коллизионные домены. Коммутация.~20260523-090051.md (100%)
rename 90 Library/04 Networking/Широковещательные и коллизионные домены. Маршрутизация..md => .stversions/90 Library/04 Networking/Широковещательные и коллизионные домены. Маршрутизация.~20260523-090051.md (100%)
rename 90 Library/05 Operating System/Linux/Command Help.md => .stversions/90 Library/05 Operating System/Linux/Command Help~20260523-090050.md (100%)
rename 90 Library/05 Operating System/Linux/Command Path.md => .stversions/90 Library/05 Operating System/Linux/Command Path~20260523-090051.md (100%)
rename 90 Library/05 Operating System/Linux/Environment Variables.md => .stversions/90 Library/05 Operating System/Linux/Environment Variables~20260523-090050.md (100%)
rename 90 Library/05 Operating System/Linux/File Permissions.md => .stversions/90 Library/05 Operating System/Linux/File Permissions~20260523-090050.md (100%)
rename 90 Library/05 Operating System/Linux/Linux.md => .stversions/90 Library/05 Operating System/Linux/Linux~20260523-090051.md (100%)
rename 90 Library/05 Operating System/Linux/Redirects.md => .stversions/90 Library/05 Operating System/Linux/Redirects~20260523-090051.md (100%)
rename 90 Library/05 Operating System/Linux/Super-user.md => .stversions/90 Library/05 Operating System/Linux/Super-user~20260523-090051.md (100%)
rename 90 Library/06 Programming/Ruby - массивы.md => .stversions/90 Library/06 Programming/Ruby - массивы~20260523-090050.md (100%)
rename 90 Library/06 Programming/Ruby - основы языка.md => .stversions/90 Library/06 Programming/Ruby - основы языка~20260523-090051.md (100%)
rename 90 Library/06 Programming/Ruby On Rails/Active Storage.md => .stversions/90 Library/06 Programming/Ruby On Rails/Active Storage~20260523-090050.md (100%)
rename 90 Library/06 Programming/Ruby On Rails/Rails credentials edit не открывает редактор.md => .stversions/90 Library/06 Programming/Ruby On Rails/Rails credentials edit не открывает редактор~20260523-090051.md (100%)
rename 90 Library/06 Programming/Ruby On Rails/Ruby On Rails.md => .stversions/90 Library/06 Programming/Ruby On Rails/Ruby On Rails~20260523-090051.md (100%)
rename 90 Library/06 Programming/Ruby On Rails/Sidekiq - основа работы.md => .stversions/90 Library/06 Programming/Ruby On Rails/Sidekiq - основа работы~20260523-090051.md (100%)
rename 90 Library/07 HomeLab/Infrastructure — ada-dev.md => .stversions/90 Library/07 HomeLab/Infrastructure — ada-dev~20260523-090050.md (100%)
rename 90 Library/07 HomeLab/Проблемы дистрибутивов.md => .stversions/90 Library/07 HomeLab/Проблемы дистрибутивов~20260523-090051.md (100%)
rename 90 Library/08 Study/УИР.md => .stversions/90 Library/08 Study/УИР~20260523-090051.md (100%)
rename 90 Library/09 Sport/L-карнитин.md => .stversions/90 Library/09 Sport/L-карнитин~20260523-090050.md (100%)
rename 90 Library/09 Sport/Креатин.md => .stversions/90 Library/09 Sport/Креатин~20260523-090051.md (100%)
rename 90 Library/10 Finance/Бухгалтерский учет/Бухгалтерский баланс.md => .stversions/90 Library/10 Finance/Бухгалтерский учет/Бухгалтерский баланс~20260523-090050.md (100%)
rename 90 Library/10 Finance/Бухгалтерский учет/Отчет о финансовых результатах.md => .stversions/90 Library/10 Finance/Бухгалтерский учет/Отчет о финансовых результатах~20260523-090050.md (100%)
rename 90 Library/10 Finance/Инвестиции/Акции.md => .stversions/90 Library/10 Finance/Инвестиции/Акции~20260523-090050.md (100%)
rename 90 Library/10 Finance/Инвестиции/База инвестора.md => .stversions/90 Library/10 Finance/Инвестиции/База инвестора~20260523-090050.md (100%)
rename 90 Library/10 Finance/Инвестиции/Дивидендный портфель.md => .stversions/90 Library/10 Finance/Инвестиции/Дивидендный портфель~20260523-090050.md (100%)
rename 90 Library/10 Finance/Инвестиции/Золото в портфеле.md => .stversions/90 Library/10 Finance/Инвестиции/Золото в портфеле~20260523-090051.md (100%)
rename 90 Library/10 Finance/Инвестиции/Инвестиционные фонды.md => .stversions/90 Library/10 Finance/Инвестиции/Инвестиционные фонды~20260523-090051.md (100%)
rename 90 Library/10 Finance/Инвестиции/Инвестиционный портфель.md => .stversions/90 Library/10 Finance/Инвестиции/Инвестиционный портфель~20260523-090050.md (100%)
rename 90 Library/10 Finance/Инвестиции/Индексное инвестирование.md => .stversions/90 Library/10 Finance/Инвестиции/Индексное инвестирование~20260523-090051.md (100%)
rename 90 Library/10 Finance/Инвестиции/Инсайдерская торговля и манипулирование рынком.md => .stversions/90 Library/10 Finance/Инвестиции/Инсайдерская торговля и манипулирование рынком~20260523-090050.md (100%)
rename 90 Library/10 Finance/Инвестиции/Криптовалюты как инвестиционный актив.md => .stversions/90 Library/10 Finance/Инвестиции/Криптовалюты как инвестиционный актив~20260523-090050.md (100%)
rename 90 Library/10 Finance/Инвестиции/Облигации с залоговым обеспечением.md => .stversions/90 Library/10 Finance/Инвестиции/Облигации с залоговым обеспечением~20260523-090051.md (100%)
rename 90 Library/10 Finance/Инвестиции/Облигации.md => .stversions/90 Library/10 Finance/Инвестиции/Облигации~20260523-090051.md (100%)
rename 90 Library/10 Finance/Инвестиции/Оценка акций.md => .stversions/90 Library/10 Finance/Инвестиции/Оценка акций~20260523-090051.md (100%)
rename 90 Library/10 Finance/Инвестиции/Риск-профиль инвестора.md => .stversions/90 Library/10 Finance/Инвестиции/Риск-профиль инвестора~20260523-090051.md (100%)
rename 90 Library/10 Finance/Инвестиции/Трейдинг.md => .stversions/90 Library/10 Finance/Инвестиции/Трейдинг~20260523-090050.md (100%)
rename 90 Library/10 Finance/Инвестиции/Управление инвестиционным портфелем.md => .stversions/90 Library/10 Finance/Инвестиции/Управление инвестиционным портфелем~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Акцизы.md => .stversions/90 Library/10 Finance/Налоги/Акцизы~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Государственная пошлина.md => .stversions/90 Library/10 Finance/Налоги/Государственная пошлина~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Государственный бюджет.md => .stversions/90 Library/10 Finance/Налоги/Государственный бюджет~20260523-090050.md (100%)
rename 90 Library/10 Finance/Налоги/Доходы в целях налога на прибыль.md => .stversions/90 Library/10 Finance/Налоги/Доходы в целях налога на прибыль~20260523-090050.md (100%)
rename 90 Library/10 Finance/Налоги/Законодательная база.md => .stversions/90 Library/10 Finance/Налоги/Законодательная база~20260523-090050.md (100%)
rename 90 Library/10 Finance/Налоги/Кривая Лаффера.md => .stversions/90 Library/10 Finance/Налоги/Кривая Лаффера~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Методы признания доходов и расходов.md => .stversions/90 Library/10 Finance/Налоги/Методы признания доходов и расходов~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Налог на добавленную стоимость.md => .stversions/90 Library/10 Finance/Налоги/Налог на добавленную стоимость~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Налог на доходы физических лиц (НДФЛ).md => .stversions/90 Library/10 Finance/Налоги/Налог на доходы физических лиц (НДФЛ)~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Налог на имущество ФЛ.md => .stversions/90 Library/10 Finance/Налоги/Налог на имущество ФЛ~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Налог на имущество организаций.md => .stversions/90 Library/10 Finance/Налоги/Налог на имущество организаций~20260523-090050.md (100%)
rename 90 Library/10 Finance/Налоги/Налог на прибыль.md => .stversions/90 Library/10 Finance/Налоги/Налог на прибыль~20260523-090050.md (100%)
rename 90 Library/10 Finance/Налоги/Налоговая декларация.md => .stversions/90 Library/10 Finance/Налоги/Налоговая декларация~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Налоговая нагрузка.md => .stversions/90 Library/10 Finance/Налоги/Налоговая нагрузка~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Налоговая система (Классификация налогов).md => .stversions/90 Library/10 Finance/Налоги/Налоговая система (Классификация налогов)~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Налоговые вычеты.md => .stversions/90 Library/10 Finance/Налоги/Налоговые вычеты~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Налоговый контроль (камеральные, выездные проверки).md => .stversions/90 Library/10 Finance/Налоги/Налоговый контроль (камеральные, выездные проверки)~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Налогообложение в России.md => .stversions/90 Library/10 Finance/Налоги/Налогообложение в России~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Налогоплательщики и объекты налога на прибыль организаций.md => .stversions/90 Library/10 Finance/Налоги/Налогоплательщики и объекты налога на прибыль организаций~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Ответственность (санкции, административная и уголовная).md => .stversions/90 Library/10 Finance/Налоги/Ответственность (санкции, административная и уголовная)~20260523-090050.md (100%)
rename 90 Library/10 Finance/Налоги/Производные финансовые инструменты.md => .stversions/90 Library/10 Finance/Налоги/Производные финансовые инструменты~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Разница метода по отгрузке и по оплате.md => .stversions/90 Library/10 Finance/Налоги/Разница метода по отгрузке и по оплате~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Расходы в целях налога на прибыль.md => .stversions/90 Library/10 Finance/Налоги/Расходы в целях налога на прибыль~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Специальные налоги организаций.md => .stversions/90 Library/10 Finance/Налоги/Специальные налоги организаций~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Специальные налоговые режимы.md => .stversions/90 Library/10 Finance/Налоги/Специальные налоговые режимы~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Страховые взносы.md => .stversions/90 Library/10 Finance/Налоги/Страховые взносы~20260523-090050.md (100%)
rename 90 Library/10 Finance/Налоги/Субъекты налоговой системы (права и обязанности).md => .stversions/90 Library/10 Finance/Налоги/Субъекты налоговой системы (права и обязанности)~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Сущность и история налогов.md => .stversions/90 Library/10 Finance/Налоги/Сущность и история налогов~20260523-090051.md (100%)
rename 90 Library/10 Finance/Налоги/Таможенные пошлины.md => .stversions/90 Library/10 Finance/Налоги/Таможенные пошлины~20260523-090050.md (100%)
rename 90 Library/10 Finance/Налоги/Функции налогов и экономические циклы.md => .stversions/90 Library/10 Finance/Налоги/Функции налогов и экономические циклы~20260523-090051.md (100%)
rename 90 Library/10 Finance/Экономическая Безопасность/Индикаторы экономической безопасность.md => .stversions/90 Library/10 Finance/Экономическая Безопасность/Индикаторы экономической безопасность~20260523-090050.md (100%)
rename 90 Library/10 Finance/Экономическая Безопасность/Экономическая безопасность - база.md => .stversions/90 Library/10 Finance/Экономическая Безопасность/Экономическая безопасность - база~20260523-090051.md (100%)
rename 90 Library/11 Machine Learning/Backpropagation для многослойной нейронной сети.md => .stversions/90 Library/11 Machine Learning/Backpropagation для многослойной нейронной сети~20260523-090051.md (100%)
rename 90 Library/11 Machine Learning/Backpropagation для однослойного перцептрона.md => .stversions/90 Library/11 Machine Learning/Backpropagation для однослойного перцептрона~20260523-090051.md (100%)
rename 90 Library/11 Machine Learning/Алгоритм обучения сети Кохонена.md => .stversions/90 Library/11 Machine Learning/Алгоритм обучения сети Кохонена~20260523-090051.md (100%)
rename 90 Library/11 Machine Learning/Линейные модели.md => .stversions/90 Library/11 Machine Learning/Линейные модели~20260523-090051.md (100%)
rename 90 Library/11 Machine Learning/Метрические алгоритмы.md => .stversions/90 Library/11 Machine Learning/Метрические алгоритмы~20260523-090051.md (100%)
rename 90 Library/11 Machine Learning/Нейронная сеть Кохонена.md => .stversions/90 Library/11 Machine Learning/Нейронная сеть Кохонена~20260523-090051.md (100%)
rename 90 Library/11 Machine Learning/Нейронные сети.md => .stversions/90 Library/11 Machine Learning/Нейронные сети~20260523-090051.md (100%)
rename 90 Library/11 Machine Learning/Обратное распространение ошибки.md => .stversions/90 Library/11 Machine Learning/Обратное распространение ошибки~20260523-090050.md (100%)
rename 90 Library/11 Machine Learning/Обучение без учителя. Алгоритм Хебба.md => .stversions/90 Library/11 Machine Learning/Обучение без учителя. Алгоритм Хебба~20260523-090051.md (100%)
rename 90 Library/11 Machine Learning/Персептрон.md => .stversions/90 Library/11 Machine Learning/Персептрон~20260523-090050.md (100%)
rename 90 Library/11 Machine Learning/Предобработка данных для нейронных сетей.md => .stversions/90 Library/11 Machine Learning/Предобработка данных для нейронных сетей~20260523-090050.md (100%)
rename 90 Library/11 Machine Learning/Сеть Хопфилда.md => .stversions/90 Library/11 Machine Learning/Сеть Хопфилда~20260523-090051.md (100%)
rename 90 Library/11 Machine Learning/Сеть Хэмминга.md => .stversions/90 Library/11 Machine Learning/Сеть Хэмминга~20260523-090050.md (100%)
rename 90 Library/90 Other/Guide - Статья.md => .stversions/90 Library/90 Other/Guide - Статья~20260523-090051.md (100%)
rename 90 Library/90 Other/Гайд на научников.md => .stversions/90 Library/90 Other/Гайд на научников~20260523-090051.md (100%)
rename 90 Library/90 Other/Сканер отпечатка пальцев.md => .stversions/90 Library/90 Other/Сканер отпечатка пальцев~20260523-090051.md (100%)
create mode 100644 .stversions/AGENTS~20260523-090051.md
create mode 100644 00 Inbox/Hello.md
create mode 100644 00 Inbox/Untitled.md
create mode 100644 02 Projects/УИР.md
create mode 100644 90 Library/Containers/Apache Mesos.md
create mode 100644 90 Library/Containers/Docker Swarm.md
create mode 100644 90 Library/Containers/Docker/Docker - Дополнительные знания.md
create mode 100644 90 Library/Containers/Docker/Images, Dockerfile - Docker.md
create mode 100644 90 Library/Containers/Docker/Multistaging - Docker.md
create mode 100644 90 Library/Containers/Docker/Network Drivers - Docker.md
create mode 100644 90 Library/Containers/Docker/Storage Drivers - Docker.md
create mode 100644 90 Library/Containers/Docker/Volume - Docker.md
create mode 100644 90 Library/Containers/Docker/Основы - Docker.md
create mode 100644 90 Library/Containers/HashiCorp Nomad.md
create mode 100644 90 Library/Containers/Kubernetes/Control Plane - Плоскость управления.md
create mode 100644 90 Library/Containers/Kubernetes/Data Plane - Плоскость данных.md
create mode 100644 90 Library/Containers/Kubernetes/Deployment и ReplicaSet.md
create mode 100644 90 Library/Containers/Kubernetes/Kubernetes.md
create mode 100644 90 Library/Containers/Kubernetes/PV, PVC.md
create mode 100644 90 Library/Containers/Kubernetes/Алгоритм выбора лидера Lease.md
create mode 100644 90 Library/Containers/Kubernetes/Алгоритм консенсуса raft.md
create mode 100644 90 Library/Containers/Kubernetes/Шаблонизатор Helm.md
create mode 100644 90 Library/DevOps/Ansible/Ansible - основы.md
create mode 100644 90 Library/DevOps/Ansible/Fail2Ban - Ansible.md
create mode 100644 90 Library/DevOps/Ansible/Inventory - Ansible.md
create mode 100644 90 Library/DevOps/Ansible/Loops - Ansuble.md
create mode 100644 90 Library/DevOps/Ansible/Modules - Ansible.md
create mode 100644 90 Library/DevOps/Ansible/Playbooks - Ansible.md
create mode 100644 90 Library/DevOps/DevOps - основы.md
create mode 100644 90 Library/DevOps/Git.md
create mode 100644 90 Library/DevOps/Gitlab.md
create mode 100644 90 Library/DevOps/IaC - основы.md
create mode 100644 90 Library/DevOps/Terraform.md
create mode 100644 90 Library/DevOps/Основные команды git.md
create mode 100644 90 Library/Finance/Бухгалтерский учет/Бухгалтерский баланс.md
create mode 100644 90 Library/Finance/Бухгалтерский учет/Отчет о финансовых результатах.md
create mode 100644 90 Library/Finance/Инвестиции/Акции.md
create mode 100644 90 Library/Finance/Инвестиции/База инвестора.md
create mode 100644 90 Library/Finance/Инвестиции/Дивидендный портфель.md
create mode 100644 90 Library/Finance/Инвестиции/Золото в портфеле.md
create mode 100644 90 Library/Finance/Инвестиции/Инвестиционные фонды.md
create mode 100644 90 Library/Finance/Инвестиции/Инвестиционный портфель.md
create mode 100644 90 Library/Finance/Инвестиции/Индексное инвестирование.md
create mode 100644 90 Library/Finance/Инвестиции/Инсайдерская торговля и манипулирование рынком.md
create mode 100644 90 Library/Finance/Инвестиции/Криптовалюты как инвестиционный актив.md
create mode 100644 90 Library/Finance/Инвестиции/Облигации с залоговым обеспечением.md
create mode 100644 90 Library/Finance/Инвестиции/Облигации.md
create mode 100644 90 Library/Finance/Инвестиции/Оценка акций.md
create mode 100644 90 Library/Finance/Инвестиции/Риск-профиль инвестора.md
create mode 100644 90 Library/Finance/Инвестиции/Трейдинг.md
create mode 100644 90 Library/Finance/Инвестиции/Управление инвестиционным портфелем.md
create mode 100644 90 Library/Finance/Налоги/Акцизы.md
create mode 100644 90 Library/Finance/Налоги/Государственная пошлина.md
create mode 100644 90 Library/Finance/Налоги/Государственный бюджет.md
create mode 100644 90 Library/Finance/Налоги/Доходы в целях налога на прибыль.md
create mode 100644 90 Library/Finance/Налоги/Законодательная база.md
create mode 100644 90 Library/Finance/Налоги/Кривая Лаффера.md
create mode 100644 90 Library/Finance/Налоги/Методы признания доходов и расходов.md
create mode 100644 90 Library/Finance/Налоги/Налог на добавленную стоимость.md
create mode 100644 90 Library/Finance/Налоги/Налог на доходы физических лиц (НДФЛ).md
create mode 100644 90 Library/Finance/Налоги/Налог на имущество ФЛ.md
create mode 100644 90 Library/Finance/Налоги/Налог на имущество организаций.md
create mode 100644 90 Library/Finance/Налоги/Налог на прибыль.md
create mode 100644 90 Library/Finance/Налоги/Налоговая декларация.md
create mode 100644 90 Library/Finance/Налоги/Налоговая нагрузка.md
create mode 100644 90 Library/Finance/Налоги/Налоговая система (Классификация налогов).md
create mode 100644 90 Library/Finance/Налоги/Налоговые вычеты.md
create mode 100644 90 Library/Finance/Налоги/Налоговый контроль (камеральные, выездные проверки).md
create mode 100644 90 Library/Finance/Налоги/Налогообложение в России.md
create mode 100644 90 Library/Finance/Налоги/Налогоплательщики и объекты налога на прибыль организаций.md
create mode 100644 90 Library/Finance/Налоги/Ответственность (санкции, административная и уголовная).md
create mode 100644 90 Library/Finance/Налоги/Производные финансовые инструменты.md
create mode 100644 90 Library/Finance/Налоги/Разница метода по отгрузке и по оплате.md
create mode 100644 90 Library/Finance/Налоги/Расходы в целях налога на прибыль.md
create mode 100644 90 Library/Finance/Налоги/Специальные налоги организаций.md
create mode 100644 90 Library/Finance/Налоги/Специальные налоговые режимы.md
create mode 100644 90 Library/Finance/Налоги/Страховые взносы.md
create mode 100644 90 Library/Finance/Налоги/Субъекты налоговой системы (права и обязанности).md
create mode 100644 90 Library/Finance/Налоги/Сущность и история налогов.md
create mode 100644 90 Library/Finance/Налоги/Таможенные пошлины.md
create mode 100644 90 Library/Finance/Налоги/Функции налогов и экономические циклы.md
create mode 100644 90 Library/Finance/Экономическая Безопасность/Индикаторы экономической безопасность.md
create mode 100644 90 Library/Finance/Экономическая Безопасность/Экономическая безопасность - база.md
create mode 100644 90 Library/HomeLab/Infrastructure — ada-dev.md
create mode 100644 90 Library/HomeLab/Proxy/CA и NGINX.md
create mode 100644 90 Library/HomeLab/Proxy/Nginx Proxy Manager под path.md
create mode 100644 90 Library/HomeLab/Проблемы дистрибутивов.md
create mode 100644 90 Library/Linux/Command Help.md
create mode 100644 90 Library/Linux/Command Path.md
create mode 100644 90 Library/Linux/Environment Variables.md
create mode 100644 90 Library/Linux/File Permissions.md
create mode 100644 90 Library/Linux/Linux.md
create mode 100644 90 Library/Linux/Redirects.md
create mode 100644 90 Library/Linux/Super-user.md
create mode 100644 90 Library/Machine Learning/Backpropagation для многослойной нейронной сети.md
create mode 100644 90 Library/Machine Learning/Backpropagation для однослойного перцептрона.md
create mode 100644 90 Library/Machine Learning/Алгоритм обучения сети Кохонена.md
create mode 100644 90 Library/Machine Learning/Линейные модели.md
create mode 100644 90 Library/Machine Learning/Метрические алгоритмы.md
create mode 100644 90 Library/Machine Learning/Нейронная сеть Кохонена.md
create mode 100644 90 Library/Machine Learning/Нейронные сети.md
create mode 100644 90 Library/Machine Learning/Обратное распространение ошибки.md
create mode 100644 90 Library/Machine Learning/Обучение без учителя. Алгоритм Хебба.md
create mode 100644 90 Library/Machine Learning/Персептрон.md
create mode 100644 90 Library/Machine Learning/Предобработка данных для нейронных сетей.md
create mode 100644 90 Library/Machine Learning/Сеть Хопфилда.md
create mode 100644 90 Library/Machine Learning/Сеть Хэмминга.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/TS и DS ряды.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Автокорреляционная функция (АКФ).md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Авторегрессия AR.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Белый шум.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/ВР - основы.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Временные ряды.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Лаговый оператор.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Модели АРПСС. Методология Бокса-Дженкинса.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Модели скользящего среднего.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Моделирование временных рядов.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Общая схема методологии Бокса-Дженкинса.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Определение временного ряда, виды и особенности.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Определение порядков АР и СС.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Переход к стационарным разностям.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Порядок интегрированности ряда.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Проверка адекватности и выбор модели.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Процедура Доладо — Дженкинса — Сосвилла — Ривера.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Процесс ARIMA.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Разложение Вольда.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Скользящее среднее MA.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Случайное блуждание.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Смешанные модели (ARMA).md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Стационарность - ВР.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Стационарность. Строгая и слабая стационарность.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Тесты на единичный корень и Дики-Фуллер.md
create mode 100644 90 Library/Math/Статистика/Временные ряды/Частная автокорреляционная функция.md
create mode 100644 90 Library/Math/Статистика/Дискриминантный анализ/Дискриминантный анализ.md
create mode 100644 90 Library/Math/Статистика/Дискриминантный анализ/Параметрический дискриминантный анализ в случае нормального закона распределения классов.md
create mode 100644 90 Library/Math/Статистика/Дискриминантный анализ/Построение оптимальной процедуры классификации.md
create mode 100644 90 Library/Math/Статистика/Дискриминантный анализ/Принципы дискриминантного анализа.md
create mode 100644 90 Library/Math/Статистика/Дискриминантный анализ/Условие отнесения объекта к классу в случае двух признаков.md
create mode 100644 90 Library/Math/Статистика/Дискриминантный анализ/Функция потерь.md
create mode 100644 90 Library/Math/Статистика/Кластерный анализ/Агломеративные (иерархические) методы.md
create mode 100644 90 Library/Math/Статистика/Кластерный анализ/Дивизимные методы.md
create mode 100644 90 Library/Math/Статистика/Кластерный анализ/Интерпретация результатов кластеризации.md
create mode 100644 90 Library/Math/Статистика/Кластерный анализ/Итерационная классификация. Метод K-средних (K-means).md
create mode 100644 90 Library/Math/Статистика/Кластерный анализ/Классификация.md
create mode 100644 90 Library/Math/Статистика/Кластерный анализ/Кластерный анализ.md
create mode 100644 90 Library/Math/Статистика/Кластерный анализ/Критерии определения оптимального числа классов.md
create mode 100644 90 Library/Math/Статистика/Кластерный анализ/Наивный Байесовский алгоритм.md
create mode 100644 90 Library/Math/Статистика/Кластерный анализ/Понятие однородности объектов.md
create mode 100644 90 Library/Math/Статистика/Кластерный анализ/Постановка задачи Кластерного анализа.md
create mode 100644 90 Library/Math/Статистика/Кластерный анализ/Расстояние между классами объектов.md
create mode 100644 90 Library/Math/Статистика/Кластерный анализ/Расстояние между объектами.md
create mode 100644 90 Library/Math/Статистика/Кластерный анализ/Функционалы качества разбиения.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Алгоритм оценки главных компонент.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Алгоритм оценки главных факторов. Матрица индивидуальных значений ГФ.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Вращение факторов.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Матрица индивидуальных значений.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Матрица нагрузок и её свойства.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Метод главных факторов. Методы оценки общности.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Определение первой и последующих компонент.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Основные числовые характеристики главных компонент.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Постановка задачи снижения размерности признакового пространства.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Процедура построения первой и остальных главных компонент.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Разложение дисперсии в факторном анализе. Разложение характерности в факторном анализе.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Требования к факторам. Линейная модель факторного анализа.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/ФА - вращение.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/ФА - модель, цель, сущность.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Факторное отображение. Факторная структура.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Факторный анализ.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Фундаментальная теорема факторного анализа.md
create mode 100644 90 Library/Math/Статистика/Факторный анализ/Этапы ФА. Выделение факторов.md
create mode 100644 90 Library/Math/Теория нечетких множеств/Доказательство законов Де Моргана.md
create mode 100644 90 Library/Math/Теория нечетких множеств/Коэффициенты функций принадлежности.md
create mode 100644 90 Library/Math/Теория нечетких множеств/Логические операции над нечеткими множествами.md
create mode 100644 90 Library/Math/Теория нечетких множеств/Определение нечеткого множества.md
create mode 100644 90 Library/Math/Теория нечетких множеств/Теория нечетких множеств.md
create mode 100644 90 Library/Math/Теория нечетких множеств/Функция принадлежности.md
create mode 100644 90 Library/Networking/Ethernet.md
create mode 100644 90 Library/Networking/LAN vs WAN.md
create mode 100644 90 Library/Networking/MAC-адрес.md
create mode 100644 90 Library/Networking/NAT.md
create mode 100644 90 Library/Networking/Networking - MOC.md
create mode 100644 90 Library/Networking/Router-on-a-Stick/RoaS - Base.md
create mode 100644 90 Library/Networking/Router-on-a-Stick/Router-on-a-Stick.md
create mode 100644 90 Library/Networking/Router-on-a-Stick/Настройка коммутатора Cisco (Router-on-a-Stick).md
create mode 100644 90 Library/Networking/VLAN/VLAN - Base.md
create mode 100644 90 Library/Networking/VLAN/VLAN - диапазоны.md
create mode 100644 90 Library/Networking/VLAN/VLAN - история и trunk.md
create mode 100644 90 Library/Networking/VLAN/VLAN - настройка Cisco.md
create mode 100644 90 Library/Networking/VLAN/VLAN - полная настройка Cisco.md
create mode 100644 90 Library/Networking/VLAN/VLAN.md
create mode 100644 90 Library/Networking/VLSM.md
create mode 100644 90 Library/Networking/VPN.md
create mode 100644 90 Library/Networking/Базовая настройка коммутатора.md
create mode 100644 90 Library/Networking/Введение в сетевую безопасность.md
create mode 100644 90 Library/Networking/Витая пара.md
create mode 100644 90 Library/Networking/Иерархическая модель Cisco.md
create mode 100644 90 Library/Networking/Инкапсуляция данных.md
create mode 100644 90 Library/Networking/Коммутатор L3 vs Маршрутизатор.md
create mode 100644 90 Library/Networking/Модель OSI.md
create mode 100644 90 Library/Networking/Пример настройки DHCPv6.md
create mode 100644 90 Library/Networking/Протоколы/ARP.md
create mode 100644 90 Library/Networking/Протоколы/DHCP/DHCP-snooping.md
create mode 100644 90 Library/Networking/Протоколы/DHCP/DHCP.md
create mode 100644 90 Library/Networking/Протоколы/DHCP/Dynamic ARP Inspection.md
create mode 100644 90 Library/Networking/Протоколы/DHCP/Механизм работы - DHCP.md
create mode 100644 90 Library/Networking/Протоколы/DHCP/Настройка DHCP - Cisco.md
create mode 100644 90 Library/Networking/Протоколы/DHCP/Настройка DHCP Snooping и DAI.md
create mode 100644 90 Library/Networking/Протоколы/DNS.md
create mode 100644 90 Library/Networking/Протоколы/ICMP - Internet Control Messag.md
create mode 100644 90 Library/Networking/Протоколы/IP-адрес.md
create mode 100644 90 Library/Networking/Протоколы/IPv6.md
create mode 100644 90 Library/Networking/Протоколы/TCP vs UDP.md
create mode 100644 90 Library/Networking/Режимы передачи данных в сетях.md
create mode 100644 90 Library/Networking/Сегментация сети.md
create mode 100644 90 Library/Networking/Сетевые устройства.md
create mode 100644 90 Library/Networking/Утилита Ping.md
create mode 100644 90 Library/Networking/Широковещательные и коллизионные домены. Коммутация..md
create mode 100644 90 Library/Networking/Широковещательные и коллизионные домены. Маршрутизация..md
create mode 100644 90 Library/Other/Guide - Статья.md
create mode 100644 90 Library/Other/Гайд на научников.md
create mode 100644 90 Library/Other/Сканер отпечатка пальцев.md
create mode 100644 90 Library/Programming/Ruby - массивы.md
create mode 100644 90 Library/Programming/Ruby - основы языка.md
create mode 100644 90 Library/Programming/Ruby On Rails/Active Storage.md
create mode 100644 90 Library/Programming/Ruby On Rails/Rails credentials edit не открывает редактор.md
create mode 100644 90 Library/Programming/Ruby On Rails/Ruby On Rails.md
create mode 100644 90 Library/Programming/Ruby On Rails/Sidekiq - основа работы.md
create mode 100644 90 Library/Sport/L-карнитин.md
create mode 100644 90 Library/Sport/Креатин.md
create mode 100644 99 System/Archive/reader.md
create mode 100644 99 System/Archive/Финансы/Подписки - календарь.md
create mode 100644 INDEX.md
diff --git a/.smart-env/embedding_models/embedding_models.ajson b/.stversions/.smart-env/embedding_models/embedding_models~20260523-090051.ajson
similarity index 100%
rename from .smart-env/embedding_models/embedding_models.ajson
rename to .stversions/.smart-env/embedding_models/embedding_models~20260523-090051.ajson
diff --git a/.smart-env/event_logs/event_logs.ajson b/.stversions/.smart-env/event_logs/event_logs~20260523-090051.ajson
similarity index 100%
rename from .smart-env/event_logs/event_logs.ajson
rename to .stversions/.smart-env/event_logs/event_logs~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_01_Administration_CA_и_NGINX_md.ajson b/.stversions/.smart-env/multi/01_Library_01_Administration_CA_и_NGINX_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_01_Administration_CA_и_NGINX_md.ajson
rename to .stversions/.smart-env/multi/01_Library_01_Administration_CA_и_NGINX_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Ansible_Ansible_-_основы_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Ansible_-_основы_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Ansible_Ansible_-_основы_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Ansible_-_основы_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Ansible_Ansible_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Ansible_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Ansible_Ansible_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Ansible_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Ansible_Fail2Ban_-_Ansible_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Fail2Ban_-_Ansible_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Ansible_Fail2Ban_-_Ansible_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Fail2Ban_-_Ansible_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Ansible_Inventory_-_Ansible_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Inventory_-_Ansible_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Ansible_Inventory_-_Ansible_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Inventory_-_Ansible_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Ansible_Loops_-_Ansuble_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Loops_-_Ansuble_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Ansible_Loops_-_Ansuble_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Loops_-_Ansuble_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Ansible_Modules_-_Ansible_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Modules_-_Ansible_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Ansible_Modules_-_Ansible_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Modules_-_Ansible_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Ansible_Playbooks_-_Ansible_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Playbooks_-_Ansible_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Ansible_Playbooks_-_Ansible_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Ansible_Playbooks_-_Ansible_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_DevOps_-_основы_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_DevOps_-_основы_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_DevOps_-_основы_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_DevOps_-_основы_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Docker_Docker_-_Дополнительные_знания_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Docker_-_Дополнительные_знания_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Docker_Docker_-_Дополнительные_знания_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Docker_-_Дополнительные_знания_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Docker_Docker_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Docker_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Docker_Docker_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Docker_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Docker_Images,_Dockerfile_-_Docker_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Images,_Dockerfile_-_Docker_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Docker_Images,_Dockerfile_-_Docker_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Images,_Dockerfile_-_Docker_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Docker_Multistaging_-_Docker_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Multistaging_-_Docker_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Docker_Multistaging_-_Docker_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Multistaging_-_Docker_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Docker_Network_Drivers_-_Docker_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Network_Drivers_-_Docker_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Docker_Network_Drivers_-_Docker_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Network_Drivers_-_Docker_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Docker_Storage_Drivers_-_Docker_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Storage_Drivers_-_Docker_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Docker_Storage_Drivers_-_Docker_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Storage_Drivers_-_Docker_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Docker_Volume_-_Docker_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Volume_-_Docker_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Docker_Volume_-_Docker_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Volume_-_Docker_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Docker_Основы_-_Docker_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Основы_-_Docker_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Docker_Основы_-_Docker_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Docker_Основы_-_Docker_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_IaC_-_основы_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_IaC_-_основы_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_IaC_-_основы_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_IaC_-_основы_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Kubernetes_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Kubernetes_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Kubernetes_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Kubernetes_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_ReplicaSet_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_ReplicaSet_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_ReplicaSet_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_ReplicaSet_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Terraform_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Terraform_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Terraform_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Terraform_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_Apache_Mesos_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_Apache_Mesos_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Контейнеризация_Apache_Mesos_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_Apache_Mesos_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_Docker_Swarm_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_Docker_Swarm_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Контейнеризация_Docker_Swarm_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_Docker_Swarm_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_HashiCorp_Nomad_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_HashiCorp_Nomad_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Контейнеризация_HashiCorp_Nomad_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_HashiCorp_Nomad_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_Kubernetes_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_Kubernetes_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Контейнеризация_Kubernetes_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_Kubernetes_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_md.ajson b/.stversions/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_02_DevOps_Контейнеризация_md.ajson
rename to .stversions/.smart-env/multi/01_Library_02_DevOps_Контейнеризация_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Автокорреляционная_функция_(АКФ)_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Автокорреляционная_функция_(АКФ)_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Автокорреляционная_функция_(АКФ)_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Автокорреляционная_функция_(АКФ)_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_ВР_-_основы_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_ВР_-_основы_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_ВР_-_основы_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_ВР_-_основы_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Временные_ряды_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Временные_ряды_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Временные_ряды_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Временные_ряды_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Модели_АРПСС__Методология_Бокса-Дженкинса_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Модели_АРПСС__Методология_Бокса-Дженкинса_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Модели_АРПСС__Методология_Бокса-Дженкинса_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Модели_АРПСС__Методология_Бокса-Дженкинса_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Моделирование_временных_рядов_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Моделирование_временных_рядов_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Моделирование_временных_рядов_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Моделирование_временных_рядов_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Стационарность_-_ВР_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Стационарность_-_ВР_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Стационарность_-_ВР_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Стационарность_-_ВР_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Частная_автокорреляционная_функция_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Частная_автокорреляционная_функция_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Частная_автокорреляционная_функция_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Временные_ряды_Частная_автокорреляционная_функция_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Дискриминантный_анализ_Дискриминантный_анализ_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Дискриминантный_анализ_Дискриминантный_анализ_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Дискриминантный_анализ_Дискриминантный_анализ_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Дискриминантный_анализ_Дискриминантный_анализ_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Дискриминантный_анализ_Условие_отнесения_объекта_к_классу_в_случае_двух_признаков_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Дискриминантный_анализ_Условие_отнесения_объекта_к_классу_в_случае_двух_признаков_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Дискриминантный_анализ_Условие_отнесения_объекта_к_классу_в_случае_двух_признаков_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Дискриминантный_анализ_Условие_отнесения_объекта_к_классу_в_случае_двух_признаков_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Классификация_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Классификация_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Классификация_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Классификация_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Понятие_однородности_объектов_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Понятие_однородности_объектов_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Понятие_однородности_объектов_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Понятие_однородности_объектов_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Постановка_задачи_Кластерного_анализа_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Постановка_задачи_Кластерного_анализа_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Постановка_задачи_Кластерного_анализа_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Постановка_задачи_Кластерного_анализа_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Расстояние_между_классами_объектов_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Расстояние_между_классами_объектов_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Расстояние_между_классами_объектов_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Расстояние_между_классами_объектов_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Расстояние_между_объектами_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Расстояние_между_объектами_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Расстояние_между_объектами_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Кластерный_анализ_Расстояние_между_объектами_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_ФА_-_вращение_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_ФА_-_вращение_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_ФА_-_вращение_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_ФА_-_вращение_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_ФА_-_модель,_цель,_сущность_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_ФА_-_модель,_цель,_сущность_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_ФА_-_модель,_цель,_сущность_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_ФА_-_модель,_цель,_сущность_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_Факторный_анализ_md.ajson b/.stversions/.smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_Факторный_анализ_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_Факторный_анализ_md.ajson
rename to .stversions/.smart-env/multi/01_Library_03_Math_Statistics_Факторный_анализ_Факторный_анализ_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Ethernet_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Ethernet_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Ethernet_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Ethernet_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_LAN_vs_WAN_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_LAN_vs_WAN_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_LAN_vs_WAN_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_LAN_vs_WAN_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_MAC-адрес_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_MAC-адрес_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_MAC-адрес_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_MAC-адрес_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_NAT_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_NAT_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_NAT_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_NAT_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_RoaS_-_Base_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_RoaS_-_Base_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_RoaS_-_Base_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_RoaS_-_Base_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_Router-on-a-Stick_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_Router-on-a-Stick_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_Router-on-a-Stick_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_Router-on-a-Stick_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_Настройка_коммутатора_Cisco_(Router-on-a-Stick)_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_Настройка_коммутатора_Cisco_(Router-on-a-Stick)_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_Настройка_коммутатора_Cisco_(Router-on-a-Stick)_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Router-on-a-Stick_Настройка_коммутатора_Cisco_(Router-on-a-Stick)_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_Base_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_Base_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_Base_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_Base_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_диапазоны_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_диапазоны_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_диапазоны_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_диапазоны_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_история_и_trunk_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_история_и_trunk_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_история_и_trunk_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_история_и_trunk_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_настройка_Cisco_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_настройка_Cisco_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_настройка_Cisco_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_настройка_Cisco_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_полная_настройка_Cisco_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_полная_настройка_Cisco_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_полная_настройка_Cisco_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_-_полная_настройка_Cisco_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_VLAN_VLAN_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_VLAN_VLAN_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_VLSM_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_VLSM_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_VLSM_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_VLSM_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_VPN_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_VPN_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_VPN_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_VPN_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Базовая_настройка_коммутатора_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Базовая_настройка_коммутатора_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Базовая_настройка_коммутатора_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Базовая_настройка_коммутатора_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Витая_пара_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Витая_пара_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Витая_пара_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Витая_пара_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Иерархическая_модель_Cisco_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Иерархическая_модель_Cisco_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Иерархическая_модель_Cisco_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Иерархическая_модель_Cisco_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Инкапсуляция_данных_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Инкапсуляция_данных_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Инкапсуляция_данных_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Инкапсуляция_данных_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Коммутатор_L3_vs_Маршрутизатор_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Коммутатор_L3_vs_Маршрутизатор_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Коммутатор_L3_vs_Маршрутизатор_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Коммутатор_L3_vs_Маршрутизатор_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Модель_OSI_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Модель_OSI_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Модель_OSI_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Модель_OSI_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Пример_настройки_DHCPv6_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Пример_настройки_DHCPv6_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Пример_настройки_DHCPv6_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Пример_настройки_DHCPv6_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Протоколы_ARP_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_ARP_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Протоколы_ARP_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_ARP_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_DHCP-snooping_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_DHCP-snooping_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_DHCP-snooping_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_DHCP-snooping_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_DHCP_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_DHCP_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_DHCP_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_DHCP_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Dynamic_ARP_Inspection_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Dynamic_ARP_Inspection_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Dynamic_ARP_Inspection_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Dynamic_ARP_Inspection_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Механизм_работы_-_DHCP_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Механизм_работы_-_DHCP_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Механизм_работы_-_DHCP_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Механизм_работы_-_DHCP_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Настройка_DHCP_-_Cisco_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Настройка_DHCP_-_Cisco_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Настройка_DHCP_-_Cisco_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Настройка_DHCP_-_Cisco_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Настройка_DHCP_Snooping_и_DAI_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Настройка_DHCP_Snooping_и_DAI_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Настройка_DHCP_Snooping_и_DAI_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DHCP_Настройка_DHCP_Snooping_и_DAI_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Протоколы_DNS_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DNS_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Протоколы_DNS_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_DNS_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Протоколы_ICMP_-_Internet_Control_Messag_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_ICMP_-_Internet_Control_Messag_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Протоколы_ICMP_-_Internet_Control_Messag_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_ICMP_-_Internet_Control_Messag_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Протоколы_IP-адрес_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_IP-адрес_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Протоколы_IP-адрес_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_IP-адрес_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Протоколы_IPv6_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_IPv6_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Протоколы_IPv6_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_IPv6_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Протоколы_TCP_vs_UDP_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_TCP_vs_UDP_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Протоколы_TCP_vs_UDP_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Протоколы_TCP_vs_UDP_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Режимы_передачи_данных_в_сетях_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Режимы_передачи_данных_в_сетях_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Режимы_передачи_данных_в_сетях_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Режимы_передачи_данных_в_сетях_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Сегментация_сети_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Сегментация_сети_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Сегментация_сети_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Сегментация_сети_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Сетевые_устройства_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Сетевые_устройства_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Сетевые_устройства_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Сетевые_устройства_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Утилита_Ping_md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Утилита_Ping_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Утилита_Ping_md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Утилита_Ping_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Широковещательные_и_коллизионные_домены__Коммутация__md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Широковещательные_и_коллизионные_домены__Коммутация__md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Широковещательные_и_коллизионные_домены__Коммутация__md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Широковещательные_и_коллизионные_домены__Коммутация__md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_04_Networking_Широковещательные_и_коллизионные_домены__Маршрутизация__md.ajson b/.stversions/.smart-env/multi/01_Library_04_Networking_Широковещательные_и_коллизионные_домены__Маршрутизация__md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_04_Networking_Широковещательные_и_коллизионные_домены__Маршрутизация__md.ajson
rename to .stversions/.smart-env/multi/01_Library_04_Networking_Широковещательные_и_коллизионные_домены__Маршрутизация__md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_05_Operating_System_Linux_Command_Help_md.ajson b/.stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Command_Help_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_05_Operating_System_Linux_Command_Help_md.ajson
rename to .stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Command_Help_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_05_Operating_System_Linux_Command_Path_md.ajson b/.stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Command_Path_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_05_Operating_System_Linux_Command_Path_md.ajson
rename to .stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Command_Path_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_05_Operating_System_Linux_Environment_Variables_md.ajson b/.stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Environment_Variables_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_05_Operating_System_Linux_Environment_Variables_md.ajson
rename to .stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Environment_Variables_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_05_Operating_System_Linux_File_Permissions_md.ajson b/.stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_File_Permissions_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_05_Operating_System_Linux_File_Permissions_md.ajson
rename to .stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_File_Permissions_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_05_Operating_System_Linux_Linux_md.ajson b/.stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Linux_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_05_Operating_System_Linux_Linux_md.ajson
rename to .stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Linux_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_05_Operating_System_Linux_Redirects_md.ajson b/.stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Redirects_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_05_Operating_System_Linux_Redirects_md.ajson
rename to .stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Redirects_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_05_Operating_System_Linux_Super-user_md.ajson b/.stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Super-user_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_05_Operating_System_Linux_Super-user_md.ajson
rename to .stversions/.smart-env/multi/01_Library_05_Operating_System_Linux_Super-user_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Active_Storage_md.ajson b/.stversions/.smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Active_Storage_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Active_Storage_md.ajson
rename to .stversions/.smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Active_Storage_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Ruby_On_Rails_md.ajson b/.stversions/.smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Ruby_On_Rails_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Ruby_On_Rails_md.ajson
rename to .stversions/.smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Ruby_On_Rails_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Sidekiq_-_основа_работы_md.ajson b/.stversions/.smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Sidekiq_-_основа_работы_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Sidekiq_-_основа_работы_md.ajson
rename to .stversions/.smart-env/multi/01_Library_06_Programming_Ruby_On_Rails_Sidekiq_-_основа_работы_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_07_SelfHost_БД_Флешек_md.ajson b/.stversions/.smart-env/multi/01_Library_07_SelfHost_БД_Флешек_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_07_SelfHost_БД_Флешек_md.ajson
rename to .stversions/.smart-env/multi/01_Library_07_SelfHost_БД_Флешек_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_08_Study_31,_32_-_Налоги_md.ajson b/.stversions/.smart-env/multi/01_Library_08_Study_31,_32_-_Налоги_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_08_Study_31,_32_-_Налоги_md.ajson
rename to .stversions/.smart-env/multi/01_Library_08_Study_31,_32_-_Налоги_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_08_Study_OSINT_-_Зачет_md.ajson b/.stversions/.smart-env/multi/01_Library_08_Study_OSINT_-_Зачет_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_08_Study_OSINT_-_Зачет_md.ajson
rename to .stversions/.smart-env/multi/01_Library_08_Study_OSINT_-_Зачет_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_08_Study_МСМП_-_Экзамен_md.ajson b/.stversions/.smart-env/multi/01_Library_08_Study_МСМП_-_Экзамен_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_08_Study_МСМП_-_Экзамен_md.ajson
rename to .stversions/.smart-env/multi/01_Library_08_Study_МСМП_-_Экзамен_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_08_Study_Налоги_-_Организационные_моменты_md.ajson b/.stversions/.smart-env/multi/01_Library_08_Study_Налоги_-_Организационные_моменты_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_08_Study_Налоги_-_Организационные_моменты_md.ajson
rename to .stversions/.smart-env/multi/01_Library_08_Study_Налоги_-_Организационные_моменты_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_08_Study_Налоги_-_СР2_md.ajson b/.stversions/.smart-env/multi/01_Library_08_Study_Налоги_-_СР2_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_08_Study_Налоги_-_СР2_md.ajson
rename to .stversions/.smart-env/multi/01_Library_08_Study_Налоги_-_СР2_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_08_Study_Налоги_-_Экзамен_md.ajson b/.stversions/.smart-env/multi/01_Library_08_Study_Налоги_-_Экзамен_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_08_Study_Налоги_-_Экзамен_md.ajson
rename to .stversions/.smart-env/multi/01_Library_08_Study_Налоги_-_Экзамен_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_08_Study_Староста_md.ajson b/.stversions/.smart-env/multi/01_Library_08_Study_Староста_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_08_Study_Староста_md.ajson
rename to .stversions/.smart-env/multi/01_Library_08_Study_Староста_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_09_Sport_План_тренировок_(FullBody_+_Upper-Lower)_md.ajson b/.stversions/.smart-env/multi/01_Library_09_Sport_План_тренировок_(FullBody_+_Upper-Lower)_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_09_Sport_План_тренировок_(FullBody_+_Upper-Lower)_md.ajson
rename to .stversions/.smart-env/multi/01_Library_09_Sport_План_тренировок_(FullBody_+_Upper-Lower)_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_90_Other_Сканер_отпечатка_пальцев_md.ajson b/.stversions/.smart-env/multi/01_Library_90_Other_Сканер_отпечатка_пальцев_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_90_Other_Сканер_отпечатка_пальцев_md.ajson
rename to .stversions/.smart-env/multi/01_Library_90_Other_Сканер_отпечатка_пальцев_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Administration_CA_и_NGINX_md.ajson b/.stversions/.smart-env/multi/01_Library_Administration_CA_и_NGINX_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Administration_CA_и_NGINX_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Administration_CA_и_NGINX_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Ansible_Ansible_-_основы_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Ansible_Ansible_-_основы_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Ansible_Ansible_-_основы_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Ansible_Ansible_-_основы_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Ansible_Fail2Ban_-_Ansible_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Ansible_Fail2Ban_-_Ansible_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Ansible_Fail2Ban_-_Ansible_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Ansible_Fail2Ban_-_Ansible_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Ansible_Inventory_-_Ansible_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Ansible_Inventory_-_Ansible_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Ansible_Inventory_-_Ansible_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Ansible_Inventory_-_Ansible_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Ansible_Loops_-_Ansuble_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Ansible_Loops_-_Ansuble_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Ansible_Loops_-_Ansuble_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Ansible_Loops_-_Ansuble_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Ansible_Modules_-_Ansible_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Ansible_Modules_-_Ansible_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Ansible_Modules_-_Ansible_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Ansible_Modules_-_Ansible_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Ansible_Playbooks_-_Ansible_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Ansible_Playbooks_-_Ansible_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Ansible_Playbooks_-_Ansible_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Ansible_Playbooks_-_Ansible_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_DevOps_-_основы_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_DevOps_-_основы_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_DevOps_-_основы_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_DevOps_-_основы_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Docker_Docker_-_Дополнительные_знания_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Docker_Docker_-_Дополнительные_знания_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Docker_Docker_-_Дополнительные_знания_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Docker_Docker_-_Дополнительные_знания_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Docker_Images,_Dockerfile_-_Docker_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Docker_Images,_Dockerfile_-_Docker_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Docker_Images,_Dockerfile_-_Docker_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Docker_Images,_Dockerfile_-_Docker_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Docker_Multistaging_-_Docker_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Docker_Multistaging_-_Docker_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Docker_Multistaging_-_Docker_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Docker_Multistaging_-_Docker_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Docker_Network_Drivers_-_Docker_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Docker_Network_Drivers_-_Docker_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Docker_Network_Drivers_-_Docker_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Docker_Network_Drivers_-_Docker_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Docker_Storage_Drivers_-_Docker_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Docker_Storage_Drivers_-_Docker_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Docker_Storage_Drivers_-_Docker_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Docker_Storage_Drivers_-_Docker_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Docker_Volume_-_Docker_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Docker_Volume_-_Docker_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Docker_Volume_-_Docker_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Docker_Volume_-_Docker_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Docker_Основы_-_Docker_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Docker_Основы_-_Docker_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Docker_Основы_-_Docker_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Docker_Основы_-_Docker_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_IaC_-_основы_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_IaC_-_основы_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_IaC_-_основы_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_IaC_-_основы_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Terraform_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Terraform_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Terraform_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Terraform_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Контейнеризация_Apache_Mesos_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Контейнеризация_Apache_Mesos_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Контейнеризация_Apache_Mesos_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Контейнеризация_Apache_Mesos_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Контейнеризация_Docker_Swarm_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Контейнеризация_Docker_Swarm_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Контейнеризация_Docker_Swarm_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Контейнеризация_Docker_Swarm_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Контейнеризация_HashiCorp_Nomad_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Контейнеризация_HashiCorp_Nomad_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Контейнеризация_HashiCorp_Nomad_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Контейнеризация_HashiCorp_Nomad_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Контейнеризация_Kubernetes_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Контейнеризация_Kubernetes_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Контейнеризация_Kubernetes_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Контейнеризация_Kubernetes_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_DevOps_Контейнеризация_md.ajson b/.stversions/.smart-env/multi/01_Library_DevOps_Контейнеризация_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_DevOps_Контейнеризация_md.ajson
rename to .stversions/.smart-env/multi/01_Library_DevOps_Контейнеризация_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Автокорреляционная_функция_(АКФ)_md.ajson b/.stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Автокорреляционная_функция_(АКФ)_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Автокорреляционная_функция_(АКФ)_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Автокорреляционная_функция_(АКФ)_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_ВР_-_основы_md.ajson b/.stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_ВР_-_основы_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Math_Statistics_Временные_ряды_ВР_-_основы_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_ВР_-_основы_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Модели_АРПСС__Методология_Бокса-Дженкинса_md.ajson b/.stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Модели_АРПСС__Методология_Бокса-Дженкинса_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Модели_АРПСС__Методология_Бокса-Дженкинса_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Модели_АРПСС__Методология_Бокса-Дженкинса_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Моделирование_временных_рядов_md.ajson b/.stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Моделирование_временных_рядов_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Моделирование_временных_рядов_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Моделирование_временных_рядов_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Стационарность_-_ВР_md.ajson b/.stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Стационарность_-_ВР_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Стационарность_-_ВР_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Стационарность_-_ВР_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Частная_автокорреляционная_функция_md.ajson b/.stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Частная_автокорреляционная_функция_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Частная_автокорреляционная_функция_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Math_Statistics_Временные_ряды_Частная_автокорреляционная_функция_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Math_Statistics_Дискриминантный_анализ_Дискриминантный_анализ_md.ajson b/.stversions/.smart-env/multi/01_Library_Math_Statistics_Дискриминантный_анализ_Дискриминантный_анализ_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Math_Statistics_Дискриминантный_анализ_Дискриминантный_анализ_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Math_Statistics_Дискриминантный_анализ_Дискриминантный_анализ_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Math_Statistics_Дискриминантный_анализ_Условие_отнесения_объекта_к_кл_md.ajson b/.stversions/.smart-env/multi/01_Library_Math_Statistics_Дискриминантный_анализ_Условие_отнесения_объекта_к_кл_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Math_Statistics_Дискриминантный_анализ_Условие_отнесения_объекта_к_кл_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Math_Statistics_Дискриминантный_анализ_Условие_отнесения_объекта_к_кл_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_ФА_-_вращение_md.ajson b/.stversions/.smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_ФА_-_вращение_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_ФА_-_вращение_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_ФА_-_вращение_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_ФА_-_модель,_цель,_сущность_md.ajson b/.stversions/.smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_ФА_-_модель,_цель,_сущность_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_ФА_-_модель,_цель,_сущность_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_ФА_-_модель,_цель,_сущность_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_Факторный_анализ_md.ajson b/.stversions/.smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_Факторный_анализ_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_Факторный_анализ_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Math_Statistics_Факторный_анализ_Факторный_анализ_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Ethernet_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Ethernet_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Ethernet_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Ethernet_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_LAN_vs_WAN_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_LAN_vs_WAN_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_LAN_vs_WAN_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_LAN_vs_WAN_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_MAC-адрес_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_MAC-адрес_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_MAC-адрес_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_MAC-адрес_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_NAT_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_NAT_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_NAT_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_NAT_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Router-on-a-Stick_Router-on-a-Stick_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Router-on-a-Stick_Router-on-a-Stick_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Router-on-a-Stick_Router-on-a-Stick_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Router-on-a-Stick_Router-on-a-Stick_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Router-on-a-Stick_Настройка_коммутатора_Cisco_(Router-on-a-Stick)_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Router-on-a-Stick_Настройка_коммутатора_Cisco_(Router-on-a-Stick)_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Router-on-a-Stick_Настройка_коммутатора_Cisco_(Router-on-a-Stick)_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Router-on-a-Stick_Настройка_коммутатора_Cisco_(Router-on-a-Stick)_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_база_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_база_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_VLAN_VLAN_-_база_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_база_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_диапазоны_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_диапазоны_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_VLAN_VLAN_-_диапазоны_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_диапазоны_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_история_и_trunk_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_история_и_trunk_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_VLAN_VLAN_-_история_и_trunk_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_история_и_trunk_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_настройка_Cisco_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_настройка_Cisco_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_VLAN_VLAN_-_настройка_Cisco_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_настройка_Cisco_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_полная_настройка_Cisco_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_полная_настройка_Cisco_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_VLAN_VLAN_-_полная_настройка_Cisco_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_-_полная_настройка_Cisco_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_VLAN_VLAN_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_VLAN_VLAN_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_VLAN_VLAN_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_VLSM_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_VLSM_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_VLSM_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_VLSM_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_VPN_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_VPN_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_VPN_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_VPN_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Базовая_настройка_коммутатора_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Базовая_настройка_коммутатора_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Базовая_настройка_коммутатора_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Базовая_настройка_коммутатора_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Витая_пара_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Витая_пара_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Витая_пара_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Витая_пара_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Иерархическая_модель_Cisco_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Иерархическая_модель_Cisco_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Иерархическая_модель_Cisco_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Иерархическая_модель_Cisco_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Инкапсуляция_данных_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Инкапсуляция_данных_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Инкапсуляция_данных_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Инкапсуляция_данных_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Коммутатор_L3_vs_Маршрутизатор_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Коммутатор_L3_vs_Маршрутизатор_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Коммутатор_L3_vs_Маршрутизатор_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Коммутатор_L3_vs_Маршрутизатор_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Модель_OSI_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Модель_OSI_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Модель_OSI_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Модель_OSI_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Протоколы_ARP_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Протоколы_ARP_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Протоколы_ARP_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Протоколы_ARP_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Протоколы_DHCP_DHCP_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Протоколы_DHCP_DHCP_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Протоколы_DHCP_DHCP_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Протоколы_DHCP_DHCP_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Протоколы_DHCP_Механизм_работы_-_DHCP_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Протоколы_DHCP_Механизм_работы_-_DHCP_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Протоколы_DHCP_Механизм_работы_-_DHCP_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Протоколы_DHCP_Механизм_работы_-_DHCP_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Протоколы_DHCP_Настройка_DHCP_-_Cisco_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Протоколы_DHCP_Настройка_DHCP_-_Cisco_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Протоколы_DHCP_Настройка_DHCP_-_Cisco_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Протоколы_DHCP_Настройка_DHCP_-_Cisco_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Протоколы_DNS_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Протоколы_DNS_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Протоколы_DNS_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Протоколы_DNS_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Протоколы_ICMP_-_Internet_Control_Messag_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Протоколы_ICMP_-_Internet_Control_Messag_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Протоколы_ICMP_-_Internet_Control_Messag_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Протоколы_ICMP_-_Internet_Control_Messag_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Протоколы_IP-адрес_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Протоколы_IP-адрес_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Протоколы_IP-адрес_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Протоколы_IP-адрес_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Протоколы_IPv6_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Протоколы_IPv6_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Протоколы_IPv6_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Протоколы_IPv6_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Протоколы_TCP_vs_UDP_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Протоколы_TCP_vs_UDP_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Протоколы_TCP_vs_UDP_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Протоколы_TCP_vs_UDP_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Режимы_передачи_данных_в_сетях_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Режимы_передачи_данных_в_сетях_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Режимы_передачи_данных_в_сетях_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Режимы_передачи_данных_в_сетях_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Сегментация_сети_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Сегментация_сети_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Сегментация_сети_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Сегментация_сети_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Сетевые_устройства_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Сетевые_устройства_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Сетевые_устройства_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Сетевые_устройства_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Утилита_Ping_md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Утилита_Ping_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Утилита_Ping_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Утилита_Ping_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Широковещательные_и_коллизионные_домены__Коммутация__md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Широковещательные_и_коллизионные_домены__Коммутация__md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Широковещательные_и_коллизионные_домены__Коммутация__md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Широковещательные_и_коллизионные_домены__Коммутация__md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Networking_Широковещательные_и_коллизионные_домены__Маршрутизация__md.ajson b/.stversions/.smart-env/multi/01_Library_Networking_Широковещательные_и_коллизионные_домены__Маршрутизация__md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Networking_Широковещательные_и_коллизионные_домены__Маршрутизация__md.ajson
rename to .stversions/.smart-env/multi/01_Library_Networking_Широковещательные_и_коллизионные_домены__Маршрутизация__md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Operating_Systems_Linux_Command_Help_md.ajson b/.stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Command_Help_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Operating_Systems_Linux_Command_Help_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Command_Help_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Operating_Systems_Linux_Command_Path_md.ajson b/.stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Command_Path_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Operating_Systems_Linux_Command_Path_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Command_Path_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Operating_Systems_Linux_Environment_Variables_md.ajson b/.stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Environment_Variables_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Operating_Systems_Linux_Environment_Variables_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Environment_Variables_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Operating_Systems_Linux_File_Permissions_md.ajson b/.stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_File_Permissions_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Operating_Systems_Linux_File_Permissions_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_File_Permissions_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Operating_Systems_Linux_Linux_md.ajson b/.stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Linux_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Operating_Systems_Linux_Linux_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Linux_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Operating_Systems_Linux_Redirects_md.ajson b/.stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Redirects_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Operating_Systems_Linux_Redirects_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Redirects_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Operating_Systems_Linux_Super-user_md.ajson b/.stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Super-user_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Operating_Systems_Linux_Super-user_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Operating_Systems_Linux_Super-user_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Programming_Ruby_On_Rails_Active_Storage_md.ajson b/.stversions/.smart-env/multi/01_Library_Programming_Ruby_On_Rails_Active_Storage_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Programming_Ruby_On_Rails_Active_Storage_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Programming_Ruby_On_Rails_Active_Storage_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Programming_Ruby_On_Rails_Ruby_On_Rails_md.ajson b/.stversions/.smart-env/multi/01_Library_Programming_Ruby_On_Rails_Ruby_On_Rails_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Programming_Ruby_On_Rails_Ruby_On_Rails_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Programming_Ruby_On_Rails_Ruby_On_Rails_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Programming_Ruby_On_Rails_Sidekiq_-_основа_работы_md.ajson b/.stversions/.smart-env/multi/01_Library_Programming_Ruby_On_Rails_Sidekiq_-_основа_работы_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Programming_Ruby_On_Rails_Sidekiq_-_основа_работы_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Programming_Ruby_On_Rails_Sidekiq_-_основа_работы_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_SelfHost_БД_Флешек_md.ajson b/.stversions/.smart-env/multi/01_Library_SelfHost_БД_Флешек_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_SelfHost_БД_Флешек_md.ajson
rename to .stversions/.smart-env/multi/01_Library_SelfHost_БД_Флешек_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Study_31,_32_-_Налоги_md.ajson b/.stversions/.smart-env/multi/01_Library_Study_31,_32_-_Налоги_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Study_31,_32_-_Налоги_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Study_31,_32_-_Налоги_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Study_Налоги_-_Организационные_моменты_md.ajson b/.stversions/.smart-env/multi/01_Library_Study_Налоги_-_Организационные_моменты_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Study_Налоги_-_Организационные_моменты_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Study_Налоги_-_Организационные_моменты_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Study_Налоги_-_СР2_md.ajson b/.stversions/.smart-env/multi/01_Library_Study_Налоги_-_СР2_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Study_Налоги_-_СР2_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Study_Налоги_-_СР2_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Study_Налоги_-_Экзамен_md.ajson b/.stversions/.smart-env/multi/01_Library_Study_Налоги_-_Экзамен_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Study_Налоги_-_Экзамен_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Study_Налоги_-_Экзамен_md~20260523-090051.ajson
diff --git a/.smart-env/multi/01_Library_Study_Староста_md.ajson b/.stversions/.smart-env/multi/01_Library_Study_Староста_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/01_Library_Study_Староста_md.ajson
rename to .stversions/.smart-env/multi/01_Library_Study_Староста_md~20260523-090051.ajson
diff --git a/.smart-env/multi/03_Projects_Статьи_Guide_-_Статья_md.ajson b/.stversions/.smart-env/multi/03_Projects_Статьи_Guide_-_Статья_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/03_Projects_Статьи_Guide_-_Статья_md.ajson
rename to .stversions/.smart-env/multi/03_Projects_Статьи_Guide_-_Статья_md~20260523-090051.ajson
diff --git a/.smart-env/multi/03_Projects_Статьи_Дополнение_к_статье_md.ajson b/.stversions/.smart-env/multi/03_Projects_Статьи_Дополнение_к_статье_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/03_Projects_Статьи_Дополнение_к_статье_md.ajson
rename to .stversions/.smart-env/multi/03_Projects_Статьи_Дополнение_к_статье_md~20260523-090051.ajson
diff --git a/.smart-env/multi/03_Projects_Статьи_Идеи_для_статьи_md.ajson b/.stversions/.smart-env/multi/03_Projects_Статьи_Идеи_для_статьи_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/03_Projects_Статьи_Идеи_для_статьи_md.ajson
rename to .stversions/.smart-env/multi/03_Projects_Статьи_Идеи_для_статьи_md~20260523-090051.ajson
diff --git a/.smart-env/multi/03_Projects_Статьи_Разработка_алгоритма_автоматического_бэкапа_на_основе_«важности»_данных_md.ajson b/.stversions/.smart-env/multi/03_Projects_Статьи_Разработка_алгоритма_автоматического_бэкапа_на_основе_«важности»_данных_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/03_Projects_Статьи_Разработка_алгоритма_автоматического_бэкапа_на_основе_«важности»_данных_md.ajson
rename to .stversions/.smart-env/multi/03_Projects_Статьи_Разработка_алгоритма_автоматического_бэкапа_на_основе_«важности»_данных_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_04_Journal_md.ajson b/.stversions/.smart-env/multi/04_Journal_04_Journal_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_04_Journal_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_04_Journal_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_11_-_November_05_11_25_-_Wednesday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_11_-_November_05_11_25_-_Wednesday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_11_-_November_05_11_25_-_Wednesday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_11_-_November_05_11_25_-_Wednesday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_11_-_November_06_11_25_-_Thursday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_11_-_November_06_11_25_-_Thursday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_11_-_November_06_11_25_-_Thursday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_11_-_November_06_11_25_-_Thursday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_11_-_November_07_11_25_-_Friday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_11_-_November_07_11_25_-_Friday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_11_-_November_07_11_25_-_Friday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_11_-_November_07_11_25_-_Friday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_11_-_November_08_11_25_-_Saturday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_11_-_November_08_11_25_-_Saturday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_11_-_November_08_11_25_-_Saturday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_11_-_November_08_11_25_-_Saturday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_11_-_November_09_11_25_-_Sunday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_11_-_November_09_11_25_-_Sunday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_11_-_November_09_11_25_-_Sunday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_11_-_November_09_11_25_-_Sunday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_11_-_November_10_11_25_-_Monday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_11_-_November_10_11_25_-_Monday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_11_-_November_10_11_25_-_Monday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_11_-_November_10_11_25_-_Monday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_11_-_November_11_11_25_-_Tuesday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_11_-_November_11_11_25_-_Tuesday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_11_-_November_11_11_25_-_Tuesday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_11_-_November_11_11_25_-_Tuesday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_11_-_November_25_11_25_-_Tuesday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_11_-_November_25_11_25_-_Tuesday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_11_-_November_25_11_25_-_Tuesday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_11_-_November_25_11_25_-_Tuesday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_11_-_November_26_11_25_-_Wednesday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_11_-_November_26_11_25_-_Wednesday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_11_-_November_26_11_25_-_Wednesday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_11_-_November_26_11_25_-_Wednesday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_11_-_November_27_11_25_-_Thursday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_11_-_November_27_11_25_-_Thursday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_11_-_November_27_11_25_-_Thursday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_11_-_November_27_11_25_-_Thursday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_11_-_November_28_11_25_-_Friday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_11_-_November_28_11_25_-_Friday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_11_-_November_28_11_25_-_Friday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_11_-_November_28_11_25_-_Friday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_11_-_November_29_11_25_-_Saturday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_11_-_November_29_11_25_-_Saturday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_11_-_November_29_11_25_-_Saturday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_11_-_November_29_11_25_-_Saturday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_11_-_November_30_11_25_-_Sunday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_11_-_November_30_11_25_-_Sunday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_11_-_November_30_11_25_-_Sunday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_11_-_November_30_11_25_-_Sunday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_01_12_25_-_Monday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_01_12_25_-_Monday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_01_12_25_-_Monday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_01_12_25_-_Monday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_02_12_25_-_Tuesday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_02_12_25_-_Tuesday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_02_12_25_-_Tuesday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_02_12_25_-_Tuesday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_03_12_25_-_Wednesday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_03_12_25_-_Wednesday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_03_12_25_-_Wednesday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_03_12_25_-_Wednesday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_04_12_25_-_Thursday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_04_12_25_-_Thursday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_04_12_25_-_Thursday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_04_12_25_-_Thursday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_09_12_25_-_Tuesday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_09_12_25_-_Tuesday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_09_12_25_-_Tuesday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_09_12_25_-_Tuesday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_10_12_25_-_Wednesday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_10_12_25_-_Wednesday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_10_12_25_-_Wednesday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_10_12_25_-_Wednesday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_12_12_25_-_Friday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_12_12_25_-_Friday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_12_12_25_-_Friday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_12_12_25_-_Friday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_13_12_25_-_Saturday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_13_12_25_-_Saturday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_13_12_25_-_Saturday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_13_12_25_-_Saturday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_14_12_25_-_Sunday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_14_12_25_-_Sunday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_14_12_25_-_Sunday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_14_12_25_-_Sunday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_15_12_25_-_Monday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_15_12_25_-_Monday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_15_12_25_-_Monday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_15_12_25_-_Monday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_16_12_25_-_Tuesday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_16_12_25_-_Tuesday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_16_12_25_-_Tuesday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_16_12_25_-_Tuesday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_17_12_25_-_Wednesday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_17_12_25_-_Wednesday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_17_12_25_-_Wednesday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_17_12_25_-_Wednesday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_18_12_25_-_Thursday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_18_12_25_-_Thursday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_18_12_25_-_Thursday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_18_12_25_-_Thursday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_19_12_25_-_Friday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_19_12_25_-_Friday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_19_12_25_-_Friday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_19_12_25_-_Friday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_20_12_25_-_Saturday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_20_12_25_-_Saturday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_20_12_25_-_Saturday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_20_12_25_-_Saturday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_21_12_25_-_Sunday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_21_12_25_-_Sunday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_21_12_25_-_Sunday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_21_12_25_-_Sunday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_22_12_25_-_Monday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_22_12_25_-_Monday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_22_12_25_-_Monday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_22_12_25_-_Monday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_23_12_25_-_Tuesday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_23_12_25_-_Tuesday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_23_12_25_-_Tuesday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_23_12_25_-_Tuesday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_24_12_25_-_Wednesday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_24_12_25_-_Wednesday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_24_12_25_-_Wednesday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_24_12_25_-_Wednesday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_25_12_25_-_Thursday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_25_12_25_-_Thursday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_25_12_25_-_Thursday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_25_12_25_-_Thursday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_26_12_25_-_Friday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_26_12_25_-_Friday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_26_12_25_-_Friday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_26_12_25_-_Friday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_28_12_25_-_Sunday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_28_12_25_-_Sunday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_28_12_25_-_Sunday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_28_12_25_-_Sunday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_29_12_25_-_Monday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_29_12_25_-_Monday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_29_12_25_-_Monday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_29_12_25_-_Monday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2025_12_-_December_30_12_25_-_Tuesday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2025_12_-_December_30_12_25_-_Tuesday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2025_12_-_December_30_12_25_-_Tuesday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2025_12_-_December_30_12_25_-_Tuesday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/04_Journal_2026_01_-_January_03_01_26_-_Saturday_md.ajson b/.stversions/.smart-env/multi/04_Journal_2026_01_-_January_03_01_26_-_Saturday_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/04_Journal_2026_01_-_January_03_01_26_-_Saturday_md.ajson
rename to .stversions/.smart-env/multi/04_Journal_2026_01_-_January_03_01_26_-_Saturday_md~20260523-090051.ajson
diff --git a/.smart-env/multi/91_Archive_Поздравления_с_НГ_md.ajson b/.stversions/.smart-env/multi/91_Archive_Поздравления_с_НГ_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/91_Archive_Поздравления_с_НГ_md.ajson
rename to .stversions/.smart-env/multi/91_Archive_Поздравления_с_НГ_md~20260523-090051.ajson
diff --git a/.smart-env/multi/95_System_95_System_md.ajson b/.stversions/.smart-env/multi/95_System_95_System_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/95_System_95_System_md.ajson
rename to .stversions/.smart-env/multi/95_System_95_System_md~20260523-090051.ajson
diff --git a/.smart-env/multi/95_System_Template_Base_Note_md.ajson b/.stversions/.smart-env/multi/95_System_Template_Base_Note_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/95_System_Template_Base_Note_md.ajson
rename to .stversions/.smart-env/multi/95_System_Template_Base_Note_md~20260523-090051.ajson
diff --git a/.smart-env/multi/95_System_Template_Daily_Note_md.ajson b/.stversions/.smart-env/multi/95_System_Template_Daily_Note_md~20260523-090051.ajson
similarity index 100%
rename from .smart-env/multi/95_System_Template_Daily_Note_md.ajson
rename to .stversions/.smart-env/multi/95_System_Template_Daily_Note_md~20260523-090051.ajson
diff --git a/.smart-env/smart_env.json b/.stversions/.smart-env/smart_env~20260523-090051.json
similarity index 100%
rename from .smart-env/smart_env.json
rename to .stversions/.smart-env/smart_env~20260523-090051.json
diff --git a/.stversions/00 Inbox/Untitled~20260523-092546.md b/.stversions/00 Inbox/Untitled~20260523-092546.md
new file mode 100644
index 0000000..0f0b645
--- /dev/null
+++ b/.stversions/00 Inbox/Untitled~20260523-092546.md
@@ -0,0 +1,8 @@
+---
+status: seed
+type: concept
+tags: []
+created: 2025-12-17
+updated: 2026-05-23
+title:
+---
diff --git a/.stversions/00 Inbox/Untitled~20260523-112306.md b/.stversions/00 Inbox/Untitled~20260523-112306.md
new file mode 100644
index 0000000..efc17ab
--- /dev/null
+++ b/.stversions/00 Inbox/Untitled~20260523-112306.md
@@ -0,0 +1,607 @@
+---
+status: seed
+type: concept
+tags: []
+created: 2025-12-17
+updated: 2026-05-23
+title:
+---
+```xsl
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Нужен: NOT NULL
+
+
+
+
+
+
+
+
+
+
+
+
+
+ NOT NULL
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CHECK (
+
+
+
+ IN (
+
+
+
+ '
+
+
+
+ '
+
+
+
+ ,
+
+
+
+
+
+ ))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ CHECK (
+
+
+
+ IN (
+
+
+
+
+
+
+
+ ,
+
+
+
+
+
+ ))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Анализ поля id
+
+
Тип данных: integer
+
+
Число пустых:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Анализ поля name
+
+
Тип данных: Текст
+
+
Самый длинный элемент:
+
+
+
+
+
+ , длина:
+
+
+
+
+
+
Число пустых:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Анализ поля code
+
+
Тип данных: Текст
+
+
Самый длинный элемент:
+
+
+
+
+
+ , длина:
+
+
+
+
+
+
Число пустых:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Анализ поля level
+
+
Тип данных: Текст
+
+
Самый длинный элемент:
+
+
+
+
+
+ , длина:
+
+
+
+
+
+
Число пустых:
+
+
+
+
Нужен: CHECK (level IN(
+
+
+
+ ''
+
+ ,
+
+
+
+ ))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Анализ поля level-id
+
+
Тип данных: integer
+
+
Число пустых:
+
+
+
+
Нужен: CHECK (level_id IN(
+
+
+
+ ''
+
+ ,
+
+
+
+ ))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Анализ поля generation
+
+
Тип данных: Текст
+
+
Самый длинный элемент:
+
+
+
+
+
+ , длина:
+
+
+
+
+
+
Число пустых:
+
+
+
+
Нужен: CHECK (generation IN(
+
+
+
+ ''
+
+ ,
+
+
+
+ ))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Анализ поля generation-id
+
+
Тип данных: integer
+
+
Число пустых:
+
+
+
+
Нужен: CHECK (generation_id IN(
+
+
+
+ ''
+
+ ,
+
+
+
+ ))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Анализ поля type
+
+
Тип данных: Текст
+
+
Самый длинный элемент:
+
+
+
+
+
+ , длина:
+
+
+
+
+
+
Число пустых:
+
+
+
+
Нужен: CHECK (type IN(
+
+
+
+ ''
+
+ ,
+
+
+
+ ))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Анализ поля type-id
+
+
Тип данных: integer
+
+
Число пустых:
+
+
+
+
Нужен: CHECK (type_id IN(
+
+
+
+ ''
+
+ ,
+
+
+
+ ))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Анализ данных файла specialities.xml
+
+
+
+
+
+
+
+ Анализ данных файла specialities.xml (specialities.xml)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ SQL-файл
+
+ DROP TABLE IF EXISTS specialities;
+
+DROP SEQUENCE IF EXISTS specialities_id_seq;
+
+
+
+CREATE SEQUENCE specialities_id_seq
+
+ START WITH 1
+
+ INCREMENT BY 1;
+
+
+
+CREATE TABLE specialities (
+
+ id INTEGER,
+
+
+
+ name VARCHAR(
+
+ ),
+
+
+
+ code VARCHAR(
+
+ ),
+
+
+
+ level VARCHAR(
+
+ ),
+
+
+
+ level_id INTEGER,
+
+
+
+ generation VARCHAR(
+
+ ),
+
+
+
+ generation_id INTEGER,
+
+
+
+ type VARCHAR(
+
+ ),
+
+
+
+ type_id INTEGER,
+
+ CONSTRAINT pk_specialities PRIMARY KEY (id)
+
+);
+
+
+
+ SQL: INSERT-запросы, сформированные из XML
+
+
+
+ INSERT INTO specialities (id, name, code, level, level_id, generation, generation_id, type, type_id)
+
+VALUES (
+
+ nextval('specialities_id_seq'),
+
+ '',
+
+ '',
+
+ '',
+
+ ,
+
+ '',
+
+ ,
+
+ '',
+
+
+
+);
+
+
+
+
+
+
+
+
+
+
+```
\ No newline at end of file
diff --git a/.stversions/00 Inbox/Untitled~20260524-145240.md b/.stversions/00 Inbox/Untitled~20260524-145240.md
new file mode 100644
index 0000000..e69de29
diff --git a/02 Projects/Личные/reader.md b/.stversions/02 Projects/Личные/reader~20260523-092256.md
similarity index 100%
rename from 02 Projects/Личные/reader.md
rename to .stversions/02 Projects/Личные/reader~20260523-092256.md
diff --git a/02 Projects/Личные/Финансы/Подписки - календарь.md b/.stversions/02 Projects/Личные/Финансы/Подписки - календарь~20260523-092256.md
similarity index 100%
rename from 02 Projects/Личные/Финансы/Подписки - календарь.md
rename to .stversions/02 Projects/Личные/Финансы/Подписки - календарь~20260523-092256.md
diff --git a/90 Library/01 Admin/CA и NGINX.md b/.stversions/90 Library/01 Admin/CA и NGINX~20260523-090051.md
similarity index 100%
rename from 90 Library/01 Admin/CA и NGINX.md
rename to .stversions/90 Library/01 Admin/CA и NGINX~20260523-090051.md
diff --git a/90 Library/01 Admin/Nginx Proxy Manager под path.md b/.stversions/90 Library/01 Admin/Nginx Proxy Manager под path~20260523-090050.md
similarity index 100%
rename from 90 Library/01 Admin/Nginx Proxy Manager под path.md
rename to .stversions/90 Library/01 Admin/Nginx Proxy Manager под path~20260523-090050.md
diff --git a/90 Library/02 DevOps/Ansible/Ansible - основы.md b/.stversions/90 Library/02 DevOps/Ansible/Ansible - основы~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Ansible/Ansible - основы.md
rename to .stversions/90 Library/02 DevOps/Ansible/Ansible - основы~20260523-090051.md
diff --git a/90 Library/02 DevOps/Ansible/Fail2Ban - Ansible.md b/.stversions/90 Library/02 DevOps/Ansible/Fail2Ban - Ansible~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Ansible/Fail2Ban - Ansible.md
rename to .stversions/90 Library/02 DevOps/Ansible/Fail2Ban - Ansible~20260523-090051.md
diff --git a/90 Library/02 DevOps/Ansible/Inventory - Ansible.md b/.stversions/90 Library/02 DevOps/Ansible/Inventory - Ansible~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Ansible/Inventory - Ansible.md
rename to .stversions/90 Library/02 DevOps/Ansible/Inventory - Ansible~20260523-090051.md
diff --git a/90 Library/02 DevOps/Ansible/Loops - Ansuble.md b/.stversions/90 Library/02 DevOps/Ansible/Loops - Ansuble~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Ansible/Loops - Ansuble.md
rename to .stversions/90 Library/02 DevOps/Ansible/Loops - Ansuble~20260523-090051.md
diff --git a/90 Library/02 DevOps/Ansible/Modules - Ansible.md b/.stversions/90 Library/02 DevOps/Ansible/Modules - Ansible~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Ansible/Modules - Ansible.md
rename to .stversions/90 Library/02 DevOps/Ansible/Modules - Ansible~20260523-090051.md
diff --git a/90 Library/02 DevOps/Ansible/Playbooks - Ansible.md b/.stversions/90 Library/02 DevOps/Ansible/Playbooks - Ansible~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Ansible/Playbooks - Ansible.md
rename to .stversions/90 Library/02 DevOps/Ansible/Playbooks - Ansible~20260523-090051.md
diff --git a/90 Library/02 DevOps/DevOps - основы.md b/.stversions/90 Library/02 DevOps/DevOps - основы~20260523-090050.md
similarity index 100%
rename from 90 Library/02 DevOps/DevOps - основы.md
rename to .stversions/90 Library/02 DevOps/DevOps - основы~20260523-090050.md
diff --git a/90 Library/02 DevOps/Gitlab.md b/.stversions/90 Library/02 DevOps/Gitlab~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Gitlab.md
rename to .stversions/90 Library/02 DevOps/Gitlab~20260523-090051.md
diff --git a/90 Library/02 DevOps/Git.md b/.stversions/90 Library/02 DevOps/Git~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Git.md
rename to .stversions/90 Library/02 DevOps/Git~20260523-090051.md
diff --git a/90 Library/02 DevOps/IaC - основы.md b/.stversions/90 Library/02 DevOps/IaC - основы~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/IaC - основы.md
rename to .stversions/90 Library/02 DevOps/IaC - основы~20260523-090051.md
diff --git a/90 Library/02 DevOps/Kubernetes/Control Plane - Плоскость управления.md b/.stversions/90 Library/02 DevOps/Kubernetes/Control Plane - Плоскость управления~20260523-090050.md
similarity index 100%
rename from 90 Library/02 DevOps/Kubernetes/Control Plane - Плоскость управления.md
rename to .stversions/90 Library/02 DevOps/Kubernetes/Control Plane - Плоскость управления~20260523-090050.md
diff --git a/90 Library/02 DevOps/Kubernetes/Data Plane - Плоскость данных.md b/.stversions/90 Library/02 DevOps/Kubernetes/Data Plane - Плоскость данных~20260523-090050.md
similarity index 100%
rename from 90 Library/02 DevOps/Kubernetes/Data Plane - Плоскость данных.md
rename to .stversions/90 Library/02 DevOps/Kubernetes/Data Plane - Плоскость данных~20260523-090050.md
diff --git a/90 Library/02 DevOps/Kubernetes/Deployment и ReplicaSet.md b/.stversions/90 Library/02 DevOps/Kubernetes/Deployment и ReplicaSet~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Kubernetes/Deployment и ReplicaSet.md
rename to .stversions/90 Library/02 DevOps/Kubernetes/Deployment и ReplicaSet~20260523-090051.md
diff --git a/90 Library/02 DevOps/Kubernetes/Kubernetes.md b/.stversions/90 Library/02 DevOps/Kubernetes/Kubernetes~20260523-090050.md
similarity index 100%
rename from 90 Library/02 DevOps/Kubernetes/Kubernetes.md
rename to .stversions/90 Library/02 DevOps/Kubernetes/Kubernetes~20260523-090050.md
diff --git a/90 Library/02 DevOps/Kubernetes/PV, PVC.md b/.stversions/90 Library/02 DevOps/Kubernetes/PV, PVC~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Kubernetes/PV, PVC.md
rename to .stversions/90 Library/02 DevOps/Kubernetes/PV, PVC~20260523-090051.md
diff --git a/90 Library/02 DevOps/Kubernetes/Алгоритм выбора лидера Lease.md b/.stversions/90 Library/02 DevOps/Kubernetes/Алгоритм выбора лидера Lease~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Kubernetes/Алгоритм выбора лидера Lease.md
rename to .stversions/90 Library/02 DevOps/Kubernetes/Алгоритм выбора лидера Lease~20260523-090051.md
diff --git a/90 Library/02 DevOps/Kubernetes/Алгоритм консенсуса raft.md b/.stversions/90 Library/02 DevOps/Kubernetes/Алгоритм консенсуса raft~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Kubernetes/Алгоритм консенсуса raft.md
rename to .stversions/90 Library/02 DevOps/Kubernetes/Алгоритм консенсуса raft~20260523-090051.md
diff --git a/90 Library/02 DevOps/Kubernetes/Шаблонизатор Helm.md b/.stversions/90 Library/02 DevOps/Kubernetes/Шаблонизатор Helm~20260523-090050.md
similarity index 100%
rename from 90 Library/02 DevOps/Kubernetes/Шаблонизатор Helm.md
rename to .stversions/90 Library/02 DevOps/Kubernetes/Шаблонизатор Helm~20260523-090050.md
diff --git a/90 Library/02 DevOps/Terraform.md b/.stversions/90 Library/02 DevOps/Terraform~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Terraform.md
rename to .stversions/90 Library/02 DevOps/Terraform~20260523-090051.md
diff --git a/90 Library/02 DevOps/Контейнеризация/Apache Mesos.md b/.stversions/90 Library/02 DevOps/Контейнеризация/Apache Mesos~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Контейнеризация/Apache Mesos.md
rename to .stversions/90 Library/02 DevOps/Контейнеризация/Apache Mesos~20260523-090051.md
diff --git a/90 Library/02 DevOps/Контейнеризация/Docker Swarm.md b/.stversions/90 Library/02 DevOps/Контейнеризация/Docker Swarm~20260523-090050.md
similarity index 100%
rename from 90 Library/02 DevOps/Контейнеризация/Docker Swarm.md
rename to .stversions/90 Library/02 DevOps/Контейнеризация/Docker Swarm~20260523-090050.md
diff --git a/90 Library/02 DevOps/Контейнеризация/Docker/Docker - Дополнительные знания.md b/.stversions/90 Library/02 DevOps/Контейнеризация/Docker/Docker - Дополнительные знания~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Контейнеризация/Docker/Docker - Дополнительные знания.md
rename to .stversions/90 Library/02 DevOps/Контейнеризация/Docker/Docker - Дополнительные знания~20260523-090051.md
diff --git a/90 Library/02 DevOps/Контейнеризация/Docker/Images, Dockerfile - Docker.md b/.stversions/90 Library/02 DevOps/Контейнеризация/Docker/Images, Dockerfile - Docker~20260523-090050.md
similarity index 100%
rename from 90 Library/02 DevOps/Контейнеризация/Docker/Images, Dockerfile - Docker.md
rename to .stversions/90 Library/02 DevOps/Контейнеризация/Docker/Images, Dockerfile - Docker~20260523-090050.md
diff --git a/90 Library/02 DevOps/Контейнеризация/Docker/Multistaging - Docker.md b/.stversions/90 Library/02 DevOps/Контейнеризация/Docker/Multistaging - Docker~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Контейнеризация/Docker/Multistaging - Docker.md
rename to .stversions/90 Library/02 DevOps/Контейнеризация/Docker/Multistaging - Docker~20260523-090051.md
diff --git a/90 Library/02 DevOps/Контейнеризация/Docker/Network Drivers - Docker.md b/.stversions/90 Library/02 DevOps/Контейнеризация/Docker/Network Drivers - Docker~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Контейнеризация/Docker/Network Drivers - Docker.md
rename to .stversions/90 Library/02 DevOps/Контейнеризация/Docker/Network Drivers - Docker~20260523-090051.md
diff --git a/90 Library/02 DevOps/Контейнеризация/Docker/Storage Drivers - Docker.md b/.stversions/90 Library/02 DevOps/Контейнеризация/Docker/Storage Drivers - Docker~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Контейнеризация/Docker/Storage Drivers - Docker.md
rename to .stversions/90 Library/02 DevOps/Контейнеризация/Docker/Storage Drivers - Docker~20260523-090051.md
diff --git a/90 Library/02 DevOps/Контейнеризация/Docker/Volume - Docker.md b/.stversions/90 Library/02 DevOps/Контейнеризация/Docker/Volume - Docker~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Контейнеризация/Docker/Volume - Docker.md
rename to .stversions/90 Library/02 DevOps/Контейнеризация/Docker/Volume - Docker~20260523-090051.md
diff --git a/90 Library/02 DevOps/Контейнеризация/Docker/Основы - Docker.md b/.stversions/90 Library/02 DevOps/Контейнеризация/Docker/Основы - Docker~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Контейнеризация/Docker/Основы - Docker.md
rename to .stversions/90 Library/02 DevOps/Контейнеризация/Docker/Основы - Docker~20260523-090051.md
diff --git a/90 Library/02 DevOps/Контейнеризация/HashiCorp Nomad.md b/.stversions/90 Library/02 DevOps/Контейнеризация/HashiCorp Nomad~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Контейнеризация/HashiCorp Nomad.md
rename to .stversions/90 Library/02 DevOps/Контейнеризация/HashiCorp Nomad~20260523-090051.md
diff --git a/90 Library/02 DevOps/Основные команды git.md b/.stversions/90 Library/02 DevOps/Основные команды git~20260523-090051.md
similarity index 100%
rename from 90 Library/02 DevOps/Основные команды git.md
rename to .stversions/90 Library/02 DevOps/Основные команды git~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/TS и DS ряды.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/TS и DS ряды~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/TS и DS ряды.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/TS и DS ряды~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Автокорреляционная функция (АКФ).md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Автокорреляционная функция (АКФ)~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Автокорреляционная функция (АКФ).md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Автокорреляционная функция (АКФ)~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Авторегрессия AR.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Авторегрессия AR~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Авторегрессия AR.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Авторегрессия AR~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Белый шум.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Белый шум~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Белый шум.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Белый шум~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/ВР - основы.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/ВР - основы~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/ВР - основы.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/ВР - основы~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Временные ряды.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Временные ряды~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Временные ряды.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Временные ряды~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Лаговый оператор.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Лаговый оператор~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Лаговый оператор.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Лаговый оператор~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Модели АРПСС. Методология Бокса-Дженкинса.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Модели АРПСС. Методология Бокса-Дженкинса~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Модели АРПСС. Методология Бокса-Дженкинса.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Модели АРПСС. Методология Бокса-Дженкинса~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Модели скользящего среднего.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Модели скользящего среднего~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Модели скользящего среднего.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Модели скользящего среднего~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Моделирование временных рядов.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Моделирование временных рядов~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Моделирование временных рядов.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Моделирование временных рядов~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Общая схема методологии Бокса-Дженкинса.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Общая схема методологии Бокса-Дженкинса~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Общая схема методологии Бокса-Дженкинса.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Общая схема методологии Бокса-Дженкинса~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Определение временного ряда, виды и особенности.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Определение временного ряда, виды и особенности~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Определение временного ряда, виды и особенности.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Определение временного ряда, виды и особенности~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Определение порядков АР и СС.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Определение порядков АР и СС~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Определение порядков АР и СС.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Определение порядков АР и СС~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Переход к стационарным разностям.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Переход к стационарным разностям~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Переход к стационарным разностям.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Переход к стационарным разностям~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Порядок интегрированности ряда.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Порядок интегрированности ряда~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Порядок интегрированности ряда.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Порядок интегрированности ряда~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Проверка адекватности и выбор модели.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Проверка адекватности и выбор модели~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Проверка адекватности и выбор модели.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Проверка адекватности и выбор модели~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Процедура Доладо — Дженкинса — Сосвилла — Ривера.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Процедура Доладо — Дженкинса — Сосвилла — Ривера~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Процедура Доладо — Дженкинса — Сосвилла — Ривера.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Процедура Доладо — Дженкинса — Сосвилла — Ривера~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Процесс ARIMA.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Процесс ARIMA~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Процесс ARIMA.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Процесс ARIMA~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Разложение Вольда.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Разложение Вольда~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Разложение Вольда.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Разложение Вольда~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Скользящее среднее MA.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Скользящее среднее MA~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Скользящее среднее MA.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Скользящее среднее MA~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Случайное блуждание.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Случайное блуждание~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Случайное блуждание.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Случайное блуждание~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Смешанные модели (ARMA).md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Смешанные модели (ARMA)~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Смешанные модели (ARMA).md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Смешанные модели (ARMA)~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Стационарность - ВР.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Стационарность - ВР~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Стационарность - ВР.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Стационарность - ВР~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Стационарность. Строгая и слабая стационарность.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Стационарность. Строгая и слабая стационарность~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Стационарность. Строгая и слабая стационарность.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Стационарность. Строгая и слабая стационарность~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Тесты на единичный корень и Дики-Фуллер.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Тесты на единичный корень и Дики-Фуллер~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Тесты на единичный корень и Дики-Фуллер.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Тесты на единичный корень и Дики-Фуллер~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Временные ряды/Частная автокорреляционная функция.md b/.stversions/90 Library/03 Math/Статистика/Временные ряды/Частная автокорреляционная функция~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Временные ряды/Частная автокорреляционная функция.md
rename to .stversions/90 Library/03 Math/Статистика/Временные ряды/Частная автокорреляционная функция~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Дискриминантный анализ/Дискриминантный анализ.md b/.stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Дискриминантный анализ~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Дискриминантный анализ/Дискриминантный анализ.md
rename to .stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Дискриминантный анализ~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Дискриминантный анализ/Параметрический дискриминантный анализ в случае нормального закона распределения классов.md b/.stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Параметрический дискриминантный анализ в случае нормального закона распределения классов~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Дискриминантный анализ/Параметрический дискриминантный анализ в случае нормального закона распределения классов.md
rename to .stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Параметрический дискриминантный анализ в случае нормального закона распределения классов~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Дискриминантный анализ/Построение оптимальной процедуры классификации.md b/.stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Построение оптимальной процедуры классификации~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Дискриминантный анализ/Построение оптимальной процедуры классификации.md
rename to .stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Построение оптимальной процедуры классификации~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Дискриминантный анализ/Принципы дискриминантного анализа.md b/.stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Принципы дискриминантного анализа~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Дискриминантный анализ/Принципы дискриминантного анализа.md
rename to .stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Принципы дискриминантного анализа~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Дискриминантный анализ/Условие отнесения объекта к классу в случае двух признаков.md b/.stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Условие отнесения объекта к классу в случае двух признаков~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Дискриминантный анализ/Условие отнесения объекта к классу в случае двух признаков.md
rename to .stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Условие отнесения объекта к классу в случае двух признаков~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Дискриминантный анализ/Функция потерь.md b/.stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Функция потерь~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Дискриминантный анализ/Функция потерь.md
rename to .stversions/90 Library/03 Math/Статистика/Дискриминантный анализ/Функция потерь~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Кластерный анализ/Агломеративные (иерархические) методы.md b/.stversions/90 Library/03 Math/Статистика/Кластерный анализ/Агломеративные (иерархические) методы~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Кластерный анализ/Агломеративные (иерархические) методы.md
rename to .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Агломеративные (иерархические) методы~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Кластерный анализ/Дивизимные методы.md b/.stversions/90 Library/03 Math/Статистика/Кластерный анализ/Дивизимные методы~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Кластерный анализ/Дивизимные методы.md
rename to .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Дивизимные методы~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Кластерный анализ/Интерпретация результатов кластеризации.md b/.stversions/90 Library/03 Math/Статистика/Кластерный анализ/Интерпретация результатов кластеризации~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Кластерный анализ/Интерпретация результатов кластеризации.md
rename to .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Интерпретация результатов кластеризации~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Кластерный анализ/Итерационная классификация. Метод K-средних (K-means).md b/.stversions/90 Library/03 Math/Статистика/Кластерный анализ/Итерационная классификация. Метод K-средних (K-means)~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Кластерный анализ/Итерационная классификация. Метод K-средних (K-means).md
rename to .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Итерационная классификация. Метод K-средних (K-means)~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Кластерный анализ/Классификация.md b/.stversions/90 Library/03 Math/Статистика/Кластерный анализ/Классификация~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Кластерный анализ/Классификация.md
rename to .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Классификация~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Кластерный анализ/Кластерный анализ.md b/.stversions/90 Library/03 Math/Статистика/Кластерный анализ/Кластерный анализ~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Кластерный анализ/Кластерный анализ.md
rename to .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Кластерный анализ~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Кластерный анализ/Критерии определения оптимального числа классов.md b/.stversions/90 Library/03 Math/Статистика/Кластерный анализ/Критерии определения оптимального числа классов~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Кластерный анализ/Критерии определения оптимального числа классов.md
rename to .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Критерии определения оптимального числа классов~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Кластерный анализ/Наивный Байесовский алгоритм.md b/.stversions/90 Library/03 Math/Статистика/Кластерный анализ/Наивный Байесовский алгоритм~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Кластерный анализ/Наивный Байесовский алгоритм.md
rename to .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Наивный Байесовский алгоритм~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Кластерный анализ/Понятие однородности объектов.md b/.stversions/90 Library/03 Math/Статистика/Кластерный анализ/Понятие однородности объектов~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Кластерный анализ/Понятие однородности объектов.md
rename to .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Понятие однородности объектов~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Кластерный анализ/Постановка задачи Кластерного анализа.md b/.stversions/90 Library/03 Math/Статистика/Кластерный анализ/Постановка задачи Кластерного анализа~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Кластерный анализ/Постановка задачи Кластерного анализа.md
rename to .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Постановка задачи Кластерного анализа~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между классами объектов.md b/.stversions/90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между классами объектов~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между классами объектов.md
rename to .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между классами объектов~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между объектами.md b/.stversions/90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между объектами~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между объектами.md
rename to .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Расстояние между объектами~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Кластерный анализ/Функционалы качества разбиения.md b/.stversions/90 Library/03 Math/Статистика/Кластерный анализ/Функционалы качества разбиения~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Кластерный анализ/Функционалы качества разбиения.md
rename to .stversions/90 Library/03 Math/Статистика/Кластерный анализ/Функционалы качества разбиения~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Алгоритм оценки главных компонент.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Алгоритм оценки главных компонент~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Алгоритм оценки главных компонент.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Алгоритм оценки главных компонент~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Алгоритм оценки главных факторов. Матрица индивидуальных значений ГФ.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Алгоритм оценки главных факторов. Матрица индивидуальных значений ГФ~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Алгоритм оценки главных факторов. Матрица индивидуальных значений ГФ.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Алгоритм оценки главных факторов. Матрица индивидуальных значений ГФ~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Вращение факторов.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Вращение факторов~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Вращение факторов.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Вращение факторов~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Матрица индивидуальных значений.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Матрица индивидуальных значений~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Матрица индивидуальных значений.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Матрица индивидуальных значений~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Матрица нагрузок и её свойства.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Матрица нагрузок и её свойства~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Матрица нагрузок и её свойства.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Матрица нагрузок и её свойства~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Метод главных факторов. Методы оценки общности.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Метод главных факторов. Методы оценки общности~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Метод главных факторов. Методы оценки общности.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Метод главных факторов. Методы оценки общности~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Определение первой и последующих компонент.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Определение первой и последующих компонент~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Определение первой и последующих компонент.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Определение первой и последующих компонент~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Основные числовые характеристики главных компонент.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Основные числовые характеристики главных компонент~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Основные числовые характеристики главных компонент.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Основные числовые характеристики главных компонент~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Постановка задачи снижения размерности признакового пространства.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Постановка задачи снижения размерности признакового пространства~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Постановка задачи снижения размерности признакового пространства.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Постановка задачи снижения размерности признакового пространства~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Процедура построения первой и остальных главных компонент.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Процедура построения первой и остальных главных компонент~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Процедура построения первой и остальных главных компонент.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Процедура построения первой и остальных главных компонент~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Разложение дисперсии в факторном анализе. Разложение характерности в факторном анализе.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Разложение дисперсии в факторном анализе. Разложение характерности в факторном анализе~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Разложение дисперсии в факторном анализе. Разложение характерности в факторном анализе.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Разложение дисперсии в факторном анализе. Разложение характерности в факторном анализе~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Требования к факторам. Линейная модель факторного анализа.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Требования к факторам. Линейная модель факторного анализа~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Требования к факторам. Линейная модель факторного анализа.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Требования к факторам. Линейная модель факторного анализа~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/ФА - вращение.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/ФА - вращение~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/ФА - вращение.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/ФА - вращение~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/ФА - модель, цель, сущность.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/ФА - модель, цель, сущность~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/ФА - модель, цель, сущность.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/ФА - модель, цель, сущность~20260523-090050.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Факторное отображение. Факторная структура.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Факторное отображение. Факторная структура~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Факторное отображение. Факторная структура.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Факторное отображение. Факторная структура~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Факторный анализ.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Факторный анализ~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Факторный анализ.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Факторный анализ~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Фундаментальная теорема факторного анализа.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Фундаментальная теорема факторного анализа~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Фундаментальная теорема факторного анализа.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Фундаментальная теорема факторного анализа~20260523-090051.md
diff --git a/90 Library/03 Math/Статистика/Факторный анализ/Этапы ФА. Выделение факторов.md b/.stversions/90 Library/03 Math/Статистика/Факторный анализ/Этапы ФА. Выделение факторов~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Статистика/Факторный анализ/Этапы ФА. Выделение факторов.md
rename to .stversions/90 Library/03 Math/Статистика/Факторный анализ/Этапы ФА. Выделение факторов~20260523-090051.md
diff --git a/90 Library/03 Math/Теория нечетких множеств/Доказательство законов Де Моргана.md b/.stversions/90 Library/03 Math/Теория нечетких множеств/Доказательство законов Де Моргана~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Теория нечетких множеств/Доказательство законов Де Моргана.md
rename to .stversions/90 Library/03 Math/Теория нечетких множеств/Доказательство законов Де Моргана~20260523-090051.md
diff --git a/90 Library/03 Math/Теория нечетких множеств/Коэффициенты функций принадлежности.md b/.stversions/90 Library/03 Math/Теория нечетких множеств/Коэффициенты функций принадлежности~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Теория нечетких множеств/Коэффициенты функций принадлежности.md
rename to .stversions/90 Library/03 Math/Теория нечетких множеств/Коэффициенты функций принадлежности~20260523-090051.md
diff --git a/90 Library/03 Math/Теория нечетких множеств/Логические операции над нечеткими множествами.md b/.stversions/90 Library/03 Math/Теория нечетких множеств/Логические операции над нечеткими множествами~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Теория нечетких множеств/Логические операции над нечеткими множествами.md
rename to .stversions/90 Library/03 Math/Теория нечетких множеств/Логические операции над нечеткими множествами~20260523-090051.md
diff --git a/90 Library/03 Math/Теория нечетких множеств/Определение нечеткого множества.md b/.stversions/90 Library/03 Math/Теория нечетких множеств/Определение нечеткого множества~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Теория нечетких множеств/Определение нечеткого множества.md
rename to .stversions/90 Library/03 Math/Теория нечетких множеств/Определение нечеткого множества~20260523-090051.md
diff --git a/90 Library/03 Math/Теория нечетких множеств/Теория нечетких множеств.md b/.stversions/90 Library/03 Math/Теория нечетких множеств/Теория нечетких множеств~20260523-090050.md
similarity index 100%
rename from 90 Library/03 Math/Теория нечетких множеств/Теория нечетких множеств.md
rename to .stversions/90 Library/03 Math/Теория нечетких множеств/Теория нечетких множеств~20260523-090050.md
diff --git a/90 Library/03 Math/Теория нечетких множеств/Функция принадлежности.md b/.stversions/90 Library/03 Math/Теория нечетких множеств/Функция принадлежности~20260523-090051.md
similarity index 100%
rename from 90 Library/03 Math/Теория нечетких множеств/Функция принадлежности.md
rename to .stversions/90 Library/03 Math/Теория нечетких множеств/Функция принадлежности~20260523-090051.md
diff --git a/90 Library/04 Networking/Ethernet.md b/.stversions/90 Library/04 Networking/Ethernet~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Ethernet.md
rename to .stversions/90 Library/04 Networking/Ethernet~20260523-090051.md
diff --git a/90 Library/04 Networking/LAN vs WAN.md b/.stversions/90 Library/04 Networking/LAN vs WAN~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/LAN vs WAN.md
rename to .stversions/90 Library/04 Networking/LAN vs WAN~20260523-090051.md
diff --git a/90 Library/04 Networking/MAC-адрес.md b/.stversions/90 Library/04 Networking/MAC-адрес~20260523-090050.md
similarity index 100%
rename from 90 Library/04 Networking/MAC-адрес.md
rename to .stversions/90 Library/04 Networking/MAC-адрес~20260523-090050.md
diff --git a/90 Library/04 Networking/NAT.md b/.stversions/90 Library/04 Networking/NAT~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/NAT.md
rename to .stversions/90 Library/04 Networking/NAT~20260523-090051.md
diff --git a/90 Library/04 Networking/Networking - MOC.md b/.stversions/90 Library/04 Networking/Networking - MOC~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Networking - MOC.md
rename to .stversions/90 Library/04 Networking/Networking - MOC~20260523-090051.md
diff --git a/90 Library/04 Networking/Router-on-a-Stick/RoaS - Base.md b/.stversions/90 Library/04 Networking/Router-on-a-Stick/RoaS - Base~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Router-on-a-Stick/RoaS - Base.md
rename to .stversions/90 Library/04 Networking/Router-on-a-Stick/RoaS - Base~20260523-090051.md
diff --git a/90 Library/04 Networking/Router-on-a-Stick/Router-on-a-Stick.md b/.stversions/90 Library/04 Networking/Router-on-a-Stick/Router-on-a-Stick~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Router-on-a-Stick/Router-on-a-Stick.md
rename to .stversions/90 Library/04 Networking/Router-on-a-Stick/Router-on-a-Stick~20260523-090051.md
diff --git a/90 Library/04 Networking/Router-on-a-Stick/Настройка коммутатора Cisco (Router-on-a-Stick).md b/.stversions/90 Library/04 Networking/Router-on-a-Stick/Настройка коммутатора Cisco (Router-on-a-Stick)~20260523-090050.md
similarity index 100%
rename from 90 Library/04 Networking/Router-on-a-Stick/Настройка коммутатора Cisco (Router-on-a-Stick).md
rename to .stversions/90 Library/04 Networking/Router-on-a-Stick/Настройка коммутатора Cisco (Router-on-a-Stick)~20260523-090050.md
diff --git a/90 Library/04 Networking/VLAN/VLAN - Base.md b/.stversions/90 Library/04 Networking/VLAN/VLAN - Base~20260523-090050.md
similarity index 100%
rename from 90 Library/04 Networking/VLAN/VLAN - Base.md
rename to .stversions/90 Library/04 Networking/VLAN/VLAN - Base~20260523-090050.md
diff --git a/90 Library/04 Networking/VLAN/VLAN - диапазоны.md b/.stversions/90 Library/04 Networking/VLAN/VLAN - диапазоны~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/VLAN/VLAN - диапазоны.md
rename to .stversions/90 Library/04 Networking/VLAN/VLAN - диапазоны~20260523-090051.md
diff --git a/90 Library/04 Networking/VLAN/VLAN - история и trunk.md b/.stversions/90 Library/04 Networking/VLAN/VLAN - история и trunk~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/VLAN/VLAN - история и trunk.md
rename to .stversions/90 Library/04 Networking/VLAN/VLAN - история и trunk~20260523-090051.md
diff --git a/90 Library/04 Networking/VLAN/VLAN - настройка Cisco.md b/.stversions/90 Library/04 Networking/VLAN/VLAN - настройка Cisco~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/VLAN/VLAN - настройка Cisco.md
rename to .stversions/90 Library/04 Networking/VLAN/VLAN - настройка Cisco~20260523-090051.md
diff --git a/90 Library/04 Networking/VLAN/VLAN - полная настройка Cisco.md b/.stversions/90 Library/04 Networking/VLAN/VLAN - полная настройка Cisco~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/VLAN/VLAN - полная настройка Cisco.md
rename to .stversions/90 Library/04 Networking/VLAN/VLAN - полная настройка Cisco~20260523-090051.md
diff --git a/90 Library/04 Networking/VLAN/VLAN.md b/.stversions/90 Library/04 Networking/VLAN/VLAN~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/VLAN/VLAN.md
rename to .stversions/90 Library/04 Networking/VLAN/VLAN~20260523-090051.md
diff --git a/90 Library/04 Networking/VLSM.md b/.stversions/90 Library/04 Networking/VLSM~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/VLSM.md
rename to .stversions/90 Library/04 Networking/VLSM~20260523-090051.md
diff --git a/90 Library/04 Networking/VPN.md b/.stversions/90 Library/04 Networking/VPN~20260523-090050.md
similarity index 100%
rename from 90 Library/04 Networking/VPN.md
rename to .stversions/90 Library/04 Networking/VPN~20260523-090050.md
diff --git a/90 Library/04 Networking/Базовая настройка коммутатора.md b/.stversions/90 Library/04 Networking/Базовая настройка коммутатора~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Базовая настройка коммутатора.md
rename to .stversions/90 Library/04 Networking/Базовая настройка коммутатора~20260523-090051.md
diff --git a/90 Library/04 Networking/Введение в сетевую безопасность.md b/.stversions/90 Library/04 Networking/Введение в сетевую безопасность~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Введение в сетевую безопасность.md
rename to .stversions/90 Library/04 Networking/Введение в сетевую безопасность~20260523-090051.md
diff --git a/90 Library/04 Networking/Витая пара.md b/.stversions/90 Library/04 Networking/Витая пара~20260523-090050.md
similarity index 100%
rename from 90 Library/04 Networking/Витая пара.md
rename to .stversions/90 Library/04 Networking/Витая пара~20260523-090050.md
diff --git a/90 Library/04 Networking/Иерархическая модель Cisco.md b/.stversions/90 Library/04 Networking/Иерархическая модель Cisco~20260523-090050.md
similarity index 100%
rename from 90 Library/04 Networking/Иерархическая модель Cisco.md
rename to .stversions/90 Library/04 Networking/Иерархическая модель Cisco~20260523-090050.md
diff --git a/90 Library/04 Networking/Инкапсуляция данных.md b/.stversions/90 Library/04 Networking/Инкапсуляция данных~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Инкапсуляция данных.md
rename to .stversions/90 Library/04 Networking/Инкапсуляция данных~20260523-090051.md
diff --git a/90 Library/04 Networking/Коммутатор L3 vs Маршрутизатор.md b/.stversions/90 Library/04 Networking/Коммутатор L3 vs Маршрутизатор~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Коммутатор L3 vs Маршрутизатор.md
rename to .stversions/90 Library/04 Networking/Коммутатор L3 vs Маршрутизатор~20260523-090051.md
diff --git a/90 Library/04 Networking/Модель OSI.md b/.stversions/90 Library/04 Networking/Модель OSI~20260523-090050.md
similarity index 100%
rename from 90 Library/04 Networking/Модель OSI.md
rename to .stversions/90 Library/04 Networking/Модель OSI~20260523-090050.md
diff --git a/90 Library/04 Networking/Пример настройки DHCPv6.md b/.stversions/90 Library/04 Networking/Пример настройки DHCPv6~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Пример настройки DHCPv6.md
rename to .stversions/90 Library/04 Networking/Пример настройки DHCPv6~20260523-090051.md
diff --git a/90 Library/04 Networking/Протоколы/ARP.md b/.stversions/90 Library/04 Networking/Протоколы/ARP~20260523-090050.md
similarity index 100%
rename from 90 Library/04 Networking/Протоколы/ARP.md
rename to .stversions/90 Library/04 Networking/Протоколы/ARP~20260523-090050.md
diff --git a/90 Library/04 Networking/Протоколы/DHCP/DHCP-snooping.md b/.stversions/90 Library/04 Networking/Протоколы/DHCP/DHCP-snooping~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Протоколы/DHCP/DHCP-snooping.md
rename to .stversions/90 Library/04 Networking/Протоколы/DHCP/DHCP-snooping~20260523-090051.md
diff --git a/90 Library/04 Networking/Протоколы/DHCP/DHCP.md b/.stversions/90 Library/04 Networking/Протоколы/DHCP/DHCP~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Протоколы/DHCP/DHCP.md
rename to .stversions/90 Library/04 Networking/Протоколы/DHCP/DHCP~20260523-090051.md
diff --git a/90 Library/04 Networking/Протоколы/DHCP/Dynamic ARP Inspection.md b/.stversions/90 Library/04 Networking/Протоколы/DHCP/Dynamic ARP Inspection~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Протоколы/DHCP/Dynamic ARP Inspection.md
rename to .stversions/90 Library/04 Networking/Протоколы/DHCP/Dynamic ARP Inspection~20260523-090051.md
diff --git a/90 Library/04 Networking/Протоколы/DHCP/Механизм работы - DHCP.md b/.stversions/90 Library/04 Networking/Протоколы/DHCP/Механизм работы - DHCP~20260523-090050.md
similarity index 100%
rename from 90 Library/04 Networking/Протоколы/DHCP/Механизм работы - DHCP.md
rename to .stversions/90 Library/04 Networking/Протоколы/DHCP/Механизм работы - DHCP~20260523-090050.md
diff --git a/90 Library/04 Networking/Протоколы/DHCP/Настройка DHCP - Cisco.md b/.stversions/90 Library/04 Networking/Протоколы/DHCP/Настройка DHCP - Cisco~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Протоколы/DHCP/Настройка DHCP - Cisco.md
rename to .stversions/90 Library/04 Networking/Протоколы/DHCP/Настройка DHCP - Cisco~20260523-090051.md
diff --git a/90 Library/04 Networking/Протоколы/DHCP/Настройка DHCP Snooping и DAI.md b/.stversions/90 Library/04 Networking/Протоколы/DHCP/Настройка DHCP Snooping и DAI~20260523-090050.md
similarity index 100%
rename from 90 Library/04 Networking/Протоколы/DHCP/Настройка DHCP Snooping и DAI.md
rename to .stversions/90 Library/04 Networking/Протоколы/DHCP/Настройка DHCP Snooping и DAI~20260523-090050.md
diff --git a/90 Library/04 Networking/Протоколы/DNS.md b/.stversions/90 Library/04 Networking/Протоколы/DNS~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Протоколы/DNS.md
rename to .stversions/90 Library/04 Networking/Протоколы/DNS~20260523-090051.md
diff --git a/90 Library/04 Networking/Протоколы/ICMP - Internet Control Messag.md b/.stversions/90 Library/04 Networking/Протоколы/ICMP - Internet Control Messag~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Протоколы/ICMP - Internet Control Messag.md
rename to .stversions/90 Library/04 Networking/Протоколы/ICMP - Internet Control Messag~20260523-090051.md
diff --git a/90 Library/04 Networking/Протоколы/IP-адрес.md b/.stversions/90 Library/04 Networking/Протоколы/IP-адрес~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Протоколы/IP-адрес.md
rename to .stversions/90 Library/04 Networking/Протоколы/IP-адрес~20260523-090051.md
diff --git a/90 Library/04 Networking/Протоколы/IPv6.md b/.stversions/90 Library/04 Networking/Протоколы/IPv6~20260523-090050.md
similarity index 100%
rename from 90 Library/04 Networking/Протоколы/IPv6.md
rename to .stversions/90 Library/04 Networking/Протоколы/IPv6~20260523-090050.md
diff --git a/90 Library/04 Networking/Протоколы/TCP vs UDP.md b/.stversions/90 Library/04 Networking/Протоколы/TCP vs UDP~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Протоколы/TCP vs UDP.md
rename to .stversions/90 Library/04 Networking/Протоколы/TCP vs UDP~20260523-090051.md
diff --git a/90 Library/04 Networking/Режимы передачи данных в сетях.md b/.stversions/90 Library/04 Networking/Режимы передачи данных в сетях~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Режимы передачи данных в сетях.md
rename to .stversions/90 Library/04 Networking/Режимы передачи данных в сетях~20260523-090051.md
diff --git a/90 Library/04 Networking/Сегментация сети.md b/.stversions/90 Library/04 Networking/Сегментация сети~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Сегментация сети.md
rename to .stversions/90 Library/04 Networking/Сегментация сети~20260523-090051.md
diff --git a/90 Library/04 Networking/Сетевые устройства.md b/.stversions/90 Library/04 Networking/Сетевые устройства~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Сетевые устройства.md
rename to .stversions/90 Library/04 Networking/Сетевые устройства~20260523-090051.md
diff --git a/90 Library/04 Networking/Утилита Ping.md b/.stversions/90 Library/04 Networking/Утилита Ping~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Утилита Ping.md
rename to .stversions/90 Library/04 Networking/Утилита Ping~20260523-090051.md
diff --git a/90 Library/04 Networking/Широковещательные и коллизионные домены. Коммутация..md b/.stversions/90 Library/04 Networking/Широковещательные и коллизионные домены. Коммутация.~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Широковещательные и коллизионные домены. Коммутация..md
rename to .stversions/90 Library/04 Networking/Широковещательные и коллизионные домены. Коммутация.~20260523-090051.md
diff --git a/90 Library/04 Networking/Широковещательные и коллизионные домены. Маршрутизация..md b/.stversions/90 Library/04 Networking/Широковещательные и коллизионные домены. Маршрутизация.~20260523-090051.md
similarity index 100%
rename from 90 Library/04 Networking/Широковещательные и коллизионные домены. Маршрутизация..md
rename to .stversions/90 Library/04 Networking/Широковещательные и коллизионные домены. Маршрутизация.~20260523-090051.md
diff --git a/90 Library/05 Operating System/Linux/Command Help.md b/.stversions/90 Library/05 Operating System/Linux/Command Help~20260523-090050.md
similarity index 100%
rename from 90 Library/05 Operating System/Linux/Command Help.md
rename to .stversions/90 Library/05 Operating System/Linux/Command Help~20260523-090050.md
diff --git a/90 Library/05 Operating System/Linux/Command Path.md b/.stversions/90 Library/05 Operating System/Linux/Command Path~20260523-090051.md
similarity index 100%
rename from 90 Library/05 Operating System/Linux/Command Path.md
rename to .stversions/90 Library/05 Operating System/Linux/Command Path~20260523-090051.md
diff --git a/90 Library/05 Operating System/Linux/Environment Variables.md b/.stversions/90 Library/05 Operating System/Linux/Environment Variables~20260523-090050.md
similarity index 100%
rename from 90 Library/05 Operating System/Linux/Environment Variables.md
rename to .stversions/90 Library/05 Operating System/Linux/Environment Variables~20260523-090050.md
diff --git a/90 Library/05 Operating System/Linux/File Permissions.md b/.stversions/90 Library/05 Operating System/Linux/File Permissions~20260523-090050.md
similarity index 100%
rename from 90 Library/05 Operating System/Linux/File Permissions.md
rename to .stversions/90 Library/05 Operating System/Linux/File Permissions~20260523-090050.md
diff --git a/90 Library/05 Operating System/Linux/Linux.md b/.stversions/90 Library/05 Operating System/Linux/Linux~20260523-090051.md
similarity index 100%
rename from 90 Library/05 Operating System/Linux/Linux.md
rename to .stversions/90 Library/05 Operating System/Linux/Linux~20260523-090051.md
diff --git a/90 Library/05 Operating System/Linux/Redirects.md b/.stversions/90 Library/05 Operating System/Linux/Redirects~20260523-090051.md
similarity index 100%
rename from 90 Library/05 Operating System/Linux/Redirects.md
rename to .stversions/90 Library/05 Operating System/Linux/Redirects~20260523-090051.md
diff --git a/90 Library/05 Operating System/Linux/Super-user.md b/.stversions/90 Library/05 Operating System/Linux/Super-user~20260523-090051.md
similarity index 100%
rename from 90 Library/05 Operating System/Linux/Super-user.md
rename to .stversions/90 Library/05 Operating System/Linux/Super-user~20260523-090051.md
diff --git a/90 Library/06 Programming/Ruby - массивы.md b/.stversions/90 Library/06 Programming/Ruby - массивы~20260523-090050.md
similarity index 100%
rename from 90 Library/06 Programming/Ruby - массивы.md
rename to .stversions/90 Library/06 Programming/Ruby - массивы~20260523-090050.md
diff --git a/90 Library/06 Programming/Ruby - основы языка.md b/.stversions/90 Library/06 Programming/Ruby - основы языка~20260523-090051.md
similarity index 100%
rename from 90 Library/06 Programming/Ruby - основы языка.md
rename to .stversions/90 Library/06 Programming/Ruby - основы языка~20260523-090051.md
diff --git a/90 Library/06 Programming/Ruby On Rails/Active Storage.md b/.stversions/90 Library/06 Programming/Ruby On Rails/Active Storage~20260523-090050.md
similarity index 100%
rename from 90 Library/06 Programming/Ruby On Rails/Active Storage.md
rename to .stversions/90 Library/06 Programming/Ruby On Rails/Active Storage~20260523-090050.md
diff --git a/90 Library/06 Programming/Ruby On Rails/Rails credentials edit не открывает редактор.md b/.stversions/90 Library/06 Programming/Ruby On Rails/Rails credentials edit не открывает редактор~20260523-090051.md
similarity index 100%
rename from 90 Library/06 Programming/Ruby On Rails/Rails credentials edit не открывает редактор.md
rename to .stversions/90 Library/06 Programming/Ruby On Rails/Rails credentials edit не открывает редактор~20260523-090051.md
diff --git a/90 Library/06 Programming/Ruby On Rails/Ruby On Rails.md b/.stversions/90 Library/06 Programming/Ruby On Rails/Ruby On Rails~20260523-090051.md
similarity index 100%
rename from 90 Library/06 Programming/Ruby On Rails/Ruby On Rails.md
rename to .stversions/90 Library/06 Programming/Ruby On Rails/Ruby On Rails~20260523-090051.md
diff --git a/90 Library/06 Programming/Ruby On Rails/Sidekiq - основа работы.md b/.stversions/90 Library/06 Programming/Ruby On Rails/Sidekiq - основа работы~20260523-090051.md
similarity index 100%
rename from 90 Library/06 Programming/Ruby On Rails/Sidekiq - основа работы.md
rename to .stversions/90 Library/06 Programming/Ruby On Rails/Sidekiq - основа работы~20260523-090051.md
diff --git a/90 Library/07 HomeLab/Infrastructure — ada-dev.md b/.stversions/90 Library/07 HomeLab/Infrastructure — ada-dev~20260523-090050.md
similarity index 100%
rename from 90 Library/07 HomeLab/Infrastructure — ada-dev.md
rename to .stversions/90 Library/07 HomeLab/Infrastructure — ada-dev~20260523-090050.md
diff --git a/90 Library/07 HomeLab/Проблемы дистрибутивов.md b/.stversions/90 Library/07 HomeLab/Проблемы дистрибутивов~20260523-090051.md
similarity index 100%
rename from 90 Library/07 HomeLab/Проблемы дистрибутивов.md
rename to .stversions/90 Library/07 HomeLab/Проблемы дистрибутивов~20260523-090051.md
diff --git a/90 Library/08 Study/УИР.md b/.stversions/90 Library/08 Study/УИР~20260523-090051.md
similarity index 100%
rename from 90 Library/08 Study/УИР.md
rename to .stversions/90 Library/08 Study/УИР~20260523-090051.md
diff --git a/90 Library/09 Sport/L-карнитин.md b/.stversions/90 Library/09 Sport/L-карнитин~20260523-090050.md
similarity index 100%
rename from 90 Library/09 Sport/L-карнитин.md
rename to .stversions/90 Library/09 Sport/L-карнитин~20260523-090050.md
diff --git a/90 Library/09 Sport/Креатин.md b/.stversions/90 Library/09 Sport/Креатин~20260523-090051.md
similarity index 100%
rename from 90 Library/09 Sport/Креатин.md
rename to .stversions/90 Library/09 Sport/Креатин~20260523-090051.md
diff --git a/90 Library/10 Finance/Бухгалтерский учет/Бухгалтерский баланс.md b/.stversions/90 Library/10 Finance/Бухгалтерский учет/Бухгалтерский баланс~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Бухгалтерский учет/Бухгалтерский баланс.md
rename to .stversions/90 Library/10 Finance/Бухгалтерский учет/Бухгалтерский баланс~20260523-090050.md
diff --git a/90 Library/10 Finance/Бухгалтерский учет/Отчет о финансовых результатах.md b/.stversions/90 Library/10 Finance/Бухгалтерский учет/Отчет о финансовых результатах~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Бухгалтерский учет/Отчет о финансовых результатах.md
rename to .stversions/90 Library/10 Finance/Бухгалтерский учет/Отчет о финансовых результатах~20260523-090050.md
diff --git a/90 Library/10 Finance/Инвестиции/Акции.md b/.stversions/90 Library/10 Finance/Инвестиции/Акции~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Инвестиции/Акции.md
rename to .stversions/90 Library/10 Finance/Инвестиции/Акции~20260523-090050.md
diff --git a/90 Library/10 Finance/Инвестиции/База инвестора.md b/.stversions/90 Library/10 Finance/Инвестиции/База инвестора~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Инвестиции/База инвестора.md
rename to .stversions/90 Library/10 Finance/Инвестиции/База инвестора~20260523-090050.md
diff --git a/90 Library/10 Finance/Инвестиции/Дивидендный портфель.md b/.stversions/90 Library/10 Finance/Инвестиции/Дивидендный портфель~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Инвестиции/Дивидендный портфель.md
rename to .stversions/90 Library/10 Finance/Инвестиции/Дивидендный портфель~20260523-090050.md
diff --git a/90 Library/10 Finance/Инвестиции/Золото в портфеле.md b/.stversions/90 Library/10 Finance/Инвестиции/Золото в портфеле~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Инвестиции/Золото в портфеле.md
rename to .stversions/90 Library/10 Finance/Инвестиции/Золото в портфеле~20260523-090051.md
diff --git a/90 Library/10 Finance/Инвестиции/Инвестиционные фонды.md b/.stversions/90 Library/10 Finance/Инвестиции/Инвестиционные фонды~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Инвестиции/Инвестиционные фонды.md
rename to .stversions/90 Library/10 Finance/Инвестиции/Инвестиционные фонды~20260523-090051.md
diff --git a/90 Library/10 Finance/Инвестиции/Инвестиционный портфель.md b/.stversions/90 Library/10 Finance/Инвестиции/Инвестиционный портфель~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Инвестиции/Инвестиционный портфель.md
rename to .stversions/90 Library/10 Finance/Инвестиции/Инвестиционный портфель~20260523-090050.md
diff --git a/90 Library/10 Finance/Инвестиции/Индексное инвестирование.md b/.stversions/90 Library/10 Finance/Инвестиции/Индексное инвестирование~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Инвестиции/Индексное инвестирование.md
rename to .stversions/90 Library/10 Finance/Инвестиции/Индексное инвестирование~20260523-090051.md
diff --git a/90 Library/10 Finance/Инвестиции/Инсайдерская торговля и манипулирование рынком.md b/.stversions/90 Library/10 Finance/Инвестиции/Инсайдерская торговля и манипулирование рынком~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Инвестиции/Инсайдерская торговля и манипулирование рынком.md
rename to .stversions/90 Library/10 Finance/Инвестиции/Инсайдерская торговля и манипулирование рынком~20260523-090050.md
diff --git a/90 Library/10 Finance/Инвестиции/Криптовалюты как инвестиционный актив.md b/.stversions/90 Library/10 Finance/Инвестиции/Криптовалюты как инвестиционный актив~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Инвестиции/Криптовалюты как инвестиционный актив.md
rename to .stversions/90 Library/10 Finance/Инвестиции/Криптовалюты как инвестиционный актив~20260523-090050.md
diff --git a/90 Library/10 Finance/Инвестиции/Облигации с залоговым обеспечением.md b/.stversions/90 Library/10 Finance/Инвестиции/Облигации с залоговым обеспечением~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Инвестиции/Облигации с залоговым обеспечением.md
rename to .stversions/90 Library/10 Finance/Инвестиции/Облигации с залоговым обеспечением~20260523-090051.md
diff --git a/90 Library/10 Finance/Инвестиции/Облигации.md b/.stversions/90 Library/10 Finance/Инвестиции/Облигации~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Инвестиции/Облигации.md
rename to .stversions/90 Library/10 Finance/Инвестиции/Облигации~20260523-090051.md
diff --git a/90 Library/10 Finance/Инвестиции/Оценка акций.md b/.stversions/90 Library/10 Finance/Инвестиции/Оценка акций~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Инвестиции/Оценка акций.md
rename to .stversions/90 Library/10 Finance/Инвестиции/Оценка акций~20260523-090051.md
diff --git a/90 Library/10 Finance/Инвестиции/Риск-профиль инвестора.md b/.stversions/90 Library/10 Finance/Инвестиции/Риск-профиль инвестора~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Инвестиции/Риск-профиль инвестора.md
rename to .stversions/90 Library/10 Finance/Инвестиции/Риск-профиль инвестора~20260523-090051.md
diff --git a/90 Library/10 Finance/Инвестиции/Трейдинг.md b/.stversions/90 Library/10 Finance/Инвестиции/Трейдинг~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Инвестиции/Трейдинг.md
rename to .stversions/90 Library/10 Finance/Инвестиции/Трейдинг~20260523-090050.md
diff --git a/90 Library/10 Finance/Инвестиции/Управление инвестиционным портфелем.md b/.stversions/90 Library/10 Finance/Инвестиции/Управление инвестиционным портфелем~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Инвестиции/Управление инвестиционным портфелем.md
rename to .stversions/90 Library/10 Finance/Инвестиции/Управление инвестиционным портфелем~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Акцизы.md b/.stversions/90 Library/10 Finance/Налоги/Акцизы~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Акцизы.md
rename to .stversions/90 Library/10 Finance/Налоги/Акцизы~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Государственная пошлина.md b/.stversions/90 Library/10 Finance/Налоги/Государственная пошлина~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Государственная пошлина.md
rename to .stversions/90 Library/10 Finance/Налоги/Государственная пошлина~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Государственный бюджет.md b/.stversions/90 Library/10 Finance/Налоги/Государственный бюджет~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Государственный бюджет.md
rename to .stversions/90 Library/10 Finance/Налоги/Государственный бюджет~20260523-090050.md
diff --git a/90 Library/10 Finance/Налоги/Доходы в целях налога на прибыль.md b/.stversions/90 Library/10 Finance/Налоги/Доходы в целях налога на прибыль~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Доходы в целях налога на прибыль.md
rename to .stversions/90 Library/10 Finance/Налоги/Доходы в целях налога на прибыль~20260523-090050.md
diff --git a/90 Library/10 Finance/Налоги/Законодательная база.md b/.stversions/90 Library/10 Finance/Налоги/Законодательная база~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Законодательная база.md
rename to .stversions/90 Library/10 Finance/Налоги/Законодательная база~20260523-090050.md
diff --git a/90 Library/10 Finance/Налоги/Кривая Лаффера.md b/.stversions/90 Library/10 Finance/Налоги/Кривая Лаффера~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Кривая Лаффера.md
rename to .stversions/90 Library/10 Finance/Налоги/Кривая Лаффера~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Методы признания доходов и расходов.md b/.stversions/90 Library/10 Finance/Налоги/Методы признания доходов и расходов~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Методы признания доходов и расходов.md
rename to .stversions/90 Library/10 Finance/Налоги/Методы признания доходов и расходов~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Налог на добавленную стоимость.md b/.stversions/90 Library/10 Finance/Налоги/Налог на добавленную стоимость~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Налог на добавленную стоимость.md
rename to .stversions/90 Library/10 Finance/Налоги/Налог на добавленную стоимость~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Налог на доходы физических лиц (НДФЛ).md b/.stversions/90 Library/10 Finance/Налоги/Налог на доходы физических лиц (НДФЛ)~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Налог на доходы физических лиц (НДФЛ).md
rename to .stversions/90 Library/10 Finance/Налоги/Налог на доходы физических лиц (НДФЛ)~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Налог на имущество ФЛ.md b/.stversions/90 Library/10 Finance/Налоги/Налог на имущество ФЛ~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Налог на имущество ФЛ.md
rename to .stversions/90 Library/10 Finance/Налоги/Налог на имущество ФЛ~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Налог на имущество организаций.md b/.stversions/90 Library/10 Finance/Налоги/Налог на имущество организаций~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Налог на имущество организаций.md
rename to .stversions/90 Library/10 Finance/Налоги/Налог на имущество организаций~20260523-090050.md
diff --git a/90 Library/10 Finance/Налоги/Налог на прибыль.md b/.stversions/90 Library/10 Finance/Налоги/Налог на прибыль~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Налог на прибыль.md
rename to .stversions/90 Library/10 Finance/Налоги/Налог на прибыль~20260523-090050.md
diff --git a/90 Library/10 Finance/Налоги/Налоговая декларация.md b/.stversions/90 Library/10 Finance/Налоги/Налоговая декларация~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Налоговая декларация.md
rename to .stversions/90 Library/10 Finance/Налоги/Налоговая декларация~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Налоговая нагрузка.md b/.stversions/90 Library/10 Finance/Налоги/Налоговая нагрузка~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Налоговая нагрузка.md
rename to .stversions/90 Library/10 Finance/Налоги/Налоговая нагрузка~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Налоговая система (Классификация налогов).md b/.stversions/90 Library/10 Finance/Налоги/Налоговая система (Классификация налогов)~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Налоговая система (Классификация налогов).md
rename to .stversions/90 Library/10 Finance/Налоги/Налоговая система (Классификация налогов)~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Налоговые вычеты.md b/.stversions/90 Library/10 Finance/Налоги/Налоговые вычеты~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Налоговые вычеты.md
rename to .stversions/90 Library/10 Finance/Налоги/Налоговые вычеты~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Налоговый контроль (камеральные, выездные проверки).md b/.stversions/90 Library/10 Finance/Налоги/Налоговый контроль (камеральные, выездные проверки)~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Налоговый контроль (камеральные, выездные проверки).md
rename to .stversions/90 Library/10 Finance/Налоги/Налоговый контроль (камеральные, выездные проверки)~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Налогообложение в России.md b/.stversions/90 Library/10 Finance/Налоги/Налогообложение в России~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Налогообложение в России.md
rename to .stversions/90 Library/10 Finance/Налоги/Налогообложение в России~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Налогоплательщики и объекты налога на прибыль организаций.md b/.stversions/90 Library/10 Finance/Налоги/Налогоплательщики и объекты налога на прибыль организаций~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Налогоплательщики и объекты налога на прибыль организаций.md
rename to .stversions/90 Library/10 Finance/Налоги/Налогоплательщики и объекты налога на прибыль организаций~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Ответственность (санкции, административная и уголовная).md b/.stversions/90 Library/10 Finance/Налоги/Ответственность (санкции, административная и уголовная)~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Ответственность (санкции, административная и уголовная).md
rename to .stversions/90 Library/10 Finance/Налоги/Ответственность (санкции, административная и уголовная)~20260523-090050.md
diff --git a/90 Library/10 Finance/Налоги/Производные финансовые инструменты.md b/.stversions/90 Library/10 Finance/Налоги/Производные финансовые инструменты~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Производные финансовые инструменты.md
rename to .stversions/90 Library/10 Finance/Налоги/Производные финансовые инструменты~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Разница метода по отгрузке и по оплате.md b/.stversions/90 Library/10 Finance/Налоги/Разница метода по отгрузке и по оплате~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Разница метода по отгрузке и по оплате.md
rename to .stversions/90 Library/10 Finance/Налоги/Разница метода по отгрузке и по оплате~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Расходы в целях налога на прибыль.md b/.stversions/90 Library/10 Finance/Налоги/Расходы в целях налога на прибыль~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Расходы в целях налога на прибыль.md
rename to .stversions/90 Library/10 Finance/Налоги/Расходы в целях налога на прибыль~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Специальные налоги организаций.md b/.stversions/90 Library/10 Finance/Налоги/Специальные налоги организаций~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Специальные налоги организаций.md
rename to .stversions/90 Library/10 Finance/Налоги/Специальные налоги организаций~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Специальные налоговые режимы.md b/.stversions/90 Library/10 Finance/Налоги/Специальные налоговые режимы~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Специальные налоговые режимы.md
rename to .stversions/90 Library/10 Finance/Налоги/Специальные налоговые режимы~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Страховые взносы.md b/.stversions/90 Library/10 Finance/Налоги/Страховые взносы~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Страховые взносы.md
rename to .stversions/90 Library/10 Finance/Налоги/Страховые взносы~20260523-090050.md
diff --git a/90 Library/10 Finance/Налоги/Субъекты налоговой системы (права и обязанности).md b/.stversions/90 Library/10 Finance/Налоги/Субъекты налоговой системы (права и обязанности)~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Субъекты налоговой системы (права и обязанности).md
rename to .stversions/90 Library/10 Finance/Налоги/Субъекты налоговой системы (права и обязанности)~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Сущность и история налогов.md b/.stversions/90 Library/10 Finance/Налоги/Сущность и история налогов~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Сущность и история налогов.md
rename to .stversions/90 Library/10 Finance/Налоги/Сущность и история налогов~20260523-090051.md
diff --git a/90 Library/10 Finance/Налоги/Таможенные пошлины.md b/.stversions/90 Library/10 Finance/Налоги/Таможенные пошлины~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Таможенные пошлины.md
rename to .stversions/90 Library/10 Finance/Налоги/Таможенные пошлины~20260523-090050.md
diff --git a/90 Library/10 Finance/Налоги/Функции налогов и экономические циклы.md b/.stversions/90 Library/10 Finance/Налоги/Функции налогов и экономические циклы~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Налоги/Функции налогов и экономические циклы.md
rename to .stversions/90 Library/10 Finance/Налоги/Функции налогов и экономические циклы~20260523-090051.md
diff --git a/90 Library/10 Finance/Экономическая Безопасность/Индикаторы экономической безопасность.md b/.stversions/90 Library/10 Finance/Экономическая Безопасность/Индикаторы экономической безопасность~20260523-090050.md
similarity index 100%
rename from 90 Library/10 Finance/Экономическая Безопасность/Индикаторы экономической безопасность.md
rename to .stversions/90 Library/10 Finance/Экономическая Безопасность/Индикаторы экономической безопасность~20260523-090050.md
diff --git a/90 Library/10 Finance/Экономическая Безопасность/Экономическая безопасность - база.md b/.stversions/90 Library/10 Finance/Экономическая Безопасность/Экономическая безопасность - база~20260523-090051.md
similarity index 100%
rename from 90 Library/10 Finance/Экономическая Безопасность/Экономическая безопасность - база.md
rename to .stversions/90 Library/10 Finance/Экономическая Безопасность/Экономическая безопасность - база~20260523-090051.md
diff --git a/90 Library/11 Machine Learning/Backpropagation для многослойной нейронной сети.md b/.stversions/90 Library/11 Machine Learning/Backpropagation для многослойной нейронной сети~20260523-090051.md
similarity index 100%
rename from 90 Library/11 Machine Learning/Backpropagation для многослойной нейронной сети.md
rename to .stversions/90 Library/11 Machine Learning/Backpropagation для многослойной нейронной сети~20260523-090051.md
diff --git a/90 Library/11 Machine Learning/Backpropagation для однослойного перцептрона.md b/.stversions/90 Library/11 Machine Learning/Backpropagation для однослойного перцептрона~20260523-090051.md
similarity index 100%
rename from 90 Library/11 Machine Learning/Backpropagation для однослойного перцептрона.md
rename to .stversions/90 Library/11 Machine Learning/Backpropagation для однослойного перцептрона~20260523-090051.md
diff --git a/90 Library/11 Machine Learning/Алгоритм обучения сети Кохонена.md b/.stversions/90 Library/11 Machine Learning/Алгоритм обучения сети Кохонена~20260523-090051.md
similarity index 100%
rename from 90 Library/11 Machine Learning/Алгоритм обучения сети Кохонена.md
rename to .stversions/90 Library/11 Machine Learning/Алгоритм обучения сети Кохонена~20260523-090051.md
diff --git a/90 Library/11 Machine Learning/Линейные модели.md b/.stversions/90 Library/11 Machine Learning/Линейные модели~20260523-090051.md
similarity index 100%
rename from 90 Library/11 Machine Learning/Линейные модели.md
rename to .stversions/90 Library/11 Machine Learning/Линейные модели~20260523-090051.md
diff --git a/90 Library/11 Machine Learning/Метрические алгоритмы.md b/.stversions/90 Library/11 Machine Learning/Метрические алгоритмы~20260523-090051.md
similarity index 100%
rename from 90 Library/11 Machine Learning/Метрические алгоритмы.md
rename to .stversions/90 Library/11 Machine Learning/Метрические алгоритмы~20260523-090051.md
diff --git a/90 Library/11 Machine Learning/Нейронная сеть Кохонена.md b/.stversions/90 Library/11 Machine Learning/Нейронная сеть Кохонена~20260523-090051.md
similarity index 100%
rename from 90 Library/11 Machine Learning/Нейронная сеть Кохонена.md
rename to .stversions/90 Library/11 Machine Learning/Нейронная сеть Кохонена~20260523-090051.md
diff --git a/90 Library/11 Machine Learning/Нейронные сети.md b/.stversions/90 Library/11 Machine Learning/Нейронные сети~20260523-090051.md
similarity index 100%
rename from 90 Library/11 Machine Learning/Нейронные сети.md
rename to .stversions/90 Library/11 Machine Learning/Нейронные сети~20260523-090051.md
diff --git a/90 Library/11 Machine Learning/Обратное распространение ошибки.md b/.stversions/90 Library/11 Machine Learning/Обратное распространение ошибки~20260523-090050.md
similarity index 100%
rename from 90 Library/11 Machine Learning/Обратное распространение ошибки.md
rename to .stversions/90 Library/11 Machine Learning/Обратное распространение ошибки~20260523-090050.md
diff --git a/90 Library/11 Machine Learning/Обучение без учителя. Алгоритм Хебба.md b/.stversions/90 Library/11 Machine Learning/Обучение без учителя. Алгоритм Хебба~20260523-090051.md
similarity index 100%
rename from 90 Library/11 Machine Learning/Обучение без учителя. Алгоритм Хебба.md
rename to .stversions/90 Library/11 Machine Learning/Обучение без учителя. Алгоритм Хебба~20260523-090051.md
diff --git a/90 Library/11 Machine Learning/Персептрон.md b/.stversions/90 Library/11 Machine Learning/Персептрон~20260523-090050.md
similarity index 100%
rename from 90 Library/11 Machine Learning/Персептрон.md
rename to .stversions/90 Library/11 Machine Learning/Персептрон~20260523-090050.md
diff --git a/90 Library/11 Machine Learning/Предобработка данных для нейронных сетей.md b/.stversions/90 Library/11 Machine Learning/Предобработка данных для нейронных сетей~20260523-090050.md
similarity index 100%
rename from 90 Library/11 Machine Learning/Предобработка данных для нейронных сетей.md
rename to .stversions/90 Library/11 Machine Learning/Предобработка данных для нейронных сетей~20260523-090050.md
diff --git a/90 Library/11 Machine Learning/Сеть Хопфилда.md b/.stversions/90 Library/11 Machine Learning/Сеть Хопфилда~20260523-090051.md
similarity index 100%
rename from 90 Library/11 Machine Learning/Сеть Хопфилда.md
rename to .stversions/90 Library/11 Machine Learning/Сеть Хопфилда~20260523-090051.md
diff --git a/90 Library/11 Machine Learning/Сеть Хэмминга.md b/.stversions/90 Library/11 Machine Learning/Сеть Хэмминга~20260523-090050.md
similarity index 100%
rename from 90 Library/11 Machine Learning/Сеть Хэмминга.md
rename to .stversions/90 Library/11 Machine Learning/Сеть Хэмминга~20260523-090050.md
diff --git a/90 Library/90 Other/Guide - Статья.md b/.stversions/90 Library/90 Other/Guide - Статья~20260523-090051.md
similarity index 100%
rename from 90 Library/90 Other/Guide - Статья.md
rename to .stversions/90 Library/90 Other/Guide - Статья~20260523-090051.md
diff --git a/90 Library/90 Other/Гайд на научников.md b/.stversions/90 Library/90 Other/Гайд на научников~20260523-090051.md
similarity index 100%
rename from 90 Library/90 Other/Гайд на научников.md
rename to .stversions/90 Library/90 Other/Гайд на научников~20260523-090051.md
diff --git a/90 Library/90 Other/Сканер отпечатка пальцев.md b/.stversions/90 Library/90 Other/Сканер отпечатка пальцев~20260523-090051.md
similarity index 100%
rename from 90 Library/90 Other/Сканер отпечатка пальцев.md
rename to .stversions/90 Library/90 Other/Сканер отпечатка пальцев~20260523-090051.md
diff --git a/.stversions/AGENTS~20260523-090051.md b/.stversions/AGENTS~20260523-090051.md
new file mode 100644
index 0000000..ebd7c17
--- /dev/null
+++ b/.stversions/AGENTS~20260523-090051.md
@@ -0,0 +1,213 @@
+---
+created: 2026-04-20
+updated: 2026-05-17
+title: Агент — контекст и инструкции для этого хранилища
+---
+
+# Агент — контекст и инструкции для этого хранилища
+
+## Кто владелец
+
+- Учится на специалиста по **машинному обучению** и **анализу данных** с упором на финансовые структуры
+- Работает **Ruby-разработчиком** и **DevSecOps-инженером**
+- Увлекается **Linux**, **HomeLab**, **3D печатью** и **саморазвитием**.
+
+## Роль агента
+
+Vault — второй мозг владельца. Агент помогает структурировать заметки, находить связи, оформлять материалы, автоматизировать рутинные изменения и поддерживать порядок в хранилище.
+
+Агент — соавтор `90 Library/`: дорабатывает черновики из Inbox, создаёт заметки из своих знаний по запросу, проставляет связи и следит за здоровьем графа.
+
+Инициатива, идеи и знания исходят от владельца. Агент дополняет, уточняет и аккуратно приводит материалы к устойчивой форме, не заменяя авторский стиль.
+
+## Правила работы
+
+- **Язык ответов:** русский
+- **Длина:** коротко и по делу
+- **Перед действием:** сначала краткий план с обоснованием; для массовых правок, перемещений и workflow-действий ждать подтверждения
+- **Стиль:** прагматично, без лишней мотивации и украшений
+- **Замечания по хранилищу:** говорить сразу, если видны проблемы со структурой, YAML, статусами или связями
+- **Изменения файлов:** не трогать несвязанные пользовательские правки и не удалять содержимое без явного запроса
+
+## Границы работы
+
+- Писать только в `00 Inbox/`, `01 Ideas/` и `90 Library/`, если пользователь явно не разрешил другое
+- Никогда не менять без прямого запроса: `02 Projects/`, `03 Journal/`, `99 System/`
+- `99 System/Template/` читать можно, менять только по явному запросу
+- При сомнении считать заметку пользовательским материалом и сначала объяснить риск изменения
+
+## Работа с заметками
+
+Шаблоны находятся в `99 System/Template/`. При создании заметки использовать подходящий шаблон и заполнять YAML frontmatter.
+
+| Шаблон | Когда использовать |
+|--------|-------------------|
+| `Base Note.md` | Любая концептуальная заметка |
+| `Study Item.md` | Книги, курсы, материалы для изучения |
+| `Daily Note.md` | Ежедневные заметки |
+| `Contact Template.md` | Контакты |
+| `Travel Item.md` | Путешествия |
+
+**Обязательные properties:**
+
+- `status`: `seed` → `processing` → `stable`
+- `type`: `concept` / `moc` / `lab` / `knowledge` / `guide`
+- `tags`: заполнять осмысленно
+- `created` и `updated`: актуальные даты
+- `title`: всегда заполнять
+
+## Принципы хранилища
+
+- Минимализм: не усложнять плагинами, лишними папками и искусственными структурами
+- Vault охватывает всё: учёбу, работу, личное, лабораторные заметки и справочные материалы
+- Хорошая заметка — та, что написал сам владелец
+- Задача агента — улучшать форму, связность и пригодность заметок к повторному использованию
+- Новые материалы лучше связывать с уже существующими заметками, чем создавать изолированные файлы
+
+## Принципы LLM Wiki
+
+- LLM Wiki — это навигационный слой для человека и LLM: заметки должны быть понятны без скрытого контекста
+- Каждая заметка должна отвечать на один главный вопрос или описывать одну устойчивую сущность
+- Названия должны быть прямыми и поисковыми, без временных формулировок вроде `разное`, `черновик`, `заметки`
+- В начале заметки полезно фиксировать краткое назначение: что это, зачем нужно, с чем связано
+- Связи важнее иерархии: использовать `[[wikilinks]]` к понятиям, источникам, MOC и соседним темам
+- Связи должны быть осмысленными: не добавлять ссылку только потому, что слово совпало
+- YAML нужен для машинной навигации, текст заметки — для человеческого понимания
+- Не превращать заметку в пересказ ради полноты; сохранять авторскую мысль, выводы и применимость
+- Если материал сырой, оставлять `status: seed`; если структурируется — `processing`; если пригоден как справка — `stable`
+- Для LLM важны явные контексты: расшифровывать сокращения, указывать область применения и ограничения
+- Дубли лучше объединять через ссылки и MOC, а не плодить почти одинаковые заметки
+- Любое автоматическое улучшение должно повышать читаемость, связность или повторное использование
+- Используем Inbox как единственный источник правды, если я туда закинул новую заметку по уже существующей теме, то стараемся обновить информацию в wiki
+
+## Известные проблемы
+
+1. Заметки зависают в `seed`-статусе и не переходят в `stable`
+2. Нет регулярного review старых заметок
+3. Трудно поддерживать привычку ежедневных заметок
+4. Некоторые темы проходят без фиксации
+
+## Структура Library
+
+| Раздел | Тема |
+|--------|------|
+| `03 Math` | Статистика: ВР, ФА, кластеры, ДА, нечёткие множества |
+| `04 Networking` | OSI, VLAN, DHCP, Cisco, протоколы |
+| `10 Finance` | Налоговая система РФ, бухучёт |
+| `02 DevOps` | Ansible, Docker, Kubernetes, Terraform |
+| `05 OS` | Linux: права, env, редиректы |
+| `06 Programming` | Ruby on Rails, Sidekiq |
+| `11 ML` | Линейные модели, метрические алгоритмы |
+| `08 Study` | Конспекты курсов |
+
+## Практические правила для агента
+
+- Перед созданием новой заметки проверить, нет ли уже близкой по смыслу заметки
+- Если заметка учебная, искать место в `90 Library/08 Study/` или тематическом разделе `90 Library/`
+- Если заметка относится к проекту или лабораторной работе, сначала проверить `02 Projects/`
+- Идеи из `01 Ideas/` не переносить в `90 Library/` без прямого запроса; оформлять на месте, сохраняя авторский стиль, выделяя основную мысль и добавляя релевантные `[[wikilinks]]`
+- Для ежедневных записей использовать `03 Journal/`
+- При массовых правках сначала показать план и область изменений
+- Не переименовывать и не перемещать заметки без явной причины, потому что это может ломать ссылки
+- Если не хватает контекста, задать один конкретный вопрос вместо серии уточнений
+
+## Workflow: Ingest
+
+Триггер: команда `ingest` или новые файлы в `00 Inbox/`.
+
+Если ingest запрошен для файла в `01 Ideas/`, не переносить его в `90 Library/` и не архивировать. Нужно оформить саму идею на месте: сохранить авторскую формулировку, выделить основную мысль, добавить структуру и релевантные ссылки на существующие заметки.
+- если в исходнике есть картинки, изучить их и принять решение - вынести из них информацию в заметку или оставить картинку в конечной заметке.
+
+Перед выполнением вывести план:
+
+- какие файлы из `00 Inbox/` будут обработаны
+- какой шаблон используется для каждого файла
+- куда создаётся итоговая заметка в `90 Library/`
+- какие `[[wikilinks]]` будут проставлены к существующим заметкам
+
+После подтверждения:
+1. Найти связанные заметки на тему черновика и решить, следует дополнить уже существующие заметки или создать новую.
+2. Создать/дополнить заметку в `90 Library/` по подходящему шаблону
+3. Доработать черновик: расширить, уточнить формулировки, структурировать
+4. Заполнить YAML frontmatter, поставить `status: seed`
+5. Добавить осмысленные `[[wikilinks]]`
+6. Переместить исходник в `99 System/Archive/` и добавить в YAML frontmatter созданной/дополненной заметки поле `source: "[[имя_файла]]"` со ссылкой на архивный файл
+7. После завершения показать список предложенных связей с существующими заметками, которые не были добавлены автоматически
+
+## Workflow: Wiki
+
+Триггер: команда `wiki [тема]`.
+
+Агент создаёт заметку из своих знаний без исходника в Inbox.
+
+Перед выполнением вывести план:
+
+- тема и предлагаемое название заметки
+- категория в `90 Library/`
+- ключевые разделы контента
+- предполагаемые `[[wikilinks]]` с существующими заметками
+
+После подтверждения:
+
+1. Создать заметку в `90 Library/` по шаблону `Base Note.md`
+2. Наполнить содержимым, сохраняя краткость и применимость
+3. Заполнить YAML frontmatter, поставить `status: seed`
+4. Проставить осмысленные `[[wikilinks]]`
+5. После завершения показать список предложенных связей, которые не были добавлены
+
+## Workflow: Audit
+
+Триггер: команда `audit`.
+
+Проверить здоровье графа знаний:
+
+- orphan notes — заметки без входящих ссылок
+- broken wikilinks — ссылки на несуществующие заметки; если сломанная ссылка находится в поле `source:` YAML frontmatter, заменить `"[[имя_файла]]"` на просто `"имя_файла"` (plain text) во всех затронутых заметках
+- изолированные кластеры — группы заметок без связей с остальным графом
+- предложения — какие существующие заметки стоит связать между собой
+
+Вывести отчёт по каждому пункту с конкретными файлами.
+
+## Workflow: Remind
+
+Триггер: команда `remind`.
+
+Вывести топ-5 заметок, которые стоит перечитать или дописать.
+
+Критерии отбора:
+
+- `status: seed` или `status: processing`;
+- заметка давно не обновлялась;
+- заметка выглядит важной для текущих направлений владельца: ML/DS, финансы, DevSecOps, Linux/HomeLab;
+- заметка имеет слабые связи, мало контекста или очевидные TODO/недописанные разделы.
+
+Формат ответа:
+
+- ссылка на заметку через `[[wikilink]]`;
+- короткая причина, почему её стоит перечитать или дописать;
+- конкретное предлагаемое действие: перечитать, дописать, связать, обновить, стабилизировать.
+
+Не менять файлы автоматически. Только вывести список и рекомендации.
+
+## Workflow: Agent Test
+
+Триггер: команда `agent-test`.
+
+Если агент прочитал и применяет `AGENTS.md`, он должен ответить ровно:
+
+```text
+AGENTS_OK
+```
+
+Не добавлять пояснения, списки или другой текст.
+
+## Workflow: Query
+
+Триггер: вопрос по содержимому vault.
+
+Перед ответом указать:
+
+- какие заметки были прочитаны
+- на что опирается ответ
+
+Отвечать по содержимому `90 Library/`, цитировать конкретные заметки через `[[links]]`. Если ответа в vault нет, сказать это явно и отделить выводы Codex от фактов из заметок.
diff --git a/00 Inbox/Hello.md b/00 Inbox/Hello.md
new file mode 100644
index 0000000..c893cc2
--- /dev/null
+++ b/00 Inbox/Hello.md
@@ -0,0 +1,6 @@
+---
+created: 2026-05-23
+updated: 2026-05-23
+---
+Это новая рукамииная
+yupпи
\ No newline at end of file
diff --git a/00 Inbox/Untitled.md b/00 Inbox/Untitled.md
new file mode 100644
index 0000000..e69de29
diff --git a/02 Projects/УИР.md b/02 Projects/УИР.md
new file mode 100644
index 0000000..24cd616
--- /dev/null
+++ b/02 Projects/УИР.md
@@ -0,0 +1,47 @@
+---
+status: seed
+type: knowledge
+tags:
+ - study
+ - research
+created: 2025-12-17
+updated: 2026-05-07
+title: УИР
+---
+
+# УИР
+
+**УИР** — учебно-исследовательская работа.
+
+Тема: анализ предметной области и существующих решений в сфере контроля посещаемости в вузах.
+
+## Фокус исследования
+
+Работа должна описать:
+
+- предметную область контроля посещаемости;
+- типовые процессы учёта посещаемости в вузах;
+- существующие технические решения;
+- ограничения и риски таких решений;
+- критерии сравнения подходов.
+
+## Возможные направления анализа
+
+- ручной учёт посещаемости;
+- электронные журналы;
+- QR-коды и одноразовые коды;
+- RFID/NFC-карты;
+- биометрические методы;
+- интеграция с LMS или внутренними системами вуза.
+
+## Вопросы для раскрытия
+
+- Кто является пользователем системы: студент, преподаватель, администратор?
+- Как подтверждается факт присутствия?
+- Какие ошибки и злоупотребления возможны?
+- Какие персональные данные обрабатываются?
+- Какие требования к безопасности и доступности системы важны?
+
+## Связанные заметки
+
+Явных устойчивых связей пока нет.
diff --git a/90 Library/Containers/Apache Mesos.md b/90 Library/Containers/Apache Mesos.md
new file mode 100644
index 0000000..ca04e7d
--- /dev/null
+++ b/90 Library/Containers/Apache Mesos.md
@@ -0,0 +1,46 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - containerization
+created: 2026-02-13
+updated: 2026-05-07
+title: Apache Mesos
+---
+
+# Apache Mesos
+
+- инструмент менеджмента кластерных решений по оркестрации контейнерных и не-контейнерных нагрузок.
+
+Архитектура основана на трех составляющих:
+
+
+
+1. Узлы управления (master node)
+2. Рабочие узлы (agent)
+3. Фреймворки (framework)
+
+Одновременно могут использоваться несколько фреймворки - именно они запускают рабочие нагрузки.
+
+Фреймворки состоят из:
+
+1. Планировщик фреймворка (scheduler)
+2. Исполнитель фреймворка (executor)
+
+Планировки устанавливается на всех узлах, а исполнитель выполняет задачи на рабочих узлах.
+
+Master-узлы предоставляют ресурсы используемым фреймворкам, а Scheduler фреймворка выбирает, на каких ресурсах agent-узлов Executor будет выполнять рабочее задание.
+
+Популярные фреймворки:
+
+1. Marathon (оркестрация контейнерных нагрузок)
+2. Apache Aurora (оркестрация рабочих cron-заданий) - deprecated*
+3. Mesosphere dc/os (операционная система на базе Apache mesos и Marathon.
+ Имеется community и enterprise-версии. ) - deprecated
+4. Mesosphere dc/os 2.0 (Kubernetes-совместимый фреймворк - nobest (не готово)
+
+Другие решения:
+[[Docker Swarm]]
+[[Kubernetes]]
+[[HashiCorp Nomad]]
diff --git a/90 Library/Containers/Docker Swarm.md b/90 Library/Containers/Docker Swarm.md
new file mode 100644
index 0000000..562ff5a
--- /dev/null
+++ b/90 Library/Containers/Docker Swarm.md
@@ -0,0 +1,59 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - containerization
+ - docker
+created: 2026-02-13
+updated: 2026-05-07
+title: Docker Swarm
+---
+
+# Docker Swarm
+
+- встроенное в docker решение по обеспечению оркестрации контейнеров
+- оркестрирует только контейнеры и причем только docker
+- но весь прост в освоении
+
+
+
+Архитектура делится на:
+
+1. Узлы управления (master)
+2. Рабочие узлы (worker)
+
+Docker Swarm не поддерживает шаблонизацию
+
+---
+
+Swarm поддерживает следующие типы сетей:
+
+- bridge
+- overlay
+- ingress (overlay с возможностью балансировки трафика)
+
+В Swarm есть поддержка **service-discovering** (обнаружение сервисов)
+
+Работа с персистентным хранением решается через Volumes.
+
+Нет автоскейлинга (масштабирования)
+
+Зато есть поддержка паттерна **rolling update** (постепенное обновление сервисов без downtime)
+
+Docker Swarm хорошо интегрируется с инструментами мониторинга.
+
+Существует встроенное хранилище секретами - docker secrets.
+
+Есть mTLS
+
+Сетевые политики (network policy) не поддерживаются.
+
+Другие решения:
+[[Apache Mesos]]
+[[Kubernetes]]
+[[HashiCorp Nomad]]
+
+## Связанные заметки
+- [[Сегментация сети]] — network policy в Swarm (не поддерживается нативно) решает ту же задачу изоляции трафика, что VLAN в физической сети
+- [[CA и NGINX]] — встроенный mTLS между нодами Swarm использует ту же PKI-инфраструктуру, что и SSL-сертификаты в NGINX
diff --git a/90 Library/Containers/Docker/Docker - Дополнительные знания.md b/90 Library/Containers/Docker/Docker - Дополнительные знания.md
new file mode 100644
index 0000000..12d0716
--- /dev/null
+++ b/90 Library/Containers/Docker/Docker - Дополнительные знания.md
@@ -0,0 +1,40 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - containerization
+ - docker
+created: 2025-12-17
+updated: 2026-05-07
+title: Docker - Дополнительные Знания
+---
+
+# Docker - Дополнительные Знания
+
+## Запуск Контейнера С Непривилегированным Пользователем
+
+Рассмотрим пример работы с непривилегированным пользователем:
+
+- не использовать root внутри контейнера и не запускать его с повышенными привелегиями
+- создать пользователя можно сразу создать в Dockerfile
+- переключить пользователя можно с помощью директивы **USER** в Dockerfile
+
+```dockerfile
+FROM mariadb
+USER 999
+```
+
+## Rootless-mode - Podman
+
+Docker решил предпринять попытки отказаться от docker daemon и docker socket с root привилегиями и разрабатывает концепцию rootless-mode
+
+- Идея нетривиальна в реализации, так как возникают особенности установки бинарников и запуска скриптов.
+- Логичной заменой есть Podman, написанный на golang, она уже rootless и daemonless по умолчанию.
+- Podman обратно совместим в docker (в т.ч. собирает свои образы из Dockerfile)
+- Существует podman builder, позволяющий описывать образы с помощью **bash**.
+- Практически все команды докера существуют в подмане.
+
+## Связанные заметки
+- [[Super-user]] — "не использовать root внутри контейнера" — прямое применение принципа наименьших привилегий из Linux; rootless Podman реализует его на уровне демона
+- [[Проблемы дистрибутивов]] — реальный кейс: запуск Rails в контейнере как решение проблемы OpenSSL на Arch Linux
\ No newline at end of file
diff --git a/90 Library/Containers/Docker/Images, Dockerfile - Docker.md b/90 Library/Containers/Docker/Images, Dockerfile - Docker.md
new file mode 100644
index 0000000..91f28e1
--- /dev/null
+++ b/90 Library/Containers/Docker/Images, Dockerfile - Docker.md
@@ -0,0 +1,91 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - containerization
+ - docker
+created: 2025-12-17
+updated: 2026-05-07
+title: Images, Dockerfile - Docker
+---
+
+# Images, Dockerfile - Docker
+
+Запуск контейнеров происходит на основе images (образов). Образы собираются с помощью Dockerfile.
+
+Основные инструкции в Dockerfile:
+
+- **FROM** - использование базового образа
+- **RUN** - выполнение команд и создание слоя образа
+- **COPY** - копирование в контейнер файлов и папок
+- **ADD** - аналогично COPY, но с распаковкой архивов
+
+Дополнительные:
+
+- _LABEL_ - описание метаданных
+- _ENV_ - задание переменных среды
+- _CMD_ - описание команд с аргументами для выполнения при запуске контейнера
+- _WORKDIR_ - задание рабочей директории для следующей инструкции
+- _ARG_ - задание переменных для передачи во время сборки
+- _ENTRYPOINT_ - предоставление команды с аргументами для вызова во время выполнения контейнера
+- _VOLUME_ - создание точки монтирования для работы с docker volume
+- _EXPOSE_ - открытие порта в контейнере
+
+> Все эти команды создают отдельный слой (layer) для сборки контейнера
+
+## Оптимизация Образа
+
+```dockerfile
+FROM ubuntu
+
+RUN apt update
+RUN apt install python3 -y
+RUN apt install python3-dev -y
+```
+
+- Сокращение инструкций **RUN** (уменьшение количества слоев)
+
+```dockerfile
+FROM ubuntu
+
+RUN apt update
+RUN apt install python3 python3-dev -y
+```
+
+> Docker будет пересобирать только те слои, которые были изменены
+
+```dockerfile
+FROM ubuntu
+
+RUN apt update && \
+ apt install python3 python3-dev -y
+```
+
+- Удаление кеша пакетных менеджеров
+
+```dockerfile
+RUN apt update && \
+ apt install python3 python3-dev -y \
+ rm -rf /var/lib/apt/lists/*
+```
+
+- Удаление файлов в той же инструкции, где их создавали
+- Инструкции, которые предположительно будут часто изменяться, ставить ниже остальных
+- Сокращение количество инструкций **COPY**
+
+```dockerfile
+RUN apt update && \
+ apt install python3 python3-dev -y \
+ rm -rf /var/lib/apt/lists/*
+
+COPY file1 file2 file3 ./dir
+```
+
+- Использование легковесных базовых образов, где есть такая возможность
+
+
+
+## Связанные заметки
+- [[Environment Variables]] — инструкция `ENV` в Dockerfile устанавливает переменные окружения внутри контейнера; это расширение того же механизма Linux env vars
+- [[Volume - Docker]] — инструкция `VOLUME` в Dockerfile объявляет точки монтирования для Docker Volumes
\ No newline at end of file
diff --git a/90 Library/Containers/Docker/Multistaging - Docker.md b/90 Library/Containers/Docker/Multistaging - Docker.md
new file mode 100644
index 0000000..23f1e7c
--- /dev/null
+++ b/90 Library/Containers/Docker/Multistaging - Docker.md
@@ -0,0 +1,31 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - containerization
+ - docker
+created: 2025-12-17
+updated: 2026-05-07
+title: Multistaging - Docker
+---
+
+# Multistaging - Docker
+
+При сборке docker-образов мы можем использовать механизм многоэтапной сборки - Multistaging.
+
+При использовании multistaging мы разделяем процедуру сборки на несколько этапов, обозначая их метками.
+
+
+
+**Использование механизма Multistaging позволяет:**
+
+- Собирать легковесные образы.
+- Сократить время сборки образов и запуска на основе контейнеров.
+- Повысить производительность работы контейнеров.
+- Переиспользовать вспомогательные образы из промежуточных этапов.
+- Сократить поверхность атаки на наши контейнеры для потенциального
+ злоумышленника.
+
+## Связанные заметки
+- [[Основы - Docker]]
diff --git a/90 Library/Containers/Docker/Network Drivers - Docker.md b/90 Library/Containers/Docker/Network Drivers - Docker.md
new file mode 100644
index 0000000..c4292bb
--- /dev/null
+++ b/90 Library/Containers/Docker/Network Drivers - Docker.md
@@ -0,0 +1,83 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - containerization
+ - docker
+created: 2025-12-17
+updated: 2026-05-07
+title: Network Drivers - Docker
+---
+
+# Network Drivers - Docker
+
+При работе с docker возникает необходимость обеспечить работу контейнеров в сети:
+
+- настройка правил маршрутизации (iptables)
+- формирование пакетов
+- инкапсуляция пакетов
+- шифрование и безопасность
+
+Для этого используются Network Drivers
+
+Сетевых драйверов поддерживаются несколько вариаций, каждый из них способен обеспечить все основные функции:
+
+- bridge (мост)
+- host
+- overlay
+- macvlan
+- none
+- 3rd-party plugins
+
+**Bridge**
+
+Объединение контейнеров в bridge-сеть:
+
+- контейнеры обьеденены в сеть
+- контейнеры в сети имеют связь друг с другом
+- контейнеры из другой сети не имеют сетевой связности
+- используется в docker **по умолчанию**
+
+**Host**
+
+Использует сеть хоста (удаляется сетевая изоляция)
+
+- удаляет сетевую изоляцию между контейнером и хостом
+- возможны проблемы с занятым портов, сетевыми ограничениями хостовой сети (поддерживается только в Linux)
+
+**Overlay**
+
+Создание сети для объединения контейнеров на разных хостах путем создания оверлейной сети
+
+- не поддерживает шифрование на win-хостах
+
+**MacVLAN**
+
+Работа с контейнерами, как с физическими устройствами
+
+- присваивает каждому контейнеру в сети физический MAC-адрес
+- позволяет обращаться к контейнеру как к настоящему устройству
+- поддерживается только в Linux
+
+**None**
+
+Отключение всех сетей в контейнере
+
+- может быть использован для изоляции контейнера
+
+## Работа С Bridge-сетями
+
+Docker по умолчанию использует bridge-сеть, так как он позволяет добиться большей изоляции от внешних сетей хоста.
+
+Контейнеры внутри одного "бриджа" не имеют доступа к другим из других бридж сетей.
+
+Если нам нужна гибкая настройка сети внутри самого контейнера, потребуются доп. **capabilities** (например, **CAP_NET_ADMIN**)
+
+В качестве альтернативы можно рассмотреть CNI-плагины (сторонние - 3rd-party)
+
+## Связанные заметки
+- [[Модель OSI]] — bridge/overlay/macvlan реализуют концепции L2/L3 из модели OSI; iptables работает на L3/L4
+- [[VLAN - Base]] — bridge-изоляция контейнеров ≈ VLAN-изоляция устройств: разные бриджи не видят друг друга, как разные VLAN
+- [[VPN]] — overlay-сеть реализует принцип VPN: инкапсуляция трафика одной сети поверх другой
+- [[Сегментация сети]] — изоляция контейнеров по bridge-сетям = программная сегментация сети
\ No newline at end of file
diff --git a/90 Library/Containers/Docker/Storage Drivers - Docker.md b/90 Library/Containers/Docker/Storage Drivers - Docker.md
new file mode 100644
index 0000000..3cdaf0d
--- /dev/null
+++ b/90 Library/Containers/Docker/Storage Drivers - Docker.md
@@ -0,0 +1,60 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - containerization
+ - docker
+created: 2025-12-17
+updated: 2026-05-07
+title: Storage Drivers - Docker
+---
+
+# Storage Drivers - Docker
+
+ Для работы с данными в контейнере имеется специальный контейнерный слой (**container layer**). Он появляется только в момент запуска контейнера, для работы с данными.
+
+
+
+Для работы с данными в контейнерном слое и работы со слоями образа _docker_ задействует _**драйверы хранилища**_ **(storage drivers).**
+
+Доступны в Docker 6 SD:
+
+
+
+## Block Level (блочные хранилища)
+
+- распределяют данные на блоки одинакового размеры по оборудованию
+- не зависит от пути к данным
+- быстрое получение
+
+Примеры: ZFS, DeviceMapper
+
+## File Level (файловые хранилища)
+
+- данные хранятся единым фрагментов
+- присутсвует иерархия директорий
+- доступ к файлу зависит от единственного пути
+- наиболее распространенный способ хранения данных
+
+Примеры: AUFS, Overlay, **Overlay2** (по умолчанию)
+
+## Object Level (объектно-ориентированные хранилища)
+
+- данные распределяются по оборудованию по частям
+- связывает объекты данных с их метадатой
+- объекты могут быть только перезаписаны (изменять нельзя)
+- для доступа требуется реализация API интерфейса
+
+По умолчанию, в Docker используется Overlay2, изменить это можно в `/etc/docker/daemon.json`
+
+**Backing Filesystem**
+
+Резервная файловая система, в которой расположен `/var/lib/docker`
+
+Для работы storage driver требуется **совместимая** backing filesystem.
+
+
+
+## Связанные заметки
+- [[Основы - Docker]]
diff --git a/90 Library/Containers/Docker/Volume - Docker.md b/90 Library/Containers/Docker/Volume - Docker.md
new file mode 100644
index 0000000..94c7724
--- /dev/null
+++ b/90 Library/Containers/Docker/Volume - Docker.md
@@ -0,0 +1,62 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - containerization
+ - docker
+created: 2025-12-17
+updated: 2026-05-07
+title: Volume - Docker
+---
+
+# Volume - Docker
+**Некоторые данные стоит хранить независимо от контейнера, для этого существует понятие Volume.**
+
+Стоит так хранить: БД, логи, конфиги, артефакты, настройки, …
+
+Для постоянного или персистентного хранения используются Docker Volume. Это буквально монтирование хостовой директории внутрь контейнера, для работы с данными контейнера напрямую.
+
+Возможности Docker Volumes:
+
+1. Выгрузка данных контейнера на постоянное хранение
+2. Работа в подмонтированных каталогах с интенсивной записью данных
+3. Совместное использование данных несколькими контейнерами
+
+Docker volumes создают тома, которые монтируются в контейнер.
+По умолчанию тома docker volumes создаются в каталоге `/var/lib/docker/volumes/`
+
+
+
+## Типы Volumes
+
+1. **Host** DV:
+ `docker run -v /home/mount/data:/var/lib/mysql/data`
+ При запуске контейнера, мы пробрасываем конкретный каталог на хосте в конкретный каталог в контейнере
+ (есть опция флагов, для редактирования прав доступа)
+2. **Anonymous** DV:
+ `docker run -v /var/lib/mysql/data`
+ При таком подходе, Volume создастся в `/var/lib/docker/volumes`
+3. **Names** DV:
+ `docker run -v name:/var/lib/mysql/data`
+ Аналогично второму варианту, Volume создается в директории по умолчанию, но ему присваивается метка `name`, которую можно переиспользовать.
+
+## Организация Доступа К Файлам В Docker Volumes
+
+По умолчанию, uid/gid внутри контейнера и на хосте идентичны, поэтому владелец/группа и права доступа внутри смонтированного каталога будут эквиванлентны.
+
+Изменить данные поведение поможет фича под названием "userns-remap" - она позволит соотнести uid/gid контейнера к другим uid/gid хоста
+
+Проблема в том, что по умолчанию, в volume владелец root - что не очень хорошо.
+
+Для управления этой фичей, нужно отредактировать конфигурацию по пути `/etc/docker/daemon.json`
+
+```bash
+{
+ "userns-remap": ""
+}
+```
+
+## Связанные заметки
+- [[File Permissions]] — uid/gid маппинг в Docker Volumes напрямую зависит от Linux-прав доступа; проблема "владелец root по умолчанию" решается через chmod/chown
+- [[Active Storage]] — Active Storage в Rails хранит файлы вне БД; в Docker-деплое они должны персистироваться через Volume, иначе теряются при перезапуске контейнера
\ No newline at end of file
diff --git a/90 Library/Containers/Docker/Основы - Docker.md b/90 Library/Containers/Docker/Основы - Docker.md
new file mode 100644
index 0000000..99e1a4d
--- /dev/null
+++ b/90 Library/Containers/Docker/Основы - Docker.md
@@ -0,0 +1,21 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - containerization
+ - docker
+created: 2025-12-17
+updated: 2026-05-07
+title: Основы - Docker
+---
+
+# Основы - Docker
+
+## Виртуализация
+
+**Виртуализация** - это набор вычислительных ресурсов, обеспечивающих логическую изоляцию процессов, выполняющихся на одном физ.хосте.
+
+## Связанные заметки
+- [[Storage Drivers - Docker]]
+- [[Multistaging - Docker]]
diff --git a/90 Library/Containers/HashiCorp Nomad.md b/90 Library/Containers/HashiCorp Nomad.md
new file mode 100644
index 0000000..36750e2
--- /dev/null
+++ b/90 Library/Containers/HashiCorp Nomad.md
@@ -0,0 +1,51 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - containerization
+created: 2026-02-13
+updated: 2026-05-07
+title: HashiCorp Nomad
+---
+
+# HashiCorp Nomad
+
+**nomad** - фреймворк для построения кластерных решений, поддерживает не только контейнерные нагрузки, но и не-контейнерные. Существуют платные и бесплатные версии продукта.
+
+Существует возможность установки расширений:
+
+- consul (service-discovering)
+- vault (secret management)
+- prometheus, grafana, ELK (monitoring, logging, etc)
+- и т.д.
+
+Установка nomad проста, но с увеличением расширений _сложность администрирования возрастает_.
+
+Архитектура представляет собой совокупность управляющих (server) и управляемых (clients) узлов.
+
+В Nomad используется концепция "job-tasks", где task - это атомарная единица работы, выполняемая выполняемая тем или иным драйвером:
+
+- docker
+- qemu
+- java
+- etc
+
+---
+
+Nomad не поддерживает использование шаблонизаторов.
+
+Для работы с манифестами nomad использует проприетарный язык HCL с ограниченной возможностью двусторонней конвертации HCL в json и yml.
+
+Nomad поддерживает использование CNI-плагинов, и имеется поддержка CSI (Container Storage Interface)
+
+Nomad поддерживает горизонтальное и вертикальное скалирование:
+
+1. Горизонтальное - создание новых инстансов для балансировки нагрузки.
+2. Вертикальное - увеличение ресурсов у уже существующих инстансов.
+3. Кластерное скалирование - увеличение рабочих и управляющих узлов.
+
+Другие решения:
+[[Docker Swarm]]
+[[Kubernetes]]
+[[Apache Mesos]]
diff --git a/90 Library/Containers/Kubernetes/Control Plane - Плоскость управления.md b/90 Library/Containers/Kubernetes/Control Plane - Плоскость управления.md
new file mode 100644
index 0000000..77485fc
--- /dev/null
+++ b/90 Library/Containers/Kubernetes/Control Plane - Плоскость управления.md
@@ -0,0 +1,120 @@
+---
+status: processing
+type: concept
+tags:
+ - devops
+ - kubernetes
+created: 2025-12-17
+updated: 2026-05-07
+title: Control Plane - Плоскость управления
+---
+
+# Control Plane - Плоскость управления
+
+В k8s плоскостью управления выступают master-узлы, они контролируют работу worker-узлов и следят за здоровьем системы, в целом.
+
+К основным компонентам Control plane относятся:
+1) Etcd
+2) Kube-api-server
+3) Kube-scheduler
+4) Kube-controller-manager
+5) Cloud-controller-manager
+
+![[Pasted image 20260429090040.png|400]]
+
+## Etcd
+
+**Etcd** — Opensource *key-value* хранилище, использующее алгоритм консенсуса [[Алгоритм консенсуса raft|raft]] для обеспечения надежного способа хранения данных.
+
+- Рекомендуемое Kubernetes хранилище конфигурации кластера.
+- Единственный *Stateful*-компонент кластера Kubernetes.
+- Инсталлируется на каждую Master node.
+- Для выбора лидера используется алгоритм Raft.
+
+## Kube-api-server
+
+**Kube-api-server** — основной компонент для взаимодействия с кластером и обязательный посредник между всеми компонентами Kubernetes в Data и Control plane.
+
+- Использует REST API интерфейс.
+- Является точкой входа в кластер.
+- Обязательный участник любого взаимодействия между компонентами кластера.
+- Обеспечивает разграничение прав доступа к содержимому кластера (авторизация и аутентификация).
+- *Stateless*-компонент.
+- Инсталлируется на *каждую* Master node.
+- Выбор лидера происходит по алгоритму [[Алгоритм выбора лидера Lease|lease]].
+
+## Kube-controller-manager
+**Kube-controller-manager** — компонент, ответственный за работу множества kube-controllers.
+
+- Является *связующим* звеном при взаимодействии Kube-controllers и отвечает за их работу.
+- Отвечает за *сборку мусора* (Garbage collecting) в кластере Kubernetes.
+- *Stateless*-компонент.
+- Инсталлируется на каждую Master node.
+- Выбор лидера происходит по алгоритму [[Алгоритм выбора лидера Lease|lease]].
+
+### Распространенные kube-controllers
+- **Node-controller** (поддерживает связь с узлами кластера Kubernetes, инициирует перенаправление рабочих нагрузок с вышедших из строя узлов.
+- **Replicaset-controller** (инициирует процедуру создания и функционирования сущности Replicaset).
+- **Endpoint-controller** (выполняет создание endpoint - связи между Pod и его Service).
+- **Token-controller** (обеспечивает создание и работу токенов для доступа к API кластера Kubernetes).
+- **Account-controller** (обеспечивает функциональность учетных записей в Kubernetes).
+
+### Garbage collecting
+
+Обязанности за сборку мусора (Garbage collecting) в кластере Kubernetes также возложены на компонент *Kube-controller-manager*.
+
+Примером сборки мусора может выступать отслеживание и удаление старых версий наборов репликаций развертываний (Replicaset).
+
+Если в кластере превышен лимит старых ревизий Replicaset — наиболее старая ревизия становится *мусором* и ее нужно удалить.
+
+## Cloud-controller-manadger
+
+**Cloud-controller-manager** — компонент, ответственный за работу множества Cloud-controllers.
+
+> Не реализован в Kubernetes по умолчанию. Самостоятельная реализация привлекательна для вендоров, желающих предоставлять Kubernetes как облачную услугу.
+
+- Является связующим звеном при взаимодействии Cloud-controllers и отвечает за их работу.
+- Cloud-controller-manager, как и сами Cloud-controllers не реализованы по умолчанию.
+
+## Kube-scheduler
+
+**Kube-scheduler** — компонент, ответственный за выбор подходящих узлов Data plane для запуска рабочих нагрузок.
+
+При принятии решения руководствуется следующими факторами: *Requests/Limits*, *QoS*, *Affinity/Anti-affinity rules*, *Priority class/Preemption policy*
+
+- Отвечает за распределение рабочих нагрузок на узлы Data plane с учетом *определенных факторов*.
+- *Stateless*-компонент.
+- Инсталлируется на каждую Master node.
+- Выбор лидера происходит по алгоритму [[Алгоритм выбора лидера Lease|lease]].
+
+Kube-scheduler принимает к сведению имеющиеся у развертываний указания по минимальным и максимальным требованиям к вычислительным ресурсам (*Requests* и *Limits*).
+
+**Requests:** Минимальный объем вычислительной мощности (Cpu, Ram), необходимый для функционирования рабочей нагрузки.
+
+**Limits:** Максимальный объем вычислительных ресурсов, выделяемый рабочей нагрузке.
+
+![[Pasted image 20260429090719.png|200]]
+
+Kube-scheduler руководствуется присвоенным рабочей нагрузке значением QoS (Quality of Service).
+
+**В зависимости от указанных в развертывании Requests и Limits,** **уровень обслуживания (QoS) может принимать следующие** **значения:**
+
+- *BestEffort* (Requests и Limits не указаны вовсе).
+- *Burstable* (хотя бы для одного контейнера в Pod указаны requests по Cpu или Ram).
+- *Guaranteed* (все контейнеры в Pod имеют одинаковые Requests и Limits).
+
+**Affinity/Anti-affinity rules:**
+
+Kube-scheduler также руководствуется применяемыми к рабочей нагрузке Affinity/Anti-affinity rules.
+
+Правила Affinity и Anti-affinity описываются в спецификации развертывания и позволяют влиять на решение Kube-scheduler о направлении рабочих нагрузок на узлы кластера за счет расширения типов возможных ограничений.
+
+![[Pasted image 20260429090816.png|400]]
+
+**Политика вытеснения:**
+
+В критических ситуациях Kube-scheduler может прибегнуть к процедуре вынужденного *выселения* (*переселения*) рабочих нагрузок с низким приоритетом (Priority class) в пользу рабочих нагрузок с *высоким* приоритетом, руководствуясь "*политикой вытеснения*" (Preemption policy).
+
+Данное поведение характерно для ситуаций, при которых узел с рабочей нагрузкой высокого приоритета выходит из строя — в таком случае, во избежание Downtime *высокоприоритетного* развертывания, оно будет отправлено на узел, имеющий низко приоритетную нагрузку (и она будет выселена принудительно).
+
+![[Pasted image 20260429090930.png]]
\ No newline at end of file
diff --git a/90 Library/Containers/Kubernetes/Data Plane - Плоскость данных.md b/90 Library/Containers/Kubernetes/Data Plane - Плоскость данных.md
new file mode 100644
index 0000000..0ed9c4f
--- /dev/null
+++ b/90 Library/Containers/Kubernetes/Data Plane - Плоскость данных.md
@@ -0,0 +1,46 @@
+---
+status: processing
+type: concept
+tags:
+ - devops
+ - kubernetes
+created: 2025-12-17
+updated: 2026-05-07
+title: Data Plane - Плоскость данных
+---
+
+# Data Plane - Плоскость данных
+К плоскости данных (Data plane) кластера Kubernetes относят рабочие узлы (Workers), на которых запускаются рабочие нагрузки.
+
+Компоненты Kubelet и Kube-proxy устанавливаются как на узлы управления (Masters), так и на рабочие узлы (Workers), обеспечивая работоспособность рабочих нагрузок в Data-plane и отвечая за их связь с плоскостью управления (Control plane).
+
+![[Pasted image 20260429085656.png]]
+## Kubelet
+**kubelet** - агент на *каждом* узле кластера.
+- Работает как процесс системы, а не контейнер;
+- поддержка *любой* k8s-совместимой системы оркестрации (CRI - docker, podman);
+- запускает контейнеры с *рабочими* нагрузками;
+- обеспечение проверок (**startup**, **readines**, **liveness probes**).
+
+Т.е. это агент k8s непосредственно на клиенте (как zabbix-agent, например), он взаимодействует с системой worker-node (и master, тоже)
+
+## Проверки kubelet
+1) **startup probe** - применяется первой для определения факта запуска контейнера;
+ ![[Pasted image 20260428175708.png|200]]
+2) **readiness probe** - проверка готовности развернутого в контейнере приложения принимать и обрабатывать рабочую нагрузку;
+ ![[Pasted image 20260428175716.png|200]]
+3) **liveness probe** - периодическая проверка запущенного приложения.
+ ![[Pasted image 20260428175720.png|200]]
+
+## Kube-proxy
+**kube-proxy** - компонент, отвечающий за *сетевое проксирование* и обеспечивающий *базовые* сетевые правила на узлах управления (Masters) и узлах данных (Workers).
+
+- Управляет основными сетевыми правилами на узлах кластера Kubernetes
+- Запускается в контейнере.
+- Может делегировать часть своих функций сетевым плагинам (CNI).
+
+### Интерфейсы универсального взаимодействия (плагины)
+1) **CRI (Container Runtime Interface)** — интерфейс *коммуникации* между компонентом *Kubelet* и используемой kubernetes-совместимой *системой контейнеризации*.
+2) **CNI (Container Network Interface)** — интерфейс для выполнения сетевых функций кластера Kubernetes-совместимыми сетевыми плагинами (Network plugins).
+3) **CSI (Container Storage Interface)** — интерфейс обеспечения необходимых действий над персистентным хранением данных рабочих нагрузок кластера kubernetes-совместимыми Volume-drivers.
+
diff --git a/90 Library/Containers/Kubernetes/Deployment и ReplicaSet.md b/90 Library/Containers/Kubernetes/Deployment и ReplicaSet.md
new file mode 100644
index 0000000..9f17676
--- /dev/null
+++ b/90 Library/Containers/Kubernetes/Deployment и ReplicaSet.md
@@ -0,0 +1,57 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - kubernetes
+ - container
+created: 2025-12-17
+updated: 2026-05-07
+title: Deployment и ReplicaSet
+---
+
+# Deployment и ReplicaSet
+
+Два ключевых контроллера k8s, отвечающих за развёртывание приложений.
+
+## Deployment
+
+**Deployment-controller** управляет декларативным описанием приложения для его развёртывания и обновления.
+
+Способен создать Deployment из образа или из готового манифеста:
+
+```sh
+kubectl create deployment mariadb --image=mariadb:4.0
+kubectl apply -f nginx-deployment-manifest.yaml
+```
+
+Deployment работает только с **Pods** и **ReplicaSets**.
+
+## ReplicaSet
+
+**ReplicaSet** — сущность k8s, обеспечивающая поддержку стабильного набора реплик Pod в любой момент времени.
+
+Приложение = Pod (объединение контейнеров). ReplicaSet управляет множеством таких Pod.
+
+## Service
+
+Для связи Pod с другими Pod и внешним миром используется **Service**.
+
+Pod связывается с Service через **Endpoint** (управляет Endpoint-controller).
+
+Создание Service:
+
+```bash
+kubectl expose deployment mariadb --port=8080
+kubectl apply -f nginx-service-manifest.yaml
+```
+
+## Возможности связки Deployment + ReplicaSet
+
+| Операция | Описание |
+|---|---|
+| Rolling update | Обновление без downtime |
+| Rollback | Откат текущего обновления |
+| Revision | Просмотр истории обновлений |
+| Rollback to revision | Откат до конкретной ревизии |
+| Scaling | Масштабирование приложения |
diff --git a/90 Library/Containers/Kubernetes/Kubernetes.md b/90 Library/Containers/Kubernetes/Kubernetes.md
new file mode 100644
index 0000000..43cbf0e
--- /dev/null
+++ b/90 Library/Containers/Kubernetes/Kubernetes.md
@@ -0,0 +1,42 @@
+---
+status: stable
+type: moc
+tags:
+ - devops
+ - container
+ - kubernetes
+created: 2026-02-13
+updated: 2026-05-07
+title: Kubernetes
+---
+
+# Kubernetes
+
+K8s — система оркестрации контейнеров. Кластер состоит из двух плоскостей:
+
+- **[[Control Plane - Плоскость управления]]** — master-узлы: etcd, kube-api-server, kube-scheduler, kube-controller-manager, cloud-controller-manager
+- **[[Data Plane - Плоскость данных]]** — worker-узлы: kubelet, kube-proxy, CRI/CNI/CSI
+
+![[Pasted image 20260429091836.png]]
+## Рабочие нагрузки
+
+- [[Deployment и ReplicaSet]] — развёртывание, rolling update, rollback, scaling
+
+## Хранение данных
+
+- [[PV, PVC]] — персистентное хранилище: Persistent Volume и Persistent Volume Claim
+
+
+
+## Альтернативные решения
+
+- [[Docker Swarm]]
+- [[Apache Mesos]]
+- [[HashiCorp Nomad]]
+
+## Источники
+
+[[Devops вводный 9 урок. Введение в Kubernetes. Компоненты control и Data plane.pdf]]
+
+## Связанные заметки
+- [[Шаблонизатор Helm]]
diff --git a/90 Library/Containers/Kubernetes/PV, PVC.md b/90 Library/Containers/Kubernetes/PV, PVC.md
new file mode 100644
index 0000000..1c12363
--- /dev/null
+++ b/90 Library/Containers/Kubernetes/PV, PVC.md
@@ -0,0 +1,37 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - kubernetes
+ - storage
+created: 2025-12-17
+updated: 2026-05-07
+title: PV, PVC
+---
+
+# PV, PVC
+
+Сущности k8s для персистентного хранения данных.
+
+## Persistent Volume (PV)
+
+**PV** — отражение реального раздела на диске в терминах k8s. Такой же ресурс кластера, как Master или Worker node.
+
+- Не зависит от namespace
+- Создаётся вручную (Manifest) или автоматически (Provisioning)
+
+## Persistent Volume Claim (PVC)
+
+**PVC** — запрос приложения на подключение к PV.
+
+- Зависит от namespace
+- Описывает требования к хранилищу (размер, класс, режим доступа)
+
+## Схема подключения
+
+```
+Pod → PVC → PV → физический диск
+```
+
+**Deployment** может содержать ссылку на PVC — тогда при развёртывании Pod автоматически получает доступ к нужному хранилищу.
diff --git a/90 Library/Containers/Kubernetes/Алгоритм выбора лидера Lease.md b/90 Library/Containers/Kubernetes/Алгоритм выбора лидера Lease.md
new file mode 100644
index 0000000..de115e4
--- /dev/null
+++ b/90 Library/Containers/Kubernetes/Алгоритм выбора лидера Lease.md
@@ -0,0 +1,19 @@
+---
+status: stable
+type: concept
+tags:
+ - k8s
+ - devops
+ - kubernetes
+created: 2025-12-17
+updated: 2026-05-07
+title: Алгоритм выбора лидера Lease
+---
+
+# Алгоритм выбора лидера Lease
+
+ Алгоритм выбора лидирующего узла в распределнных системах, позволяющий сохранять консистентность данных
+
+**Суть проста**: узел, который первым запишет себя в хранилище конфигурации кластера, как лидер, тот и станет лидером
+
+Если лидер перестал выполнять свои функции, то борьба за место лидера по **такому же принципу**.
\ No newline at end of file
diff --git a/90 Library/Containers/Kubernetes/Алгоритм консенсуса raft.md b/90 Library/Containers/Kubernetes/Алгоритм консенсуса raft.md
new file mode 100644
index 0000000..a1777e9
--- /dev/null
+++ b/90 Library/Containers/Kubernetes/Алгоритм консенсуса raft.md
@@ -0,0 +1,28 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - kubernetes
+created: 2025-12-17
+updated: 2026-05-07
+title: Алгоритм консенсуса raft
+---
+
+# Алгоритм консенсуса raft
+
+**Raft** — алгоритм консенсуса, применяющийся в распределенных системах, и обеспечивающий безопасную и согласованную репликацию данных между всеми участниками.
+
+Состоит из двух фаз:
+1) Выбор лидера (**leader election**)
+2) Репликация данных (**log replication**)
+
+Каждый участник в любой момент времени находится только в одном состоянии:
+1) Лидер (**leader**) - только один;
+2) Кандидаты в лидеры (**candidate**);
+3) Ведомый (**follower**).
+
+*Raft* в фазе выбора лидера опирается на понятие кворума (**quorum**) - большинства.
+Из-за этого, в частности, есть рекомендация: *количество master-node должно быть нечетным*.
+
+Визуализация алгоритма консенсуса Raft: http://thesecretlivesofdata.com/raft/
\ No newline at end of file
diff --git a/90 Library/Containers/Kubernetes/Шаблонизатор Helm.md b/90 Library/Containers/Kubernetes/Шаблонизатор Helm.md
new file mode 100644
index 0000000..e5041c5
--- /dev/null
+++ b/90 Library/Containers/Kubernetes/Шаблонизатор Helm.md
@@ -0,0 +1,92 @@
+---
+status: seed
+type: guide
+tags:
+ - devops
+ - kubernetes
+ - helm
+created: 2025-12-17
+updated: 2026-05-07
+title: Шаблонизатор Helm
+---
+
+# Шаблонизатор Helm
+
+**Helm** — менеджер пакетов и шаблонизатор для развёртывания приложений в [[Kubernetes]].
+
+Helm помогает описывать, устанавливать, обновлять и удалять приложения через готовые или собственные Helm charts.
+
+## Зачем нужен Helm
+
+Helm позволяет:
+
+- искать готовые charts;
+- устанавливать приложения в Kubernetes;
+- обновлять релизы;
+- удалять приложения;
+- переиспользовать шаблоны манифестов;
+- параметризовать установку через values.
+
+## Helm chart
+
+**Helm chart** — пакет с шаблонами Kubernetes-манифестов, значениями по умолчанию и метаданными приложения.
+
+Chart можно:
+
+- найти в публичном chart-репозитории;
+- создать самостоятельно под своё приложение.
+
+## Базовый workflow
+
+Добавить chart-репозиторий:
+
+```sh
+helm repo add bitnami https://charts.bitnami.com/bitnami
+```
+
+Обновить индекс репозиториев:
+
+```sh
+helm repo update
+```
+
+Найти chart:
+
+```sh
+helm search repo bitnami
+```
+
+Установить приложение:
+
+```sh
+helm install my-mysql bitnami/mysql
+```
+
+Посмотреть доступные параметры:
+
+```sh
+helm show values istio/base
+```
+
+Установить или обновить значения через `--set`:
+
+```sh
+helm install istiod istio/istiod --set requests.cpu=300m
+```
+
+Посмотреть установленные релизы:
+
+```sh
+helm list
+```
+
+Обновить релиз:
+
+```sh
+helm upgrade istiod istio/istiod --set requests.cpu=600m
+```
+
+## Связанные заметки
+
+- [[Kubernetes]]
+- [[DevOps - основы]]
diff --git a/90 Library/DevOps/Ansible/Ansible - основы.md b/90 Library/DevOps/Ansible/Ansible - основы.md
new file mode 100644
index 0000000..7dca82d
--- /dev/null
+++ b/90 Library/DevOps/Ansible/Ansible - основы.md
@@ -0,0 +1,46 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - ansible
+created: 2026-02-13
+updated: 2026-05-07
+title: Ansible - Основы
+---
+
+# Ansible - Основы
+
+**Ansible** - инструмент автоматизации развертывания и оркестрации инфраструктуры.
+
+**Характеристики**
+
+- **Безагентский**: не требует установки ПО на управляемых хостах (использует SSH).
+- Язык описания задач — YAML: декларативный и простой в чтении (формат playbook).
+- **Idempotency**: повторное выполнение не меняет результат, если всё уже настроено.
+
+## Основные Понятия
+
+|Term|Def|
+|---|---|
+|Playbook|Декларативное описание инфраструктуры, с которой работает в декларативном ключе|
+|Inventory|Файл инвентаризации, призван отслеживать хосты, к которым мы
применяем свои команды и сценарии|
+|Include|Конструкция, позволяющая переиспользовать уже написанные структуры кода (tasks, playbooks, handlers, vars)|
+|Task|Единица работы, которая описывается в плейбуке и выполняется
во время запуска на исполнение|
+|Handlers|Обработчики, которые позволяют выполнить некоторую описанную
задачу после выполнения другой задачи (вызов через _**notify**_)|
+|Tags|Механизм тегирования (присвоения меток) задачам (Tasks) и ролям
(Roles), позволяющий запускать в плейбуке только те задачи и роли, которые
помечены определенной меткой (тегом)|
+|Vars|Переменные могут быть заданы во время сбора фактов при запуске плейбука
или указаны вручную.|
+|Role|Сборник плейбуков|
+|Module|Минимальная единица действия - набор действий, встроенных в Ansible|
+|Facts|Автоматически собираемая с машин информация|
+
+## В этом разделе
+- [[Playbooks - Ansible]] — структура плейбуков, синтаксис задач
+- [[Inventory - Ansible]] — описание хостов и групп
+- [[Modules - Ansible]] — встроенные модули
+- [[Loops - Ansuble]] — циклы в задачах
+- [[Fail2Ban - Ansible]] — пример роли для Fail2Ban
+
+## Контекст
+- [[IaC - основы]] — Ansible в контексте Infrastructure as Code
+- [[DevOps - основы]] — место Ansible в DevOps-практиках
diff --git a/90 Library/DevOps/Ansible/Fail2Ban - Ansible.md b/90 Library/DevOps/Ansible/Fail2Ban - Ansible.md
new file mode 100644
index 0000000..6e1ac8f
--- /dev/null
+++ b/90 Library/DevOps/Ansible/Fail2Ban - Ansible.md
@@ -0,0 +1,57 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - ansible
+created: 2025-12-17
+updated: 2026-05-07
+title: Fail2Ban - Ansible
+---
+
+# Fail2Ban - Ansible
+
+**Fail2ban** — это система защиты от brute-force атак (например, перебора паролей по SSH, FTP, веб-панелям). Она анализирует лог-файлы и временно блокирует IP-адреса, с которых замечена подозрительная активность.
+
+## Установка С Помощью Средств Ansible
+
+Образец конфига `jail.local`
+
+```text
+[sshd]
+enabled = true
+port = ssh
+logpath = /var/log/auth.log
+maxretry = 5
+bantime = 3600
+findtime = 600
+```
+
+```text
+- name: Установка и настройка Fail2ban
+ hosts: all
+ become: true
+ tasks:
+ - name: Установить fail2ban
+ apt:
+ name: fail2ban
+ state: present
+
+ - name: Копировать конфиг jail.local
+ template:
+ src: jail.local.j2
+ dest: /etc/fail2ban/jail.local
+ owner: root
+ group: root
+ mode: 0644
+
+ - name: Перезапустить fail2ban
+ service:
+ name: fail2ban
+ state: restarted
+ enabled: true
+```
+
+## Связанные заметки
+- [[DHCP-snooping]] — defence-in-depth: Fail2Ban блокирует атаки на L7 (SSH brute-force), DHCP Snooping — на L2 (rogue DHCP); разные уровни одной стратегии защиты
+- [[Super-user]] — `become: true` в Ansible использует sudo для установки и управления Fail2Ban
\ No newline at end of file
diff --git a/90 Library/DevOps/Ansible/Inventory - Ansible.md b/90 Library/DevOps/Ansible/Inventory - Ansible.md
new file mode 100644
index 0000000..24f79d8
--- /dev/null
+++ b/90 Library/DevOps/Ansible/Inventory - Ansible.md
@@ -0,0 +1,88 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - ansible
+created: 2025-12-17
+updated: 2026-05-07
+title: Inventory - Ansible
+---
+
+# Inventory - Ansible
+
+Особенности Ansible:
+
+1. Подключение по SSH
+2. Agentless - нет программ на клиентах
+
+Структура файла `hosts.ini`
+
+```text-xml
+192.168.0.1
+192.168.0.2
+
+[web] # группа серверов
+192.168.0.3
+192.168.0.4
+```
+
+Можно использовать псевдонимы, вместо ip
+
+```text
+app ansible_host=ip_server1
+db ansible_host=ip_server2
+web ansible_host=ip_server3
+```
+
+Другие полезные параметры **inventory**:
+
+- `ansible_connection: ssh/winrm/local/docker` - тип подключения к серверу
+- `ansible_port: 22/5986` - порт подключения
+- `ansible_user: root` - логин для входа по ssh (или др.)
+- `ansible_ssh_pass: password` или `ansible_password: password` - пароль для входа по ssh.
+
+Группы для объединения групп:
+
+```text
+[mail_internal]
+mail1.serv
+
+[mail_external]
+mail2.serv
+
+[mail_all:children]
+mail_internal
+mail_external
+```
+
+Помимо `ini`-формата, можно использовать YAML-файлы:
+
+```yaml
+all:
+ children:
+ webservers:
+ hosts:
+ web1.example.com:
+ ansible_host: 192.168.1.10
+ ansible_user: admin
+ web2.example.com:
+ ansible_host: 192.168.1.11
+ vars:
+ ansible_port: 22
+ ansible_python_interpreter: /usr/bin/python3
+
+ databases:
+ hosts:
+ db1.example.com:
+ db2.example.com:
+
+ production:
+ children:
+ webservers:
+ databases:
+```
+
+## Связанные заметки
+- [[DHCP]] — если хосты получают IP динамически через DHCP, inventory должен использовать имена (DNS), а не IP-адреса
+- [[DNS]] — `ansible_host: web1.example.com` требует DNS-резолвинга; `/etc/resolv.conf` определяет, где искать
\ No newline at end of file
diff --git a/90 Library/DevOps/Ansible/Loops - Ansuble.md b/90 Library/DevOps/Ansible/Loops - Ansuble.md
new file mode 100644
index 0000000..1816150
--- /dev/null
+++ b/90 Library/DevOps/Ansible/Loops - Ansuble.md
@@ -0,0 +1,75 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - ansible
+created: 2025-12-17
+updated: 2026-05-07
+title: Loops - Ansuble
+---
+
+# Loops - Ansuble
+
+Для перебора значений в модулях Ansbible используются две конструкции:
+
+1. `loop` - универсален, используется, когда перебираемые значения - это строки в словаре (`user = { name: Boris; age: 22 }`)
+2. Директива `with_*` - где `*` - обозначение конкретного итератора
+
+## Loop
+
+```text
+-
+ name: Цикл
+ hosts: all
+ tasks:
+ -
+ name: Цикл loop для создания пользователя
+ user:
+ name: '{{ item.name }}'
+ age: '{{ item.age }}'
+ uid: '{{ item.uid }}'
+ loop:
+ - name: Boris
+ age: 22
+ uid: 1011
+ - name: Anna
+ age: 23
+ uid: 1012
+ ...
+```
+
+## with_
+
+```text
+-
+ name: Цикл
+ hosts: all
+ tasks:
+ -
+ name: Цикл with для создания пользователя
+ user:
+ name: '{{ item }}'
+ age: '{{ item }}'
+ uid: '{{ item }}'
+ with_items:
+ - name: Boris
+ - name: Anna
+ ...
+```
+
+```text
+-
+ name: 'Print list of fruits'
+ hosts: localhost
+ vars:
+ fruits:
+ - Apple
+ - Banana
+ - Grapes
+ - Orange
+ tasks:
+ -
+ command: 'echo "{{ item }}"'
+ with_items: '{{ fruits }}'
+```
\ No newline at end of file
diff --git a/90 Library/DevOps/Ansible/Modules - Ansible.md b/90 Library/DevOps/Ansible/Modules - Ansible.md
new file mode 100644
index 0000000..3aec409
--- /dev/null
+++ b/90 Library/DevOps/Ansible/Modules - Ansible.md
@@ -0,0 +1,94 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - ansible
+created: 2025-12-17
+updated: 2026-05-07
+title: Modules - Ansible
+---
+
+# Modules - Ansible
+
+## Module Command
+
+Выполнение команды на удаленном узле.
+
+```yaml
+- name: Display home directory
+ command: ls ~/
+```
+
+У самих команд могут быть параметры, например
+
+```yaml
+command: cat resolv.conf chdir=/etc # ansible сначала убедится, что мы в директории /etc или перейдет в неё, а затем выполнит команду cat
+
+command: mkdir /folder creates=/folder # ansible создаст папку только в том случае, если её не существует
+```
+
+# Module Script
+
+Выполняет скрипт, находящийся на хост-контроллере
+
+```yaml
+-
+ name: Тестовый плейбук со скриптом
+ hosts: all
+ tasks:
+ - name: Запуск скрипта с хоста
+ script: /root/script.sh -arg1 -arg2
+```
+
+## Module LineInFile
+
+Записывает указанную строку в конец указанного файла _если точнее, ansible убеждается в наличии такой строки, но если её нет, то записывает в конец_
+
+```yaml
+-
+ name: Тестовый плейбук
+ hosts: all
+ tasks:
+ - lineinfile:
+ path: /etc/resolv.conf
+ line: 'nameserver 10.1.250.10'
+```
+
+## Module Service
+
+Работает с сервисами сервера (systemd)
+
+```yaml
+-
+ name: 'Execute a script on all web server nodes'
+ hosts: web_nodes
+ tasks:
+ -
+ name: 'Start httpd service on web server nodes'
+ service:
+ state: started
+```
+
+## User
+
+> ansible.builtin.user
+
+Работа с пользователями системы (linux)
+
+```yaml
+-
+ name: 'Create new user'
+ hosts: all
+ tasks:
+ -
+ name: 'Create user John'
+ user:
+ name: John
+ uid: 1040
+ group: dev
+```
+
+## Связанные заметки
+- [[File Permissions]] — модуль `user` управляет uid/gid пользователей Linux; `lineinfile` редактирует системные файлы; все это работает поверх Linux-прав доступа
+- [[Super-user]] — `become: true` использует sudo; модуль `user` создаёт пользователей без root-прав для следующих задач
\ No newline at end of file
diff --git a/90 Library/DevOps/Ansible/Playbooks - Ansible.md b/90 Library/DevOps/Ansible/Playbooks - Ansible.md
new file mode 100644
index 0000000..8f2e9e7
--- /dev/null
+++ b/90 Library/DevOps/Ansible/Playbooks - Ansible.md
@@ -0,0 +1,52 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - ansible
+created: 2025-12-17
+updated: 2026-05-07
+title: Playbooks - Ansible
+---
+
+# Playbooks - Ansible
+
+- Playbook - отдельный yml файл.
+
+_Module_ - любое атомарное действие в Ansible.
+
+Запуск playbook:
+
+```text
+ansible-playbook playbook.yml
+```
+
+Существует возможность запуска каких-то модулей без использования playbook Например, можно провести `ping` какой-то машины с хоста с помощью команды:
+
+```text
+ansible node1 -m ping
+```
+
+В общем случае, для любого модуля:
+
+```text
+ansible -m
+```
+
+Также можно на узле выполнить команду:
+
+```text
+ansible -a
+```
+
+Например
+
+```text
+ansible all -a "/sbin/reboot"
+```
+
+Если необходимо отладить сценарий можно добавить к команде `-vv`
+
+```text
+ansible-playbook playbook.yml -vv
+```
\ No newline at end of file
diff --git a/90 Library/DevOps/DevOps - основы.md b/90 Library/DevOps/DevOps - основы.md
new file mode 100644
index 0000000..a0111fa
--- /dev/null
+++ b/90 Library/DevOps/DevOps - основы.md
@@ -0,0 +1,66 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+created: 2025-12-17
+updated: 2026-05-07
+title: DevOps - основы
+---
+
+# DevOps - Основы
+
+Конспект урока: [Devops вводный 1 урок. Что такое Devops и история его развития.pdf](#root/4yWHzaG6M7iE/SWLwobVesSih/pRoFr75wb413/O6DeMoaS4kWb)
+
+## Возникновение DevOps
+
+**DevOps** - _методология взаимодействия_ специалистов по разработке с экспертами по информационно-технологическому обслуживанию, а также взаимная интеграция их рабочих процессов для обеспечения высокого качества продукта.
+
+### Инфраструктура Как Код (IaC)
+
+Подход к развертыванию, работе и настройке инфраструктуры в виде файлов конфигурации и систем управления конфигурацией.
+
+DevOps-инженер управляет инфраструктурой и конфигурацией с помощью декларативных подходов.
+
+- Управление инфраструктурой
+- Стандартизация образов
+- Использование инструментов для декларативного управления инфраструктурой, конфигурацией и сервисами (Ansible, Terraform).
+
+[[IaC - основы]]
+
+### Непрерывная Сборки И Доставка (развертывание) (CI/CD)
+
+Методология разработки и деплоя, подразумевающая автоматическую сборку, тестирование и развертывание программного кода.
+
+- Технологии контейнеризации (Docker, Podman)
+- Микросервисная архитектура
+- Обеспечение непрерывной доставки продукта
+- Обеспечение безопасности контейнеров и микросервисов
+
+### Мониторинг, Логирование, Аудит, Трассировка
+
+- Принципы работы систем мониторинга
+- Инструменты логирования и аудита
+- Сбор и обработка логов приложений и инфраструктуры
+- Трассировка приложений в контексте взаимодействия с командами разработки
+
+### Контейнерная Оркестрация
+
+- Оркестрация контейнерных и неконтейнерных нагрузок
+- Обеспечение ИБ контейнеров и оркестраторов
+- Развертывание и администрирование высоконагруженных кластеров
+- Интеграция оркестраторов с инструментами CI/CD
+
+## Инструментарий
+
+1. Системы контроля версий (Git, SVC)
+2. CI/CD (**Gitlab Ci**, Jenkins, Teamcity)
+3. Контейнеризация (**Docker**, Podman, Cri-o)
+4. Оркестрация (**Kubernetes**, Swarm, Nomad, Mesos)
+5. Управление конфигурацией (**Ansible**, Chef, Puppet)
+6. Управление инфраструктурой (**Terraform**, Cloudformation)
+7. Мониторинг (Prometheus, Loki, Grafana, …)
+8. Безопасность (Trivy, Clair, Falco, Kube-hunter, …)
+9. DevSecOps-анализ (SAST, SCA, DAST, IAST, RASP)
+
+
\ No newline at end of file
diff --git a/90 Library/DevOps/Git.md b/90 Library/DevOps/Git.md
new file mode 100644
index 0000000..db85bfe
--- /dev/null
+++ b/90 Library/DevOps/Git.md
@@ -0,0 +1,85 @@
+---
+status: seed
+type: concept
+tags:
+ - devops
+ - git
+ - vcs
+created: 2025-12-17
+updated: 2026-05-07
+title: Git
+---
+
+# Git
+
+**Git** — распределённая система контроля версий, разработанная Линусом Торвальдсом в 2005 году.
+
+Git используется для управления историей изменений исходного кода, командной разработки и организации процессов доставки ПО. В [[DevOps - основы]] Git относится к базовым инструментам контроля версий.
+
+## Зачем нужен Git
+
+- хранит историю изменений проекта;
+- позволяет работать с ветками и объединять изменения;
+- поддерживает распределённую модель разработки;
+- помогает проводить code review и восстановление предыдущих состояний кода;
+- интегрируется с платформами вроде [[Gitlab]] и CI/CD.
+
+## Преимущества
+
+### Производительность
+
+Git оптимизирован для локальных операций: большинство действий выполняется без обращения к удалённому серверу. История проекта хранится как набор объектов, связанных с содержимым файлов и метаданными версий.
+
+### Безопасность
+
+Git использует хеширование объектов, что помогает контролировать целостность истории изменений. Это защищает проект от незаметной подмены данных в истории.
+
+### Гибкость
+
+Git поддерживает разные модели разработки: от простой работы в одной ветке до сложных процессов с релизными, функциональными и hotfix-ветками.
+
+## Базовые сущности
+
+- **commit** — зафиксированное состояние изменений;
+- **branch** — ветка разработки;
+- **merge** — объединение веток;
+- **diff** — сравнение изменений между состояниями проекта.
+
+Практические команды вынесены в заметку [[Основные команды git]].
+
+## GitFlow
+
+**GitFlow** — модель ветвления, где используются основные ветки и временные ветки для разработки функциональности.
+
+Основные ветки:
+
+- `main` — официальная история релизов;
+- `release` — подготовка готового функционала к выпуску;
+- `develop` — основная ветка разработки;
+- `feature` — разработка отдельной функциональности.
+
+Когда в `develop` накоплен достаточный объём изменений, создаётся `release`-ветка. После тестирования она сливается в `main` и обратно в `develop`.
+
+![[Pasted image 20260430152221.png|597]]
+
+Недостатки GitFlow:
+
+- не всегда хорошо сочетается с CI/CD;
+- избыточен для проектов с частыми релизами;
+- может усложнять историю слияний.
+
+## Trunk Based Development
+
+**Trunk Based Development (TBD)** — модель разработки, где основная работа ведётся вокруг одной главной ветки, называемой `trunk`.
+
+Идея TBD: чаще интегрировать изменения в основную ветку, уменьшать долгоживущие ветки и поддерживать возможность выпуска релиза в любой момент.
+
+![[Pasted image 20260430153712.png]]
+
+TBD лучше сочетается с CI/CD-процессами, потому что уменьшает риск крупных конфликтов слияния и ускоряет обратную связь от сборок и тестов.
+
+## Связанные заметки
+
+- [[Основные команды git]]
+- [[Gitlab]]
+- [[DevOps - основы]]
diff --git a/90 Library/DevOps/Gitlab.md b/90 Library/DevOps/Gitlab.md
new file mode 100644
index 0000000..59dab2d
--- /dev/null
+++ b/90 Library/DevOps/Gitlab.md
@@ -0,0 +1,54 @@
+---
+status: seed
+type: concept
+tags:
+ - devops
+ - git
+ - cicd
+ - gitlab
+created: 2025-12-17
+updated: 2026-05-07
+title: Gitlab
+---
+
+# Gitlab
+
+**Gitlab** — веб-платформа для управления репозиториями, командной разработкой и CI/CD-процессами поверх [[Git]].
+
+Gitlab можно использовать как облачный сервис или развернуть на собственном сервере.
+
+## Возможности
+
+Gitlab позволяет:
+
+- создавать, изменять и удалять репозитории;
+- управлять пользователями и правами доступа;
+- проводить code review;
+- настраивать проверки качества кода;
+- автоматизировать сборку, тестирование и доставку через CI/CD;
+- отслеживать задачи, релизы, метрики и состояние приложений.
+
+## Gitlab в DevOps
+
+В [[DevOps - основы]] Gitlab относится к инструментам CI/CD и командной разработки.
+
+Gitlab помогает связать несколько процессов:
+
+- управление исходным кодом через [[Git]];
+- review изменений;
+- автоматическое тестирование;
+- релизный цикл;
+- проверки безопасности;
+- наблюдаемость и сбор метрик.
+
+## Работа с кодом
+
+Gitlab поддерживает разные модели управления исходным кодом: GitFlow, Trunk Based Development и другие.
+
+Основная работа ведётся через проекты, репозитории, ветки, коммиты и merge request. Практические операции с локальным репозиторием описаны в [[Основные команды git]].
+
+## Связанные заметки
+
+- [[Git]]
+- [[Основные команды git]]
+- [[DevOps - основы]]
diff --git a/90 Library/DevOps/IaC - основы.md b/90 Library/DevOps/IaC - основы.md
new file mode 100644
index 0000000..ce3d94a
--- /dev/null
+++ b/90 Library/DevOps/IaC - основы.md
@@ -0,0 +1,52 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+created: 2026-02-13
+updated: 2026-05-07
+title: IaC - Основы
+---
+
+# IaC - Основы
+
+*Infrastructure-as-Code (Инфраструктура как код)*
+
+Основными инструментами выступают Terraform и Ansible
+
+## Terraform
+
+- ПО, разработанное компанией HashiCorp, призванное управлять инфрой в декларативном ключе.
+
+Для работы с инфрой через terraform необходимо лишь описать желаемое состояние (конфигурацию), в которой в декларативном формате изложена желаемая инфраструктура.
+
+> Декларативный подход - пишем не "как" надо сделать, а "какое" **состояние** мы хотим увидеть
+
+Описывается в файле `main.ttf`:
+
+
+
+Terraform-провайдер
+
+- Это обязательное звено - это интерпретатор, который обрабатывает наш конфиг и вызывает нужные API для работы непосредственно с вендором.
+
+
+
+Поддерживаемые в terraform типы ресурсов (CRUD):
+
+- аккаунты и ресурсные группы
+- ВМ, контейнеры
+- виртуальные сетевые сегменты
+- диски и образы
+- оркестраторы контейнерных и неконтейнерных нагрузок
+- и т.д. …
+
+## Ansible
+
+- ПО, от компании Red Hat, изначально созданное для управления конфигурацией.
+
+ Использует также декларативный язык
+
+ 
+
+ [[Ansible - основы]]
diff --git a/90 Library/DevOps/Terraform.md b/90 Library/DevOps/Terraform.md
new file mode 100644
index 0000000..8e4994d
--- /dev/null
+++ b/90 Library/DevOps/Terraform.md
@@ -0,0 +1,35 @@
+---
+status: stable
+type: concept
+tags:
+ - devops
+ - terraform
+created: 2026-02-13
+updated: 2026-05-07
+title: Terraform
+---
+
+# Terraform
+
+[Devops вводный 3 урок. Работа с IaC через terraform и ansible.pdf](#root/LjCayegQsEBv/vJCtNA7LSLFA/ARzmNd1EFrgt)
+
+Terraform - ПО, разработанное HashiCorp для централизованного управления инфраструктурой по методологии [[IaC - основы|IaC]].
+
+Использует в своей работе сущности:
+
+1. `main.tf` - основной файл с декларативным описанием желаемого состояния инфраструктуры.
+2. `terraform.d/` -директория, в которой хранится terraform-провайдер (api для взаимодействия с конкретной платформой) после его загрузки.
+3. `.terraform/` - директория, в которой хранятся файлы, в том числе и файлы провайдера.
+4. `terraform.lock.hcl` - файл блокировки для кэша `.terraform/`.
+5. `terraform.tfstate` - файл, для регистрации состояния инфраструктуры
+
+Команды, используемые в работе с Terraform:
+
+1. `terraform init` - инициализация рабочей директории, содержащей файлы tf.
+2. `terraform plan` - команда для предварительного просмотра изменений без фактического применения.
+3. `terraform apply` - применение изменений на инфре.
+4. `terraform refresh` -
+
+## Связанные заметки
+- [[NAT]] — NAT-шлюзы, пулы IP-адресов и сетевые сегменты — типовые ресурсы, которые Terraform декларативно управляет в облачной инфраструктуре
+- [[IaC - основы]] — методология, которую реализует Terraform
\ No newline at end of file
diff --git a/90 Library/DevOps/Основные команды git.md b/90 Library/DevOps/Основные команды git.md
new file mode 100644
index 0000000..2c93b57
--- /dev/null
+++ b/90 Library/DevOps/Основные команды git.md
@@ -0,0 +1,72 @@
+---
+status: seed
+type: guide
+tags:
+ - devops
+ - git
+ - cli
+created: 2025-12-17
+updated: 2026-05-07
+title: Основные команды git
+---
+
+# Основные команды git
+
+Эта заметка — краткий справочник по базовым командам [[Git]].
+
+## Создание и получение репозитория
+
+- `git init` — создать новый Git-репозиторий в текущем проекте.
+- `git clone` — создать локальную копию удалённого репозитория.
+
+## Работа с ветками
+
+- `git branch` — показать, создать или удалить ветки.
+- `git checkout` — переключиться на ветку, файл или коммит.
+- `git merge` — слить одну ветку в другую.
+- `git rebase` — перебазировать ветку поверх другой ветки.
+
+## Работа с изменениями
+
+- `git status` — показать состояние рабочего каталога.
+- `git add` — добавить изменения в индекс.
+- `git commit` — зафиксировать проиндексированные изменения.
+- `git restore` — откатить изменения или убрать их из индекса.
+- `git revert` — создать новый коммит, отменяющий выбранный старый коммит без переписывания истории.
+
+## Работа с удалённым репозиторием
+
+- `git push` — отправить локальные коммиты в удалённый репозиторий.
+- `git pull` — получить изменения из удалённого репозитория и сразу объединить их с локальной веткой.
+
+Платформы вроде [[Gitlab]] используют эти операции как основу для командной разработки, merge request и CI/CD.
+
+## Merge и rebase
+
+`git merge` и `git rebase` решают одну задачу: переносят изменения из одной ветки в другую. Разница в том, как они меняют историю.
+
+### Merge
+
+`git merge` создаёт слияние веток без переписывания уже существующих коммитов. Это безопасный вариант для публичных веток.
+
+
+
+### Rebase
+
+`git rebase` переносит коммиты текущей ветки поверх другой ветки и помогает получить более линейную историю.
+
+
+
+> [!important] Золотое правило rebase
+> Не выполнять `git rebase` над публичной веткой, если её уже используют другие разработчики.
+
+## Когда выбирать merge или rebase
+
+- Если нужно сохранить полную историю и не переписывать публичные коммиты — использовать `git merge`.
+- Если нужна чистая линейная история в локальной или личной ветке — использовать `git rebase`.
+
+## Связанные заметки
+
+- [[Git]]
+- [[Gitlab]]
+- [[DevOps - основы]]
diff --git a/90 Library/Finance/Бухгалтерский учет/Бухгалтерский баланс.md b/90 Library/Finance/Бухгалтерский учет/Бухгалтерский баланс.md
new file mode 100644
index 0000000..1f5d8df
--- /dev/null
+++ b/90 Library/Finance/Бухгалтерский учет/Бухгалтерский баланс.md
@@ -0,0 +1,103 @@
+---
+status: processing
+type: concept
+tags:
+ - accounting
+ - finance
+ - mephi
+created: 2026-02-13
+updated: 2026-05-07
+title: Бухгалтерский Баланс (ББ)
+---
+
+# Бухгалтерский Баланс (ББ)
+
+**Бухгалтерский баланс** — это моментальный снимок финансового состояния организации на определенную дату.
+
+> **Основное уравнение:** Активы = Обязательства + Собственный капитал (Пассивы)
+
+## Общие Сведения
+- **Дата публикации:** Баланс всегда составляется на конкретную дату (обычно 31 декабря).
+- **ИНН (Идентификационный номер налогоплательщика):** Выдается один раз.
+ - Первые 2 цифры—код субъекта РФ (регион).
+ - Вторые 2 цифры—номер налоговой инспекции.
+
+---
+
+## АКТИВ (Куда Вложены деньги)
+
+### I Раздел: Внеоборотные Активы (ВНА)
+Характеризуют **инвестиционную деятельность** компании. Рост ВНА во времени означает, что компания вкладывается в свое развитие (модернизация, расширение).
+- **Нематериальные активы (НМА):** Товарные знаки, лицензии, патенты, ноу-хау.
+- **Основные средства (ОС):** Здания, оборудование, транспорт.
+- **Долгосрочные финансовые вложения.**
+
+### II Раздел: Оборотные Активы (ОА)
+Характеризуют **текущую (операционную) деятельность**.
+- **Запасы:**
+ - *Сырье и материалы:* Характеризуют закупочную деятельность.
+ - *Незавершенное производство (НЗП):* Стоимость продукции на технологических этапах.
+ - *Готовая продукция:* Товары на складе для продажи.
+- **Дебиторская задолженность (ДЗ):** Долги контрагентов перед компанией.
+ - *Краткосрочная:* Погашение до 12 месяцев.
+ - *Долгосрочная:* Погашение свыше 12 месяцев.
+- **Денежные средства:** Самый ликвидный актив.
+
+---
+
+## ПАССИВ (Откуда Взяты деньги)
+
+### III Раздел: Капитал И Резервы (Собственный капитал)
+Бессрочный и платный источник финансирования.
+- **Плата за капитал:** Дивиденды.
+- **Назначение:** Первоочередное инвестирование во внеоборотные активы.
+
+### IV Раздел: Долгосрочные Обязательства
+Устойчивый источник финансирования.
+- **Срок погашения:** Более 12 месяцев (обычно 3–5 лет).
+- Предназначены для финансирования ВНА и крупных проектов.
+
+### V Раздел: Краткосрочные Обязательства
+Неустойчивый источник финансирования.
+- **Срок погашения:** До 12 месяцев.
+- **Краткосрочные кредиты и займы:** Используются для пополнения оборотных активов.
+- **Кредиторская задолженность:** Бесплатный источник (долги перед поставщиками, персоналом, бюджетом).
+ - *Важно:* Срок задолженности не должен превышать 3 месяца, иначе возникает риск процедуры банкротства.
+
+---
+
+## Аналитические Выводы
+1. **Инвестиционная активность:** Увеличение I раздела (ВНА) = развитие компании.
+2. **Финансовая устойчивость:** В идеале ВНА должны покрываться собственным капиталом (III раздел) и долгосрочными займами (IV раздел).
+3. **Ликвидность:** Способность компании быстро превратить активы (II раздел) в деньги для погашения краткосрочных долгов (V раздел).
+
+---
+
+## Детализация Задолженностей
+
+### Дебиторская Задолженность (ДЗ)
+*Счета, по которым контрагенты должны нашей организации:*
+- **62 счет:** Задолженность покупателей и заказчиков.
+- **60 счет:** Авансы выданные.
+- **68, 69 счета:** Расчеты по налогам и сборам.
+- **71, 73 счета:** Расчеты с подотчетными лицами.
+- **65 счет:** Задолженность по дивидендам к получению.
+- **58 счет:** Расчеты по начисленным процентам по выданным займам.
+- **76 счет:** Расчеты по процентам, депозитам и денежным эквивалентам.
+
+> Далее — специфика каждой компании.
+
+### Кредиторская Задолженность (КЗ)
+*Счета, по которым наша организация должна контрагентам:*
+- **60 счет:** Задолженность перед поставщиками и подрядчиками.
+- **68, 69 счета:** Задолженность по налогам и сборам, бюджетным фондам.
+- **62 счет:** Авансы полученные.
+- **76 счет:** Расчеты по агентским договорам.
+- **70, 71 счета:** Прочие кредиторы.
+
+**Важно:** Счета **66 и 67** — это кредиты и займы, которые мы привлекаем (краткосрочные и долгосрочные соответственно). Они выделяются отдельно от КЗ.
+
+---
+
+# См. Также
+- [[Отчет о финансовых результатах]]
\ No newline at end of file
diff --git a/90 Library/Finance/Бухгалтерский учет/Отчет о финансовых результатах.md b/90 Library/Finance/Бухгалтерский учет/Отчет о финансовых результатах.md
new file mode 100644
index 0000000..8273982
--- /dev/null
+++ b/90 Library/Finance/Бухгалтерский учет/Отчет о финансовых результатах.md
@@ -0,0 +1,59 @@
+---
+status: processing
+type: concept
+tags:
+ - accounting
+ - finance
+ - mephi
+created: 2026-02-24
+updated: 2026-05-07
+title: Отчет о финансовых результатах (ОФР)
+---
+
+# Отчет о финансовых результатах (ОФР)
+
+**Отчет о финансовых результатах** отражает порядок формирования прибыли организации за определенный период.
+
+## Основная деятельность
+Первый блок отчета характеризует финансовые результаты от обычных видов деятельности.
+
+- **Расходы по основному виду деятельности** — это совокупность:
+ - Себестоимости продаж;
+ - Коммерческих расходов (**счет 44**);
+ - Управленческих расходов (**счет 26**).
+- **Прибыль от продаж (Прибыль от основной деятельности)** = Выручка − Расходы по основному виду деятельности.
+
+## Формирование и распределение прибыли
+- **Прибыль до налогообложения** формируется за счет прибыли от основного и прочих видов деятельности.
+- **Чистая прибыль** — это прибыль компании, очищенная от налогов и иных обязательств. Она принадлежит акционерам (собственникам).
+- **Распределение чистой прибыли:**
+ - Часть выплачивается в виде **дивидендов**.
+ - Остаток **капитализируется** (нераспределенная прибыль) и направляется на развитие компании.
+
+## Выручка НЕТТО
+В ОФР выручка всегда отражается в форме **НЕТТО**, то есть очищенная от начисленного в бюджет **НДС**.
+
+### Основные проводки по основному виду деятельности
+1. **Дт 62 — Кт 90.1:** Выручка БРУТТО (договорная цена, в том числе НДС).
+2. **Дт 90.3 — Кт 68.2:** Начислен НДС с реализации в бюджет.
+ - *Разница между 90.1 и 90.3 дает выручку НЕТТО.*
+3. **Дт 90.2 — Кт 20, 43:** Списание себестоимости.
+4. **Дт 90.2 — Кт 44:** Списание коммерческих расходов.
+5. **Дт 90.2 — Кт 26:** Списание управленческих расходов.
+
+### Определение финансового результата (счет 90)
+- **Остаток по кредиту счета 90** — Прибыль от основного вида деятельности (выручка превышает затраты).
+- **Остаток по дебету счета 90** — Убыток от основного вида деятельности (расходы превышают выручку).
+
+## Аналитические выводы
+- У производственной компании прибыль от основного вида деятельности должна преобладать в структуре прибыли до налогообложения.
+
+# Отчет об изменении капитала
+
+Собственный капитал компании делится на две группы:
+1) Капитал инвестированный, включающий:
+ - Уставный
+ - Собственные акции выкупленные
+1) Капитал накопленный (заработанный):
+ - нераспределенная прибыль
+ - резервный капитал
\ No newline at end of file
diff --git a/90 Library/Finance/Инвестиции/Акции.md b/90 Library/Finance/Инвестиции/Акции.md
new file mode 100644
index 0000000..93fde15
--- /dev/null
+++ b/90 Library/Finance/Инвестиции/Акции.md
@@ -0,0 +1,83 @@
+---
+status: seed
+type: guide
+tags:
+ - finance
+ - investments
+ - stocks
+created: 2026-05-18
+updated: 2026-05-18
+title: Акции
+source:
+ - "[[395f976c-4494-4b0f-a513-2a17e76a1fbe]]"
+ - "[[c569c481-8263-47ee-8ffa-6ee6acee3fab]]"
+ - "[[eba27a8b-3c53-46ee-adc0-c9888ff705e1]]"
+---
+
+# Акции
+
+Акция — ценная бумага, дающая право на долю в компании. Инвестор становится совладельцем бизнеса и может заработать на росте цены акции или на дивидендах.
+
+## Как заработать
+
+- продать дороже, чем купил: длинная позиция;
+- заработать на падении через короткую позицию, если это соответствует стратегии и риску;
+- получить дивиденды;
+- держать долю в бизнесе на длинном горизонте.
+
+## Типы акций
+
+- Обыкновенные — дают право голоса.
+- Привилегированные — обычно дают больше прав на дивиденды, но ограничивают голосование.
+- Акции роста — компании быстро растут и часто реинвестируют прибыль.
+- Акции стоимости — бизнес торгуется дешевле справедливой оценки или аналогов.
+- Дивидендные акции — устойчивые компании с денежным потоком и выплатами.
+
+## Что влияет на котировки
+
+Внутренние факторы:
+
+- операционные показатели;
+- финансовые показатели;
+- новости компании;
+- дивидендная политика;
+- байбэки;
+- сделки и корпоративные события.
+
+Внешние факторы:
+
+- динамика рынка;
+- макроэкономика;
+- ключевая ставка;
+- курс рубля;
+- геополитика;
+- поведение крупных участников;
+- блогеры и рыночный хайп.
+
+Выход позитивной новости не всегда ведет к росту цены: рынок мог заложить её заранее.
+
+## Стратегии
+
+- Индексная — повторять широкий рынок через индекс или фонд.
+- Усреднение — регулярно покупать активы независимо от текущей цены.
+- Buy and hold — держать качественные компании долго.
+- Дивидендная — выбирать бизнесы с устойчивыми выплатами.
+- Value — искать недооцененные компании.
+- Growth — искать компании с быстрым ростом.
+
+## Риски
+
+- переоценка;
+- слабые финансовые показатели;
+- высокая долговая нагрузка;
+- падение дивидендов;
+- регуляторные и налоговые изменения;
+- рыночная волатильность;
+- концентрация в одной бумаге.
+
+## Связанные заметки
+
+- [[Оценка акций]]
+- [[Дивидендный портфель]]
+- [[Индексное инвестирование]]
+- [[Инвестиционный портфель]]
diff --git a/90 Library/Finance/Инвестиции/База инвестора.md b/90 Library/Finance/Инвестиции/База инвестора.md
new file mode 100644
index 0000000..ce6c872
--- /dev/null
+++ b/90 Library/Finance/Инвестиции/База инвестора.md
@@ -0,0 +1,50 @@
+---
+status: seed
+type: moc
+tags:
+ - finance
+ - investments
+created: 2026-05-18
+updated: 2026-05-18
+title: База инвестора
+---
+
+# База инвестора
+
+Навигационная заметка по инвестициям. Общая логика: сначала цель, горизонт и [[Риск-профиль инвестора]], потом структура [[Инвестиционный портфель|портфеля]], затем выбор классов активов и конкретных инструментов.
+
+Не является индивидуальной инвестиционной рекомендацией.
+
+## Базовый маршрут
+
+1. Определить цель и горизонт.
+2. Оценить [[Риск-профиль инвестора]].
+3. Собрать [[Инвестиционный портфель]] из ролей: ликвидность, защита, доход, рост, валютная защита.
+4. Выбрать инструменты: [[Облигации]], [[Акции]], [[Инвестиционные фонды]], [[Золото в портфеле]], [[Криптовалюты как инвестиционный актив]].
+5. Настроить правила управления: [[Управление инвестиционным портфелем]], ребалансировка, календарь событий, фиксация доходности.
+6. Отдельно отделять инвестирование от [[Трейдинг|трейдинга]].
+
+## Карта заметок
+
+- [[Риск-профиль инвестора]] — готовность и возможность принимать риск.
+- [[Инвестиционный портфель]] — структура портфеля, диверсификация, роли активов.
+- [[Управление инвестиционным портфелем]] — что делать после сборки портфеля, как ребалансировать и реагировать на события.
+- [[Облигации]] — долговые инструменты, дюрация, купоны, флоатеры, ВДО.
+- [[Акции]] — доля в бизнесе, типы акций, факторы цены.
+- [[Оценка акций]] — мультипликаторы, фундаментальный анализ и красные флаги.
+- [[Индексное инвестирование]] — покупка рынка через индексы и фонды.
+- [[Дивидендный портфель]] — акции как источник денежного потока.
+- [[Инвестиционные фонды]] — фонды, комиссии, репликация, ошибка слежения.
+- [[Золото в портфеле]] — защитный актив и способы инвестирования.
+- [[Криптовалюты как инвестиционный актив]] — биткоин, Ethereum, стейблкоины, волатильность.
+- [[Трейдинг]] — технический анализ, новости, объем, риск-контроль.
+- [[Инсайдерская торговля и манипулирование рынком]] — нечестные практики и признаки подозрительного поведения.
+
+## Связанные заметки
+
+- [[Производные финансовые инструменты]] — деривативы, опционы и инструменты с иной природой риска.
+- [[Налог на доходы физических лиц (НДФЛ)]] — налоги с инвестиционного дохода.
+- [[Налоговые вычеты]] — инвестиционные и прочие вычеты.
+- [[Бухгалтерский баланс]] — база для анализа долговой нагрузки и капитала.
+- [[Отчет о финансовых результатах]] — прибыль, выручка и финансовая динамика бизнеса.
+- [[Экономическая безопасность - база]] — макроэкономический контекст.
diff --git a/90 Library/Finance/Инвестиции/Дивидендный портфель.md b/90 Library/Finance/Инвестиции/Дивидендный портфель.md
new file mode 100644
index 0000000..dff9593
--- /dev/null
+++ b/90 Library/Finance/Инвестиции/Дивидендный портфель.md
@@ -0,0 +1,56 @@
+---
+status: seed
+type: guide
+tags:
+ - finance
+ - investments
+ - stocks
+ - dividends
+created: 2026-05-18
+updated: 2026-05-18
+title: Дивидендный портфель
+source:
+ - "[[40b9753d-3670-4abe-81f0-a5cc53a76cf2]]"
+ - "[[eba27a8b-3c53-46ee-adc0-c9888ff705e1]]"
+ - "[[d37051ae-813b-4419-8f60-2761d7b5fab8]]"
+---
+
+# Дивидендный портфель
+
+Дивидендный портфель — стратегия получения денежного потока из [[Акции|акций]] устойчивых компаний. Важно смотреть не только на текущую дивидендную доходность, но и на способность бизнеса регулярно генерировать прибыль.
+
+## Что искать
+
+- устойчивый денежный поток;
+- понятная дивидендная политика;
+- умеренная долговая нагрузка;
+- стабильная прибыль;
+- прозрачное корпоративное управление;
+- низкая вероятность отмены выплат;
+- разумная оценка по мультипликаторам.
+
+## Риски
+
+- компания может отменить дивиденды;
+- высокая дивидендная доходность может быть следствием падения цены из-за проблем;
+- разовые сверхдивиденды не равны устойчивому доходу;
+- налоги снижают итоговую доходность;
+- концентрация в нескольких дивидендных бумагах повышает риск.
+
+## Календарь дивидендов
+
+Важные даты:
+
+- заседание совета директоров;
+- рекомендация по дивидендам;
+- общее собрание акционеров;
+- дата закрытия реестра;
+- дивидендный гэп;
+- дата фактической выплаты.
+
+## Связанные заметки
+
+- [[Акции]]
+- [[Оценка акций]]
+- [[Налог на доходы физических лиц (НДФЛ)]]
+- [[Управление инвестиционным портфелем]]
diff --git a/90 Library/Finance/Инвестиции/Золото в портфеле.md b/90 Library/Finance/Инвестиции/Золото в портфеле.md
new file mode 100644
index 0000000..40dc913
--- /dev/null
+++ b/90 Library/Finance/Инвестиции/Золото в портфеле.md
@@ -0,0 +1,49 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - investments
+ - gold
+created: 2026-05-18
+updated: 2026-05-18
+title: Золото в портфеле
+source:
+ - "[[78e94a8b-66be-410f-8618-0345ff3918e5]]"
+ - "[[db7c2cfc-acde-4abe-a59e-87ab4a232034]]"
+---
+
+# Золото в портфеле
+
+Золото — защитный актив, который используют для снижения риска портфеля в кризисы, периоды высокой инфляции, геополитической нестабильности и валютных шоков.
+
+## Драйверы
+
+- ослабление доллара;
+- реальные процентные ставки;
+- высокая инфляция;
+- геополитическая нестабильность;
+- спрос центробанков;
+- ювелирный и промышленный спрос;
+- инвестиционный спрос.
+
+После 2022 года мировые центробанки заметно нарастили покупки золота, снижая долю резервов в государственных облигациях США.
+
+## Доля в портфеле
+
+Практическое правило из материалов: около 10% золота может улучшать соотношение доходности и риска. Это не жесткая норма, а ориентир для защитной доли.
+
+## Инструменты
+
+| Инструмент | Плюсы | Минусы |
+|---|---|---|
+| Слитки и монеты | независимость от брокера | спред, хранение, риск повреждений |
+| Биржевое золото | ликвидность | комиссии брокера/хранения |
+| Фонд на золото | низкий порог входа | комиссия управления |
+| Акции/облигации золотодобытчиков | возможна доходность выше золота | риск компании и рынка |
+
+## Связанные заметки
+
+- [[Инвестиционный портфель]]
+- [[Облигации]]
+- [[Инвестиционные фонды]]
diff --git a/90 Library/Finance/Инвестиции/Инвестиционные фонды.md b/90 Library/Finance/Инвестиции/Инвестиционные фонды.md
new file mode 100644
index 0000000..1605e26
--- /dev/null
+++ b/90 Library/Finance/Инвестиции/Инвестиционные фонды.md
@@ -0,0 +1,64 @@
+---
+status: seed
+type: guide
+tags:
+ - finance
+ - investments
+ - funds
+created: 2026-05-18
+updated: 2026-05-18
+title: Инвестиционные фонды
+source:
+ - "[[78e94a8b-66be-410f-8618-0345ff3918e5]]"
+ - "[[b63b403c-1855-498f-8866-2052120fff61]]"
+ - "[[bce065fa-19e5-43f6-a76f-e6bb4f56b06a]]"
+---
+
+# Инвестиционные фонды
+
+Фонд — коллективный портфель активов. Инвестор покупает пай и получает долю в портфеле, которым управляет управляющая компания.
+
+## Плюсы
+
+- диверсификация внутри одного инструмента;
+- низкий порог входа;
+- профессиональное управление;
+- ликвидность биржевых фондов;
+- налоговая эффективность внутри фонда;
+- автоматическое реинвестирование купонов и дивидендов, если фонд не делает выплаты.
+
+## Минусы
+
+- комиссия управления;
+- ошибка слежения за индексом;
+- зависимость от качества управляющей компании;
+- один фонд редко закрывает все задачи портфеля.
+
+## Как выбирать фонд
+
+- комиссия фонда;
+- ошибка слежения;
+- способ репликации;
+- размер активов под управлением;
+- состав и веса активов;
+- история фонда и поведение в кризисы;
+- ликвидность паев;
+- соответствие фонда фазе экономического цикла.
+
+## Типы фондов
+
+| Тип | Когда полезен | Риск | Горизонт |
+|---|---|---|---|
+| Денежный рынок | временное размещение денег, высокая ставка | низкий | до года |
+| ОФЗ | снижение ставки, облигационная база | низкий/средний | от года |
+| Корпоративные облигации | премия за кредитный риск | средний | 1-3 года |
+| Валютные облигации | защита от ослабления рубля | средний | от года |
+| Золото | защитный актив | средний | от года |
+| Акции | рост капитала | высокий | от 3 лет |
+
+## Связанные заметки
+
+- [[Индексное инвестирование]]
+- [[Инвестиционный портфель]]
+- [[Облигации]]
+- [[Акции]]
diff --git a/90 Library/Finance/Инвестиции/Инвестиционный портфель.md b/90 Library/Finance/Инвестиции/Инвестиционный портфель.md
new file mode 100644
index 0000000..f36ce78
--- /dev/null
+++ b/90 Library/Finance/Инвестиции/Инвестиционный портфель.md
@@ -0,0 +1,62 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - investments
+ - portfolio
+created: 2026-05-18
+updated: 2026-05-18
+title: Инвестиционный портфель
+source:
+ - "[[458a0596-ee1c-43dc-9c4e-de29c9df919c]]"
+ - "[[4a28d0a1-8393-4b0c-b528-ec4d42dca0f0]]"
+ - "[[e74de470-d705-4000-80d0-5daecd564267]]"
+---
+
+# Инвестиционный портфель
+
+Инвестиционный портфель — набор активов, собранный под цель, горизонт и [[Риск-профиль инвестора]]. Успех зависит не от одной удачной идеи, а от доходности и устойчивости всего набора активов.
+
+## С чего начать
+
+1. Определить цель: накопление капитала, защита от инфляции, пассивный доход, обучение рынку.
+2. Определить горизонт: когда деньги понадобятся.
+3. Определить риск-профиль.
+4. Разложить портфель по ролям активов.
+5. Задать правила пополнения, ребалансировки и фиксации прибыли.
+
+## Роли активов
+
+- ликвидность: кэш, денежный рынок, короткие [[Облигации]];
+- защита: ОФЗ, надежные облигации, [[Золото в портфеле]];
+- доход: корпоративные облигации инвестиционного уровня, [[Дивидендный портфель]];
+- рост: [[Акции]], фонды акций, индексные инструменты;
+- валютная защита: замещающие/квазивалютные облигации, золото, частично [[Криптовалюты как инвестиционный актив]].
+
+## Диверсификация
+
+Диверсификация снижает риск, потому что разные активы реагируют на события по-разному. Полезно диверсифицировать:
+
+- по классам активов;
+- по эмитентам;
+- по секторам;
+- по валютам;
+- по срокам погашения облигаций;
+- по стратегиям.
+
+## Практические правила
+
+- Не начинать с плечей и сложных инструментов.
+- Не концентрироваться в одном эмитенте или секторе.
+- Не покупать длинные облигации без понимания дюрации.
+- Не держать весь портфель в одном классе активов.
+- Фиксировать причину покупки до сделки.
+- Отделять инвестиционную стратегию от [[Трейдинг|трейдинговой]].
+
+## Связанные заметки
+
+- [[База инвестора]]
+- [[Управление инвестиционным портфелем]]
+- [[Индексное инвестирование]]
+- [[Инвестиционные фонды]]
diff --git a/90 Library/Finance/Инвестиции/Индексное инвестирование.md b/90 Library/Finance/Инвестиции/Индексное инвестирование.md
new file mode 100644
index 0000000..43483c8
--- /dev/null
+++ b/90 Library/Finance/Инвестиции/Индексное инвестирование.md
@@ -0,0 +1,54 @@
+---
+status: seed
+type: guide
+tags:
+ - finance
+ - investments
+ - index
+ - funds
+created: 2026-05-18
+updated: 2026-05-18
+title: Индексное инвестирование
+source:
+ - "[[bce065fa-19e5-43f6-a76f-e6bb4f56b06a]]"
+ - "[[eba27a8b-3c53-46ee-adc0-c9888ff705e1]]"
+---
+
+# Индексное инвестирование
+
+Индексное инвестирование — стратегия покупки рынка целиком или его сегмента через индексные фонды. Цель — повторить результат широкого рынка, а не выбрать одну лучшую акцию.
+
+## Индексы
+
+- Индекс Мосбиржи — акции крупнейших российских компаний.
+- Индекс РТС — близкий по составу индекс, но рассчитывается в долларах.
+- Индекс голубых фишек — узкая корзина крупнейших компаний.
+- Индексы облигаций — корзины долговых инструментов.
+
+Индекс отражает правила: какие бумаги входят, какие веса используются, как часто проводится ребалансировка.
+
+## Плюсы
+
+- снижение риска за счет корзины активов;
+- не нужно выбирать отдельные бумаги;
+- фонд сам делает ребалансировку;
+- удобно для пассивной стратегии;
+- низкий порог входа.
+
+## Минусы
+
+- индекс покупает и хорошие, и слабые компании;
+- есть комиссия фонда;
+- возможна ошибка слежения;
+- доходность ограничена динамикой выбранного рынка;
+- страновой и валютный риск остаются.
+
+## Связь с портфелем
+
+Индексный фонд может быть ядром портфеля акций. Поверх него можно добавлять отдельные идеи, если инвестор понимает, зачем они нужны и какой риск добавляют.
+
+## Связанные заметки
+
+- [[Инвестиционные фонды]]
+- [[Акции]]
+- [[Инвестиционный портфель]]
diff --git a/90 Library/Finance/Инвестиции/Инсайдерская торговля и манипулирование рынком.md b/90 Library/Finance/Инвестиции/Инсайдерская торговля и манипулирование рынком.md
new file mode 100644
index 0000000..113497e
--- /dev/null
+++ b/90 Library/Finance/Инвестиции/Инсайдерская торговля и манипулирование рынком.md
@@ -0,0 +1,43 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - investments
+ - market-abuse
+created: 2026-05-18
+updated: 2026-05-18
+title: Инсайдерская торговля и манипулирование рынком
+source:
+ - "[[099dd81b-27a1-46e5-88fe-20276b442b78]]"
+---
+
+# Инсайдерская торговля и манипулирование рынком
+
+Инсайдерская торговля — использование существенной непубличной информации для сделок на рынке. Для частного инвестора такие кейсы важны как источник рыночного риска и как сигнал, что необычное движение цены не всегда объясняется публичными новостями.
+
+## Признаки подозрительного движения
+
+- рост или падение без публичных новостей;
+- повышенные объемы перед существенным фактом;
+- движение за часы до дивидендной рекомендации или корпоративного события;
+- резкая реакция до официального раскрытия;
+- расхождение между фундаментальной картиной и поведением цены.
+
+## Примеры из материалов
+
+- Сбербанк: рост и повышенные объемы перед существенным фактом по дивидендам.
+- Ашинский метзавод: покупки на падающем рынке перед рекордными дивидендами.
+- ЭсЭфАй: рост на повышенных объемах за несколько часов до объявления дивидендов.
+- Магнит: проблемы с раскрытием отчетности, понижение уровня листинга, исключение из индекса и отсутствие дивидендного драйвера.
+
+## Практический вывод
+
+Необычные объемы и движение цены могут быть сигналом, но не являются доказательством инсайда. Для инвестора это повод проверить новости, раскрытие, календарь событий, ликвидность и риск входа в перегретое движение.
+
+## Связанные заметки
+
+- [[Акции]]
+- [[Дивидендный портфель]]
+- [[Управление инвестиционным портфелем]]
+- [[Экономическая безопасность - база]]
diff --git a/90 Library/Finance/Инвестиции/Криптовалюты как инвестиционный актив.md b/90 Library/Finance/Инвестиции/Криптовалюты как инвестиционный актив.md
new file mode 100644
index 0000000..2d18375
--- /dev/null
+++ b/90 Library/Finance/Инвестиции/Криптовалюты как инвестиционный актив.md
@@ -0,0 +1,67 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - investments
+ - crypto
+created: 2026-05-18
+updated: 2026-05-18
+title: Криптовалюты как инвестиционный актив
+source:
+ - "[[1287aee9-73d3-439d-b028-069f9b713000]]"
+ - "[[5366a61b-61ca-4e2f-b445-928ea32d2209]]"
+ - "[[54b7b330-e96b-4b89-93c6-bab34e127186]]"
+---
+
+# Криптовалюты как инвестиционный актив
+
+Криптовалюты — высоковолатильный класс активов, где инвестиционная логика смешивается с технологией, ликвидностью, регуляторным риском и рыночной спекуляцией.
+
+## Биткоин как цифровое золото
+
+Сходства с золотом:
+
+- ограниченное предложение;
+- сложно добывается;
+- делимость и переносимость;
+- нет единого центра;
+- ценность поддерживается общественным консенсусом.
+
+Отличия:
+
+- история биткоина намного короче;
+- выше волатильность;
+- больше технологических и регуляторных рисков;
+- хранение требует цифровой безопасности.
+
+## Ethereum
+
+Ethereum отличается от биткоина тем, что используется как инфраструктура для приложений: смарт-контракты, DeFi, токены, стейблкоины и другие сценарии. Его ценность сильнее зависит от полезности сети и спроса на транзакции.
+
+## Консервативная крипта
+
+В материалах выделяются более осторожные крипто-подходы:
+
+- ограниченная доля крипты в портфеле;
+- фокус на наиболее ликвидных активах;
+- стейблкоины и цифровые валютные депозиты как отдельный рискованный инструмент;
+- избегание покупки через сомнительные Telegram/P2P-схемы;
+- учет юридических и операционных рисков.
+
+## Риски
+
+- высокая волатильность;
+- регуляторные ограничения;
+- риск потери ключей;
+- риск биржи/кастодиана;
+- риск мошенничества;
+- риск стать участником сомнительной сделки при покупке через непрозрачные каналы;
+- технологические риски, включая будущие угрозы криптографии.
+
+## Связанные заметки
+
+- [[База инвестора]]
+- [[Производные финансовые инструменты]]
+- [[OSINT - Зачет]]
+- [[Трейдинг]]
diff --git a/90 Library/Finance/Инвестиции/Облигации с залоговым обеспечением.md b/90 Library/Finance/Инвестиции/Облигации с залоговым обеспечением.md
new file mode 100644
index 0000000..b230745
--- /dev/null
+++ b/90 Library/Finance/Инвестиции/Облигации с залоговым обеспечением.md
@@ -0,0 +1,40 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - investments
+ - bonds
+ - abs
+created: 2026-05-19
+updated: 2026-05-19
+title: Облигации с залоговым обеспечением денежных требований
+source: "[[ВДО no кредитам.md]]"
+---
+
+# Облигации с залоговым обеспечением денежных требований
+
+Облигации, обеспеченные залогом денежных требований (Asset-Backed Securities, ABS) — это долговые инструменты, выплаты по которым гарантированы правами на будущие денежные поступления эмитента (например, платежи по кредитам, аренде или поставкам).
+
+## Механизм работы
+
+1. **Обеспечение**: Залогом выступают только денежные требования эмитента к заемщикам/контрагентам.
+2. **Залоговый счет**: Все поступающие платежи по требованиям аккумулируются на отдельном залоговом счете. Эмитент не может тратить эти деньги на цели, не связанные с обслуживанием данного выпуска облигаций.
+3. **СФО (Специализированное финансовое общество)**: Часто эмитентом выступает специально созданное СФО. Это юридическое лицо с ограниченной правоспособностью, созданное исключительно для выпуска таких облигаций, что изолирует риски основного бизнеса материнской компании от инвесторов.
+
+## Преимущества и защиты
+
+- **Изоляция рисков**: Банкротство материнской компании (оригинатора) не ведет автоматически к дефолту по облигациям, если заемщики продолжают платить.
+- **Целевое использование**: Деньги на залоговом счете защищены от нецелевых трат эмитента.
+- **Реинвестирование**: В решении о выпуске может быть прописано право СФО покупать новые денежные требования на средства с залогового счета.
+
+## Риски
+
+- **Кредитный риск портфеля**: Если конечные должники (физлица или компании) перестанут платить по кредитам/аренде, СФО не сможет обслуживать облигации.
+- **Ликвидность**: Такие выпуски часто имеют низкий объем торгов на вторичном рынке.
+- **Операционный риск**: Возможные задержки при смене СФО или обслуживающей организации в случае юридических проблем.
+- **Отсутствие страхования**: Инструмент не застрахован государством.
+
+## Связанные заметки
+- [[Облигации]]
+- [[Инвестиционный портфель]]
diff --git a/90 Library/Finance/Инвестиции/Облигации.md b/90 Library/Finance/Инвестиции/Облигации.md
new file mode 100644
index 0000000..612e333
--- /dev/null
+++ b/90 Library/Finance/Инвестиции/Облигации.md
@@ -0,0 +1,94 @@
+---
+status: seed
+type: guide
+tags:
+ - finance
+ - investments
+ - bonds
+created: 2026-05-18
+updated: 2026-05-18
+title: Облигации
+source:
+ - "[[78e94a8b-66be-410f-8618-0345ff3918e5]]"
+ - "[[8e65f8ca-b8eb-4e10-97e1-fde245b1c9c4]]"
+ - "[[a2713c5f-1e6b-429c-98cc-710b179bc017]]"
+ - "[[b4100a43-8a47-4dad-923f-39fb309c849e]]"
+ - "[[be737cd3-f448-4b6c-b765-8097229f153f]]"
+---
+
+# Облигации
+
+Облигация — долговой инструмент: инвестор дает деньги эмитенту, получает купоны и возврат номинала при погашении. Доход предсказуемее, чем в акциях, но риск не нулевой.
+
+## Базовые понятия
+
+- эмитент — государство, регион, муниципалитет или компания;
+- номинал — сумма, которую вернут при погашении;
+- купон — процентное вознаграждение;
+- дата погашения — возврат номинала;
+- доходность к погашению — ожидаемая доходность при удержании до погашения;
+- дюрация — средний срок возврата денег и чувствительность цены к ставке;
+- оферта — возможность досрочного выкупа.
+
+Смотреть нужно не только на купон, а на доходность к погашению или оферте.
+
+## Виды
+
+- ОФЗ — федеральные облигации, базовый надежный рублевый инструмент.
+- Муниципальные — выше доходность и ниже ликвидность, чем у ОФЗ.
+- Корпоративные — доходность выше за счет кредитного риска компании.
+- Флоатеры — купон зависит от ставки/RUONIA/инфляции; полезны при риске роста ставки.
+- Линкеры — номинал индексируется на инфляцию.
+- Замещающие и юаневые — валютная диверсификация в российской инфраструктуре.
+- ВДО — высокая доходность и высокий риск дефолта.
+- [[Облигации с залоговым обеспечением]] — выплаты обеспечены правами на денежные требования (ABS).
+
+## Дюрация и ставка
+
+Цена облигации обратно зависит от рыночной доходности:
+
+- ставка растет — старые облигации дешевеют;
+- ставка падает — старые облигации дорожают;
+- чем выше дюрация, тем сильнее реакция цены.
+
+Длинные облигации — это не просто "надежно", а ставка на снижение ставок. Если ставка неожиданно вырастет, длинная бумага даст временную просадку.
+
+## Как выбирать
+
+1. Оценить доходность к погашению/оферте.
+2. Сравнить доходность с ОФЗ сопоставимого срока через G-spread.
+3. Проверить рейтинг: на старте разумнее AAA-AA, рискованные идеи — не ниже A.
+4. Проверить долговую нагрузку эмитента, выручку, прибыль, процентное покрытие.
+5. Выбрать срок под свой горизонт.
+6. Проверить ликвидность.
+7. Диверсифицировать по эмитентам и отраслям.
+8. Не пропускать оферты и пересмотр купона.
+
+## Стратегии
+
+- Держать до погашения — срок бумаги совпадает с финансовой целью.
+- Лестница облигаций — выпуски с разными сроками погашения.
+- Золотовалютный доход — замещающие, юаневые и золотые инструменты.
+- "Зарплата" на облигациях — портфель, где купоны распределены по месяцам.
+
+## ВДО
+
+Высокодоходные облигации обычно не подходят начинающему инвестору. Высокая доходность — это компенсация за кредитный риск.
+
+Красные флаги:
+
+- рейтинг BB и ниже;
+- отсутствие рейтинга;
+- выпуск до 1 млрд рублей;
+- доходность сильно выше рынка;
+- высокая долговая нагрузка;
+- долги по налогам;
+- странные сделки;
+- бизнес непонятен инвестору.
+
+## Связанные заметки
+
+- [[Инвестиционный портфель]]
+- [[Инвестиционные фонды]]
+- [[Бухгалтерский баланс]]
+- [[Отчет о финансовых результатах]]
diff --git a/90 Library/Finance/Инвестиции/Оценка акций.md b/90 Library/Finance/Инвестиции/Оценка акций.md
new file mode 100644
index 0000000..c8dfd1f
--- /dev/null
+++ b/90 Library/Finance/Инвестиции/Оценка акций.md
@@ -0,0 +1,70 @@
+---
+status: seed
+type: guide
+tags:
+ - finance
+ - investments
+ - stocks
+ - valuation
+created: 2026-05-18
+updated: 2026-05-18
+title: Оценка акций
+source:
+ - "[[b7972f0c-5277-42d2-8e87-10be20c829b7]]"
+ - "[[eba27a8b-3c53-46ee-adc0-c9888ff705e1]]"
+ - "[[2a01a9d4-99f5-4d5c-8fc3-95c4ed62d8af]]"
+---
+
+# Оценка акций
+
+Оценка акции нужна, чтобы понять, что покупается: доля в качественном бизнесе по разумной цене или дорогой актив с красивой историей.
+
+## Базовая логика
+
+Цена акции зависит от:
+
+- прибыли и её устойчивости;
+- роста выручки;
+- долговой нагрузки;
+- рентабельности;
+- дивидендов;
+- ожиданий рынка;
+- риска отрасли и страны.
+
+## Мультипликаторы
+
+- `P/E` — цена к прибыли. Показывает, за сколько лет текущая прибыль условно окупает цену бизнеса.
+- `P/B` или `P/BV` — цена к капиталу. Особенно полезен для банков и финансовых компаний.
+- `P/S` — цена к выручке. Полезен, когда прибыль нестабильна.
+- `EV/EBITDA` — стоимость предприятия к операционной прибыли до процентов, налогов и амортизации.
+- `ROE` — доходность капитала.
+- `PEG` — `P/E` с поправкой на темп роста прибыли.
+
+Чем ниже мультипликатор, тем дешевле оценка, но дешево не всегда значит хорошо. Низкая цена может отражать реальные проблемы бизнеса.
+
+## Что проверять
+
+- динамику выручки и прибыли;
+- долговую нагрузку;
+- маржинальность;
+- ROE;
+- дивидендную политику;
+- качество корпоративного управления;
+- отраслевые драйверы;
+- зависимость от курса, сырья, тарифов, регулятора.
+
+## Когда продавать или сокращать
+
+- тезис сломался;
+- оценка стала намного дороже исторической нормы;
+- бизнес начал делать нетипичные рискованные действия;
+- деньги уходят на сделки с сомнительной пользой вместо развития или выплат;
+- отчетность расходится с ожиданиями;
+- доля бумаги стала слишком большой в портфеле.
+
+## Связанные заметки
+
+- [[Акции]]
+- [[Бухгалтерский баланс]]
+- [[Отчет о финансовых результатах]]
+- [[Управление инвестиционным портфелем]]
diff --git a/90 Library/Finance/Инвестиции/Риск-профиль инвестора.md b/90 Library/Finance/Инвестиции/Риск-профиль инвестора.md
new file mode 100644
index 0000000..9aeb0df
--- /dev/null
+++ b/90 Library/Finance/Инвестиции/Риск-профиль инвестора.md
@@ -0,0 +1,53 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - investments
+ - risk
+created: 2026-05-18
+updated: 2026-05-18
+title: Риск-профиль инвестора
+source:
+ - "[[a5d627bd-c616-43bb-8490-bdeef3f27d15]]"
+ - "[[e74de470-d705-4000-80d0-5daecd564267]]"
+---
+
+# Риск-профиль инвестора
+
+Риск-профиль описывает, какую просадку инвестор реально может выдержать финансово и психологически. Это первичный фильтр для выбора портфеля, а не формальность из анкеты брокера.
+
+## Из чего складывается
+
+- готовность к риску: реакция на волатильность, прошлый опыт, склонность к панике;
+- возможность риска: стабильность дохода, финансовая подушка, долги и обязательства;
+- цель: горизонт инвестирования и требуемая доходность.
+
+## Типовые профили
+
+| Профиль | Цель | Комфортная просадка | Типовая структура |
+|---|---|---:|---|
+| Консервативный | сохранить капитал | 5-15% | облигации, денежный рынок, золото, минимум акций |
+| Умеренный | баланс риска и доходности | 15-35% | акции + облигации, часть защитных активов |
+| Агрессивный | максимальный рост | 30-60% | высокая доля акций, активные идеи, выше волатильность |
+
+Разные источники дают разные границы просадок. Практичнее фиксировать не название профиля, а максимальную приемлемую просадку в процентах и рублях.
+
+## Связь со стилем
+
+- Консерватору логичен пассивный стиль и надежные инструменты.
+- Умеренный профиль допускает пассивную базу и активные идеи.
+- Агрессивный профиль может использовать активные стратегии и [[Трейдинг]], если есть время, навык и дисциплина.
+
+## Ошибки
+
+- выбирать риск-профиль "на росте рынка", когда просадок ещё не было;
+- считать доходность без риска;
+- держать агрессивный портфель без финансовой подушки;
+- подменять стратегию эмоциями и FOMO.
+
+## Связанные заметки
+
+- [[База инвестора]]
+- [[Инвестиционный портфель]]
+- [[Управление инвестиционным портфелем]]
diff --git a/90 Library/Finance/Инвестиции/Трейдинг.md b/90 Library/Finance/Инвестиции/Трейдинг.md
new file mode 100644
index 0000000..6dfea08
--- /dev/null
+++ b/90 Library/Finance/Инвестиции/Трейдинг.md
@@ -0,0 +1,87 @@
+---
+status: seed
+type: guide
+tags:
+ - finance
+ - trading
+ - risk
+created: 2026-05-18
+updated: 2026-05-18
+title: Трейдинг
+source:
+ - "[[64674bde-a499-4e2c-9395-223d057af808]]"
+ - "[[c26f22d5-f84f-41dd-a74f-274ff248cec2]]"
+ - "[[eb2b3804-7372-434a-a89f-a1027dfa9ee3]]"
+ - "[[e3621adb-fddb-45e8-bf26-6028a5ac5a71]]"
+ - "[[d9e79104-3d7b-4aa8-b525-0a5ab36a9771]]"
+ - "[[54b7b330-e96b-4b89-93c6-bab34e127186]]"
+---
+
+# Трейдинг
+
+Трейдинг — активная торговля, где результат зависит от стратегии, риск-контроля, исполнения и дисциплины. Это отдельная деятельность, а не ускоренная версия инвестирования.
+
+## Чем трейдер отличается от инвестора
+
+- Трейдер работает с движением цены и ликвидностью.
+- Инвестор работает с бизнесом, активом и горизонтом.
+- Трейдер не получает гарантированную зарплату от рынка.
+- Издержки, налоги и ошибки исполнения сильнее влияют на результат.
+
+## Типы стратегий
+
+Направленные:
+
+- скальпинг;
+- интрадей;
+- свинг-трейдинг;
+- торговля на пробой уровня;
+- торговля по новостям.
+
+Ненаправленные:
+
+- арбитраж;
+- спреды;
+- торговля волатильностью;
+- опционные стратегии.
+
+## Технический анализ
+
+Теханализ пытается прогнозировать цену по прошлым движениям графика. Его сила — в визуальных паттернах, уровнях, трендах, индикаторах и объемах. Ограничение: он не видит фундамент, новости и действия крупных участников.
+
+Практическое правило: технический сигнал должен подтверждаться контекстом, ликвидностью, объемом и риск-планом.
+
+## Объем
+
+Объем показывает, сколько единиц актива было куплено и продано за период. Через объем можно косвенно оценивать, насколько "настоящим" выглядит движение цены.
+
+Базовые идеи:
+
+- рост цены на сильном объеме убедительнее роста на пустом рынке;
+- пробой уровня без объема чаще ложный;
+- резкий объем около новости может указывать на смену ожиданий;
+- объем не дает точный прогноз, но помогает оценивать качество движения.
+
+## Уроки Market Wizards
+
+- Волатильность не равна риску: низкая волатильность может скрывать большой хвостовой риск.
+- Если новость против позиции, а рынок почти не падает, это может быть сильным сигналом.
+- Если новость за позицию, а рынок реагирует слабо, стоит насторожиться.
+- Нельзя рисковать всем ради одной сделки.
+- Риск-контроль важнее правоты в прогнозе.
+
+## Риск-контроль
+
+- заранее определять риск на сделку;
+- сопоставлять объем позиции с волатильностью инструмента;
+- не использовать плечо без понятного сценария;
+- не выдумывать сделки, если сетапа нет;
+- избегать инструментов, риск которых не понятен;
+- вести журнал сделок.
+
+## Связанные заметки
+
+- [[База инвестора]]
+- [[Акции]]
+- [[Производные финансовые инструменты]]
+- [[Криптовалюты как инвестиционный актив]]
diff --git a/90 Library/Finance/Инвестиции/Управление инвестиционным портфелем.md b/90 Library/Finance/Инвестиции/Управление инвестиционным портфелем.md
new file mode 100644
index 0000000..7da78e6
--- /dev/null
+++ b/90 Library/Finance/Инвестиции/Управление инвестиционным портфелем.md
@@ -0,0 +1,84 @@
+---
+status: seed
+type: guide
+tags:
+ - finance
+ - investments
+ - portfolio
+created: 2026-05-18
+updated: 2026-05-18
+title: Управление инвестиционным портфелем
+source:
+ - "[[2a01a9d4-99f5-4d5c-8fc3-95c4ed62d8af]]"
+ - "[[458a0596-ee1c-43dc-9c4e-de29c9df919c]]"
+ - "[[cf1e2060-12ae-42a3-a902-5e5368178446]]"
+ - "[[7ece68d3-01d0-4fc1-bbc6-fb9dd09c09ce]]"
+ - "[[d37051ae-813b-4419-8f60-2761d7b5fab8]]"
+---
+
+# Управление инвестиционным портфелем
+
+После сборки портфеля главная задача — не совершать лишних сделок и поддерживать соответствие портфеля целям, горизонту и [[Риск-профиль инвестора|риск-профилю]].
+
+## Решения в реальных ситуациях
+
+При падении рынка есть три типовые реакции:
+
+- продать активы;
+- взять паузу;
+- продолжить следовать стратегии.
+
+Паническая продажа часто приводит к плохому исполнению рыночных заявок, комиссиям, налогам и фиксации просадки. Финансовая подушка снижает давление и помогает не принимать решения из страха.
+
+## Когда пересматривать портфель
+
+- появились новые цели;
+- изменился риск-профиль;
+- изменился горизонт инвестирования;
+- активы ушли далеко от целевых долей;
+- изменилась фаза рынка: ставка, инфляция, курс, кредитный риск;
+- появилась новая информация по эмитенту.
+
+## Ребалансировка
+
+Ребалансировка — способ вернуть портфель к целевым долям риска и доходности.
+
+Пример: целевая структура 60% акции, 20% облигации, 20% золото. Если из-за роста золото стало 27%, акции 55%, облигации 18%, портфель уже отличается от исходного риска. Ребалансировка возвращает его к плану.
+
+Подходы:
+
+- календарная: раз в квартал/полгода/год;
+- пороговая: когда доля класса активов отклоняется от цели на заданный процент;
+- событийная: при изменении целей, горизонта, риска или макроусловий.
+
+## Календарь инвестора
+
+События, которые стоит отслеживать:
+
+- финансовые и операционные отчеты;
+- дивиденды;
+- байбэки;
+- сделки и реорганизации;
+- оферты по облигациям;
+- изменения в руководстве;
+- крупные сделки;
+- банкротства и приостановка деятельности.
+
+Календарь нужен не для постоянной суеты, а чтобы не пропускать события, меняющие инвестиционный тезис.
+
+## Фиксация доходности
+
+Фиксировать доходность стоит, когда:
+
+- цель достигнута;
+- актив стал слишком большой долей портфеля;
+- оценка стала слишком дорогой относительно качества бизнеса;
+- появился более подходящий инструмент под текущий риск-профиль;
+- изначальный тезис перестал работать.
+
+## Связанные заметки
+
+- [[Инвестиционный портфель]]
+- [[Акции]]
+- [[Облигации]]
+- [[Оценка акций]]
diff --git a/90 Library/Finance/Налоги/Акцизы.md b/90 Library/Finance/Налоги/Акцизы.md
new file mode 100644
index 0000000..672fbf7
--- /dev/null
+++ b/90 Library/Finance/Налоги/Акцизы.md
@@ -0,0 +1,49 @@
+---
+status: stable
+type: concept
+tags:
+ - mephi
+ - tax
+ - finance
+ - taxes
+created: 2026-01-14
+updated: 2026-05-07
+title: Акцизы
+---
+
+# Акцизы
+**Акциз** - особый косвенный федеральный налог, который включают в итоговую стоимость продукта или услуги.
+Это надбавка, спрятанная в стоимость товара, её используют для регулирования спроса.
+
+- Продукты с подержанием спирта < 9%
+- Алкоголь
+- Этиловый спирт
+- Легковые автомобили
+- И т.д. (полный перечень в Ст. 181 НК РФ)
+
+## Налогоплательщики Акциза
+1) Организации
+2) ИП
+3) Лица, признаваемые налогоплательщиками из-за перевоза товаров через границу ЕАЭС
+
+## Объекты Налогообложение Акциза
+1) Реализация на территории РФ подакцизных товаров, произведенных ЮЛ и ИП.
+2) Передача прав собственности на подакцизные товары одним лицом другому лицу на возмездной и (или) безвозмездной основе, а также использование их при натуральной оплате признаются реализацией подакцизных товаров.
+3) Ввоз подакцизных товаров на территорию ЕАЭС и иные территории, находящиеся под его юрисдикцией.
+ - Если товары ввозятся из страны не из ЕАЭС, то акциз уплачивается на таможне.
+ - Если товары ввозятся из другой страны ЕАЭС, акциз уплачивается в налоговый орган (ИФНС), а не на таможне, за исключением маркируемых товаров, где акциз уплачивается на таможне.
+
+## Порядок Исчисления Акциза
+
+- **В России только твердые ставки**
+
+1) Твердые (специфические) ставки
+ Это фиксированная сумма налога, установленная за единицу измерения товара.
+ $$\text{Сумма акциза} = \text{Объем товара (в физ. ед.)} * \text{Ставка акциза}$$
+2) Процентные (адвалорные) ставки
+ Это ставка, выраженная в процентах от стоимости подакцизного товара.
+ $$\text{Сумма акциза} = \text{Стоимость товара} * \frac{\text{Ставка акциза}}{100}$$
+3) Смешанные ставки
+ Это комбинация первых двух ставок, часть по твердой ставке, часть по адвалорной
+ $$\text{Сумма акциза} = (\text{Объем товара}*\text{Твердая ставка})\ + $$$$+\ (\text{Максимальная цена товара}*\frac{\text{ставка акциза}}{100 - \text{ставка акциза}})$$
+
diff --git a/90 Library/Finance/Налоги/Государственная пошлина.md b/90 Library/Finance/Налоги/Государственная пошлина.md
new file mode 100644
index 0000000..c3a5f63
--- /dev/null
+++ b/90 Library/Finance/Налоги/Государственная пошлина.md
@@ -0,0 +1,22 @@
+---
+status: processing
+type: concept
+tags:
+ - mephi
+ - tax
+ - finance
+ - taxes
+created: 2026-01-16
+updated: 2026-05-07
+title: Государственная Пошлина
+---
+
+# Государственная Пошлина
+**Государственная пошлина** - это разовый платеж за юридически значимое действие.
+
+ЮЛ и ФЛ признаются налогоплательщиками при обращении в гос. органы в случае:
+1) обращаются за совершением действий, прописанных в НК РФ (регистрация брака, получение паспорта, загранпаспорта, и т.д.).
+2) Выступления ответчиками в суде, при этом суд принял решение не в пользу ответчика, тогда истец освобожден от уплаты пошлины (судебные издержки).
+
+Гос. пошлина уплачивается по месту совершения действия.
+
diff --git a/90 Library/Finance/Налоги/Государственный бюджет.md b/90 Library/Finance/Налоги/Государственный бюджет.md
new file mode 100644
index 0000000..4722a2c
--- /dev/null
+++ b/90 Library/Finance/Налоги/Государственный бюджет.md
@@ -0,0 +1,56 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - finance
+ - taxes
+created: 2026-01-10
+updated: 2026-05-07
+title: Государственный Бюджет
+---
+
+# Государственный Бюджет
+**Бюджет** - система денежных отношений по поводу распределения и перераспределения общественного продукта с целью образования и расходования централизованного фонда денежных средств, используемого на выполнение общегосударственных задач и утверждаемого законодателем в форме финансового плана, состоящего из доходной и расходной части.
+
+ > **Бюджет** — это утвержденный законом план доходов и расходов государства, предназначенный для финансового обеспечения его функций и задач.
+
+---
+
+**Общественный продукт** - всё, что зарабатывает страна за год (общий объем произведенных товаров и услуг)
+В современном учете почти полностью заменен ВВП.
+
+**ВВП (валовый внутренний продукт)** - стоимость всех конечных товаров и услуг, произведенных внутри страны за год.
+Используется как главный показатель размера и развития экономики.
+
+**ВРП (внутренний региональный продукт)** - аналогично ВВП, но для отдельного региона.
+
+**ВНП (внутренний национальный продукт)** - суммарный доход, произведенный гражданами страны, в т.ч. за рубежом.
+
+---
+
+## Функции Гос. Бюджета
+
+1) **Перераспределительная**
+ Заключается в бюджетном перераспределении ВВП между отраслями, регионами или социальными группами. Основой является ориентация на решение экономических и социальных задач.
+2) **Регулирующая**
+ Государство воздействует на основные макроэкономические показатели (рост ВВП, уровень занятости, инфляция и т.д.)
+3) **Социальная**
+ Финансовая поддержка социально направленных отраслей (здравоохранение, наука, образование, культура, социальная защита) и финансовая помощь незащищенных слоев населения.
+4) **Информационная**
+ Особая роль бюджета, как индикатора текущего состояния экономики, определяющего перспективы экономического развития страны в будущем.
+
+## Доходы/Расходы Бюджета
+
+| Доходы | Расходы |
+| :------------------------------------------------: | :---------------------: |
+| Налоги 70-80% бюджета | Содержание гос. аппарат |
+| Гос. собственность (аренда, производство, продажа) | Соц. защита |
+| Гос. займы + ОФЗ | Образование |
+| Процент от выданных займов | Здравоохранение |
+| Гос. услуги (пошлина) | Гос. безопасность |
+| Прочие | Военные расходы |
+| | Культура |
+| | Спорт |
+| | Процент по займам |
+
diff --git a/90 Library/Finance/Налоги/Доходы в целях налога на прибыль.md b/90 Library/Finance/Налоги/Доходы в целях налога на прибыль.md
new file mode 100644
index 0000000..e443817
--- /dev/null
+++ b/90 Library/Finance/Налоги/Доходы в целях налога на прибыль.md
@@ -0,0 +1,34 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - taxes
+ - profit-tax
+created: 2026-01-15
+updated: 2026-05-07
+title: Доходы В Целях Налога На Прибыль
+---
+
+# Доходы В Целях Налога На Прибыль
+Доходы в целях налога на прибыль - это все поступления, учитываемые при расчете налога на прибыль.
+Они делятся на две группы: доходы от реализации и внереализационные доходы.
+
+Доходы от реализации товаров и имущественных прав - выручка и доходы от основной деятельности организации.
+
+Внереализационные доходы - доходы, не связанные с основной деятельностью по реализации товаров и услуг:
+
+- Доход от долевого участия в других организациях (ООО, ПАО, АО)
+- Положительная курсовая разница
+- Штрафы, пени, санкции за нарушение договорных обязательств, возмещение убытков
+- Доходы от аренды (если это не основная деятельность)
+- Доходы от предоставления прав на результаты интеллектуальной стоимости
+- Проценты по займам, кредитам и т.д.
+- Безвозмездно полученные имущество, работы, услуги или имущественные права
+- Остальные в ст. 250 - все остальные внереализационные доходы
+
+## Связанные заметки
+- [[Расходы в целях налога на прибыль]] — зеркальная категория; налоговая база = доходы − расходы
+- [[Методы признания доходов и расходов]] — когда именно доход считается полученным: начисление vs. кассовый
+- [[Налог на прибыль]] — налог, для которого определяются эти доходы
+- [[Разница метода по отгрузке и по оплате]] — практическая разница методов признания
diff --git a/90 Library/Finance/Налоги/Законодательная база.md b/90 Library/Finance/Налоги/Законодательная база.md
new file mode 100644
index 0000000..c71a660
--- /dev/null
+++ b/90 Library/Finance/Налоги/Законодательная база.md
@@ -0,0 +1,23 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - taxes
+created: 2026-01-13
+updated: 2026-05-07
+title: Законодательная База
+---
+
+# Законодательная База
+Налоговая нормативная база основывается на Налоговом Кодексе РФ и ряде ФЗ, регулирующих порядок налогообложения
+
+## Налоговый Кодекс РФ
+- **Часть I**: Устанавливает общие, базовые, основополагающие положения о налогах и сборах, налоговой системе РФ. Разъясняет основные понятия, используемые в налогообложении.
+- **Часть II**:
+ 1) Федеральные налоги: Устанавливает все положения о федеральных налогах, порядке их исчисления, порядке и сроках уплаты, налоговых ставках и т.д.
+ 2) Региональные налоги: Базовые, общие положения о региональных налогах
+ В НК указаны мин. и макс. ставки для регионов.
+ 3) Местные налоги: Базовые, общие положения о местных налогах
+ Детали, включая ставки, регулируются нормативными актами местных органов власти.
+ ![[Pasted image 20260113142922.png]]
diff --git a/90 Library/Finance/Налоги/Кривая Лаффера.md b/90 Library/Finance/Налоги/Кривая Лаффера.md
new file mode 100644
index 0000000..bbd546b
--- /dev/null
+++ b/90 Library/Finance/Налоги/Кривая Лаффера.md
@@ -0,0 +1,22 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - taxes
+created: 2026-01-13
+updated: 2026-05-07
+title: Кривая Лаффера
+---
+
+# Кривая Лаффера
+**Кривая Лаффера** - это графическое отображение зависимости между общим объемом налоговых поступлений в бюджет и уровнем налоговой ставки.
+
+## Основные Положения
+- При нулевой ставке, поступления в бюджет равны нулю, т.к. никто не платит налоги
+- При ставке в 100% также не будет поступлений в бюджет, т.к. никто не сможет заниматься бизнесом или работать, все доходы уходят в бюджет.
+- График имеет форму обратной параболы (но не всегда ровно, колоколообразная).
+
+## График
+![[Pasted image 20260113083705.png|400]]
+Для РФ, пиковой ставкой налога является 40%
\ No newline at end of file
diff --git a/90 Library/Finance/Налоги/Методы признания доходов и расходов.md b/90 Library/Finance/Налоги/Методы признания доходов и расходов.md
new file mode 100644
index 0000000..ecb2c7c
--- /dev/null
+++ b/90 Library/Finance/Налоги/Методы признания доходов и расходов.md
@@ -0,0 +1,32 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - taxes
+created: 2026-01-15
+updated: 2026-05-07
+title: Методы Признания Доходов И Расходов
+---
+
+# Методы Признания Доходов И Расходов
+
+> Получаются аналогично "[[Разница метода по отгрузке и по оплате]]"
+
+## Метод Начисления
+**Доходы** включают в расчет налоговой базы в период их возникновения.
+
+**Расходы** - в периоде, в котором они экономически связаны с доходом, а не когда они фактически оплачены.
+
+*Случаи, когда расходы не сразу списываются в счет уменьшения дохода*:
+1) Материальные ценности на складе (ценности оплачены, перевезены на склад, но ещё не поступили в производство)
+2) Незавершенное производство (какая-то часть производства завершена на конец отчетного периода, но есть незавершенное, т.е. это уже не сырье, но ещё и не готовый продукт)
+3) Готовая продукция на складе (товары, готовые к продаже, но не проданные на конец отчетного периода)
+Т.е. Расходы могут уменьшать доходы только в части полностью произведенных и реализованных товаров.
+
+## Кассовый Метод
+**Доходы** признаются в период из непосредственного получения.
+**Расходы** - в периоде их оплаты.
+
+Днем получения дохода является день получения денег в кассу или поступления на расчётный счёт, день получения имущества или имущественных прав, а также день получения аванса.
+
diff --git a/90 Library/Finance/Налоги/Налог на добавленную стоимость.md b/90 Library/Finance/Налоги/Налог на добавленную стоимость.md
new file mode 100644
index 0000000..c0ffd1f
--- /dev/null
+++ b/90 Library/Finance/Налоги/Налог на добавленную стоимость.md
@@ -0,0 +1,28 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - finance
+ - taxes
+created: 2026-01-10
+updated: 2026-05-07
+title: Налог На Добавленную Стоимость
+---
+
+# Налог На Добавленную Стоимость
+**Выручка** - это ВСЕ деньги, полученные от продажи товаров, работ или услуг. *Только продажи*.
+
+**Доход** - понятие шире выручки, включающее *выручку* и **внереализационные** **доходы** (проценты, штрафы, курсовые разницы, аренды, дивиденды и т.д.)
+
+**Добавленная стоимость** - это то, что фирма создает **сверх того, что купила извне**.
+Если фирма купила сырьё на 300 рублей, а хлеб продала за 500 рублей, то разница - то, что она добавила, именно на эту разницу и идет налог (на 200 рублей).
+
+> Добавленная стоимость == Прибавочная стоимость (Карл Маркс)
+
+**Стоимость товара** = Внешние расходы + Зарплата + Налоги + Прибыль
+
+**Добавленная стоимость** = Стоимость товара - Внешние расходы = Доход (выручка) - Внешние расходы
+
+$$\small \text{НДС (налог на добавленную стоимость)} = \text{Доход} * \text{ставка} - \text{Внешние расходы} * \text{ставка}$$
+
diff --git a/90 Library/Finance/Налоги/Налог на доходы физических лиц (НДФЛ).md b/90 Library/Finance/Налоги/Налог на доходы физических лиц (НДФЛ).md
new file mode 100644
index 0000000..ee10d06
--- /dev/null
+++ b/90 Library/Finance/Налоги/Налог на доходы физических лиц (НДФЛ).md
@@ -0,0 +1,71 @@
+---
+status: processing
+type: concept
+tags:
+ - mephi
+ - tax
+ - finance
+ - taxes
+ - ndfl
+created: 2026-01-16
+updated: 2026-05-07
+title: Налог На Доходы Физических Лиц (НДФЛ)
+---
+
+# Налог На Доходы Физических Лиц (НДФЛ)
+## Определение
+**Налогоплательщики**:
+- Налоговые резиденты РФ.
+- ФЛ, с доходами из РФ, но налоговыми резидентами не являющиеся.
+
+**Объект налогообложения**: доход:
+- от источников из РФ или не из РФ - для резидентов РФ.
+- от источников из РФ - для нерезидентов РФ.
+
+> [!important] Соглашение об избежании двойного налогообложения
+> Если есть такое соглашение с какой-либо страной и налоговый резидент РФ получает в этой стране доходы, то налоги он уплачивает на территории этой страны. А на территории РФ он уплачивает разницу между НДФЛ, рассчитанный по российским ставкам, и НДФЛ, рассчитанный по ставкам этой страны.
+
+**Налоговая база** учитывает все доходы во всех формах, а также материальную выгоду.
+Удержания, даже если производятся по распоряжению самого налогоплательщика или по решению суда, не считаются расходами или вычетами, которые уменьшают налогооблагаемую базу.
+
+Не подлежат налогообложению:
+1) гос. пособия, кроме пособия по временной нетрудоспособности
+2) пенсии
+3) вознаграждения донорам
+4) алименты
+5) гранты
+6) единовременные выплаты работодателем, в связи с утратой сотрудником член семьи
+7) компенсации работникам, уволившимся с выходом на пенсию
+8) стипендии
+9) другие в ст. 217 НК РФ
+
+## Налоговые Ставки НДФЛ
+
+По доходам: ЗП, дивиденды, выигрыши в лотерею, доходы от ценных бумаг
+
+| Доход | Ставка |
+| -------------------------------- | ------ |
+| До $2,4$ млн рублей включительно | $13\%$ |
+| $2,4 - 5$ млн руб. включительно | $15\%$ |
+| $5 - 20$ млн. руб. вкл. | $18\%$ |
+| 20 - 50 млн. руб. вкл. | $20\%$ |
+| $>50$ млн. руб. вкл. | $22\%$ |
+По отдельным видам доходам:
+
+| Доход | Ставка |
+| --------------------------------------------------------------------------------- | ------ |
+| Выигрыши, полученные в конкурсах, играх в целях рекламы товара | $35\%$ |
+| Доходы по ценным бумагам РФ, уходящие через иностранного посредника | $30\%$ |
+| Проценты по облигациям с ипотечным покрытием, которые были выпущены до 01.01.2007 | $9\%$ |
+
+## Особенности Начисления НДФЛ
+1) Проценты по рублевым вкладам:
+$$1\ 000\ 000\ *\ \text{(максимальная ключевая ставка ЦБ)}$$
+2) По проданным объектам недвижимости:
+ - *Если проданное жилье было единственным у налогоплательщика*:
+ - Если жилье в собственности **более 3-х лет** - то доход от продажи не идет в налоговую базу.
+ - Иначе, весь доход является налоговой базой.
+ - *Не единственное жилье*:
+ - Если во владении $> 5\ лет$ - не включаются в доходы для исчисления НДФЛ
+ - Иначе, включается вся сумма минус документально подтвержденные расходы на покупку, если документов нет, то $1\ 000\ 000$ млн. руб.
+
diff --git a/90 Library/Finance/Налоги/Налог на имущество ФЛ.md b/90 Library/Finance/Налоги/Налог на имущество ФЛ.md
new file mode 100644
index 0000000..8495b44
--- /dev/null
+++ b/90 Library/Finance/Налоги/Налог на имущество ФЛ.md
@@ -0,0 +1,47 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - taxes
+created: 2026-01-16
+updated: 2026-05-07
+title: Налог На Имущество ФЛ
+---
+
+# Налог На Имущество ФЛ
+Местный налог - устанавливается местным законодательством.
+
+**Налогоплательщики**: ФЛ, обладающие правом собственности на имущество, признаваемое объектом налогообложения в соответствии с НК РФ.
+
+**Объекты налогообложения**: признается расположенное в пределах муниципального образования:
+1) Жилой дом
+2) Квартира, комната
+3) Гараж, машиноместо
+4) Единый недвижимый комплекс
+5) Объект незавершенного строительства
+6) Иные здания, сооружения и помещения.
+
+**Не признаются объектом**: имущество, входящее в состав общего имущества многоквартирного дома.
+
+**Налоговая база**: определяется как кадастровая стоимость имущества, внесенная ЕГРН (Единый государственные реестр недвижимости)
+
+**Налоговый период**: календарный год
+
+## Налоговые Льготы
+
+**Право**:
+- Герои СССР и РФ, награжденные орденом Славы трех степеней.
+- Инвалиды I и II групп, инвалиды с детства.
+- Участники ВОВ, боевых действий, ликвидаторы последствий аварии на Чернобыльской АЭС и других радиационных катастроф.
+- Пенсионеры, ветераны военной службы.
+- Творческие работники, использующие помещения исключительно для творческой деятельности.
+
+**Условия предоставления льготы**:
+- В размере всей суммы налога по одному объекту налогообложения каждого вида по выбору налогоплательщика (например, одна квартира)
+- Объект должен находиться в собственности и не использоваться в предпринимательской деятельностью.
+
+## Связанные заметки
+- [[Налог на имущество организаций]] — аналогичный налог, но для юридических лиц; разная база и ставки
+- [[Налоговые вычеты]] — ФЛ вправе применить вычет по имущественному налогу
+- [[Специальные налоговые режимы]] — на УСН/ПСН физлицо-ИП может освобождаться от налога на имущество, задействованного в предпринимательстве
diff --git a/90 Library/Finance/Налоги/Налог на имущество организаций.md b/90 Library/Finance/Налоги/Налог на имущество организаций.md
new file mode 100644
index 0000000..4796b44
--- /dev/null
+++ b/90 Library/Finance/Налоги/Налог на имущество организаций.md
@@ -0,0 +1,27 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - taxes
+created: 2026-01-15
+updated: 2026-05-07
+title: Налог На Имущество Организаций
+---
+
+# Налог На Имущество Организаций
+**Налогоплательщики** - организации, имеющие недвижимое имущество, признаваемое объектом налогообложения НК РФ.
+
+**Объект налогообложения**:
+1) Недвижимое имущество (привязано к земле), учитываемое на балансе организации как основное средство *(используется больше года)*.
+2) Недвижимость на территории РФ, принадлежащее организациям на праве собственности или хозяйственного владения, а также по ***концессионному соглашению***.
+
+> [!question] Концессионное соглашение
+> Долгосрочная аренда (не менее 49 лет) взамен на какую-то услугу. Т.е. одна сторона должна за свой счет создать / реконструировать что-то, определенное этим соглашением (имущество)
+
+Налоговая база определяется среднегодовой стоимостью имущества, кроме случаев, отмеченных в перечнях имущества, они облагаются по кадастровой стоимости.
+
+## Связанные заметки
+- [[Налог на имущество ФЛ]] — аналогичный налог для физических лиц; база по кадастровой стоимости
+- [[Налогоплательщики и объекты налога на прибыль организаций]] — организации платят несколько налогов параллельно
+- [[Специальные налоговые режимы]] — на УСН организации освобождаются от налога на имущество (кроме кадастровых объектов)
diff --git a/90 Library/Finance/Налоги/Налог на прибыль.md b/90 Library/Finance/Налоги/Налог на прибыль.md
new file mode 100644
index 0000000..26e2f0f
--- /dev/null
+++ b/90 Library/Finance/Налоги/Налог на прибыль.md
@@ -0,0 +1,38 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - taxes
+ - profit-tax
+created: 2026-01-15
+updated: 2026-05-07
+title: Налог На Прибыль
+---
+
+# Налог На Прибыль
+
+> [!tip] Налог на прибыль
+> Налоговая ставка налога на прибыль устанавливается в размере 25%, если иное не установлено в НК РФ
+
+1) Налоговая ставка $0\%$:
+ - С/Х производители, чья годовая выручка от реализации сельхозпродукции составляет не менее 70% от общей выручки.
+ - (Частных) организаций, осуществляющих образовательную и медицинскую деятельность.
+ - Организации, социальное обслуживание граждан
+ - Музеи, библиотеки, театры
+ - Региональные операторы по вывозу твердых бытовых отходов
+1) Налоговая ставка $2\%$ применяется в отношении резидентов особых экономических зон
+2) НС - $15\%$ применяется по доходам, полученным иностранной организацией в виде дивидендов по акциям российских компаний
+3) НС - $40\%$ для организаций, являющимися субъектами естественной монополии и осуществляющих перевозку нефти или нефтепродуктов по системе магистральных трубопроводов.
+
+## Налоговый Учет
+Исчисление налоговой базы по итогам периодов происходит на основе налогового учета.
+**Налоговый учет** - система обобщения информации для определения налоговой базы для налога на прибыль.
+
+**Основание**: Первичные документы, сгруппированные в порядке из НК РФ.
+Если данных недостаточно, то плательщик вправе сам дополнять эту информацию.
+
+| Бухгалтерский учет | Налоговый учет |
+| ----------------------------------------------------- | ------------------------------------------ |
+| Отражение всех операций организации по общим правилам | - Налог на имущество
- Налог на прибыль |
+
diff --git a/90 Library/Finance/Налоги/Налоговая декларация.md b/90 Library/Finance/Налоги/Налоговая декларация.md
new file mode 100644
index 0000000..a06f64e
--- /dev/null
+++ b/90 Library/Finance/Налоги/Налоговая декларация.md
@@ -0,0 +1,48 @@
+---
+status: processing
+type: concept
+tags:
+ - mephi
+ - tax
+ - finance
+ - taxes
+created: 2026-01-14
+updated: 2026-05-07
+title: Налоговая Декларация
+---
+
+# Налоговая Декларация
+
+> [!info] Налоговая декларация
+> Это **официальный** документ, форма налогового отчета, в котором налогоплательщик отчитывается перед **налоговыми органами** о своих доходах, расходах, источнике доходов, объектах налогообложения, налоговой базе, льготах и сумме налога к уплате
+
+НД предназначена исключительно для исчисления и уплате налогов.
+Она содержит только информацию, необходимую для расчета налоговых обязательств, и подается по конкретной форме, утвержденной законом.
+Предоставляется каждым налогоплательщиком по каждому налогу отдельно.
+
+- Налоговая декларация предоставляется за налоговый период, которым может быть месяц, квартал, год.
+
+Существуют сроки:
+1) **Срок предоставления декларации** - дата, до которой надо подать декларацию.
+2) **Срок исчисления налога или авансовых платежей по нему** - период, за который рассчитывается сумма налога.
+ Исчисление - это процесс подсчета налоговой базы и суммы налога.
+3) **Срок уплаты налога или авансовых платежей по нему** - дата, до которой надо перечислить деньги в бюджет.
+
+**Авансовый платеж** - предварительная уплата налога, которую налогоплательщик перечисляет в бюджет до окончания налогового периода. Позволяет распределить налоговую нагрузку в течении года.
+Авансовые платежи - это предварительные уплаты, окончательная сумма налога рассчитывается и уплачивается после окончания налогового периода, когда подается **НД**.
+
+| Налоговый период | Срок подачи декларации | Срок уплаты |
+| ---------------- | ---------------------------------------------- | ------------------------------------------------------------- |
+| месяц | до 25-28 числа следующего месяца | - |
+| квартал | до 25-28 числа месяца, следующего за кварталом | уплачивается до 25-28 числа месяца, следующего за кварталом. |
+| полугодие | - | уплачивается до 25-28 числа месяца, следующего за полугодием. |
+| год | до 25-30 марта следующего года | - |
+
+| Вид налога | Срок подачи | Срок уплаты |
+| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| НДФЛ | 30 апреля следующего года | Срок начисления = срок начисления ЗП, обычно, вместе с выплатой ЗП. |
+| Страховые взносы (квартал) | 28 числа месяца, следующего за кварталом | Срок начисления = срок начисления ЗП.
Ежемесячно, до 15 числа след. месяца. |
+| НДС (квартал) | до 25-28 числа месяца, следующего за кварталом | Ежемесячно, 25-28 числа следующего месяца. |
+| Акциз (месяц) | До 25 числа месяца, следующего за отчетным | 20-28 число след. месяца.
По каждому акцизу разные сроки. |
+| Налог на прибыль (календарный год) | Годовая декларация - 25 марта следующего года
Упрощенная квартальная - 28 число месяца, следующего за отчетным периодом месяца | Уплата годового налога - 30 марта следующего года.
Авансовые платежи отчетного периода уплачиваются не позднее 28 числа месяца, след. за отчетным периодом.
Если среднеквартальная выручка - 15 млн. руб. и более без учета НДС, то авансовые платежи уплачиваются ежемесячно 28 числа. |
+
diff --git a/90 Library/Finance/Налоги/Налоговая нагрузка.md b/90 Library/Finance/Налоги/Налоговая нагрузка.md
new file mode 100644
index 0000000..57483dd
--- /dev/null
+++ b/90 Library/Finance/Налоги/Налоговая нагрузка.md
@@ -0,0 +1,23 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - taxes
+created: 2026-01-13
+updated: 2026-05-07
+title: Налоговая Нагрузка
+---
+
+# Налоговая Нагрузка
+**Налоговая нагрузка** - процент от доходов фирмы, который идет на уплату налогов.
+
+## Абсолютная Налоговая Нагрузка (общая Сумма налогов)
+- Это общая сумма налогов, уплаченная компанией за определенный период (за год)
+- Абсолютная нагрузка выражается в денежных единицах и показывает, сколько компания заплатила в бюджет
+
+## Относительная (процент От выручки)
+- Процент от выручки или доходов, который компания платит в виде налогов
+- $\text{Налоговая нагрузка}\ =\ \frac{\text{Все налоги, кроме косвенных}}{\text{Доходы}}*100\%$
+- Относительные нагрузка позволяет сравнивать **налоговое бремя** разных компаний, отраслей или регионов, а также оценивать эффективность налоговой политики и риски для бизнеса.
+- Если *ОНН* слишком низкая, это может быть сигналом для налоговых органов об уклонении компании от налогов.
\ No newline at end of file
diff --git a/90 Library/Finance/Налоги/Налоговая система (Классификация налогов).md b/90 Library/Finance/Налоги/Налоговая система (Классификация налогов).md
new file mode 100644
index 0000000..e754485
--- /dev/null
+++ b/90 Library/Finance/Налоги/Налоговая система (Классификация налогов).md
@@ -0,0 +1,63 @@
+---
+status: stable
+type: concept
+tags:
+ - mephi
+ - finance
+ - taxes
+created: 2026-01-10
+updated: 2026-05-07
+title: Налоговая Система (Классификация налогов)
+---
+
+# Налоговая Система (Классификация налогов)
+![[Pasted image 20260110232034.png]]
+
+1) По уровню бюджета:
+ - Федеральные - НДС, налог на прибыль, НДФЛ, страховые взносы, акцизы, НДПИ, водный налог, специальные налоговые режимы.
+ - Идут во все уровни бюджета.
+ - Региональные - транспортный налог, налог на имущество организаций, налог на игорный бизнес.
+ - Идут в региональные и местный уровни бюджета.
+ - Местные - земельный налог, налог на имущество физических лиц, торговый сбор, туристический налог.
+ - Идут в местный уровень бюджета.
+ 1) По способу изъятия:
+ - Прямые - взимаются непосредственно **с доходов** или **имущества** налогоплательщика
+ 1) налог на прибыль
+ 2) налог на имущество ЮЛ, ФЛ
+ 3) НДФЛ (налог на доходы физических лиц)
+ 4) НДПИ (налог на добычу полезных ископаемых)
+ 5) земельный налог
+ 6) транспортный налог
+ 7) водный налог
+ 8) налог на использование биоресурсов
+ 9) налог на игорный бизнес
+ 10) страховые взносы
+ 11) торговый сбор
+ 12) туристический налог
+ 13) и т.д.
+ - Косвенные - **включаются в цену** товара или услуги **дополнительно**
+ 1) НДС (налог на добавленную стоимость)
+ 2) акцизы
+ 3) таможенные пошлины
+ 4) налог с продаж (отменен)
+ 5) налог с оборота (отменен)
+ - [[Специальные налоговые режимы]] - по сути прямые, но для отдельных видов налогоплательщиков, который могут быть использованы как добровольно, так и в обязательном порядке.
+ 1) УСНО (упрощенная система налогообложения)
+ 2) ЕНВД (единый налог на вмененный доход) -> отменен
+ 3) ЕСХН (единый сельскохозяйственный налог)
+ 4) Патентный специальный налоговый режим
+ 5) Соглашение о разделе продукции
+ 6) Спец. режим для самозанятых (единый налог на профессиональный доход)
+2) По характеру сбора и использования
+ ![[Pasted image 20260111122331.png]]
+ - Целевые
+ 1) Страховые взносы - поступают в специальный фонд и фонд обязательного медицинского страхования РФ (для выплаты пенсий, пособий, оплату больничных листов)
+ 2) Транспортный налог - дорожные фонды РФ - содержание транспортной инфраструктуры РФ
+ 3) Туристический налог - местные бюджеты муниципальных образований - развитие сферы туризма
+ - Общие
+ Все остальные налоги - поступают в "общий котел", а далее распределяются Федеральным Казначейством в соответствии с бюджетом.
+
+1) **По субъектам налогоплательщикам**
+ - Взимаемые с физических лиц
+ - Взимаемые с юридических лиц
+ - Смешанные (и ФЛ, и ЮЛ)
\ No newline at end of file
diff --git a/90 Library/Finance/Налоги/Налоговые вычеты.md b/90 Library/Finance/Налоги/Налоговые вычеты.md
new file mode 100644
index 0000000..f074449
--- /dev/null
+++ b/90 Library/Finance/Налоги/Налоговые вычеты.md
@@ -0,0 +1,69 @@
+---
+status: processing
+type: concept
+tags:
+ - mephi
+ - tax
+ - finance
+ - taxes
+created: 2026-01-16
+updated: 2026-05-07
+title: Налоговые Вычеты
+---
+
+# Налоговые Вычеты
+## Стандартные Налоговые Вычеты
+Согласно, **ст. 218 НК РФ**:
+
+| Категория | Сумма налогового вычета |
+| ----------------------------------------------------------------------------- | ----------------------- |
+| - Ликвидаторы радиационных катастроф
- Инвалиды ВОВ | $3000$ руб/мес |
+| - Инвалиды I-II г., с детства
- Герои СССР и РФ
- Доноры костного мозга | $500$ руб/мес |
+| Выполнивший нормативы ГТО | $18 000$ рублей |
+Налоговый вычет за каждый месяц налогового периода распространяется на родителя, усыновителя, опекуна, попечителя, приемного родителя, на обеспечении которых находится ребенок, в следующих размерах:
+1) $1400$ рублей - на первого ребенка.
+2) $2800$ рублей - на второго.
+3) $6000$ рублей - на третьего и каждого последующего ребенка.
+4) $12000$ рублей - на каждого ребенка, в случае, если ребенок в возрасте до 18 лет является ребенком-инвалидом, или учащегося очной формы обучения аспиранта, ординатора, интерна, студента в возрасте до 24 лет, если он является инвалидом I-II группы.
+
+## Социальные Налоговые Вычеты
+Согласно, **ст. 219 НК РФ**:
+
+1) Пожертвования
+ - Благотворительным организациям
+ - Социально-ориентированным некоммерческим организациям
+ - НКО, в области науки, культуры и т.д.
+ - Религиозным организациям на осуществление присущей им деятельности
+
+Указанный вычет предоставляется в размере фактически произведенных расходов, но не более $25\%$ от налогооблагаемого дохода за год.
+
+2) За своё обучение в организациях, осуществляющих образовательную деятельность (с аккредитацией и лицензией) - в размере фактически произведенных расходов.
+3) За обучение детей в возрасте до 24 лет, а также за обучение своих подопечных в возрасте до 18 лет по очной форме обучения в размере фактически произведенных расходов, но не более $110\ 000$ рублей на каждого ребенка.
+4) Мед. услуги на себя и близких - в размере стоимости лекарств для мед. применения.
+5) Страховые взносы по договору добровольного пенсионного страхования
+6) Страховые взносы на накопительную пенсию
+7) Физкульт. услуги, оказанные плательщику и его детям.
+
+Все вычеты предоставляются на сумму не более $150\ 000$ рублей в год, за исключением дорогостоящего лечения и обучения детей - на них ограничения нет.
+
+## Имущественные Налоговые Вычеты
+1) Вычет при продаже имущества, а также доли в нем, доли в уставном капитале общества, при выходе из состава участников общества.
+2) Вычет в размере выкупной стоимости земельного участка и (или) расположенного на нем иного объекта недвижимого имущества, полученной налогоплательщиков в денежной или натуральной форме.
+3) Вычет в размере фактически произведенных налогоплательщиков расходов на новое строительство, либо приобретение на территории РФ жилых домов, квартир, комнат или долей в них, приобретение земельных участков или долей в них, предоставленных для индивидуального жилищного строительства.
+4) Вычет в сумме фактически произведенных налогоплательщиком расходов на погашение процентов по кредитам.
+5) Вычеты при получении дохода в виде цифровой валюты, полученной налогоплательщиком в результате осуществления майнинга цифровой валюты.
+
+**Лимиты**:
+- $2\ 000\ 000$ - на новое строительство
+- $3\ 000\ 000$ - на строительство и приобретение жилья при погашении процентов по целевым займам.
+- При продаже недвижимости, находившейся в собственности менее трех лет, вычет предоставляется до $1\ 000\ 000$ рублей для жилья и до $250\ 000$ рублей или иного имущества.
+
+## Профессиональные Налоговые Вычеты
+1) Для ИП: Вычет в размере **документально подтвержденных расходов**. Если подтвердить нельзя - вычет составляет $20\%$ **от суммы доходов**.
+2) Для ФЛ по договорам ГПХ: В сумме фактически произведенных и подтвержденных расходов.
+3) Для авторов (наука, литература, искусство): В сумме фактически произведенных и подтвержденных расходов.
+
+> [!note] ГПХ
+> - Нет фиксированного графика (режима дня)
+> - Нет соц. гарантий (больничных, отпусков)
+> - Оплата только за результат (на основании ежемесячных актов)
diff --git a/90 Library/Finance/Налоги/Налоговый контроль (камеральные, выездные проверки).md b/90 Library/Finance/Налоги/Налоговый контроль (камеральные, выездные проверки).md
new file mode 100644
index 0000000..8b9d2c7
--- /dev/null
+++ b/90 Library/Finance/Налоги/Налоговый контроль (камеральные, выездные проверки).md
@@ -0,0 +1,13 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - finance
+ - taxes
+created: 2026-01-15
+updated: 2026-05-07
+title: Налоговый Контроль (камеральные, Выездные проверки)
+---
+
+# Налоговый Контроль (камеральные, Выездные проверки)
diff --git a/90 Library/Finance/Налоги/Налогообложение в России.md b/90 Library/Finance/Налоги/Налогообложение в России.md
new file mode 100644
index 0000000..a62aaba
--- /dev/null
+++ b/90 Library/Finance/Налоги/Налогообложение в России.md
@@ -0,0 +1,62 @@
+---
+status: stable
+type: moc
+tags:
+ - finance
+ - taxes
+created: 2026-05-02
+updated: 2026-05-07
+title: Налогообложение в России
+---
+
+# Налогообложение в России
+
+## Основы системы
+- [[Сущность и история налогов]]
+- [[Функции налогов и экономические циклы]]
+- [[Законодательная база]]
+- [[Налоговая система (Классификация налогов)]]
+- [[Субъекты налоговой системы (права и обязанности)]]
+- [[Государственный бюджет]]
+- [[Кривая Лаффера]]
+
+## Налоги с организаций
+- [[Налог на прибыль]]
+- [[Налогоплательщики и объекты налога на прибыль организаций]]
+- [[Доходы в целях налога на прибыль]]
+- [[Расходы в целях налога на прибыль]]
+- [[Методы признания доходов и расходов]]
+- [[Разница метода по отгрузке и по оплате]]
+- [[Налог на добавленную стоимость]]
+- [[Налог на имущество организаций]]
+- [[Акцизы]]
+- [[Специальные налоги организаций]]
+- [[Страховые взносы]]
+
+## Налоги с физических лиц
+- [[Налог на доходы физических лиц (НДФЛ)]]
+- [[Налог на имущество ФЛ]]
+- [[Налоговые вычеты]]
+
+## Специальные режимы и пошлины
+- [[Специальные налоговые режимы]]
+- [[Таможенные пошлины]]
+- [[Государственная пошлина]]
+
+## Контроль, декларирование, ответственность
+- [[Налоговая декларация]]
+- [[Налоговая нагрузка]]
+- [[Налоговый контроль (камеральные, выездные проверки)]]
+- [[Ответственность (санкции, административная и уголовная)]]
+
+## Прочее
+- [[Производные финансовые инструменты]]
+
+## Смежные темы
+- [[Бухгалтерский баланс]] — бухучёт и налоговый учёт пересекаются в части налога на прибыль
+- [[Отчет о финансовых результатах]]
+
+## Связанные заметки
+- [[31, 32 - Налоги]]
+- [[Налоги - Организационные моменты]]
+- [[Налоги - СР2]]
diff --git a/90 Library/Finance/Налоги/Налогоплательщики и объекты налога на прибыль организаций.md b/90 Library/Finance/Налоги/Налогоплательщики и объекты налога на прибыль организаций.md
new file mode 100644
index 0000000..cd9fa99
--- /dev/null
+++ b/90 Library/Finance/Налоги/Налогоплательщики и объекты налога на прибыль организаций.md
@@ -0,0 +1,30 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - tax
+ - finance
+ - taxes
+ - profit-tax
+created: 2026-01-14
+updated: 2026-05-07
+title: Налогоплательщики И Объекты Налога На Прибыль Организаций
+---
+
+# Налогоплательщики И Объекты Налога На Прибыль Организаций
+Налогоплательщики налога на прибыль организаций:
+1) Российские организации
+2) Иностранные организации, осуществляющие свою деятельность в РФ, через постоянные представительства и (или) получающие доходы от источников в РФ
+3) Организации, являющиеся ответственными участниками консолидированной группы налогоплательщиков, признаются налогоплательщиками в отношении налога на прибыль организаций по этой консолидированной группе.
+
+> [!abstract] Консолидированные группы налогоплательщиков (КГН)
+> Добровольное объединение российских организаций, уплачивающих налог на прибыль, для того чтобы платить этот налог не по отдельности, а как одна группа на основе общего финансового результата.
+
+Объектом налогообложения является **прибыль, полученная организацией**.
+
+Прибылью в целях налога на прибыль признается:
+1) для российских компаний, не являющиеся участниками КГН - полученные доходы, уменьшенные на величину расходов
+2) для иностранных, осуществляющие деятельность в РФ через постоянные представительства
+3) для иных, доходы, полученные источниками в РФ
+
diff --git a/90 Library/Finance/Налоги/Ответственность (санкции, административная и уголовная).md b/90 Library/Finance/Налоги/Ответственность (санкции, административная и уголовная).md
new file mode 100644
index 0000000..0e76405
--- /dev/null
+++ b/90 Library/Finance/Налоги/Ответственность (санкции, административная и уголовная).md
@@ -0,0 +1,48 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - finance
+ - taxes
+created: 2026-01-14
+updated: 2026-05-07
+title: Ответственность (санкции, Административная И уголовная)
+---
+
+# Ответственность (санкции, Административная И уголовная)
+## Штрафы
+1) *Нарушение регистрации в ФНС* - до 10к руб. (п. 1 ст. 116 НК РФ)
+2) *Ведение деятельности без регистрации* - 10% от полученного дохода, но не меньше 40к руб. (п. 2 ст. 116 НК РФ)
+3) *Непредставление отчетных документов* - 5% налога, который должен был быть включен в декларацию, за каждый месяц просрочки, но не более 30% и не менее 1к руб. (п. 1 ст. 119 НК РФ)
+4) *Нарушение способа передачи декларации* - 200 руб. (ст. 119.1 НК РФ)
+5) *Нарушение правил ведения учета*:
+ - однократное - 10к руб.
+ - совершенное на протяжении более, чем одного налогового периода - 30к руб.
+ - если это привело к уменьшению налоговой базы: 20% суммы недоимки, но не менее 40к руб. (ст. 120 НК РФ)
+1) *Неуплата (частичная или полная) налога*
+ - неумышленная - 20% суммы недоимки
+ - умышленная - 40%
+1) *Несоблюдение обязанностей налогового агента* - 20% суммы не удержанного с налогоплательщика налога.
+
+## Административная Ответственность
+1) *Несоблюдение сроков сдачи отчетности*
+ 300 - 500 руб. или предупреждение
+2) *Непредставление документов для контроля*
+ представителю организации 300 - 500 руб., должностному лицу госоргана - 500 - 1 000 руб.
+3) *Ненадлежащее ведение бухучета*
+ - однократное - 5-10к руб.
+ - повторное - 10-20к руб. или лишение права на ведение трудовой деятельности.
+
+## Уголовная Ответственность
+К УО могут быть привлечены только ФЛ (директора, бухгалтеры, учредители)
+
+## Санкции Для Налоговых Агентов
+1) Неуплата (неудержание НДФЛ / несоблюдение обязанностей)
+ Однократно - 20%
+ Повторно - 40%
+2) Не перечисление налога в бюджет
+ 20% от суммы
+3) Грубое нарушение ведения учета доходов / расходов
+ - 20к руб. однократно
+ - 40к руб. повторно
diff --git a/90 Library/Finance/Налоги/Производные финансовые инструменты.md b/90 Library/Finance/Налоги/Производные финансовые инструменты.md
new file mode 100644
index 0000000..e51364a
--- /dev/null
+++ b/90 Library/Finance/Налоги/Производные финансовые инструменты.md
@@ -0,0 +1,22 @@
+---
+status: processing
+type: concept
+tags:
+ - mephi
+ - tax
+ - finance
+ - taxes
+created: 2026-01-16
+updated: 2026-05-07
+title: Производные Финансовые Инструменты
+---
+
+# Производные Финансовые Инструменты
+**Производные финансовые инструменты (ПФИ)** - это контракты, стоимость которых зависит от базового актива, например, акций, валют, сырья или индексов.
+Основные ПФИ:
+1) Форвард - индивидуальный договор между двумя сторонами на поставку актива по заранее оговоренной цене в определенный срок в будущем. (вне биржи)
+2) Фьючерс - стандартизированный контракт, **торгуемый на бирже**, который обязывает покупателя приобрести, а продавца продать базовый актив по заранее установленной цене на заранее оговоренный срок.
+3) Опцион - контракт, дающий право, но не обязанность, купить ("**колл**") или продать ("**пут**") актив по заранее оговоренной цене в определенный срок или до его окончания.
+
+## Связанные заметки
+- [[Случайное блуждание]] — стохастическая модель динамики цен базовых активов; лежит в основе ценообразования ПФИ (модель Блэка-Шоулза предполагает Броуновское движение)
\ No newline at end of file
diff --git a/90 Library/Finance/Налоги/Разница метода по отгрузке и по оплате.md b/90 Library/Finance/Налоги/Разница метода по отгрузке и по оплате.md
new file mode 100644
index 0000000..89b01d0
--- /dev/null
+++ b/90 Library/Finance/Налоги/Разница метода по отгрузке и по оплате.md
@@ -0,0 +1,37 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - finance
+ - taxes
+created: 2026-01-10
+updated: 2026-05-07
+title: Разница Метода По Отгрузке И По Оплате
+---
+
+# Разница Метода По Отгрузке И По Оплате
+Разница между методом по отгрузке (начисления) и методом по оплате (кассовым) при учете [[Налог на добавленную стоимость|НДС]] и связанных показателей
+
+## Логика Признания доходов/расходов
+
+| Показатель | Метод начисления | Кассовый метод | Дебиторская задолжность *(нам должны)* | Кредиторская задолжность *(мы должны)* |
+| ------------------------ | :--------------: | :------------: | :------------------------------------: | :------------------------------------: |
+| Выручка | 1000 | 500 | 500 | - |
+| Получены товары и услуги | 200 | 100 | - | 100 |
+| Получены товары и услуги | 100 | 200 | 100 | - |
+| Налог на имущество | 44 | - | - | 44 |
+| Налог на прибыль | 50 | 70 | 20 | - |
+
+## Метод По Отгрузке (начисление)
+Доходы и расходы признаются в момент **отгрузки/получения**, даже если деньги ещё не пришли/уплачены.
+
+## Метод По Оплате (кассовый метод)
+Доходы и расходы признаются только **когда деньги получены или уплачены**.
+Налоговые платежи признаются по оплате -> пока нет оплаты - ноль.
+
+## Амортизация И Покупка ОС
+- Покупка ОС (Основное Средство) никогда не идёт сразу в расходы - только в стоимость (капитализация).
+- Расходом становится только **амортизация**.
+- Метод начисления и кассовый метод начинают отличаться только в момент оплаты, а амортизация у всех одинакова.
+
diff --git a/90 Library/Finance/Налоги/Расходы в целях налога на прибыль.md b/90 Library/Finance/Налоги/Расходы в целях налога на прибыль.md
new file mode 100644
index 0000000..32ed9cb
--- /dev/null
+++ b/90 Library/Finance/Налоги/Расходы в целях налога на прибыль.md
@@ -0,0 +1,57 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - taxes
+ - profit-tax
+created: 2026-01-15
+updated: 2026-05-07
+title: Расходы В Целях Налога На Прибыль
+---
+
+# Расходы В Целях Налога На Прибыль
+## Расходы, Учитываемые В Целях Налога На Прибыль
+**Расходы** - обоснованные и документально подтвержденные затраты, осуществленные налогоплательщиком.
+Расходами признаются любые траты, при условии, что они направлены на осуществление деятельности, направленной на получение доходов.
+
+Обоснованные расходы - экономически оправданные затраты, оценки которых выражена в денежной форме
+
+Документально подтвержденные расходы - затраты, подтвержденные документами, оформленными в соответствии с законодательством РФ, либо документами, оформленными в соответствии с обычаями делового оборота, применяемыми в ином государстве, где были произведены расходы.
+
+*Расходы подразделяются на расходы на реализацию и внереализационные.*
+
+### Реализационные Расходы
+- расходы на изготовление, хранение и доставку товаров, выполнением работ, оказанием услуг.
+- на содержание и эксплуатацию, ремонт и тех. обслуживание основных средств
+- расходы на освоение природных ресурсов
+- расходы на исследования
+- расходы на обязательное и добровольное страхование
+- прочие расходы, связанные с реализацией
+
+### Внереализационные Расходы
+- расходы на содержание арендованного оборудования
+- расходы в виде процентов по долговым обязательствам, в т.ч. по ценным бумагам
+- расходы, связанные с обслуживанием приобретенных ценных бумаг
+- отрицательная курсовая разница
+- судебные расходы, арбитражные сборы, штрафы, пени, санкции
+- расходы на услуги банков, в т.ч. продажа иностранной валюты
+- расходы на создание объектов инфраструктуры для государства
+- другие в ст. 265 НК РФ
+
+## Расходы, Не Учитываемые В Целях Налога На Прибыль
+1) Дивиденды и иные суммы прибыли, распределяемые между участниками.
+ Дивиденды - вознаграждение акционеров за участие в капитале компании.
+2) Платежи в бюджет в виде возмещение ущерба, пени и т.д.
+3) Взносы в уставные капитал компании.
+4) Расходы на создание и приобретение амортизируемого имущества.
+ В том смысле, что расходы учитываются не в полном объеме, а постепенно в виде амортизации.
+5) Расходы по объектам, не связанные с деятельностью компании.
+6) Премии, не по в трудовым договорам.
+7) Другие в ст. 270 НК РФ.
+
+## Связанные заметки
+- [[Доходы в целях налога на прибыль]] — зеркальная категория; налоговая база = доходы − расходы
+- [[Методы признания доходов и расходов]] — когда расходы признаются: метод начисления vs. кассовый
+- [[Налог на прибыль]] — налог, для которого определяются эти расходы
+- [[Разница метода по отгрузке и по оплате]] — практическая разница методов признания
diff --git a/90 Library/Finance/Налоги/Специальные налоги организаций.md b/90 Library/Finance/Налоги/Специальные налоги организаций.md
new file mode 100644
index 0000000..7764b6e
--- /dev/null
+++ b/90 Library/Finance/Налоги/Специальные налоги организаций.md
@@ -0,0 +1,90 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - taxes
+created: 2026-01-15
+updated: 2026-05-07
+title: Специальные Налоги Организаций
+---
+
+# Специальные Налоги Организаций
+## Транспортный Налог
+**Налогоплательщики** - лица, на которых зарегистрировано транспортное средство (ТС).
+
+**Объекты**: любые ТС (наземные, воздушные, водные)
+
+| ТС | Налоговая база |
+| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
+| ТС, имеющие двигатель | Мощность двигателя в Лошадиных Силах (ЛС) |
+| Воздушные ТС, для которых определяется тяга реактивного двигателя | Как статическая тяга реактивного двигателя на взлетном режиме в земных условиях в килограмм/силы по паспорту |
+| Водные несамоходные (буксируемые) | Как валовая вместимость |
+| Иные ТС | Как единица ТС |
+
+---
+## Земельный Налог
+**Налогоплательщик** - ЮЛ и ФЛ, обладающие земельными участками по праву собственности, постоянного пользования или пожизненного наследуемого владения.
+Не признается НП: ЮЛ и ФЛ, на землю, на праве безвозмездного пользования.
+
+Объекты налогообложения: земельные участки, расположенные в пределах муниципального образования.
+
+**Налоговая база определяется** как кадастровая стоимость земельных участков.
+
+ЮЛ определяют налоговую базу самостоятельно по данным из ЕГРН.
+Для ФЛ налоговую базу рассчитывают налоговые органы, получая данные о кадастровой стоимости из Росреестра (Роскадастра), затем направляют ФЛ.
+
+---
+
+## Торговый Сбор
+**Торговый сбор** - это местный обязательный платеж для тех, кто ведет торговую деятельность через конкретные объекты на территории городов, где этот сбор введен (МСК, СПб, Севастополь).
+
+**Налогоплательщики**: ЮЛ и ФЛ, осуществляющие торговлю на соответствующих объектах.
+
+**Объект**: использование объектов движимого и недвижимого имущества для осуществления торговли, хотя бы раз в течении квартала.
+
+Сбор устанавливается в отношении объектов, где осуществляется торговля.
+
+К торговой деятельности относятся:
+1) Стационарная торговая сеть без торговых залов (окошко)
+2) Нестационарная торговая сеть (автолавки, фуд-траки, палатки)
+3) Стационарные торговые сети, имеющие залы (секция в торговом центре, супермаркет)
+
+**Налоговая ставка устанавливается отдельно НПА каждого субъекта.**
+
+## Водный Налог
+**Налогоплательщики**: ЮЛ и ФЛ, осуществляющие пользование водными объектами
+
+| Объект налогообложения | Налоговая база |
+| ---------------------------------------------------------- | --------------------------------------------------------------- |
+| Забор воды из водных объектов | Объем воды, забранного из водного объекта за налоговый период |
+| Использование акватории водных объектов (кроме лесосплава) | Площадь предоставляемого водного пространства |
+| Гидроэнергетика без забора воды | Количество произведенной за налоговый период электроэнергии |
+| Сплав древесины в плотах и кошелях | $\text{объем древесины} * \frac{\text{расстояние сплава}}{100}$ |
+
+## Налог На Игорный Бизнес
+**Игорный бизнес** - предпринимательская деятельность по организации и проведению азартных игр, связанная с извлечением организациями доходов в виде выигрыша и (или) платы за проведение азартных игр.
+
+**Игровое поле** - спец. место на игровом столе, оборудованное в соответствие с правилами *азартной игры*, где проводится *азартная игра* с любым количеством участников *игры* и только с одним работников организатора *игры*, участвующим в *игре*.
+
+**Налогоплательщики**: ЮЛ, осуществляющие деятельность в сфере игорного бизнеса.
+
+**Налоговый период** - календарный месяц
+
+Каждый объект нуждается в регистрации и по каждому из объектов налоговая база определяется как общее количество соответствующих объектов налогообложения.
+Для них НК РФ устанавливаются следующие пределы:
+
+| Объект налогообложения | Налоговая база |
+| ------------------------------------------------------------ | ------------------- |
+| Игровой стол (с участием персонала) | 50 - 250 к рублей |
+| Игровой автомат (без участия персонала) | 3 - 15 к рублей |
+| Процессинговый центр (вычислительный мозг) | 50 - 250 к рублей |
+| Процессинговый центр интерактивных ставок тотализатора | 2,5 - 3 млн рублей |
+| Процессинговый центр интерактивных ставок букмерской конторы | 9,5 - 10 млн рублей |
+| Пункт приема ставок (физический офис) | 10 - 14 к рублей |
+
+**Игровые зоны**:
+1) "Красная поляна" (Сочи)
+2) "Янтарная" (Калининград)
+3) "Приморье" (Приморский край)
+4) "Сибирская монета" (Алтайский край)
\ No newline at end of file
diff --git a/90 Library/Finance/Налоги/Специальные налоговые режимы.md b/90 Library/Finance/Налоги/Специальные налоговые режимы.md
new file mode 100644
index 0000000..c4d4f76
--- /dev/null
+++ b/90 Library/Finance/Налоги/Специальные налоговые режимы.md
@@ -0,0 +1,54 @@
+---
+status: stable
+type: concept
+tags:
+ - mephi
+ - finance
+ - taxes
+created: 2026-01-11
+updated: 2026-05-07
+title: Специальные Налоговые Режимы
+---
+
+# Специальные Налоговые Режимы
+## Упрощенная Система Налогообложения (УСНО)
+
+- **Применение**: Добровольный, для малых и средних предприятий, ИП
+- **Условия перехода**: Сумма доходов за 9 месяцев года, в котором подается уведомление, не должна превышать **337,5 млн рублей**.
+- **Освобождение**: Плательщики освобождаются от налога на прибыль (ИП — от НДФЛ) и налога на имущество (кроме объектов, облагаемых по кадастровой стоимости).
+- **Объекты и ставки**: существуют две вариации уплаты налога
+ 1) "Доходы" - 6% на доходы.
+ 2) "Доходы минус расходы" - 15% на разность.
+- **Особенности**: По основным средствам амортизация не начисляется; расходы учитываются равными частями по **1/10 в год** в течение 10 лет.
+
+> [!info] **НДС в 2025 году**
+> С 2025 года действуют новые правила по НДС для УСН в зависимости от годовой выручки:
+> - До 60 млн руб. — освобождение от НДС.
+> - От 60 до 250 млн руб. — ставка **5%**.
+> - От 250 до 450 млн руб. — ставка **7%**.
+> - Свыше 450 млн руб. — переход на общую ставку **20%**
+
+## Единый Сельскохозяйственный Налог (ЕСХН)
+- **Применение**: Сельхозпроизводители (доля дохода от С/Х-деятельности должна быть **не менее 70%**)
+- **Ставка**: 6% от налоговой базы (*доходы - расходы*)
+- **Освобождение**: Плательщики освобождаются от налога на прибыль (ИП — от НДФЛ) и налога на имущество (кроме объектов, облагаемых по кадастровой стоимости).
+- **НДС**: Освобождение от НДС возможно, если доход за прошлый год составил менее **60 млн рублей**.
+
+## Патентная Система Налогообложения (ПСН)
+- **Применение**: Только ИП.
+- **Ставка**: Отсутствует, применяется фиксированная сумма налога (стоимость патента), бухгалтерский учет не ведется.
+- **Сумма**: ПВД (Потенциально возможный налог) \* 6% [^1]
+
+## Налог На Профессиональный Доход (НПД / Самозанятые)
+- **Применение**: Экспериментальный режим (до конца 2028 года) для ФЛ и ИП без работников.
+- **Лимит дохода**: До *2,4 млн. рублей* в год
+- **Ставки**: 4% при расчете с ФЛ; 6% при расчете с ЮЛ и ИП.
+- **Особенности**: Нет отчетности, деклараций и обязательных страховых взносов; регистрация через приложение "Мой налог".
+
+## Соглашение О Разделе Продукции (СРП)
+- **Характер**: Обязательный режим для совместных предприятий, разрабатывающих недра на условиях раздела продукции.
+- **Модели**: Используется "индонезийская" модель (возмещение затрат инвестору сырьем, раздел остатка, налог на прибыль с доли инвестора).
+- **Примеры**: Проекты "Сахалин-1", "Сахалин-2" и Харьягинское месторождение.
+- **Льгота**: Налог на имущество снижен на **50%**.
+
+[^1]: Государство (региональные власти) заранее решает: "Мы считаем, что парикмахер в нашем городе в среднем может заработать 1 миллион рублей в год". Этот 1 миллион — и есть ПВД. Он прописан в законе субъекта РФ.
diff --git a/90 Library/Finance/Налоги/Страховые взносы.md b/90 Library/Finance/Налоги/Страховые взносы.md
new file mode 100644
index 0000000..8cb4a2d
--- /dev/null
+++ b/90 Library/Finance/Налоги/Страховые взносы.md
@@ -0,0 +1,54 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - tax
+ - finance
+ - taxes
+created: 2026-01-15
+updated: 2026-05-07
+title: Страховые Взносы
+---
+
+# Страховые Взносы
+Страховые взносы - поступления в специальный социальный фонд и фонд обязательного медицинского страхование РФ.
+Средства используются на выплату пенсий, соц. пособий, оплату больничных листов, содержание сферы здравоохранения.
+
+## **Плательщики**
+1) ЮЛ, ИП и ФЛ, производящие выплаты и иные вознаграждения.
+2) ИП, адвокаты, нотариусы, арбитражные управляющие, оценщики, патентные поверенные и иные лица, занимающиеся частной практикой - платят взносы **за себя**, даже если у них нет работников.
+
+## Объекты Обложения Страховыми взносами
+Выплаты и иные вознаграждения в пользу ФЛ, подлежащих обязательному страхованию:
+1) В рамках трудовых отношений
+2) по договору ГПХ
+3) Авторские заказы
+4) По договорам отчуждения исключительного права на результаты интеллектуальной собственности (продажа патента)
+
+## Особенности
+- Налоговая база исчисляется каждый месяц отдельно для каждого ФЛ
+- Расчетный период - год
+- Плательщик обязан вести персонифицированный учет по каждому ФЛ
+- Предельная величина налоговой базы на 2025 - `2 759 000` руб.
+- В рамках предельной величины налоговая ставка - $30\%$, больше - $15,1\%$
+
+## Суммы, Не Подлежащие Исчислению Страховых Взносов
+
+> Ст. 422 НК РФ
+
+1) Гос. пособия
+2) Выплаты, связанные с:
+ - возмещением вреда, причиненного повреждением здоровья
+ - компенсацией расходов на жилье, питание и т.д.
+ - увольнением (в пределах трех месячных окладов, на севере - шести)
+ - возмещением расходов на проф. подготовку
+ - трудоустройство работников, уволенных в связи с сокращением
+ - возмещение расходов дистанционному работнику
+1) Суммы единовременной материальной помощи, оказываемой плательщиками ФЛ
+ - стихия
+ - смерть члена семьи
+ - рождение ребенка (не более 50к на каждого)
+1) Сумма платежей по договорам ДМС (не менее 1 года)
+2) Доп. взносы на накопительную пенсию (не больше 12к в год)
+3) Компенсация проезда к месту отдыха для работников Крайнего Севера
\ No newline at end of file
diff --git a/90 Library/Finance/Налоги/Субъекты налоговой системы (права и обязанности).md b/90 Library/Finance/Налоги/Субъекты налоговой системы (права и обязанности).md
new file mode 100644
index 0000000..12933aa
--- /dev/null
+++ b/90 Library/Finance/Налоги/Субъекты налоговой системы (права и обязанности).md
@@ -0,0 +1,25 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - finance
+ - taxes
+created: 2026-01-13
+updated: 2026-05-07
+title: Субъекты Налоговой Системы (права И обязанности)
+---
+
+# Субъекты Налоговой Системы (права И обязанности)
+Субъектами налоговой деятельности выступают:
+- налогоплательщики
+- налоговый агенты
+
+## Права Налогоплательщиков (ст. 21 НК РФ)
+1) Получение разъяснений от ФНС и МинФина о том, как считать и платить налоги
+2) Законно использовать налоговые льготы, получать отсрочки, рассрочки или инвестиционные кредиты
+3) Вовремя зачитывать или возвращать лишние уплаченные суммы налогов и штрафов
+4) Лично или через юриста участвовать в проверках, давать пояснения и присутствовать при визитах инспекторов (выездных проверках)
+5) Получать все копии актов проверок, решений и официальных требований налоговой
+6) Не выполнять незаконные требования инспекторов
+7) Право на соблюдение налоговой тайны
\ No newline at end of file
diff --git a/90 Library/Finance/Налоги/Сущность и история налогов.md b/90 Library/Finance/Налоги/Сущность и история налогов.md
new file mode 100644
index 0000000..312be01
--- /dev/null
+++ b/90 Library/Finance/Налоги/Сущность и история налогов.md
@@ -0,0 +1,26 @@
+---
+status: processing
+type: concept
+tags:
+ - mephi
+ - finance
+ - taxes
+created: 2026-01-10
+updated: 2026-05-07
+title: Сущность И История Налогов
+---
+
+# Сущность И История Налогов
+**Налоги** - это **обязательные** платежи в государственный бюджет на **безвозмездной** основе. Они являются **главной статьей бюджетных доходов**.
+
+Совокупность налогов, налоговых органов и законодательства образует налоговую систему.
+
+Объектами являются доходы, прибыль, стоимость определенных товаров, отдельные виды деятельности налогоплательщиков, операции с ценными бумагами, пользование природными ресурсами, имущества ФЛ и ЮЛ, передача имущества, добавленная стоимость продукции, работ и услуг и др. объекты, установленные законодательными актами.
+
+## Основные Этапы Становления Системы Налогообложения
+1) Древний мир и Средние века (4 век до н.э. - 5 век н.э.)
+ Период появления и первичного развития налогов. Постепенный переход в денежную форму, увеличение их размера и превращение в основной доход государства.
+2) Феодализм и зарождение капитализма (5 - 18 век)
+ Налоги начинают формироваться как правовая категория. Появление первого налогового законодательства.
+3) Современный этап (19 век - наше время)
+ Развитие капитализма и рыночной экономики. Наблюдается тенденция **уменьшения объема налогов** внутри систем, но **законодательство становится более системным**, а его роль значительно **возрастает**.
\ No newline at end of file
diff --git a/90 Library/Finance/Налоги/Таможенные пошлины.md b/90 Library/Finance/Налоги/Таможенные пошлины.md
new file mode 100644
index 0000000..e60ec93
--- /dev/null
+++ b/90 Library/Finance/Налоги/Таможенные пошлины.md
@@ -0,0 +1,71 @@
+---
+status: stable
+type: concept
+tags:
+ - mephi
+ - tax
+ - finance
+ - taxes
+created: 2026-01-14
+updated: 2026-05-07
+title: Таможенные Пошлины
+---
+
+# Таможенные Пошлины
+**Таможенная пошлина** - это обязательный сбор, который взимается с товаров, ввозимых на территории ЕАЭС из третьих стран.
+Она регулируется Единым таможенным тарифом ЕАЭС и применяется для защиты внутиреннего рынка, контроля товарооборота и пополнения бюджета.
+
+Таможенным кодексом ЕАЭС утверждено 6 методов для определения стоимости товаров - Методы определения стоимости товаров (**МОС**)
+
+- Каждый следующий метод используется при невозможности применения предыдущего.
+
+## МОС1 (Метод По Стоимости Сделки С Ввозимыми товарами)
+Стоимость сделки - это цена, фактически уплаченная или подлежащая уплате + доп. расходы, которые возникают в связи с поставкой этого товара.
+
+Доп. расходы:
+1) Расходы на упаковку товаров
+2) Материалы, израсходованные при производстве
+3) Расходы на перевозку, погрузку, разгрузку и перегрузку товаров до места прибытия
+4) Расходы на страхование товаров
+5) Лицензированные и иные подобные платежи за использование объектов интеллектуальной собственности
+6) Вознаграждения экспедитору или агенту
+
+$$\small \text{Таможенная стоимость по МОС1} = \text{Цена товаров} + \text{Доп.начисления}$$
+
+## МОС2 (Метод По Стоимости Сделки С Идентичными товарами)
+При использовании МОС2, базой для вычисления является стоимость сделки с идентичными товарами, проданными и ввезенными на таможенную территорию в течении 90 дней до ввоза оцениваемых товаров. (Товары идентичны при одинаковости во всех отношениях)
+
+$$\small \text{Там. стоимость по МОС2} = \text{ТС идентичных товаров по МОС1, принятые раннее}$$
+## МОС3 (Метод По Стоимости Сделки С Однородными товарами)
+Однородные товары - принято считать непохожие внешние товары, но в то же время имеющие сходные характеристики, состоящие из схожих компонентов и произведенная из таких же материалов.
+
+Аналогично МОС2.
+
+$$\text{МОС3} = \text{Однородные товары по МОС1}$$
+
+## МОС4 (Метод вычитания)
+Основа для расчета - цена, по которой ввозимые, идентичные или однородные товары были реализованы на территории ЕАЭС (обычно, РФ) в неизменном виде и наибольшими партиями.
+
+При этом, цена берется не в чистом виде - из неё вычитаются расходы, которые характерны для рынка России и не должны быть частью таможенной цены.
+Например:
+1) Вознаграждения посреднику или агенту
+2) Надбавка к цене для получения прибыли
+3) Расходы на перевозку, страхование
+4) Таможенные пошлины, налоги, сборы
+
+$$\text{МОС4} = \text{Цена внутренней продажи товаров} - \text{Вычеты}$$
+## МОС5 (Метод сложения)
+**Особенность**: Учет издержек при производстве товаров.
+
+В качестве основы принимается расчетная стоимость товаров, полученная путем сложения:
+1) расходов на материалы и производство товаров
+2) суммы прибыли
+3) расходов на перевозку, погрузку/разгрузку
+4) расходов на страхование
+
+Проблемой является то, что контрагенты редко раскрывают расчеты себестоимости.
+
+## МОС6 (Резервный метод)
+**Особенность**: Гибкость подходов к вычислению ТС.
+Применение базовых правил по МОС1-МОС5, при некоторых отклонениях от правил, без занижения стоимости.
+
diff --git a/90 Library/Finance/Налоги/Функции налогов и экономические циклы.md b/90 Library/Finance/Налоги/Функции налогов и экономические циклы.md
new file mode 100644
index 0000000..4ca037a
--- /dev/null
+++ b/90 Library/Finance/Налоги/Функции налогов и экономические циклы.md
@@ -0,0 +1,31 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - finance
+ - taxes
+created: 2026-01-13
+updated: 2026-05-07
+title: Функции Налогов И Экономические Циклы
+---
+
+# Функции Налогов И Экономические Циклы
+## Функции налогов
+1) **Фискальная** (по бюджету) - формирование доходов бюджета для финансирования государственных расходов.
+2) **Социальная** - поддержание социального равновесия путем изменения соотношения между доходами отдельных социальных групп с целью сглаживания неравенства между ними.
+3) **Регулирующая** - государственное регулирование экономики через изменение налоговой нагрузки на отдельные отрасли, регионы и виды деятельности, стимулируя или сдерживая их развитие.
+4) **Международная задача** - участие в международном налоговом сотрудничестве, заключение соглашений по избежанию двойного налогообложения, обмен налоговой информацией и обеспечение для иностранных инвесторов.
+
+## Экономические циклы
+
+**Экономический цикл** - это периодическое повторение фаз роста и спада экономической активности.
+- Средний (10-12 лет) - каждые 10-12 лет - кризис.
+ При росте экономики, налоги повышаются, накапливая резерв.
+ При спаде, налоги понижаются - рост соц.расходов.
+- Длинный (50-60 лет) - каждый 50-60 лет - супер-кризис.
+
+## Связанные заметки
+- [[ВР - основы]] — экономические циклы формализованы в ВР как циклическая компонента C; математический аппарат для их моделирования
+- [[Стационарность - ВР]] — налоговые поступления нестационарны: содержат тренд и циклическую компоненту
+
\ No newline at end of file
diff --git a/90 Library/Finance/Экономическая Безопасность/Индикаторы экономической безопасность.md b/90 Library/Finance/Экономическая Безопасность/Индикаторы экономической безопасность.md
new file mode 100644
index 0000000..df7156b
--- /dev/null
+++ b/90 Library/Finance/Экономическая Безопасность/Индикаторы экономической безопасность.md
@@ -0,0 +1,21 @@
+---
+status: stable
+type: concept
+tags:
+ - mephi
+ - finance
+ - economic-security
+created: 2025-12-17
+updated: 2026-05-07
+title: Индикаторы экономической безопасность
+---
+
+# Индикаторы экономической безопасность
+Если при *уменьшении* индикатора, состояние экономики *ухудшается*, то индикатор **убывающий**.
+$x_{текущий} > x_{порог}$ - значение не должно быть меньше порога
+
+Если при увеличении индикатора, состоянии экономики *ухудшается*, то индикатор **возрастающий**.
+$x_{текущий} < x_{порог}$ - значение не должно быть больше порога
+
+## Связанные заметки
+- [[Экономическая безопасность - база]]
diff --git a/90 Library/Finance/Экономическая Безопасность/Экономическая безопасность - база.md b/90 Library/Finance/Экономическая Безопасность/Экономическая безопасность - база.md
new file mode 100644
index 0000000..46f4776
--- /dev/null
+++ b/90 Library/Finance/Экономическая Безопасность/Экономическая безопасность - база.md
@@ -0,0 +1,291 @@
+---
+status: seed
+type: concept
+tags:
+ - finance
+ - economic-security
+created: 2025-12-17
+updated: 2026-05-07
+title: Экономическая безопасность
+---
+
+# Экономическая безопасность
+**Экономическая безопасность** - это состояние защищенности экономики от внешних и внутренних угроз, позволяющее стране развиваться самостоятельно и стабильно.
+
+Уровни ЭБ:
+1) Международная
+ 2) Глобальная
+ 3) Региональная
+4) Национальная
+ 5) Государства
+ 6) Регион
+ 7) Общество
+ 8) Частное
+ 1) Предприятия (микро-уровень)
+ 2) Домохозяйств
+ 3) Личности
+
+Основные этапы развития:
+1) Древность - Средневековье: защита караванов, госрегулирование цен, контроль за зерном, протекционизм
+2) Новое время: меркантилизм, колониальная экспансия.
+3) Индустриализация: паровые двигатели, революция, ЖД, ЦБ, биржи.
+4) 20-ый век: мировые войны, Великая депрессия, госпланирование, Бреттон-Вудская система (МВФ, Всемирный банк).
+5) Современность: глобализация, цифровизация, новые вызовы.
+
+**Неоколониализм** - система неравноправных отношений, в основе которых лежит экономическая экспансия в виде косвенного контроля.
+
+Термин **Экономическая безопасность** впервые был употреблен Ф.Рузвельтом в 1934 г.
+В России он появился в 1994 г., а в 1996 г. была принята первая Гос.Стратегия ЭБ.
+
+**Объект ЭБ** - *экономическая система* в целом, и её составляющие (институциональные преобразования личности), способствующие повышению уровня ЭБ.
+
+**Субъект ЭБ** - *государство* через *институты*.
+
+**Предмет ЭБ** - *методы*, *инструменты* и *механизмы*, отвечающие требованиям ЭБ.
+
+Структура ЭБ:
+1) Концепция и стратегия
+2) Национальные интересы
+3) Угрозы в экономике
+4) Индикаторы и пороги
+5) Меры по обеспечению безопасности
+
+Нормативная база:
+- Конституция и кодексы (НК, БК, УК и др.)
+- Федеральные законы № 390, № 172, др.
+- Указы Президента
+
+Ключевые понятия из *Стратегии ЭБ*:
+- **Национальная безопасность** - защищенность нац. интересов.
+- **Национальные интересы** - объективно значимые потребности личности, общества и государства.
+- **Стратегические национальные приоритеты** - основные направления нац. безопасности и устойчивого развития РФ.
+- **Угроза НБ** - совокупность условий и факторов, создающие прямую или косвенную возможность причинения ущерба нац. интересам РФ.
+- **Система обеспечения НБ** - совокупность органов власти (осуществляющих обеспечение ЭБ) и их инструментов.
+
+Нац. интересы:
+- Повышение качества жизни граждан
+- Защита суверенитета и территориальной целостности
+- Развитие безопасного информационного пространства
+
+**Экономический суверенитет** - объективная независимость государства во внешней и внутренней экономической политике.
+
+**Нац. интересы в эк. сфере** - значимые потребности страны для обеспечения *стратегических приоритетов* РФ.
+
+Уровни опасности ЭБ:
+1) Вызов - факторы, которые могут привести к угрозе.
+2) Угроза - факторы, создающие возможность нанесения ущерба.
+3) Риск - возможность нанесения ущерба, в связи с реализацией угрозы.
+4) Опасность - реализация вызов, угроз и рисков, сопровождаемая разрушением системы.
+
+**Виды угроз**:
+- внешние/внутренние
+- постоянные/разовые
+- реальные/потенциальные
+- активные/пассивные
+- явные/скрытые
+- всеобщие/локальные
+- прогнозируемые/непрогнозируемые
+- естественные/антропогенные
+
+**Меры противодействия**:
+- по выявлению
+- по предупреждению
+- по обнаружению
+- по локализации
+- по устранению последствий
+
+**Государственное регулирование экономики**:
+- целенаправленная деятельность государства в лице соответствующих гос. органов, обеспечивающих *достижение* стратегических целей, и *регламетирующих* хоз. отношений в обществе.
+
+Формы гос. регулирования экономики:
+1) Прямые:
+ - Создание гос. сектора
+ - Перераспределение ресурсов/доходов
+ - Защита основ рыночной экономики (ФАС)
+ - Информирование населения о состоянии экономики
+
+2) Косвенные:
+ - Фискальная политика - налогообложение, расходы и бюджет.
+ - Монетарная политика - контроль над денежной массой.
+ - Внешнеэкономическая политика - экономические отношения с другими субъектами мировой экономики.
+
+**Бюджетно-налоговое регулирование**: совокупность средств, направленных на аккумуляцию и распределение фин. ресурсов.
+
+**Денежно-кредитная политика**: политика воздействия на количестве денег в обращении с целью обеспечения стабильности цен, полной занятости населения и роста объема производства (осуществляет ЦБ).
+
+**Платежный баланс**: баланс, отражающий соотношение поступлений, полученных из-за границы и платежей за границу за период времени.
+
+**Денежная масса**: наличные деньги и безналичные денежные средства резидентов РФ.
+**Денежные агрегаты**: это статистические показатели структуры и объема денежной массы.
+- *M0* - наличные деньги в обращении
+- *M1* - Переводные депозиты
+- *M2* - другие депозиты
+- *Широкая денежная масса* - депозиты в валюте, сберегательные сертификаты.
+
+Функции государства в экономике:
+- Распределительная и перераспределительная - сокращение различий в размерах доходов между субъектами.
+- Стимулирующая - связана с активацией сил, движущих развитие общества.
+- Контрольная - контроль за соблюдением правил и норм.
+
+**Госдолг к ВВП**: применяется для объективного и достоверного сравнения уровня долговой нагрузки различных стран мира.
+
+**Торговый баланс**: отношение экспорта к импорту, результатом является *Сальдо*.
+
+Фазы развития экономики между кризисами:
+1) Возрождение (Рост ВВП, снижение инфляции)
+2) Развитие (Рост ВВП, рост инфляции)
+3) Нокдаун (Снижение ВВП, рост инфляции)
+4) Охлаждение (Снижение ВВП, снижение инфляции)
+
+**Составляющие ЭБ**: структурные элементы нац. системы ЭБ.
+1) Финансовая составляющая
+2) Демографическая
+3) Энергетическая
+4) Социальная
+5) ...
+
+Порядок оценки:
+1) Критерии ЭБ - качественные признаки
+2) Индикаторы
+3) Показатели - количественное выражение индикаторов
+4) Пороговые значения - болевые точки экономики
+
+**Финансовая безопасность**: устойчивое функционирование финансовой системы страны.
+
+**Производственная (промышленная) безопасность**: способность индустрии устойчиво осуществлять расширенное воспроизводство.
+*Расширенное воспроизводство*: непрерывный процесс производства экономических благ в увеличенных размерах.
+
+**Продовольственная безопасность**: постоянная доступность достаточного количества продовольствия для поддержания активной жизни населения.
+
+**Социальная б.**: состояние защищенности личности, групп и общности от угроз.
+
+**Демографическая б.**: состояние защищенности жизни и воспроизводства населения.
+
+**Экологическая б.**: состояние защищенности государства от последствий воздействия на окружающую среду.
+
+**Энергетическая б.**: состояние защищенности государства от угроз дефицита энергоносителей и бесперебойности энергоснабжения.
+
+**Внешнеэкономическая б.**: защищенность нац. интересов от внешних вызовов.
+
+**Инвестиционная б.**: суверенитет процессов и отраслей от иностранного капитала.
+
+**Инновационная б.**: способность обеспечить уровень развития инновационной системы, необходимого для стабильности функционирования страны.
+
+**Научно-техническая б.**: состояние защищенности научно-технического потенциала страны.
+
+**Финансы**:
+- в широком смысле - система отношений в обществе по поводу образования, распределения и использования денежных фондов.
+- узком - совокупность отношений, организованных государством, осуществляются формирование, использования фондов денежных средств.
+
+**Функции финансов**:
+- Распределительная
+- Контрольная
+- Регулирующая
+- Стабилизирующая
+- Фискальная
+- Стимулирующая
+
+Субъекты ФБ:
+- Международные и национальные институты
+- Президент РФ, органы гос. власти, регионов РФ и местного самоуправления
+- ЦБ РФ, ЮЛ и ФЛ
+
+Предмет:
+- Деятельность субъектов ФБ
+- Методы, инструменты и технологии ФБ
+
+Объекты фин. безопасности:
+1) Централизованные денежные фонды (формируются государством):
+ - Бюджеты (федеральный, региональный, местный)
+ - Внебюджетные фонды (пенсионный, социальный, медицинский)
+1) Децентрализованный ДФ:
+ - Юридических лиц (уставные, резервные, депозиты ФЛ)
+ - Физических лиц (финансы самозанятых, инвестиции, вклады)
+
+Индикаторы ФБ:
+- Индекс денежной массы
+- Уровень инфляции
+- Внешний долг
+- Оборот розничной торговли
+- ...
+
+Угрозы ФБ:
+1) Внешние:
+ - Утрата внешнеэкономических позиций
+ - Противодействие равноправному участию РФ в международной торговле
+ - ...
+1) Внутренние:
+ - Недостаточность гос. контроля
+ - Отсутствие соц. ориентированности экономики
+
+Меры защиты:
+1) Концептуально-методические (зарубежный опыт, НИРы, системы индикаторов)
+2) Финансово-экономические (законодательные гарантии надежности фин. системы, контроль за исполнением фин. обязательств субъектов)
+3) Организационно-технологические (повышение надежности тех. процессов и операций)
+
+Индикаторы внешнеэкономической безопасности:
+- Госдолг
+- Чистый ввоз (вывоз) капитала
+- Сальдо торгового баланса
+- ...
+
+**Глобализация мировой экономики**: процесс объединения мирового экономического пространства со свободным перемещением ресурсов.
+
+Угрозы ФБ в условиях глобализации:
+1) Неравномерное распределение благ.
+2) Трудности конкурирования отечественного производителя с импортом.
+3) Потеря суверенитета экономики
+4) Сужение рамок для экономической политики
+
+Возможности:
+1) Импульс для развития технологий
+2) Необходимость усиления для конкурентоспособности
+3) Рационализация производства
+4) Увеличение числа фин. инструментов
+
+ОД/ФТ/ФРОМУ как угроза ФБ:
+1) Подрыв основ легального бизнеса
+2) Искажение целевого влияния органов власти
+3) Деформация структурных изменений в экономике
+
+Специфические аспекты развития ОПГ: интенсивный, экстенсивный
+
+Льготные налоговые и офшорные режимы
+Цели:
+- Снижение налогов
+- Охрана экономических активов, размещая их в наиболее безопасных условиях
+- Аккумулирование и накопление финансов
+- Снижение рисков
+
+Функции:
+1) Банкинг
+2) Страхование
+3) Оформление воздушных и водных судов
+4) Инвестирование
+
+Деофшоризация - система, направленная против сокрытия доходов компаний, находящихся в офшорах.
+
+**Реальный сектор экономики**: совокупность отраслей экономики материальных и нематериальных товаров и услуг, за исключением финансовых и биржевых операций.
+
+Примеры РСЭ:
+- Топливно-энергетический комплекс
+- АПК
+- Металлургический
+- Лесопромышленный
+
+Угрозы развития РСЭ:
+1) Спад (стагнация)
+2) Структурная деформированность
+3) Высокий возрастной уровень
+4) ...
+
+**Промышленная политика**: совокупность политик в области сектора услуг и их инструментов, интегрально воздействующих на экономику.
+
+Подходы к ПП:
+1) Традиционная (вертикальная)
+2) Новая (горизонтальная)
+
+**Строительная политика**: курс государства по поощрению практики, связанной с капитальным и жилым строительством.
+
+## Связанные заметки
+- [[Индикаторы экономической безопасность]]
diff --git a/90 Library/HomeLab/Infrastructure — ada-dev.md b/90 Library/HomeLab/Infrastructure — ada-dev.md
new file mode 100644
index 0000000..9bf2eb0
--- /dev/null
+++ b/90 Library/HomeLab/Infrastructure — ada-dev.md
@@ -0,0 +1,118 @@
+---
+status: seed
+type: concept
+tags:
+ - homelab
+ - infrastructure
+ - devops
+created: 2026-05-18
+updated: 2026-05-18
+title: Infrastructure — ada-dev
+source: "[[Infrastructure]]"
+---
+
+# Infrastructure — ada-dev
+
+Заметка фиксирует текущую схему homelab-инфраструктуры `ada-dev`: публичный VPS, домашние узлы, reverse proxy, overlay-сеть и пользовательские сервисы.
+
+![[infra.excalidraw.md.md|950]]
+
+## Общая схема
+
+Инфраструктура состоит из трех ключевых зон:
+
+- `Internet` — внешний доступ пользователей.
+- `ru-vps` с белым IP — публичная точка входа.
+- локальные узлы `mini-pc` и `cloud-pc`, связанные с VPS через ZeroTier overlay network.
+
+VPS принимает внешний трафик и проксирует его дальше. Домашние сервисы не обязаны напрямую светиться в интернет: доступ к ним можно строить через публичный [[CA и NGINX|Nginx]]/NPM и приватную overlay-сеть.
+
+## Узлы
+
+### ru-vps
+
+`ru-vps` — публичный сервер с белым IP. На схеме он выполняет роль внешнего шлюза:
+
+- `NPM (публичный)` — reverse proxy для публичных доменов и маршрутов;
+- `Nginx (80, 443)` — входная точка HTTP/HTTPS;
+- `ufw` — базовый firewall;
+- `ZeroTier` — связь с домашним сегментом;
+- `Portainer Agent` — управление контейнерной средой через Portainer.
+
+Практический смысл VPS — держать наружу только минимальный набор портов и не раскрывать домашнюю сеть напрямую.
+
+### mini-pc
+
+`mini-pc` описан как `N150 / 12 GB / 256 GB`. По схеме это небольшой домашний узел для инфраструктурных сервисов:
+
+- `AdGuard Home`;
+- `NPM (локальный)`;
+- `Vaultwarden`;
+- `ZeroTier`;
+- `Portainer Agent`.
+
+Логика узла: локальная инфраструктура и сервисы, которым полезно быть рядом с домашней сетью.
+
+### cloud-pc
+
+`cloud-pc` описан как `i5 / 16 GB / 256 GB + 5 TB`. Это более крупный узел для сервисов и хранения:
+
+- `Portainer Server`;
+- `Cockpit`;
+- `Gitea + Registry`;
+- `Gitea Actions Runner`;
+- `Nextcloud`;
+- `SMB/BU/Files (5 TB HDD)`;
+- `ZeroTier`.
+
+Логика узла: сервисы разработки, файлы, backup/storage и управление контейнерами.
+
+## Сетевой слой
+
+ZeroTier используется как overlay-сеть между VPS и домашними узлами. Это позволяет:
+
+- проксировать трафик с публичного VPS на локальные сервисы;
+- не открывать сервисные порты домашней сети наружу;
+- держать управление и межузловые соединения в приватном сегменте;
+- упростить маршрутизацию между VPS, `mini-pc` и `cloud-pc`.
+
+`ufw` на VPS должен ограничивать внешний периметр. Базовая модель: наружу открыты только необходимые публичные порты, а внутренние сервисы доступны через ZeroTier и reverse proxy.
+
+## Reverse proxy
+
+На схеме есть два уровня NPM:
+
+- `NPM (публичный)` на VPS — отвечает за публичный доступ;
+- `NPM (локальный)` на `mini-pc` — может обслуживать локальные маршруты и внутренние сервисы.
+
+Такой подход полезен, если нужно разделить внешний и внутренний контуры. Публичный NPM принимает домены из интернета, локальный NPM может маршрутизировать сервисы внутри homelab.
+
+Смежная заметка: [[Nginx Proxy Manager под path]].
+
+## Сервисы
+
+Ключевые пользовательские сервисы:
+
+- `Vaultwarden` — self-hosted password manager;
+- `Gitea + Registry` — Git-сервер и container registry;
+- `Gitea Actions Runner` — CI runner;
+- `Nextcloud` — файловая синхронизация;
+- `SMB/BU/Files` — файловое хранилище и backup на 5 TB HDD;
+- `AdGuard Home` — DNS/ad blocking;
+- `Cockpit` — web-управление сервером;
+- `Portainer Server/Agent` — управление контейнерами.
+
+## Замечания по устойчивости
+
+- Публичный VPS — критическая точка входа. Если он падает, внешний доступ к сервисам пропадает, даже если домашние узлы живы.
+- ZeroTier — критическая зависимость для связности между VPS и домашними узлами.
+- `cloud-pc` несет сразу несколько ролей: Git, registry, runner, Nextcloud и storage. Для важных данных нужен отдельный backup-контур.
+- `Vaultwarden` стоит держать максимально изолированным: отдельный volume, backup, HTTPS, минимальный доступ к админке.
+
+## Связанные заметки
+
+- [[CA и NGINX]] — TLS-сертификаты и Nginx как входной HTTP/HTTPS-слой.
+- [[VPN]] — близкая идея приватного сетевого контура.
+- [[Docker - Дополнительные знания]] — контейнерная эксплуатация сервисов.
+- [[Основы - Docker]] — базовая модель контейнеризации.
+- [[DevOps - основы]] — инфраструктура, автоматизация и эксплуатация.
diff --git a/90 Library/HomeLab/Proxy/CA и NGINX.md b/90 Library/HomeLab/Proxy/CA и NGINX.md
new file mode 100644
index 0000000..a98a5b4
--- /dev/null
+++ b/90 Library/HomeLab/Proxy/CA и NGINX.md
@@ -0,0 +1,45 @@
+---
+status: stable
+type: lab
+tags:
+ - admin
+ - network
+created: 2025-12-17
+updated: 2026-05-07
+title: CA И NGINX
+---
+
+# CA И NGINX
+При запросе в локальный центр сертификации Microsoft, он выдает два файла:
+
+1. certnew.cer - сертификат
+2. certnew.p7b - цепочка сертификатов
+
+Для работы в Nginx необходимо их перевернуть в pem-формат.
+
+Если экспортированы они в base64, то cer уже в нужном формате, а p7b надо разделить на блоки:
+
+```text
+openssl pkcs7 -print_certs -in certnew.p7b -out chain.pem
+```
+
+И надо объединить их в одну цепочку сертификатов:
+
+```text
+cat certnew.cer chain.pem > fullchain.pem
+```
+
+Далее в конфигурации Nginx:
+
+```text
+...
+server {
+ ssl_certificate /path/to/fullchain.pem
+ ssl_certificate_key /path/to/server.key
+}
+...
+```
+
+## Связанные заметки
+- [[VPN]] — ассиметричное шифрование (открытый/закрытый ключ) из VPN-ноты — это и есть PKI, на котором строится TLS-сертификат от CA
+- [[Docker Swarm]] — встроенный mTLS между нодами Swarm использует ту же инфраструктуру CA и сертификатов
\ No newline at end of file
diff --git a/90 Library/HomeLab/Proxy/Nginx Proxy Manager под path.md b/90 Library/HomeLab/Proxy/Nginx Proxy Manager под path.md
new file mode 100644
index 0000000..3f69fba
--- /dev/null
+++ b/90 Library/HomeLab/Proxy/Nginx Proxy Manager под path.md
@@ -0,0 +1,58 @@
+---
+status: seed
+type: guide
+tags:
+ - admin
+ - nginx
+ - reverse-proxy
+ - homelab
+created: 2026-05-18
+updated: 2026-05-18
+title: Nginx Proxy Manager под path
+source: "[[Лайфхак для NPM. Как проксировать не на поддомен а на под путь]]"
+---
+
+# Nginx Proxy Manager под path
+
+Кейс: сервис нужно опубликовать не на отдельном поддомене вида `service.domain.ru`, а в подкаталоге основного домена: `domain.ru/`.
+
+## Решение
+
+В Nginx Proxy Manager нужно добавить `location` для нужного маршрута и в дополнительных настройках срезать prefix перед проксированием:
+
+```nginx
+rewrite ^//?(.*)$ /$1 break;
+```
+
+Смысл правила:
+
+- пользователь открывает `domain.ru//...`;
+- Nginx убирает `/` из URI;
+- upstream получает путь так, будто сервис открыт в корне `/`.
+
+## Когда это нужно
+
+Подход полезен, если:
+
+- не хочется заводить отдельный поддомен под мелкий сервис;
+- сервис живет за reverse proxy в homelab;
+- внешний URL должен быть компактным;
+- нужно спрятать несколько внутренних сервисов за одним доменом.
+
+## Ограничения
+
+Не каждый сервис нормально работает под path-prefix. Возможные проблемы:
+
+- абсолютные ссылки на `/assets`, `/api`, `/static`;
+- WebSocket-маршруты;
+- OAuth/callback URL;
+- hardcoded base URL внутри приложения;
+- редиректы на `/`, из-за которых пользователь выпадает из `/`.
+
+Если приложение поддерживает настройку base path/base URL, лучше указать ее явно. Rewrite в proxy — рабочий хак, но не полноценная замена поддержке subpath внутри приложения.
+
+## Связанные заметки
+
+- [[Infrastructure — ada-dev]] — где NPM используется как публичный и локальный reverse proxy.
+- [[CA и NGINX]] — TLS и базовая настройка Nginx.
+- [[Docker - Дополнительные знания]] — эксплуатация сервисов в контейнерах.
diff --git a/90 Library/HomeLab/Проблемы дистрибутивов.md b/90 Library/HomeLab/Проблемы дистрибутивов.md
new file mode 100644
index 0000000..f98f7ba
--- /dev/null
+++ b/90 Library/HomeLab/Проблемы дистрибутивов.md
@@ -0,0 +1,42 @@
+---
+status: seed
+type: concept
+tags:
+ - homelab
+created: 2026-02-12
+updated: 2026-05-14
+title: Проблемы дистрибутивов
+---
+
+# Проблемы дистрибутивов
+## Arch Linux
+- Из-за слишком новой версии OpenSSL не запускаются проекты на RoR
+ **Решение**: Запускать их из под контейнера
+- Пока абсолютный лидер!
+
+## NixOS
+- Невозможно установить новейшую версию пакетов, даже с nix-ld
+- Сложность разворачивания окружений
+- Заморочки для workflow
+
+## Fedora
+- SELinux.
+- недоступность репозиториев без VPN
+
+## Ubuntu
+- Устаревшие пакеты (не решается даже PPA)
+- Нестабильная работа (что странно, лол)
+- SNAP-пакеты вовсюду, господи...
+- Но хорош как серверное решение
+## VanillaOS
+- Проблема аналогична NixOS - сложность с установкой приложений
+- Особенно, неясно, как поставить VirtualBox (но Virt-Manager лучше)
+
+## PopOS
+- База - Ubuntu, что дает свои фишки в работе
+- COSMIC иногда лагает, все же
+- Вышла стабильная версия на 24.04 с хорошей поддержкой NVIDIA, можно на ПК в будущем
+
+## Связанные заметки
+- [[Docker - Дополнительные знания]] — "запускать Rails из под контейнера" — прямой кейс отсюда; контейнер решает проблему несовместимости версий OpenSSL
+- [[Ruby On Rails]] — проекты на RoR не запускаются на Arch из-за OpenSSL; решение — запуск в изолированном контейнере
\ No newline at end of file
diff --git a/90 Library/Linux/Command Help.md b/90 Library/Linux/Command Help.md
new file mode 100644
index 0000000..fafc6ec
--- /dev/null
+++ b/90 Library/Linux/Command Help.md
@@ -0,0 +1,43 @@
+---
+status: stable
+type: concept
+tags:
+ - os
+ - linux
+created: 2025-12-17
+updated: 2026-05-07
+title: Command Help
+---
+
+# Command Help
+
+Command Help в Linux — это ряд встроенных средств для получения справочной информации по командам, их опциям и примерам использования прямо из терминала.
+
+## Основные Способы Получения Справки
+
+- **man** — показывает подробный справочник (manual page) по выбранной команде, включая синтаксис, описание, параметры, примеры и ссылки на связанные команды. Например: `man ls`.
+- **--help** — быстро выводит основные параметры и краткое описание команды, например: `ls --help`.
+- **help** — используется для получения информации о встроенных командах оболочки (shell built-ins), например: `help cd`.
+- **tldr** — выводит краткие, практичные примеры использования популярных команд в лаконичном виде, если установлен соответствующий пакет.
+
+## Структура Документации Man
+
+Man-страницы обычно содержат следующие разделы:
+
+- NAME: имя и краткое описание команды.
+- SYNOPSIS: шаблон вызова с аргументами.
+- DESCRIPTION: подробная информация о работе команды.
+- OPTIONS: полный список параметров и их значения.
+- EXAMPLES: примеры реального использования.
+- SEE ALSO: связанные команды и файлы.
+
+## Навигация В Справке
+
+В man-страницах перемещаться можно с помощью стрелок, пробела (пролистать страницу), Enter (строка), символов j/k, b/Space, q для выхода и / для поиска по тексту документации.
+
+## Применение
+
+Эти команды критичны для изучения синтаксиса, параметров и назначения любых команд Linux, а также для самостоятельного освоения терминала. Даже опытные специалисты используют их для поиска редких параметров или тонкостей работы системных утилит.
+
+## Связанные заметки
+- [[Linux]]
diff --git a/90 Library/Linux/Command Path.md b/90 Library/Linux/Command Path.md
new file mode 100644
index 0000000..b887b3e
--- /dev/null
+++ b/90 Library/Linux/Command Path.md
@@ -0,0 +1,39 @@
+---
+status: stable
+type: concept
+tags:
+ - os
+ - linux
+created: 2025-12-17
+updated: 2026-05-07
+title: Command Path
+---
+
+# Command Path
+Command Path - это переменная окружения в ОС на базе Linux, обозначается _PATH_. Представляет из себя упорядоченный список каталогов, в которых оболочка самостоятельно ищет бинарные файлы программ, которые были вызваны без указания абсолютного пути.
+
+Содержит пути каталогов, разделенных двоеточием:
+
+```text
+/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+```
+
+Для просмотра переменной PATH, можно использовать команду _echo_: `echo $PATH`
+
+> [!attention] Порядок расположения При наличии бинарных файлов с одинаковым названием (одинаковые программы), оболочка запустит тот, что находится раньше при сплошном чтении переменной PATH
+
+Временно добавить путь в PATH можно командой `export PATH=<путь к программе>:$PATH`, тогда путь будет добавлен в начало переменной, перед основным содержанием.
+
+Для постоянного добавления, используются файлы конфигурации оболочки `.bashrc, .zshrc` и файлы конфигурации системы `/etc/profile`.
+
+Для удобного поиска каталога программы в переменной PATH используется утилита `which`.
+
+```text
+$ which bash
+> /bin/bash
+```
+
+Другие переменные окружения - [[Environment Variables]]
+
+## Связанные заметки
+- [[Linux]]
diff --git a/90 Library/Linux/Environment Variables.md b/90 Library/Linux/Environment Variables.md
new file mode 100644
index 0000000..5034e8c
--- /dev/null
+++ b/90 Library/Linux/Environment Variables.md
@@ -0,0 +1,35 @@
+---
+status: stable
+type: concept
+tags:
+ - os
+ - linux
+created: 2025-12-17
+updated: 2026-05-07
+title: Environment Variables
+---
+
+# Environment Variables
+Переменные окружения в Linux - это именованные переменные, содержащие значения, определяющие характер работы программ и процессов во время работы системы. Они хранят в себе настройки, информацию о пользователе и др.информацию, которая может потребоваться в ходе работы.
+
+Каждая переменная имеет имя и значение, записываются в таком формате: `NAME=VALUE` При запуске нового процесса, большинство переменных наследуются от родительского процесса.
+
+**Основные переменные:**
+
+|Name|Value|
+|---|---|
+|PATH|Список каталогов для команд - [Command Path](Command Path)|
+|HOME|Домашняя директория текущего пользователя (~)|
+|USER|Имя текущего пользователя|
+|SHELL|Оболочка по умолчанию для тек.пользователя|
+|LANG|Язык интерфейса (локализация)|
+|PWD|Текущая рабочая директория (`pwd`)|
+|Для просмотра всех доступных переменных окружения, используется утилита `env`/`printenv`||
+
+Для задания новой переменной окружения, используется синтаксис: `export NAME=VALUE` - для текущей сессии. `echo 'export NAME=VALUE' >> ~/.bashrc` - для текущего пользователя на постоянной основе.
+
+## Связанные заметки
+- [[Images, Dockerfile - Docker]] — инструкция `ENV` в Dockerfile задаёт переменные окружения внутри контейнера; тот же механизм, что `export` в Linux
+
+## Связанные заметки
+- [[Linux]]
diff --git a/90 Library/Linux/File Permissions.md b/90 Library/Linux/File Permissions.md
new file mode 100644
index 0000000..9931e67
--- /dev/null
+++ b/90 Library/Linux/File Permissions.md
@@ -0,0 +1,71 @@
+---
+status: stable
+type: concept
+tags:
+ - os
+ - linux
+created: 2025-12-17
+updated: 2026-05-07
+title: File Permissions
+---
+
+# File Permissions
+В системах Linux права и привилегии присваиваются файлам и каталогам в виде разрешений. Эти разрешения указывают, кто может _читать_, _писать_ или _выполнять_ (запустить) их. В Linux существует три типа пользователей: **владельцы**, **группы** и **другие**, которые могут иметь другой набор разрешений.
+
+**Права (permissions)** — указывают, кто и что может делать с файлом или директорией:
+
+- `r` (read) — чтение содержимого файла или просмотр списка файлов в директории.
+- `w` (write) — запись/изменение содержимого файла или добавление/удаление файлов в директории.
+- `x` (execute) — запуск файла как программы или возможность "войти" в директорию (`cd`).
+
+**Категории пользователей:**
+
+- **owner (u)** — владелец файла.
+- **group (g)** — члены группы, связанной с файлом.
+- **others (o)** — все остальные пользователи.
+
+`-rwxr--r-- 1 root root 4096 Jan 1 12:00 filename`
+
+- → это обычный файл (d будет означать директорию).
+- rwx → владелец может читать, писать, исполнять.
+- r-- → группа может только читать.
+- r-- → остальные могут только читать.
+
+## Основные Команды
+
+- `chmod` → изменение прав (permissions).
+
+```bash
+chmod 600
+chmod o+r -R
+```
+
+- `chown` → изменение владельца (owner).
+
+```bash
+chown
+chown :
+```
+
+- `chgrp` → изменение группы.
+
+```bash
+chgrp
+```
+
+## Особые Биты
+
+Кроме стандартных rwx есть **особые флаги**:
+
+- **SUID (set user ID,** `**s**`**)** — исполняемый файл запускается с правами владельца.
+ Пример: `/usr/bin/passwd` запускается с правами root, хотя ты обычный пользователь.
+- **SGID (set group ID)** — аналогично, но для группы. У директорий — новые файлы наследуют группу.
+- **Sticky bit (**`**t**`**)** — на директориях запрещает пользователям удалять чужие файлы. Классический пример: `/tmp`.
+
+## Связанные заметки
+- [[Volume - Docker]] — uid/gid и права доступа в Docker Volumes определяются Linux-правами; проблема "root как владелец" решается через userns-remap + chown
+- [[Modules - Ansible]] — модуль `user` управляет uid/gid; `file`/`copy` задают владельца и режим файлов через те же chmod/chown
+- [[Сегментация сети]] — принцип наименьших привилегий: на уровне ФС — rwx для owner/group/others; на уровне сети — VLAN для Admin/Employee/Guest
+
+## Связанные заметки
+- [[Linux]]
diff --git a/90 Library/Linux/Linux.md b/90 Library/Linux/Linux.md
new file mode 100644
index 0000000..4dd99de
--- /dev/null
+++ b/90 Library/Linux/Linux.md
@@ -0,0 +1,23 @@
+---
+status: stable
+type: moc
+tags:
+ - admin
+ - os
+ - linux
+created: 2025-12-17
+updated: 2026-05-07
+title: Linux
+---
+
+# Linux
+
+%% Begin Waypoint %%
+- [[Command Help]]
+- [[Command Path]]
+- [[Environment Variables]]
+- [[File Permissions]]
+- [[Redirects]]
+- [[Super-user]]
+
+%% End Waypoint %%
diff --git a/90 Library/Linux/Redirects.md b/90 Library/Linux/Redirects.md
new file mode 100644
index 0000000..bbc4f26
--- /dev/null
+++ b/90 Library/Linux/Redirects.md
@@ -0,0 +1,39 @@
+---
+status: stable
+type: concept
+tags:
+ - os
+ - linux
+created: 2025-12-17
+updated: 2026-05-07
+title: Redirects
+---
+
+# Redirects
+В системах на базе ядра Linux существуют 3 стандартных потока данных:
+
+1. stdin - стандартный поток ввода (с клавиатуры, например)
+2. stdout - стандартный поток вывода (вывод программы)
+3. stderr - стандартный поток ошибок
+
+Можно с ними работать, управляя данными в этих потоках. Например, вывод одной команды перевести на вход другой команды.
+
+- `>` — вывод stdout в файл (создаёт новый файл или перезаписывает существующий):
+ `ls > output.txt`.
+- `>>` — добавляет stdout к концу файла:
+ `echo "new" >> output.txt`.
+- `<` — перенаправляет stdin из файла:
+ `wc -l < file.txt`.
+- `2>` — вывод stderr в файл:
+ `ls nonexist 2> errors.txt`.
+- `2>&1` — объединяет потоки ошибок и вывода, часто с последующим перенаправлением:
+ `ls file1 file2 > result.txt 2>&1`.
+- `&>` — краткая запись для объединённого перенаправления stdout и stderr:
+ `command &> alloutput.txt`.
+
+**Pipeline**
+
+Существует понятие конвеера - перенаправление выхода предшевствующей команды на вход следующей: `ls | grep user`
+
+## Связанные заметки
+- [[Linux]]
diff --git a/90 Library/Linux/Super-user.md b/90 Library/Linux/Super-user.md
new file mode 100644
index 0000000..70502f4
--- /dev/null
+++ b/90 Library/Linux/Super-user.md
@@ -0,0 +1,27 @@
+---
+status: stable
+type: concept
+tags:
+ - os
+ - linux
+created: 2025-12-17
+updated: 2026-05-07
+title: Super-user
+---
+
+# Super-user
+Super-user (суперпользователь, root) в linux - это пользователь, обладающий всей полнотой власти и полномочий (все системы и данные полностью подчиняются суперпользователю).
+
+По _best prictice_, работать из под рута неправильно. Правильно, создать пользователя администратора и добавить его в группу _sudo_ (_wheel_ для RHEL).
+
+Утилиты для работы с рут-доступом:
+
+1. `sudo` - временное выполнение команды из под рута `sudo -i` - интерактивный доступ к рут-пользователю
+2. `su`/`su -` - переход к root. `su - user` - переход под юзера.
+
+## Связанные заметки
+- [[Docker - Дополнительные знания]] — "не запускать контейнер от root" — прямое применение принципа least privilege; rootless Podman реализует его на уровне демона
+- [[Modules - Ansible]] — `become: true` в Ansible — это sudo под капотом; позволяет выполнять задачи с привилегиями root
+
+## Связанные заметки
+- [[Linux]]
diff --git a/90 Library/Machine Learning/Backpropagation для многослойной нейронной сети.md b/90 Library/Machine Learning/Backpropagation для многослойной нейронной сети.md
new file mode 100644
index 0000000..c997915
--- /dev/null
+++ b/90 Library/Machine Learning/Backpropagation для многослойной нейронной сети.md
@@ -0,0 +1,184 @@
+---
+status: stable
+type: concept
+tags:
+ - machine-learning
+ - neural-networks
+ - backpropagation
+ - gradient-descent
+created: 2025-12-17
+updated: 2026-05-07
+title: Backpropagation для многослойной нейронной сети
+---
+
+# Backpropagation для многослойной нейронной сети
+
+Эта заметка обобщает [[Обратное распространение ошибки]] на [[Нейронные сети|нейронную сеть]] с произвольным числом слоёв. Подробный вывод для сети с одним скрытым слоем: [[Backpropagation для однослойного перцептрона]].
+
+## Обозначения
+
+Пусть сеть имеет $N$ слоёв с обучаемыми весами.
+
+- $r$ - номер слоя, $r=1,\dots,N$;
+- $i$ - номер нейрона в предыдущем слое;
+- $j$ - номер нейрона в текущем слое;
+- $y_i^{(r)}$ - выход нейрона $i$ слоя $r$;
+- $s_j^{(r)}$ - взвешенная сумма на входе нейрона $j$ слоя $r$;
+- $w_{ij}^{(r)}$ - вес от нейрона $i$ слоя $r-1$ к нейрону $j$ слоя $r$;
+- $\delta_j^{(r)}$ - локальная ошибка нейрона $j$ слоя $r$;
+- $\eta$ - скорость обучения (*learning rate*);
+- $d_j$ - целевое значение для выходного нейрона $j$.
+
+Для входного слоя можно считать:
+
+$$
+y_i^{(0)}=x_i
+$$
+
+## Шаг 1. Прямой проход
+
+На вход сети подаётся один обучающий пример. Сигналы распространяются от входного слоя к выходному.
+
+Для каждого слоя:
+
+$$
+s_j^{(r)}=\sum_i w_{ij}^{(r)}y_i^{(r-1)}
+$$
+
+$$
+y_j^{(r)}=F(s_j^{(r)})
+$$
+
+На выходе получаем предсказание сети:
+
+$$
+y_j^{(N)}
+$$
+
+## Шаг 2. Локальная ошибка выходного слоя
+
+Для квадратичной ошибки:
+
+$$
+E=\frac{1}{2}\sum_j(y_j^{(N)}-d_j)^2
+$$
+
+Локальная ошибка выходного слоя:
+
+$$
+\delta_j^{(N)}
+=
+(y_j^{(N)}-d_j)F'(s_j^{(N)})
+$$
+
+Если в конспекте уже используется запись $y_j'$, то это то же самое:
+
+$$
+y_j'=F'(s_j^{(N)})
+$$
+
+Тогда:
+
+$$
+\delta_j^{(N)}=(y_j^{(N)}-d_j)y_j'
+$$
+
+## Шаг 3. Локальная ошибка скрытых слоёв
+
+Для всех скрытых слоёв ошибка считается справа налево:
+
+$$
+r=N-1,N-2,\dots,1
+$$
+
+Формула:
+
+$$
+\delta_i^{(r)}
+=
+F'(s_i^{(r)})
+\sum_j
+\delta_j^{(r+1)}w_{ij}^{(r+1)}
+$$
+
+Смысл: ошибка нейрона слоя $r$ складывается из ошибок следующего слоя, взвешенных весами связей, и умножается на производную активации текущего нейрона.
+
+## Шаг 4. Градиенты по весам
+
+Градиент веса слоя $r$:
+
+$$
+\frac{\partial E}{\partial w_{ij}^{(r)}}
+=
+\delta_j^{(r)}y_i^{(r-1)}
+$$
+
+То есть градиент веса равен локальной ошибке нейрона, в который входит вес, умноженной на выход предыдущего нейрона.
+
+## Шаг 5. Изменение весов
+
+Изменение веса:
+
+$$
+\Delta w_{ij}^{(r)}
+=
+-\eta\delta_j^{(r)}y_i^{(r-1)}
+$$
+
+Обновление веса:
+
+$$
+w_{ij}^{(r)}(t+1)
+=
+w_{ij}^{(r)}(t)
++
+\Delta w_{ij}^{(r)}(t)
+$$
+
+Или сразу через градиентный спуск:
+
+$$
+w_{ij}^{(r)}(t+1)
+=
+w_{ij}^{(r)}(t)
+-
+\eta
+\frac{\partial E}{\partial w_{ij}^{(r)}}
+$$
+
+## Шаг 6. Проверка сходимости
+
+После обновления весов алгоритм повторяется для следующих обучающих примеров.
+
+Типовые условия остановки:
+
+- достигнут лимит эпох;
+- ошибка стала меньше заданного порога;
+- ошибка перестала заметно уменьшаться;
+- норма градиента стала достаточно малой.
+
+## Короткая схема
+
+1. Прямой проход: посчитать все $s^{(r)}$ и $y^{(r)}$.
+2. Посчитать $\delta^{(N)}$ для выходного слоя.
+3. Для $r=N-1,\dots,1$ посчитать $\delta^{(r)}$.
+4. Для каждого слоя найти $\frac{\partial E}{\partial w_{ij}^{(r)}}=\delta_j^{(r)}y_i^{(r-1)}$.
+5. Обновить веса.
+6. Повторять до остановки.
+
+## Интерпретация
+
+Ошибка течёт от выхода к входу. На каждом слое она:
+
+- проходит назад через веса следующего слоя;
+- суммируется по всем путям влияния;
+- умножается на производную функции активации текущего нейрона.
+
+Так для каждого слоя получается своя локальная ошибка $\delta^{(r)}$, а дальше градиент каждого веса считается локально: ошибка принимающего нейрона умножается на выход отправляющего нейрона.
+
+## Связанные заметки
+
+- [[Обратное распространение ошибки]]
+- [[Backpropagation для однослойного перцептрона]]
+- [[Нейронные сети]]
+- [[Линейные модели]]
diff --git a/90 Library/Machine Learning/Backpropagation для однослойного перцептрона.md b/90 Library/Machine Learning/Backpropagation для однослойного перцептрона.md
new file mode 100644
index 0000000..55662f6
--- /dev/null
+++ b/90 Library/Machine Learning/Backpropagation для однослойного перцептрона.md
@@ -0,0 +1,242 @@
+---
+status: stable
+type: concept
+tags:
+ - machine-learning
+ - neural-networks
+ - backpropagation
+created: 2025-12-17
+updated: 2026-05-08
+title: Backpropagation для однослойного перцептрона
+---
+
+# Backpropagation для однослойного перцептрона
+
+Эта заметка фиксирует математический вывод градиентов для алгоритма [[Обратное распространение ошибки]] на примере сети с одним скрытым слоем. Общая схема для произвольного числа слоёв вынесена в [[Backpropagation для многослойной нейронной сети]].
+
+Bias для краткости не записан: его градиент считается так же, как градиент веса при входе, равном $1$.
+
+## Обозначения
+
+> [!note] Обозначения
+> $x_j$ - $j$-й вход
+> $w_{ij}^{(1)}$ - вес от входа $j$ к скрытому нейрону $i$
+> $w_{li}^{(2)}$ - вес от скрытого нейрона $i$ к выходу $l$
+> $S_i^{(1)}$ - взвешенная сумма на входе нейрона $i$ в первом слое
+> $u_i$ - выход нейрона $i$ первого слоя после активации
+> $S_l^{(2)}$ - взвешенная сумма на входе нейрона $l$ во втором слое
+> $y_l$ - выход нейрона $l$ второго слоя
+> $d_l$ - истинное значение
+> $F$ - функция активации
+> $\delta$ - локальная ошибка нейрона
+
+## Прямой проход
+
+$$
+\begin{align*}
+S_i^{(1)} &= \sum\limits_{j=1}^{n}w_{ij}^{(1)}x_j \\
+u_i &= F(S_i^{(1)}) \\
+S_l^{(2)} &= \sum\limits_{i=1}^{k}w_{li}^{(2)}u_i \\
+y_l &= F(S_l^{(2)}) \\
+E &= \frac{1}{2}\sum\limits_{l=1}^{m}(y_l-d_l)^2
+\end{align*}
+$$
+
+## Обратный проход для выходного слоя
+
+Для веса $w_{li}^{(2)}$ используется правило цепочки:
+
+$$
+\frac{\partial E}{\partial w_{li}^{(2)}} =
+\frac{\partial E}{\partial y_l}
+\cdot
+\frac{\partial y_l}{\partial S_l^{(2)}}
+\cdot
+\frac{\partial S_l^{(2)}}{\partial w_{li}^{(2)}}
+$$
+
+Компоненты производной:
+
+$$
+\frac{\partial E}{\partial y_l}=y_l-d_l
+$$
+
+$$
+\frac{\partial y_l}{\partial S_l^{(2)}}=F'(S_l^{(2)})
+$$
+
+$$
+\frac{\partial S_l^{(2)}}{\partial w_{li}^{(2)}}=u_i
+$$
+
+Итог:
+
+$$
+\frac{\partial E}{\partial w_{li}^{(2)}}=(y_l-d_l)*F'(S_l^{(2)})*u_i
+$$
+
+Введём локальную ошибку выходного нейрона:
+
+$$
+\delta_l^{(2)}=(y_l-d_l)*F'(S_l^{(2)})
+$$
+
+Тогда:
+
+$$
+\frac{\partial E}{\partial w_{li}^{(2)}}=\delta_l^{(2)}u_i
+$$
+
+## Обратный проход для скрытого слоя
+
+Теперь нужна производная ошибки по весу первого слоя:
+
+$$
+\frac{\partial E}{\partial w_{ij}^{(1)}}
+$$
+
+Вес $w_{ij}^{(1)}$ влияет на $E$ не напрямую, а через все выходные нейроны:
+
+$$
+w_{ij}^{(1)} \rightarrow u_i \rightarrow y_l \rightarrow E
+$$
+
+По правилу цепочки нужно просуммировать вклады всех путей от скрытого нейрона $i$ к выходным нейронам:
+
+$$
+\frac{\partial E}{\partial w_{ij}^{(1)}} =
+\sum\limits_{l=1}^{m}
+\frac{\partial E}{\partial y_l}
+\cdot
+\frac{\partial y_l}{\partial u_i}
+\cdot
+\frac{\partial u_i}{\partial w_{ij}^{(1)}}
+$$
+
+Первый множитель:
+
+$$
+\frac{\partial E}{\partial y_l}=y_l-d_l
+$$
+
+Производная выхода $y_l$ по выходу скрытого нейрона $u_i$:
+
+$$
+\frac{\partial y_l}{\partial u_i}
+=
+\frac{\partial y_l}{\partial S_l^{(2)}}
+\cdot
+\frac{\partial S_l^{(2)}}{\partial u_i}
+$$
+
+Так как:
+
+$$
+S_l^{(2)}=\sum\limits_{i=1}^{k}w_{li}^{(2)}u_i
+$$
+
+то:
+
+$$
+\frac{\partial y_l}{\partial u_i}
+=
+F'(S_l^{(2)})*w_{li}^{(2)}
+$$
+
+Производная выхода скрытого нейрона $u_i$ по весу $w_{ij}^{(1)}$:
+
+$$
+\frac{\partial u_i}{\partial w_{ij}^{(1)}}
+=
+\frac{\partial u_i}{\partial S_i^{(1)}}
+\cdot
+\frac{\partial S_i^{(1)}}{\partial w_{ij}^{(1)}}
+$$
+
+Так как:
+
+$$
+S_i^{(1)}=\sum\limits_{j=1}^{n}w_{ij}^{(1)}x_j
+$$
+
+то:
+
+$$
+\frac{\partial u_i}{\partial w_{ij}^{(1)}}
+=
+F'(S_i^{(1)})*x_j
+$$
+
+Собираем:
+
+$$
+\frac{\partial E}{\partial w_{ij}^{(1)}} =
+\sum\limits_{l=1}^{m}
+(y_l-d_l)*
+F'(S_l^{(2)})*
+w_{li}^{(2)}*
+F'(S_i^{(1)})*
+x_j
+$$
+
+Вводим локальную ошибку скрытого нейрона:
+
+$$
+\delta_i^{(1)}
+=
+\sum\limits_{l=1}^{m}
+(y_l-d_l)*
+F'(S_l^{(2)})*
+w_{li}^{(2)}*
+F'(S_i^{(1)})
+$$
+
+Или через ошибку выходного слоя $\delta_l^{(2)}$:
+
+$$
+\delta_i^{(1)}
+=
+F'(S_i^{(1)})*
+\sum\limits_{l=1}^{m}
+\delta_l^{(2)}*
+w_{li}^{(2)}
+$$
+
+Тогда:
+
+$$
+\frac{\partial E}{\partial w_{ij}^{(1)}}=\delta_i^{(1)}x_j
+$$
+
+## Итоговые формулы
+
+Для слоя $r$ общий шаблон такой:
+
+$$
+\frac{\partial E}{\partial w_{ij}^{(r)}}=\delta_i^{(r)}a_j^{(r-1)}
+$$
+
+где $a_j^{(r-1)}$ - выход предыдущего слоя. Для первого слоя $a_j^{(0)}=x_j$, для второго слоя $a_i^{(1)}=u_i$.
+
+Для выходного слоя:
+
+$$
+\delta_l^{(2)}=(y_l-d_l)F'(S_l^{(2)})
+$$
+
+Для скрытого слоя:
+
+$$
+\delta_i^{(1)}
+=
+F'(S_i^{(1)})
+\sum\limits_{l=1}^{m}
+\delta_l^{(2)}w_{li}^{(2)}
+$$
+
+## Связанные заметки
+
+- [[Обратное распространение ошибки]]
+- [[Backpropagation для многослойной нейронной сети]]
+- [[Нейронные сети]]
+- [[Линейные модели]]
diff --git a/90 Library/Machine Learning/Алгоритм обучения сети Кохонена.md b/90 Library/Machine Learning/Алгоритм обучения сети Кохонена.md
new file mode 100644
index 0000000..c0d1114
--- /dev/null
+++ b/90 Library/Machine Learning/Алгоритм обучения сети Кохонена.md
@@ -0,0 +1,101 @@
+---
+status: seed
+type: concept
+tags:
+ - machine-learning
+ - neural-networks
+ - clustering
+ - self-organizing-maps
+created: 2026-05-07
+updated: 2026-05-14
+title: Алгоритм обучения сети Кохонена
+---
+
+# Алгоритм обучения сети Кохонена
+
+**Алгоритм обучения сети Кохонена** - процедура самообучения, при которой нейроны топологической карты постепенно становятся прототипами групп похожих входных объектов. Алгоритм относится к [[Нейронная сеть Кохонена|сетям Кохонена]] и связан с задачами [[Кластерный анализ|кластеризации]].
+
+## Общая схема
+
+1. Инициализировать веса нейронов небольшими случайными значениями.
+2. Подать на вход очередной обучающий объект.
+3. Найти нейрон-победитель, чей вектор весов лучше всего соответствует входному вектору.
+4. Скорректировать веса нейрона-победителя и, в классической SOM, нейронов из его окрестности.
+5. Повторять предъявление объектов до стабилизации карты или достижения заданного числа эпох.
+
+Базовая формула корректировки веса:
+
+$$
+w_{ij}(t)=w_{ij}(t-1)+\alpha(x_i-w_{ij}(t-1))
+$$
+
+где:
+
+- $w_{ij}$ - вес связи между входом $i$ и нейроном $j$;
+- $x_i$ - значение входного признака;
+- $\alpha$ - скорость обучения;
+- $t$ - номер шага обучения.
+
+## Выбор нейрона-победителя
+
+Нейрон-победитель можно выбирать через меру близости входного вектора и вектора весов нейрона.
+
+### Через скалярное произведение
+
+Если векторы нормализованы, близость можно оценивать скалярным произведением:
+
+$$
+S_j=\sum\limits_{i=1}^{m}x_iw_{ij}=||x||\cdot||w^j||\cdot cos(\phi)
+$$
+
+Побеждает нейрон с максимальным значением $S_j$.
+
+### Через евклидово расстояние
+
+Чаще победителем считают нейрон с минимальным расстоянием до входного объекта:
+
+$$
+D_j=\sqrt{\sum\limits_{i=1}^{m}(x_i-w_{ij})^2}
+$$
+
+где $j$ - индекс нейрона, $i$ - индекс входного признака, $m$ - размерность входного вектора.
+
+Такой способ напрямую связан с заметкой [[Расстояние между объектами]].
+
+## Нормализация
+
+Перед обучением часто нормализуют входные данные и начальные веса, чтобы признаки с крупным масштабом не доминировали при выборе победителя.
+
+Нормализация входного вектора:
+
+$$
+x_j=\frac{x_j}{\sqrt{\sum\limits_{l=1}^{m}x_l^2}}
+$$
+
+Нормализация весов:
+
+$$
+w_{ij}=\frac{w_{ij}}{\sqrt{\sum\limits_{l=1}^{k}w_{lj}^2}}
+$$
+
+## Отличие от K-means
+
+Алгоритм похож на [[Итерационная классификация. Метод K-средних (K-means)|K-means]] тем, что объект влияет на ближайший прототип. Главное отличие SOM - наличие топологической карты: обновляется не только победитель, но и его соседи, поэтому карта сохраняет отношения близости между областями данных.
+
+## Метод выпуклой комбинации
+
+Случайная инициализация весов может ухудшить качество карты. Плотные классы могут слиться, а близкие образы одного класса - раздробиться на дополнительные подклассы.
+
+Один из способов смягчить эту проблему - метод выпуклой комбинации. Идея в том, что нормализованные входные образы сначала искусственно сближаются между собой, а затем постепенно возвращаются к исходному виду.
+
+Для этого используют коэффициент $\alpha(t)$, который в процессе обучения изменяется от $0$ до $1$. В начале обучения сеть видит почти одинаковые образы и формирует грубую структуру карты. Затем входы всё сильнее приближаются к исходным данным, и карта уточняет разделение классов.
+
+Этот приём снижает риск того, что начальные случайные веса слишком рано закрепят неудачное разбиение данных.
+
+## Связанные заметки
+
+- [[Нейронная сеть Кохонена]]
+- [[Нейронные сети]]
+- [[Кластерный анализ]]
+- [[Расстояние между объектами]]
+- [[Итерационная классификация. Метод K-средних (K-means)]]
diff --git a/90 Library/Machine Learning/Линейные модели.md b/90 Library/Machine Learning/Линейные модели.md
new file mode 100644
index 0000000..a14a2f3
--- /dev/null
+++ b/90 Library/Machine Learning/Линейные модели.md
@@ -0,0 +1,2973 @@
+---
+status: processing
+type: concept
+tags:
+ - machine-learning
+ - linear-models
+ - regression
+ - classification
+created: 2026-02-26
+updated: 2026-05-07
+title: Линейные модели
+---
+
+# Линейные модели
+
+## Общее представление о линейных моделях
+
+**Линейные модели** являются одним из наиболее фундаментальных и широко используемых типов моделей машинного обучения. Они основаны на идее, что взаимосвязь между фичами и таргетом является **линейной**.
+
+Для случая классификации предположение о линейной зависимости означает, что классы являются линейно-разделимыми, то есть в пространстве признаков можно провести плоскость, которая отделит один класс от другого.
+
+
+
+Подробнее про линейную разделимость поговорим позже.
+
+Существует несколько различных типов линейных моделей, но наиболее распространенными являются линейная регрессия и логистическая регрессия.
+
+* Линейная регрессия используется для прогнозирования непрерывных значений, то есть для решения задачи регрессии.
+
+* Логистическая регрессия используется для классификации
+
+
+
+Этот урок мы посвятим рассмотрению модели линейной регрессии, а в следующем поговорим о логистической.
+
+## Линейная Регрессия
+
+### Постановка Задачи
+
+Будем рассматривать задачу регрессии:
+
+Пусть дана выборка пар объектов и ответов к ним:
+
+$$Q = \{(x_i, y_i)\}_{i=1}^n =\{(x_1, y_1), (x_2, y_2), ..., (x_n, y_n)\}$$
+
+где
+* $x_i = (x_{i1}, x_{i2}, ..., x_{im}), x_i ∈ X, X \subset \mathbb{R} ^{m}$ - множество объектов
+* $y_i ∈ Y, Y \subset \mathbb{R}$ - множество целевой переменной
+* $m$ - количество признаков
+* $n$ - размер выборки
+
+Необходимо построить модель, восстанавливающую зависимость $y$ от $x$:
+$$y=f(x)$$
+
+### Общая Идея
+
+Если исходить из предположения, что зависимость между $y$ и $x$ является линейной, то в качестве модели $f(x)$ можно использовать линейную функцию вида:
+
+$$f(x) = \beta_0 + \beta_1 x_1 + \beta_2 x_2 + ... + \beta_m x_m$$
+
+То есть прогнозы модели $\hat{y}$ будут строиться на основе этой функции:
+
+$$\hat{y} = f(x)= \beta_0 + \beta_1 x_{1} + \beta_2 x_{2} + ... + \beta_m x_{m} = \beta_0 + \sum_{j=1}^m \beta_j \cdot x_{j}$$
+
+где
+* ${x} = (x_{1}, x_{2}, ..., x_{m})$ - признаковое описание объекта
+* ${y}$ - значение таргета для объекта
+* $\hat{y}$ - прогноз модели для объекта
+* $f$ - функция модели, принимающая на вход объект и возвращающая прогноз
+* $\beta_0, \beta_1, \beta_2, ..., \beta_m$ - **коэффициенты/веса/параметры** линейной регрессии, коэффициент $\beta_0$ часто еще называется **свободным членом или смещением (bias)** (не путать с bias из теории про смещение и разброс модели, это другое)
+
+> **Модель линейной регрессии** представляет собой метод машинного обучения, который использует линейную функцию для прогнозирования непрерывного значения таргета на основе одной или нескольких признаков (фич).
+
+Рассмотрим эту формулировку на конкретном примере датасета.
+
+```python
+import pandas as pd
+import numpy as np
+import plotly.express as px
+```
+
+```python
+data = pd.read_csv('https://raw.githubusercontent.com/merion-networks/data-science-course/refs/heads/main/unconv.csv')
+data.head()
+```
+
+```python
+X = data.drop('Prod', axis=1)
+y = data['Prod']
+
+X.head()
+```
+
+```python
+y.head()
+```
+
+Признаки в данных:
+
+
+В нашем случае имеется 1 таргет и 7 фичей. Обозначим их как:
+
+* $x_{1}$ - Well
+* $x_{2}$ - Por
+* $x_{3}$ - Perm
+* $x_{4}$ - AI
+* $x_{5}$ - Brittle
+* $x_{6}$ - TOC
+* $x_{7}$ - VR
+* $y$ - Prod
+
+Тогда наша модель линейной регрессии будет иметь вид:
+
+$$\hat{y} = \beta_0 + \beta_1 x_{1} + \beta_2 x_{2} + \beta_3 x_{3} + \beta_4 x_{4} + \beta_5 x_{5} + \beta_6 x_{6} + \beta_7 x_{7}$$
+
+Например, для $i=1$ (строка с индексом 0) получим:
+
+$$\hat{y_1} = \beta_0 + \beta_1 \cdot 1 + \beta_2 \cdot 12.08 + \beta_3 \cdot 2.92 + \beta_4 \cdot 2.8 + \beta_5 \cdot 81.40 + \beta_6 \cdot 1.16 + \beta_7 \cdot 2.31$$
+
+Для $i=2$ (строка с индексом 1) получим:
+
+$$\hat{y_2} = \beta_0 + \beta_1 \cdot 1 + \beta_2 \cdot 12.38 + \beta_3 \cdot 3.53 + \beta_4 \cdot 3.22 + \beta_5 \cdot 46.17 + \beta_6 \cdot 0.89 + \beta_7 \cdot 1.88$$
+
+и так далее...
+
+**Цель** - найти такие коэффициенты $\beta_i$, чтобы ответы модели $\hat{y_i}$ были как можно ближе к истинным ответам $y_i$.
+
+О том как их искать и что значит "как можно ближе" поговорим далее.
+
+### Геометрическая Интерпретация
+
+Рассмотрим частные случаи линейной регрессии и поговорим о ее геометрическом смысле.
+
+**2D вариант**
+
+Строим модель с одним признаком - по известной пористости скважин предсказывать неизвестную выработку газа.
+
+Зависимость целевого признака от фактора представлена на диаграмме рассеяния.
+
+
+
+Уравнение модели линейной регрессии будет иметь вид:
+
+$$\hat{y} = \beta_0 + \beta_1 x$$
+
+Представим, что мы нашли коэффициенты $\beta_0$ и $\beta_1$. Пусть коэффициенты составляют:
+
+$$\beta_0 = -2.94, \beta_1=287.7$$
+
+Тогда уравнение примет вид:
+
+$$\hat{y} = -2.94 + 287.7 \cdot x$$
+
+Геометрически данная запись задает уравнение прямой, которая пересекает ось ординат ($y$) в точке -2.94 (при $x=0$), а тангенс наклона прямой относительно оси $x$ равен 287.7 ($tg\alpha = 287.7$).
+
+Если подставлять значения конкретные значения пористости в модель, можно построить прямую, которая описывает исходную зависимость:
+
+
+
+```python
+beta_0 = -2.94
+beta_1 = 287
+
+y_hat = beta_0 + beta_1 * X['Por']
+
+y_hat
+```
+
+**3D вариант**
+
+Теперь представим, что у нас не один фактор, а два. Например, помимо пористости скважины, мы дополнительно знаем ещё и о её хрупкости в процентах. То есть у нас теперь есть два фактора: $x_1$ — пористость и $x_2$ — хрупкость.
+
+Можно отобразить зависимость добычи газа от этих факторов в трёхмерном пространстве в виде диаграммы рассеяния:
+
+
+
+В таком случае в выражение для модели добавится ещё одна переменная и соответствующий ей коэффициент:
+
+$$\hat{y} = \beta_0 + \beta_1 x_{1} + \beta_2 x_{2}$$
+
+Опять же представим, что мы нашли подходящие значения коэффициентов $\beta_i$, например:
+
+$$\hat{y} = -2000 + 302.3 x_{1} + 31.8 x_{2} $$
+
+Геометрически данное уравнение описывает плоскость в трёхмерном пространстве с осями $x_1$ и $x_2$, коэффициент $\beta_0$ — смещение плоскости по вертикальной оси, а коэффициенты $\beta_1$ и $\beta_2$ — коэффициенты (тангенсы угла) наклона этой плоскости к осям $x_1$ и $x_2$.
+
+
+
+```python
+beta_0 = -2000
+beta_1 = 302.3
+beta_2 = 31.8
+
+y_hat = beta_0 + beta_1 * X['Por'] + beta_2 * X['Brittle']
+y_hat
+```
+
+**MD вариант**
+
+А что если факторов не два, а больше: 3, 15, 100?
+
+Тут-то мы и приходим к общему виду модели линейной регрессии, который вводили в самом начале:
+
+$$\hat{y} = \beta_0 + \sum_{j=1}^m \beta_j \cdot x_{j}$$
+
+В геометрическом смысле данное уравнение описывает плоскость в $(m+1)$-мерном пространстве ($m$ факторов + $1$ целевой признак отложены по осям координат). Такую плоскость называют гиперплоскостью.
+
+### Векторно-матричная Запись Модели
+
+Запись модели линейной регрессии $f(x)$:
+
+$$\hat{y} = f(x) = \beta_0 + \beta_1 x_{1} + \beta_2 x_{2} + ... + \beta_m x_{m} = \beta_0 + \sum_{j=1}^m \beta_j \cdot x_{j}$$
+
+можно значительно упростить, если обозначить коэффициенты и признаки как вектора:
+* $x = (x_{1}, x_{2}, ..., x_{m})$ - вектор-описание $i$-ого объекта
+* $\beta = (\beta_1, \beta_2, ..., \beta_m)^T$ - вектор коэффициентов
+
+То запись можно свести к виду скалярного произведения векторов:
+
+$$\hat{y} = \beta_0 + \beta \cdot x$$
+
+Можно пойти дальше и еще больше сократить запись, добавив $\beta_0$ в вектор коэффициентов, а в вектор объекта добавить $1$:
+
+* $x = (1, x_{1}, x_{2}, ..., x_{m})$ - вектор-описание объекта
+* $\beta = (\beta_0, \beta_1, \beta_2, ..., \beta_m)^T$ - вектор коэффициентов
+
+Тогда:
+
+$$\hat{y} = \beta \cdot x = \beta_0 \cdot 1 + \beta_1 \cdot x_{1} + \beta_2 \cdot x_{2} + ... + \beta_m \cdot x_{m}$$
+
+Такая запись называется **векторным представлением модели линейной регрессии**.
+
+Если вспомнить, что в датасете $n$ объектов, то можно расписать уравнение регрессии для всего датасета,получим систему:
+
+$$\begin{equation} \begin{cases}
+\hat{y_1} = \beta_0 + \beta_1 x_{11} + \beta_2 x_{12} + ... + \beta_m x_{1m} & \\
+\hat{y_2}= \beta_0 + \beta_1 x_{21} + \beta_2 x_{22} + ... + \beta_m x_{2m} & \\
+\cdots \\
+\hat{y_n} = \beta_0 + \beta_1 x_{n1} + \beta_2 x_{n2} + ... + \beta_m x_{nm} &
+\end{cases} \end{equation}$$
+
+Если обозначить:
+$$X=\begin{pmatrix}
+1 & x_{11} & x_{12} & ... & x_{1m} \\
+1 & x_{21} & x_{22} & ... & x_{2m} \\
+\vdots & \vdots & \vdots & \ddots & \vdots \\
+1 & x_{n1} & x_{n2} & ... & x_{nm}
+\end{pmatrix}$$
+
+$$\hat{y}=\begin{pmatrix} \hat{y_1}\\ \hat{y_2}\\ ...\\ \hat{y_n} \end{pmatrix}$$
+
+$$\beta = \begin{pmatrix} \beta_0 \\ \beta_1 \\ \beta_2 \\ ... \\ \beta_m\end{pmatrix}$$
+
+То исходную запись можно перезаписать в матричном виде:
+
+$$\hat{y} = X \cdot {\beta}$$
+
+где:
+
+* $X$ - матрица признаков размера $n\times (m+1)$, где $n$ - количество объектов, а $m$ - количество признаков
+* $\beta$ - вектор коэффициентов размера $(m+1)\times 1$
+* $\hat{y}$ - вектор предсказаний модели размера $n\times 1$
+
+Данная запись называется векторно-матричной записью линейной регрессии и используется чаще всего в прикладном программировании модели.
+
+
+
+Пример:
+
+```python
+# Создаём Вектор Из Единиц
+ones = np.ones(X.shape[0])
+# Добавляем Вектор К Таблице Первым Столбцом
+X_ = np.column_stack([ones, X])
+
+X_.round(1)
+```
+
+```python
+# Вектор-столбец Коэффициентов
+beta = np.array([[-1232], [0], [230], [116], [-365], [25], [-78], [785]])
+
+print(X_.shape)
+print(beta.shape)
+
+# Строим Прогноз
+y_hat = X_ @ beta
+# y_hat
+```
+
+## Метод Наименьших Квадратов (OLS). MSE
+
+> Ключевой вопрос на который нам нужно ответить - как найти наилучшие коэффициенты $\beta$ для нашей модели?
+
+Прямую же можно провести как угодно. Вот например несколько прямых, построенных с различными случайными коэффициентами:
+
+
+
+
+
+
+Для ответа на этот вопрос, нам нужно сначала обговорить критерий, по которому мы будем измерять понятие "наилучшие".
+
+Говоря простым языком, мы должны научиться измерять качество модели и минимизировать её ошибку, как-то меняя обучаемые параметры. В случае линейной модели обучаемые параметры — это веса $\beta$.
+
+> Функция, показывающая как часто модель ошибается называется функцией потерь **(функцией ошибки) или просто лоссом (loss function)** и мы будем ее обозначать как $L$.
+
+В качестве ошибки мы можем просто брать разницу между истинными ответами $y$ и предсказаниями модели $\hat{y}$ была минимальна. Чтобы не учитывать знак расхождения, можно взять модуль разницы между истинным значением и предсказанным
+
+$$e_i = |y_i-\hat{y_i}|$$
+
+Иллюстрация для понимания:
+
+
+
+Однако, тут выясняется, что у модуля производная существует не везде (функция не дифференцируема в 0). Поэтому вместо модуля используют квадрат.
+
+$$e_i = (y_i-\hat{y_i})^2$$
+
+Ошибку на одном примере рассматривать смысла нет, минимизировать надо сумму ошибок по всей обучающей выборке. Тогда мы получим функцию потерь под названием **суммарная квадратичная ошибка (Sum Squared Error, SSE)**:
+
+$$L(y, \hat{y}) = SSE = \sum_{i=1}^n e_i^2 = \sum_{i=1}^n (y_i-\hat{y_i})^2$$
+
+Часто на практике используют не просто сумму ошибок, а среднюю ошибку по всему датасету, хотя на результаты сходимости алгоритмов это никак не влияет. В таком случае функции потерь называются **средняя квадратичная ошибка (Mean Squared Error, MSE)**:
+
+$$L(y, \hat{y}) = MSE = \frac{1}{n} \sum_{i=1}^n e_i^2 = \frac{1}{n} \sum_{i=1}^n (y_i-\hat{y_i})^2$$
+
+
+Можно переписать данную формулу в матричный вид, ведь $y$ и $\hat{y}$ - это вектора-столбцы, а значит наше выражение - это просто длина вектора разности $y$ и $\hat{y}$ в квадрате.
+
+$$L(y, \hat{y}) = \frac{1}{n} ||y - \hat{y}||^2$$
+
+К тому же $\hat{y}$ - это функция, зависящая от $X$ и $\beta$:
+
+$$L(X, y, \beta) = ||y - X \cdot {\beta}||^2$$
+
+Тогда задача сводится к оптимизации функционала:
+
+$$L(X, y, \beta)= \frac{1}{n} ||y - X \cdot {\beta}||^2 \rightarrow \min_{\beta}$$
+
+
+> Запись $L(X, y, \beta)$ означает, что функция потерь зависит от выборки $(X, y)$ и параметров модели. Однако, выборка то у нас одна и та же. Поэтому в целях экономии места и упрощения формул, будем писать, что функция потерь зависит только от параметров модели $L(\beta)$.
+
+Оптимальными будут считаться такие параметры $\beta_{opt}$, которые дают минимум функции потерь:
+
+$$\beta_{opt} = \arg \min_{\beta} L(\beta)$$
+
+Рассмотрим примеры: возьмем 3 разных варианта коэффициентов $\beta$ и рассчитаем MSE
+
+```python
+def mse(y, y_hat):
+ n = len(y)
+ return ((y - y_hat) ** 2).sum() * 1 / n
+
+# Варианты Коэффициентов
+beta_1 = np.array([[-1232], [0], [230], [116], [-365], [25], [-78], [785]])
+beta_2 = np.array([[-849], [50], [155], [67], [36], [0.17], [-89], [800]])
+beta_3 = np.array([[0], [10], [245], [352], [-843], [53], [-36], [56]])
+
+# Прогнозы
+y_hat_1 = X_ @ beta_1
+y_hat_2 = X_ @ beta_2
+y_hat_3 = X_ @ beta_3
+
+# Считаем Mse
+print(mse(y.values, y_hat_1))
+print(mse(y.values, y_hat_2))
+print(mse(y.values, y_hat_3))
+```
+
+Полным перебором коэффициенты искать нам не придется. Для этого есть математические методы поиска минимума функции.
+
+> Метод для поиска коэффициентов регрессии, основанный на минимизации суммы квадратов ошибок (отклонений) был изобретен Гауссом ещё в 1795 году и позднее был назван **методом наименьших квадратов (МНК)**. В английской литературе часто можно встретить аббревиатуру **OLS (Ordinary Least Squares)**.
+
+→ Метод наименьших квадратов является очень важным методом, использующимся во многих прикладных задачах эконометрики, физики, статистики. Метод нашел свое применение во многих моделях машинного обучения, в том числе линейных моделей.
+
+→ Существует [теорема Гаусса-Маркова](https://ru.wikipedia.org/wiki/Теорема_Гаусса_—_Маркова), которая говорит о том, что, если выполнены все условия теоремы, МНК всегда находит единственно оптимальные параметры.
+
+**Примеры для понимания**
+
+В простейшей ситуации, когда в модели используется всего 1 параметр $\beta$ и в данных есть только 1 признак мы получим:
+
+$$\hat{y} = x \cdot \beta $$
+
+$$L(\beta) = \frac{1}{n} \sum_{i=1}^n (y_i- x_i\cdot \beta)^2$$
+
+Эта функция задает параболу:
+
+
+
+
+Если добавить в модель еще один коэффициент $\beta_0$, то мы получим:
+
+$$\hat{y} = \beta_0 + \beta x$$
+
+$$L(\beta) = \frac{1}{n} \sum_{i=1}^n (y_i- \beta_0 - x_i \cdot \beta )^2$$
+
+Эта функция задает парабаллоид:
+
+
+
+
+В общем случае, когда у нас больше параметров модели, мы будем работать в многомерном пространстве. Но в этом нет ничего страшного. Суть поиска минимума от этого не меняется, меняется только сложность функции — структуры ландшафта.
+
+Чтобы решить задачу МНК и найти оптимальные параметры $\beta_{opt}$, обеспечивающие минимум функции есть два способа:
+
+1. Аналитический
+2. Численный
+
+### OLS: Аналитическое Решение
+
+Аналитическое решение поиска минимума функции строится по следующему принципу:
+
+1. Найти производную функции
+2. Прировнять эту производную к 0
+3. Решить полученное уравнение и получить ответ - точку минимума
+
+Вспомнить школьный курс про производную, экстремум и поиск минимума функции можно [здесь](http://www.mathprofi.ru/vozrastanie_ubyvanie_ekstremumy_funkcii.html).
+
+
+В общем случае функция потерь $L(\beta)$ является многомерной функцией (функцией от нескольких переменных), а производная функции заменяется на градиент
+
+**Градиент функции** — это вектор, который состоит из частных производных по параметрам функции.
+
+
+
+$$\nabla_{\beta} L(\beta) = \begin{pmatrix}
+\frac{\partial L}{\partial \beta_0} &
+\frac{\partial L}{\partial \beta_1} &
+... &
+\frac{\partial L}{\partial \beta_m}
+\end{pmatrix}^T$$
+
+
+где
+* $L$ — функция потерь, зависящая от параметров модели.
+* $\nabla_{\beta}$ — символ набла — символьное сокращение градиента, нижний индекс подчеркивает, что производные вычисляются по компонентам вектора $\beta$
+* $\frac{\partial L}{\partial \beta_i}$ - частная производная функции $L(\beta)$ по переменной $\beta_i$
+
+[Материал](http://www.mathprofi.ru/proizvodnaja_po_napravleniju_i_gradient.html) про функции многих переменных, частные производные и поиск экстремумов МФП.
+
+Например, для квадратичной функции потерь (squared loss) градиент в простейшем случае - 1-ом признаке и двух коэффициентах $\beta_0$ и $\beta_1$ будет иметь вид:
+
+$$L(\beta) = \frac{1}{n} \sum_{i=1}^n(y_i - \hat{y_i})^2= \frac{1}{n} \sum_{i=1}^n(y_i - \beta_0 - x_i \cdot \beta_1)^2$$
+
+$$\nabla_{\beta} L(\beta) = (\frac{\partial L}{\partial \beta_0}, \frac{\partial L}{\partial \beta_1})$$
+
+$$\frac{\partial L}{\partial \beta_0} = - \frac{2}{n} \sum_{i=1}^n (y_i - β_0 - x_i \cdot β_1 )$$
+
+$$\frac{\partial L}{\partial \beta_1} = - \frac{2}{n} \sum_{i=1}^n x_i (y_i - β_0 - x_i \cdot β_1)$$
+
+
+Тогда, чтобы найти минимум функции нужно приравнять каждую из производных к 0 и решить систему уравнений относительно $\beta_0$ и $\beta_1$.
+
+
+
+В общем случае, когда признаков больше 1 лучше пользоваться матричными формулами. В матричном виде градиент квадратичной функции потерь будет вычислять следующим образом:
+
+
+$$ L(\beta) = \frac{1}{n} ||y - X \cdot {\beta}||^2$$
+
+$$\nabla_{\beta} L(\beta) = \frac{2}{n} \cdot X^T(X \cdot \beta - y)$$
+
+где
+$$X=\begin{pmatrix}
+1 & x_{11} & x_{12} & ... & x_{1m} \\
+1 & x_{21} & x_{22} & ... & x_{2m} \\
+\vdots & \vdots & \vdots & \ddots & \vdots \\
+1 & x_{n1} & x_{n2} & ... & x_{nm}
+\end{pmatrix}$$
+
+$$\beta = (\beta_0, \beta_1, \beta_2, ..., \beta_m)^T$$
+
+Вывод этой формулы для градиента можно найти [здесь](https://kuleshov-group.github.io/aml-book/contents/lecture3-linear-regression.html#the-gradient-of-the-squared-error).
+
+Как правило множитель $\frac{2}{n}$ обычно опускают, так как константы не влияют на саму точку минимума.
+
+
+
+
+
+Теперь для поиска точки минимума функции потерь остается только решить матричное уравнение:
+
+$$\nabla_{\beta} L(\beta) = X^T(X \cdot \beta - y) = 0$$
+
+Решив это уравнение, мы получим, что коэффициенты линейной регрессии.
+
+Итоговая формула будет иметь вид:
+
+
+$$\beta_{opt}=(X^T \cdot X)^{-1} \cdot X^T \cdot y$$
+
+
+
+Данная формула матричная формула была получена Гауссом, и она позволяет очень просто и легко путем перемножения матриц найти оптимальные коэффициенты $\beta_{opt}$.
+
+#### Аналитическое Решение: Пример Реализации
+
+Реализуем матричную формулу МНК через numpy.
+
+Для начала вспомним, что для вычисления свободного члена $\beta_0$ необходимо добавить в таблицу столбец, полностью состоящий из единиц. Такой столбец можно создать с помощью знакомой нам функции [ones()](https://numpy.org/doc/stable/reference/generated/numpy.ones.html) из библиотеки numpy, а присоединить его к таблице X поможет функция [column_stack()](https://numpy.org/doc/stable/reference/generated/numpy.column_stack.html).
+
+```python
+def linear_regression_fit(X, y):
+ """
+ Функция для вычисления коэффициентов линейной регрессии
+ """
+# Создаём Вектор Из Единиц
+ ones = np.ones(X.shape[0])
+# Добавляем Вектор К Таблице Первым Столбцом
+ X = np.column_stack([ones, X])
+
+# Вычисляем Обратную Матрицу Q
+ Q = np.linalg.inv(X.T @ X)
+# Вычисляем Вектор Коэффициентов
+ beta = Q @ X.T @ y
+ return beta
+
+beta_opt = linear_regression_fit(X, y)
+
+print('Коэффициенты регрессии:')
+for i, beta_i in enumerate(beta_opt):
+ print(f'i={i}: {beta_i.round(2)}')
+```
+
+```python
+print(beta_opt)
+```
+
+Чтобы вычислить прогноз выработки газа для новых скважин нужно лишь скалярно перемножить матрицу с описанием объектов на вычисленные коэффициенты регрессии:
+
+```python
+def linear_regression_predict(X, beta):
+ """
+ Функция для построения прогноза
+ """
+# Создаём Вектор Из Единиц
+ ones = np.ones(X.shape[0])
+# Добавляем Вектор К Таблице Первым Столбцом
+ X = np.column_stack([ones, X])
+ return X @ beta
+
+# Новая Скважина С Неизвестной Выработкой
+x = np.array([[195. , 17.13, 5.99, 2.88, 51.45, 1.77, 2.28]])
+
+# Делаем Прогноз
+y_hat = linear_regression_predict(x, beta_opt)
+
+y_hat
+```
+
+Можно вычислить прогноз для всех скважин и рассчитать итоговую $MSE$
+
+```python
+# Делаем Прогноз
+y_hat = linear_regression_predict(X, beta_opt)
+
+n = X.shape[0]
+
+mse = ((y - y_hat)**2).sum() * 1 / n
+
+print('MSE: {:.2f}'.format(mse))
+```
+
+$MSE$ хороша для оптимизации, но плоха для интерпретации. Для оценки качества лучше использовать коэффициент детерминации ($R^2$).
+
+Напоминание:
+
+$$R^2 = 1 - \frac{{\sum_{i=1}^n (y_i - \hat{y_i})^2}}{\sum_{i=1}^n (y_i - y_{mean})^2}$$
+где
+* ${y_i}$ - истинное значение таргета для $i$-ого объекта
+* $\hat{y_i}$ - прогноз для $i$-ого объекта
+* $y_{mean}$ - среднее значение по таргету
+
+```python
+# Делаем Прогноз
+y_hat = linear_regression_predict(X, beta_opt)
+
+r2 = 1 - ((y - y_hat)**2).sum() / ((y - y.mean())**2).sum()
+
+print('R^2-score: {:.2f}'.format(r2))
+```
+
+Конечно же, никто не строит линейную регрессию руками, используя формулу МНК. Все дата-сайентисты пользуются библиотеками, такими как `sklearn`.
+
+#### Аналитическое Решение: Реализация В Sklearn
+
+Все линейные модели, которые мы будем рассматривать, реализованы в модуле `linear_model` библиотеки `sklearn`. Давайте импортируем этот модуль:
+
+```python
+from sklearn import linear_model #линейные модели
+from sklearn import metrics #метрики
+```
+
+В модуле находится класс [`LinearRegression`](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html), который реализует поиск коэффициентов линейной регрессии по МНК.
+
+Для обучения модели необходимо просто вызвать метод `fit()`, передав в него матрицу наблюдений X и вектор правильных ответов y.
+
+Данный метод реализует формулу аналитического решения метода наименьших квадратов и рассчитает параметры модели самостоятельно.
+
+
+```python
+# Создаём Объект Класса LinearRegression
+lr = linear_model.LinearRegression()
+# Обучаем Модель — Ищем Параметры По МНК
+lr.fit(X, y)
+```
+
+
+Чтобы получить свободный член $\beta_0$ нужно обратиться по атрибуту `intercept_`.
+
+Вектор оставшихся параметров $\beta_1, \beta_2, ..., \beta_m$ хранится в атрибуте `coef_`:
+
+```python
+lr.coef_
+```
+
+```python
+lr.intercept_
+```
+
+```python
+# Составляем Таблицу Из Признаков И Их Коэффициентов
+coef_df = pd.DataFrame({'Features': X.columns, 'Coefficients': lr.coef_})
+# Составляем Строчку Таблицы Со Свободным Членом
+intercept_df =pd.DataFrame({'Features': ['Intercept'], 'Coefficients': lr.intercept_})
+
+coef_df = pd.concat([intercept_df, coef_df], ignore_index=True)
+coef_df
+```
+
+Обратите внимание, что мы получили ровно те же самые значения для параметров модели, что и при ручной реализации.
+
+Модель обучена. Теперь можно сделать прогноз. Для этого есть метод `predict()`. В него необходимо передать матрицу наблюдений, для которых нужно сделать предсказание.
+
+```python
+# Новая Скважина С Неизвестной Выработкой
+x = np.array([
+ [195. , 17.13, 5.99, 2.88, 51.45, 1.77, 2.28]
+])
+
+# Делаем Прогноз
+y_hat = lr.predict(x)
+
+y_hat
+```
+
+Аналогично можно сделать предсказание для всей выборки. В результате получим вектор предсказаний модели $\hat{y}$.
+
+```python
+# Делаем Прогноз Для Всей Выборки
+y_hat = lr.predict(X)
+
+y_hat.shape
+```
+
+Рассчитаем качество полученного решения по метрике $MSE$ и $R^2$:
+
+```python
+print('MSE: {:.2f}'.format(metrics.mean_squared_error(y, y_hat)))
+
+print('R^2-score: {:.2f}'.format(metrics.r2_score(y, y_hat)))
+```
+
+При необходимости можно обучить модель без свободного члена $\beta_0$. Для этого нужно установить параметр `fit_intercept` как False:
+
+```python
+# Создаём Объект Класса LinearRegression
+lr = linear_model.LinearRegression(fit_intercept=False)
+# Обучаем Модель — Ищем Параметры По МНК
+lr.fit(X, y)
+
+# Составляем Таблицу Из Признаков И Их Коэффициентов
+coef_df = pd.DataFrame({'Features': X.columns, 'Coefficients': lr.coef_})
+# Составляем Строчку Таблицы Со Свободным Членом
+intercept_df =pd.DataFrame({'Features': ['Intercept'], 'Coefficients': lr.intercept_})
+
+coef_df = pd.concat([intercept_df, coef_df], ignore_index=True)
+coef_df
+```
+
+#### Преимущества И Недостатки
+
+Из формулы
+$$\beta=(X^T \cdot X)^{-1} \cdot X^T \cdot y = Q \cdot X^T \cdot y$$
+
+можно заметить недостатки аналитического решения:
+
+1. **Сложность обращения матриц**
+Аналитическое решение предполагает вычисление обратной матрицы $Q=(X^T \cdot X)^{-1}$ Обращение матриц очень дорогая операция. Вычислительно обращать большие матрицы дело сложное.
+Если мы посмотрим повнимательнее, то увидим, что если матрица $X$ имеет размерность $n\times m$, то матрица $X^T$ - $m \times n$, а значит произведение $X^T \cdot X$ имеет размерность $m \times m$. То есть сложность обращения зависит не от количества данных, а от количества признаков $m$. Причем сложность вычисления обратной матрицы - кубическая $O(m^3)$. **Что это означает на практике?**
+Если в датасете 1000 фич, то для вычисления обратной матрицы понадобится $1000^3=1 000 000 000$ операций!!!
+Отсюда делаем вывод: классическое аналитическое решение работает на "широких" датасетах несколько дольше.
+Вычисления обратной матрицы можно немного ускорить используя специальные алгоритмы и путем распараллеливания вычисления элементов матрицы, что и реализовано в sklearn.
+
+
+
+2. **Несуществование обратной матрицы**
+Из линейной алгебры известно, что, если матрица $X^T \cdot X$ является вырожденной ($det(X^T \cdot X) = 0$), то у нее нет обратной, а значит и решения не существует.
+Напомним, что полностью вырожденные матрицы мы получаем в случае, если в данных присутствуют линейно-зависимые признаки (один из признаков является линейной комбинацией других). Пример - общая площадь здания, жилая и нежилая площадь
+
+```python
+house_data = pd.DataFrame(
+ {
+ 'Общая площадь': [105, 40, 83, 54, 64, 43, 109],
+ 'Жилая площадь': [89, 35, 67, 48, 50, 36, 79],
+ 'Нежилая площадь': [16, 5, 16, 6, 14, 7, 30],
+ 'Цена (млн. руб)': [100.3 , 13.6 , 51.85, 34.85, 52.7 , 13.6 , 89.25],
+ 'Цена (млн. $)': [1.18, 0.16, 0.61, 0.41, 0.62, 0.16, 1.05],
+ 'Цена аренды (тыс. руб)': [80, 35, 55, 50, 45, 40, 73]
+ }
+)
+X = house_data.drop('Цена аренды (тыс. руб)', axis=1)
+y = house_data['Цена аренды (тыс. руб)']
+```
+
+```python
+house_data.corr()
+```
+
+Определитель матрицы $X^T \cdot X$:
+
+```python
+np.linalg.det(X.T @ X)
+```
+
+Попробуем построить линейную регрессию через матричную формулу:
+
+```python
+linear_regression_fit(X, y)
+```
+
+Ожидаемо получаем ошибку сингулярной (вырожденной) матрицы. Обратной к матрице $X^T \cdot X$ не существует.
+
+А что нам на это скажет sklearn?
+
+```python
+model = linear_model.LinearRegression()
+
+model.fit(X, y)
+pd.DataFrame({'feature': X.columns, 'coef': model.coef_})
+```
+
+Здесь нет никакой магии, ошибки округления или бага. Просто в реализации линейной регрессии в sklearn предусмотрена борьба с плохо определёнными (близкими к вырожденным и вырожденными) матрицами.
+
+Для этого используется метод под названием **сингулярное разложение (SVD)**. О нём мы будем говорить отдельно в главе о методах понижения размерности.
+
+Суть метода заключается в том, что в OLS-формуле мы на самом деле используем не саму матрицу , а её диагональное представление из сингулярного разложения, которое гарантированно является невырожденным. Вот и весь секрет.
+
+Если вы хотите понять как это работает уже сейчас, ознакомьтесь с [этой статьёй](http://www.machinelearning.ru/wiki/index.php?title=Сингулярное_разложение).
+
+Таким образом, проблема полностью вырожденных матриц для `LinearRegression` из `sklearn` с формальной точки зрения не страшна.
+
+
+> Однако, открытым остаётся вопрос: можно ли доверять коэффициентам, полученным таким способом, и интерпретировать их?
+
+3. **Проблема мультиколлинеарности**
+Пусть вырожденность матрицы и решаемая проблема. Однако, это не отменяет того факта, что в данных может присутствовать мультиколлинеарность.
+Мультиколлинерность приводит к тому, что определитель матрицы $det(X^T \cdot X)$ начинает стремиться к 0, коэффициенты модели стремится к +- бесконечности ($\beta → |∞|$), что приводит к неустойчивости коэффициентов линейных моделей и катострофическим последствиям.
+Коэффициенты, полученные с помощью аналитического решения на данных, в которых присутствует высокая мультиколинеарность, являются неустойчивыми: при малейшем изменении в целевой переменной, мы будем получать абсолютно другие решения.
+Стоит отметить коэффициенты также теряют всяческую интерпретацию.
+
+Смотрим пример. Добавим в данные еще одну квартирку:
+
+```python
+house_data = pd.DataFrame(
+ {
+ 'Общая площадь': [105, 40, 83, 54, 64, 43, 109, 83],
+ 'Жилая площадь': [89, 35, 67, 48, 50, 36, 79, 78],
+ 'Нежилая площадь': [16, 5, 16, 6, 14, 7, 30, 5],
+ 'Цена (млн. руб)': [100.3 , 13.6 , 51.85, 34.85, 52.7 , 13.6 , 89.25, 65],
+ 'Цена (млн. $)': [1.18, 0.16, 0.61, 0.41, 0.62, 0.16, 1.05, 0.76],
+ 'Цена аренды (тыс. руб)': [80, 35, 55, 50, 45, 40, 73, 53]
+ }
+)
+X = house_data.drop('Цена аренды (тыс. руб)', axis=1)
+y = house_data['Цена аренды (тыс. руб)']
+
+model = linear_model.LinearRegression()
+
+model.fit(X, y)
+pd.DataFrame({'feature': X.columns, 'coef': model.coef_})
+```
+
+Обратите внимание на то, как изменилось значение коэффициента при признаках цены в рублях и долларах!
+
+Именно в этом и заключается нестабильность решения на данных с мультиколлинерностью - на разных обучающих выборках мы будем получать абсолютно разные коэффициенты при сильно-коррелированных факторах
+
+### OLS: Численное Решение
+
+Часть недостатков аналитического решения можно решить, если для поиска минимума функции потерь $L(\beta)$ использовать численные методы. Самым популярным и наиболее эффективным является метод градиентного спуска.
+
+#### Градиентный Спуск
+
+**Градиентный спуск (Gradient Descent)** - это численный метод оптимизации, который заключается в итеративном обновлении оценок коэффициентов регрессии в направлении, которое уменьшает значение функции потерь $L(\beta)$.
+
+
+
+
+Метод основан на двух очень важных свойствах вектора градиента:
+* **Градиент** — это вектор, который показывает направление наискорейшего роста функции. Вектор противоположный градиенту $- \nabla$ называется вектором **антиградиента**, и он показывает в сторону наискорейшего убывания функции.
+
+
+
+
+
+* Длина — это само значение скорости роста функции в точке. В точке минимума $\beta^*$ длина вектора равна 0 ($||\nabla L(\beta^*)||=0$). Это свойство мы можем использовать в качестве критерия остановки нашего алгоритма.
+
+
+Таким образом, зная значение антиградиента в какой-то точке мы сможем вычислять следующую точку, которую нам нужно посетить, чтобы дойти до цели — минимума функции потерь.
+
+
+Формально это записывается следующим образом:
+
+$$\beta^{(k+1)} = \beta^{(k)} - \eta \nabla L(\beta^{(k)})$$
+
+
+где
+* $\beta$ — это вектор параметров модели, координаты в пространстве, а индекс в круглых скобках сверху означает номер точки в пространстве.
+* $\eta$ - **темп обучения**
+
+Запись $\nabla L(\beta^{(k)})$ означает, что градиент вычисляется в текущей точке под номером.
+
+> Темп обучения $\eta$ — это основной параметр алгоритма. Управляя данным параметром (уменьшая и увеличивая его), мы управляем скоростью движения к точке минимума. Чем больше темп обучения, тем длиннее наши шаги и тем быстрее мы движемся, и наоборот.
+
+Приведенную формулу можно рассматривать с физической точки зрения: новая координата $\beta^{(k+1)}$ в пространстве параметров определяется как текущая координата $\beta^{(k)}$ минус скорость роста в текущей точке $\nabla L(\beta^{(k)})$, помноженная на коэффициент «скольжения» $\eta$.
+
+
+
+
+
+**Формализация алгоритма:**
+
+1. Проинициализировать алгоритм.
+Задать начальные значения оценок коэффициентов регрессии $\beta_0, \beta_1, ..., \beta_m$. Например, можно инициализировать все параметры нулями или случайными значениями.
+Задать максимальное количество итераций $K$, чтобы ограничить алгоритм по времени выполненения.
+Задать границу сходимости $ϵ$.
+
+2. Повторять $K$ раз, $k$ - номер итерации:
+
+* Вычислить градиент функции потерь $\nabla L(\beta)$ в текущей точке $\beta^{(k)}$:
+
+$$\nabla L(\beta^{(k)}) = \begin{pmatrix}
+\frac{\partial L}{\partial \beta_0} &
+\frac{\partial L}{\partial \beta_1} &
+... &
+\frac{\partial L}{\partial \beta_m}
+\end{pmatrix}^T_{\beta=\beta^{(k)}}$$
+
+* Проверить условие остановки - равенство нулю длины вектора градиента:
+$$||\nabla L(\beta^{(k)})|| = 0$$
+Если условие остановки выполняется - завершить вычисления и вернуть найденные значения $\beta$.
+На практике полного равенства градиента нулю достичь невозможно из-за численных вычислений, поэтому в качестве остановки задают минимальную границу $\epsilon$, ниже которой длина градиента считается достаточной, чтобы остановиться (например, 0.1, 0.01 или 0.001):
+$$||\nabla L(\beta^{(k)})|| < \epsilon$$
+
+* Обновить оценки коэффициентов регрессии по формуле:
+
+$$\beta^{(k+1)} = \beta^{(k)} - \eta \nabla L(\beta^{(k)})$$
+
+
+В случае, когда в качестве функции потерь мы используем квадратичную ошибку, для вычисления градиента мы будем использовать формулы:
+
+$$L(\beta) = \frac{1}{n} ||y - X \cdot {\beta}||^2 = \frac{1}{n} \sum_{i=1}^n(y_i - \beta \cdot x_i)^2$$
+
+$$\nabla L(\beta) = \frac{2}{n} \cdot X^T(X \cdot \beta - y)$$
+
+Иллюстрация работы градиентного спуска:
+
+
+
+Коэффициенты прямой будут адаптироваться под зависимость в данных и приближаться к оптимальным значениям. В анимации это будет выглядеть следующим образом:
+
+
+
+
+
+
+#### Градиентный Спуск: Пример Расчётов И Реализации *
+
+> В целях экономии ручных расчётов в реализации ниже опущен коэффициент $\frac{2}{n}$, так как он не влияет на направление сходимости: алгоритм всё равно движется к точке минимума, просто с другим масштабом шага. В реализации градиентного спуска в sklearn данный коэффициент учитывается при расчёте.
+
+Для иллюстрации работы алгоритма приведем пример вычислений нескольких итераций градиентного спуска для случая поиска коэффициентов линейной регрессии
+
+Пусть у нас есть датасет состоящий из 5 наблюдений:
+
+
+|№|$x$|$y$|
+|-|-|-|
+|1|1|2|
+|2|2|4|
+|3|3|5|
+|4|4|7|
+|5|5|8|
+
+Необходимо восстановить зависимость $x$ от $y$ с помощью модели линейной регрессии:
+
+$$\hat{y_i} = f(x_i) = \beta_0 + \beta_1 x_i$$
+
+Поиск коэффициентов $\beta_0$ и $\beta_1$ будем производить с помощью градиентного спуска.
+
+**Инициализируем параметры:**
+* максимальное количество итераций: $K=100$
+* темп обучения: $\eta = 0.01$.
+* граница сходимости: $\epsilon = 0.1$
+* начальное значение вектора коэффициентов: $\beta^{(0)} = \begin{pmatrix} β_0 \\ β_1 \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \end{pmatrix}$
+* функция потерь: $L(β) = \sum_{i=1}^n (y_i - \hat{y_i})^2 = \sum_{i=1}^n (y_i - β_0 - β_1 x_i)^2$
+
+
+**Итерация 1 ($k=1)$**
+
+* Вычисляем градиент функции потерь при $\beta^{(0)} = (0, 0)^T$:
+
+$$\nabla L(\beta^{(0)}) = \begin{pmatrix} \frac{\partial L}{\partial β_0} \\\ \frac{\partial L}{\partial β_1} \end{pmatrix} = \begin{pmatrix} - \sum_{i=1}^n (y_i - β_0 - β_1 x_i) \\\ - \sum_{i=1}^n x_i (y_i - β_0 - β_1 x_i) \end{pmatrix}= \begin{pmatrix} - \sum_{i=1}^5 (y_i - 0 - 0 \cdot x_i) \\\ - \sum_{i=1}^5 x_i (y_i - 0 - 0 \cdot x_i) \end{pmatrix} = \begin{pmatrix} - \sum_{i=1}^5 y_i \\\ - \sum_{i=1}^5 x_i y_i \end{pmatrix} = \begin{pmatrix} - (2 + 4 + 5 + 7 + 8) \\\ - (1 \cdot 2 + 2 \cdot 4 + 3 \cdot 5 + 4 \cdot 7 + 5 \cdot 8) \end{pmatrix}= \begin{pmatrix} - 26 \\\ - 93 \end{pmatrix}$$
+
+* Проверяем условие остановки. Вычисляем длину вектора градиента:
+$$||\nabla L(β^{(0)})|| = \sqrt{(\frac{\partial L}{\partial β_0})^2 + (\frac{\partial L}{\partial β_1})^2}=\sqrt{(-26)^2 + (-93)^2} \approx 96.6 $$
+Условие остановки не выполнено: $||\nabla L(β^{(0)})|| > \epsilon$.
+
+* Обновляем коэффициенты:
+
+$$β^{(1)} = β^{(0)} - \eta \nabla L(β^{(0)}) = \begin{pmatrix} 0 \\\ 0 \end{pmatrix} - 0.01 \begin{pmatrix} - 26 \\\ - 93 \end{pmatrix} = \begin{pmatrix} 0.26 \\\ 0.93 \end{pmatrix}$$
+
+
+
+**Итерация 2 ($k=2$)**
+
+* Вычисляем градиент функции потерь при $\beta^{(1)} = (0.26, 0.93)^T$:
+
+$$\nabla L(β^{(1)}) = \begin{pmatrix} \frac{\partial L}{\partial β_0} \\\ \frac{\partial L}{\partial β_1} \end{pmatrix} = \begin{pmatrix} - \sum_{i=1}^n (y_i - β_0 - β_1 x_i) \\\ - \sum_{i=1}^n x_i (y_i - β_0 - β_1 x_i) \end{pmatrix}= \begin{pmatrix} - \sum_{i=1}^5 (y_i - 0.26 - 0.93 \cdot x_i) \\\ - \sum_{i=1}^5 x_i (y_i - 0.26 - 0.93 \cdot x_i) \end{pmatrix}= \begin{pmatrix} - (2 - 0.26 - 0.93 \cdot 1 + 4 - 0.26 - 0.93 \cdot 2 + 5 - 0.26 - 0.93 \cdot 3 + 7 - 0.26 - 0.93 \cdot 4 + 8 - 0.26 - 0.93 \cdot 5) \\\ - (1 \cdot (2 - 0.26 - 0.93 \cdot 1) + 2 \cdot (4 - 0.26 - 0.93 \cdot 2) + 3 \cdot (5 - 0.26 - 0.93 \cdot 3) + 4 \cdot (7 - 0.26 - 0.93 \cdot 4) + 5 \cdot (8 - 0.26 - 0.93 \cdot 5)) \end{pmatrix}= \begin{pmatrix} -10.75 \\\ -37.95 \end{pmatrix}$$
+
+* Проверяем условие остановки. Вычисляем длину вектора градиента:
+$$||\nabla L(β^{(1)})|| = \sqrt{(\frac{\partial L}{\partial β_0})^2 + (\frac{\partial L}{\partial β_1})^2}=\sqrt{(-10.75)^2 + (-37.95)^2} \approx 39.44 $$
+Условие остановки не выполнено: $||\nabla L(β^{(0)})|| > \epsilon$.
+
+* Обновляем коэффициенты:
+
+$$β^{(2)} = β^{(1)} - \eta \nabla L(β^{(1)})= \begin{pmatrix} 0.26 \\\ 0.93 \end{pmatrix} - 0.01 \begin{pmatrix} - 10.75 \\\ -37.95 \end{pmatrix}= \begin{pmatrix} 0.3675 \\\ 1.3095 \end{pmatrix}$$
+
+
+**Итерация 3 ($k=3$)**
+
+* Вычисляем градиент функции потерь при $\beta^{(2)} = (0.3675, 1.3095)^T$:
+
+$$\nabla L(β^{(2)}) = \begin{pmatrix} \frac{\partial L}{\partial β_0} \\\ \frac{\partial L}{\partial β_1} \end{pmatrix} = \begin{pmatrix} - \sum_{i=1}^n (y_i - β_0 - β_1 x_i) \\\ - \sum_{i=1}^n x_i (y_i - β_0 - β_1 x_i) \end{pmatrix}$$
+
+$$= \begin{pmatrix} - \sum_{i=1}^5 (y_i - 0.3675 - 1.3095 \cdot x_i) \\\ - \sum_{i=1}^5 x_i (y_i - 0.3675 - 1.3095 \cdot x_i) \end{pmatrix} = \begin{pmatrix} - -4.52 \\\ -15.465 \end{pmatrix}$$
+
+* Проверяем условие остановки. Вычисляем длину вектора градиента:
+$$||\nabla L(β^{(1)})|| = \sqrt{(\frac{\partial L}{\partial β_0})^2 + (\frac{\partial L}{\partial β_1})^2}=\sqrt{(-4.52)^2 + (-15.465)^2} \approx 16.1 $$
+Условие остановки не выполнено: $||\nabla L(β^{(0)})|| > \epsilon$.
+
+* Обновляем коэффициенты:
+
+$$β^{(3)} = β^{(2)} - \eta \nabla L(β^{(2)}) = \begin{pmatrix} 0.3675 \\\ 1.3095 \end{pmatrix} - 0.1 \begin{pmatrix} -4.52 \\\ -15.465 \end{pmatrix} = \begin{pmatrix} 0.4127 \\\ 1.46415 \end{pmatrix}$$
+
+
+Далее просто повторяем аналогичные вычисления до тех пор, пока не выполнится условие остановки: длина вектора градиента не будет близка к 0 или не будет превышено максимальное количество итераций.
+
+
+Например, уже на 10-ой итерации ($k=10$) мы с вами получим:
+
+$$\nabla L(β^{(10)}) = \begin{pmatrix} -0.215 \\ 0.028 \end{pmatrix}$$
+$$||\nabla L(β^{(10)})|| = 0.217$$
+$$\beta = \begin{pmatrix} 0.457 \\ 1.567 \end{pmatrix}$$
+
+
+А на 100-ой итерации наш алгоритм сойдется:
+
+$$\nabla L(β^{(10)}) = \begin{pmatrix} -0.096 \\ 0.027 \end{pmatrix}$$
+$$||\nabla L(β^{(10)})|| = 0.1$$
+$$\beta = \begin{pmatrix} 0.587 \\ 1.531 \end{pmatrix}$$
+
+В итоге мы получим значения для коэффициентов $\beta$:
+
+$$\beta = \begin{pmatrix} 0.58692341 \\ 1.5313204 \end{pmatrix}$$
+
+Таким образом, уравнение линейной регрессии будет иметь вид:
+
+$$\hat{y_i} = f(x_i) = 0.58692341 + 1.5313204 \cdot x_i$$
+
+
+Подставляя в уравнение точки $x_i$ из обучающего набора данных мы получим следующие прогнозы:
+
+|№|$x$|$y$|$\hat{y}$|
+|-|-|-|-|
+|1|1|2|2.11824381|
+|2|2|4|3.64956422|
+|3|3|5|5.18088462|
+|4|4|7|6.71220502|
+|5|5|8|8.24352542|
+
+
+
+Пример ручной реализации алгоритма поиска коэффициентов с помощью градиентного спуска для примера выше:
+
+```python
+import numpy as np
+
+
+# Исходные Данные
+X = np.array([[1], [2], [3], [4], [5]], dtype='float64')
+y = np.array([2, 4, 5, 7, 8], dtype='float64')
+
+# Здесь Должен Быть Шаг С Масштабированием
+# Но Так Как У Нас Один Признак, То Масштабировать Его Не Нужно
+# Scaler = preprocessing.StandardScaler()
+# X = scaler.fit_transform(X)
+
+# Добавляем Столбец Из Единиц В Матрицу Наблюдений Для Удобства Рассчета Градиентов
+ones = np.ones(X.shape[0])
+X = np.column_stack([ones, X])
+
+# Инициализируем Параметры
+max_iter = 1000 # Максимальное количество итераций
+eta = 0.01 # Темп обучения
+epsilon = 0.1 # Граница сходимости
+beta = np.array([0, 0], dtype='float64') # Начальное значение вектора коэффициентов
+
+# Обучаем Модель
+for k in range(max_iter):
+
+# Вычисляем Градиент Функции Потерь
+ gradient = X.T@ X @ beta - X.T @ y
+# Проверяем Условие Остановки
+ if np.linalg.norm(gradient) < epsilon:
+ break
+# Обновляем Коэффициенты
+ beta = beta - eta * gradient
+ print('Итерация:', k + 1)
+ print('Градиент:', gradient)
+ print('Длина градиента:', np.linalg.norm(gradient))
+ print('Коэффициенты: ', beta)
+
+# Выводим Результаты
+print("Коэффициенты линейной регрессии:")
+print(beta)
+
+# Делаем Прогнозы
+y_pred = X @ beta
+
+# Выводим Прогнозы
+print("Прогнозы:")
+print(y_pred)
+
+```
+
+#### Стохастический Градиентный Спуск
+
+У классического градиентного спуска есть одна большая проблема — это сходимость алгоритма к точке истинного минимума. Если в случае аналитического решения все просто - подставил матрицы и вектора в формулу и гарантировано получил ответ, то в случае численных методов, алгоритм может попросту не сойтись к истинному минимуму.
+
+Сходимость градиентного спуска зависит от многих факторов, главные из которых:
+
+* сложности зависимости и сложности функции потерь;
+* выбранный темп обучения;
+* выбранная начальная точка (инициализация параметров);
+* масштабирование признаков.
+
+Из-за сложной зависимости и сложности самой функции потерь она может иметь несколько видов минимумов: локальные и глобальные.
+
+Примеры графиков функций, имеющих несколько минимумов (1 параметр - слева, 2 параметра - справа):
+
+
+
+
+Когда мы говорим о функции потерь, нас интересует именно глобальный минимум, то есть тот минимум, которого вообще возможно достичь при управлении параметрами.
+
+Проблема градиентного спуска заключается в том, что алгоритм может «застрять» в локальном минимуме и не выйти из него.
+
+
+
+> Другая проблема градиентного спуска - это количество вычислений, необходимых для вычисления градиента по всей выборке. То есть на каждом шаге мы прогоняем всю выборку через алгоритм. Если выборка будет очень большой (на миллионы записей), поиск оптимальных коэффициентов может занять немалое количество времени и оперативной памяти.
+
+Вычислительная сложность всего алгоритма - $O(N \cdot M \cdot K)$, где $N$ - число объектов в датасете, $M$ - число признаков, $K$ - количество итераций. Да, это гораздо лучше, чем аналитическое решение через обратную матрицу, сложность которого $O(N^2 \cdot M + M^3)$. Но можно и быстрее.
+
+Чтобы решить эти проблему используется не классический градиентный спуск, а его модификации. Существует множество модификаций градиентного спуска и мы будем их рассматривать, когда будем рассматривать теорию обучения нейронных сетей.
+
+
+
+
+
+
+В контексте линейных моделей, как правило, используется **стохастический градиентный спуск (Stochastic Gradient Descent, SGD)**.
+
+Стохастическая модификация предполагает, что один шаг градиентного спуска производится на основе градиента, рассчитанного не по всей выборке, а только по случайно выбранной части.
+
+То есть мы **случайно** выбираем несколько строк из таблицы и подставляем их в алгоритм, делаем шаг в сторону минимума и повторяем это множество раз, пока алгоритм не сойдётся к приемлемому значению или пока не закончатся итерации (в реализации всегда задаётся максимум итераций на случай, если алгоритм не сойдётся и будет «блуждать по холмам» вечно).
+
+
+На рисунке ниже приведено сравнение графиков «блуждания» точки в пространстве функции потерь (вид сверху):
+
+
+
+
+Благодаря таким случайным колебаниям у нас появляется больше возможностей «выкарабкаться» из локальных минимумов и дойти до глобального минимума.
+
+Однако из-за таких скачков есть шанс пропустить и глобальный минимум функции потерь, если скачки будут слишком большими.
+
+Чтобы управлять шагами, как раз и существует параметр темпа обучения. Он позволяет управлять размером шага градиентного спуска.
+
+* Слишком маленькие значения $\eta$ уменьшают скорость сходимости, есть шанс не сойтись за отведенное количество итераций
+* Слишком большие значения $\eta$ дают эффект бесконечного блуждания - алгоритм коллеблется вокруг точки минимума, но все время "проезжает" ее из-за слишком высокой скорости
+
+
+
+
+
+
+Наиболее эффективной оказывается следующая стратегия:
+> Будем брать большой шаг в начале обучения и уменьшать его постепенно, приближаясь к минимуму, чтобы не «выпрыгнуть» из точки минимума.
+
+В реализации SGD в `sklearn` данная стратегия используется по умолчанию. Параметр регулируется в процессе обучения — он уменьшается с ростом числа итераций по формуле:
+
+$$\eta_t = \frac{\eta_0}{t^p}$$
+
+где
+* $\eta_0$ — начальное значение темпа обучения,
+* $p$ — мощность уменьшения темпа (задаётся пользователем).
+
+
+
+> Ещё один важный момент, на который стоит обратить внимание при работе с градиентным спуском — это обязательное масштабирование факторов (приведение факторов к единому масштабу или к единым статистическим характеристикам), если их несколько.
+
+Причина аналогичная причине необходимости масштабирования в метрических алгоритмах. Если в данных присутствуют признаки со значительно разными масштабами, то при вычислении градиента признак с наибольшим масштабом будет "доминировать" и алгоритм будет пытаться сойтись только на основе этого признака. Как правило это приводит к тому, что алгоритм попросту не сходится.
+
+
+
+
+
+Будем использовать реализацию стохастического градиентного спуска для линейной регрессии из библиотеки sklearn — SGDRegressor. Она находится в том же модуле linear_model.
+
+#### Численное Решение: Реализация В Sklearn
+
+```python
+data = pd.read_csv('https://raw.githubusercontent.com/merion-networks/data-science-course/refs/heads/main/unconv.csv')
+data.head()
+X = data.drop('Prod', axis=1)
+y = data['Prod']
+```
+
+```python
+X
+```
+
+Будем использовать реализацию стохастического градиентного спуска для линейной регрессии из библиотеки sklearn — [`SGDRegressor`](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.SGDRegressor.html). Она находится в том же модуле `linear_model`.
+
+У класса SGDRegressor есть множество параметров. Наиболее важные:
+
+* `random_state`- отвечает за число, на основе которого происходит генерация случайных чисел. Напомним, в SGD случайность присутствует в инициализации параметров и выборе части из набора данных.
+* `loss` - функция потерь.
+По умолчанию используется `squared_loss` — уже привычная нам квадратичная ошибка. Но могут использоваться и несколько других. Например, значение `"huber"` определяет функцию потерь Хьюбера. Эта функция менее чувствительна к наличию выбросов, чем квадратичная ошибка. [Полный список возможных функций потерь](https://scikit-learn.org/stable/modules/sgd.html#loss-functions-details).
+* `max_iter` - максимальное количество итераций, выделенное на сходимость. Значение по умолчанию — 1000.
+* `learning_rate` - режим управления темпом обучения. Значение по умолчанию — 'invscaling'. Этот режим уменьшает темп обучения по формуле, которую мы рассматривали ранее: $\eta_t = \frac{\eta_0}{t^p}$.
+Если вы не хотите, чтобы темп обучения менялся на протяжении всего обучения, то можете выставить значение параметра на `"constant"`.
+* `eta0` - начальное значение темпа обучения . Значение по умолчанию — 0.01.
+Если параметр `learning_rate="constant"`, то значение этого параметра будет темпом обучения на протяжении всех итераций.
+* `power_t` - значение мощности $t$ уменьшения $\eta$ в формуле $\eta_t = \frac{\eta_0}{t^p}$. То есть данный параметр отвечает за степень знаменателя (чем больше степень, тем быстрее уменьшается значение темпа обучения с каждой итерацией). Значение по умолчанию — 0.25.
+
+Попробуем обучить модель на наших данных:
+
+```python
+# Создаём Объект Класса Линейной Регрессии С SGD
+sgd_lr = linear_model.SGDRegressor(
+ random_state=42,
+ eta0=0.1
+)
+# Обучаем Модель — Ищем Параметры По Методу SGD
+sgd_lr.fit(X, y)
+```
+
+Оценим качество модели по $R^2$:
+
+```python
+# Делаем Прогноз Для Всей Выборки
+y_hat = sgd_lr.predict(X)
+
+# Рассчитываем Коэффициент Детерминации
+print('R^2-score: {:.2f}'.format(metrics.r2_score(y, y_hat)))
+```
+
+Коэффициент детерминации отрицательный! Качество полученной нами модели оставляет желать лучшего, мягко говоря.
+
+К сожалению, в `sklearn` нельзя посмотреть то, как происходил поиск оптимальных параметров с помощью SGD. Поэтому нет возможности продемонстрировать историю изменения функции потерь и отследить в чем причина полученных результатов.
+
+Зато можно посмотреть полученные в результате оптимизации коэффициенты:
+
+```python
+# Составляем Таблицу Из Признаков И Их Коэффициентов
+coef_df = pd.DataFrame({'Features': X.columns, 'Coefficients': sgd_lr.coef_})
+# Составляем Строчку Таблицы Со Свободным Членом
+intercept_df =pd.DataFrame({'Features': ['Intercept'], 'Coefficients': sgd_lr.intercept_})
+
+coef_df = pd.concat([intercept_df, coef_df], ignore_index=True)
+coef_df
+```
+
+Все коэффициенты имеют запредельные значения (9-11 степени числа 10). Это типичная картина расходящегося градиентного спуска: алгоритм не достиг точки минимума по каким-то причинам. Такие высокие значения коэффициентов означают, что модель является неустойчивой.
+
+> Причина неудачи — отсутствие масштабирования. Как мы уже говорили ранее, при использовании градиентного спуска и его модификаций очень важно масштабировать данные с помощью нормализации или стандартизации. Иначе алгоритм теряется в таком растянутом пространстве из-за неравномерных градиентов.
+
+Воспользуемся классом `StandardScaler` из модуля `preprocessing` библиотеки `sklearn` и стандартизируем наши данные.
+
+```python
+from sklearn import preprocessing
+
+# Cоздаем Объект Для Стандартизации
+scaler = preprocessing.StandardScaler()
+# Выполняем Стандартизацию Данных
+X_sc = scaler.fit_transform(X)
+X_sc = pd.DataFrame(X_sc, columns=X.columns)
+X_sc.describe()
+```
+
+Обучим модель еще раз:
+
+```python
+# Создаём Объект Класса Линейной Регрессии С SGD
+sgd_lr = linear_model.SGDRegressor(
+ random_state=42,
+ eta0=0.01
+)
+# Обучаем Модель — Ищем Параметры По Методу SGD
+sgd_lr.fit(X_sc, y)
+
+# Делаем Прогноз Для Всей Выборки
+y_hat = sgd_lr.predict(X_sc)
+
+# Рассчитываем Коэффициент Детерминации
+print('R^2-score: {:.2f}'.format(metrics.r2_score(y, y_hat)))
+```
+
+Проверим коэффициенты:
+
+```python
+# Составляем Таблицу Из Признаков И Их Коэффициентов
+coef_df = pd.DataFrame({'Features': X.columns, 'Coefficients': sgd_lr.coef_})
+# Составляем Строчку Таблицы Со Свободным Членом
+intercept_df = pd.DataFrame({'Features': ['Intercept'], 'Coefficients': sgd_lr.intercept_})
+
+coef_df = pd.concat([intercept_df, coef_df], ignore_index=True)
+coef_df
+```
+
+Обратим внимание на то, что наши коэффициенты отличны от тех, что мы получали при обучении линейной регрессии через аналитический метод. Это неудивительно, так как для обучения `LinearRegression` мы не использовали стандартизацию.
+
+
+При этом качество модели по метрике $R^2$ абсолютно идентично.
+
+
+Проверим, что SGD находит те же коэффициенты, что аналитическое решение.
+
+```python
+# Создаём Объект Класса Линейной Регрессии
+lr = linear_model.LinearRegression()
+# Обучаем Модель — Ищем Параметры
+lr.fit(X_sc, y)
+
+# Делаем Прогноз Для Всей Выборки
+y_hat = sgd_lr.predict(X_sc)
+
+# Рассчитываем Коэффициент Детерминации
+print('R^2-score: {:.2f}'.format(metrics.r2_score(y, y_hat)))
+
+
+# Составляем Таблицу Из Признаков И Их Коэффициентов
+coef_df = pd.DataFrame({'Features': X.columns, 'Coefficients': sgd_lr.coef_})
+# Составляем Строчку Таблицы Со Свободным Членом
+intercept_df = pd.DataFrame({'Features': ['Intercept'], 'Coefficients': sgd_lr.intercept_})
+
+coef_df = pd.concat([intercept_df, coef_df], ignore_index=True)
+coef_df
+```
+
+Результаты идентичные.
+
+Поэкспериментируем с параметрами SGD.
+
+Попробуем взять большое значение темпа обучения.
+
+```python
+# Создаём Объект Класса Линейной Регрессии С SGD
+sgd_lr = linear_model.SGDRegressor(
+ random_state=42,
+ eta0=0.5,
+ learning_rate='constant', #режим темпа обучения — константа
+)
+# Обучаем Модель — Ищем Параметры По Методу SGD
+sgd_lr.fit(X_sc, y)
+
+sgd_lr.score(X_sc, y)
+```
+
+$R^2 < 0$ - SGD разошёлся из-за слишком высокого темпа обучения.
+
+А теперь слишком маленькое:
+
+```python
+# Создаём Объект Класса Линейной Регрессии С SGD
+sgd_lr = linear_model.SGDRegressor(
+ random_state=42,
+ eta0=0.00001,
+ max_iter=100000,
+ learning_rate='constant', #режим темпа обучения — константа
+)
+# Обучаем Модель — Ищем Параметры По Методу SGD
+sgd_lr.fit(X_sc, y)
+
+sgd_lr.score(X_sc, y)
+```
+
+Мы видим предупреждение (warning), которое говорит о том, что алгоритму не хватило количества итераций (max_iter), чтобы добраться до минимума. То есть SGD не дошёл до точки минимума из-за слишком низкого темпа обучения.
+
+#### Преимущества И Недостатки
+
+**Преимущества**
+
+* Градиентный спуск — простой и мощный алгоритм оптимизации, который позволяет итеративно находить минимум функции потерь и тем самым находить оптимальные параметры модели.
+
+* Благодаря своей простоте алгоритм обладает минимальной вычислительной сложностью и работает быстрее, чем метод наименьших квадратов, даже на огромных наборах данных с тысячами признаков.
+
+
+* Функция потерь, используемая для оптимизации не обязательно должна быть квадратичной. Главное требование к функции потерь — это её гладкость во всех точках.
+Примеры других функций потерь:
+ * **Log Loss (логистическая функция потерь):**
+$$L(y_i, \hat{y_i}) = log(1 + exp(-y_i \cdot \hat{y_i}))$$
+ * **Hinge Loss**:
+$$L(y_i, \hat{y_i}) = max(0, 1 - y_i \cdot \hat{y_i})$$
+ * **Huber Loss**:
+$$L(y, \hat{y}) = \begin{cases}
+\frac{1}{2}(y - \hat{y})^2, & \text{if } |y - \hat{y}| \leq \delta \\
+\delta(|y - \hat{y}| - \frac{1}{2}\delta), & \text{if } |y - \hat{y}| > \delta
+\end{cases}$$
+$\delta$ - некоторое число между 0 и 1
+
+* Возможность инкрементального обучения. Есть возможность дообучить модель на новых данных в режиме реального времени. Повторный вызов `fit()` уточняет уже существующие параметры модели.
+
+**Недостатки**
+
+* Сходимость зависит от множества факторов: темпа обучения, характера функции потерь, критерия остановки и других факторов
+* Для обеспечения сходимости может потребоваться подбор гиперпараметров
+* Обязательное масштабирование факторов при наличии разных масштабов из-за особенностей сходимости.
+
+
+
+## Полиномиальная Регрессия
+
+
+#### Общее Представление
+
+**Полиномиальная регрессия (Polynomial Regression)** — это более сложная модель, чем линейная регрессия. Вместо уравнения прямой используется уравнение полинома (многочлена). Степень полинома (максимальная степень) может быть сколь угодно большой: чем больше степень, тем сложнее модель.
+
+
+Пример полиномиальных моделей
+
+* Полином степени $2$ с 1-им признаком $x$:
+
+$$\hat{y} = \beta_0 + \beta_1 x_ + \beta_2 x^2 $$
+
+* Полином степени $2$ с 2-мя признаками $x_1$ и $x_2$:
+
+$$\hat{y} = \beta_0 + \beta_1 x_{1} + \beta_2 x_{1}^2 + \beta_3 x_{2} + \beta_4 x_{2}^2 + \beta_5 x_{1} x_{2}$$
+
+* Полином степени $3$ с 2-мя признаками $x_1$ и $x_2$:
+
+$$\hat{y} = \beta_0 + \beta_1 x_{1} + \beta_2 x_{1}^2 + \beta_3 x_{2} + \beta_4 x_{2}^2 + \beta_5 x_{1} x_{2}+ \beta_6 x_{1}^2 x_{2} + \beta_7 x_{1} x_{2}^2 + \beta_8 x_{2}^3$$
+
+Геометрически полиномиальная регрессия - это некоторая аппроксимирующая поверхность.
+
+Примеры:
+
+
+
+
+
+Полиномиальная регрессия позволяет описывать нелинейные, более сложные зависимости в данных и, как правило, имеет более высокое качество, чем линейная регрессия.
+
+Однако, сложность модели является ее преимуществом и недостатком.
+
+Проблема заключается в том, что высокие степени полинома приводят к риску переобучения модели. Сложные полиномы начинают подстраиваться под обучающую выборку, ухудшая обобщающую способность модели.
+
+
+
+> Это отсылает нас к необходимости валидации модели при использовании полиномиальной регрессии.
+
+
+
+#### Полиномиальные Признаки
+
+Заметим, что степени при $x$-ах можно тоже считать своего рода искусственными признаками в данных. Они называются полиномиальными признаками.
+
+ Например в уравнении модели:
+
+ $$\hat{y} = \beta_0 + \beta_1 x_{1} + \beta_2 x_{1}^2 + \beta_3 x_{2} + \beta_4 x_{2}^2 + \beta_5 x_{1} x_{2}$$
+
+ можно обозначить $z_{1} = x_{1}$, $z_{i2} = x_{i1}^2$, $z_{3} = x_{2}$, $z_{4} = x_{2}^2$, $z_{5} = x_{1} x_{2}$
+
+ Тогда получим обычное уравнение линейной регрессии $f(z)$:
+
+ $$\hat{y} = \beta_0 + \beta_1 z_{1} + \beta_2 z_{2} + \beta_3 z_{3} + \beta_4 z_{4} + \beta_5 z_{5}$$
+
+Поэтому полиномиальная регрессия — это та же линейная регрессия, построенная на исходном датасете с дополнительными признаками.
+
+
+
+
+
+
+Создать полиномиальные признаки в sklearn можно с помощью с помощью объекта класса [`PolynomialFeatures`](https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.PolynomialFeatures.html) из модуля `preprocessing`.
+
+У класса есть два важных параметра:
+* `degree` — степень полинома. По умолчанию используется степень 2.
+* `include_bias` — включать ли в результирующую таблицу столбец из единиц (x в степени 0). По умолчанию стоит `True`, но лучше выставить его в значение `False`, так как столбец из единиц и так добавляется в методе наименьших квадратов.
+
+Для того чтобы подогнать генератор и рассчитать количество комбинаций степеней, мы используем метод fit(), а чтобы сгенерировать новую таблицу признаков, в которую будут включены полиномиальные признаки, используется метод transform(), в который нужно передать выборки:
+
+```python
+#Создаём генератор полиномиальных признаков 2 степени
+poly = preprocessing.PolynomialFeatures(degree=2, include_bias=False)
+poly.fit(X)
+
+X_poly = poly.transform(X)
+
+X_poly.shape
+```
+
+Чтобы узнать, какие столбцы каким комбинациям признаков соответствуют, можно использовать метод `get_feature_names_out()`
+
+```python
+poly.get_feature_names_out()
+```
+
+Для удобства можно составить новый DataFrame из полученных признаков:
+
+```python
+X_poly = pd.DataFrame(X_poly, columns=poly.get_feature_names_out())
+
+X_poly.head()
+```
+
+#### Полиномиальная Регрессия: Реализация В Sklearn
+
+
+
+```python
+data = pd.read_csv('https://raw.githubusercontent.com/merion-networks/data-science-course/refs/heads/main/unconv.csv')
+data.head()
+X = data.drop('Prod', axis=1)
+y = data['Prod']
+```
+
+Теперь у нас есть для того, чтобы реализовать полиномиальную регрессию.
+
+Предварительно давайте позаботимся о валидации и выделим 20% наших на тестовую выборку:
+
+```python
+from sklearn.model_selection import train_test_split
+
+#Разделяем выборку на тренировочную и тестовую в соотношении 80/20
+#Устанавливаем random_state для воспроизводимости результатов
+X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=40)
+#Выводим результирующие размеры таблиц
+print('Train:', X_train.shape, y_train.shape)
+print('Test:', X_test.shape, y_test.shape)
+```
+
+```python
+#Создаём генератор полиномиальных признаков
+poly = preprocessing.PolynomialFeatures(degree=3, include_bias=False)
+poly.fit(X_train)
+
+#Генерируем полиномиальные признаки для тренировочной выборки
+X_train_poly = poly.transform(X_train)
+#Генерируем полиномиальные признаки для тестовой выборки
+X_test_poly = poly.transform(X_test)
+
+# Преобразуем Результаты В DataFrame Для Удобства
+
+X_train_poly = pd.DataFrame(X_train_poly, columns=poly.get_feature_names_out())
+X_test_poly = pd.DataFrame(X_test_poly, columns=poly.get_feature_names_out())
+
+#Выводим результирующие размерности таблиц
+print(X_train_poly.shape)
+print(X_test_poly.shape)
+```
+
+Обучим две модели:
+
+* линейную регрессию
+* полиномиальную регрессию
+
+Сравним качество полученных моделей по метрике $MAPE$
+
+Напоминание:
+$$MAPE = \frac{100 \%}{n} \sum_{i=1}^n \frac{|y_i - \hat{y_i}|}{|y_i|}$$
+
+Простая линейная регрессия:
+
+```python
+#Создаём объект класса LinearRegression
+lr = linear_model.LinearRegression()
+#Обучаем модель по МНК
+lr.fit(X_train, y_train)
+
+#Делаем предсказание для тренировочной выборки
+y_train_predict = lr.predict(X_train)
+#Делаем предсказание для тестовой выборки
+y_test_predict = lr.predict(X_test)
+
+print("Train MAPE: {:.3f}".format(metrics.mean_absolute_percentage_error(y_train, y_train_predict) * 100))
+print("Test MAPE: {:.3f}".format(metrics.mean_absolute_percentage_error(y_test, y_test_predict) * 100) )
+```
+
+Полиномиальная регрессия:
+
+```python
+#Создаём объект класса LinearRegression
+lr_poly = linear_model.LinearRegression()
+#Обучаем модель по МНК
+lr_poly.fit(X_train_poly, y_train)
+
+#Делаем предсказание для тренировочной выборки
+y_train_predict = lr_poly.predict(X_train_poly)
+#Делаем предсказание для тестовой выборки
+y_test_predict = lr_poly.predict(X_test_poly)
+
+print("Train MAPE: {:.3f}".format(metrics.mean_absolute_percentage_error(y_train, y_train_predict) * 100))
+print("Test MAPE: {:.3f}".format(metrics.mean_absolute_percentage_error(y_test, y_test_predict) * 100))
+```
+
+```python
+lr_poly.coef_
+```
+
+Видим, что качество полиномиальной модели превосходит качество линейной модели.
+
+
+
+Можно попробовать более высокие степени полинома и проследить за тем как будет меняться качество модели.
+
+Важно отметить, что увеличивая степень полинома мы усложняем модель, тем самым улучшая качество модели на обучающей выборке, однако это приводит к переобучению - качество на тестовой выборке начинает резко падать из-за потери обобщающей способности.
+
+
+Но что же делать, если очень хочется использовать полиномиальную модель для решения сложных задач, но модель уходит в зону высокого разброса?
+
+## Регуляризация
+
+**Регуляризация** — это способ уменьшения переобучения моделей машинного обучения путём намеренного увеличения смещения модели для уменьшения её разброса.
+
+Регуляризация в случае линейной регрессии преследует сразу несколько целей. Однако далее мы увидим, что все эти цели на самом деле взаимосвязаны:
+
+* предотвратить переобучение модели;
+* включить в функцию потерь штраф за переобучение;
+* обеспечить существование обратной матрицы $(X^TX)^{-1}$;
+* не допустить огромных коэффициентов модели.
+
+
+Мы знаем, что чем сложнее модель, тем лучше она способна описать зависимости в обучающей выборке. А значит, тем меньше будет значение функции потерь, в потенциале при идеальной модели мы получим нулевую ошибку на обучающем наборе данных.
+
+$$L(\beta) \rightarrow 0$$
+
+
+Как правило, переобучение модели сопровождается огромными коэффициентами при регресии.
+
+Идея регуляризации состоит в наложении ограничения на вектор весов (часто говорят — наложение штрафа за высокие веса).
+
+Исходная задача оптимизации функции потерь заменяется на задачу оптимизации той же функции, но с добавочным слагаемым, которое не позволяет найти истинный минимум. Причем это слагаемое зависит от весов модели. В качестве штрафа принято использовать норму вектора весов.
+
+$$\tilde{L}(\beta) = L(\beta) + \alpha ||\beta||_p $$
+
+$$\tilde{L}(\beta)\rightarrow \min_{\beta}$$
+
+В случае квадратичной функции потерь получаем:
+
+$$\frac{1}{n}||y - X \cdot {\beta}||^2 + \alpha ||\beta||_p \rightarrow \min_{\beta}$$
+
+
+где $||\beta||_p$ - норма весов степени $p$ вычисляемая как:
+
+$$||\beta||_p = \sum_{i=0}^m|\beta_i|^p$$
+
+На первый взгляд, ничего особо не изменилось по сравнению с изначальной задачей оптимизации. Добавилось только одно слагаемое — $\alpha ||\beta||_p$. Однако это слагаемое имеет важное значение:
+* Во-первых, оно не дает найти истинный минимум функции потерь, так как минимум итоговой функции несколько смещен относительно истинного минимума
+* Во-вторых, оно не допускает высоких значений параметров, так как, если $||\beta||_p$ будет слишком большой, минимума найдено не будет.
+
+Таким образом, именно это маленькое слагаемое позволяет нам побороть переобучение.
+
+Коэффициент $\alpha$ принято называть **коэффициентом регуляризации**. Он отвечает за «силу» регуляризации. Чем он больше, тем меньшие значения может принимать слагаемое $\alpha ||\beta||_p$, то есть тем сильнее ограничения на норму весов (штраф).
+
+
+Порядок нормы $p$ в общем случае может быть любой — главное, чтобы она была больше 1. Однако на практике распространены только первая и вторая степени, так называемые $L_1$- и $L_2$-регуляризации.
+
+> Обратите внимание на сумму под знаком корня. У нас она начинается с $0$. Однако иногда в литературе можно встретить $i=1$ (например [здесь](https://dyakonov.org/2019/10/31/линейная-регрессия/)), то есть свободный член $\beta_0$ не регуляризируют. Мы будем придерживаться реализации в sklearn, в которой $\beta_0$ всё-таки включается в регуляризацию.
+
+> Еще одно важное свойство регуляризации - это то, что позволяет обеспечить существование обратной матрицы и избавиться от мультиколлинеарности в данных.
+
+Рассмотрим наиболее распространенные случаи регуляризации и попробуем воспользоваться ими для нашей задачи.
+
+#### $L_1$-регуляризация (Lasso)
+
+**$L_1$-регуляризацией, Lasso (Least Absolute Shrinkage and Selection Operator)**, называется регуляризация, в которой порядок нормы $p=1$.
+
+
+$$\tilde{L}(\beta) = L(\beta) + \alpha ||\beta||_1 \rightarrow \min_{\beta}$$
+
+ или
+
+$$\tilde{L}(\beta) = \frac{1}{n} ||y - X \cdot {\beta}||^2 + \alpha \sum_{i=0}^m|\beta_i|\rightarrow \min_{\beta}$$
+
+Таким образом, в случае -регуляризации мы ограничиваем сумму модулей весов модели. Напомним, такая величина называется нормой Манхэттена (расстоянием городских кварталов).
+
+Особенность метода заключается в том, что коэффициенты, стоящие при коллинеарных или высококоррелированных факторах, зануляются.
+
+Также чем выше коэффициент регуляризации, тем больше вероятность того, что коррелированные или малозначащие факторы будут исключены из модели.
+
+В sklearn $L_1$-регуляризация реализована в классе Lasso, а заданная выше оптимизационная задача решается алгоритмом координатного спуска (Coordinate Descent).
+
+```python
+from sklearn.linear_model import Lasso
+```
+
+#### $L_2$-регуляризация (Ridge)
+
+$L_2$-регуляризация (Ridge), или регуляризация по Тихонову — это регуляризация, в которой порядок нормы $p=2$.
+
+Тогда, если подставить $p=2$ в наши формулы, то оптимизационная задача в случае будет иметь вид:
+
+$$\tilde{L}(\beta) = L(\beta) + \alpha ||\beta||_2 \rightarrow \min_{\beta}$$
+
+ или
+
+$$\tilde{L}(\beta) = \frac{1}{n} ||y - X \cdot {\beta}||^2 + \alpha \sum_{i=0}^m(\beta_i)^2\rightarrow \min_{\beta}$$
+
+Видно, что норма порядка $p=2$ в случае $L_2$-регуляризации мы накладываем ограничение на длину вектора весов $\beta$.
+
+У данной задачи даже есть аналитическое решение, полученное математиком Тихоновым, вот оно:
+
+$$\beta=(X^T \cdot X + \alpha \cdot E)^{-1} \cdot X^T \cdot y$$
+
+здесь $E$ - единичная матрица размера $(m+1) \times (m+1)$
+
+Преимущество этой формулы в том, что, если $\alpha > 0$, то матрица $X^TX + \alpha E$ гарантированно является невырожденной, а значит у нее 100% есть обратная. Так получается за счёт того, что по диагонали матрицы мы добавляем поправки, которые создают линейную независимость между столбцами матрицы.
+
+За реализацию линейной регрессии с $L_2$-регуляризацией в `sklearn` отвечает класс [`Ridge`](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html). Основной параметр модели, на который стоит обратить внимание — alpha, коэффициент регуляризации из формулы Тихонова.
+
+```python
+from sklearn.linear_model import Ridge
+```
+
+### Регуляризация: Сравнение Моделей
+
+А теперь давайте применим регуляризацию на нашем датасете и сравним линейные модели.
+
+
+
+Так как у всех моделей единый интерфейс (методы fit(), predict() и атрибут coef_), то для избежания дублирования кода можно написать небольшую функцию, которая будет выполнять обучение переданной в нее модели на обучающей выборке, оценивать качество модели на обучающей и тестовой выборках по переденной метрике, а также считать сумму модулей коэффициентов модели.
+
+
+
+```python
+def validate_model(model, degree, X_train, y_train, X_test, y_test, metric):
+ #Инициализируем стандартизатор StandardScaler
+ scaler = preprocessing.StandardScaler()
+ #Подгоняем параметры стандартизатора (вычисляем среднее и СКО)
+ scaler.fit(X_train)
+ #Производим стандартизацию тренировочной выборки
+ X_train = scaler.transform(X_train)
+ #Производим стандартизацию тестовой выборки
+ X_test = scaler.transform(X_test)
+
+ #Создаём генератор полиномиальных признаков
+ poly = preprocessing.PolynomialFeatures(degree=degree, include_bias=False)
+ poly.fit(X_train)
+ #Генерируем полиномиальные признаки для тренировочной выборки
+ X_train = poly.transform(X_train)
+ #Генерируем полиномиальные признаки для тестовой выборки
+ X_test = poly.transform(X_test)
+
+# Обучаем Модель
+ model.fit(X_train, y_train)
+# Делаем Предсказание Для Тренировочной И Тестовой Выборок
+ y_train_pred = model.predict(X_train)
+ y_test_pred = model.predict(X_test)
+
+# Вычисляем Метрики На Тренировочной И Тестовой Выборках
+ train_score = metric(y_train, y_train_pred)
+ test_score = metric(y_test, y_test_pred)
+
+# Считаем Сумму Коэффициентов
+ coef_sum = abs(model.coef_).sum()
+ return model, degree, train_score, test_score, coef_sum
+```
+
+```python
+lr = linear_model.LinearRegression()
+lasso_lr = linear_model.Lasso(alpha=0.1)
+ridge_lr = linear_model.Ridge(alpha=10)
+
+# Метрика Для Оценки Качества
+metric = metrics.mean_absolute_percentage_error
+
+scores_df = pd.DataFrame(
+ data = [
+# Линейная Регрессия
+ validate_model(
+ lr, 1,
+ X_train, y_train,
+ X_test, y_test,
+ metric
+ ),
+# Линейная Регрессия С L1-регуляризацией
+ validate_model(
+ lasso_lr, 1,
+ X_train, y_train,
+ X_test, y_test,
+ metric
+ ),
+# Линейная Регрессия С L2-регуляризацией
+ validate_model(
+ ridge_lr, 1,
+ X_train, y_train,
+ X_test, y_test,
+ metric
+ ),
+# Полиномиальная Регрессия
+ validate_model(
+ lr, 3,
+ X_train, y_train,
+ X_test, y_test,
+ metric
+ ),
+# Полиномиальная Регрессия С L1-регуляризацией
+ validate_model(
+ lasso_lr, 3,
+ X_train, y_train,
+ X_test, y_test,
+ metric
+ ),
+# Полиномиальная Регрессия С L2-регуляризацией
+ validate_model(
+ ridge_lr, 3,
+ X_train, y_train,
+ X_test, y_test,
+ metric
+ )
+ ],
+ columns=['model', 'degree', 'train_score', 'test_score', 'coef_sum']
+)
+
+scores_df.sort_values(by=['test_score', 'train_score'])
+```
+
+Видим, что лучшей моделью оказалась модель Lasso со степенью полинома 3.
+
+
+Давайте попробуем подобрать для нее коэффициент регуляризации $\alpha$.
+
+```python
+alpha_list = np.arange(0.01, 10, 0.1)
+# Создаём Пустые Списки, В Которые Будем Добавлять Результаты
+train_scores = []
+test_scores = []
+
+metric = metrics.mean_absolute_percentage_error
+for alpha in alpha_list:
+# Создаём Объект Класса Линейной Регрессии С L1-регуляризацией
+ lasso_lr = linear_model.Lasso(alpha=alpha, max_iter=10000)
+# Обучаем Модель И Считаем Метрики
+ model, degree, train_score, test_score, coef_sum = validate_model(
+ lasso_lr, 3,
+ X_train, y_train,
+ X_test, y_test,
+ metric
+ )
+ train_scores.append(train_score)
+ test_scores.append(test_score)
+
+scores_df = pd.DataFrame(
+ {
+ 'alpha': alpha_list,
+ 'train_score': train_scores,
+ 'test_score': test_scores
+ }
+)
+
+fig = px.line(
+ data_frame=scores_df,
+ x='alpha',
+ y=['train_score', 'test_score']
+)
+fig.show()
+```
+
+```python
+lasso_lr = linear_model.Lasso(alpha=0.6, max_iter=10000)
+```
+
+### Эластичная Регуляризация (Elastic-net) *
+
+Последний вид регуляризации (хотя их на самом деле больше), который мы рассмотрим, называется Elastic-Net (эластичная сетка). Это комбинация $L_1$ - и $L_2$ -регуляризации.
+
+$$\tilde{L}(\beta) = L(\beta) + \alpha \cdot {\lambda} \cdot ||\beta||_1 + \alpha \cdot \frac{(1-\lambda)}{2} \cdot ||\beta||_2 \rightarrow \min_{\beta}$$
+
+ или
+
+$$\tilde{L}(\beta) = \frac{1}{n}||y - X \cdot {\beta}||^2 + \alpha \cdot {\lambda} \sum_{i=0}^m|\beta_i| + \alpha \cdot \frac{(1-\lambda)}{2} \sum_{i=0}^m(\beta_i)^2\rightarrow \min_{\beta}$$
+
+Здесь коэффициенты и отвечают за вклад слагаемых регуляризации.
+
+Если $\alpha=0$, получаем классическую МНК-задачу оптимизации.
+Если $\alpha \neq 0$, $\lambda=1$, получаем Lasso-регрессию.
+Если $\alpha \neq 0$, $\lambda=0$, получаем Ridge-регрессию с коэффициентом $\frac{\alpha}{2}$.
+
+Аналитического решения у этой задачи нет, поэтому для её решения в sklearn, как и для модели Lasso, используется координатный спуск.
+
+В sklearn эластичная сетка реализована в классе [`ElasticNet`](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.ElasticNet.html) из пакета с линейными моделями — linear_model.
+
+За коэффициент $\alpha$ отвечает параметр `alpha`, за коэффициент $\lambda$ — `l1_ratio`.
+
+
+
+```python
+from sklearn.linear_model import ElasticNet
+```
+
+## Преимущества И Недостатки Линейной Регрессии
+
+**Преимущества:**
+1. Простота интерпретации: Линейная регрессия предоставляет простую формулу, которая позволяет легко интерпретировать взаимосвязь между независимыми и зависимыми переменными.
+2. Вычислительная эффективность: Линейная регрессия требует значительно меньше вычислительных ресурсов, чем более сложные модели, что делает ее хорошим выбором в качестве бейзлайновой модели.
+3. Устойчивость к переобучению: Из-за своей простоты линейная регрессия является алгоритмом, устойчивым к переобучению, а благодаря регуляризации можно забыть о переобучении вовсе. Подбор гиперпараметров для такой линейной модели не так важен, как для более сложных моделей.
+4. Масштабируемость прогнозов: Модель может неплохо предсказывать на данных, значения которых выходят из границ обучающего набора данных.
+
+**Недостатки модели:**
+1. Ограниченность допущений: Линейная регрессия основана на ряде предположений, включая линейность, нормальность распределения остатков, отсутствие мультиколлинеарности и другие. Как правило, в реальных задачах эти условия не выполняются и линейные модели показывают низкое качество, нежели на "игрушечных" задачах.
+2. Неустойчивость к выбросам: Линейная регрессия как и все аналитические модели может постраиваться под выбросы в данных, особенно при отсутствии регуляризации.
+3. Работа с категориальными признаками: Аналитические модели, к коим относятся все линейные модели предназначены для работы с числовыми характеристиками, а не с категориальными. Модель плохо понимает закодированные категориальные признаки и слабо учитывает их при построении уравнения.
+4. Неустойчивость к высоким размерностям: Как правило, линейные модели плохо показывают себя в случае большого количества признаков в данных. Это связано с ухудшением качества сходимости методов оптимизации в пространствах больших размеростей ([проклятие размерности](https://ru.wikipedia.org/wiki/Проклятие_размерности))
+
+
+## Резюме
+
+* Линейная регрессия - простой и эффективный алгоритм для решения задач регрессии, предполагающий, что зависимость между таргетом и фичами линейная
+* Как правило для поиска коэффициентов линейной регрессии (параметров модели) используется метод наименьших квадратов (OLS), предполагающий минимизацию квадратичной функции потерь.
+* Искать минимум функции потерь можно несколькими способами:
+ * Аналитический метод, то есть "в лоб", используя матричную формулу OLS для оценки коэффициентов
+ * Численными методами, такими как градиентный спуск (GD) и стохастический градиентный спуск (SGD)
+* Полиномиальная регрессия - расширение линейной регрессии, которое позволяет моделировать нелинейные зависимости. Полиномиальная регрессия является мощной моделью, позволяющей решать сложные задачи, однако у данной модели есть недостаток в виде необходимости оптимального подбора степени полинома, так как высокие степени хоть и дают неплохие результаты, но и повышают риск переобучения модели.
+* Регуляризация - метод борьбы с переобучением в линейных моделях. Он основан на идее внесения намеренного смещения в модель с целью уменьшить ее разброс. Регуляризация выполняется путем замены оригинальной функции потерь на функцию потерь с добавочным слагающим, зависящим от весов.
+* Существует три основных типа регуляризации: $L_1$ (Lasso), $L_2$ (Ridge) и ElasticNet.
+* $L_1$-регуляризация приводит к занулению коэффициентов при неинформативных признаках.
+* $L_2$-регуляризация уменьшает все коэффициенты, но не обнуляет их.
+* ElasticNet - комбинация $L_1$ и $L_2$ регуляризации.
+* Выбор типа модели и коэффициента регуляризации - важный этап построения линейной модели.
+
+**Небольшое дополнение про категориальные признаки**
+
+Как мы видим, линейные модели рассчитаны на работу с числами.
+
+А как быть, если в датасете присутствуют категориальные фичи, не являющихся числами?
+
+> Например, это может быть пол, уровень образования, город, район и т.д. Как правило, с такими значениями невозможно производить арифметические операции или же результаты их применения не имеют смысла.
+
+Пример:
+
+
+
+В таком случае выполняют кодирование категориальных признаков.
+
+Самый простой способ – использовать one-hot кодирование (one-hot encoding). Пусть исходный признак имеет $K$ уникальных значений. Давайте заменим категориальный столбец на $K$ новых столбцов, которые принимают значения
+$1$ и $0$. Единица ставится, если $i$-ый объект принадлежит $k$-ой категории, в противном случае на месте ставится 0.
+
+
+
+Конечно, one-hot кодирование – это самый наивный способ работы с категориальными признаками, и для более сложных фичей или фичей с большим количеством значений оно плохо подходит.
+
+
+
+
+
+## Дополнительные Материалы
+
+* [Лекции по машинному обучению от В.Л. Аббакумова на ютубчике](https://www.youtube.com/watch?v=_PlC8Niun7U&list=PLlb7e2G7aSpRb95_Wi7lZ-zA6fOjV3_l7&index=8)
+* [Лекции по машинному обучению от Дмитрия Макарова](https://www.dmitrymakarov.ru/opt/) (есть теория и базовая практика)
+* [Лекции по машинному обучению от Cornel Tech](https://kuleshov-group.github.io/aml-book/contents/lecture3-linear-regression.html) (английский, есть базовый код, МНОГО формул с выводом и доказательством)
+* [Учебник по машинному обучению от Яндекса](https://education.yandex.ru/handbook/ml/article/linear-models) (0 кода, но много математики и красивых картинок)
+
+---
+
+## Линейная Разделимость Классов
+
+**Линейная разделимость классов** - это свойство набора данных, при котором в пространстве признаков объекты разных классов могут быть разделены линейной функцией (прямой/плоскостью/гиперплоскостью).
+
+
+
+## Логистическая Регрессия
+
+### Постановка Задачи
+
+Пусть дана выборка объектов и их классов:
+
+$$\{(x_i, y_i)\}_{i=1}^n = \{(x_1, y_1), (x_2, y_2), ..., (x_n, y_n)\}$$
+
+где
+* $x_i = (x_{i1}, x_{i2}, ..., x_{im}), x_i ∈ X, X \subset \mathbb{R} ^{m}$ - множество объектов
+* $y_i ∈ Y, Y =\{0, 1, ..., (k-1)\}$ - множество целевой переменной
+* $m$ - количество признаков
+* $n$ - размер выборки
+* $k$ - количество классов
+
+Необходимо построить модель, восстанавливающую зависимость $y$ от $x$: $$y=f(x)$$
+
+Для упрощения задачи мы с вами сначала рассмотрим задачу бинарной классификации, а затем обобщим результат на мультиклассовую.
+
+Классы обозначим как $0$ и $1$, т.е $Y=\{0, 1\}$.
+
+Будем рассматривать теорию на конкретном примере.
+
+В качестве датасета возьмем датасет о раке молочной железы.
+
+> Датасет содержит 569 образцов тканей груди, каждый из которых описывается 30 признаками, такими как радиус опухоли, текстура, периметр, площадь, гладкость, компактность и др. Целевая переменная в этом наборе данных - это метка, указывающая на то, является ли опухоль доброкачественной (0) или злокачественной (1).
+Характеристики вычислены на основе оцифрованного изображения опухоли молочной железы. Они описывают характеристики ядер клеток, присутствующих на изображении.
+
+[Полное описание датасета](https://scikit-learn.org/stable/datasets/toy_dataset.html#breast-cancer-wisconsin-diagnostic-dataset)
+
+Так как это широкоиспользуемый для экспериментов и обучения датасет, то его можно импортировать прямо из библиотеки `sklearn` из модуля `datasets`.
+
+```python
+import pandas as pd
+import numpy as np
+import plotly.express as px
+
+from sklearn import datasets
+```
+
+Импортируем данные:
+
+```python
+cancer_data = datasets.load_breast_cancer(as_frame=True)
+
+X = cancer_data.data
+y = cancer_data.target
+
+print(X.shape)
+print(y.shape)
+
+X.head()
+```
+
+```python
+y.head()
+```
+
+В нашем случае объектами $x_i$ являются опухоли, характеризующиеся 30 признаками, т.е $m=30$, размер выборки $n=569$
+
+Целевая переменная $y_i$ представляет собой бинарную категориальную переменную $Y=\{0, 1\}$, где
+* $y=0$ - доброкачественная опухоль
+* $y=1$ - злокачественная опухоль
+
+Необходимо обучить классификатор, который будет определять наличие рака по параметрам опухоли.
+
+```python
+X.corrwith(y).sort_values()
+```
+
+### Общая Идея
+
+Итак, чтобы прийти к линейным моделям для задачи классификации, для начала нам нужно вспомнить, как выглядит уравнение модели линейной регрессии в общем случае:
+
+$$\hat{y} = f(x) = x \cdot \beta = \beta_0 + \beta_1 x_{1} + \beta_2 x_{2} + ... + \beta_m x_{m} $$
+
+или в матричном виде:
+
+$$\hat{y} = X \cdot \beta$$
+
+где
+
+$$X=\begin{pmatrix}
+1 & x_{11} & x_{12} & ... & x_{1m} \\
+1 & x_{21} & x_{22} & ... & x_{2m} \\
+\vdots & \vdots & \vdots & \ddots & \vdots \\
+1 & x_{n1} & x_{n2} & ... & x_{nm}
+\end{pmatrix}$$
+
+$$\hat{y}=(\hat{y_1}, \hat{y_2}, ..., \hat{y_n})^T$$
+
+$$\beta = (\beta_0, \beta_1, \beta_2, ..., \beta_m)^T$$
+
+
+Гипотетически, ничего не мешаем нам воспользоваться линейной регрессии для случая классификации.
+
+Если целевая переменная перекодирована в числа, например $Y = \{0, 1\}$, то ничто нам не мешает построить регрессию и восстановить зависимость между $x$ и $y$.
+
+
+Мы будем оптимизировать все тот же метод наименьших квадратов, оптимизируя квадратичную функцию потерь:
+
+$$L(y, \hat{y}) = \frac{1}{n} \sum_{i=1}^n (y_i-\hat{y_i})^2 = \frac{1}{n} \sum_{i=1}^n (y_i-x_i \cdot \beta)^2$$
+
+```python
+# Строим Линейную Регрессию По 1-ому Признаку
+px.scatter(
+ data_frame = -X,
+ x='worst perimeter',
+ y=y,
+ trendline="ols", # линия тренда определяется с помощью OLS
+ trendline_scope="overall",
+ height=400,
+ width=800,
+ title="Линейная регрессия для классификации"
+)
+
+```
+
+И тут мы сталкиваемся с двумя принципиально важными вопросами:
+
+* Кто сказал, что линейная регрессия гарантировано будет выдавать числа $0$ и $1$? Вполне возможна ситуация, когда результат линейной регрессии равен $-10$. К какому классу принадлежит в таком случае объект? Наверное, к классу $0$, но кто нам это гарантировал?
+* Что делать в том случае, если линейная регрессия выдала число между $0$ и $1$, например $0.57$. К какому классу принадлежит такой объект? Наверное, $1$? А почему?
+* Все становится еще хуже, если мы рассматриваем не бинарную, а многоклассовую классификацию
+
+Все это приводит нас к выводу, что **обычная линейная модель и OLS не подходят для классификации.**
+
+Однако, решать задачу как-то надо.
+
+> Идея: давайте переведём задачу классификации в задачу регрессии. Вместо предсказания класса будем предсказывать вероятность принадлежности к этому классу.
+
+Обозначим:
+* $p(x, y=0)$ - вероятность того, что объект $x$ принадлежит классу $0$
+* $p(x, y=1)$ - вероятность того, что объект $x$ принадлежит классу $1$
+
+В нашем примере: $p(x, y=0)$ - вероятность того, что опухоль $x$ доброкачественная, $p(x, y=1)$ - что она злокачественная.
+
+Вероятности принадлежности к классам $0$ и $1$ должны обладать двумя важными свойствами:
+
+* Это должны быть числа от $0$ до $1$: $p \in [0, 1]$
+* В сумме они должны давать $1$: $p(x, y=0) + p(x, y=1)= 1$
+
+Для удобства математических выкладок, в случае бинарной классификации нам достаточно рассматривать только одну вероятность $p(x, y=1)$, так как вероятность принадлежности к классу $0$ можно посчитать как $1-p(x, y=1)$.
+
+> То есть мы должны предсказывать вероятность наличия эффекта (наличие рака в нашем случае).
+
+В итоге мы добьёмся того, что будем предсказывать не дискретный категориальный, а непрерывный числовой признак, который лежит в диапазоне $[0, 1]$. А это уже знакомая нам задача регрессии.
+
+Тут мы и приходим к модели **логистической регрессии - регрессии вероятностей принадлежности к классу**.
+
+### Логистическая Функция
+
+Ключевой вопрос, который перед нами стоит - это как нам заставить модель линейной регрессии выдавать вероятности принадлежности к классам. По сути мы должны свести ответы модели из диапазона $(-∞, +∞)$ к диапазону $[0, 1]$.
+
+
+Тут нам приходит на помощью **логистическая функция (logistic function)** $\sigma(z)$, которая вычисляется как:
+
+$$\sigma(z) = \frac{e^z}{1+e^z} = \frac{1}{1 + e^{-z}}$$
+
+
+> Здесь $e$ — экспонента или число Эйлера. Это число является бесконечным, а его значение обычно принимают равным $2.718$.
+
+График зависимости этой функции от аргумента:
+
+
+
+
+
+
+Данная функция чаще всего называется **сигмоида**.
+
+
+**Важные свойства сигмоиды:**
+
+* Значения сигмоиды $\sigma(z)$ лежат в диапазоне от $0$ до $1$.
+* Функция $\sigma(z) \rightarrow 0$ при $z \rightarrow -∞$ и $\sigma(z) \rightarrow 1$ при $z \rightarrow +∞$
+* $\sigma(z) < 0.5$ при $z < 0$, $\sigma(z) > 0.5$ при $z>0$ и $\sigma(z) = 0.5$ при $z=0$.
+* Сигмоида имеет очень простую и легко вычисляемую производную:
+$$\frac{d\sigma(z)}{dz} = \sigma(z)(1-\sigma(z))$$
+То есть, если значение сигмоиды в определенной точке уже вычислено, то мы можем использовать это же значение для расчёта значения производной (градиента) в этой же точке. Это сильно упрощает расчёты.
+
+
+**А теперь гвоздь программы:**
+
+> Давайте в качестве аргумента $z$ в $\sigma(z)$ будем использовать выход модели линейной регрессии.
+
+Получим:
+$$ f(x) = \sigma(x \cdot \beta) = \frac{1}{1 + e^{-x \cdot \beta}}$$
+
+> Полученное выражение как раз и называется **моделью логистической регрессии (logistic regression)**.
+
+
+Если мы поберем "хорошие" веса $\beta$, то результат логистической регрессии можно будет интерпретировать как вероятность принадлежности объекта $x$ к классу $1$: $p(y=1) = f(x)$.
+
+Вероятность принадлежности объекта к классу $0$ тогда будет вычисляться как $p(y=0) = 1 - p(y=1) = 1 - \sigma(x \cdot \beta)$.
+
+Класс объекта определяется как тот, что имеет максимальную вероятностью:
+
+$$\hat{y} = \arg \max_{y \in Y} (p)$$
+
+В случае бинарной классификации это будет сответствовать тому, что можно если $\sigma(x \cdot \beta) ≥ 0.5$, то мы относим объект к классу $1$, в противном случае - к классу $0$:
+$$\hat{y_i} = \begin{cases}
+1 , & \text{if } \sigma(x \cdot \beta) ≥ 0.5\\
+0 , & \text{if } \sigma(x \cdot \beta) < 0.5\\
+\end{cases}$$
+
+> Обучить модель логистической регрессии - найти такие коэффициенты $\beta$, которые лучшим образом позволяют классифицировать данные.
+
+**Пример**
+
+Представим, что мы построили модель логистической регрессии на задаче классификации опухолей на 2 признаках ('mean radius' и 'worst radius') и нашли оптимальные коэффициенты.
+
+В результате обучения логистической регрессии мы получили следующие коэффициенты:
+
+$$\beta= (\beta_0, \beta_1, \beta_2)^T = (16.59, -2.2, 1.37)^T$$
+
+То есть уравнение линейной модели имеет вид:
+
+$$\beta ⋅ x = -16.59 -2.2 \cdot x_{1} + 1.37 \cdot x_{2}$$
+
+
+К нам приходит новая опухоль со следующими характеристиками: $x^* = (17.5, 15)$. Хотим определить, является ли данная опухоль злокачественной опираясь только на 2 этих признака.
+
+Смотрим на реализацию:
+
+
+```python
+def linear(X, beta):
+# Добавляем Столбец Из Единиц
+ ones = np.ones((X.shape[0], 1))
+ X = np.hstack((ones, X))
+# Вычисляем Прогноз Линейной Модели
+ z = X @ beta
+ return z
+
+def sigmoid(z):
+# Вычисляем Сигмоиду
+ sigma = 1 / (1 + np.exp(-z))
+ return sigma
+
+def predict_proba(X, beta):
+# Делаем Предсказание Линейной Моделью
+ z = linear(X, beta)
+# Вычисляем Сигмоиду
+ sigma = sigmoid(z)
+# Вычисляем Вероятности
+ p = np.array([1 - sigma, sigma])
+ return p.reshape(-1)
+
+def predict(X, beta):
+ p = predict_proba(X, beta)
+# Возвращаем Индекс Максимального Элемента
+ y_hat = np.argmax(p)
+ return y_hat
+```
+
+```python
+beta = np.array([[16.59], [-2.2], [1.37]])
+x = np.array([[17.5, 15]])
+
+p = predict_proba(x, beta)
+y_hat = predict(x, beta)
+print('Вероятности принадлежности к классам: {}'.format(p))
+print('Предсказанный класс: {}'.format(y_hat))
+```
+
+А теперь возьмем другую опухоль: $x = (13.5, 18)$:
+
+```python
+x = np.array([[13.5, 18]])
+
+p = predict_proba(x, beta)
+y_hat = predict(x, beta)
+print('Вероятности принадлежности к классам: {}'.format(p))
+print('Предсказанный класс: {}'.format(y_hat))
+```
+
+### Геометрическая Интерпретация
+
+Разберёмся с геометрией.
+
+
+Начнем с 2D варианта. Пусть мы построили логистическую регрессию для случая двух признаков и получили уравнение модели:
+
+$$z = \beta ⋅ x = \beta_0 + \beta_1 \cdot x_{1} + \beta_2 \cdot x_{2}$$
+
+Для конкретики пусть
+
+$$\beta= (\beta_0, \beta_1, \beta_2)^T = (16.59, -2.2, 1.37)^T$$
+
+Тогда:
+
+$$z = -16.59 -2.2 \cdot x_{1} + 1.37 \cdot x_{2}$$
+
+
+Если рассматривать уравнение линейной регрессии отдельно от сигмоиды, то это уравнение задает плоскость с коэффициентами $\beta_0$, $\beta_1$ и $\beta_2$ .
+Эта плоскость проходит таким образом, чтобы отделить объекты разных классов друг от друга.
+
+
+Если визуализировать данные в 2D, а классы обозначить цветом, то уравнение будет задавать разделяющую прямую.
+
+Причем, смещение этой прямой относительно оси $x_2$ будет равно $\frac{\beta_0}{\beta_2}$.
+
+А коэффициент наклона: $-\frac{\beta_1}{\beta_2}$
+
+
+
+
+Математически подстановка в уравнение плоскости точки, которая не принадлежит ей (находится ниже или выше), означает вычисление расстояния от этой точки до плоскости.
+
+* Если точка находится ниже плоскости, расстояние будет отрицательным ($z < 0$).
+* Если точка находится выше плоскости, расстояние будет положительным ($z > 0$).
+* Если точка находится на самой плоскости, $z = 0$.
+
+Подстановка отрицательных чисел в сигмоиду приведёт к вероятности $p(y=1) > 0.5$, а постановка положительных — к вероятности $p(y=1) < 0.5$.
+
+> Чем больше расстояние от точки, находящейся выше разделяющей плоскости, до самой плоскости, тем больше оценка $p(y=1)$. И наоборот - чем больше расстояние от точки, находящейся ниже плоскости, тем ниже $p(y=1)$ (как следствие выше $p(y=0)$)
+
+Можно построить тепловую карту, которая показывает, чему равны вероятности в каждой точке пространства:
+
+
+
+
+Для случая зависимости целевого признака от трёх факторов мы получаем уравнение:
+
+$$z = \beta ⋅ x = \beta_0 + \beta_1 \cdot x_{1} + \beta_2 \cdot x_{2} + \beta_3 \cdot x_{3}$$
+
+
+Уравнение задаёт плоскость в четырёхмерном пространстве. Но если вспомнить, что $y$ — категориальный признак и классы можно обозначить цветом, то получится перейти в трёхмерное пространство:
+
+
+
+В общем случае линейная модель задает разделяющую плоскость в $m$-мерном пространстве (гиперплоскость).
+
+
+## Метод Максимального Правдоподобия (MLE). Log Loss
+
+> Для поиска параметров нам нужна правильная функция потерь $L(\beta)$, оптимизировав которую мы с вами найдем оптимальные параметры модели $\beta$.
+
+Ранее мы с вами сказали о том, что квадратичная функция (MSE), используемая в МНК (OLS) нам не подходит по ряду причин.
+
+
+**А что тогда подходит?**
+
+Если для регрессионных моделей основной метод построения - МНК, то для моделей, имеющих вероятностную интерпретацию в большинстве случаев используется **метод максимального правдоподобия (Maximum Likelihood Estimation — MLE)**.
+
+> **Правдоподобие** — это оценка того, насколько вероятно получить истинное значение целевой переменной $y$ при данных $x$ и параметрах $\beta$.
+
+Цель метода — найти такие параметры, при которых наблюдается максимум функции правдоподобия. Но для упрощения математических расчётов для поиска используется не само правдоподобие, а его логарифм.
+
+Приведем конечный вид формулы логарифмического правдоподобия для случая бинарной классификации. Вывод формулы и описание метода можно найти [здесь](https://kuleshov-group.github.io/aml-book/contents/lecture4-classification.html#maximum-likelihood).
+
+
+$$L(\beta) = \frac{1}{n} \sum_{i=1}^n (y_i \cdot log(p_{i}) + (1-y_i) \cdot log(1 - p_{i})) $$
+
+где
+
+* $y_i$ - истинный класс $i$-ого объекта (0 или 1)
+* $p_i = p_i(y=1) = \sigma(\beta \cdot x_i)$ - вероятность принадлежности $i$-ого объекта к классу $1$, вычисляемые через сигмоиду
+* $log$ - логарифм, как правило используется натуральный логарифм по основанию $e$
+
+Чем выше значение функции $L(\beta)$, тем больше вероятности $p_i$ сооветствуют истинным классам в данных, то есть, тем лучше модель, а значит тем более подходящими являются параметры $\beta$.
+
+Мы хотим найти такие параметры $\beta$, при которых правдоподобие было бы максимальным:
+
+$$L(\beta) \rightarrow \max_{\beta} $$
+
+Так как правдоподобие нужно максимизировать, а большинство оптимизираторов по умолчанию настроены на минимизацию, то для удобства нужно первратить максимизацию $L(\beta)$ в минимизацию. Для этого нужно перед функцией просто добавить знак минуса:
+
+$$L(\beta) = - \frac{1}{n} \sum_{i=1}^n (y_i \cdot log(p_{i}) + (1-y_i) \cdot log(1 - p_{i}))$$
+
+> Последняя формула называется **логистической функцией потерь** или **log loss** и является одной из самых популярных функций потерь, используемых в машинном обучении в задачах классификации.
+
+**Разберемся как работает выражение:**
+
+$$- (y_i \cdot log(p_{i}) + (1-y_i) \cdot log(1 - p_{i}))$$
+
+* **Сценарий №1:**
+Представим, что нам на вход пришел объект $x_i$, причем $y_i = 1$, т.е злокачественная опухоль. Тогда мы получаем, что второе слагаемое обнуляется:
+$$- (1 \cdot log(p_{i}) + (1-1) \cdot log(1 - p_{i})) = - log(p_{i})$$
+То есть, чем выше вероятность $p_{i}=\sigma(x_i \cdot \beta)$ мы предскажем, тем меньше будет ошибка. То есть для объекта класса $1$ сигмоида должна выдавать высокие значения.
+
+* **Сценарий №2:**
+Представим, что к нам пришел объект $x_i$ с $y_i = 0$, т.е. доброкачественная опухоль. Тогда обнуляется первое слагаемое:
+$$- (0 \cdot log(p_{i}) + (1-0) \cdot log(1 - p_{i})) = - log(1 - p_{i})$$
+В этом случае, чем больше будет вероятность $p_{i}=\sigma(x_i \cdot \beta)$, тем больше будет ошибка. То есть для объектов класса $0$ сигмоида должна выдавать низкие значения $p_i$
+
+
+Таким образом, наша цель - подобрать такие параметры $\beta$ при которых среднее значение log loss по всей выборке было бы минимальным:
+
+$$L(\beta) \rightarrow \min_{\beta} $$
+
+> **Маленькое дополнение №1.** Так как, гипотетически, при накоплении компьютерных вычислений может получиться так, что $\sigma(z) = 0$ или $\sigma(z) = 1$, а по правилам математики $log(0)$ не существует, то в программной реализации вычисления log loss вероятности предварительно приводят к диапазону $[\epsilon, 1 - \epsilon]$, где $\epsilon$ - очень маленькое число, близкое к 0.
+
+> **Маленькое дополнение №2.** В некоторых обучающих материалах (например, [здесь](https://habr.com/ru/companies/ods/articles/323890/) и [здесь](https://github.com/esokolov/ml-course-hse/blob/master/2016-fall/lecture-notes/lecture05-linclass.pdf)) по бинарной классификации вы можете найти обозначение классов $0$ и $1$ как $-1$ и $+1$. В таком случае логистическая функция потерь будет иметь очень простую формулу:
+$$L(\beta) = - \frac{1}{n} \sum_{i=1}^n log(1 + e^{-y_i \cdot x_i \cdot \beta})$$
+Но данные обозначения используются только в теории и при кастомных реализациях алгоритмов. На практике такой вид logloss практически не используется.
+
+**Пример**
+
+Рассмотрим пример расчёта функции log loss.
+
+Пусть у нас есть выборка из четырёх объектов (опухолей) с двумя признаками: $x_{1}$ и $x_{2}$.
+
+В результате поиска коэффициентов мы получили, что нам подходят следующие коэффициенты:
+
+$$\beta= (\beta_0, \beta_1, \beta_2)^T = (16.59, -2.2, 1.37)^T$$
+
+Тогда уравнение плоскости:
+
+$$z = -16.59 -2.2 \cdot x_{2} + 1.37 \cdot x_{1} $$
+
+По формуле сигмоиды мы рассчитали вероятности принадлежности к классам для всех 4-ех объектов и получили:
+
+
+| $i$ | $\large y$| $\large p$ |$\large (1-p)$|
+| | |
+| $1$ | $0$ | $0.2$ | $0.8$ |
+| $2$ |$0$ | $0.8$ |$0.2$ |
+| $3$ |$1$ | $1$ |$0$ |
+| $4$ |$1$ | $0.6$ |$0.4$ |
+
+
+Рассчитаем logloss:
+
+
+
+```python
+def log_loss(y, p):
+# Вычисляем Размер Выборки
+ n = y.shape[0]
+# Зажимаем Значения Вероятностей, Чтобы Не Получить Логарифм От 0
+ p = np.clip(p, 1e-10, 1 - 1e-10)
+# Вычисляем Значение Функции Потерь
+ loss = -np.sum(y * np.log(p) + (1 -y) * np.log(1-p))
+ return loss / n
+
+y = np.array([0, 0, 1, 1])
+
+p = np.array([0.2, 0.8, 1, 0.6])
+
+log_loss(y, p)
+```
+
+Кстати, в `sklearn` log loss можно вычислить с помощью функции `log_loss` из модуля `metrics`. Сравним библиотечный результат с нашей реализацией:
+
+```python
+from sklearn import metrics
+
+metrics.log_loss(y, p)
+```
+
+### Поиск Параметров
+
+Итак, мы получили модель логистической регрессии для случая бинарной классификации.
+
+Формально она записывается как:
+
+$$z = x \cdot \beta = \sum_{j=0}^n \beta_j \cdot x_{j} $$
+
+$$p = \sigma(z) = \frac{1}{1 + e^{-z}}$$
+
+$$L(\beta) = - \frac{1}{n} \sum_{i=1}^n y_i \cdot log(p_{i}) + (1 - y_i) \cdot log(1 - p_{i})$$
+
+$$L(\beta) \rightarrow \min_{\beta} $$
+
+Получилась задача полностью аналогичная той, которую мы рассматривали в контексте линейной регрессиии.
+
+К сожалению, для такой функции потерь аналитическое решение оптимизационной задачи найти не получится: при расчётах получается, что его попросту не существует. Но мы помним, что, помимо аналитических решений, есть и численные.
+
+Например, для поиска параметров можно использовать знакомый нам градиентный спуск. Вспомним, как выглядит итерационная формула метода:
+
+$$\beta^{(k+1)} = \beta^{(k)} - \eta \nabla L(\beta^{(k)})$$
+
+Вывод градиента для логистической функции потерь [здесь](https://www.dmitrymakarov.ru/opt/logistic-regression-05/#12-proizvodnaya-funktsii-logisticheskoy-oshibki) или [здесь](https://education.yandex.ru/handbook/ml/article/linear-models) (раздел "Логистическая регрессия/Вывод формулы градиента")
+
+Приведем только конечную формулу в векторно-матричной форме:
+
+$$\nabla L(\beta) = - \frac{1}{n} X^T(\sigma(X \cdot \beta) - y)$$
+
+
+Для того, чтобы повысить шанс пройти мимо локальных минимумов функции потерь, используется не сам градиентный спуск, а его модификации: например, стохастический градиентный спуск (SGD).
+
+Помним, что применение градиентного спуска требует предварительного масштабирования данных (стандартизации/нормализации). В реализации логистической регрессии в sklearn предусмотрено ещё несколько методов оптимизации, для которых масштабирование не обязательно. О них мы упомянем в практической части модуля.
+
+Иллюстрация градиентного спуска для логистической регрессии в динамике:
+
+
+
+
+
+
+
+
+
+### Регуляризация
+
+В функцию потерь логистической регрессии по умолчанию добавляется регуляризация.
+
+Реализация регуляризации для логистической регрессии в sklearn немного отличается от регуляризации для линейной регрессии. Общий вид функции потерь с регуляризацией выглядит следующим образом:
+
+$$\tilde{L}(\beta) = C \cdot L(\beta) + ||\beta||_p $$
+
+где
+* $C$ — коэффициент, обратный коэффициенту регуляризации. Чем больше $C$, тем меньше «сила» регуляризации.
+* $||\beta||_p = \sum_{j=0}^m|\beta_j|^p$ - норма вектора весов порядка $p$
+
+При $L_1$-регуляризации получим:
+
+$$\tilde{L}(\beta) = C \cdot L(\beta) + \sum_{i=0}^m|\beta_i|$$
+
+При $L_2$-регуляризации получим:
+
+$$\tilde{L}(\beta) = C \cdot L(\beta) + \sum_{i=0}^m(\beta_i)^2$$
+
+
+$$\tilde{L}(\beta) \rightarrow \min_{\beta} $$
+
+
+
+##### **Доказательство Идентичности Обычной регуляризации** *
+
+
+
+Вспомним то, как мы записывали регуляризацию в случае линейной регрессии:
+
+$$\tilde{L}(\beta) = L(\beta) + \alpha ||\beta||_p $$
+
+где $\alpha$ - коэффициент регуляризации.
+
+В нашем же случае:
+
+$$\tilde{L}(\beta) = C \cdot L(\beta) + \sum_{i=0}^m(\beta_i)^2$$
+
+
+Казалось бы, формулы различаются по структуре, но это связано с различием в реализациях в sklearn (код для линейней и логистической регрессии в библиотеке писали разные программисты). Давайте докажем, что соотношения идентичные.
+
+
+Можно разделить всё соотношение на некоторый коэффициент $C > 0$:
+
+$$\frac{1}{C} ( C \cdot L(\beta) + ||\beta||_p) = L(\beta) + \frac{1}{C} ||\beta||_p$$
+
+В математическом анализе доказывается, что точка минимума функций $f(x)$ и $\frac{f(x)}{C}$ - это одна и та же точка.
+
+То есть нет разницы между поиска минимума функции $L(\beta)$ и $\frac{1}{C} L(\beta)$.
+
+Тогда, если обозначить $\alpha = \frac{1}{C}$, то мы получим:
+
+$$\tilde{L}(\beta) = L(\beta) + \frac{1}{C} ||\beta||_p =L(\beta) + \alpha ||\beta||_p $$
+
+Вывод: коэффициент $C$ — это коэффициент, обратный коэффициенту регуляризации $\alpha$.
+
+### Реализация В Sklearn
+
+Посмотрим на реализацию логистической регрессии в `sklearn`.
+
+Примеры кастомной реализации логистической регрессии вы можете найти [здесь](https://www.dmitrymakarov.ru/opt/logistic-regression-05/#25-napisanie-klassa) (в ООП) и [здесь](https://jaketae.github.io/study/logistic-regression/) (в виде функций).
+
+Заранее позаботимся о валидации модели и разделим выборку на тренировочную и тестовую:
+
+```python
+cancer_data = datasets.load_breast_cancer(as_frame=True)
+
+X = cancer_data.data
+y = cancer_data.target
+
+print(X.shape)
+print(y.shape)
+
+X.head()
+```
+
+```python
+from sklearn import model_selection
+
+#Разделяем выборку на тренировочную и тестовую в соотношении 80/20
+#Устанавливаем random_state для воспроизводимости результатов
+
+X_train, X_test, y_train, y_test = model_selection.train_test_split(
+ X, y,
+ test_size=0.2,
+ random_state=1,
+ stratify=y #стратификация
+)
+#Выводим результирующие размеры таблиц
+print('Train:', X_train.shape, y_train.shape)
+print('Test:', X_test.shape, y_test.shape)
+```
+
+Проверим стратификацию данных:
+
+```python
+y_train.value_counts(normalize=True)
+```
+
+```python
+y_test.value_counts(normalize=True)
+```
+
+```python
+X_train.head()
+```
+
+Логистическая регрессия — линейная модель, поэтому она находится в уже знакомом нам модуле `linear_model` из библиотеки `sklearn`.
+
+
+```python
+from sklearn import linear_model #линейные модели
+```
+
+
+
+В модуле находится класс [`LogisticRegression`](https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html), который реализует поиск коэффициентов разделяющей плоскости путём минимизации функции потерь logloss различными численными методами.
+
+Основные параметры Logistic Regression:
+
+* `random_state` — число, на основе которого происходит генерация случайных чисел.
+* `penalty` — метод регуляризации. Возможные значения:
+ * `'l1'` — $L_1$-регуляризация;
+ * `'l2'` — $L_2$-регуляризация (используется по умолчанию);
+ * `'elasticnet'` — эластичная сетка ($L_1$+$L_2$);
+ * `None` — отсутствие регуляризации.
+* `C` — коэффициент обратный коэффициенту регуляризации. Чем меньше C, тем сильнее регуляризация.
+* `solver` — численный метод оптимизации функции потерь logloss, может быть:
+ * `'sag'` — стохастический градиентный спуск (требует масштабирования);
+ * `'saga'` — [модификация предыдущего](https://arxiv.org/pdf/1407.0202.pdf), которая поддерживает работу с негладкими функциями (требует масштабирования);
+ * `'newton-cg'` — [метод Ньютона](https://docs.scipy.org/doc/scipy/tutorial/optimize.html#newton-conjugate-gradient-algorithm-method-newton-cg) с модификацией сопряжённых градиентов (не требует масштабирования);
+ * `'lbfgs'` — [метод Бройдена — Флетчера — Гольдфарба — Шанно](https://ru.wikipedia.org/wiki/Алгоритм_Бройдена_—_Флетчера_—_Гольдфарба_—_Шанно) (не требует масштабирования; используется по умолчанию, так как из всех методов теоретически обеспечивает наилучшую сходимость);
+ * `'liblinear'` — метод [покоординатного спуска](https://ru.wikipedia.org/wiki/Алгоритм_Бройдена_—_Флетчера_—_Гольдфарба_—_Шанно) (не требует масштабирования).
+* `max_iter` — максимальное количество итераций, выделенных на сходимость.
+
+
+Для обучения модели необходимо просто вызвать метод fit(), передав в него матрицу наблюдений X и вектор правильных ответов y.
+
+```python
+# Создаём Объект Класса LogisticRegression
+log_reg = linear_model.LogisticRegression(
+ random_state=42,
+ max_iter=10000,
+ #solver='liblinear'
+)
+# Обучаем Модель, Минимизируя Logloss С Помощью Численных Методов
+log_reg.fit(X_train, y_train)
+# Выводим Результирующие Коэффициенты
+```
+
+Коэффициенты уравнения гиперплоскости:
+* `.intercept_` - свободный член (коэффициент $\beta_0$)
+* `.coef_` - коэффициенты $\beta_1, \beta_2, ..., \beta_m$
+
+```python
+log_reg.intercept_
+```
+
+```python
+log_reg.coef_
+```
+
+```python
+# Составляем Таблицу Из Признаков И Их Коэффициентов
+coef_df = pd.DataFrame({'Features': X_train.columns, 'Coefficients': log_reg.coef_.reshape(-1)})
+# Составляем Строчку Таблицы Со Свободным Членом
+intercept_df = pd.DataFrame({'Features': ['Intercept'], 'Coefficients': log_reg.intercept_.reshape(-1)})
+
+coef_df = pd.concat([intercept_df, coef_df], ignore_index=True)
+coef_df
+```
+
+Предсказать вероятности принадлежности к классам можно с помощью метода `predict_proba`:
+
+```python
+log_reg.predict_proba(X_test).round(2)[-10: ]
+```
+
+Сами классы объектов с помощью метода `predict`:
+
+```python
+# Определяем Классы На Тренировочной Выборке
+y_train_hat = log_reg.predict(X_train)
+# Определяем Классы На Тестовой Выборке
+y_test_hat = log_reg.predict(X_test)
+```
+
+Оценим качество полученного решения по метрике `accuracy`:
+
+```python
+from sklearn.metrics import accuracy_score
+
+print('Train accuracy score: {:.2f}'.format(accuracy_score(y_train, y_train_hat)))
+print('Test accuracy score: {:.2f}'.format(accuracy_score(y_test, y_test_hat)))
+```
+
+## Преимущества И Недостатки Логистической Регрессии
+
+**Преимущества:**
+
+✔️ Простота интерпретации: Модель имеет простую и понятную геометрическую интерпретацию, которую можно донести заказчику.
+
+✔️ Вычислительная эффективность: Логистическая регрессия является простой моделью и не требует высоких вычислительных ресурсов, поэтому легко масштабируется на большие объемы данных.
+
+✔️ Устойчивость к переобучению: Модель не имеет склонности к переобучению, благодаря регуляризации. Подбор гиперпараметров для такой линейной модели не так важен, как для более сложных моделей.
+
+
+**Недостатки:**
+
+⛔️ Требование линейной-разделимости: Главное предположение логистической регрессии заключается в том, что классы являются линейно-разделимыми. Как правило, в реальных задачах это не так.
+
+⛔️ Неустойчивость к выбросам: Логистическая регрессия как и все аналитические модели может постраиваться под выбросы в данных, особенно при отсутствии регуляризации.
+
+⛔️ Работа с категориальными признаками: Аналитические модели, к коим относятся все линейные модели предназначены для работы с числовыми характеристиками, а не с категориальными. Модель плохо понимает закодированные категориальные признаки и слабо учитывает их при построении уравнения.
+
+⛔️ Неустойчивость к высоким размерностям: Как правило, линейные модели плохо показывают себя в случае большого количества признаков в данных. Это связано с ухудшением качества сходимости методов оптимизации в пространствах больших размеростей ([проклятие размерности](https://ru.wikipedia.org/wiki/Проклятие_размерности))
+
+
+## Полиномиальная Логистическая Регрессия
+
+### Общая Идея
+
+Недостаток с требованием к линейной разделимости классов можно легко исправить, если в качестве дополнительных признаков в данных использовать полиномы.
+
+В результате мы получаем модель полиномиальной логистической регрессии.
+
+
+Идея бинарной **полиномиальной логистической регрессии (binary polynomial logistic regression)** заключается в том, чтобы использовать полином внутри сигмоиды и соответственно создать нелинейную границу между двумя классами.
+
+Например, уравнение полинома 2-ой степени для случая 2-ух признаков будет иметь вид:
+
+$$z = \beta_0 + \beta_1 x_{1} + \beta_2 x_{1}^2 + \beta_3 x_{2} + \beta_4 x_{2}^2 + \beta_5 x_{1} x_{2}$$
+
+При этом сам принцип построения модели логистической регрессии никак не меняется.
+
+
+С геометрической точки мы получаем нелинейную разделяющую поверхность в пространстве признаков:
+
+
+
+
+Однако с этим трюком стоит быть осторожным, так как высокие степени полинома приводят к переобучению модели. Поэтому в комбинации с полиномиальными признаками стоит подобрать наилучший параметр регуляризации.
+
+
+
+
+
+Напомним, что полиномиальные модели строятся путем генерации новых полиномиальных признаков в данных с помощью класса `PolynomialFeatures`.
+
+### Реализация В Sklearn
+
+Смотрим пример:
+
+```python
+from sklearn import preprocessing
+```
+
+```python
+#Создаём генератор полиномиальных признаков 2 степени
+poly = preprocessing.PolynomialFeatures(degree=2, include_bias=False)
+poly.fit(X_train)
+
+
+#Генерируем полиномиальные признаки для тренировочной выборки
+X_train_poly = poly.transform(X_train)
+#Генерируем полиномиальные признаки для тестовой выборки
+X_test_poly = poly.transform(X_test)
+
+X_train_poly.shape, X_test_poly.shape
+```
+
+```python
+# Создаём Объект Класса LogisticRegression
+poly_log_reg = linear_model.LogisticRegression(
+ C=0.5, # коэффициент регуляризации
+ penalty='l1', # регуляризация L1
+ solver='liblinear', # численный метод оптимизации
+ random_state=42,
+ max_iter=10000
+)
+# Обучаем Модель, Минимизируя Logloss С Помощью Численных Методов
+poly_log_reg.fit(X_train_poly, y_train)
+
+
+# Определяем Классы На Тренировочной Выборке
+y_train_hat = poly_log_reg.predict(X_train_poly)
+# Определяем Классы На Тестовой Выборке
+y_test_hat = poly_log_reg.predict(X_test_poly)
+
+
+print('Train accuracy score: {:.2f}'.format(accuracy_score(y_train, y_train_hat)))
+print('Test accuracy score: {:.2f}'.format(accuracy_score(y_test, y_test_hat)))
+```
+
+## Оценка Качества Классификации
+
+Ранее мы с вами использовали метрику $accuracy$ для оценки качества классификации. Но в задачах классификации часто используется и другие метрики. Познакомимся с ними.
+
+### Ошибка I И II Рода С Точки Зрения Классификация
+
+Давайте рассмотрим предсказания алгоритма на конкретном объекте под номером из данных с точки зрения статистических гипотез.
+
+Будем считать класс 1 положительным исходом или наличием эффекта (positive), а класс 0 — отрицательным (negative).
+
+В нашем примере positive исходами считаются злокачественные опухоли, а negative - доброкачественные.
+
+Тогда у нас есть два случая, в которых мы можем допустить ошибку:
+
+* **Ошибка I рода ($\alpha$-ошибка)**: ложноположительный результат. То есть мы предсказали наличие эффекта, а эффекта на самом деле нет. Для нашего примера - предсказали, что пациент болен раком, хотя это не так.
+* **Ошибка II рода ($\beta$-ошибка)**: ложноотрицательный результат. То есть мы предсказали отсутствие эффекта, а эффект на самом деле есть. Для нашего примера - предсказали, что опухоль доброкачественная, хотя на самом деле она злокачественная.
+
+Подробнее про статистические ошибки [здесь](https://wiki.loginom.ru/articles/type-i-ii-errors.html).
+
+Ошибки I и II рода — это поможет нам понять суть метрик классификации. Давайте перейдём к ним.
+
+### Confusion Matrix
+
+**Матрица ошибок (confusion matrix)** показывает все возможные исходы совпадения и несовпадения предсказания модели с действительностью. Используется для расчёта других метрик.
+
+Допустим, что у нас есть два класса и алгоритм, предсказывающий принадлежность каждого объекта к одному из классов. Тогда каждая ячейка матрицы ошибок соответствует количеству объектов, попавших в одну из следующих четырёх категорий:
+
+* **Истинно положительные (True Positive, TP)** — это объекты, обозначенные моделью как класс 1 и действительно принадлежащие к классу 1.
+* **Ложноположительные (False Positive, FP)** — это объекты, обозначенные моделью как класс 1, но в действительности принадлежащие к классу 0. То есть это объекты, для которых модель совершила ошибку I рода.
+* **Истинно отрицательные (True Negative, TN)** — это объекты, обозначенные моделью как класс 0 и действительно принадлежащие к классу 0.
+* **Ложноотрицательные (False Negative, FN)** — это объекты, обозначенные моделью как класс 0, но в действительности принадлежащие к классу 1. То есть это объекты, для которых модель совершила ошибку II рода.
+
+Для случая бинарной классификации матрица ошибок будет следующей:
+
+| | $\large \widehat{y}=0$| $\large \widehat{y}=1$ |
+| | | |
+| $\large y=0$ | $90$ | $10$ |
+| $\large y=1$ |$5$ | $5$ |
+
+Тогда $accuracy$:
+
+$$\large accuracy = \frac{5 + 90}{5 + 90 + 10 + 5} = 0.864$$
+
+
+Однако представим, что мы построили классификатор, который просто предсказывает все письма как «не спам», то есть True Negative = 100, False Negative = 10, True Positive = 0, False Positive = 0.
+
+Матрица ошибок будет иметь вид:
+
+| | $\large \widehat{y}=0$| $\large \widehat{y}=1$ |
+| ||||| | | | |--- |
+| $\large i=1$ | $0.85$ | $0.14$ | $0.01$ |
+| $\large i=2$ |$0.1$ | $0.8$ |$0.1$ |
+| $\large i=3$ |$0.5$ | $0.25$ |$0.25$ |
+| $\large i=4$ |$1$ | $0$ |$0$ |
+
+Тогда кросс-энтропию можно переписать в матричном виде:
+
+$$L(\beta) = \frac{1}{N} \sum (Y \circ P)$$
+
+где $\circ$ - поэлементное умножение матриц с последующим сложением всех элементов.
+
+Смотрим на реализацию:
+
+```python
+def cross_entropy(y_true, y_pred):
+# Выполняем One-Hot Кодировку Для Y
+ y_true = np.eye(y_pred.shape[1])[y_true]
+# Зажимаем Значения Вероятностей, Чтобы Не Получить Логарифм От 0
+ y_pred = np.clip(y_pred, 1e-10, 1 - 1e-10)
+# Рассчитываем Значение Функции Потерь
+ loss = - np.sum(y_true * np.log(y_pred)) / len(y_true)
+ return loss
+
+# Истинные Метки Классов
+y_true = np.array([0, 1, 2])
+
+# Предсказанные Вероятности
+y_pred = np.array([[0.8, 0.1, 0.1],
+ [0.1, 0.8, 0.1],
+ [0.1, 0.1, 0.8]])
+
+# Считаем Кросс-энтропию
+loss = cross_entropy(y_true, y_pred)
+print(loss)
+```
+
+В sklearn кросс-энтропия считается с помощью той же самой функции `log_loss` из модуля `metrics`:
+
+```python
+from sklearn.metrics import log_loss
+
+# Истинные Метки Классов
+y_true = np.array([0, 1, 2])
+
+# Предсказанные Вероятности
+y_pred = np.array([[0.8, 0.1, 0.1],
+ [0.1, 0.8, 0.1],
+ [0.1, 0.1, 0.8]])
+
+log_loss(y_true, y_pred)
+```
+
+### Поиск Параметров
+
+Теперь, у нас есть почти все компоненты, чтобы обобщить логистическую регрессию на мультиклассовый случай.
+
+Последний штрих - нужно лишь определить то, как мы будем искать заветные параметры $\beta$.
+
+Опять же для поиска минимума можно использовать алгоритм градиентного спуска:
+
+
+$$\beta^{(k+1)} = \beta^{(k)} - \eta \nabla L(\beta^{(k)})$$
+
+Я не буду приводить вывод формулы градиента для кросс-энтропии, так как это довольно сложные математические выкладки на несколько страниц, а данные знания вам пригодятся только в случае, если вы захотите написать свою собственную логистическую регрессию.
+
+Ниже представлена конечная формула в матричном виде:
+
+$$\nabla L(\beta) = -\frac{1}{N}X^T(Y - P)$$
+
+где
+* $X$ - матрица наблюдений размера $N \times (M+1)$ (с добавочным столбцом из 1)
+* $Y$ - матрица целевой переменной в One-Hot кодировке размера $N \times K$
+* $P$ - матрица вероятностей размера $N \times K$, каждый элемент которой вычисляется как
+
+$$P_{ik} = σ(X \beta_k) =\frac{e^{X \beta_k}}{\sum_{j=0}^{K-1} e^{X \beta_j}}$$
+
+
+
+
+
+### Реализация В Sklearn
+
+Рассмотрим реализацию многоклассовой классификации на примере датасета о пингвинах. Данный датасет является своего рода классическим и часто используется для демонстрации инструментов визуализации, поэтому его можно импортировать напрямую из библиотеки `seaborn`
+
+```python
+import pandas as pd
+from sklearn import linear_model
+from sklearn import metrics
+from sklearn import preprocessing
+import seaborn as sns
+```
+
+```python
+# Загружаем Данные О Пингвинах Из Библиотеки Seaborn
+penguins_data = sns.load_dataset('penguins')
+
+# Выводим Первые Пять Строк Датасета
+penguins_data.head()
+```
+
+```python
+penguins_data.info()
+```
+
+Описание данных:
+
+* species — класс пингвина ('Adelie', 'Chinstrap', 'Gentoo'), целевой признак;
+* island — остров, на котором живёт пингвин ('Torgersen', 'Biscoe', 'Dream');
+* bill_length_mm — длина клюва в миллиметрах;
+* bill_depth_mm — толщина клюва в миллиметрах;
+* flipper_length_mm — длина крыльев;
+* body_mass_g — масса;
+* sex — пол ('Male', 'Female').
+
+Наша цель — предсказать класс пингвина.
+
+Логистическая регрессия — модель, которая не умеет работать с пропусками. Чтобы не получить ошибку, необходимо произвести предварительную предобработку. Для простоты давайте удалим все строки, содержащие пропуски в данных:
+
+
+
+```python
+# Удаляем Пропущенные Значения Из Датасета
+penguins_data = penguins_data.dropna()
+```
+
+```python
+# Разделяем Данные На Признаки И Целевую Переменную
+X = penguins_data.drop('species', axis=1)
+y = penguins_data['species']
+
+# Выводим Первые Пять Строк Признаков
+X.head()
+```
+
+Посмотрим на распределение классов в данных:
+
+```python
+px.histogram(penguins_data, x='species', height=300)
+```
+
+Визуализируем зависимость между признаками в виде диаграммы рассеяния:
+
+```python
+px.scatter_matrix(
+ penguins_data,
+ dimensions=['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm', 'body_mass_g'],
+ color='species'
+)
+```
+
+Данные содержат строковые категориальные столбцы — `island` и `sex`. Логистическая регрессия не умеет работать со строковыми значениями. Необходимо произвести кодирование категориальных признаков.
+
+В случае, если вы работаете с датасетом единожды и не собираетесь применять кодирование к иным данным, то можно воспользоваться простейшим вариантом кодирования категорий - функцией `get_dummies()` из библиотеки `pandas`.
+
+Данная функция позволяет выполнять One Hot-кодирование в одно действие. Однако обладает неприятным недостатком - кодировку нельзя запомнить и применить на другие наборы данных.
+
+```python
+X_dummies = pd.get_dummies(X)
+X_dummies.head()
+```
+
+Создаём модель логистической регрессии. Так как классов в наших данных более 2-ух, то значение параметра `multi_class` выставляем на `'multinomial'` (мультиклассовая классификация).
+
+```python
+#Создаём объект класса LogisticRegression
+log_reg = linear_model.LogisticRegression(
+ multi_class='multinomial', #мультиклассовая классификация
+ max_iter=1000, #количество итераций, выделенных на сходимость
+ random_state=42 #генерация случайных чисел
+)
+
+#Обучаем модель
+log_reg.fit(X_dummies, y)
+#Делаем предсказание вероятностей
+y_pred_proba = np.round(log_reg.predict_proba(X_dummies), 2)
+#Делаем предсказание класса
+y_pred = log_reg.predict(X_dummies)
+```
+
+Для наглядности создадим таблицу из вероятностей для каждого класса и финального предсказания. Выберем пять случайных пингвинчиков из этой таблицы с помощью метода sample():
+
+```python
+#Создаём DataFrame из вероятностей
+y_pred_proba_df = pd.DataFrame(
+ y_pred_proba,
+ columns=['Adelie', 'Chinstrap', 'Gentoo']
+)
+#Создаём DataFrame из предсказанных классов
+y_pred_df = pd.DataFrame(
+ y_pred,
+ columns=['Predicted Class']
+)
+#Объединяем таблицы по вертикальной оси
+y_df = pd.concat([y_pred_proba_df, y_pred_df], axis=1)
+#Выбираем пять случайных строк
+y_df.sample(5, random_state=2)
+```
+
+Из таблицы можно проследить, как происходит предсказание класса пингвина на основе полученных вероятностей. Видно, что выбирается класс, вероятность принадлежности к которому максимальна.
+
+Например, для строки под номером 7 логистическая регрессия предсказала три вероятности: 0.76 — вероятность принадлежности к классу Adelie, 0.24 — к классу Chinstrap и 0 — к классу Gentoo. На основе этих вероятностей было сделано предсказание и модель отнесла пингвина в строке 7 к классу Adelie.
+
+Давайте посмотрим, как в таком случае будет выглядеть отчёт о метриках:
+
+```python
+print(metrics.classification_report(y, y_pred))
+```
+
+Для мультиклассовой классификации к отчёту просто добавляется новая строка, соответствующая третьему классу.
+
+Из отчёта видно, что наша модель идеально решила задачу классификации (все метрики равны 1), то есть классы оказались линейно разделимыми.
+
+
+
+## Резюме
+
+* Логистическая регрессия - один из основных алгоритмов машинного обучения, используемых для классификации
+* Логистическая регрессия - это регрессия на вероятности принадлежности к классам объектов. Ключевая идея модели заключается в использовании сигмоидальной функции поверх классической линейной модели, позволяющей сводить выход к вероятностям.
+* Геометрическая интерпретация логистической регрессии - разделяющая плоскость (гиперплоскость) в пространстве признаков
+* Для поиска параметров модели используется логистическая функция потерь (log loss), получение которой основывается на статистическом методе максимального правдоподобия
+* Поиск параметров осуществляется численными методами, в том числе методом градиентного спуска
+* Логистическая регрессия как и все линейные модели допускает использование регуляризации
+* Расширением модели является ее полиномиальная версия, построенная путем генерации полиномиальных признаков в данных. Такая модель способна к классификации линейно неразделимых объектов, однако имеет высокую склонность к переобучению при увеличении степени полинома
+* Модель логистической регрессии легко адаптируется на случай многоклассовой классификации путем замены сигмоиды на функцию $softmax$ и расширением логистической функции до кросс-энтропии. Принцип обучения при этом не меняется.
+* Качество классификации может быть измерено с помощью разных метрик, наиболее популярные: $accuracy$, $precision$, $recall$ и $F_1$-мера
+
+
+## Дополнительные Материалы
+
+* [Лекции по машинному обучению от Дмитрия Макарова](https://www.dmitrymakarov.ru/opt/logistic-regression-05/#0-binarnaya-logisticheskaya-regressiya) (есть теория и базовая практика)
+* [Лекции по машинному обучению от Cornel Tech](https://kuleshov-group.github.io/aml-book/contents/lecture4-classification.html) (английский, есть базовый код, МНОГО формул с выводом и доказательством)
+* [Учебник по машинному обучению от Яндекса](https://education.yandex.ru/handbook/ml/article/linear-models) (0 кода, но много математики и красивых картинок)
+
+## Связанные заметки
+- [[Нейронные сети]] — персептрон и логистическая регрессия используют ту же идею линейной комбинации признаков и весов
+- [[Обратное распространение ошибки]] — градиентный спуск и цепное правило обобщают идею оптимизации параметров на многослойные сети
+- [[Принципы дискриминантного анализа]] — статистическая формализация той же задачи классификации; обучающая выборка + матрица "объект-свойство" = постановка задачи ML
+- [[Функция потерь]] — C → min в ДА и MSE → min в МНК — один и тот же принцип минимизации ошибки классификации
+- [[Постановка задачи снижения размерности признакового пространства]] — PCA как предобработка перед линейными моделями
+- [[ВР - основы]] — AR-модель — это линейная регрессия, где регрессоры — лаговые значения той же переменной; оценивается МНК
+- [[Логические операции над нечеткими множествами]] — нечёткие границы классов vs линейная разделимость в пространстве признаков
diff --git a/90 Library/Machine Learning/Метрические алгоритмы.md b/90 Library/Machine Learning/Метрические алгоритмы.md
new file mode 100644
index 0000000..e539323
--- /dev/null
+++ b/90 Library/Machine Learning/Метрические алгоритмы.md
@@ -0,0 +1,1695 @@
+---
+status: processing
+type: concept
+tags:
+ - machine-learning
+ - metric-methods
+ - knn
+ - classification
+ - regression
+ - ml-algorithms
+created: 2026-02-26
+updated: 2026-05-07
+title: Метрические алгоритмы
+---
+
+# Метрические алгоритмы
+
+## Краткая справка о библиотеке Scikit-learn
+
+> [**Scikit-learn**](https://scikit-learn.org/stable/index.html) - это библиотека машинного обучения с открытым исходным кодом для языка программирования Python. Она предоставляет простые и эффективные инструменты для предобработки данных, машинного обучения и анализа данных.
+
+**Особенности:**
+
+* Scikit-learn является одной из самых популярных библиотек машинного обучения в мире и используется во многих приложениях, содержащих модели машинного обучения.
+* Библиотека проста в использовании и имеет хорошо документированный API.
+* Scikit-learn предоставляет широкий набор алгоритмов машинного обучения, включая классификацию, регрессию, кластеризацию и снижение размерности.
+* В библиотеку также включены функции для предобработки данных, необходимой перед подачей данных в модель
+* Scikit-learn в основном направлен на работу именно с классическим ML, хотя в ней поддерживается и создание простейших нейронных сетей. Однако использование ее для задач глубокого обучения не рекомендуется, для этого есть специализированные инструменты (Tensorflow и PyTorch)
+
+## Идея метрических алгоритмов
+
+Идею метрических алгоритмов можно сравнить с простой философской идеей "мы - это наше окружение" или "скажи мне, кто твой друг, и я скажу, кто ты".
+
+Бытовые примеры:
+
+* Хотим продать квартиру, но не знаем ее цену. Для этого в интернете находим 10 похожих по характеристикам квартир, усредняем их цены и получаем примерную стоимость.
+
+* Есть 3000 текстов разбитые по тематикам (художественная литература, спорт, политика и т.д.), хотим определить тематику текста, не читая его. Найдем 15 наиболее похожих текстов, посмотрим на их тематики и присвоим новому тексту ту тематику, которая преобладает.
+
+* Есть 1000 старых покупателей и 10 новых, хотим предложить новым покупателям то, что покупали старые, похожие на них.
+
+**Метрические алгоритмы машинного обучения** представляют собой класс методов, основанных на измерении расстояний между объектами в пространстве признаков.
+
+Принцип работы метрических алгоритмов в случае обучения с учителем заключается в том, что значение таргета для объекта определяется путем анализа его ближайших по расстоянию соседей из обучающей выборки. Расстояние между объектами измеряется с использованием различных метрик.
+
+Особенность метрических алгоритмов заключается в том, что они не строят явную модель на основе данных, а основываются на хранении и использовании обучающих примеров для принятия решений. Как такого обучения в алгоритмах не предполагается. Такой подход еще часто называется **"ленивым обучением" (lazy learning)**.
+
+## Расстояние между объектами
+
+Ключевая идея методов - использование близости между объектами для принятия решения. Как выразить близость в численном эквиваленте?
+
+Существует множество способов измерить. Наиболее популярные метрики:
+
+
+
+В библиотеке [scikit-learn (sklearn)](https://scikit-learn.org/stable/index.html) сборник функций для вычисления расстояний представлен в модуле [pairwise](https://scikit-learn.org/stable/modules/classes.html#module-sklearn.metrics.pairwise). Самая обобщенная из этих функций - [pairwise_distances()](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.pairwise_distances.html#sklearn.metrics.pairwise_distances). Данная функция принимает векторы или матрицы и вычисляет расстояние между ними по переданной в качестве аргумента `metric` методике.
+
+Рассмотрим несколько наиболее часто используемых метрик:
+
+1. Евклидово расстояние ($L_2$-норма):
+$$\rho(x_1, x_2) = \sqrt{ (x_{11} - x_{21}) ^ 2 + (x_{12} - x_{22})^2+ ... + (x_{1m} - x_{2m})^2} =$$$$$$$$= \sqrt{\sum_{i=1}^m (x_{1i} - x_{2i})^2}$$
+
+```python
+import numpy as np
+from sklearn.metrics.pairwise import pairwise_distances
+```
+
+```python
+x = np.array([[0, 1, 1, 1]])
+y = np.array([[1, 2, 1, 2]])
+pairwise_distances(x, y, metric='euclidean')
+```
+
+2. Манхэттенское расстояние ($L_1$-норма):
+$$\rho(x_1, x_2) = |x_{11} - x_{21}| + |x_{12} - x_{22}|+ ... + |x_{1m} - x_{2m}| = \sum_{i=1}^m |x_{1i} - x_{2i}|$$
+
+```python
+x = np.array([[0, 1, 1, 1]])
+y = np.array([[1, 2, 1, 2]])
+pairwise_distances(x, y, metric='manhattan')
+```
+
+3. Расстояние Минковского ($L_p$-норма):
+$$\rho(x_1, x_2) = (|x_{11} - x_{21}| ^ p + |x_{12} - x_{22}|^p+ ... + |x_{1m} - x_{2m}|^p)^{\frac{1}{p}} = (\sum_{i=1}^m |x_{1i} - x_{2i}|^p)^{\frac{1}{p}}$$
+
+```python
+x = np.array([[0, 1, 1, 1]])
+y = np.array([[1, 2, 1, 2]])
+pairwise_distances(x, y, metric='minkowski', p=3)
+```
+
+4. Косинусное расстояние:
+$$\rho(x_1, x_2) = 1- cos(\hat{(x_1, x_2)}) = 1 - \frac {{x_1} \cdot {x_2}} {||x_1|| \cdot ||x_2||}$$
+
+```python
+from sklearn.metrics.pairwise import cosine_distances
+
+x = np.array([[0, 1, 1, 1]])
+y = np.array([[1, 2, 1, 2]])
+pairwise_distances(x, y, metric='cosine')
+```
+
+Все перечисленные метрики расстояния поддерживаются в метрических алгоритмах
+
+Качество модели сильно зависит от выбора метрики. Поэтому способ измерения расстояния может использоваться в качестве внешнего параметра алгоритма (гиперпараметра), управляя которым, исследователь может модифицировать работу алгоритма и улучшать качество получаемого решения.
+
+## Алгоритм kNN для классификации
+
+В данном уроке мы будем рассматривать самого популярного представителя метрических алгоритмов - метод k-ближайших соседей (k-nearest neighbors, kNN).
+
+Общую идею алгоритма проще всего понять на примере классификации. Поэтому с нее мы и начинаем.
+
+### Общая Идея Алгоритма
+
+Пусть мы решаем задачу классификации на 2 класса по двум признакам $x_1$ и $x_2$:
+
+
+
+Хотим определить, к какому классу отнести красный объект - к желтым или фиолетовым.
+
+Если руководствоваться идеей kNN, то нам нужно:
+1. Рассчитать расстояние от нашего целевого объекта до всех объектов из выборки.
+2. Затем определить k ближайших по расстоянию объектов (соседей), которые мы будем использовать для определения класса.
+3. Среди выбранных посчитать количество объектов каждого из классов и определить класс большинства.
+
+Вот и весь алгоритм.
+
+При этом, как видно, от выбора количества соседей ($k$) будет зависеть и результат классификации.
+
+Например, в случае, если мы возьмем $k=3$, то есть будем использовать 3 соседа, то наш целевой объект будет отнесен к фиолетовым точкам. Если же мы возьмем в качестве $k=6$, то объект будет отнесен к классу желтых точек.
+
+### Формализация Алгоритма
+
+Ну а теперь формализуем это в виде алгоритма.
+
+---
+Пусть дана выборка объектов и их классов:
+
+$$\{(x_1, y_1), (x_2, y_2), ..., (x_n, y_n)\}=\{(x_i, y_i)\}_{i=1}^n$$
+
+где
+* $x_i = (x_{i1}, x_{i2}, ..., x_{im}), x_i ∈ X, X \subset \mathbb{R} ^{m}$ - множество объектов
+* $y_i ∈ Y, Y=\{1,..., C\}$ - множество классов
+* $m$ - количество признаков
+* $n$ - размер выборки
+* $C$ - количество классов
+
+Задана функция расстояния $\rho(x_i, x_j)$, обладающая свойствами:
+
+* Неотрицательности: $\rho(x_i, x_j) >= 0$
+* Симметричности: $\rho(x_i, x_j) = \rho(x_j, x_i)$.
+
+**Алгоритм:**
+
+Чтобы определить класс $\hat{y}(x_t)$ для нового объекта $x_t$ нужно:
+1. Вычислить расстояние между объектом $x_t$ и каждым объектом $x_i$ в обучающей выборке:
+
+ $$\rho(x_t, x_i), ∀x_i ∈ X$$
+
+2. Выбрать $k$ объектов с наименьшим расстоянием:
+
+ $$N_k(x_t) = \\{x_i \in X | \rho(x_t, x_i) < \rho(x_t, x_j), ∀ j \neq i\\}$$
+
+ $$j = {1, 2, ..., n}$$
+ $$i={1, 2, ..., k}$$
+
+ где $N_k(x)$ - множество $k$ ближайших соседей целевого объекта $x$.
+
+3. Присвоить новому объекту класс, как наиболее часто встречающийся класс среди объектов из $N_k(x)$:
+
+ $$\hat{y}(x_t) = \arg \max_{y \in Y} \sum_{i=1}^{k}\mathbb{I}[y_i = y]$$
+ здесь $\mathbb{I}[y_i = y]$ - индикаторная функция, которая возвращает 1, если условие в скобках выполняется и 0 в противном случае. То есть формула обозначает подсчет количества объектов каждого класса среди соседей.
+
+### Пример На Конкретных Цифрах
+
+Рассмотрим следующий пример. У нас есть обучающая выборка из 10 объектов, каждый из которых имеет два признака.
+
+| № Объекта | Признак 1 | Признак 2 | Класс |
+|---|---|---|---|
+| 1 | 1 | 1 | A |
+| 2 | 2 | 2 | A |
+| 3 | 3 | 3 | A |
+| 4 | 4 | 4 | B |
+| 5 | 5 | 5 | B |
+| 6 | 6 | 6 | B |
+| 7 | 7 | 7 | C |
+| 8 | 8 | 8 | C |
+| 9 | 9 | 9 | C |
+| 10 | 10 | 10 | C |
+
+Пронумеруем классы A, B и C числами 1, 2, 3, тогда множество классов $Y=\{1, 2, 3\}$.
+
+Теперь предположим, что у нас есть новый объект $x_t$ с признаками $x_t=(x_{t1}, x_{t2}) = (5, 5)$.
+
+Чтобы классифицировать объект $x_t$, мы должны:
+
+1. Вычислить расстояние между новым объектом и каждым объектом в обучающей выборке:
+$$\rho(x_t, x_i), ∀x_i ∈ X$$
+ Считаем:
+$$\rho(x_t, x_1) = \sqrt{(5-1)^2 + (5-1)^2} = 8.4853$$
+
+$$\rho(x_t, x_2)= \sqrt{(5-2)^2 + (5-2)^2} = 5.6569$$
+
+$$\rho(x_t, x_3) = \sqrt{(5-3)^2 + (5-3)^2} = 3.6056$$
+
+$$\rho(x_t, x_4) = \sqrt{(5-4)^2 + (5-4)^2} = 1.4142$$
+
+$$\rho(x_t, x_5) = \sqrt{(5-5)^2 + (5-5)^2} = 0$$
+
+$$\rho(x_t, x_6) = \sqrt{(5-6)^2 + (5-6)^2} = 1.4142$$
+
+$$\rho(x_t, x_7) = \sqrt{(5-7)^2 + (5-7)^2} = 3.6056$$
+
+$$\rho(x_t, x_8) = \sqrt{(5-8)^2 + (5-8)^2} = 5.6569$$
+
+$$\rho(x_t, x_9) = \sqrt{(5-9)^2 + (5-9)^2} = 8.4853$$
+
+$$\rho(x_t, x_{10}) = \sqrt{(5-10)^2 + (5-10)^2} = 8.4853$$
+
+2. Выбрать $k$ объектов с наименьшим расстоянием.
+$$N_k(x_t) = \{x_i \in X | \rho(x_t, x_i) < \rho(x_t, x_j), ∀ j \neq i\}$$
+В нашем случае $k=3$, тогда находим 3 ближайших объекта - это будут 4, 5 и 6 объекты:
+$$N_k(x) = \{x_4, x_5, x_6\}$$
+
+3. Присвоить новому объекту класс, который встречается чаще всего среди выбранных $k$ объектов.
+
+ $$\hat{y_t} = a(x_t) = \arg \max_{y \in Y} \sum_{i=1}^{k}\mathbb{I}[y_i = y]$$
+ Считаем сколько объектов каждого класса среди соседей. Объектам $x_4, x_5$ и $x_6$ из обучающей выборки сооветствуют свои классы $y_4$, $y_5$ и $y_6$.
+ Для класса 1 (A):
+ $$ \sum_{i=1}^{3}\mathbb{I}[y_i = 1] = \mathbb{I}[y_4= 1] + \mathbb{I}[y_5= 1] + \mathbb{I}[y_6= 1] = 1 + 0 + 0 = 1$$
+ Для класса 2 (B):
+ $$ \sum_{i=1}^{3}\mathbb{I}[y_i = 2] = \mathbb{I}[y_4= 2] + \mathbb{I}[y_5= 2] + \mathbb{I}[y_6= 2] = 0 + 1 + 1 = 2$$
+ Для класса 3 (С):
+ $$ \sum_{i=1}^{3}\mathbb{I}[y_i = 3] = \mathbb{I}[y_4= 3] + \mathbb{I}[y_5= 3] + \mathbb{I}[y_6= 3] = 0 + 0 + 0 = 0$$
+ Тогда
+ $$\hat{y_t} = \arg \max_{y \\in \\{1, 2, 3\\}}(1, 2, 0) = 2$$
+ Номер 2 соответствует классу B.
+
+То есть для объекта $x_t=(5, 5)$ мы присваиваем класс B.
+
+### Оценка Вероятностей Принадлежности К Классам
+
+Легко заметить, что алгоритм kNN позволяет также оценивать не только сами классы, но и вероятности принадлежности к этим классам. Для этого достаточно просто посчитать частоты классов соседей.
+
+Тогда вероятность того, что объект $x_t$ принадлежит классу $c$ равна:
+
+ $$\hat{p_c}(x_t) = \frac{1} {k} \sum_{i=1}^{k}\mathbb{I}[y_i = y_c]$$
+
+Для примера выше получим:
+
+Для класса 1 (A):
+$$ \hat{p_1}(x_t) = \frac{1} {3} \sum_{i=1}^{3}\mathbb{I}[y_i = 1] = \frac{1} {3} (\mathbb{I}[y_4= 1] + \mathbb{I}[y_5= 1] + \mathbb{I}[y_6= 1]) = \frac{1} {3} (1 + 0 + 0) = \frac{1} {3}=0.33$$
+Для класса 2 (B):
+$$ \hat{p_2}(x_t) = \frac{1} {3}\sum_{i=1}^{3}\mathbb{I}[y_i = 2] = \frac{1} {3} (\mathbb{I}[y_4= 2] + \mathbb{I}[y_5= 2] + \mathbb{I}[y_6= 2]) = \frac{1} {3}(0 + 1 + 1) = \frac{2} {3}=0.66$$
+Для класса 3 (С):
+$$ \hat{p_3}(x_t) = \frac{1} {3} \sum_{i=1}^{3}\mathbb{I}[y_i = 3] = \frac{1} {3} (\mathbb{I}[y_4= 3] + \mathbb{I}[y_5= 3] + \mathbb{I}[y_6= 3]) = \frac{1} {3} (0 + 0 + 0) = \frac{0} {3}=0$$
+
+То есть для объект $x_t=(5, 5)$ с вероятность $0.33$ принадлежит классу A, с вероятнотью $0.66$ - классу B и с вероятностью $0$ - классу C.
+
+### Реализация В Python
+
+```python
+import pandas as pd
+import numpy as np
+import seaborn as sns
+import plotly.express as px
+
+from sklearn.datasets import make_classification
+```
+
+Создадим игрушечный датасет с помощью функции `make_classification` из 500 наблюдений, 2 признаков и 2 классов.
+
+```python
+X, y = make_classification(
+ n_samples=500, # количество объектов
+ n_features=2, # количество признаков
+ n_informative=2, # количество информативных признаков
+ n_redundant=0, # количество избыточных
+ n_classes=2, # количество классов
+ n_clusters_per_class=2, # количество кластеров
+ flip_y=0.01, # коэффициент шума
+ random_state=1, # число, фиксирующее генератор случайных чисел
+ # scale=[1, 100] # масштаб признаков
+ # class_sep=5, # зазор между классами
+)
+print(X.shape, y.shape)
+
+# Переводим X и y в DataFrame для удобства дальнейшей работы
+X = pd.DataFrame(X, columns=['x1', 'x2'])
+y = pd.Series(y).astype('str')
+```
+
+```python
+X.head()
+```
+
+```python
+y.head()
+```
+
+Визуализируем данные на плоскости:
+
+```python
+fig = px.scatter(
+ x=X.iloc[:, 0], y=X.iloc[:, 1],
+ color=y, opacity=1,
+ height=400, width=700
+)
+fig.show()
+```
+
+Нужно предсказать класс для следующего объекта:
+
+```python
+x = np.array([[0, 0.1]])
+x
+```
+
+В качестве алгоритма для классификации будем использовать kNN с 5-мя соседями.
+
+В библиотеке `sklearn` алгоритмы, основанные на использовании соседей реализованы в модуле [neighbors](https://scikit-learn.org/stable/modules/classes.html#module-sklearn.neighbors).
+
+Метод k-ближайших соседей для классификации реализован в виде класса [KNeighborsClassifier](https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html).
+
+**Основные параметры алгоритма:**
+
+- `n_neighbors`: количество ближайших соседей, которое будет использоваться для классификации.
+- `metric`: метрика расстояния, используемая для измерения расстояния между объектами. [Список возможных значений](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.pairwise.distance_metrics.html#sklearn.metrics.pairwise.distance_metrics). Примеры:
+ - `'minkowski'` - расстояние Минковского (используется по умолчанию)
+ - `'cosine'` - косинусное расстояние
+ - `'euclidean'` - евклидово расстояние
+ - `'manhattan'` - расстояния Манхэттена
+
+- `p`: норма, используемая для измерения расстояния между объектами (по умолчанию p=2)
+- `n_jobs`: количество ядер процессора, используемых для вычислений (чтобы использовать все доступные мощности процессора нужно установить параметр в -1).
+
+```python
+from sklearn.neighbors import KNeighborsClassifier
+```
+
+Создаем объект kNN:
+
+```python
+knn_clf = KNeighborsClassifier(n_neighbors=5, metric='minkowski', p=2)
+knn_clf
+```
+
+Для обучения алгоритмов в `scikit-learn` используется метод `fit()`. Для kNN как такового обучения нет, поэтому данный метод просто сохраняет обучающую выборку в атрибуты объекта kNN.
+
+```python
+knn_clf.fit(X.values, y.values)
+```
+
+Предсказать класс объекта с помощью функции `predict()`.
+
+**Важно:** в метод передаются двумерные данные размера $n \times m$, даже если это один объект, то его нужно передать в виде матрицы с одной строкой.
+
+```python
+knn_clf.predict(x)
+```
+
+Вероятности принадлежности к классам можно определить с помощью метода `predict_proba()`
+
+```python
+knn_clf.predict_proba(x)
+```
+
+### Разделяющая Поверхность kNN
+
+Напомним, что геометрически решить задачу классификации - это построить разделяющую поверхность в пространстве признаков.
+
+**Разделяющая поверхность (decision bound)** - это плоскость/гиперплоскость (-и) в прострастранстве признаков, которая(-ые) отделяет классы друг от друга.
+
+kNN также строит разделяющую поверхность. Форма разделяющей поверхности зависит от параметров алгоритма (количество соседей, метрика расстояния и т.д.)
+
+Примеры для простейшего случая двух признаков с разным количеством соседей:
+
+
+
+Напишем функцию для визуализации разделяющей поверхности:
+
+```python
+def plot_decision_bound_classification(X, y, model, height=400, width=700):
+ xx1, xx2 = np.meshgrid(
+ np.arange(X.iloc[:, 0].min() - 0.1, X.iloc[:, 0].max() +0.1, 0.1),
+ np.arange(X.iloc[:, 1].min() - 0.1, X.iloc[:, 1].max() +0.1, 0.1)
+ )
+ X_net = np.hstack([xx1.reshape(-1, 1), xx2.reshape(-1, 1)])
+ probs = model.predict_proba(X_net)[:, 0]
+ probs = probs.reshape(xx1.shape)
+ fig = px.scatter(
+ x=X.iloc[:, 0],
+ y=X.iloc[:, 1],
+ color=y,
+ opacity=1,
+ height=height,
+ width=width
+ )
+ fig.update_layout(
+ showlegend=False,
+ xaxis_title="x1",
+ yaxis_title="x2"
+ )
+ fig.add_contour(
+ x=xx1[0], y=xx2[:, 0], z=probs,
+ showscale=True,
+ opacity=0.5,
+ colorscale='RdBu_r',
+ contours=dict(showlabels=True, coloring='fill')
+ )
+
+ fig.add_contour(
+ x=xx1[0], y=xx2[:, 0], z=probs,
+ showscale=False,
+ opacity=0.5,
+ contours=dict(showlabels=True, size=30, coloring='lines')
+ )
+ return fig
+```
+
+```python
+plot_decision_bound_classification(X, y, knn_clf)
+```
+
+В данном случае разделяющей поверхностью будет линия, где вероятность принадлежности к классу 0 равна $0.5$, проходя через эту линию цвет области меняется с оттенков красного на оттенки синего.
+
+**Примечание:**
+
+Кстати, в scikit-learn есть функция [DecisionBoundaryDisplay](https://scikit-learn.org/stable/modules/generated/sklearn.inspection.DecisionBoundaryDisplay.html#sklearn.inspection.DecisionBoundaryDisplay.from_estimator) для построения разделяющей поверхности. Только она не интерактивная(
+
+### Оценка Качества Классификации
+
+Вычислим качество полученной модели с помощью метрики `accuracy`.
+
+Напомним, данная метрика показывает для скольких объектов класс был определен верно (в доле от общего числа данных в выборке):
+
+$$accuracy = \frac{1}{n}\sum_{i=1}^n{\mathbb{I}[\hat {y_i} = y_i]}$$
+
+Для вычисления качества модели можно использовать метод `score()`. По умолчанию для всех классификаторов из `sklearn` данный метод вычисляет именно метрику `accuracy`. В метод нужно передать матрицу наблюдений, для которых нужно сделать прогноз и вектор правильных ответов.
+
+Модель предскажет классы для каждого объекта и рассчитает значение метрики:
+
+```python
+knn_clf.score(X.values, y.values)
+```
+
+Однако, как правило, метрики качества считают с помощью специализированных функций.
+
+Все функции для вычисления метрик в `scikit-learn` представлены в модуле `metrics`.
+
+Для вычисления метрики `accuracy` используется функция [`accuracy_score`](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.accuracy_score.html).
+
+В данную функцию нужно передать следующие аргументы:
+
+* `y_true` - массив с корректными метками (классами)
+* `y_pred` - массив с предсказаниями модели
+
+Рассчитаем значение метрики accuracy:
+
+```python
+from sklearn.metrics import accuracy_score
+
+y_pred = knn_clf.predict(X.values)
+
+print('Accuracy: {:.2f}'.format(accuracy_score(y, y_pred)))
+```
+
+### Масштабирование Признаков
+
+Метрические алгоритмы являются **чувствительным к масштабу признаков**.
+
+Это означает, что если один признак имеет значительно больший масштаб, чем другой, то он будет доминировать в вычислении расстояния между объектами, и алгоритм будет искать соседей только на основе доминирующего признака, не обращая внимания на вклад других, что приведет к некорректной классификации.
+
+Рассмотрим простой пример. Пусть есть датасет из 5-ти наблюдений:
+
+|№| Признак 1 | Признак 2 | Класс |
+|-|-----------------------------|------------------------------|-|
+|1| 100 | 2 | A |
+|2| 200 | 3 | B |
+|3| 200 | 2 | A |
+|4| 150 | 4 | B |
+|4| 155 | 2 | A |
+
+Давайте найдем ближайшего соседа для объекта $x_1$. Вычислим евклидово расстояние:
+
+$$\rho(x_1, x_2) = \sqrt{(100 - 200)^2 + (2 - 3)^2}=\sqrt{10001}$$
+$$\rho(x_1, x_3) = \sqrt{(100 - 200)^2 + (2 - 2)^2} = \sqrt{10000}$$
+$$\rho(x_1, x_4) = \sqrt{(100 - 150)^2 + (2 - 4)^2} = \sqrt{2504}$$
+$$\rho(x_1, x_5) = \sqrt{(100 - 155)^2 + (2 - 4)^2} = \sqrt{3027}$$
+
+По итогу оказывается, что ближайшим соседом для $x_1$ является $x_4$. Однако, это в корне неверно, для данного объекта признак №1 отличается в 1.5 раза, а признак 2 - в 2 раза!
+
+Однако из-за отсутствия нормировки влияние 2-ого признака (2ое слагаемое в вычислении расстояния) очень слабо учитывалось при вычислениях.
+
+Для иллюстрации необходимости масштабирования рассмотрим следующий пример:
+
+```python
+X, y = make_classification(
+ n_samples=500, # количество объектов
+ n_features=2, # количество признаков
+ n_informative=2, # количество информативных признаков
+ n_redundant=0, # количество избыточных
+ n_classes=2, # количество классов
+ n_clusters_per_class=2, # количество кластеров
+ flip_y=0.01, # коэффициент шума
+ # class_sep=5, # зазор между классами
+ random_state=1, # число, фиксирующее генератор случайных чисел
+
+ scale=[1, 100] # изменили масштаб признаков
+)
+print(X.shape, y.shape)
+
+# Переводим X и y в DataFrame для удобства дальнейшей работы
+X = pd.DataFrame(X, columns=['x1', 'x2'])
+y = pd.Series(y).astype('str')
+```
+
+```python
+X.head()
+```
+
+```python
+X.describe()
+```
+
+Обучим алгоритм, сделаем предсказание, вычислим метрику accuracy и визуализируем разделяющую поверхность:
+
+```python
+knn_clf = KNeighborsClassifier(n_neighbors=5, metric='minkowski', p=2)
+knn_clf.fit(X.values, y.values)
+
+y_pred = knn_clf.predict(X.values)
+
+print('Accuracy: {:.2f}'.format(accuracy_score(y, y_pred)))
+
+plot_decision_bound_classification(X, y, knn_clf)
+```
+
+Как видим, несмотря на то, что метрика $accuracy$ высока, форма разделяющей поверхности четко дает понять, что что-то тут не так.
+
+По сути все объекты классифицируется только на основе признака $x_2$, так как он имеет наибольший вклад.
+
+Однако, если мы нормализуем признаки, то есть приведем их к одному масштабу, то алгоритм kNN будет принимать решения на основе обоих признаков.
+
+**Методы масштабирования:**
+
+Пусть $x$ - это некоторый вектор-признак (столбец таблицы).
+
+Рассмотрим наиболее популярные способы масштабирования:
+
+* **Min-max нормализация:**
+Min-max нормализация — метод преобразования входных признаков, при котором значения признаков приводятся к масштабу [0,...,1]:
+$$x_{scaled} = \frac{x - x_{min}}{x_{max} - x_{min}}$$
+$x_{min}$ - минимальное значение признака
+$x_{max}$ - максимальное значение признака
+Например, температура в горном посёлке за день может меняться от 10 до 35 градусов. Текущая температура составляет 17 градусов. Тогда нормализованное значение будет:
+
+$$x_{scaled} = \frac{17 - 10}{35 - 10} = 0.28$$
+
+* **Стандартизация:**
+Стандартизация — метод преобразования входных признаков, при котором распределение признака меняется таким образом, чтобы среднее значение равнялось 0, а стандартное отклонение — 1:
+$$x_{scaled} = \frac{x - \mu}{\sigma}$$
+$\mu$ - среднее значение признака $x$
+$\sigma$ - стандартное отклонение признака $x$
+Например, у нас есть числовой ряд [1, 2, 3, 4, 5]. Среднее ряда: 3. Стандартное отклонение — 1.4. Стандартизируем число 4.
+$$x_{scaled} = \frac{4 - 3}{1.4} = 0.7$$
+Процесс стандартизации можно описать как центрирование данных с масштабированием. Сначала происходит вычитание среднего значения из всех данных — центрирование, а затем деление на отклонение.
+* **Робастное масштабирование:**
+$$x_{scaled} = \frac{x - Q_{0.5}}{Q_{0.75} - Q_{0.25}}=\frac{x - x_{median}}{IQR}$$
+$Q_{0.5}$ - 50-ая квантиль (медиана) признака $x$
+$Q_{0.75}$ - 75-ая квантиль признака $x$
+$Q_{0.25}$ - 25-ая квантиль признака $x$
+$IQR= Q_{0.75} - Q_{0.25}$ - межквартильный размах
+Например, имеется числовой ряд [1, 2, 3, 4, 5]. Медиана ряда — 3. Межквартильный размах: 4-2=2. Мы хотим нормализовать число 4.
+$$x_{scaled} = \frac{4 - 3}{2} = 0.5$$
+
+[Подробнее про методы масштабирования, их преимущества и недостатки здесь](https://www.blog.trainindata.com/feature-scaling-in-machine-learning/)
+
+Возвращаясь к примеру:
+
+|№| Признак 1 | Признак 2 | Класс |
+|-|-----------------------------|------------------------------|-|
+|1| 100 | 2 | A |
+|2| 200 | 3 | B |
+|3| 200 | 2 | A |
+|4| 150 | 4 | B |
+|4| 155 | 2 | A |
+
+Если мы масштабируем признаки с помощью min-max нормализации (приведем каждый признак к масштабу от 0 до 1). Получим:
+
+|№| Признак 1 | Признак 2 | Класс |
+|-|-----------------------------|------------------------------|-|
+|1| 0 | 0 | A |
+|2| 1 | 0.5 | B |
+|3| 1 | 0 | A |
+|4| 0.5 | 1 | B |
+|4| 0.55 | 0 | A |
+
+Давайте найдем ближайшего соседа для объекта $x_1$. Вычислим евклидово расстояние:
+
+$$\rho(x_1, x_2) = \sqrt{(0 - 1)^2 + (0 - 0.5)^2}=\sqrt{1.25}$$
+$$\rho(x_1, x_3) = \sqrt{(0 - 1)^2 + (0 - 0)^2} = \sqrt{1}$$
+$$\rho(x_1, x_4) = \sqrt{(0 - 0.5)^2 + (0 - 1)^2} = \sqrt{1.25}$$
+$$\rho(x_1, x_5) = \sqrt{(0 - 0.55)^2 + (0 - 0)^2} = \sqrt{0.3}$$
+
+Теперь картина получается максимально противоположная: объект $x_4$ оказывается самым удаленным объектом от $x_1$, а ближайшими к $x_1$ оказываются объекты $x_3$ и $x_5$, как и должно быть.
+
+**Важный вывод:** для корректного расчёта расстояния между объектами и, как следствие, корректной работы kNN все признаки в датасете должны быть приведены к единому масштабу.
+
+В scikit-learn методы масштабирования реализованы в модуле `preprocessing` виде следующих классов:
+
+* [MinMaxScaler](https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.MinMaxScaler.html) - min-max нормализация
+* [StandardScaler](https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.StandardScaler.html) - стандартизация
+* [RobustScaler](https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.RobustScaler.html) - робастое масштабирование
+
+```python
+from sklearn.preprocessing import MinMaxScaler, StandardScaler, RobustScaler
+```
+
+* С помощью метода `fit()` происходит расчёт параметров масштабирования.
+
+* С помощью метода `transform()` выполняется трансформация (масштабирование) данных.
+
+* С помощью метода `fit_transform()` выполняется и то и другое.
+
+Добавим шаг с масштабированием в процесс предобработки данных:
+
+```python
+# создаем объект для масштабирования
+scaler = MinMaxScaler()
+# вычисляем необходимые параметры масштабирования
+scaler.fit(X)
+# выполняем масштабирование
+X_sc = scaler.transform(X)
+X_sc = pd.DataFrame(X_sc, columns=X.columns)
+
+X_sc.head()
+```
+
+```python
+X_sc.describe()
+```
+
+Обучим алгоритм еще раз, но уже на масштабированных данных:
+
+```python
+knn_clf = KNeighborsClassifier(n_neighbors=5, metric='minkowski', p=2)
+
+# Обучаем на масштабированных данных
+knn_clf.fit(X_sc.values, y.values)
+
+# Предсказываем, конечно же, тоже на масштиброванных
+y_pred = knn_clf.predict(X_sc.values)
+
+print('Accuracy: {:.2f}'.format(accuracy_score(y, y_pred)))
+
+plot_decision_bound_classification(X_sc, y, knn_clf)
+```
+
+### Кейс: Предсказание Вероятности Наличия Диабета
+
+Рассмотрим как выполняется классификация на датасете, приближенному к реальному кейсу.
+
+В качестве кейса возьмем простую задачу предсказания наличия диабета.
+
+[Источник данных](https://www.kaggle.com/datasets/uciml/pima-indians-diabetes-database).
+
+Этот датасет первоначально получен в Национальном институте диабета, болезней органов пищеварения и почек для того, чтобы на основе определённых диагностических измерений предсказать, есть ли у пациента диабет.
+
+На выбор этих экземпляров из более крупной базы данных было наложено несколько ограничений. В частности, все пациенты здесь — женщины не моложе 21 года индейского происхождения племени Пима.
+
+```python
+import pandas as pd
+import numpy as np
+import plotly.express as px
+
+from sklearn.neighbors import KNeighborsClassifier
+from sklearn.preprocessing import MinMaxScaler
+from sklearn.metrics import accuracy_score
+from sklearn.model_selection import train_test_split
+```
+
+```python
+diabetes_data = pd.read_csv('https://raw.githubusercontent.com/merion-networks/data-science-course/refs/heads/main/diabetes_data.csv')
+diabetes_data.head()
+```
+
+**Признаки в данных:**
+
+* Pregnancies — количество беременностей.
+
+* Glucose — концентрация глюкозы в плазме через два часа при пероральном тесте на толерантность к глюкозе.
+
+* BloodPressure — диастолическое артериальное давление (мм рт. ст.).
+
+* SkinThickness — толщина кожной складки трицепса (мм).
+
+* Insulin — двухчасовой сывороточный инсулин (ме Ед/мл).
+
+* BMI — индекс массы тела ($\frac{кг}{м^2}$).
+
+* DiabetesPedigreeFunction — функция родословной диабета (чем она выше, тем выше шанс наследственной заболеваемости).
+
+* Age — возраст.
+
+* Outcome — наличие диабета (0 — нет, 1 — да).
+
+```python
+diabetes_data.shape
+```
+
+Проверим соотношения классов в данных:
+
+```python
+px.pie(
+ data_frame=diabetes_data,
+ names='Outcome',
+ hole=0.2,
+ height=300,
+ title='Распределение классов в данных'
+)
+```
+
+```python
+diabetes_data.info()
+```
+
+```python
+diabetes_data.describe()
+```
+
+```python
+diabetes_data.describe(include='object')
+```
+
+Из результатов метода describe() и базовой логики делаем следующие вывод:
+
+> Нулевые значения в столбцах 'Glucose', 'BloodPressure', 'SkinThickness','Insulin', 'BMI' - это **скрытые пропущенные значения**.
+
+> Признак Gender представлен только одной единственной категорией (Female), он является неинформативным
+
+Заменим нули в этих столбцах на пропуски:
+
+```python
+diabetes_data_clf = diabetes_data.copy(deep = True)
+diabetes_data_clf[
+ ['Glucose','BloodPressure','SkinThickness','Insulin','BMI']
+] = diabetes_data[['Glucose','BloodPressure','SkinThickness','Insulin','BMI']].replace(0, np.NaN)
+
+
+diabetes_data_clf.isna().sum()
+```
+
+Избавимся от дубликатов:
+
+```python
+duplicates = diabetes_data_clf[diabetes_data_clf.duplicated()]
+print('Число дубликтов: {}'.format(duplicates.shape[0]))
+diabetes_data_clf = diabetes_data_clf.drop_duplicates()
+print('Результирующее число записей: {}'.format(diabetes_data_clf.shape[0]))
+```
+
+Заполним пропуски в данных:
+
+```python
+diabetes_data_clf = diabetes_data_clf.fillna(
+ {
+ 'Glucose': diabetes_data_clf['Glucose'].median(),
+ 'BloodPressure': diabetes_data_clf['BloodPressure'].median(),
+ 'SkinThickness': diabetes_data_clf['SkinThickness'].median(),
+ 'Insulin': diabetes_data_clf['Insulin'].median(),
+ 'BMI': diabetes_data_clf['BMI'].median()
+ }
+)
+```
+
+Удалим неинформативные признаки, не имеющие значения для построения прогноза:
+
+```python
+diabetes_data_clf = diabetes_data_clf.drop('Gender', axis=1)
+```
+
+Разделим набор данных на:
+
+* Матрицу наблюдений X, состоящую из признаков объектов
+* Вектор-столбец целевой переменной y
+
+```python
+X = diabetes_data_clf.drop('Outcome', axis=1)
+y = diabetes_data_clf['Outcome']
+```
+
+В целях диагностирования наличия переобучения модели воспользуемся простейшим методом валидации.
+
+Разделим всю выборку на тренировочную и тестовую в соотношении 75/25.
+
+На тренировочной выборке будем обучать модели, а на тестовой проверять их качество.
+
+Для этого воспользуемся функцией `train_test_split` из модуля `model_selection` библиотеки `scikit-learn`.
+
+```python
+X_train, X_test, y_train, y_test = train_test_split(
+ X, y,
+ test_size=0.25, # размер тестовой выборки
+ random_state=42, # число отвечающее за генерацию случайных чисел
+ stratify=y # стратификация по y
+)
+
+print('Train shape: {}'.format(X_train.shape))
+print('Test shape: {}'.format(X_test.shape))
+```
+
+Проверим, что соотношение классов в обеих выборках одинаково и равно изначальному:
+
+```python
+y.value_counts(normalize=True)
+```
+
+```python
+y_train.value_counts(normalize=True)
+```
+
+```python
+y_test.value_counts(normalize=True)
+```
+
+Масштабируем данные.
+
+**Важно:** для предотвращения учетки данных параметры масштабирования всегда подбираются на обучающей выборке, и эти параметры применяются как для масштабирования обучающей, так и тестовой выборок.
+
+То есть:
+* fit_transform() - на train
+* transform() - на test
+
+```python
+# создаем объект для масштабирования
+scaler = MinMaxScaler()
+
+# вычисляем параметры масштабирования на train и применяем их
+X_train_sc = scaler.fit_transform(X_train)
+# применяем те же параметры для масшабирования test
+X_test_sc = scaler.transform(X_test)
+
+# Преобразуем результаты в DataFrame для наглядности
+X_train_sc = pd.DataFrame(X_train_sc, columns=X_train.columns)
+X_test_sc = pd.DataFrame(X_test_sc, columns=X_test.columns)
+
+X_train_sc.head()
+```
+
+```python
+X_train_sc.describe()
+```
+
+Обучим модель kNN на обучающей выборке.
+
+Сделаем предсказание на обучающей и тестовой выборке и проверим полученное качество модели по метрике `accuracy`:
+
+```python
+knn_clf = KNeighborsClassifier(n_neighbors=5, metric='minkowski', p=2)
+knn_clf.fit(X_train_sc, y_train)
+
+y_train_hat = knn_clf.predict(X_train_sc)
+y_test_hat = knn_clf.predict(X_test_sc)
+
+print('Train accuracy score: {:.2f}'.format(accuracy_score(y_train, y_train_hat)))
+print('Test accuracy score: {:.2f}'.format(accuracy_score(y_test, y_test_hat)))
+```
+
+```python
+y_test_hat
+```
+
+Если нам необходимо выводить вероятности наличия диабета, то можно рассчитать и их:
+
+```python
+y_test_proba_hat = knn_clf.predict_proba(X_test_sc)
+y_test_proba_hat.shape
+```
+
+Выполним подбор гиперпараметра модели - количества соседей.
+
+Для этого воспользуемся простейшим способом подбора параметров на тестовой выборке.
+
+Для этого:
+
+1. обучим алгоритм с разным количеством соседей на обучающей выборке
+2. рассчитаем метрику accuracy на обучающей и тестовой выборках
+3. выберем то количество соседей, при которой качество на тестовой выборке наилучшее
+
+```python
+np.arange(2, 25)
+```
+
+```python
+# создаем массив с количеством соседей, которое будет подбирать
+n_neighbors = np.arange(2, 25)
+
+# инициализируем списки со значениями метрик на train и test выборках
+train_scores = []
+test_scores = []
+
+# создаем цикл по соседям
+for k in n_neighbors:
+ # обучаем алгоритм kNN с заданным количеством соседей
+ knn_clf = KNeighborsClassifier(n_neighbors=k, metric='minkowski', p=2)
+ knn_clf.fit(X_train_sc, y_train)
+ # производим классификацию на обучающей и тестовой выборках
+ y_train_hat = knn_clf.predict(X_train_sc)
+ y_test_hat = knn_clf.predict(X_test_sc)
+ # рассчитываем значения метрик и добавляем их в списки
+ train_scores.append(accuracy_score(y_train, y_train_hat))
+ test_scores.append(accuracy_score(y_test, y_test_hat))
+
+# создаем DataFrame из результатов
+scores_df = pd.DataFrame({
+ 'k': n_neighbors,
+ 'train_score': train_scores,
+ 'test_score': test_scores
+})
+
+# display(scores_df)
+
+# визуализируем результаты в виде линейного графика
+fig = px.line(
+ data_frame=scores_df,
+ x='k',
+ y=['train_score', 'test_score'],
+ height=300
+)
+fig.show()
+```
+
+Из графика видим, что наилучшим выбором будет $k=5$.
+
+Обучим kNN с 5-ью соседями:
+
+```python
+knn_clf = KNeighborsClassifier(n_neighbors=5, metric='minkowski', p=2)
+knn_clf.fit(X_train_sc, y_train)
+
+y_train_hat = knn_clf.predict(X_train_sc)
+y_test_hat = knn_clf.predict(X_test_sc)
+
+print('Train accuracy score: {:.2f}'.format(accuracy_score(y_train, y_train_hat)))
+print('Test accuracy score: {:.2f}'.format(accuracy_score(y_test, y_test_hat)))
+```
+
+Итоговую обученную модель можно сохранить в виде pickle-файла для дальнейшего использования модели в приложениях.
+
+За сохранение (сериализацию модели) отвечает метод `dump()`, в него нужно передать python-объект (обученную модель) и объект-файл, в который будет сохранена модель.
+
+```python
+import pickle
+
+# открываем файл на запись
+with open('diabet_knn_classifier.pkl', 'wb+') as f:
+ # сохраняем обученную модель kNN
+ pickle.dump(knn_clf, f)
+```
+
+Импортировать модель из файла можно с помощью функции `load`:
+
+```python
+# открываем файл на чтение
+with open('diabet_knn_classifier.pkl', 'rb+') as f:
+ # сохраняем обученную модель kNN
+ loaded_clf = pickle.load(f)
+
+loaded_clf
+```
+
+```python
+loaded_clf.predict(X_test_sc)
+```
+
+## Алгоритм kNN Для Регрессии
+
+### Общая Идея Алгоритма
+
+Для того, чтобы адаптировать метод для решения регрессии нам нужно лишь ввести парочку модификаций.
+
+Если в случае задачи классификации мы определяли класс объекта путем мажоритарного голосования среди его k-ближайших соседей, то в случае регрессии - нам нужно предсказать не класс, а число.
+
+Идея! Давайте просто вычислять среднее (ну или медиану) по таргету всех ближайших соседей и выдавать результат в качестве предсказания модели.
+
+
+
+### Формализация Алгоритма
+
+Ну а теперь формализуем это в виде алгоритма.
+
+---
+Пусть дана выборка объектов и их ответов к ним:
+
+$$\{(x_1, y_1), (x_2, y_2), ..., (x_n, y_n)\}=\{(x_i, y_i)\}_{i=1}^n$$
+
+где
+* $x_i = (x_{i1}, x_{i2}, ..., x_{im}), x_i ∈ X, X \subset \mathbb{R} ^{m}$ - множество объектов
+* $y_i ∈ Y, Y \subset \mathbb{R} ^{m}$ - множество целевой переменной
+* $m$ - количество признаков
+* $n$ - размер выборки
+
+Задана функция расстояния $\rho(x_i, x_j)$, обладающая свойствами:
+
+* Неотрицательности: $\rho(x_i, x_j) >= 0$
+* Симметричности: $\rho(x_i, x_j) = \rho(x_j, x_i)$.
+
+Чтобы определить таргет $\hat{y}(x_t)$ для нового объекта $x_t$ нужно:
+1. Вычислить расстояние между объектом $x_t$ и каждым объектом $x_i$ в обучающей выборке:
+
+ $$\rho(x_t, x_i), ∀x_i ∈ X$$
+
+2. Выбрать $k$ объектов с наименьшим расстоянием:
+
+ $$N_k(x_t) = \\{x_i \in X | \rho(x_t, x_i) < \rho(x_t, x_j), ∀ j \neq i\\}$$
+
+ $$j = {1, 2, ..., n}$$
+ $$i={1, 2, ..., k}$$
+
+ где $N_k(x)$ - множество $k$ ближайших соседей целевого объекта $x$.
+
+3. Вычислить прогноз как среднее значение таргета среди найденных соседей$:
+
+ $$\hat{y_t}(x_t) = \frac{1}{k} \sum_{i=1}^k y_i$$
+
+
+
+### Пример На Конкретных Цифрах
+
+| Объект | Признак 1 | Признак 2 | Целевая переменная |
+|---|---|---|---|
+| 1 | 1 | 1 | 2 |
+| 2 | 2 | 2 | 3 |
+| 3 | 3 | 3 | 4 |
+| 4 | 4 | 4 | 5 |
+| 5 | 5 | 5 | 6 |
+| 6 | 6 | 6 | 7 |
+| 7 | 7 | 7 | 8 |
+| 8 | 8 | 8 | 9 |
+| 9 | 9 | 9 | 10 |
+| 10 | 10 | 10 | 11 |
+
+Теперь предположим, что у нас есть новый объект $x_t$ с признаками $x_t=(x_{t1}, x_{t2}) = (5, 5)$.
+
+Чтобы построить прогноз целевой переменной для объекта $x_t$, мы:
+1. Вычисляем расстояние между новым объектом и каждым объектом в обучающей выборке:
+$$\rho(x_t, x_i), ∀x_i ∈ X$$
+ Считаем:
+$$\rho(x_t, x_1) = \sqrt{(5 - 1)^2 + (5 - 1)^2} = 6.32$$
+$$\rho(x_t, x_2) = \sqrt{(5 - 2)^2 + (5 - 2)^2} = 4.24$$
+$$\rho(x_t, x_3) = \sqrt{(5 - 3)^2 + (5 - 3)^2} = 2.83$$
+$$\rho(x_t, x_4) = \sqrt{(5 - 4)^2 + (5 - 4)^2} = 1.41$$
+$$\rho(x_t, x_5) = \sqrt{(5 - 5)^2 + (5 - 5)^2} = 0$$
+$$\rho(x_t, x_6) = \sqrt{(5 - 6)^2 + (5 - 6)^2} = 1.41$$
+$$\rho(x_t, x_7) = \sqrt{(5 - 7)^2 + (5 - 7)^2} = 2.83$$
+$$\rho(x_t, x_8) = \sqrt{(5 - 8)^2 + (5 - 8)^2} = 4.24$$
+$$\rho(x_t, x_9) = \sqrt{(5 - 9)^2 + (5 - 9)^2} = 6.32$$
+$$\rho(x_t, x_{10}) = \sqrt{(5 - 10)^2 + (5 - 10)^2} = 7.07$$
+
+2. Выбираем $k$ объектов с наименьшим расстоянием.
+$$N_k(x_t) = \{x_i \in X | \rho(x_t, x_i) < \rho(x_t, x_j), ∀ j \neq i\}$$
+В нашем случае $k=5$, тогда находим 5 ближайших объекта - это будут объекты под номерами 2, 3, 4, 5 и 6:
+$$N_k(x) = \{x_2, x_3, x_4, x_5, x_6\}$$
+
+2. Вычисляем предсказание для объекта среднее по таргету k-ближайших соседей:
+$$\hat{y_t}= f(x_t) = \frac{1}{k} \sum_{i=1}^k y_i$$
+
+$$\hat{y_t} = \frac{6 + 5 + 4 + 3 + 2}{5} = 4$$
+
+Итак, предсказанное значение целевой переменной для объекта $x_t=(5, 5)$ равно 4.
+
+### Реализация В Python
+
+```python
+import pandas as pd
+import numpy as np
+import seaborn as sns
+import plotly.express as px
+
+from sklearn.datasets import make_regression
+```
+
+Для иллюстрации реализации алгоритма создадим игрушечный датасет с помощью функции `make_regression` из 500 наблюдений, 2 признаков и 2 классов.
+
+```python
+# Генерируем данные
+X, y = make_regression(n_samples=500, n_features=1, noise=15, random_state=1)
+
+# Переводим X и y в DataFrame для удобства дальнейшей работы
+X = pd.DataFrame(X, columns=['x'])
+y = pd.Series(y)
+```
+
+```python
+X.head()
+```
+
+```python
+y.head()
+```
+
+Визуализируем данные:
+
+```python
+fig = px.scatter(
+ x=X.iloc[:, 0], y=y,
+ height=400, width=700
+)
+fig.show()
+```
+
+Хотим предсказать значение таргета для следующего объекта:
+
+```python
+x = np.array([[1.5]])
+```
+
+Метод k-ближайших соседей для регрессии реализован в виде класса [KNeighborsRegressor](https://scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsRegressor.html).
+
+Основные параметры алгоритма:
+
+- `n_neighbors`: количество ближайших соседей, которое будет использоваться для регрессии.
+- `metric`: метрика расстояния, используемая для измерения расстояния между объектами. [Список возможных значений](https://scikit-learn.org/stable/modules/generated/sklearn.metrics.pairwise.distance_metrics.html#sklearn.metrics.pairwise.distance_metrics). Примеры:
+ - `'minkowski'` - расстояние Минковского (используется по умолчанию)
+ - `'cosine'` - косинусное расстояние
+ - `'euclidean'` - евклидово расстояние
+ - `'manhattan'` - расстояния Манхэттена
+
+- `p`: норма, используемая для измерения расстояния между объектами (по умолчанию p=2)
+- `n_jobs`: количество ядер процессора, используемых для вычислений (чтобы использовать все доступные мощности процессора нужно установить параметр в -1).
+
+```python
+from sklearn.neighbors import KNeighborsRegressor
+```
+
+Обучим модель kNN c 10-ью соседями:
+
+```python
+knn_reg = KNeighborsRegressor(n_neighbors=10, metric='minkowski', p=2)
+knn_reg.fit(X.values, y.values)
+```
+
+Предскажем значение таргета для нового объекта:
+
+```python
+y_pred = knn_reg.predict(x)
+y_pred
+```
+
+Построим аналог разделяющей поверхности для регрессии - регрессионная кривая.
+
+Для этого сгенерируем новые данные от минимума до максимума в обущей выборке, сделаем предсказание для этих значений $x$ и визуализируем результат в виде кривой.
+
+Проследим за тем, как меняется кривая в зависимости от количества соседей.
+
+```python
+def plot_decision_bound_regression(X, y, model, height=400, width=700):
+ x_grid = np.arange(X.iloc[:, 0].min(), X.iloc[:, 0].max(), 0.001)
+ y_pred = model.predict(x_grid.reshape(-1, 1))
+ fig = px.scatter(x=X.iloc[:, 0], y=y, opacity=0.7, height=height, width=width)
+ fig.add_scatter(x=x_grid, y=y_pred, name='prediction')
+ fig.show()
+
+knn_reg = KNeighborsRegressor(n_neighbors=10, metric='minkowski', p=2)
+knn_reg.fit(X.values, y.values)
+
+plot_decision_bound_regression(X, y, knn_reg)
+```
+
+### Оценка Качества Регрессии
+
+Вычислим качество нашей регрессионной модели.
+
+По умолчанию метод `score` для объектов регрессии в `scikit-learn` рассчитывает метрику $R^2$ (коэффициент детерминации):
+
+$$R^2 = 1 - \frac{{\sum_{i=1}^n (y_i - \hat{y_i})^2}}{\sum_{i=1}^n (y_i - y_{mean})^2}$$
+где
+* ${y_i}$ - истинное значение таргета для $i$-ого объекта
+* $\hat{y_i}$ - прогноз для $i$-ого объекта
+* $y_{mean}$ - среднее значение по таргету
+
+Коэффициент детерминации показывает, насколько наша модель лучше, чем если бы все предсказания были средним по правильным ответам.
+
+Если на математическом, то данная метрика измеряет, какую долю дисперсии (вариативности) целевой переменной смогла уловить наша модель.
+
+Данная метрика измеряется от $-∞$ до 1.
+
+Удовлетворительным $R^2$ считается показатель выше 0.5: чем ближе к 1, тем лучше. Отрицательные значения говорят о том, что построенная модель настолько плоха, что лучше было бы присвоить всем ответам среднее значение.
+
+```python
+print('R^2-score: {:.2f}'.format(knn_reg.score(X.values, y.values)))
+```
+
+Как правило, метрики рассчитываются с помощью специализированных функций из модуля `metrics`. Поступим так же.
+
+Сделаем предсказание для всего датасета:
+
+```python
+y_pred = knn_reg.predict(X.values)
+```
+
+Рассчитаем коэффициент детерминации ($R^2$) с помощью функции `r2_score` из модуля `metrics`:
+
+```python
+from sklearn.metrics import r2_score
+```
+
+```python
+print('R^2-score: {:.2f}'.format(r2_score(y, y_pred)))
+```
+
+Коэффициент детерминации полезная метрика, однако она обладает непонятной для бизнеса интерпретации и ничего не говорит о том, какова точность нашего прогноза.
+
+Гораздо большей интерпретацией обладают метрики $MAE$ и $MAPE$
+
+* **Средняя абсолютная ошибка — MAE (Mean Absolute Error)**
+
+ Данная метрика показывает, насколько в среднем наша модель ошибается и вычисляется как среднее арифметическое модуля отклонения предсказанного значения от реального:
+ $$MAE = \frac{1}{n} \sum_{i=1}^n |y_i - \hat{y_i}|$$
+
+ Чем меньше значение метрики, тем лучше.
+
+ Однако, это метрика не дает понимания о том, насколько наша ошибка велика. Например, в результате построения модели по предсказанию цены недвижимости MAE составила 3.5 тыс. долларов. Много ли это?
+
+ Без эксперта-оценщика недвижимости будет сложно дать ответ. Однако можно попробовать посчитать ошибку в процентах, ведь в процентах всё воспринимается легче, и для этого нам пригодится следующая метрика — $MAPE$.
+
+* **Средняя абсолютная ошибка в процентах — Map (Mean Absolute Percent Error)**
+
+ Данная метрика показывает, на сколько процентов в среднем наше предсказание отклоняется от реального значения:
+ $$MAPE = \frac{100 \\%}{n} \sum_{i=1}^n \frac{|y_i - \hat{y_i}|}{|y_i|}$$
+
+ Чем меньше значение метрики, тем лучше.
+
+ Примечание: в `sklearn` данная метрика считается не в процентах, а в долях, то есть результат еще дополнительно нужно умножить на $100\\%$.
+
+Рассчитаем метрики MAE и Map:
+
+```python
+from sklearn.metrics import mean_absolute_error, mean_absolute_percentage_error
+```
+
+```python
+print('MAE: {:.2f}'.format(mean_absolute_error(y, y_pred)))
+print('MAPE: {:.2f}'.format(mean_absolute_percentage_error(y, y_pred) * 100))
+```
+
+### Заполнение Пропусков В Данных С Помощью kNN
+
+Широкое применение регрессионный kNN нашел в задачах восстановления пропущенных данных.
+
+Рассмотрим задачу заполнения пропусков на примере датасета о диабете:
+
+```python
+diabetes_data = pd.read_csv('https://raw.githubusercontent.com/merion-networks/data-science-course/refs/heads/main/diabetes_data.csv')
+diabetes_data.head()
+```
+
+Предобработаем данные вновь:
+
+```python
+diabetes_data[
+ ['Glucose','BloodPressure','SkinThickness','Insulin','BMI']
+] = diabetes_data[['Glucose','BloodPressure','SkinThickness','Insulin','BMI']].replace(0, np.NaN)
+
+diabetes_data = diabetes_data.drop('Gender', axis=1)
+
+diabetes_data.isna().sum()
+```
+
+**Идея:**
+
+> Давайте рассматривать признаки с пропусками как таргеты, для которых нужно построить прогноз.
+> Будем строить модель kNN для регрессии и предсказывать неизвестные значения в столбцах на основе похожих объектов из выборки.
+
+Можно даже написать функцию, которая принимает на вход датасет и возвращать новый датасет без пропусков.
+
+Однако, все это лишнее изобретение велосипеда, так в `scikit-learn` уже реализован подход к заполнению пропусков с помощью kNN.
+
+Как и другие методы заполнения пропусков в данных, данный метод находится в модуле `impute` и реализован в виде класса [`KNNImputer`](https://scikit-learn.org/stable/modules/generated/sklearn.impute.KNNImputer.html).
+
+Данный класс позволяет выполнять трансформацию данных по заполнению пропусков, причем недостающие значения для каждой выборки вычисляются с использованием среднего значения из k ближайших соседей, найденных в обучающем наборе данных.
+
+Аргументы данного класса:
+
+* missing_values - какое значение считается пропуском, по умолчанию параметр равен `nan`, но можно указать любое другое значение (например, 0 как это было в нашем примере)
+* n_neighbors - количество соседей, используемых для заполнения
+* metric - метрика расстояния, по умолчанию используется метрика `nan_euclidean`, она позволяет вычислять расстояние Евклида не обращая внимания на пропуски в столбцах. Рекомендуется не менять ее значение.
+
+Основные методы:
+
+* fit() - подгонка (по сути ничего не делает кроме сохранения выборки в память)
+* transform() - заполняет пропущенные значения в данных и возвращает результат в виде numpy-массива
+* fit_transform() - fit + transform
+
+Пример из документации:
+
+```python
+from sklearn.impute import KNNImputer
+
+X = [[1, 2, np.nan], [3, 4, 3], [np.nan, 6, 5], [8, 8, 7]]
+
+imputer = KNNImputer(n_neighbors=2)
+imputer.fit_transform(X)
+```
+
+Посмотрим на то, как выглядит реализация заполнения пропусков с помощью KNNImputer на примере датасета о диабете.
+
+Обратите внимание, что для заполнения нам даже не нужно разделять таблицу на фичи и таргет, KNNImputer сам понимает, что является таргетом - это все будут все столбцы в таблице, содержащие пропуски.
+
+Однако, не забудем предварительно масштабировать данные, чтобы результат получился как можно точнее:
+
+```python
+X_nan = diabetes_data.copy()
+
+# создаем объект для масштабирования
+scaler = MinMaxScaler()
+# масштабируем данные
+X_nan_sc = scaler.fit_transform(X_nan)
+# Преобразуем результаты в DataFrame для наглядности
+X_nan_sc = pd.DataFrame(X_nan_sc, columns=X_nan.columns)
+X_nan_sc.head()
+```
+
+```python
+# создаем объект для заполнения
+imputer = KNNImputer(n_neighbors=5)
+
+# выполняем подгонку + трансформацию на исходных данных
+# результат - numpy массив с заполненными данными
+X_inputed_sc = imputer.fit_transform(X_nan_sc)
+
+# преобразуем результат в DataFrame
+X_inputed_sc = pd.DataFrame(X_inputed_sc, columns=X_nan_sc.columns)
+X_inputed_sc.head()
+```
+
+Чтобы вернуться к исходным масштабам признаков, можно воспользоваться методом `inverse_transform`:
+
+```python
+X_inputed = scaler.inverse_transform(X_inputed_sc)
+diabetes_data_inputed = pd.DataFrame(X_inputed, columns=diabetes_data.columns)
+diabetes_data_inputed.head()
+```
+
+Проверяем наличие пропусков в данных:
+
+```python
+diabetes_data_inputed.isna().sum()
+```
+
+Уже на этих предобработанных данных можно решать другие задачи, например, можно проклассифицировать пациентов еще раз и проверить, улучшилось ли качество.
+
+Выполним предобработку данных аналогично тому как мы делали это ранее:
+
+```python
+# выделяем матрицу наблюдений X и вектор ответов y
+X = diabetes_data_inputed.drop('Outcome', axis=1)
+y = diabetes_data_inputed['Outcome']
+
+# Делим выборку на тренировочную и тестовую
+X_train, X_test, y_train, y_test = train_test_split(
+ X, y,
+ test_size=0.25, # размер тестовой выборки
+ random_state=42, # число отвечающее за генерацию случайных чисел
+ stratify=y # стратификация по y
+)
+
+print('Train shape: {}'.format(X_train.shape))
+print('Test shape: {}'.format(X_test.shape))
+
+# создаем объект для масштабирования
+scaler = MinMaxScaler()
+
+# вычисляем параметры масштабирования на train и применяем их
+X_train_sc = scaler.fit_transform(X_train)
+# применяем те же параметры для масшабирования test
+X_test_sc = scaler.transform(X_test)
+
+# Преобразуем результаты в DataFrame для наглядности
+X_train_sc = pd.DataFrame(X_train_sc, columns=X_train.columns)
+X_test_sc = pd.DataFrame(X_test_sc, columns=X_test.columns)
+
+X_train_sc.head()
+```
+
+Подберем значение параметра $k$ аналогично тому как мы делали это в прошлый раз.
+
+```python
+# создаем массив с количеством соседей, которое будет подбирать
+n_neighbors = np.arange(2, 25)
+
+# инициализируем списки со значениями метрик на train и test выборках
+train_scores = []
+test_scores = []
+
+# создаем цикл по соседям
+for k in n_neighbors:
+ # обучаем алгоритм kNN с заданным количеством соседей
+ knn_clf = KNeighborsClassifier(n_neighbors=k, metric='minkowski', p=2)
+ knn_clf.fit(X_train_sc, y_train)
+ # производим классификацию на обучающей и тестовой выборках
+ y_train_hat = knn_clf.predict(X_train_sc)
+ y_test_hat = knn_clf.predict(X_test_sc)
+ # рассчитываем значения метрик и добавляем их в списки
+ train_scores.append(accuracy_score(y_train, y_train_hat))
+ test_scores.append(accuracy_score(y_test, y_test_hat))
+
+# создаем DataFrame из результатов
+scores_df = pd.DataFrame({
+ 'k': n_neighbors,
+ 'train_score': train_scores,
+ 'test_score': test_scores
+})
+
+# display(scores_df)
+
+# визуализируем результаты в виде линейного графика
+fig = px.line(
+ data_frame=scores_df,
+ x='k',
+ y=['train_score', 'test_score'],
+ height=300
+)
+fig.show()
+```
+
+Из графика видим, что при $k=9$ у нас наблюдается наилучшее качество на тестовой выборке.
+
+```python
+knn_clf = KNeighborsClassifier(n_neighbors=9, metric='minkowski', p=2)
+knn_clf.fit(X_train_sc, y_train)
+
+y_train_hat = knn_clf.predict(X_train_sc)
+y_test_hat = knn_clf.predict(X_test_sc)
+
+print('Train accuracy score: {:.2f}'.format(accuracy_score(y_train, y_train_hat)))
+print('Test accuracy score: {:.2f}'.format(accuracy_score(y_test, y_test_hat)))
+```
+
+Итого благодаря замене способа заполнения пропуска с топорного (заполнения через медиану) на более продвинутый (заполнение через kNN) нам удалось повысить качество решения задачи на 2%! Что очень даже неплохо!
+
+Сохраняем модель:
+
+```python
+# открываем файл на запись
+with open('diabet_knn_classifier_2.pkl', 'wb+') as f:
+ # сохраняем обученную модель kNN
+ pickle.dump(knn_clf, f)
+```
+
+### Преимущества И Недостатки kNN
+
+**Преимущества:**
+
+* Простота: kNN является простым и легко понимаемым алгоритмом. Он не требует глубокого понимания математики или статистики.
+* Интерпретируемость: kNN не является черным ящиком, всегда можно проследить весь путь алгоритма и понять как был получен результат его работы
+* Эффективность: kNN может показывать неплохое базовое качество для небольших и простых наборов данных.
+* Универсальность: kNN может использоваться для решения различных задач машинного обучения, включая классификацию, регрессию и кластеризацию.
+* Нелинейность: kNN может моделировать нелинейные отношения между признаками и целевой переменной.
+
+**Недостатки:**
+
+* Чувствительность к гиперпараметрам: результаты работы kNN сильно зависят от гиперпараметров алгоритма, в особенности от количества соседей, поэтому алгоритм требует подбора этих гиперпараметров.
+* Чувствительность к масштабу: kNN требует обязательного масштабирования данных.
+* Необходимость хранения всего набора данных: kNN требует хранения всего набора данных в памяти, что может быть проблематично для больших наборов данных (на миллионы и десятки миллионов строк).
+* Низкое качество на сложных данных: kNN уступает в качестве более сложным и продвинутым алгоритмам
+
+Сегодня kNN используется исследователями только в качестве бейзлайна, то есть нижней планки качества, с которой можно сравнивать другие более сложные алгоритмы. Также kNN находит активное применение в заполнении пропущенных значений в данных.
+
+## Модификации kNN*
+
+### Взвешенный kNN
+
+У оригинального алгоритма есть один большой недостаток: он никак не учитывает расстояния до соседних объектов, хотя эта информация может быть полезной.
+
+Давайте попробуем придумать, как исправить этот недостаток. Нам нужно каким-то образом увеличивать вклад близких объектов и уменьшать вклад далёких. Можно заметить, что все индикаторы в формуле
+ учитываются в сумме с одинаковыми коэффициентами. Возникает идея — назначить этим индикаторам веса, которые тем больше, чем ближе объект к целевому. Таким образом, получаем следующую формулу:
+
+Для классификации будем иметь:
+
+ $$\hat{y}(x_t) = \arg \max_{y \in Y} \sum_{i=1}^{k} \omega_i \mathbb{I}[y_i = y]$$
+
+Для регрессии:
+
+$$\hat{y_t} = a(x_t) = \frac{1}{k} \sum_{i=1}^k \omega_i y_i$$
+
+Такой алгоритм называется взвешенным KNN (weighted KNN).
+
+**Как выбрать веса?**
+
+Самый простой способ - учитывать номер ближайшего соседа $i$. Например, мы нашли 5 ближайших соседей, тогда отсортируем их по расстоянию и дадим им номера от 1 до 5.
+
+Тогда вес для i-ого соседа можно определять линейно:
+
+$$\omega_i = \frac{k-i + 1}{k}$$
+
+Тогда, если мы используем 3 соседа, то вес 1-ого соседа будет $\omega_1=\frac{3-1+1}{3}=1$, 2-ого - $\omega_2=\frac{3-2+1}{3}=0.66$, 3-ого - $\omega_3=\frac{3-3+1}{3}=0.33$.
+
+Или нелинейно как геометрическую прогрессию с $q$ от 0 до 1, например $q=0.5$:
+
+$$\omega_i = q^i, 0 < q < 1$$
+
+Тогда вес 1-ого соседа будет $\omega_1=0.5^1=0.5$, 2-ого - $\omega_2=0.5^2=0.25$, 3-ого - $\omega_3=0.5^3=0.125$ и т.д.
+
+Однако, встает вопрос - а зачем использовать порядковый номер соседа, если можно воспользовать расстоянием. Чем меньше расстояние, тем больше вес объекта в предсказании.
+
+Тогда вес соседа будет вычисляться по формуле:
+
+$$\omega_i = \frac{1}{\rho}$$
+
+Вычисление весов на основе расстояния реализовано в sklearn как для классификации, так и для регрессии.
+
+Указать способ инициализации весов можно с помощью параметра `weights`.
+
+* По умолчанию значение параметра выставлено как `'uniform'`, что соответствует равномерному распределению весов соседей: все соседи имеют одинаковый вес, и прогноз алгоритма выполняется путём мажоритарного голосования (в случае классификации) или усреднения таргета (для регрессии).
+
+* Если выставить значение данного параметра как 'distance', то веса распределяются обратно пропорционально расстоянию (по формуле $\omega_i = \frac{1}{\rho}$)
+
+Ниже представлены примеры того как выглядят графики разделяющих поверхностей и регрессионных моделей при использовании обоих вариантов параметров.
+
+**Для классификации** ([код примера](https://scikit-learn.org/stable/auto_examples/neighbors/plot_classification.html#sphx-glr-auto-examples-neighbors-plot-classification-py)):
+
+
+**Для регрессии** ([код примера](https://scikit-learn.org/stable/auto_examples/neighbors/plot_regression.html#sphx-glr-auto-examples-neighbors-plot-regression-py)):
+
+
+
+Однако, есть и более продвинутые способы определять веса объектов на основе расстояния. Можно задавать веса на основе некоторой функции, зависящей от расстояния между объектами.
+
+**Ядерная функция (kernel function) $K(\rho)$** - это функция, которая определяет вес объекта в предсказании в зависимости от его расстояния до целевого объекта.
+
+**Виды ядер:**
+
+* **Единообразное ядро (uniform kernel):**
+
+$$K(\rho) = \begin{cases}
+1, & \text{если } \rho \leq 1 \\
+0, & \text{иначе}
+\end{cases}$$
+
+Допустим, у нас есть 3 соседа с расстояниями до целевого объекта $\rho_1 = 0.5$, $\rho_2 = 1.2$, $\rho_3 = 1.8$. Тогда их веса будут:
+
+* $w_1 = K(\rho_1) = 1$
+* $w_2 = K(\rho_2) = 0$
+* $w_3 = K(\rho_3) = 0$
+
+* **Треугольное ядро (triangular kernel):**
+
+$$K(\rho) = \begin{cases}
+1 - \rho, & \text{если } \rho \leq 1 \\
+0, & \text{иначе}
+\end{cases}$$
+
+Допустим, у нас есть 3 соседа с расстояниями до целевого объекта $\rho_1 = 0.5$, $\rho_2 = 1.2$, $\rho_3 = 1.8$. Тогда их веса будут:
+
+* $w_1 = K(\rho_1) = 1 - 0.5 = 0.5$
+* $w_2 = K(\rho_2) = 1 - 1.2 = -0.2$
+* $w_3 = K(\rho_3) = 1 - 1.8 = -0.8$
+
+* **Эпанечникова ядро (Epanechnikov kernel):**
+
+$$K(\rho) = \begin{cases}
+\frac{3}{4}(1 - \rho^2), & \text{если } \rho \leq 1 \\
+0, & \text{иначе}
+\end{cases}$$
+
+Допустим, у нас есть 3 соседа с расстояниями до целевого объекта $\rho_1 = 0.5$, $\rho_2 = 1.2$, $\rho_3 = 1.8$. Тогда их веса будут:
+
+* $w_1 = K(\rho_1) = \frac{3}{4}(1 - 0.5^2) = 0.5625$
+* $w_2 = K(\rho_2) = \frac{3}{4}(1 - 1.2^2) = -0.1875$
+* $w_3 = K(\rho_3) = \frac{3}{4}(1 - 1.8^2) = -0.75$
+
+* **Гауссово ядро (Gaussian kernel):**
+
+$$K(\rho) = \frac{1}{\sqrt{2\pi}}e^{-\frac{\rho^2}{2}}$$
+
+Допустим, у нас есть 3 соседа с расстояниями до целевого объекта $\rho_1 = 0.5$, $\rho_2 = 1.2$, $\rho_3 = 1.8$. Тогда их веса будут:
+
+* $w_1 = K(\rho_1) = \frac{1}{\sqrt{2\pi}}e^{-\frac{0.5^2}{2}} = 0.3989$
+* $w_2 = K(\rho_2) = \frac{1}{\sqrt{2\pi}}e^{-\frac{1.2^2}{2}} = 0.1814$
+* $w_3 = K(\rho_3) = \frac{1}{\sqrt{2\pi}}e^{-\frac{1.8^2}{2}} = 0.0443$
+
+
+
+Тогда с учётом ядерной функции, используемой для вычисления весов, конечный вид формулы расчёта предсказания по найденным $k$ соседям будет иметь вид:
+
+* **Для классификации:**
+$$\hat{y}(x_t) = \arg \max_{y \in Y} \sum_{i=1}^{k} K(\frac{\rho_i}{h}) \mathbb{I}[y_i = y]$$
+* **Для регрессии:**
+
+$$\hat{y_t}(x_t) = \frac{1}{\sum_{i=1}^k K\frac{\rho_i}{h}} \sum_{i=1}^k K(\frac{\rho_i}{h}) y_i$$
+
+где:
+
+* $K(\rho_i)$ - ядерная функция для i-ого соседа
+* $\mathbb{I}[y_i = y]$ - индикатор, который равен 1, если целевая переменная i-ого соседа равна y, и 0 в противном случае
+* $\rho_i$ - расстояние от целевого объекта до i-ого соседа
+* $y_i$ - целевая переменная i-ого соседа
+* $h$ - некоторое положительное число, называемое **шириной окна**
+
+
+От выбора ядра зависит гладкость аппроксимации, но на её качество этот выбор почти не влияет.
+
+На практике чаще всего используют либо единообразное ядро (*uniform*) для простоты, либо гауссовское (*gaussian*), когда важна гладкость модели, например в случае регрессии.
+
+
+
+Ширина окна же $h$ существенно влияет на качество модели и может быть использована в качестве гиперпараметра алгоритма и ее можно подбирать, также как и количество соседей.
+
+При слишком маленькой ширине модель сильно подстраивается под обучающую выборку, теряет свою обобщающую способность и рискует переобучиться. При слишком большой ширине наблюдается обратная ситуация - модель рискует недообучиться. Универсальной ширины окна не существует, поэтому для каждой задачи её приходится подбирать отдельно.
+
+
+На рисунке ниже приведены [примеры](https://education.yandex.ru/handbook/ml/article/metricheskiye-metody) того как ядерная функция и ширина окна влияют на результаты регрессии:
+
+
+
+
+
+
+
+
+
+В `scikit-learn` подход с использованием ядерной функции не реализован в самой библиотеке. Однако, библиотека дает возможность пользователю самостоятельно задать функцию для вычисления весов объектов.
+
+Для этого в качестве параметра `weights` нужно передать функцию, которая принимает в качестве аргумента расстояния между объектами и возвращает веса соседей.
+
+
+
+Например, гауссовское ядро с шириной окна $h$ можно задать следующим образом:
+
+```python
+import numpy as np
+from sklearn.neighbors import KNeighborsClassifier
+from sklearn.neighbors import KNeighborsRegressor
+
+# Определяем Функцию Для Вычисления Весов Объекта С Гаусовским Ядром И Шириной Окна H
+def gaussian_kernel(distances, h=1):
+ return 1/np.sqrt(2 * np.pi) * np.exp(-0.5 * (distances / h) ** 2)
+
+# Создаем Экземпляр Классификатора KNN С Кастомной Функцией Для Вычисления Весов
+knn_clf = KNeighborsClassifier(n_neighbors=5, weights=gaussian_kernel)
+
+# Создаем Экземпляр Регрессора KNN С Кастомной Функцией Для Вычисления Весов
+knn_reg = KNeighborsRegressor(n_neighbors=5, weights=gaussian_kernel)
+```
+
+### Ускорение Поиска Соседей
+
+Вторая модификация классического алгоритма kNN связана с необходимостью оптимизации поиска соседей.
+
+В классическом алгоритме предполагается, что для того, чтобы найти ближайших соседей для объекта $x_t$, нужно вычислить расстояние между этим объектом и всеми объектами из обучающей выборки $(x_i)_{i=1}^n$.
+
+То есть нам нужно перебрать $n$ объектов. Такой "топорный" перебор называется методом грубой силы (brute force).
+
+А если в датасете миллионы строк? Десятки миллионов? Это получается, что для каждого объекта из обучающей выборки нам нужно будет выполнить цикл как минимум с миллионом итераций! [Сложность](https://bimlibik.github.io/posts/complexity-of-algorithms/) такого алгоритма $O(n)$.
+
+Но тут еще стоит учесть, что каждый объект из выборки - это вектор с $m$ координатами. То есть цикл будет вложенный - сначала по объектам, потом по их признакам. Тогда, если в датасете миллион объектов и каждый из них описывается 100 признаками, то нам понадобится 100 миллионов операций на поиск соседей только для одного нового объекта. Сложность такого алгоритма будет $O(nm)$.
+
+Проблема осложняется ещё и тем, что данный поиск необходимо выполнять на этапе применения модели, который должен быть быстрым. Пользователь вашего приложения по оценке недвижимости не будет ждать пока вы в своей базе данных вы найдете похожие дома и посчитаете прогноз.
+
+Таким образом, возникает необходимость в более быстрых методах поиска ближайших соседей, чем простой перебор.
+
+Для этого были разработаны методы для ускорения поиска ближайших соседей. Это методы:
+
+* K-d-деревья (k-dimensional tree)
+* Ball-деревья (ball tree)
+* [Random projection trees](https://erikbern.com/2015/10/01/nearest-neighbors-and-vector-models-part-2-how-to-search-in-high-dimensional-spaces.html)
+* [Locality-sensitive hashing (LSH)](https://randorithms.com/2019/09/19/Visual-LSH.html)
+* [Proximity graphs & Hierarchical navigable small world (HNSW)](https://arxiv.org/abs/1603.09320)
+
+
+В реализации kNN в библиотеке scikit-learn реализованы несколько подходов к поиску соседей. Способ поиска определяется параметром algorithm. Его возможные значения:
+
+* `'brute'` - поиск полным перебором всей обучающей выборки
+* `'kd_tree'` - поиск с помощью k-d-деревьев
+* `'ball_tree'` - поиск с помощью ball-деревьев
+* '`auto'` - автоматическое определение алгоритма поиска на основе датасета.
+
+По умолчанию параметр algorithm установлен в значение `'auto'`, то есть модель сама выбирает, какой метод поиска соседей ей использовать для данного набора данных. В [документации scikit-learn](https://scikit-learn.org/stable/modules/neighbors.html#choice-of-nearest-neighbors-algorithm) по kNN приведены условия, когда используется тот иной алгоритм поиска, приводить их здесь не имеет смысла.
+
+Мы не будем рассматривать принципы работы каждого из алгоритмов поиска соседей, так как, алгоритм поиска как таковой не влияет на качество модели, а только на скорость ее работы, и, как правило, дата-сайентисты используют алгоритм поиска по умолчанию (на выбор scikit-learn), не задумываясь над тем как именно происходит поиск под капотом.
+
+Желающим детальнее ознакомиться с каждым из алгоритмов предлагаю воспользоваться доп. источниками:
+* [Документация scikit-learn по kNN](https://scikit-learn.org/stable/modules/neighbors.html#nearest-neighbor-algorithms)
+* [Учебник по машинному обучению от Яндекса](https://education.yandex.ru/handbook/ml/article/metricheskiye-metody)
+* [Статья с примерами применения K-d- и Ball- деревьев](https://www.geeksforgeeks.org/ball-tree-and-kd-tree-algorithms/)
+
+## Связанные заметки
+- [[Линейные модели]] — контраст с параметрическими моделями: kNN хранит обучающие примеры и не строит явную линейную функцию
+- [[Нейронные сети]] — другой класс моделей ML; в отличие от kNN, нейросети обучают веса и строят параметрическое отображение $Y=F(X)$
+- [[Расстояние между объектами]] — формулы метрик (Евклид, Манхэттен, Минковский, Махаланобис) идентичны тем, что реализованы в sklearn; Math-нота даёт строгие определения
+- [[Итерационная классификация. Метод K-средних (K-means)]] — K-means тоже классифицирует по минимальному расстоянию $\min \rho_{il}$; unsupervised-аналог kNN
+- [[Наивный Байесовский алгоритм]] — альтернативный метод классификации с учителем из той же обучающей выборки
+- [[Функция принадлежности]] — μ_A: U → [0,1] аналогична вероятности принадлежности классу $\hat{P}_c(x)$ в kNN
diff --git a/90 Library/Machine Learning/Нейронная сеть Кохонена.md b/90 Library/Machine Learning/Нейронная сеть Кохонена.md
new file mode 100644
index 0000000..f39815b
--- /dev/null
+++ b/90 Library/Machine Learning/Нейронная сеть Кохонена.md
@@ -0,0 +1,87 @@
+---
+status: seed
+type: concept
+tags:
+ - machine-learning
+ - neural-networks
+ - clustering
+ - self-organizing-maps
+created: 2026-05-07
+updated: 2026-05-14
+title: Нейронная сеть Кохонена
+---
+
+# Нейронная сеть Кохонена
+
+**Нейронная сеть Кохонена** - класс нейронных сетей, основанный на самоорганизующихся картах (*Self-Organizing Maps*, SOM). Такие сети применяются для [[Кластерный анализ|кластеризации]] и проецирования многомерных данных на пространство меньшей размерности с сохранением топологической близости объектов.
+
+Если два объекта близки в исходном пространстве признаков, после обучения они обычно попадают в близкие области карты. Поэтому сеть Кохонена удобна не только для разбиения данных на группы, но и для визуального анализа структуры выборки.
+
+## Идея
+
+Сеть Кохонена объединяет две задачи:
+
+1. Выделение кластеров в многомерных данных.
+2. Отображение многомерных объектов на двумерную или одномерную карту.
+
+В отличие от многих сетей, обучающихся с учителем, сеть Кохонена обычно работает в режиме самообучения: ей предъявляют входные объекты, а сеть постепенно настраивает веса нейронов так, чтобы разные области карты отвечали за разные группы похожих объектов.
+
+Интуитивно идею можно описать так: за каждым классом или группой похожих объектов закрепляется один нейрон либо группа близких нейронов. Нейрон хранит вектор весов, который постепенно становится представителем своего класса объектов.
+
+![[Pasted image 20260507230701.png]]
+
+Если один и тот же нейрон слишком часто становится победителем, его иногда временно исключают из рассмотрения или тормозят. Это помогает "уравнять права" нейронов выходного слоя и не дать одному прототипу забрать на себя слишком много объектов. Простейший вариант такого механизма - торможение только что выигравшего нейрона.
+
+## Архитектура
+
+Сеть состоит из двух основных слоев:
+
+- **входной слой** - принимает вектор признаков объекта;
+- **выходной слой** - содержит нейроны топологической карты.
+
+Каждый нейрон выходного слоя связан со всеми входными признаками и имеет собственный вектор весов. Количество нейронов выходного слоя связано с желаемой детализацией карты и числом обнаруживаемых областей данных.
+
+Выходной слой можно рассматривать как упорядоченную структуру радиальных нейронов. В контексте классификации без учителя число нейронов или областей карты связано с ожидаемым числом классов $K$, но это не жёсткое число заранее известных меток: карта может показать более тонкую структуру данных.
+
+![[Pasted image 20260507222244.png|500]]
+
+## Обучение
+
+Обучение сети Кохонена сводится к последовательной подстройке весов. На каждом шаге сети предъявляется входной объект, после чего выбирается нейрон-победитель - нейрон, чей вектор весов ближе всего к входному вектору.
+
+После выбора победителя корректируются:
+
+- веса самого нейрона-победителя;
+- веса нейронов, лежащих в его окрестности на карте.
+
+Размер окрестности $R$ и скорость обучения обычно задаются как функции времени: на первых итерациях они велики, а затем постепенно уменьшаются. В начале обучения может обновляться большая часть карты, поэтому формируется грубая структура кластеров. Ближе к концу обучения $R$ стремится к нулю, и карта уточняет границы между группами объектов.
+
+Подробная процедура вынесена в [[Алгоритм обучения сети Кохонена]].
+
+## Связь с кластеризацией
+
+По смыслу сеть Кохонена близка к итерационным методам кластеризации: веса нейронов играют роль прототипов групп, а входные объекты притягивают ближайшие прототипы к себе. Поэтому рядом полезно держать заметки про [[Кластерный анализ]], [[Классификация]] и [[Итерационная классификация. Метод K-средних (K-means)]].
+
+## Применение
+
+Сети Кохонена особенно полезны для разведочного анализа данных: они помогают увидеть сгущения объектов, близость классов и потенциальные аномалии на двумерной карте.
+
+Типичные применения:
+
+- кластеризация без учителя;
+- визуализация многомерных данных;
+- поиск закономерностей в больших массивах данных;
+- выявление независимых или слабо связанных признаков;
+- сжатие информации;
+- моделирование и прогнозирование;
+- обнаружение новых явлений и нетипичных объектов.
+
+Если после обучения кластеры разметить вручную, карту можно использовать и для классификации новых объектов. Если новый объект не похож ни на один из известных кластеров, это может быть сигналом новизны или аномалии.
+
+## Связанные заметки
+
+- [[Нейронные сети]]
+- [[Алгоритм обучения сети Кохонена]]
+- [[Кластерный анализ]]
+- [[Классификация]]
+- [[Итерационная классификация. Метод K-средних (K-means)]]
diff --git a/90 Library/Machine Learning/Нейронные сети.md b/90 Library/Machine Learning/Нейронные сети.md
new file mode 100644
index 0000000..b6d288e
--- /dev/null
+++ b/90 Library/Machine Learning/Нейронные сети.md
@@ -0,0 +1,284 @@
+---
+status: processing
+type: concept
+tags:
+ - machine-learning
+ - neural-networks
+created: 2025-12-17
+updated: 2026-05-14
+source: "[[МИАД_Л5_нейронки.pdf]]"
+title: Нейронные сети
+---
+
+# Нейронные сети
+
+Нейронные сети - модели машинного обучения, вдохновлённые принципами работы биологических нейронов. Их основа - набор связанных искусственных нейронов, которые преобразуют входной вектор $X$ в выходной вектор $Y$.
+
+## Два направления в ИИ
+
+В исследованиях искусственного интеллекта можно выделить два направления:
+
+1. **Моделирование результатов естественного мышления**
+ - важен результат;
+ - внутренние механизмы не обязательны;
+ - цель - получить поведение, похожее на поведение естественных интеллектуальных систем.
+
+ Примеры: системы нечёткого вывода, экспертные системы, построенные по принципу баз знаний.
+
+2. **Моделирование механизмов естественного мышления**
+ - важны нейрофизиологические и психологические механизмы;
+ - цель - воспроизвести эти механизмы техническими средствами.
+
+ Нейронные сети относятся ко второму направлению.
+
+## Биологический нейрон
+
+![[Pasted image 20260410103922.png]]
+
+Входные сигналы дендритного дерева взвешиваются и суммируются на пути к аксону, где генерируется выходной импульс. Выходной сигнал проходит по ветвям аксона и достигает синапсов, соединяющих аксоны с дендритами других нейронов.
+
+Типы нейронов:
+
+1. **Рецепторные** - вводят в мозг сенсорную информацию от органов чувств.
+2. **Промежуточные** - трансформируют сигналы от рецепторных нейронов и передают их дальше.
+3. **Эффекторные** - формируют необходимое действие.
+
+В 1957 году Фрэнк Розенблатт предложил модель персептрона. С 1970-х годов нейросетевое направление начало активно развиваться.
+
+Одна из классических задач нейронных сетей - распознавание образов: букв, лиц, объектов и т.д.
+
+## Искусственный нейрон
+
+Искусственный нейрон состоит из трёх основных элементов:
+
+- умножители, или синапсы;
+- сумматор;
+- нелинейный преобразователь, или функция активации.
+
+![[Pasted image 20260410105854.png]]
+
+Функцию активации часто называют блоком нелинейного преобразования.
+
+![[Pasted image 20260410110002.png]]
+
+Взвешенная сумма входов:
+
+$$
+S=\sum\limits_{i=1}^{n}\omega_i x_i+b
+$$
+
+где:
+- $x_i$ - входной сигнал;
+- $\omega_i$ - вес входа;
+- $b$ - смещение (*bias*).
+
+Смещение можно интерпретировать как порог срабатывания нейрона.
+
+## Функции активации
+
+Функция активации добавляет нелинейность. Без неё многослойная сеть сводилась бы к одному линейному преобразованию, а значит не могла бы эффективно моделировать сложные зависимости.
+
+### Сигмоида
+
+Функцией активации нейрона часто является сигмоида.
+
+![[Pasted image 20260410110555.png]]
+
+Для логистической функции:
+
+$$
+f'(x)=a f(x)(1-f(x))
+$$
+
+Если $a=1$, то:
+
+$$
+y'=y(1-y)
+$$
+
+То есть производную можно вычислить через уже полученное значение функции. Это удобно для [[Обратное распространение ошибки|обратного распространения ошибки]].
+
+![[Pasted image 20260413130714.png]]
+
+### Гиперболический тангенс
+
+В качестве функции активации также используется гиперболический тангенс:
+
+$$
+\operatorname{th}(x)
+=
+\frac{\operatorname{sh}(x)}{\operatorname{ch}(x)}
+=
+\frac{e^x-e^{-x}}{e^x+e^{-x}}
+=
+\frac{e^{2x}-1}{e^{2x}+1}
+$$
+
+Как и логистическая функция, гиперболический тангенс является S-образной функцией, но он симметричен относительно начала координат. В точке $0$ его значение равно $0$.
+
+### Бинарная функция
+
+Для сети Хопфилда может использоваться бинарная функция активации:
+
+$$
+y_i =
+\begin{cases}
+1, \\
+-1
+\end{cases}
+$$
+
+![[Pasted image 20260413131243.png]]
+
+В другом варианте бинарная функция возвращает:
+
+$$
+y =
+\begin{cases}
+1, & S \ge \theta \\
+0, & S < \theta
+\end{cases}
+$$
+
+где $\theta$ - порог.
+
+## Модели нейронных сетей
+
+Любая нейронная сеть выполняет нелинейное преобразование:
+
+$$
+Y=F(X)
+$$
+
+Сеть преобразует входной вектор:
+
+$$
+X=(x_1,x_2,\dots,x_n)
+$$
+
+в выходной вектор:
+
+$$
+Y=(y_1,y_2,\dots,y_m)
+$$
+
+Конкретный вид преобразования зависит от архитектуры сети, весов и функций активации.
+
+Преимущество нейронных сетей - обучаемость. Веса сети можно представить как набор матриц. Суть обучения сводится к настройке этих весов так, чтобы для входного объекта $X$ сеть выдавала выход $Y$, близкий к правильному ответу $D$.
+
+## Ассоциативная память
+
+Отдельный класс составляют сети ассоциативной памяти, например [[Сеть Хопфилда]] и [[Сеть Хэмминга]]. Они ориентированы на хранение эталонных образов и распознавание входного сигнала по близости к этим эталонам.
+
+Их особенность в том, что весовые коэффициенты рассчитываются один раз перед началом функционирования сети. После задания весов они обычно не корректируются: сеть не обучается итеративно в привычном смысле, а хранит набор эталонов и сопоставляет с ними входной образ.
+
+Пусть известен набор эталонных образов: изображений, звуков, бинарных векторов или других сигналов. Сеть должна по входному, возможно искажённому, сигналу восстановить соответствующий эталонный образ, указать номер наиболее близкого эталона или показать, что подходящего эталона нет.
+
+По смыслу входной образ работает как ключ, по которому сеть "вспоминает" ближайший сохранённый образ.
+
+| Сеть | Что выдаёт | Когда удобна |
+|---|---|---|
+| [[Сеть Хопфилда]] | восстановленный образ | когда нужно получить полный эталон |
+| [[Сеть Хэмминга]] | номер ближайшего эталона | когда достаточно классифицировать вход |
+
+Обе сети относятся к моделям ассоциативной памяти, но решают задачу на разном уровне: сеть Хопфилда восстанавливает состояние, а сеть Хэмминга выбирает ближайший сохранённый образ.
+
+## Переобучение и обобщение
+
+**Обобщение** — способность сети делать точный прогноз на данных, не входивших в обучающую выборку.
+
+**Переобучение** возникает, если алгоритм обучения работает слишком долго или сеть слишком сложна для объёма данных: сеть "запоминает" обучающие примеры вместо того, чтобы выявить общую зависимость. Симптом: ошибка на обучающей выборке продолжает убывать, а ошибка на тестовой — перестаёт убывать или растёт.
+
+Сети с большим числом весов моделируют более сложные функции и сильнее склонны к переобучению. Сети с малым числом весов могут оказаться недостаточно гибкими.
+
+**Способы борьбы**:
+- **Кросс-проверка** — часть обучающей выборки резервируется как тестовая и не участвует в обучении. Если тестовая ошибка перестаёт убывать, обучение останавливают.
+- Уменьшение числа скрытых нейронов и/или слоёв.
+- Ограничение числа эпох обучения.
+
+**Эмпирическое правило** для выбора размера сети и объёма данных:
+
+$$
+2 \cdot (I + H + O) \le F \le 10 \cdot (I + H + O)
+$$
+
+$$
+\frac{F}{10} - I - O \le H \le \frac{F}{2} - I - O
+$$
+
+где $I$ — число входов, $H$ — число скрытых нейронов, $O$ — число выходов, $F$ — число обучающих примеров.
+
+## Этапы решения практических задач
+
+1. **Формализация задачи** — определить, какой смысл вкладывается в компоненты входного вектора $X$ и выходного вектора $Y$.
+2. **Подготовка данных** — собрать или сгенерировать обучающую выборку.
+3. **Предобработка данных** — нормировка, кодирование нечисловых переменных, проверка коррелируемости, анализ периодичности. Подробнее: [[Предобработка данных для нейронных сетей]].
+4. **Задание структуры сети** — выбор числа слоёв, числа нейронов в каждом слое и вида функций активации.
+5. **Обучение сети** — настройка весов, контроль переобучения, возможное включение шумов в обучающий процесс.
+6. **Использование сети** — применение обученной модели к новым данным.
+
+## Формализация задач
+
+Многослойный перцептрон вычисляет отображение $X \to Y$. Поэтому любая задача для НС сводится к выбору смысла входного и выходного векторов. Жёстких рецептов нет — это экспертная задача.
+
+### Классификация
+
+Вход $X$ — вектор признаков объекта. Выход — вектор вероятностей принадлежности к $M$ классам:
+
+$$
+C = (c_1, c_2, \dots, c_M), \quad 0 \le c_m \le 1, \quad \sum_{m=1}^M c_m = 1
+$$
+
+Кодировать номер класса одним выходом — некорректно: сеть интерполирует между числами классов и может относить объект к классу с промежуточным номером.
+
+### Прогнозирование временного ряда
+
+Для прогнозирования функции $f(t)$ используется **метод окон**: скользящее окно $W_i$ размера $n$ формирует входной вектор из исторических значений, а окно $W_o$ размера $m$ — целевой вектор (значения через интервал прогнозирования $\delta_0$).
+
+$$
+X = \bigl(f(t_0),\, f(t_0 - \delta_1),\, \dots,\, f(t_0 - \delta_1 - \dots - \delta_n)\bigr) \to Y = f(t_0 + \delta_0)
+$$
+
+### Аппроксимация многомерной функции
+
+Для функции $Y = f(X)$ с $N_I$ входами и $N_O$ выходами строится сеть с $N_I$ входами и $N_O$ выходами. Сеть обучается на известных значениях функции.
+
+## Обучение с учителем
+
+Процесс обучения с учителем:
+
+$$
+X^{(1)} \rightarrow D^{(1)} \approx Y^{(1)}
+$$
+
+$$
+X^{(2)} \rightarrow D^{(2)} \approx Y^{(2)}
+$$
+
+$$
+\vdots
+$$
+
+$$
+X^{(p)} \rightarrow D^{(p)} \approx Y^{(p)}
+$$
+
+Нейронные сети применяются для задач классификации, прогнозирования, распознавания образов и других задач приближения сложных функций.
+
+Для многослойных сетей основной алгоритм вычисления градиентов - [[Обратное распространение ошибки]]. Для сети с произвольным числом слоёв схема вынесена в [[Backpropagation для многослойной нейронной сети]].
+
+## Персептрон
+
+Базовая однослойная модель классификации вынесена в отдельную заметку [[Персептрон]]. Она показывает, как нейронная сеть может разделять пространство признаков гиперплоскостью и почему линейная разделимость является важным ограничением простых моделей.
+
+## Связанные заметки
+
+- [[Обратное распространение ошибки]]
+- [[Backpropagation для многослойной нейронной сети]]
+- [[Персептрон]]
+- [[Сеть Хопфилда]]
+- [[Сеть Хэмминга]]
+- [[Нейронная сеть Кохонена]]
+- [[Предобработка данных для нейронных сетей]]
+- [[Обучение без учителя. Алгоритм Хебба]]
+- [[Линейные модели]]
diff --git a/90 Library/Machine Learning/Обратное распространение ошибки.md b/90 Library/Machine Learning/Обратное распространение ошибки.md
new file mode 100644
index 0000000..21113a0
--- /dev/null
+++ b/90 Library/Machine Learning/Обратное распространение ошибки.md
@@ -0,0 +1,115 @@
+---
+status: stable
+type: concept
+tags:
+ - machine-learning
+ - neural-networks
+ - backpropagation
+ - gradient-descent
+created: 2025-12-17
+updated: 2026-05-07
+title: Обратное распространение ошибки
+---
+
+# Обратное распространение ошибки
+
+**Обратное распространение ошибки** (*backpropagation*) - алгоритм вычисления градиентов функции ошибки по весам многослойной [[Нейронные сети|нейронной сети]]. Само обновление весов выполняет градиентный спуск или его модификации, а backpropagation отвечает за эффективный расчёт производных.
+
+Главная идея: сначала сеть выполняет прямой проход и получает предсказание, затем ошибка распространяется от выходного слоя назад к предыдущим слоям. Для каждого веса считается, как изменение этого веса повлияло бы на итоговую ошибку.
+
+## Как выглядит
+
+![[Pasted image 20260507214813.png]]
+
+## Где используется
+
+Backpropagation нужен при обучении сетей с учителем:
+
+$$
+X^{(p)} \rightarrow Y^{(p)} \approx D^{(p)}
+$$
+
+где:
+
+- $X^{(p)}$ - входной объект;
+- $Y^{(p)}$ - выход сети;
+- $D^{(p)}$ - целевой ответ;
+- $p$ - номер обучающего примера.
+
+Алгоритм применим к многослойным сетям, если функции активации дифференцируемы или хотя бы имеют используемую на практике производную почти всюду.
+
+## Базовый цикл
+
+1. Подать входной вектор $X$ на вход сети.
+2. Выполнить прямой проход и получить выходы всех слоёв.
+3. Посчитать ошибку $E$ между предсказанием $Y$ и целевым ответом $D$.
+4. Посчитать локальную ошибку выходного слоя.
+5. Распространить ошибку назад и посчитать локальные ошибки скрытых слоёв.
+6. Найти градиенты по весам.
+7. Обновить веса в направлении антиградиента.
+8. Повторять до выполнения условия остановки: лимит эпох, малая ошибка, малая норма градиента или отсутствие улучшения.
+
+## Ключевые формулы
+
+Для квадратичной ошибки:
+
+$$
+E=\frac{1}{2}\sum\limits_{l=1}^{m}(y_l-d_l)^2
+$$
+
+Обновление веса через градиентный спуск:
+
+$$
+w_{ij}(t+1)=w_{ij}(t)-\alpha\frac{\partial E}{\partial w_{ij}(t)}
+$$
+
+где:
+
+- $w_{ij}$ - вес связи;
+- $t$ - номер шага обучения;
+- $\alpha$ - скорость обучения (*learning rate*);
+- $\frac{\partial E}{\partial w_{ij}}$ - производная ошибки по весу.
+
+## Локальная ошибка
+
+Для выходного слоя:
+
+$$
+\delta_l^{(2)}=(y_l-d_l)F'(S_l^{(2)})
+$$
+
+Для скрытого слоя:
+
+$$
+\delta_i^{(1)}
+=
+F'(S_i^{(1)})
+\sum\limits_{l=1}^{m}
+\delta_l^{(2)}w_{li}^{(2)}
+$$
+
+Смысл $\delta$: на выходном слое она показывает ошибку нейрона с учётом производной активации, а на скрытом слое собирает вклад ошибок следующего слоя, взвешенный связями.
+
+## Что вынесено отдельно
+
+- [[Backpropagation для однослойного перцептрона]] - подробный математический вывод через правило цепочки.
+- [[Backpropagation для многослойной нейронной сети]] - общий алгоритм для произвольного числа слоёв.
+
+## Интуиция
+
+Backpropagation - это не отдельный способ оптимизации, а способ быстро вычислить градиенты. Оптимизацию делает градиентный спуск или его модификации: SGD, Momentum, Adam и т.д.
+
+Градиент веса получается как локальная ошибка нейрона, в который входит вес, умноженная на вход этого веса. Поэтому после обратного прохода обновление всех весов становится локальной операцией.
+
+## Иллюстрации
+
+![[Pasted image 20260417105754.png|536]]
+
+![[Pasted image 20260417105833.png|540]]
+
+## Связанные заметки
+
+- [[Backpropagation для однослойного перцептрона]]
+- [[Backpropagation для многослойной нейронной сети]]
+- [[Нейронные сети]]
+- [[Линейные модели]]
diff --git a/90 Library/Machine Learning/Обучение без учителя. Алгоритм Хебба.md b/90 Library/Machine Learning/Обучение без учителя. Алгоритм Хебба.md
new file mode 100644
index 0000000..8469a1a
--- /dev/null
+++ b/90 Library/Machine Learning/Обучение без учителя. Алгоритм Хебба.md
@@ -0,0 +1,65 @@
+---
+status: seed
+type: concept
+tags:
+ - machine-learning
+ - neural-networks
+ - unsupervised-learning
+ - hebb
+created: 2026-05-14
+updated: 2026-05-14
+title: Обучение без учителя. Алгоритм Хебба
+---
+
+# Обучение без учителя. Алгоритм Хебба
+
+Обучение без учителя — режим, при котором [[Нейронные сети|нейронной сети]] не предъявляют желаемых выходных сигналов. Сеть сама формирует выходы, а веса изменяются по алгоритму, учитывающему только входные сигналы и текущее состояние нейронов.
+
+Подстройка весов при обучении без учителя опирается исключительно на информацию, доступную внутри нейрона: его текущее состояние и уже имеющиеся весовые коэффициенты.
+
+## Сигнальный метод Хебба
+
+Правило обновления весов:
+
+$$
+w_{ij}(t) = w_{ij}(t-1) + \alpha \cdot y_i^{(n-1)} \cdot y_j^{(n)}
+$$
+
+где:
+- $y_i^{(n-1)}$ — выходное значение нейрона $i$ слоя $(n-1)$;
+- $y_j^{(n)}$ — выходное значение нейрона $j$ слоя $n$;
+- $\alpha$ — скорость обучения;
+- $w_{ij}(t)$, $w_{ij}(t-1)$ — вес синапса на итерациях $t$ и $t-1$.
+
+Смысл: если оба нейрона активны одновременно, синаптическая связь между ними усиливается.
+
+## Дифференциальный метод Хебба
+
+Правило обновления весов:
+
+$$
+w_{ij}(t) = w_{ij}(t-1) + \alpha \cdot \bigl[y_i^{(n-1)}(t) -$$
+$$- y_i^{(n-1)}(t-1)\bigr] \cdot \bigl[y_j^{(n)}(t) - y_j^{(n)}(t-1)\bigr]
+$$
+
+Сильнее обучаются синапсы, соединяющие те нейроны, выходы которых наиболее динамично изменились в сторону увеличения.
+
+## Алгоритм обучения
+
+1. Инициализировать все веса небольшими случайными значениями.
+2. Подать входной образ; распространить сигналы по сети согласно принципам прямопоточных (*feedforward*) сетей — вычислить взвешенную сумму для каждого нейрона и применить функцию активации.
+3. По формуле (1) или (2) скорректировать веса.
+4. Повторять с шага 2, пока выходные значения сети не стабилизируются с заданной точностью.
+
+Критерий остановки отличается от обратного распространения: не минимизация ошибки, а стабилизация выходов, поскольку целевые значения неизвестны.
+
+## Применение
+
+Обучение по Хеббу используется в сетях, где нет явного учителя, в частности в [[Нейронная сеть Кохонена|сети Кохонена]]. Там нейрон-победитель обновляет свои веса, притягивая их к входному образу, — это вариант сигнального метода.
+
+## Связанные заметки
+
+- [[Нейронные сети]]
+- [[Нейронная сеть Кохонена]]
+- [[Алгоритм обучения сети Кохонена]]
+- [[Обратное распространение ошибки]]
diff --git a/90 Library/Machine Learning/Персептрон.md b/90 Library/Machine Learning/Персептрон.md
new file mode 100644
index 0000000..c64d5e5
--- /dev/null
+++ b/90 Library/Machine Learning/Персептрон.md
@@ -0,0 +1,76 @@
+---
+status: seed
+type: concept
+tags:
+ - machine-learning
+ - neural-networks
+ - linear-models
+ - classification
+created: 2026-05-14
+updated: 2026-05-14
+title: Персептрон
+---
+
+# Персептрон
+
+**Персептрон**, или **перцептрон**, - ранняя модель [[Нейронные сети|нейронной сети]], предложенная Фрэнком Розенблаттом в 1957 году и реализованная в машине "Марк-1" в 1960 году. По смыслу это однослойная модель классификации, которая принимает вектор признаков и относит объект к классу по линейному правилу.
+
+Персептрон близок к [[Линейные модели|линейным моделям]]: решение строится через взвешенную сумму входных признаков и пороговую функцию активации.
+
+## Идея
+
+Персептрон состоит из одного слоя искусственных нейронов, соединённых с входами через весовые коэффициенты. На вход подаётся вектор признаков:
+
+$$
+X=(x_1,x_2,\dots,x_n)
+$$
+
+Каждый нейрон вычисляет линейную комбинацию входов:
+
+$$
+S_k=\sum\limits_{i=1}^{n}x_iw_{ik}
+$$
+
+и сравнивает её с порогом:
+
+$$
+S_k=T_k,\quad k=1,\dots,m
+$$
+
+где:
+
+- $x_i$ - значение входного признака;
+- $w_{ik}$ - вес связи между входом $i$ и выходом $k$;
+- $T_k$ - порог для выходного нейрона;
+- $m$ - число выходов сети.
+
+## Геометрический смысл
+
+С математической точки зрения персептрон разбивает пространство признаков гиперплоскостями. В трёхмерном случае плоскость задаётся уравнением:
+
+$$
+A X + B Y + C Z + D = 0
+$$
+
+Точки по одну сторону плоскости удовлетворяют неравенству:
+
+$$
+A X + B Y + C Z + D > 0
+$$
+
+Веса персептрона задают положение такой плоскости в пространстве признаков. Поэтому классификация сводится к проверке, по какую сторону разделяющей гиперплоскости находится объект.
+
+Для сети персептронного типа с $m$ выходами число областей классификации не превышает $2^m$.
+
+## Ограничение
+
+Однослойный персептрон решает задачи, которые можно свести к линейной разделимости. Если классы нельзя разделить одной гиперплоскостью или набором линейных порогов в исходном пространстве признаков, нужен переход к другим признакам или многослойной сети.
+
+Поэтому персептрон полезен как базовая модель для понимания [[Нейронные сети|нейронных сетей]], но не заменяет многослойные архитектуры и [[Обратное распространение ошибки|обратное распространение ошибки]].
+
+## Связанные заметки
+
+- [[Нейронные сети]]
+- [[Линейные модели]]
+- [[Классификация]]
+- [[Обратное распространение ошибки]]
diff --git a/90 Library/Machine Learning/Предобработка данных для нейронных сетей.md b/90 Library/Machine Learning/Предобработка данных для нейронных сетей.md
new file mode 100644
index 0000000..a7b69dc
--- /dev/null
+++ b/90 Library/Machine Learning/Предобработка данных для нейронных сетей.md
@@ -0,0 +1,82 @@
+---
+status: seed
+type: concept
+tags:
+ - machine-learning
+ - neural-networks
+ - preprocessing
+ - normalization
+created: 2026-05-14
+updated: 2026-05-14
+title: Предобработка данных для нейронных сетей
+---
+
+# Предобработка данных для нейронных сетей
+
+Перед обучением [[Нейронные сети|нейронной сети]] данные необходимо привести к виду, пригодному для входных нейронов. "Сырые" данные приводят к неустойчивому обучению и большой ошибке выхода. После правильной предобработки сеть зачастую обучается быстрее и достигает меньшей ошибки.
+
+## Принцип максимизации энтропии
+
+Общий принцип предобработки: **максимизировать энтропию входных и выходных значений**.
+
+Если значения переменной сосредоточены в узком диапазоне, информационное содержание каждого примера мало. Если значения равномерно распределены по единичному интервалу — информация максимальна. Значит, кодирование и нормировка должны стремиться к равномерному распределению закодированных примеров.
+
+## Нормировка числовых переменных
+
+Все входные и выходные значения необходимо привести к единому масштабу — нейросеть не должна зависеть от единиц измерения.
+
+### Линейная нормировка
+
+$$
+\tilde{x}_i = \frac{x_i - x_{i,\min}}{x_{i,\max} - x_{i,\min}}
+$$
+
+Результат лежит в $[0, 1]$. Оптимальна, когда значения плотно заполняют некоторый интервал без резких выбросов. При наличии выбросов весь основной массив данных сожмётся в окрестность нуля.
+
+### Нормировка по статистике
+
+$$
+\tilde{x}_i = \frac{x_i - \bar{x}_i}{\sigma_i}, \quad \bar{x}_i = \frac{1}{P}\sum_{\alpha=1}^{P}x_i^\alpha, \quad \sigma_i^2 = \frac{1}{P-1}\sum_{\alpha=1}^{P}(x_i^\alpha - \bar{x}_i)^2
+$$
+
+Нормированные значения не гарантированно лежат в $[0, 1]$. Если выходные нейроны используют сигмоиду, диапазон выходов ограничен — нужно дополнительно ограничить диапазон нормированных меток. Естественный выход: применить к нормированным данным ту же функцию активации, что и у выходных нейронов:
+
+$$
+\tilde{x}_i = f\!\left(\frac{x_i - \bar{x}_i}{\sigma_i}\right), \quad f(a) = \frac{1}{1+e^{-a}}
+$$
+
+## Кодирование нечисловых переменных
+
+Нейронная сеть работает с числами, поэтому нечисловые переменные необходимо закодировать. Два основных типа:
+
+- **Ординальные** — упорядоченные категории, которые можно ранжировать: *плохо — хорошо — отлично*.
+- **Категориальные** — неупорядоченные классы: *красный, синий, зелёный*.
+
+### Ординальные переменные
+
+Единичный отрезок $[0, 1]$ разбивается на $n$ частей (по числу классов) пропорционально числу примеров каждого класса в обучающей выборке:
+
+$$
+\Delta x_k = \frac{P_k}{P}
+$$
+
+где $P_k$ — число примеров класса $k$, $P$ — общее число примеров. Числовым значением класса становится центр соответствующего отрезка.
+
+Такой способ обеспечивает равномерное распределение закодированных значений, то есть максимальную энтропию.
+
+### Категориальные переменные
+
+Навязывать несуществующий порядок нельзя — это искажает структуру данных. Используется **двоичное кодирование**: $n$ категорий кодируются $n$ бинарными нейронами.
+
+- первая категория: $(1, 0, \dots, 0)$
+- вторая категория: $(0, 1, \dots, 0)$
+- …
+- $n$-я категория: $(0, \dots, 0, 1)$
+
+Можно использовать **биполярную кодировку**, заменяя нули на $-1$. При этом расстояния между всеми парами векторов-категорий одинаковы.
+
+## Связанные заметки
+
+- [[Нейронные сети]]
+- [[Обратное распространение ошибки]]
+- [[Нейронная сеть Кохонена]]
diff --git a/90 Library/Machine Learning/Сеть Хопфилда.md b/90 Library/Machine Learning/Сеть Хопфилда.md
new file mode 100644
index 0000000..b6095cd
--- /dev/null
+++ b/90 Library/Machine Learning/Сеть Хопфилда.md
@@ -0,0 +1,126 @@
+---
+status: seed
+type: concept
+tags:
+ - machine-learning
+ - neural-networks
+ - associative-memory
+created: 2025-12-17
+updated: 2026-05-15
+title: Сеть Хопфилда
+---
+
+# Сеть Хопфилда
+
+**Сеть Хопфилда** - однослойная рекуррентная [[Нейронные сети|нейронная сеть]], используемая как ассоциативная память. Она получает входной, возможно искажённый, образ и постепенно приводит состояние сети к одному из сохранённых эталонов.
+
+В отличие от [[Сеть Хэмминга|сети Хэмминга]], сеть Хопфилда выдаёт не номер ближайшего образа, а сам восстановленный образ.
+
+## Идея
+
+Сеть хранит набор эталонных образов как устойчивые состояния. При подаче входного сигнала значения выходов нейронов инициализируются этим сигналом, после чего сеть итеративно пересчитывает состояния. Если вход близок к одному из эталонов, динамика сети должна сойтись к нему.
+
+По смыслу входной образ работает как ключ: сеть "вспоминает" наиболее близкий сохранённый образ.
+
+В общем случае входной сигнал описывается биполярным вектором:
+
+$$
+X=(x_1,\dots,x_n),\quad x_i \in \{-1,1\}
+$$
+
+Эталонный образ $k$ можно обозначить как:
+
+$$
+X^k=(x_1^k,\dots,x_n^k),\quad k=1,\dots,m
+$$
+
+Если сеть успешно распознаёт образ, её выход совпадает с одним из эталонов:
+
+$$
+Y=X^k
+$$
+
+Если выходной вектор не совпал ни с одним эталоном, сеть пришла к ложному или неинтерпретируемому состоянию.
+
+## Архитектура
+
+Основные свойства сети Хопфилда:
+
+- каждый нейрон связан с другими нейронами;
+- выходы нейронов возвращаются на входы сети;
+- связь нейрона с самим собой обычно исключается;
+- веса задаются заранее по эталонным образам;
+- состояние сети изменяется до стабилизации.
+
+![[Pasted image 20260515090401.png]]
+
+Инициализация сети задаёт начальные выходы нейронов. При функционировании сеть изменяет состояние до тех пор, пока не придёт к устойчивому образу. Если входной сигнал близок к одному из сохранённых эталонов, сеть восстанавливает этот эталон.
+
+Для сети Хопфилда часто используется бинарная функция активации, описанная в [[Нейронные сети]].
+
+## Инициализация весов
+
+Веса задаются по эталонным образам один раз перед началом работы сети:
+
+$$
+w_{ij}=\sum\limits_{k=1}^{m}x_i^k x_j^k,\quad i\neq j
+$$
+
+Обычно связь нейрона с самим собой исключают:
+
+$$
+w_{ii}=0
+$$
+
+После такой инициализации сеть не дообучается на входных примерах, а использует уже записанные в матрицу связей эталоны.
+
+## Алгоритм функционирования
+
+1. На вход подаётся неизвестный сигнал. Фактически ввод выполняется установкой начальных значений аксонов:
+
+$$
+y_i(0)=x_i,\quad i=0,\dots,n-1
+$$
+
+Ноль в скобках обозначает нулевую итерацию работы сети.
+
+2. Рассчитывается новое состояние нейронов:
+
+$$
+s_j(p+1)=\sum\limits_{i=1}^{n-1}w_{ij}y_i(p),\quad j=0,\dots,n-1
+$$
+
+После этого вычисляются новые значения аксонов:
+
+$$
+y_j(p+1)=f[s_j(p+1)]
+$$
+
+где $f$ - функция активации в виде скачка.
+
+![[Pasted image 20260514115340.png|300]]
+
+3. Проверяется, изменились ли выходные значения за последнюю итерацию. Если изменились, сеть возвращается к пересчёту состояний. Если выходы стабилизировались, работа завершается.
+
+Итоговый выходной вектор считается образом, который лучше всего соответствует входным данным.
+
+## Ограничения
+
+Сеть Хопфилда может не распознать образ корректно и выдать несуществующий эталон. Это связано с ограниченной ёмкостью ассоциативной памяти.
+
+Для сети Хопфилда число запоминаемых образов обычно не должно превышать:
+
+$$
+m \approx 0.15n
+$$
+
+где $n$ - число нейронов.
+
+Если два эталона слишком похожи, возможны перекрёстные ассоциации: предъявление первого образа может привести к восстановлению второго, и наоборот.
+
+Сеть Хопфилда хорошо подходит для восстановления или завершения образа, но не предназначена для явного сопоставления образа с номером класса. Для такой задачи удобнее [[Сеть Хэмминга]].
+
+## Связанные заметки
+
+- [[Сеть Хэмминга]]
+- [[Нейронные сети]]
diff --git a/90 Library/Machine Learning/Сеть Хэмминга.md b/90 Library/Machine Learning/Сеть Хэмминга.md
new file mode 100644
index 0000000..1e3d2c8
--- /dev/null
+++ b/90 Library/Machine Learning/Сеть Хэмминга.md
@@ -0,0 +1,117 @@
+---
+status: seed
+type: concept
+tags:
+ - machine-learning
+ - neural-networks
+ - associative-memory
+created: 2025-12-17
+updated: 2026-05-15
+title: Сеть Хэмминга
+---
+
+# Сеть Хэмминга
+
+**Сеть Хэмминга** - нейронная сеть ассоциативной памяти, которая выбирает ближайший эталонный образ по входному сигналу. Она удобна, когда не нужно восстанавливать образ явно, а достаточно получить номер или класс ближайшего эталона.
+
+По сравнению с [[Сеть Хопфилда|сетью Хопфилда]], сеть Хэмминга обычно требует меньше памяти и вычислений.
+
+## Идея
+
+Сеть сравнивает неизвестный входной образ со всеми сохранёнными эталонами. Для бинарных векторов близость связана с расстоянием Хэмминга: числом отличающихся битов в двух бинарных векторах.
+
+Сеть должна выбрать эталон с минимальным расстоянием до входного сигнала. В результате активным остаётся один выходной нейрон, соответствующий выбранному образу.
+
+В отличие от [[Сеть Хопфилда|сети Хопфилда]], сеть Хэмминга не пытается восстановить полный эталонный образ. Её цель - выбрать номер или класс ближайшего образца.
+
+![[Pasted image 20260514120654.png]]
+
+## Архитектура
+
+Сеть состоит из двух слоёв:
+
+- первый слой вычисляет близость входного вектора к каждому эталону;
+- второй слой реализует конкуренцию между эталонами.
+
+Количество нейронов во втором слое равно количеству эталонных образов. Победить должен один нейрон - тот, который соответствует ближайшему эталону.
+
+Первый и второй слои имеют по $m$ нейронов, где $m$ - число эталонных образов. Нейроны первого слоя имеют по $n$ синапсов, соединённых со входами сети. Эти входы можно рассматривать как фиксированный нулевой слой.
+
+Нейроны второго слоя связаны между собой ингибиторными обратными связями:
+
+- связь нейрона с самим собой имеет вес $+1$;
+- связи с другими нейронами имеют отрицательный вес $-\varepsilon$.
+
+Параметр $\varepsilon$ выбирают так, чтобы:
+
+$$
+0 < \varepsilon < \frac{1}{m}
+$$
+
+Ингибиторные связи постепенно подавляют менее подходящие эталоны, пока активным не останется один победивший нейрон.
+
+Первый слой нужен для начального сравнения входа со всеми эталонами. Второй слой превращает эти оценки близости в результат классификации: за счёт взаимного торможения слабые кандидаты подавляются, а сильнейший остаётся активным.
+
+## Алгоритм функционирования
+
+На стадии инициализации весовым коэффициентам первого слоя и порогам функции активации присваиваются значения:
+
+$$
+w_{ik}=\frac{x_i^k}{2},\quad i=0,\dots,n-1,\quad k=0,\dots,m-1
+$$
+
+$$
+T_k=\frac{n}{2},\quad k=0,\dots,m-1
+$$
+
+где $x_i^k$ - $i$-й элемент $k$-го эталонного образа.
+
+Порог $T_k$ сдвигает диапазон выхода: скалярное произведение $\sum w_{ik}x_i$ при весах $x_i^k/2$ даёт значение от $0$ до $n/2$. После прибавления $T_k = n/2$ итоговое значение $y_k^{(1)}$ попадает в диапазон $[0, n]$, где $n$ соответствует полному совпадению с эталоном, а $0$ — полному несовпадению.
+
+Весовые коэффициенты тормозящих синапсов второго слоя берут равными небольшой величине $\varepsilon$. Синапс нейрона, связанный с его же аксоном, имеет вес $+1$.
+
+1. На входы сети подаётся неизвестный вектор:
+
+$$
+X=\{x_i:i=0,\dots,n-1\}
+$$
+
+После этого рассчитываются состояния нейронов первого слоя:
+
+$$
+y_j^{(1)}=s_j^{(1)}=\sum\limits_{i=1}^{n-1}w_{ij}x_i+T_j
+$$
+
+Полученными значениями инициализируются значения аксонов второго слоя:
+
+$$
+y_j^{(2)}=y_j^{(1)},\quad j=0,\dots,m-1
+$$
+
+2. Вычисляются новые состояния нейронов второго слоя:
+
+$$
+s_j^{(2)}(p+1)=y_j^{(2)}(p)-\varepsilon\sum\limits_{\substack{k=0\\k\neq j}}^{m-1}y_k^{(2)}(p),\quad j=0,\dots,m-1
+$$
+
+Затем вычисляются значения их аксонов:
+
+$$
+y_j^{(2)}(p+1)=f[s_j^{(2)}(p+1)]
+$$
+
+3. Проверяется, изменились ли выходы нейронов второго слоя за последнюю итерацию. Если изменились, сеть возвращается к шагу 2. Если нет, работа завершается.
+
+Функция активации $f$ используется как пороговая функция. Порог должен быть выбран так, чтобы возможные значения аргумента не приводили к нежелательному насыщению.
+
+## Замечание о первом слое
+
+Роль первого слоя условна: после вычисления начальных значений сеть больше к нему не обращается. Поэтому первый слой можно заменить матрицей весовых коэффициентов.
+
+Это подчёркивает практический смысл сети Хэмминга: первая часть вычисляет расстояния или меры похожести, а вторая выбирает победителя.
+
+## Связанные заметки
+
+- [[Сеть Хопфилда]]
+- [[Расстояние между объектами]]
+- [[Нейронные сети]]
diff --git a/90 Library/Math/Статистика/Временные ряды/TS и DS ряды.md b/90 Library/Math/Статистика/Временные ряды/TS и DS ряды.md
new file mode 100644
index 0000000..187822d
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/TS и DS ряды.md
@@ -0,0 +1,21 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - mephi
+ - ml
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: TS И DS Ряды
+---
+
+# TS И DS Ряды
+
+> **Тренд или основная тенденция (Т)** - плавно меняющаяся линейная или нелинейная компонента, описывающая чистое влияние долговременных факторов на динамику изучаемого процесса.
+
+Нестационарные временные ряды, которые после выделения детерминированного тренда с помощью МНК (Метод Наименьших Квадратов) приводятся к стационарному ряду остатков, называются **стационарными относительно детерминированного тренда (TS - trend stationary time series)** или **TS-рядами.** Таким образом, ряд $X$ называется стационарным относительно детерминированного тренда (линейного, экспоненциального, полиномиального, …), если ряд $X_{t} - f(t,\beta)$ является стационарным.
+
+Временные ряды, которые можно привести к стационарному виду с помощью операции "дифференцирования", т.е. путем взятия конечных разностей определенного порядка, называются **стационарными относительно взятия разностей** **(DS - difference stationary time series)** или интегрированными временными рядами **(integrated time series)**.
diff --git a/90 Library/Math/Статистика/Временные ряды/Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции.md b/90 Library/Math/Статистика/Временные ряды/Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции.md
new file mode 100644
index 0000000..6fd851a
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции.md
@@ -0,0 +1,43 @@
+---
+status: processing
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - time-series
+ - autocorrelation
+created: 2026-02-13
+updated: 2026-05-07
+title: Автокорреляционная (ACF) И Частная Автокорреляционная (PACF) Функции
+---
+
+# Автокорреляционная (ACF) И Частная Автокорреляционная (PACF) Функции
+
+Пусть $x_{t}$ - стационарный ВР.
+Степень тесноты статистических связей между случайными величинами $x_{t}$ и $x_{t-k}$, отстающими друг от друга на лаг $k$, может быть измерена **парным коэффициентом корреляции**:
+$$\rho_{k}=\rho(k)=Corr(x_{t},x_{t-k})=\frac{Cov(x_{t},x_{t-k})}{\sqrt{D(x_{t})D(x_{t-k})}} = \frac{\phi(k)}{\phi(o)}$$
+т.к. для *стационарного* ряда: $D(x_{t})=D(x_{t-k})=\phi(o)$
+
+**Временной лаг $k$** - величина сдвига между наблюдениями, используемый при расчете коэффициента $\rho_{k}$
+
+**Величина $k$** определяет **порядок коэффициента автокорреляции**.
+
+При анализе автокорреляции $\rho_{k}$ в зависимости от $k$ её называют **автокорреляционной функцией** (АКФ), т.к. речь идет об изучении корреляции уровней ряда друг с другом, то коэффициенты называются ***автокорреляцией***.
+
+Оценкой коэффициента автокорреляции порядка $k$ является выборочный коэффициент автокорреляции порядка $k$:
+$$r_{k}=r(k) = r(x_{t},x_{t-k})=\frac{\overline{x_{t}x_{t-k}}-\overline{x_{t}}*\overline{x_{t-k}}}{\sqrt{D_{в}(x_{t})D_{в}(x_{t-k})}}$$
+Зависимость $r_{k}$ от $k (k = 1, \alpha,...)$ называют **выборочной** АКФ, а график этой зависимости - ***коррелограммой***.
+
+Если при расчете показателей корреляции уровней ВР в зависимости от лага $k$ использовать частные коэффициенты корреляции, характеризующие "*очищенную*" взаимосвязь, то получим **ЧАКФ $\rho_{k}^{ч}$**
+
+С помощью Частной Автокорреляционной Функции (ЧАКФ) измеряется корреляция между уровнями ряда $x_{t}$ и $x_{t-k}$, разделенными $k$ временными моментами, при исключении влияния на эту взаимосвязь всех промежуточных уровней ряда $x_{t-1},x_{t-2},\dots,x_{t-k+1}$, при этом, очевидно, что $\rho_{1}^{ч}=\rho_{1}$
+
+ЧАКФ - зависимость частных коэффициентов автокорреляции от лага.
+ЧАКФ показывает автокорреляцию между $x_{t}$ и $x_{t-k}$, очищенную от влияния значений между ними.
+
+## Связанные заметки
+- [[Автокорреляционная функция (АКФ)]] — расширенное изложение АКФ
+- [[Частная автокорреляционная функция]] — расширенное изложение ЧАКФ
+- [[Определение порядков АР и СС]] — практическое применение АКФ/ЧАКФ для выбора p и q
+- [[Стационарность - ВР]] — АКФ/ЧАКФ определены для стационарных рядов
diff --git a/90 Library/Math/Статистика/Временные ряды/Автокорреляционная функция (АКФ).md b/90 Library/Math/Статистика/Временные ряды/Автокорреляционная функция (АКФ).md
new file mode 100644
index 0000000..32af2ad
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Автокорреляционная функция (АКФ).md
@@ -0,0 +1,39 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - ml
+ - mephi
+ - statistics
+ - time-series
+ - autocorrelation
+created: 2026-02-13
+updated: 2026-05-07
+title: Автокорреляционная Функция (АКФ)
+---
+
+# Автокорреляционная Функция (АКФ)
+Пусть $x_t$ - стационарный ВР. Степени тесноты статической связи между случайными величинами $x_t\ и\ x_{t-k}$, отстающими друг от друга на лаг $k$, измеряется парным коэффициентом корреляции.
+
+***АКФ:*** $\rho_k = corr(x_t, x_{t-k}) = \frac{cov(x_t, x_{t-k})}{\sqrt{D(x_t)*D(x_{t-k}})} = ]D(x_t) =D(x_{t-k})=\phi(0)[_{\text{ввиду стационарности}}=\frac{\phi(k)}{\phi(0)},$
+где $x_{t-k}$ - сдвинутая переменная,
+
+$\frac{cov(x_t, x_{t-k})}{\sqrt{D(x_t)*D(x_{t-k})}}$ - формула корреляции,
+
+$k$ - величина временного лага.
+
+Величина временного лага $k$ определяет порядок коэффициента автокорреляции.
+
+$p$ - коэффициент для автокорреляции
+
+$q$ - коэффициент для скользящего среднего
+
+Оценка коэффициента автокорреляции порядка $k$ - выборочный коэффициент автокорреляции порядка $k$.
+
+Выборочная АКФ (ВАКФ): $r_k = r(x_t, x_{t-k}) = \frac{\overline{x_t*x_{t-k}}-\overline{x_t*x_{t-k}}}{\sqrt{D(x_t)*D(x_{t-k})}}$. График ВАКФ называется **коррелограммой**.
+
+## Связанные заметки
+- [[Частная автокорреляционная функция]] — ЧАКФ дополняет АКФ, очищая связь от влияния промежуточных лагов
+- [[Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции]] — объединённое изложение обеих функций
+- [[Определение порядков АР и СС]] — АКФ и ЧАКФ применяются для определения порядков моделей AR/MA
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Временные ряды/Авторегрессия AR.md b/90 Library/Math/Статистика/Временные ряды/Авторегрессия AR.md
new file mode 100644
index 0000000..f4a8f62
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Авторегрессия AR.md
@@ -0,0 +1,60 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: Авторегрессия AR
+---
+
+# Авторегрессия AR
+## Авторегрессия Первого Порядка
+$AR(I)$ - процесс авторегрессии 1-го порядка (зависимость текущего значения ВР от предыдущего)
+$x_{t}=\mu+a_{i}x_{t-1}+\epsilon_{t},\quad |a|<1\ (\epsilon - \text{процесс белого шума})$
+$|a|<1$ - Необходимое условие стационарности $AR(I)$
+
+Докажем, что $M=\frac{\mu}{1-a_{1}}$; $\quad \gamma_{0}=\frac{\sigma^{2}}{1-a_{1}^{2}}$; $\quad \gamma_{k}=a_{1}^{k}\frac{\sigma^{2}}{1-a_{1}^{2}}$
+Из того, что $\rho_{k}=a_{1}^{2}$ следует, что АКФ для $AR(I)$ экпоненциально (монотонно) убывает с ростом $k$ - при $a_{1}>0$, либо осциллирующе затухает (экспоненциально затухающие синусоидальные волны) при $a_{1}<0$
+
+По определению АКФ(1) = ЧАКФ(1)
+
+Для $k>1$ ЧАКФ процесса $AR(I)$ равна 0.
+
+> [!note] Характеристическое свойство $AR(I)$
+> Только первое значение ВЧАКФ для $AR(I)$ выходит за пределы доверительной трубки
+
+## Авторегрессия Второго Порядка
+$AR(II)$ - процесс авторегресии 2-го порядка.
+$x_{t}=a_{1}*x_{t-1}+a_{2}*x_{t-2}+\epsilon_{t}$
+
+Условие стационарности: $|\lambda_{1}|<1,\ |\lambda_{\alpha}|<1$
+При выполнении условия стационарности АКФ процесса $AR(II)$ убывает экспоненциально, **когда корни действительны.**
+Не затухает с осцилляцией (изменяется по синусоиде с экспоненциально убывающей амплитудой), **если корни комплексные.**
+
+ЧАКФ процесса $AR(II)$ равна 0, если $k>2$.
+
+> [!note] Характеристическое свойство $AR(II)$$
+> Только первые два значения ВЧАКФ для $AR(II)$ выходят за пределы доверительной области
+
+## Авторегрессия Порядка $p$
+$$x_{t} = \mu + a_{1}x_{t-1}+\dots+a_{p}x_{t-p}+\epsilon_{t}$$
+с использованием [[Лаговый оператор|лагового оператора]]:
+$$x_{t}=\mu+a_{1}Lx_{t}+\dots+a_{p}L^{p}x_{t}+\epsilon_{t}$$
+$$(1-a_{1}L-\dots-a_{p}L^{p})x_{t}=\mu+\epsilon_{t}$$
+Характ. уравнение 1: $1-a_{1}z-\dots-a_{p}z^{p}=0$
+Характ. уравнение 2: $\lambda^{p}-a_{1}\lambda^{p-1}-\dots-a_{p}\lambda^{0}=0$
+
+### Условие Стационарности
+1) все корни Х.У. 1 по модулю $> 1$ $(|z_{j}|>1)$
+2) все корни Х.У. 2 по модулю $< 1$ $(|\lambda_{j}|<1)$
+
+АКФ при **отсутствии кратных корней** соотв. Х.У. будет экспоненциально затухать;
+**если корни вещественные**, то просто затухает;
+**если комплексные**, то затухание с осцилляцией.
+
+ЧАКФ теоретическое $= 0$ для всех значений $k>p$.
+Для ВЧАКФ только первые $p$ компонент выходят за Д.И.
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Временные ряды/Белый шум.md b/90 Library/Math/Статистика/Временные ряды/Белый шум.md
new file mode 100644
index 0000000..2cd993a
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Белый шум.md
@@ -0,0 +1,34 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: Белый Шум
+---
+
+# Белый Шум
+
+**Одномерные модели ВР** - те, в которых текущее значение данного ВР зависит только от его предыстории (и не зависит от других ВР).
+
+**Процесс белого шума** - последовательность независимых и одинаково распределенных случайных величин с нулевыми $M\ и\ \sigma^{2}$:
+$\Sigma_{1},\Sigma_{2},\dots,\Sigma_{t-1}, \Sigma_{t}$
+
+**Белый шум** - стационарный случайны процесс $\epsilon(t)$, для которого:
+$M(\epsilon_{t})=0$
+$D(\epsilon_{t})=\sigma^{2}>0$
+$\rho_{k}=\rho(k)=Corr(\epsilon_{t},\epsilon_{t-k})=0\ при\ k \neq 0$
+
+Если процесс $\epsilon(t)$ Гауссовый, то это Гауссовый Белый Шум.
+Процесс "выбеливания" ВР - это исключение из него
+ тренда, цикличности, сезонно и прочих компонент так, чтобы остаток не отличался от процесса белого шума.
+
+Белый шум нужен для оценки качества построенной модели.
+Если удалось выделить белый шум из ВР, то моделирование проведено хорошо.
+
+Значения АКФ и ЧАКФ полностью попадают в доверительный интервал.
+
diff --git a/90 Library/Math/Статистика/Временные ряды/ВР - основы.md b/90 Library/Math/Статистика/Временные ряды/ВР - основы.md
new file mode 100644
index 0000000..f17dc0c
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/ВР - основы.md
@@ -0,0 +1,74 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - ml
+ - mephi
+ - statistics
+ - time-series
+created: 2026-02-13
+updated: 2026-05-07
+title: ВР - Основы
+---
+
+# ВР - Основы
+**Временной ряд (ВР)** - это последовательность измерений или наблюдений за каким-либо показателем, упорядоченная во времени. Он отражает эволюцию явления и позволяет выявлять закономерности (тренд, сезонность, цикличность), а также делать прогнозы.
+
+**Стационарность временного ряда** - это свойство ряда, при котором его основные статистические характеристики (среднее значение, дисперсия, автокорреляция) не меняются со временем.
+
+
+
+Стационарность Временного Ряда
+
+## Компоненты ВР
+
+**Тренд или основная тенденция (Т)** - плавно меняющаяся линейная или нелинейная компонента, описывающая чистое влияние долговременных факторов на динамику изучаемого процесса.
+
+Факторы в отдельности могут оказать разнонаправленное воздействие, однако в совокупности их влияние определяет общее направление развития ВР.
+
+**Сезонная компонента (S)** - отражает повторяемость экономических процессов в течении периода времени, **не превышающего года (год, квартал, месяц, неделя, сутки).**
+
+Чаще всего причиной их возникновения считаются природно-климатические условия сезонов и ритмы человеческой активности.
+Пример: увеличение закупок в предпраздничный период, увеличение платежей в конце квартала.
+
+
+
+**Циклическая компонента (C)** - отражает периодические колебания, выходящие за рамки одного года. Часто связан с изменением экономической активности.
+Примеры: Инвестиционные циклы (7 - 11 лет), циклы обновления оборотных средств (3 - 5 лет).
+
+Если из ВР удалить все вышеперечисленные компоненты, то останется случайная или "нерегулярная" компонента.
+
+**Случайная компонента (**$\epsilon$**)** - случайный шум, который _нерегулярно_ действует на ряд. Эта компонента отражает влияние неподдающихся учету и регистрации случайных факторов.
+
+
+
+---
+
+Отдельный уровень ВР может быть представлен в виде функции от основных компонент: $x_t = f(T_t, S_t, C_t) + \epsilon_t = f(t,\beta)$ - детерминированный тренд, т.е. неслучайная функция времени, заданная с точностью до неизвестных параметров $\beta$.
+
+**Основная задача экономического анализа ВР**
+Выявление и придание количественного выражения каждой из компонент, чтобы использовать полученную интепретацию для прогнозирования будущих значений ряда или при построении модели взаимосвязи двух и более ВР.
+
+**Аддитивная модель** - представление ВР в виде суммы составляющих его компонент. $x_t = T_t + S_t + C_t + \epsilon_t$
+
+**Мультипликативная модель** - представление ВР в виде произведения составляющих его компонент. $x_t = T_t * S_t * C_t * \epsilon_t$
+
+**Стационарность ВР**
+
+Означает **неизменность** основных вероятностных характеристик во времени, т.е. сходство с поведением в прошлом (с помощью чего можем строить прогнозы).
+
+---
+
+Нестационарные временные ряды, которые после выделения детерминированного тренда с помощью МНК (Метод Наименьших Квадратов) приводятся к стационарному ряду остатков, называются **стационарными относительно детерминированного тренда (TS - trend stationary time series)** или **TS-рядами.** Таким образом, ряд $X$ называется стационарным относительно детерминированного тренда (линейного, экспоненциального, полиномиального, …), если ряд $X_{t} - f(t,\beta)$ является стационарным.
+
+Временные ряды, которые можно привести к стационарному виду с помощью операции "дифференцирования", т.е. путем взятия конечных разностей определенного порядка, называются **стационарными относительно взятия разностей** **(DS - difference stationary time series)** или интегрированными временными рядами **(integrated time series)**.
+
+Ссылки:
+
+- [[Стационарность - ВР]]
+- [[Линейные модели]] — AR-модель — это линейная регрессия на лаговых значениях; параметры оцениваются МНК
+- [[Функции налогов и экономические циклы]] — циклическая компонента ВР (C) — математическая модель тех самых экономических циклов (7-11, 50-60 лет)
+
+## Связанные заметки
+- [[Временные ряды]]
diff --git a/90 Library/Math/Статистика/Временные ряды/Временные ряды.md b/90 Library/Math/Статистика/Временные ряды/Временные ряды.md
new file mode 100644
index 0000000..57a4142
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Временные ряды.md
@@ -0,0 +1,42 @@
+---
+status: stable
+type: moc
+tags:
+ - math
+ - statistics
+ - time-series
+created: 2026-02-13
+updated: 2026-05-07
+title: Временные Ряды
+---
+
+# Временные Ряды
+%% Begin Waypoint %%
+- [[Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции]]
+- [[Автокорреляционная функция (АКФ)]]
+- [[Авторегрессия AR]]
+- [[Белый шум]]
+- [[ВР - основы]]
+- [[Лаговый оператор]]
+- [[Модели АРПСС. Методология Бокса-Дженкинса]]
+- [[Модели скользящего среднего]]
+- [[Моделирование временных рядов]]
+- [[Общая схема методологии Бокса-Дженкинса]]
+- [[Определение временного ряда, виды и особенности]]
+- [[Определение порядков АР и СС]]
+- [[Переход к стационарным разностям]]
+- [[Порядок интегрированности ряда]]
+- [[Проверка адекватности и выбор модели]]
+- [[Процедура Доладо — Дженкинса — Сосвилла — Ривера]]
+- [[Процесс ARIMA]]
+- [[Разложение Вольда]]
+- [[Скользящее среднее MA]]
+- [[Случайное блуждание]]
+- [[Смешанные модели (ARMA)]]
+- [[Стационарность - ВР]]
+- [[Стационарность. Строгая и слабая стационарность]]
+- [[Тесты на единичный корень и Дики-Фуллер]]
+- [[Частная автокорреляционная функция]]
+- [[TS и DS ряды]]
+
+%% End Waypoint %%
diff --git a/90 Library/Math/Статистика/Временные ряды/Лаговый оператор.md b/90 Library/Math/Статистика/Временные ряды/Лаговый оператор.md
new file mode 100644
index 0000000..73eb625
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Лаговый оператор.md
@@ -0,0 +1,23 @@
+---
+status: processing
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: Лаговый Оператор
+---
+
+# Лаговый Оператор
+$x_{t}$ - значение переменной $x$ в период $t$.
+Выборка: $x_{1},\dots,x_{T}$, $T$ наблюдений случайной переменной $x_{t}$.
+
+**Первый лаг** переменной $x_{t}$ - значение этой переменной в предыдущий период времени $y_{t-1}$
+
+**$k$-ый лаг** переменной $x_{t}$ - это $x_{t-k}$
+
+**Лаговый оператор**:
+По определению: $L(x_{t})=x_{t-1}$
diff --git a/90 Library/Math/Статистика/Временные ряды/Модели АРПСС. Методология Бокса-Дженкинса.md b/90 Library/Math/Статистика/Временные ряды/Модели АРПСС. Методология Бокса-Дженкинса.md
new file mode 100644
index 0000000..4b383af
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Модели АРПСС. Методология Бокса-Дженкинса.md
@@ -0,0 +1,69 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - ml
+ - mephi
+ - statistics
+ - time-series
+created: 2026-02-13
+updated: 2026-05-07
+title: Модели АРПСС. Методология Бокса-Дженкинса
+---
+
+# Модели АРПСС. Методология Бокса-Дженкинса
+## Модели АРПСС (ARIMA)
+
+Модели Бокса-Дженкинса относятся к классу одномерных моделей, где текущее значение ряда зависит только от его собственной предыстории.
+
+**Процесс АРПСС (**$p, d, q$**)** — это **интегрированный процесс авторегрессии со скользящим средним в остатках**.
+
+- Если ряд является интегрированным $d$-го порядка, и его $d$-я разность описывается процессом ARMA($p, q$), то исходный процесс — ARIMA($p, d, q$).
+
+### Базовые Компоненты Модели
+
+1. **Авторегрессия (**$AR(p)$**):** Текущее значение ряда зависит от его **прошлых** $p$ **значений** ($x_{t-1}, \dots, x_{t-p}$).
+ - **Условие стационарности AR:** Все корни характеристического уравнения должны лежать **вне** единичного круга по модулю ($|z_j|>1$).
+2. **Скользящее среднее (**$MA(q)$**):** Текущее значение ряда зависит от **текущего и прошлых** $q$ **случайных ошибок** ($\epsilon_t, \dots, \epsilon_{t-q}$).
+ - **Условие стационарности MA:** Процесс $MA(q)$ стационарен при любых значениях параметров $\beta_i$.
+3. **Белый шум (**$\epsilon_t$**):** Случайный шум, который является остатками, не имеющими автокорреляции ($\rho_k = 0$ при $k \neq 0$) и имеющими постоянную дисперсию ($\sigma^2_{\epsilon} > 0$).
+
+## III. Методология Бокса-Дженкинса (4 этапа)
+
+Методология представляет собой процедуру подбора оптимальной модели $ARIMA(p, d, q)$.
+
+### 1. Этап 1: Идентификация Модели (Определение $d, P, q$)
+
+Цель — определить структуру модели.
+
+- **Шаг 1. Определение** $d$ **(Порядка интегрированности):**
+ - Сначала проверяется стационарность ряда (визуально или с помощью тестов, таких как **расширенный критерий Дики-Фуллера (ADF)** или **KPSS-тест**).
+ - Если ряд нестационарен, берутся разности ($\Delta x_t$), и процесс повторяется до получения стационарного ряда. $d$ — это количество взятых разностей.
+- **Шаг 2. Определение порядков** $p$ **и** $q$**:**
+ - Анализируются графики **автокорреляционной функции (АКФ)** и **частной автокорреляционной функции (ЧАКФ)** для стационарных разностей ряда.
+ - Порядок **АР (**$p$**):** определяется по **обрыву** ЧАКФ (PACF). Обрыв — когда коэффициент незначимо отличается от нуля ($<\pm 1.96/\sqrt{T}$).
+ - Порядок **СС (**$q$**):** определяется по **обрыву** АКФ (ACF).
+ - Для смешанных моделей (АРСС) АКФ и ЧАКФ затухают (бесконечно убывающие).
+
+### 2. Этап 2: Оценивание Модели
+
+- Параметры выбранных моделей-кандидатов оцениваются (обычно с использованием точного или условного **метода максимального правдоподобия (ММП)**).
+
+### 3. Этап 3: Проверка Адекватности Модели (Диагностика)
+
+Проверка того, что остатки модели соответствуют белому шуму. Если модель неадекватна, возвращаются к Этапу 1 или 2.
+
+- **Критерии проверки:**
+ 1. **Значимость коэффициентов**.
+ 2. **Анализ остатков:** Остатки должны быть нормально распределены, некоррелированы (проверяется с помощью АКФ/ЧАКФ остатков или **Q-статистик Бокса-Пирса/Бокса-Льюнга**) и иметь постоянную дисперсию (проверяется **тестом на ARCH-эффект**).
+- **Выбор лучшей модели:** Если несколько моделей адекватны, выбирается та, которой соответствует **минимальное значение информационных критериев**:
+ - Критерий Акаике (AIC).
+ - Критерий Шварца (BIC).
+ - Критерий Хеннана-Куинна (HQ).
+
+### 4. Этап 4: Прогнозирование
+
+- Лучшая модель используется для прогнозирования будущих значений ($x_{T+h}$).
+- Наилучшим является прогноз, который минимизирует среднеквадратическую ошибку прогноза, что достигается использованием **условного математического ожидания** $E(x_{T+h} | x_T, x_{T-1}, \dots)$.
+- На практике также могут быть построены доверительные интервалы для прогноза, и может быть сформирован **обобщенный прогноз** (портфель моделей).
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Временные ряды/Модели скользящего среднего.md b/90 Library/Math/Статистика/Временные ряды/Модели скользящего среднего.md
new file mode 100644
index 0000000..3818b6f
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Модели скользящего среднего.md
@@ -0,0 +1,25 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - time-series
+created: 2026-01-18
+updated: 2026-05-07
+title: Модели Скользящего Среднего
+---
+
+# Модели Скользящего Среднего
+Теорема Вольда: $x_{t}-\mu = \Sigma_{T=0}^{\infty}\ \psi_{T}\ \epsilon_{t-T}$, где $\psi_{T}$ - весовые коэффициенты, $\epsilon_{t-T}$ - белый шум.
+
+- $\Sigma_{T=0}^{\infty}\ \psi_{T} < \infty$
+- Т.к. реализации белого шума ненаблюдаемы, то весовые коэффициенты определены с точностью до множителя, поэтому $\psi_{0}=0$
+
+Процесс скользящего среднего порядка $q$ - стохастический процесс, в разложении *Вольда* которого присутствует только $q$ слагаемых, где $q$ - число параметров Скользящего Среднего.
+
+1) $MA(1):x_{t}=[\psi_{0}=1]*\epsilon_{t}+\beta_{1}\epsilon_{t-1}$
+ Характеристики: $\begin{matrix} M=0 && \gamma_{1}=\beta_{1}\sigma^{2} \\ \gamma_{0}=(1+\beta_{1}^{2})\sigma^{2} && \gamma_{2}=\gamma_{3} = \dots = 0 \end{matrix}$ $\ \ \gamma_{0}\ и\ \gamma_{1} \neq 0$
+ $\rho_{1}=\frac{\beta_{1}}{1+\beta_{1}^{2}};\ \rho_{2}=\rho_{3}=\dots=0$ - значение автокорреляционной функции.
+2) $MA(2):x_{t}=\epsilon_{t}+\beta_{1}\epsilon_{t-1}+\beta_{2}\epsilon_{t-2}$
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Временные ряды/Моделирование временных рядов.md b/90 Library/Math/Статистика/Временные ряды/Моделирование временных рядов.md
new file mode 100644
index 0000000..071ffc9
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Моделирование временных рядов.md
@@ -0,0 +1,92 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - ml
+ - mephi
+ - statistics
+ - time-series
+created: 2026-02-13
+updated: 2026-05-07
+title: Моделирование Временных Рядов
+---
+
+# Моделирование Временных Рядов
+## Модели Авторегрессии
+
+Одномерные случайные процессы:
+
+### I. $AR(1)$ Процесс Авторегрессии 1-го Порядка
+
+$x_t = \mu + \alpha_1 x_{t-1} + \epsilon_t$, где $|\alpha_1| < 1$ - **необходимое** условие стационарности.
+
+$M = \frac{\mu}{1-\alpha_1}$
+
+$\gamma_0 = \frac{\sigma^2}{1-\alpha_1^2}$, где $\rho_k = \alpha_1^k$
+
+$\gamma_k = \alpha_1^k * \frac{\sigma^2}{1-\alpha_1^2}$
+
+Значит, АКФ для $AR(1)$:
+
+1. Экспоненциально убывает с ростом лага $k$ при $\alpha_1 > 0$
+2. Осцилирующе затухает при $\alpha_1 < 0$
+
+ По определению АКФ(1) = ЧАКФ(1). ЧАКФ процесса $AR(1)$ равна нулю при значениях $k>1$.
+
+**Характеристическое свойство** $AR(1)$
+
+Только первое значение ВЧАКФ для $AR(1)$ процесса выходит за пределы доверительной трубки
+
+### II. $AR(2)$ Процесс Авторегреcсии 2-го Порядка
+
+$$\large x_t = \mu + \alpha_1 x_{t-1} + \alpha_2 x_{t-2} + \epsilon_t$$
+
+Характеристическое уравнение: $\lambda^2 - \alpha_1\lambda-\alpha_2 = 0$, где $|\alpha_1| < 1\ и\ |\alpha_2| < 1$ - **необходимые условия стационарности**.
+
+При выполнении условий стационарности АКФ процесса $AR(2)$:
+
+1. Экспоненциально убывает, если корни дейтвительны
+2. Осцилирующе затухает, если корни комплексные
+
+ЧАКФ процесса AR(2) равна нулю, при $k>2$
+
+**Характеристическое свойство** $AR(2)$
+
+Только первые два значения ВЧАКФ для $AR(2)$ процесса выходят за пределы доверительной трубки.
+
+Лаговый оператор (для $AR(3)$): $\begin{matrix} L(x_t) = x_{t-1} \\ L^2(x_t) = L(L(x_t)) = L(x_{t-1}) = x_{t-2} \end{matrix}$
+
+### III. $AR(p)$ Процесс Авторегрессии $p$-го Порядка
+
+$$x_t = \mu + \alpha_1 x_{t-1} + \dots + \alpha_p x_{t-p} + \epsilon_t = \mu + \alpha_1 L(x_t) + \dots + \alpha_p L^p (x_t) + \epsilon_t$$
+
+$$x_t - \alpha_1 L(x_t) + \dots + \alpha_p L^p(x_t) = \mu + \epsilon_t$$
+
+$$(1 - \alpha_1L + \dots + \alpha_p L^p) * x_t = \mu + \epsilon_t$$
+
+Характеристическое уравнение: $\begin{matrix} 1 - \alpha_1 z + \dots + \alpha_p z^p = 0, \text{где}\ |z_j| > 1 \\ \lambda - \alpha_1 \lambda^{p-1} - \dots - \alpha_p \lambda^0 = 0, \text{где}\ |\lambda_j| < 1 \end{matrix}$
+
+## Модели Скользящего Среднего (СС)
+
+Скользящее среднее - Moving Average
+
+Теорема Вольда: $x_t - \mu = \sum_{T=0}^{\infin} \psi_T \epsilon_{t-T}$, где $\psi_{T}$ - весовые коэффициенты, $\epsilon_{t-T}$ - белый шум.
+
+- $\sum_{T=0}^{\infin} \psi_T < \infin$
+- Т.к. реалзации **белого шума ненаблюдаемы,** то весовые коэффиенты определены с точностью до множителя, поэтому $\psi_0 = 1$.
+
+Процесс скользящего среднего порядка $q$ - стохастический процесс, в разложении **Вольда** которого присутствует только $q$ слагаемых, где $q$ - число параметров СС.
+
+1. $MA(1): x_t = \epsilon_t + \beta_1 \epsilon_{t-1}$
+
+ Характеристики: $\begin{matrix} M = 0 & \gamma_1 = \beta_1 \sigma^2 \\ \\ \gamma_0 = (1+\beta_1^2) \sigma^2 & \gamma_2 = \gamma_3 = \dots = 0 \\ \\ \gamma_0\ и\ \gamma_1 \neq 0 & p_1 = \frac{\beta_1}{1+ \beta_1^2};\ p_2 = p_3 = \dots = 0 \end{matrix}$
+2. $MA(2): x_t = \epsilon_t + \beta_1 \epsilon_{t-1} + \beta_2 \epsilon_{t-2}$
+3. $MA(q): x_t = \epsilon_t + \beta+1 \epsilon_{t-1} + \beta_2 \epsilon_{t-2} + \dots + \beta_q \epsilon_{t-q} =$
+ $= \epsilon_t + \beta_1 L^1(\epsilon_t) + \beta_2 L^2(\epsilon_t) + \dots + \beta_q L^q(\epsilon_t) = (1 + \beta_1 L^1(\epsilon_t) + \dots + \beta_q L^q(\epsilon_t))\epsilon_t$
+
+Процесс стационарен при любых значениях $\beta_1, \dots, \beta_q$.
+
+$1 + \beta_1 L^1(\epsilon_t) + \dots + \beta_q L^q(\epsilon_t)$ == 1 + лин.комбинация лаговых операторов
+
+$\forall\ \text{процесс СС. стационарен при}\ \forall \beta \\ x\ \text{зависит только от белых шумов}$
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Временные ряды/Общая схема методологии Бокса-Дженкинса.md b/90 Library/Math/Статистика/Временные ряды/Общая схема методологии Бокса-Дженкинса.md
new file mode 100644
index 0000000..effca4d
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Общая схема методологии Бокса-Дженкинса.md
@@ -0,0 +1,24 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: Общая Схема Методологии Бокса-Дженкинса
+---
+
+# Общая Схема Методологии Бокса-Дженкинса
+
+Для ВР $x_{1},\dots,x_{T}$ необходимо подобрать $ARIMA(p,d,q)$ модель, которая описывает динамику этого временного ряда.
+
+**Этап 1**: Идентификация
+**Шаг 1**: Определение порядка интегрированности ряда $d$ и переход к стационарным разностям
+**Шаг 2**: Определение порядков АР и СС: $p$ и $q$
+**Этап 2**: Оценивание модели
+**Этап 3**: Проверка адекватности модели. Выбор модели.
+**Этап 4**: Прогнозирование. Формирование обобщенного прогноза.
+
diff --git a/90 Library/Math/Статистика/Временные ряды/Определение временного ряда, виды и особенности.md b/90 Library/Math/Статистика/Временные ряды/Определение временного ряда, виды и особенности.md
new file mode 100644
index 0000000..053d024
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Определение временного ряда, виды и особенности.md
@@ -0,0 +1,65 @@
+---
+status: processing
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: Определение Временного Ряда, Виды И Особенности
+---
+
+# Определение Временного Ряда, Виды И Особенности
+**Временной ряд (ВР)** - это последовательность измерений или наблюдений за каким-либо показателем, упорядоченная во времени. Он отражает эволюцию явления и позволяет выявлять закономерности (тренд, сезонность, цикличность), а также делать прогнозы.
+
+## Отличия ВР От СВ
+**ВР** - реализация набора зависимых случайных величин с различными (меняющимся во времени) распределением.
+**СВ** (Случайная Выборка) - реализация набора независимых, одинаково распределенных случайных величин.
+
+**Отдельные наблюдения** - уровни временного ряда ($x_{t}, t=\overline{1,n}$, $n$ - число уровней)
+Бывают **одномерные** (1 параметр) и **многомерные** ВР.
+
+ВР бывают **детерминированными** (определены какой-то четкой функцией) и **случайными** (реализация последовательности случайных величин)
+
+## Компоненты ВР
+
+- **Тренд или основная тенденция (Т)** - плавно меняющаяся линейная или нелинейная компонента, описывающая чистое влияние долговременных факторов на динамику изучаемого процесса.
+ Факторы в отдельности могут оказать разнонаправленное воздействие, однако в совокупности их влияние определяет общее направление развития ВР.
+
+- **Сезонная компонента (S)** - отражает повторяемость экономических процессов в течении периода времени, **не превышающего года (год, квартал, месяц, неделя, сутки).**
+ Чаще всего причиной их возникновения считаются природно-климатические условия сезонов и ритмы человеческой активности.
+ Пример: увеличение закупок в предпраздничный период, увеличение платежей в конце квартала.
+
+
+
+- **Циклическая компонента (C)** - отражает периодические колебания, выходящие за рамки одного года. Часто связан с изменением экономической активности.
+ Примеры: Инвестиционные циклы (7 - 11 лет), циклы обновления оборотных средств (3 - 5 лет).
+
+Если из ВР удалить все вышеперечисленные компоненты, то останется случайная или "нерегулярная" компонента.
+
+- **Случайная компонента (**$\epsilon$**)** - случайный шум, который _нерегулярно_ действует на ряд. Эта компонента отражает влияние неподдающихся учету и регистрации случайных факторов.
+
+
+
+---
+
+Отдельный уровень ВР может быть представлен в виде функции от основных компонент: $x_t = f(T_t, S_t, C_t) + \epsilon_t = f(t,\beta)$ - детерминированный тренд, т.е. неслучайная функция времени, заданная с точностью до неизвестных параметров $\beta$.
+
+**Основная задача экономического анализа ВР**
+Выявление и придание количественного выражения каждой из компонент, чтобы использовать полученную интерпретацию для прогнозирования будущих значений ряда или при построении модели взаимосвязи двух и более ВР.
+
+**Аддитивная модель** - представление ВР в виде суммы составляющих его компонент. $x_t = T_t + S_t + C_t + \epsilon_t$
+
+**Мультипликативная модель** - представление ВР в виде произведения составляющих его компонент. $x_t = T_t * S_t * C_t * \epsilon_t$
+
+**Стационарность ВР**
+
+Означает **неизменность** основных вероятностных характеристик во времени, т.е. сходство с поведением в прошлом (с помощью чего можем строить прогнозы).
+
+---
+
+Нестационарные временные ряды, которые после выделения детерминированного тренда с помощью МНК (Метод Наименьших Квадратов) приводятся к стационарному ряду остатков, называются **стационарными относительно детерминированного тренда (TS - trend stationary time series)** или **TS-рядами.** Таким образом, ряд $X$ называется стационарным относительно детерминированного тренда (линейного, экспоненциального, полиномиального, …), если ряд $X_{t} - f(t,\beta)$ является стационарным.
+
+Временные ряды, которые можно привести к стационарному виду с помощью операции "дифференцирования", т.е. путем взятия конечных разностей определенного порядка, называются **стационарными относительно взятия разностей** **(DS - difference stationary time series)** или интегрированными временными рядами **(integrated time series)**.
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Временные ряды/Определение порядков АР и СС.md b/90 Library/Math/Статистика/Временные ряды/Определение порядков АР и СС.md
new file mode 100644
index 0000000..af4e314
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Определение порядков АР и СС.md
@@ -0,0 +1,34 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: Определение Порядков АР И СС
+---
+
+# Определение Порядков АР И СС
+Определение порядков AR и MA относится к этапу идентификации и выполняется после:
+- определения порядка $d$
+- перехода к стационарным разностям
+
+Строятся и анализируются АКФ и ЧАКФ.
+По их виду делаются предварительные выводы о типе модели и порядках $p$ и $q$.
+
+## Процесс $AR(p)$
+Если АКФ бесконечно убывает (только при $k \to \infty$ сходится к $0$), и ЧАКФ равна (или близка) нулю для лагов больших $p$, то порядок определятся по ЧАКФ.
+
+## Процесс $MA(q)$
+Если АКФ равна (или близка) нулю для лагов больших $q$, и ЧАКФ бесконечно убывает, то порядок $q$ определяется по АКФ.
+
+## Процесс $ARMA(p,q)$
+Если АКФ и ЧАКФ бесконечно убывают, то оценка $p$ по ЧАКФ, оценка $q$ по АКФ.
+
+## Вывод
+1) АКФ и ЧАКФ не обязаны точно совпадать с теоремами, но должны быть похожи.
+2) Коррелограммы дают предварительную идентификацию, которая затем уточняется при оценивании и проверке адекватности.
+3) На практике рекомендуется использовать экономичные модели $p+q \leq 3$ (при отсутствии сезонности)
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Временные ряды/Переход к стационарным разностям.md b/90 Library/Math/Статистика/Временные ряды/Переход к стационарным разностям.md
new file mode 100644
index 0000000..929f15d
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Переход к стационарным разностям.md
@@ -0,0 +1,26 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: Переход К Стационарным Разностям
+---
+
+# Переход К Стационарным Разностям
+**Цель**: подобрать модель $ARIMA(p,d,q)$, адекватно описывающую динамику ВР.
+
+## Определение Порядка Интегрированности $d$
+1) Приводим ряд к стационарному виду
+ Если ряд нестационарен, то переходят к разностям:
+ $\Delta x_{t}= x_{t}-x_{t-1},\ \Delta^{\alpha} x_{t}=\Delta x_{t}-\Delta x_{t-\alpha}$
+ Порядок $d$-число разностей, необходимых для достижения стационарности.
+2) Ориентируясь по графику ВР
+ - если график близок к прямой, то достаточно $d=1$
+ - иначе, $d \geq 2$
+1) Определить количетсво единичных корней
+2) Анализ АКФ ряда первых, вторых и более высоких разностей и взятие в качестве $d$: $\min$ порядок, при котором АКФ быстро затухает.
diff --git a/90 Library/Math/Статистика/Временные ряды/Порядок интегрированности ряда.md b/90 Library/Math/Статистика/Временные ряды/Порядок интегрированности ряда.md
new file mode 100644
index 0000000..5277804
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Порядок интегрированности ряда.md
@@ -0,0 +1,21 @@
+---
+status: processing
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: Порядок Интегрированности Ряда
+---
+
+# Порядок Интегрированности Ряда
+Если процесс **стационарен**, то он называется процессом, интегрированным **нулевого порядка**: $I(0)$
+
+Если процесс не стационарен, а его первые разности **стационарны**, то он называется процессом, **интегрированным 1-го порядка**: $I(1)$
+
+Если $x_{t}$ не стационарен, его первые разности $\Delta x_{t}$ тоже не стационарны, но стационарны вторые разности \[$\Delta^{2} x_{t} = (\Delta x_{t} - \Delta x_{t-1})$\], то процесс называется **интегрированным 2-го порядка**: $I(2)$
+
+И аналогично для $I(k)$
diff --git a/90 Library/Math/Статистика/Временные ряды/Проверка адекватности и выбор модели.md b/90 Library/Math/Статистика/Временные ряды/Проверка адекватности и выбор модели.md
new file mode 100644
index 0000000..240b313
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Проверка адекватности и выбор модели.md
@@ -0,0 +1,55 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: Проверка Адекватности И Выбор Модели
+---
+
+# Проверка Адекватности И Выбор Модели
+## Проверка Адекватности
+Модель считается адекватной, если:
+1) Коэффициенты модели статистически значимы
+2) Остатки - белый шум
+ - нулевое мат. ожидание и нет автокорреляции
+
+### Анализ Остатков Модели
+1) Проверка отдельных коэффициентов автокорреляции
+ $H_{0}: \rho_{k}=0$
+ $H_{1}: \rho_{k} \neq 0$
+ $\hat{\rho_{k}}\sim N(1,\frac{1}{T}); H_{0}$ при уровне значимости $5\%$, и если $|\hat{\rho_{k}}|<1.96/\sqrt{T}$ ***принимается***
+2) Тестирование отсутствия автокорреляции остатков
+ - $Q$ статистика Бокса-Пирса
+ $H_{0}: \rho_{1}=\dots=\rho_{k}=0$
+ $H_{1}: \exists i:\rho_{i} \neq 0$
+ $Q = T\sum\limits_{i=1}^{k}\hat{\rho_{i}}^{2}$;
+ При истинности $H_{0}: Q|_{H_{0}}\sim \chi^{2}(K-p-q)$
+ - Тест Льюинга-Бокса
+ $H_{0}: \rho_{1}=\dots=\rho_{k}=0$
+ $H_{1}: \exists i: \rho_{i} \neq 0$
+ $\large Q=T(T+\alpha)\sum\limits_{i=1}^{k}\frac{\hat{\rho_{i}}^{2}}{T-i};$
+ При истинности $H_{0}: Q|_{H_{0}} \sim \chi^{2}(K-p-q)$
+
+## Выбор Модели
+Если адекватны несколько моделей, используют информационные критерии (выбор падает на min значение)
+1) **Шварца**
+ $BIC = \ln(\hat{\sigma}^{2})+\frac{p+q}{T}*\ln{T}$, где:
+ $\hat{\sigma}^{2}=\frac{\sum\limits e_{t}^{2}}{T}$ - оценка остаточной дисперсии
+ $p,q$ - количество оцениваемых параметров АР и СС (если есть константа, то $p+q+1$)
+ $T$ - длина ВР
+
+ Для других моделей: $BIC=\ln{\hat{\sigma}^{2}}+k/t \ln{T}$
+
+1) Акаике
+ $AIC = \ln{\hat{\sigma}^{2}}+2 \frac{p+q}{T},\ \sigma^{2}=\frac{\Sigma e_{t}^{2}}{T}$
+2) Хеннана-Куинна
+ $HQ = \ln{\hat{\sigma}^{2}}+\frac{p+q}{T}\ln{(\ln{T})}$
+
+## Прогнозирование
+![[Pasted image 20260122094429.png]]
+## Обобщенный Прогноз
+![[Pasted image 20260122094459.png]]
diff --git a/90 Library/Math/Статистика/Временные ряды/Процедура Доладо — Дженкинса — Сосвилла — Ривера.md b/90 Library/Math/Статистика/Временные ряды/Процедура Доладо — Дженкинса — Сосвилла — Ривера.md
new file mode 100644
index 0000000..ee0ad70
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Процедура Доладо — Дженкинса — Сосвилла — Ривера.md
@@ -0,0 +1,47 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: Процедура Доладо — Дженкинса — Сосвилла — Ривера
+---
+
+# Процедура Доладо — Дженкинса — Сосвилла — Ривера
+При добавлении излишних регрессоров, мощность критерия снижается. Поэтому используют процедуру Доладо — Дженкинса — Сосвилла — Ривера (ДДСР) для определения состава регрессоров.
+
+**Шаг 1**:
+Оценка модели с константой и линейным трендом
+$H_{0}: \gamma=0$
+$H_{1}:\gamma<0$
+
+Если нулевая гипотеза отвергается, то ряд класса $TS$.
+Если нулевая гипотеза принимается, то прежде чем относить к $DS$, надо удостовериться, что тренд был правильно включен.
+
+- Оценка модели без регрессора $y_{t-1}$.
+- Проверка значимости коэффициента при тренде.
+ 1) Если он значим, то тренд включен правильно -> ряд $DS$
+ 2) Иначе его зря включили, значит, надо оценивать модель с константой.
+
+**Шаг 2**:
+Оценка модели с константой
+$H_{0}:\gamma=0$
+$H_{1}:\gamma<0$
+Если нулевая гипотеза отвергается, то ряд $TS$
+Иначе, нельзя сразу говорить, что ряд $DS$, необходимо проверить правильность включения константы:
+- Оценка модели без регрессора $y_{t-1}$
+- Проверка значимости константы с помощью $t$-статистики Стъюдента
+- Если константа значима, то она была включена верно, это $DS$
+- Иначе, то производится оценка модели без константы.
+
+**Шаг 3**:
+Оценка модели без константы
+$H_{0}: \gamma=0$
+$H_{1}:\gamma<0$
+
+Если нулевая гипотеза отвергается, то ряд $TS$ (процесс $AR$ с нулевым мат. ожиданием).
+Иначе, $DS$ (случайное блуждание без дрейфа)
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Временные ряды/Процесс ARIMA.md b/90 Library/Math/Статистика/Временные ряды/Процесс ARIMA.md
new file mode 100644
index 0000000..c30128e
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Процесс ARIMA.md
@@ -0,0 +1,22 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - time-series
+ - arima
+created: 2026-01-21
+updated: 2026-05-07
+title: Процесс $ARIMA$
+---
+
+# Процесс $ARIMA$
+Если процесс является интегрированным $k$-го порядка, и его разность $k$-го порядка описывается процессом $ARMA(p,q)$, то исходный процесс называется **интегрированным процессом авторегресии со скользящим средним в остатках** $ARIMA(p,k,q)$ или $ARIMA(p,d,q)$
+
+Процесс содержит единичный корень, т.е. нестационарен.
+Рассмотрим первые разности процесса:
+$$x_{t}-x_{t-1}=0.9x_{t-1}-x_{t-1}+0.1x_{t-2}+\epsilon_{t}$$
+$$\Delta x_{t}=0.1*\Delta x_{t-1}+\epsilon_{t}$$
+Первые разности описываются стационарным процессом $AR(I)$ или $ARMA(I, 0)$, значит, исходный процесс описывается моделью $ARIMA(I,I,0)$
diff --git a/90 Library/Math/Статистика/Временные ряды/Разложение Вольда.md b/90 Library/Math/Статистика/Временные ряды/Разложение Вольда.md
new file mode 100644
index 0000000..57d65d6
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Разложение Вольда.md
@@ -0,0 +1,31 @@
+---
+status: processing
+type: concept
+tags:
+ - math
+ - mephi
+ - ml
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: Разложение Вольда
+---
+
+# Разложение Вольда
+## Теорема Вольда
+$$x_{t}-\mu =\sum\limits_{\tau=0}^{\infty}\psi_{\tau}*\epsilon_{t-\tau}\qquad (\sum\limits_{\tau=0}^{\infty}\psi_{\tau}<\infty,\quad\psi_{0}=1)$$
+Где:
+$x_{t}$ - чисто недетерминированный стационарный в широком смысле случайный процесс;
+$\mu$ - мат.ожидание процесса;
+$\psi_{\tau}$ - весовые коэффициенты;
+$\epsilon_{t-\tau}$ - белый шум с конечным мат. ожиданием и дисперсией.
+
+> $\psi_{0}=1$ т.к. реализации белого шума ненаблюдаемы, весовые коэффициенты определены с точностью до множителя.
+
+Любой стационарный процесс может быть представлен в виде бесконечного ряда членов белого шума с коэффициентами, образующими абсолютно сходящийся числовой ряд.
+
+Это означает, что стационарный $AR(I)$ процесс можно представить, как процесс $MA(\infty)$. Данное свойство называется **обратимостью**.
+
+Таким образом, нет фундаментальной разницы между $AR$ и $MA$ представлением ВР.
+
diff --git a/90 Library/Math/Статистика/Временные ряды/Скользящее среднее MA.md b/90 Library/Math/Статистика/Временные ряды/Скользящее среднее MA.md
new file mode 100644
index 0000000..3f461b7
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Скользящее среднее MA.md
@@ -0,0 +1,47 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: Скользящее Среднее Порядка $q$
+---
+
+# Скользящее Среднее Порядка $q$
+Стохастический процесс называется процессом скользящего среднего порядка $q$, если в [[Разложение Вольда|разложении Вольда]] присутствует только $q$ слагаемых.
+
+**Модель**: берется взвешенная сумма каких-то $q$ белых шумов.
+
+$MA(q): x_{t}=\epsilon_{t}+\beta_{1}*\epsilon_{t-1}+\beta_{2}*\epsilon_{t-2}+\dots+\beta_{q}*\epsilon_{t-q}$
+
+Запись с использованием [[Лаговый оператор|лагового оператора]]:
+$$MA(q): L^{0}\epsilon_{t}+\beta_{1}*L\epsilon_{t}+\beta_{2}*L^{2}\epsilon_{t}+\dots+\beta_{q}*\epsilon_{t-q}=$$
+$$= \underbrace{(L^0 +\beta_{1}L + \beta_{2}L^{2}+\dots+\beta_{q}L^{q})}_{\text{Операторный полином}}\epsilon_{t}=\beta_{q}(L)\epsilon_{t}$$
+## $MA(I)$ - Процесс СС 1-го Порядка
+$x_{t}=\epsilon_{t}+\beta_{1}\epsilon_{t-1}$
+
+**Статистические характеристики**:
+$M=0$
+$\gamma_{0}=(1-\beta_{1}^{\alpha})\sigma^{2}$
+$\gamma_{1}=\beta_{1}*\sigma^{2}$
+$\gamma_{\alpha}=\gamma_{3}=\dots=0$
+$\rho_{1}=\frac{\beta_{1}}{1+\beta_{1}^{2}}; \quad \rho_{2}=\rho_{3}=\dots=0$
+
+## $MA(q)$ - Процесс СС Порядка $q$
+$x_{t}=\epsilon_{t}+\beta_{1}\epsilon_{t-1}+\dots+\beta_{q}*\epsilon_{t-q}$
+
+Фактически это сложение белых шумов, просто собраны модели разных порядков.
+
+Процесс стационарен при любых значениях $\beta_{1},\dotsm\,\beta_{q}$
+
+**Свойства АКФ, ЧАКФ**:
+
+| | АКФ | ЧАКФ |
+| -------------------- | ------------------- | ------------------------------- |
+| $MA(1)$
$b_{1}>0$ | Зануление при $k>1$ | Осциллирующее затухание |
+| $MA(1)$
$b_{1}<0$ | Зануление при $k>1$ | Убывание по абсолютной величине |
+| $MA(q)$ | Зануление при $k>q$ | |
diff --git a/90 Library/Math/Статистика/Временные ряды/Случайное блуждание.md b/90 Library/Math/Статистика/Временные ряды/Случайное блуждание.md
new file mode 100644
index 0000000..ff3fb04
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Случайное блуждание.md
@@ -0,0 +1,29 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: Случайное Блуждание
+---
+
+# Случайное Блуждание
+$$x_{t}=x_{t-1}+\epsilon_{t}$$
+$$(1-L)x_{t}=\epsilon_{t}$$
+
+## Характеристическое Уравнение
+$$1-z=0$$$z=1$ - единичный корень, процесс нестационерен.
+
+## Статистические Характеристики
+$$\matrix{M(x_{t})=x_{0}+t*\delta \\ D(x_{t})=t*\delta^{2}}$$
+
+> Процесс случайного блуждания не стационарен, однако его первая разность является стационарным процессом.
+> $$x_{t}-x_{t-1}=\delta+\epsilon_{t}$$$$\Delta x_{t}=\delta+\epsilon_{t}$$
+
+## Связанные заметки
+- [[Производные финансовые инструменты]] — случайное блуждание — фундаментальная модель динамики цен активов, лежащая в основе ценообразования фьючерсов и опционов
+- [[Стационарность - ВР]] — случайное блуждание — классический пример нестационарного процесса (единичный корень)
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Временные ряды/Смешанные модели (ARMA).md b/90 Library/Math/Статистика/Временные ряды/Смешанные модели (ARMA).md
new file mode 100644
index 0000000..e6e19fc
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Смешанные модели (ARMA).md
@@ -0,0 +1,29 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - time-series
+ - arma
+created: 2026-01-21
+updated: 2026-05-07
+title: Смешанные Модели (ARMA)
+---
+
+# Смешанные Модели (ARMA)
+
+$ARMA(p,q)$ - естественное обобщение подхода к моделированию: объединение модели авторегрессии и скользящего среднего.
+$$x_{t}=\delta+a_{1}x_{t-1}+\dots+a_{p}x_{t-p}+\epsilon_{t}+\beta_{1}\epsilon_{t-1}+\dots+\beta_{q}\epsilon_{t-q}$$
+Необходимым и достаточным условием стационарности процесса $x_{t}$ является условие принадлежности всех корней характеристического уравнения: $\lambda^{p}-a_{1}*\lambda^{p-1}-\dots-a_{p}=0$ единичному кругу на комплексной плоскости $|\lambda|<1$
+
+Принцип выбора порядков $p$ и $q$:
+1) При выборе $p$ необходимо выбрать число значений ЧАКФ, вышедших за границы Д.И.
+2) При выборе $q$ необходимо смотреть на число значений АКФ, вышедших за границы Д.И.
+
+Далее пошагово определяется порядок модели, исходя из статистической значимости составляющих:
+![[Pasted image 20260121171416.png]]
+
+> Если $AR$ и $MA$ компоненты $ARMA$ модели имеют общие корни, то представление ряда можно упростить.
+> ![[Pasted image 20260121171547.png]]
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Временные ряды/Стационарность - ВР.md b/90 Library/Math/Статистика/Временные ряды/Стационарность - ВР.md
new file mode 100644
index 0000000..7bf4397
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Стационарность - ВР.md
@@ -0,0 +1,31 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - ml
+ - mephi
+ - statistics
+ - time-series
+created: 2026-02-13
+updated: 2026-05-07
+title: Стационарность - ВР
+---
+
+# Стационарность - ВР
+**Стационарность** — свойство временного ряда, при котором его основные статистические характеристики **не меняются во времени**.
+
+**Стационарность ВР**
+
+Означает **неизменность** основных вероятностных характеристик во времени, т.е. сходство с поведением в прошлом (с помощью чего можем строить прогнозы).
+
+Типы стационарности:
+
+1. Сильная
+ 1. Предлагает постоянство законов
+ 2. Совместное распределение $m$ наблюдений $\large x_{t_1}, \dots, x_{t_m}$ не зависит от сдвига по времени, т.е. совпадает с $\large x_{t_1+k}, \dots, x_{t_m+k}$ $\forall m,k,l\ \text{где}\ l=\overline{1,m}$
+ 3. _Из сильной следует и слабая._
+2. Слабая
+
+ Предполагает постоянство первых и вторых моментов распределения (мат. ожиданий, дисперсий, ковариаций). Т.е $\forall t$ справедливо $\large \begin{cases} M(X_t) = \mu < \infty \\ D(X_t) = \gamma_0 \\ cov(x_t, x_{t-k}) = \gamma_k \end{cases}$
+но этот закон распределения не обязательно стационарен.
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Временные ряды/Стационарность. Строгая и слабая стационарность.md b/90 Library/Math/Статистика/Временные ряды/Стационарность. Строгая и слабая стационарность.md
new file mode 100644
index 0000000..cbf8d7e
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Стационарность. Строгая и слабая стационарность.md
@@ -0,0 +1,25 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: Стационарность. Строгая И Слабая Стационарность
+---
+
+# Стационарность. Строгая И Слабая Стационарность
+## Стационарность. Строгая И Слабая Стационарность
+**Стационарность** - это свойство ряда, при котором его основные статистические характеристики (среднее значение, дисперсия, автокорреляция) не меняются со временем.
+![[Pasted image 20260121132321.png]]
+
+**Сильная стационарность** - ВР называется **строго** стационарным, если совместное распределение $m$ наблюдений: $x_{t_{1}},\dots,x_{t_{m}}$ **не зависят от сдвига (лага)** для $\forall m,t,\dots,t_{m},k$ (стационарность в узком смысле)
+
+**Слабая стационарность** - ВР называется **слабо** стационарным, если для всех $t$ $M(x_{t})=\mu < \infty$ (мат. ожидание постоянно)
+$D(x_{t})=\gamma_{0}=\phi_{0}, \quad \mu, \gamma_{0},\gamma_{k}$ - не зависят от $t$
+$cov(x_{t},x_{t-k})=\gamma_{k}=\phi_{k}, \forall t,k$
+
+$\gamma$ - это автоковариация - мера того, насколько значение ВР связаны сами с собой через определенный лаг.
diff --git a/90 Library/Math/Статистика/Временные ряды/Тесты на единичный корень и Дики-Фуллер.md b/90 Library/Math/Статистика/Временные ряды/Тесты на единичный корень и Дики-Фуллер.md
new file mode 100644
index 0000000..9025184
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Тесты на единичный корень и Дики-Фуллер.md
@@ -0,0 +1,121 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - time-series
+created: 2026-01-21
+updated: 2026-05-07
+title: Тесты На Единичный Корень
+---
+
+# Тесты На Единичный Корень
+## Модели Единичного Корня
+Нестационарный случайный процесс $x_{t}$ называется **интегрированным порядка $d \geq 1$** ($I(d)$), если
+- ряд $x_{t}$ нестационарен (или стационарен относительно детерминированного тренда)
+- разности порядка $d: \Delta^{d}x_{t}$ стационарны
+- разности меньших порядков нестационарны
+
+**Смысл**: $x_{t}$ является $I(d)$, если операция вычисления разностей порядка $d$ приводит нестац. случ. проц. $x_{t}$ к стац. ряду.
+Впервые при данном значении порядка разностей $d$.
+
+## Процессы Единичного Корня
+Процессы $I(d)$ называют процессом единичного корня, потому что:
+- характеристическое уравнение модели содержит корень "$1$"
+- наличие ед. корня => стохастический тренд
+
+## Модель $AR(1)$ С Трендом
+Р/м модель $x_{t}=\alpha_{0}+\beta t +\alpha_{1}x_{t-1}+\epsilon_{t}$
+1) Если $\alpha_{0} \neq 0,\ \beta=0$^
+ - $|\alpha_{1}|<1$ => стац. ряд, тренда нет
+ - $a_{1}=1$ => DS-ряд
+1) $\beta \neq 0,\ \alpha_{0} \neq 0$:
+ - $|\alpha_{1}|<1$ => $TS$
+ - $\alpha_{1}=1$ => $DS$
+
+| TS | DS |
+| ------------------------------------ | ---------------------------------------------- |
+| Тренд детерминирован | Тренд стохастичен |
+| Убирается детерминированием | Убирается дифференцированием |
+| После вычитания тренда - стационарен | После вычитание тренда - все ещё нестационарен |
+| Нет единичного корня | есть единичный корень |
+Неверный способ удаления тренда приводит к проблемам:
+1) Детерминированный DS-ряд
+ - искажение спектра
+ - лишняя переодичность
+1) Разностирование $TS$-ряда
+ - передифференцирование
+ - сложности в оценивании модели
+
+Таким образом TS и DS ряды визуально трудно различимы, поэтому обязательно применяются тесты на единичный корень, от которого зависит корректный выбор.
+
+## Тест Д-Ф Без Константы
+**Тест Дики-Фуллера** - это методика, которая используется в прикладной статистике и эконометрике для анализа ВР для проверки на стационарность
+
+Модель без константы: $x_{t}=\alpha x_{t-1} + \epsilon_{t}$
+$H_{0}: \alpha = 1$ - ряд нестационарный, содержит единичный корень, описывается процессом случайного блуждания.
+$H_{1}: |\alpha|<1$ - ряд стационарен, не содержит единичный корень, описывается стационарным авторегрессионным процессом 1-го порядка.
+
+$$x_{t}-x_{t-1}=\alpha_{0}+\alpha_{1}*x_{t-1}-x_{t-1}+\phi t+\epsilon_{t} \implies $$$$\implies \Delta x_{t}=\alpha_{0}+(\alpha_{1}-1)*x_{t-1}+ \phi t + \epsilon_{t}$$
+Обозначим $(\alpha-1) =b$: $$\Delta x_{t}=b*x_{t-1}+\epsilon_{t}$$
+Новые гипотезы:
+$H_{0}: \alpha=1 \to b=0$: Если ряд содержит единичный корень, то коэффициент $b$ незначим
+$H_{1}: |\alpha| <1 \to b < 0$: Если ряд стационарен, то $b$ значимый и отрицательный
+
+**Идея теста**: оценить уравнение обычным МНК и проверить значимость коэффициента $b$ при помощи $t$-статистики: $\hat{t}=\hat{b}/SE(\hat{b})$, где $SE(b)$ - стандартная ошибка.
+В данном случае, $t$-статистика имеет распределение Дики-Фуллера.
+Если рассчитанное значение статистики оказалось левее критического, то нулевая гипотеза отклоняется -> ряд стационарен.
+
+## Тест Д-Ф С Константой
+Модель с константой: $x_{t}=\alpha_{0}+\alpha_{1}*x_{t-1}+\epsilon_{t}$
+
+$H_{0}: \alpha_{1}=1$ - ряд НС., содержит единичный корень, описывается стац. авторегрессионным процессом случ. блуждания с дрейфом.
+$H_{1}: |\alpha_{1}|<1$ - ряд С., не содержит единичный корень, описывается стац. авторегрессионным процессом 1-го порядка.
+$$x_{t}-x_{t-1}=\alpha_{0}+\alpha_{1}*x_{t-1}-x_{t-1}+\epsilon_{t} \implies \Delta x_{t}=\alpha_{0}+(\alpha_{1}-1)*x_{t-1}+ \epsilon_{t}$$
+Обозначим $(\alpha-1) =b$: $$\Delta x_{t}=\alpha_{0}+b*x_{t-1}+\epsilon_{t}$$
+## Тест Д-Ф С Константой И Трендом
+Модель: $x_{t}=\alpha_{0}+\alpha_{1}*x_{t-1}+\phi t + \epsilon_{t}$
+$H_{0}: \alpha_{1}=1$ - ряд НС., содержит единичный корень, описывается стац. авторегрессионным процессом случ. блуждания с дрейфом.
+$H_{1}: |\alpha_{1}|<1$ - ряд С., не содержит единичный корень, описывается стац. авторегрессионным процессом 1-го порядка.
+
+При $|\alpha_{1}|<1$ и $\phi \neq 0$ -> $x_{t}$ стац. относительно линейного тренда $(TS)$
+В этом случае, ряд $z_{t}=x_{t}-\phi t$ стационарен.
+
+$$x_{t}-x_{t-1}=\alpha_{0}+\alpha_{1}*x_{t-1}-x_{t-1}+\phi t+\epsilon_{t} \implies $$$$\implies \Delta x_{t}=\alpha_{0}+(\alpha_{1}-1)*x_{t-1}+ \phi t + \epsilon_{t}$$
+Обозначим $(\alpha-1) =b$: $$\Delta x_{t}=\alpha_{0}+b*x_{t-1}+\phi t+\epsilon_{t}$$
+## Расширенный Тест Д-Ф
+Обобщение критерия Д-Ф для учета авторегрессии $p$-порядка составляет суть расширенного критерия Д-Ф ($ADF$-тест)
+
+Общий случай без константы: $x_{t}=\alpha_{1}x_{t-1}+\dots+\alpha_{p}x_{t-p}+\epsilon_{t}$
+$H_{0}$: ряд является НС, содержит единичный корень
+$H_{1}$: ряд является стационарным процессом $AR(p)$
+
+$$x_{t}-x_{t-1}=(\alpha_{1}x_{t-1}+\dots+\alpha_{p}x_{t-p}+\epsilon_{t})-x_{t-1} \implies$$
+$$\implies \Delta x_{t}=(\alpha_{1}-1) x_{t-1}+\alpha_{2}x_{t-2}+\dots+\alpha_{p}x_{t-p}+\epsilon_{t}$$
+**Оценка уравнения**:
+$$\Delta x_{t}=b*x_{t-1}+c_{1}*\Delta x_{t-1}+\dots+c_{p-1}*\Delta x_{t-p+1}+\epsilon_{t}$$
+$$(\Delta x_{t}= \gamma*x_{t-1}+\sum\limits_{t=1}^{p-1}\phi_{i} \Delta x_{t-1}+\epsilon_{t})$$
+Расчетное значение статистики: $\hat{t} = \frac{\hat{b}}{SE(\hat{b})}$
+*Модель с константой:*
+$$x_{t}=\alpha_{0}+\alpha_{1}x_{t-1}+\dots+\alpha_{p}x_{t-p}+\epsilon_{t} \implies$$
+$$\implies \Delta x_{t}=\alpha_{0}+bx_{t-1}+c_{1} \Delta x_{t-1}+\dots+c_{p-1} \Delta x_{t-p+1} +\epsilon_{t}$$
+$$(\Delta x_{t}=\mu+\gamma x_{t-1}+\sum\limits_{t=1}^{p-1}\phi_{i} \Delta x_{t-1}+\epsilon_{t})$$
+*Модель с константной с трендом:*
+$$x_{t}=\alpha_{0}\alpha_{1} x_{t-1} + \dots + \alpha_{p} x_{t-p}+\phi t + \epsilon_{t} \implies$$
+$$\implies \Delta x_{t}=\alpha_{0}+b x_{t-1}+c_{1} \Delta x_{t-1} + \dots + c_{p-1} \Delta x_{t-p+1}+ \phi t + \epsilon_{t}$$
+$$(\Delta x_{t}=\mu+\beta t + \gamma x_{t-1} + \sum\limits_{t=1}^{p-1}\phi_{i} \Delta x_{t-1} +\epsilon_{t})$$
+
+В данном случае, $t$-статистика имеет распределение Дики-Фуллера.
+Если рассчитанное значение статистики оказалось левее критического, то нулевая гипотеза отклоняется -> ряд стационарен.
+
+Критическое значение расширенного критерия Д-Ф. совпадают с критическим значением обычного критерия Д-Ф., роль дополнительной авторегрессионной компоненты сводится к тому, чтобы исключить автокорреляцию остатков, при которой тест не работает.
+
+Ограничения:
+1) Не включать лишние регрессоры (мощность снижается)
+2) Чувствительность к выбору числа лагов
+3) Не применять при негомоскедастичности остатков
+4) Ложное принятие при наличии структурных сдвигов
+5) Некорректно использовать при наличии нескольких единичных корней
+
diff --git a/90 Library/Math/Статистика/Временные ряды/Частная автокорреляционная функция.md b/90 Library/Math/Статистика/Временные ряды/Частная автокорреляционная функция.md
new file mode 100644
index 0000000..ff13667
--- /dev/null
+++ b/90 Library/Math/Статистика/Временные ряды/Частная автокорреляционная функция.md
@@ -0,0 +1,26 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - ml
+ - mephi
+ - statistics
+ - time-series
+ - autocorrelation
+created: 2026-02-13
+updated: 2026-05-07
+title: Частная Автокорреляционная Функция
+---
+
+# Частная Автокорреляционная Функция
+Если при расчете показателей корреляции уровней ВР в зависимости от лага $k$, использовать частные коэффициенты корреляции, характеризующие "очищенную взаимосвязь", то получится **ЧАКФ** $\rho_k^ч$.
+
+С помощью ЧАКФ измеряется корреляция между уровнями ряда $x_t\ и\ x_{t-k}$, разделенными $k$ временными моментами, при исключении влияния на эту взаимосвязь всех промежуточных уровней ряда $x_{t-1},\dots,x_{t-k-1}$
+
+Заметим, что $\rho_1^ч = \rho_1$ (т.е. ЧАКФ первого порядка равна АКФ первого порядка)
+
+## Связанные заметки
+- [[Автокорреляционная функция (АКФ)]] — базовая автокорреляция; ЧАКФ отличается «очисткой» от промежуточных лагов
+- [[Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции]] — объединённое изложение
+- [[Определение порядков АР и СС]] — ЧАКФ используется для определения порядка AR
diff --git a/90 Library/Math/Статистика/Дискриминантный анализ/Дискриминантный анализ.md b/90 Library/Math/Статистика/Дискриминантный анализ/Дискриминантный анализ.md
new file mode 100644
index 0000000..c1db516
--- /dev/null
+++ b/90 Library/Math/Статистика/Дискриминантный анализ/Дискриминантный анализ.md
@@ -0,0 +1,22 @@
+---
+status: stable
+type: moc
+tags:
+ - math
+ - statistics
+ - discriminant-analysis
+created: 2026-02-13
+updated: 2026-05-07
+title: Дискриминантный Анализ
+---
+
+# Дискриминантный Анализ
+
+%% Begin Waypoint %%
+- [[Параметрический дискриминантный анализ в случае нормального закона распределения классов]]
+- [[Построение оптимальной процедуры классификации]]
+- [[Принципы дискриминантного анализа]]
+- [[Условие отнесения объекта к классу в случае двух признаков]]
+- [[Функция потерь]]
+
+%% End Waypoint %%
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Дискриминантный анализ/Параметрический дискриминантный анализ в случае нормального закона распределения классов.md b/90 Library/Math/Статистика/Дискриминантный анализ/Параметрический дискриминантный анализ в случае нормального закона распределения классов.md
new file mode 100644
index 0000000..3e6e646
--- /dev/null
+++ b/90 Library/Math/Статистика/Дискриминантный анализ/Параметрический дискриминантный анализ в случае нормального закона распределения классов.md
@@ -0,0 +1,25 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - statistics
+ - discriminant-analysis
+ - ml-algorithms
+created: 2026-01-19
+updated: 2026-05-07
+title: Параметрический Дискриминантный Анализ В Случае Нормального Закона Распределения Классов
+---
+
+# Параметрический Дискриминантный Анализ В Случае Нормального Закона Распределения Классов
+Параметрический дискриминантный анализ (ПДА) - это метод классификации, основанный на предположении, что плотности распределение признаков в каждом из классов описываются определенным теоретическим законом распределения.
+В большинстве случаев, предполагается **многомерное нормальное распределение**.
+## Основное Предположение
+Для каждого класса $S_{k},\ k=\overline{1,m}$ вектор признаков $X = (x_{1}, x_{2},\dots, x_{p})^{T}$ распределен нормально с вектором средних $\mu_{k}$ и ковариационной матрицей $\Sigma_{k}$:
+$$X \sim N(\mu_{k},\Sigma_{k})$$
+Плотность распределения для $k$-го класса:$$f_{k}(x)=\frac{1}{(2\pi)^{p/2}|\Sigma_{k}|^{1/2}}*\exp(-\frac{1}{2}(x-\mu_{k})^{T}\Sigma_{k}^{-1}(x-\mu_{k}))$$
+## Принцип Классификации (Байесовское правило)
+Объект с вектором признаков $x$ относится к тому классу $S_{k}$, для которого **апостериорная вероятность** максимальна.
+$$P(S_{k}|x) = \frac{q_{k}f_{k}(x)}{\sum_{i=1}^{m}q_{i}f_{i}(x)}$$
+Где $q_{k}$ — априорная вероятность класса $S_{k}$.
+**Решающее правило:** объект относится к классу k, если логарифм выражения $q_{k}f_{k}(x)$ максимален. Это приводит к построению **дискриминантных функций**.
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Дискриминантный анализ/Построение оптимальной процедуры классификации.md b/90 Library/Math/Статистика/Дискриминантный анализ/Построение оптимальной процедуры классификации.md
new file mode 100644
index 0000000..ef7b809
--- /dev/null
+++ b/90 Library/Math/Статистика/Дискриминантный анализ/Построение оптимальной процедуры классификации.md
@@ -0,0 +1,27 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - discriminant-analysis
+created: 2026-01-18
+updated: 2026-05-07
+title: Построение Оптимальной Процедуры Классификации
+---
+
+# Построение Оптимальной Процедуры Классификации
+Совокупность из объектов, подлежащая классификации, в дискриминантном анализе интерпретируется как выборка из генеральной совокупности, описываемая смесью классов с плотностью вида: $$f(x) = \sum\limits_{j=1}^{k}\pi_{i}*f_{j}(x)$$
+$\pi_{i}$ - удельный вес элементов $j$-го класса в общей генеральной совокупности.
+![[Pasted image 20260118205031.png|500]]
+$A$ - событие, состоящее в том, что $f(x)$ примет значение $\Delta x$
+$B_{j}$ - событие, состоящее в том, что $\Delta x$ принадлежит $j$ -му классу
+
+$P(A) = \sum\limits_{j=1}^{k}P(B_{j})*P(A|B_{j}) \implies f(x) * \Delta x \approx \sum\limits_{j=1}^{k}\pi_{i}*f_{j}(x) * \Delta x$
+
+Оптимальная (байесовская) процедура классификации $S_{j}$ - это процедура классификации с **минимальными потерями** среди всех других процедур классификации.
+$$S_{j}^{opt}=(S_{1}^{opt},\dots,S_{k}^{opt}), j=\overline{1,k}$$
+$$S_{j}^{opt}=\left\{ x: \sum\limits_{\begin{align} i=1 \\ i \neq j \end{align}}^{k} \pi_{i}*f_{i}(x)*c(j|i) = \min_{1 \leq l \leq k} \sum\limits_{\matrix{i=1 \\ i \neq l}}^{k}\pi_{i}*f_{i}(x)*c(l|i) \right\}$$
+![[Pasted image 20260122100552.png]]
+![[Pasted image 20260122100611.png]]
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Дискриминантный анализ/Принципы дискриминантного анализа.md b/90 Library/Math/Статистика/Дискриминантный анализ/Принципы дискриминантного анализа.md
new file mode 100644
index 0000000..c5f3003
--- /dev/null
+++ b/90 Library/Math/Статистика/Дискриминантный анализ/Принципы дискриминантного анализа.md
@@ -0,0 +1,39 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - discriminant-analysis
+created: 2026-01-18
+updated: 2026-05-07
+title: Принципы Дискриминантного Анализа
+---
+
+# Принципы Дискриминантного Анализа
+**Дискриминантный анализ** - раздел многомерного статистического анализа, включающее в себя статистические методы классификации многомерных наблюдений в ситуации, когда исследователь обладает так называемыми **обучающими выборками**.
+
+## Исходные Данные
+Задача: отнести каждый из $N$ объектов, подлежащих классификации, к одному из $k$ классов.
+
+Информация о классифицируемых объектах:
+1) матрица $X_{N*n}$ типа "объект-свойство" с информацией о значениях признаков $X_{1},X_{2},\dots,X_{n}$ для $N$ объектов наблюдений, подлежащих классификации
+ $$X_{N*n}=\begin{pmatrix} x_{11} & x_{12} & \dots & x_{1n} \\ x_{21} & x_{22} & \dots & x_{2n} \\ \dots & \dots & \dots & \dots \\ x_{N1} & x_{N2} & \dots & x_{Nn}\end{pmatrix}$$
+2) Обучающие выборки $X^{(1)}, X^{(2)}, \dots, X^{(k)}$,
+ где $X_{n_{j}*n}^{(j)}=\begin{pmatrix} x_{11}^{(j)} & x_{12}^{(j)} & \dots & x_{1n}^{(j)} \\ x_{21}^{(j)} & x_{22}^{(j)} & \dots & x_{2n}^{(j)} \\ \dots & \dots & \dots & \dots \\ x_{n_{j}1}^{(j)} & x_{n_{j}2}^{(j)} & \dots & x_{n_{j}n}^{(j)} \end{pmatrix} \ j = \overline{1\dots k}$
+ матрица типа *"Объект-Свойство"* , содержащая информацию о значениях признаков для $n_{j}$ объектов, для которых заранее известно, что они принадлежат $j$-ому классу.
+
+---
+
+**Класс в дискриминантном анализе** - это генеральная совокупность, описываемая одномодальной функцией плотности $f(x)$ или одномодальным полигоном вероятности (в случае дискретного вектора признаков).
+
+> [!important] Основной принцип классификации в ДА
+> Объект следует отнести к тому классу, в рамках которого он выглядит **более правдоподобным**.
+
+![[Pasted image 20260118190948.png]]
+
+## Связанные заметки
+- [[Линейные модели]] — логистическая регрессия решает ту же задачу классификации; ДА — статистическая формализация, ML — вычислительная реализация
+- [[Метрические алгоритмы]] — kNN — ещё один метод классификации с обучающей выборкой; классифицирует по расстоянию, а не по плотности распределения
+- [[Функция потерь]] — функция потерь C → min как критерий оптимальной процедуры классификации
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Дискриминантный анализ/Условие отнесения объекта к классу в случае двух признаков.md b/90 Library/Math/Статистика/Дискриминантный анализ/Условие отнесения объекта к классу в случае двух признаков.md
new file mode 100644
index 0000000..e9eca98
--- /dev/null
+++ b/90 Library/Math/Статистика/Дискриминантный анализ/Условие отнесения объекта к классу в случае двух признаков.md
@@ -0,0 +1,22 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - ml
+ - mephi
+ - statistics
+ - discriminant-analysis
+created: 2026-02-13
+updated: 2026-05-07
+title: Условие Отнесения Объекта К Классу В Случае Двух Признаков
+---
+
+# Условие Отнесения Объекта К Классу В Случае Двух Признаков
+$$(x_{v}-\frac{1}{2}(\hat{a}^{(j)}+\hat{a}^{(l)}))^{T}\hat{\sum}^{-1}( \hat{a}^{(j)}-\hat{a}^{(l)}) \geq \ln \frac{\hat{\pi_{l}}}{\hat{\pi}_{j}}$$
+
+Левая часть - линейная дискриминантная функция, описывающая границу между 2-мя классами.
+
+$\hat{\sum}^{-1} * (\hat{a}^{(i)}-\hat{a}^{(l)})$ - весовой коэффициент $b$. (коэффициент дискриминантной функции)
+
+
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Дискриминантный анализ/Функция потерь.md b/90 Library/Math/Статистика/Дискриминантный анализ/Функция потерь.md
new file mode 100644
index 0000000..11b68e1
--- /dev/null
+++ b/90 Library/Math/Статистика/Дискриминантный анализ/Функция потерь.md
@@ -0,0 +1,47 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - discriminant-analysis
+created: 2026-01-18
+updated: 2026-05-07
+title: Функция Потерь
+dg-home: false
+dg-publish: false
+---
+
+# Функция Потерь
+
+## Общие Потери
+Пусть $c(j/i)$ - стоимость потерь от отнесения объекта $i$-класса с номером $j$, при этом $c(i/i)=0$.
+$m(j/i)$ - число объектов $i$ класса неправильно классифицированных в $j$ класс.
+
+Тогда суммарные потери:$$C_{N} = \sum\limits_{i=1}^{k}\sum\limits_{j=1}^{k}c(j/i)*m(j/i)$$
+## Удельные Потери
+**Функция удельных потерь** $(C)$ — это предел отношения общих потерь к общему объему выборки $(N)$ при бесконечном увеличении числа наблюдений $(N→∞)$.
+$$C=\lim_{N \to \infty}(\frac{1}{N}*C_{N})=\lim_{N \to \infty}\sum\limits_{i=1}^{k}\sum\limits_{j=1}^{k}C(j/i)*\frac{m(j/i)*n_{i}}{n_{i}*N}=$$$$=\sum\limits_{i=1}^{k}\pi_{i}*\sum\limits_{i=1}^{k}C(j/i)*P(j/i)$$
+$\large \frac{m(j|i)}{n_{i}} \to^{P} P(j|i)$, где $P(j|i)$ - вероятность отнесения объекта класса $i$ к классу $j$.
+$\large \frac{n_{i}}{N} \to^{P} \pi_{i}$, где $\pi_{i}$ - вероятность того, что объект принадлежит к $i$-ому классу.
+
+Величину $\pi_{i}$ называют **априорной вероятностью** или **удельным весом $i$-го класса**.
+
+## Функция Потерь
+$$C = \sum\limits_{i=1}^{k}\pi_{i}*\sum\limits_{j=1}^{k}C(j|i)*P(j|i)
+$$
+$C^{(i)}=\sum\limits_{j=1}^{k}\pi_{i}*C^{(i)}$ - средние удельные потери от неправильной классификации всех анализируемых объектов.
+
+---
+
+Полагают, что потери $C(j|i)$ одинаковы для $\forall i,j$:
+$C(j|i)=C_{0}=const,\ j \neq i,\ i,j=\overline{1,k}$
+
+Тогда задача минимизации средних удельных потерь $(C \to \min)$ сводится к **максимизации вероятности правильной классификации**.
+$$\sum\limits_{i=1}^{k}\pi_{i}*P(i|i) \to \max$$
+
+## Связанные заметки
+- [[Линейные модели]] — MSE → min в МНК и C → min в ДА — один и тот же принцип минимизации ошибки; в ML реализован численно через градиентный спуск
+- [[Принципы дискриминантного анализа]] — контекст применения функции потерь
+
diff --git a/90 Library/Math/Статистика/Кластерный анализ/Агломеративные (иерархические) методы.md b/90 Library/Math/Статистика/Кластерный анализ/Агломеративные (иерархические) методы.md
new file mode 100644
index 0000000..3b0c01f
--- /dev/null
+++ b/90 Library/Math/Статистика/Кластерный анализ/Агломеративные (иерархические) методы.md
@@ -0,0 +1,52 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - cluster-analysis
+created: 2026-01-18
+updated: 2026-05-07
+title: Агломеративные (иерархические) Методы
+---
+
+# Агломеративные (иерархические) Методы
+
+Принцип работы агломеративных методов кластеризации заключается в последовательном объединении групп наиболее приближенных объектов, а потом всё более далеких друг от друга.
+
+На первом шаге, каждый объект - отдельный класс.
+На каждом последующем, мы объединяем самые близкие классы в один.
+Алгоритм заканчивается, когда остается всего один класс.
+
+Если ставится задача разбиения на несколько кластеров, то устанавливается пороговое значение расстояния $\rho$, превышение которого прекращает цикл.
+
+## Алгоритм
+1) Центрирование и нормирование значений исходных признаков
+2) Расчет матрицы расстояний между объектами (каждый объект - отдельный класс)
+3) Объединение двух ближайших классов
+4) Пересчет матрицы расстояний между классами ([[Расстояние между классами объектов|по выбранному методу]])
+5) Повторение процедуры до достижения необходимого количества классов
+
+## Методы Связывания Классов
+1) Одиночная связь (метод ближайшего соседа)
+ Расстояние между кластерами определяется, как расстояние между двумя наиболее близкими объектами в этих кластерах. Такие кластеры имеют тенденцию представляться в виде *"цепочек"*.
+2) Полная связь (метод дальнего соседа)
+ Наибольшее расстояние между двумя объектами из разных кластеров. (Но из этих "максимальных расстояний" выбираем минимальное)
+3) Невзвешенное попарное среднее
+ Расстояние вычисляется как **среднее расстояние между всеми парами** объектов в двух классах.
+4) Взвешенное попарное среднее
+ Аналогично невзвешенному, но предполагаются неравные размеры кластеров, поэтому размер кластера (т.е. число объектов в нем) используется в качестве весового коэффициента.
+5) Невзвешенный центроидный метод
+ Расстояние м/у двумя кластерами определяется как расстояние между их центрами тяжести.
+6) Взвешенный центроидный метод
+ Аналогично невзвешенному, но при вычислениях используются веса для учета разницы между кластерами.
+7) **Метод Уорда**
+ Использует методы дисперсионного анализа для оценки расстояний между кластерами. Метод минимизирует сумму квадратов $(SS)$ для любых двух кластеров, которые могут быть сформированы на каждом шаге.
+ *Метод эффективен, но стремиться к кластерам малого размера.*
+
+## Связанные заметки
+- [[Постановка задачи Кластерного анализа]] — формальная постановка задачи разбиения
+- [[Расстояние между классами объектов]] — метрики, используемые в шаге объединения классов
+- [[Дивизимные методы]] — противоположный подход: от одного класса к N
+- [[Критерии определения оптимального числа классов]] — как выбрать порог остановки алгоритма
diff --git a/90 Library/Math/Статистика/Кластерный анализ/Дивизимные методы.md b/90 Library/Math/Статистика/Кластерный анализ/Дивизимные методы.md
new file mode 100644
index 0000000..cebde62
--- /dev/null
+++ b/90 Library/Math/Статистика/Кластерный анализ/Дивизимные методы.md
@@ -0,0 +1,28 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - statistics
+ - cluster-analysis
+created: 2026-01-18
+updated: 2026-05-07
+title: Дивизимные Методы
+---
+
+# Дивизимные Методы
+
+> Принцип работы обратен [[Агломеративные (иерархические) методы|Агломерации]].
+
+Первоначально все объекты в одном кластере, выбираются два **наиболее** удаленных объекта, и их берут за основу двух новых кластеров.
+Далее, остальные объекты распределяют по этим классам по принципу наименьшего расстояния до его центра.
+Далее уже эти два класса делят на 4 по тому же принципу.
+Цикл происходит до тех пор, пока каждый объект не станет отдельный классом.
+
+Преимущество дивизимных методов заключается в том, что все расчеты осуществляются на основе исходной **матрицы расстояний**, не нуждающейся в постоянном пересчете.
+
+## Связанные заметки
+- [[Постановка задачи Кластерного анализа]] — формальная постановка задачи разбиения
+- [[Агломеративные (иерархические) методы]] — противоположный подход: от N классов к одному
+- [[Расстояние между классами объектов]] — матрица расстояний, на которой работает алгоритм
+
diff --git a/90 Library/Math/Статистика/Кластерный анализ/Интерпретация результатов кластеризации.md b/90 Library/Math/Статистика/Кластерный анализ/Интерпретация результатов кластеризации.md
new file mode 100644
index 0000000..41b8531
--- /dev/null
+++ b/90 Library/Math/Статистика/Кластерный анализ/Интерпретация результатов кластеризации.md
@@ -0,0 +1,22 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - cluster-analysis
+created: 2026-01-18
+updated: 2026-05-07
+title: Интерпретация Результатов Кластеризации
+---
+
+# Интерпретация Результатов Кластеризации
+1) Анализ средних значений
+ - *Расчет* *средних*:
+ Для каждого выделенного кластера вычисляются средние значения всех признаков, участвовавших в классификации.
+ - *Визуализация*:
+ Строятся графики средних значений (профили кластеров). Благодаря своей наглядности, они позволяют охарактеризовать каждый класс и провести сравнительный анализ между группами.
+ - *Присвоение имен*:
+ Конечной целью этого этапа является присвоение каждому кластеру понятного названия, отражающего его специфику (например, "клиенты с высоким доходом", "рискованные заемщики" и т.д.).
+
diff --git a/90 Library/Math/Статистика/Кластерный анализ/Итерационная классификация. Метод K-средних (K-means).md b/90 Library/Math/Статистика/Кластерный анализ/Итерационная классификация. Метод K-средних (K-means).md
new file mode 100644
index 0000000..7af51ee
--- /dev/null
+++ b/90 Library/Math/Статистика/Кластерный анализ/Итерационная классификация. Метод K-средних (K-means).md
@@ -0,0 +1,50 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - cluster-analysis
+created: 2026-01-05
+updated: 2026-05-07
+title: Итерационные Методы
+---
+
+# Итерационные Методы
+Процедуры классификации, которые, в отличие от иерархических методов, не строят дерево (дендрограмму), а разбивают совокупность объектов на кластеры путем последовательного улучшения начального разбиения.
+
+# К-средних
+Метод K-средних относится к методам итерационной классификации. В результате строится ровно $k$ различных, наиболее удаленных друг от друга, кластеров.
+
+> [!important] Цель метода
+> **Минимизировать** изменчивость внутри кластеров и **максимизировать** изменчивость между кластерами.
+
+Объекты перемещаются из одних кластеров в другие для того, чтобы получить наиболее значимый результат: **максимальное отношение межгрупповой дисперсии к внутригрупповой.**
+
+## Алгоритм
+1) Задаются $k$ случайно выбранных объектов (число классов) - эталоны $\epsilon$
+2) Из оставшихся $N-k$ объектов извлекается объект и проверяется, к какому их эталонов он ближе (по мерам расстояния). Данных объект присоединяется к тому эталону, для которого наблюдается минимальное расстояние $\min_{1 \leq l \leq k} \rho_{il}$
+ Веса и эталоны пересчитываются по принципу:
+ $$\begin{align}
+ \epsilon_{i} = \begin{cases}
+ \frac{\omega_{i}*\epsilon_{i}+O}{\omega_{i}+1},\ если\ \rho(O, \epsilon_{i})=\min_{1 \leq j \leq k} \epsilon_{j} \\
+ \epsilon_{i},\ \text{в других случаях}
+ \end{cases}
+ \\
+ \omega_{i} = \begin{cases}
+ \omega_{i}+1,\ если\ \rho(O, \epsilon_{i})=\min_{1 \leq j \leq k} \epsilon_{j} \\
+ \omega_{i},\ \text{в других случаях}
+ \end{cases}
+ \end{align}$$
+ $\omega_{i}$ - вес $i-го$ класса. Изначально считается, что $\epsilon_{i}=O_{i},\ \omega_{i}=1,\ i=\overline{1,k}$
+3) После рассмотрения каждого из $N-k$ объектов, все объекты будут распределены на $k$ классов - на этом первая итерация алгоритма закончена.
+4) Для достижения устойчивого разбиения, итерация повторяется, а веса продолжают накапливаться. Новое разбиение сравнивается с предыдущим. Если совпадают, то работа алгоритма завершается, в противном случае - алгоритм повторяется.
+
+Недостатками метода можно отметить:
+- неясно, как выбирать исходные центры кластеров.
+- число кластеров надо знать заранее.
+
+## Связанные заметки
+- [[Метрические алгоритмы]] — kNN также классифицирует по минимальному расстоянию до ближайших объектов; supervised-аналог K-means
+- [[Расстояние между объектами]] — метрики расстояния, используемые при вычислении $\min \rho_{il}$
diff --git a/90 Library/Math/Статистика/Кластерный анализ/Классификация.md b/90 Library/Math/Статистика/Кластерный анализ/Классификация.md
new file mode 100644
index 0000000..ceaca75
--- /dev/null
+++ b/90 Library/Math/Статистика/Кластерный анализ/Классификация.md
@@ -0,0 +1,47 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - cluster-analysis
+created: 2025-12-25
+updated: 2026-05-07
+title: Классификация
+---
+
+# Классификация
+
+> [!note] Определение
+> Классификация - это:
+> 1) разделение рассматриваемой совокупности объектов/явлений на **однородные группы**
+> 2) отнесение каждого из заданного множества объектов к одному из заранее известных классов
+
+## Исходные Статистические Данные В Задачах Классификации
+1) Матрица "**объект-свойство**" или матрица парных сравнений:$$X_{N*k}=
+ \begin{pmatrix}
+ x_{11} & \dots & x_{1k} \\
+ \vdots & \ddots & \vdots \\
+ x_{N1} & \dots & x_{Nk}
+ \end{pmatrix}\ \text{или} \ \ \gamma_{N*N}= \begin{pmatrix}
+ \gamma_{11} & \dots & \gamma_{1N} \\
+ \vdots & \ddots & \vdots \\
+ \gamma_{N1} & \dots & \gamma_{NN}
+ \end{pmatrix}$$
+2) Обучающие выборки $X^{(1)}, X^{(2)}, \dots, X^{(p)}$ -> набор объектов, для которых заранее известно к каким классам они относятся:$$X_{n_{j}*k}^{(j)}=
+ \begin{pmatrix} x_{11}^{(j)} & \dots & x_{1k}^{(j)} \\ \vdots & \ddots & \vdots \\ x_{n_{j}1}^{(j)} & \dots & x_{n_{j}k}^{(j)}
+ \end{pmatrix},\ \text{где}\ j=\overline{1,p}$$
+
+## Типологизация Задач Классификации
+
+| Априорные сведения о классах | Без обучающих выборок | С обучающими выборками |
+| --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- |
+| Не известен вид закона распределения в классах | Классификация без обучения (непараметрический случай): **кластерный анализ** | Классификация с обучением (непараметрический случай): **дискриминантный анализ** |
+| Известен вид закона распределения в классах (***параметра распределения не известны***) | Классификация без обучения (параметрический случай) **расщепление смесей вероятностных распределений** | Классификация с обучением (параметрический случай) **параметрический дискриминантный анализ**
|
+| Полностью известен закон распределения в классах | Проверка статических гипотез | Обучающие выборки не нужны |
+
+## Связанные заметки
+- [[Кластерный анализ]] — детальное рассмотрение классификации без обучения
+- [[Дискриминантный анализ]] — детальное рассмотрение классификации с обучением
+- [[Постановка задачи Кластерного анализа]] — формальная постановка задачи
diff --git a/90 Library/Math/Статистика/Кластерный анализ/Кластерный анализ.md b/90 Library/Math/Статистика/Кластерный анализ/Кластерный анализ.md
new file mode 100644
index 0000000..20d6cfd
--- /dev/null
+++ b/90 Library/Math/Статистика/Кластерный анализ/Кластерный анализ.md
@@ -0,0 +1,34 @@
+---
+status: stable
+type: moc
+tags:
+ - math
+ - mephi
+ - statistics
+ - cluster-analysis
+created: 2026-05-02
+updated: 2026-05-07
+title: Кластерный Анализ
+---
+
+# Кластерный Анализ
+
+%% Begin Waypoint %%
+- [[Агломеративные (иерархические) методы]]
+- [[Дивизимные методы]]
+- [[Интерпретация результатов кластеризации]]
+- [[Итерационная классификация. Метод K-средних (K-means)]]
+- [[Классификация]]
+- [[Критерии определения оптимального числа классов]]
+- [[Наивный Байесовский алгоритм]]
+- [[Понятие однородности объектов]]
+- [[Постановка задачи Кластерного анализа]]
+- [[Расстояние между классами объектов]]
+- [[Расстояние между объектами]]
+- [[Функционалы качества разбиения]]
+
+%% End Waypoint %%
+
+## Контекст
+- [[Классификация]] — типология задач классификации: кластерный vs. дискриминантный анализ
+- [[Дискриминантный анализ]] — классификация с обучающей выборкой (в отличие от кластерного)
diff --git a/90 Library/Math/Статистика/Кластерный анализ/Критерии определения оптимального числа классов.md b/90 Library/Math/Статистика/Кластерный анализ/Критерии определения оптимального числа классов.md
new file mode 100644
index 0000000..82531b2
--- /dev/null
+++ b/90 Library/Math/Статистика/Кластерный анализ/Критерии определения оптимального числа классов.md
@@ -0,0 +1,21 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - statistics
+ - cluster-analysis
+created: 2026-01-18
+updated: 2026-05-07
+title: Критерии Определения Оптимального Числа Классов
+---
+
+# Критерии Определения Оптимального Числа Классов
+1) Визуальный анализ дендрограммы:
+ Большой разрыв между уровнями разбиения $\rho_{0}$ и $\rho_{1}>\rho_{0}$ говорит о том, что оптимальное количество классов равно $\rho_{0}$
+2) Формальные статистические критерии:
+ - *Индекс Калински и Харабаза* (сравнение разброса внутри кластеров с разбросом между кластерами)
+ $G = \frac{trace(B)/(p-1)}{trace(W)/(n-p)}$, где $B$ - матрица межгруппового рассеяния, $W$ - матрица внутригруппового рассеяния, $p$ - кол-во классов, $n$ - объем выборки.
+ Оптимальным считается разбиение, когда индекс принимает **максимальное значение**.
+ - *Индекс Дуды и Харта*
+1) [[Функционалы качества разбиения]]
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Кластерный анализ/Наивный Байесовский алгоритм.md b/90 Library/Math/Статистика/Кластерный анализ/Наивный Байесовский алгоритм.md
new file mode 100644
index 0000000..b9ff38a
--- /dev/null
+++ b/90 Library/Math/Статистика/Кластерный анализ/Наивный Байесовский алгоритм.md
@@ -0,0 +1,20 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - cluster-analysis
+created: 2026-01-18
+updated: 2026-05-07
+title: Наивный Байесовский Алгоритм
+---
+
+# Наивный Байесовский Алгоритм
+**Упрощенный алгоритм Байеса (Naive Bayes)** - это алгоритм классификации, основанный на вычислении условной вероятности значений прогнозируемых атрибутов. При этом и предполагается, что входные атрибуты являются независимыми и определен хотя бы один входной атрибут.
+
+Алгоритм основан на использовании формулы *Байеса*.
+- Пусть $A_{1}, A_{2}, \dots, A_{n}$ - полная группа несовместных событий, а $B$ - некоторое условие, вероятность которого **положительна**.
+- Тогда условная вероятность события $A_{i}$ при событии $B$:$$P(A_{i}|B) = \frac{P(B|A_{i})*P(A_{i})}{\Sigma_{j}P(B|A_{j})*P(A_{j})}$$
+
diff --git a/90 Library/Math/Статистика/Кластерный анализ/Понятие однородности объектов.md b/90 Library/Math/Статистика/Кластерный анализ/Понятие однородности объектов.md
new file mode 100644
index 0000000..51fbb53
--- /dev/null
+++ b/90 Library/Math/Статистика/Кластерный анализ/Понятие однородности объектов.md
@@ -0,0 +1,23 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - cluster-analysis
+created: 2025-12-25
+updated: 2026-05-07
+title: Понятие Однородности Объектов
+---
+
+# Понятие Однородности Объектов
+Понятие однородности объектов определяется правилом вычисления величины $\rho_{ij}$, характеризующей:
+1) расстояние между $i-ым$ и $j-ым$ объектами $d(O_i,O_{ij})$
+2) степень сходства тех же объектов $r(O_{i},O_{j})$ (процентная величина)
+
+Свойства расстояний и степень сходства:
+1) Симметрия $$d(O_{i},O_{j}) = d(O_{j},O_{i})\ и\ r(O_{i},O_{j})=r(O_{j},O_{i})$$
+2) Максимальное сходство объекта с самим собой$$d(O_{i},O_{i})=0\ и\ r(O_{i},O_{i})=\max_{1\leq j \leq N}{r(O_{i},O_{j})}$$
+3) Монотонное убывание степени сходства по расстоянию $$d(O_{k},O_{j}) \geq d(O_{i},O_{j}) \to r(O_{k},O_{j}) \leq r(O_{i},O_{j})$$
+
diff --git a/90 Library/Math/Статистика/Кластерный анализ/Постановка задачи Кластерного анализа.md b/90 Library/Math/Статистика/Кластерный анализ/Постановка задачи Кластерного анализа.md
new file mode 100644
index 0000000..7adfa12
--- /dev/null
+++ b/90 Library/Math/Статистика/Кластерный анализ/Постановка задачи Кластерного анализа.md
@@ -0,0 +1,34 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - cluster-analysis
+created: 2025-12-25
+updated: 2026-05-07
+title: Постановка Задачи Кластерного Анализа
+---
+
+# Постановка Задачи Кластерного Анализа
+Необходимо разбить анализируемую совокупность объектов $O = \{O_{1}, \dots, O_{N}\}$, статистически представленную в виде таблицы:$$X_{N*k}=
+ \begin{pmatrix}
+ x_{11} & \dots & x_{1k} \\
+ \vdots & \ddots & \vdots \\
+ x_{N1} & \dots & x_{Nk}
+ \end{pmatrix}\ \text{или} \ \ \gamma_{N*N}= \begin{pmatrix}
+ \gamma_{11} & \dots & \gamma_{1N} \\
+ \vdots & \ddots & \vdots \\
+ \gamma_{N1} & \dots & \gamma_{NN}
+ \end{pmatrix}$$
+ на сравнительно небольшое число (не обязательно известное заранее) **однородных групп/классов**.
+
+## Методы решения
+- [[Агломеративные (иерархические) методы]] — объединяем объекты снизу вверх
+- [[Дивизимные методы]] — делим одну группу сверху вниз
+- [[Итерационная классификация. Метод K-средних (K-means)]] — итеративный метод с заранее заданным K
+- [[Расстояние между объектами]] — метрики близости между объектами
+- [[Расстояние между классами объектов]] — метрики близости между кластерами
+- [[Критерии определения оптимального числа классов]] — как выбрать K
+
diff --git a/90 Library/Math/Статистика/Кластерный анализ/Расстояние между классами объектов.md b/90 Library/Math/Статистика/Кластерный анализ/Расстояние между классами объектов.md
new file mode 100644
index 0000000..e19cb91
--- /dev/null
+++ b/90 Library/Math/Статистика/Кластерный анализ/Расстояние между классами объектов.md
@@ -0,0 +1,35 @@
+---
+status: stable
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - cluster-analysis
+created: 2026-01-03
+updated: 2026-05-07
+title: Расстояние Между Классами Объектов
+---
+
+# Расстояние Между Классами Объектов
+**Обозначения:**
+1) $\large S_{l}$ - $l-ый$ класс
+ $\large i$ - порядковый номер класса
+2) $\large n_{i}$ - число объектов $\large i-ого$ класса
+3) $\large \overline{X}(i)$ - вектор средних арифметических $i-го$ класса
+4) $\large \rho(S_{l},S_{m})$ - расстояние между $l-ым$ и $m-ым$ классами
+
+## Расстояния
+1) Принцип "ближайшего соседа" (расстояние Колмогорова при $\tau \to -\infty$)
+ $$p_{min}(S_{l},S_{m})=\min_{\begin{gather}O_{i}\in S_{l}\\O_{j}\in S_{m}\end{gather}}d(O_{i},O_{j})$$
+2) Принцип "дальнего соседа" (расстояние Колмогорова при $\tau \to +\infty$)
+ $$p_{max}(S_{l},S_{m})=\max_{\begin{gather}O_{i}\in S_{l}\\O_{j}\in S_{m}\end{gather}}d(O_{i},O_{j})$$
+3) Принцип "центров тяжести" или центров классов
+ $$p_{цт}(S_{l},S_{m})=d(\overline{X}(l),\overline{X}(m))$$
+4) Принцип "средней связи" (расстояние Колмогорова при $\large \tau = 1$)
+ $$\large \rho_{ср}(S_{l},S_{m})=\frac{1}{n_{l}*n_{m}}\sum\limits_{O_{i} \in S_{l}}\sum\limits_{O_{j} \in S_{m}} d(O_{i}, O_{j})$$
+5) Метод медианной связи
+ Расстояние между классом $S_{l}$ и новым классом, который получили в результате объединения двух классов $S_{m}\ и\ S_{q}$, определяется как расстояние от центра класса $S_{l}$ до середины отрезка, соединяющего центры классов $S_{m}\ и\ S_{q}$
+6) Обобщенное расстояние Колмогорова - *основное расстояние классов*
+ $$\rho_{\tau}^{K}(S_{l},S_{m})=\sqrt[\tau]{\frac{1}{n_{l}*n_{m}}\sum\limits_{O_{i} \in S_{l}}}\sum\limits_{O_{j} \in S_{m}} d^{\tau}(O_{i},O_{j})$$
+
diff --git a/90 Library/Math/Статистика/Кластерный анализ/Расстояние между объектами.md b/90 Library/Math/Статистика/Кластерный анализ/Расстояние между объектами.md
new file mode 100644
index 0000000..63594c9
--- /dev/null
+++ b/90 Library/Math/Статистика/Кластерный анализ/Расстояние между объектами.md
@@ -0,0 +1,43 @@
+---
+status: stable
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - cluster-analysis
+created: 2025-12-25
+updated: 2026-05-14
+title: Расстояние Между Объектами
+---
+
+# Расстояние Между Объектами
+## Теория
+1) Евклидово расстояние (Расстояние Минковского при $p=2$) (Теорема Пифагора)
+ $$d_{E}(O_{i},O_{j})=\sqrt{\sum\limits_{l=1}^{k}(x_{il}-x_{jl})^{2}}$$
+2) Взвешенное Евклидово расстояние $$d_{BE}(O_{i},O_{j})=\sqrt{\sum\limits_{l=1}^{k} \omega_{l} (x_{il}-x_{jl})^{2}},$$ $\text{где}\ \omega_{l} \in (0,1) - \text{весовой коэффициент}$
+3) Расстояние Минковского (общий случай для Евклидова и манхэттенского расстояний) $$d_{M}(O_{i},O_{j})=\sqrt[p]{\sum\limits_{l=1}^{k}|x_{il}-x_{jl}|^{p}}$$
+4) Манхэттенское расстояние (расстояние Минковского при $p=1$) $$d_{1}(O_{i},O_{j})={\sum\limits_{l=1}^{k}|x_{il}-x_{jl}|}$$
+5) Расстояние Хэмминга для бинарных векторов - число несовпадающих позиций: $$d_{H}(O_{i},O_{j})=\sum\limits_{l=1}^{k}[x_{il}\neq x_{jl}]$$
+6) Расстояние Чебышева (расстояние Минковского при $p \to \infty$) $$d_{CH}(O_{i},O_{j})={\max_{1 \leq l \leq k}|x_{il}-x_{jl}|}$$
+7) Обобщенное расстояние Махаланобиса $$d_{O}(O_{i},O_{j})=\sqrt{(O_{i}-O_{j})^{T}\Delta^{T}\Sigma^{-1}\Delta(O_{i}-O_{j})}$$
+
+> $\Sigma$ - ковариационная матрица генеральной совокупности, из которой извлечена выборка.
+>
+> $\Delta$ - некоторая симметричная неотрицательно-определенная матрица весовых коэффициентов признаков.
+
+8) Корреляционное расстояние
+ $$d_{corr}(O_{i},O_{j}) = 1 - r_{ij}$$
+
+> $r_{ij}$ - выборочный коэффициент корреляции между объектами $O_{i}, O_{j}$, соответствующие которым строки матрицы $X$ трактуются как *выборки*.
+
+## Примеры
+Для точек: $O_{1}(3;2),\ O_{2}(-4;6)$
+1) $d_{E}=\sqrt{(3 - (-4))^{2}+(2-6)^{2}}=\sqrt{49+16}=\sqrt{65}$
+2) -
+3) $p=3:\ d_{m}=\sqrt[3]{|3 - (-4)|^{3}+|2-6|^{3}} = \sqrt[3]{7^{3}+4^{3}}=\dots$
+4) центр классов => среднее арифметическое собираем в одну точку
+
+## Связанные заметки
+- [[Метрические алгоритмы]] — те же формулы (Евклид, Манхэттен, Минковский, Махаланобис) реализованы в sklearn; ML-нота даёт практическое применение
+- [[Итерационная классификация. Метод K-средних (K-means)]] — использует $\min_{1 \leq l \leq k} \rho_{il}$ для отнесения объекта к кластеру
diff --git a/90 Library/Math/Статистика/Кластерный анализ/Функционалы качества разбиения.md b/90 Library/Math/Статистика/Кластерный анализ/Функционалы качества разбиения.md
new file mode 100644
index 0000000..225463f
--- /dev/null
+++ b/90 Library/Math/Статистика/Кластерный анализ/Функционалы качества разбиения.md
@@ -0,0 +1,32 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - cluster-analysis
+created: 2026-01-18
+updated: 2026-05-07
+title: Функционалы Качества Разбиения
+---
+
+# Функционалы Качества Разбиения
+
+При использовании разных методов кластерного анализа для одной выборки могут получиться разные разбиения.
+Для выбора "лучшего" вводятся понятия **функционалов качества разбиения**.
+
+1) Сумма квадратов расстояний до центров классов:
+ $Q_{1}(S)=\sum\limits_{l=1}^{p}\sum\limits_{O_{i} \in S_{i}}d^{2} (O_{i},\overline{X}(l)) \to \min$,
+ где $p$ - число классов,
+ $S_{l}$ - $l$-ый класс в классификации $S$,
+ $\overline{X}(l)$ - центр класса $S_{l}$.
+2) Сумма квадратов попарных внутриклассовых расстояний между объектами:
+ $Q_{2}(S)=\sum\limits_{l=1}^{p} \sum\limits_{O_{i},O_{j} \in S_{l}} d^{2}(O_{i},O_{j}) \to \min$
+3) Суммарная внутриклассовая дисперсия:
+ $Q_{3}(S) = \sum\limits_{l=1}^{p}\sum\limits_{j=1}^{k}S_{j}^{2}(l) \to min$,
+ где $S_{j}^{2}(l)$ - оценка дисперсии $j$-го признака $l$-го класса.
+4) Отношение внутрикластерного и межкластерного расстояний:
+ $\frac{F_{0}}{F_{1}} \to \min$,
+ где $F_{0}$ - среднее внутрикластерное расстояние ($F_{0} \to \min$),
+ $F_{1}$ - среднее межкластерное расстояние ($F_{1} \to \max$)
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Факторный анализ/Алгоритм оценки главных компонент.md b/90 Library/Math/Статистика/Факторный анализ/Алгоритм оценки главных компонент.md
new file mode 100644
index 0000000..640d690
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Алгоритм оценки главных компонент.md
@@ -0,0 +1,38 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - factor-analysis
+created: 2026-01-20
+updated: 2026-05-07
+title: Алгоритм Оценки Главных Компонент
+---
+
+# Алгоритм Оценки Главных Компонент
+1) **Подготовка исходных данных**
+ - **Центрирование**:
+ $$x_{ij}^{*}=x_{ij}-\overline{x_{j}}$$
+ - **Нормирование**:
+ $$x_{ij}^{*}=\frac{x_{ij}-\overline{x_{j}}}{\sigma_{j}}$$
+1) **Вычисление выборочной матрицы**
+ Расчет выборочной ковариационной матрицы $\hat{\Sigma}$, которая описывает структуру связей между признаками.
+2) **Проверка значимости корреляционной матрицы (Критерий Бартлетта)**
+ Перед поиском компонент необходимо убедиться, что признаки вообще коррелированы между собой.
+ - **Гипотеза $H_{0}$**: Матрица единична $(R=E)$, т.е. признаки не коррелированы.
+ - **Статистика критерия**: $\chi^{2}=-[n-1-\frac{2k+5}{6}]\ln|\hat{R}|$
+ - Если расчетное значение больше критического, то проведение МГК считается целесообразным.
+1) **Расчет СЧ и СВ**
+2) **Определение количества ГК**
+ Из $k$ возможных компонент отбирают $m$ наиболее информативных.
+ - **Критерий Кайзера**: $\lambda_{s} > 1$
+ - **Доля дисперсии**: Суммарная дисперсия должна составлять $70-80\%$
+ - **Каменистая Осыпь**: Визуальный анализ графика СЧ.
+1) **Оценка матрицы факторных нагрузок**
+ $$A = U^{T}\lambda^{\frac{1}{2}}$$
+2) **Расчет индивидуальных значений**
+ $$\hat{Z}=X\hat{U}$$
+3) **Интерпретация результатов**
+ На основе наиболее весомых нагрузок в матрице $A$ каждой ГК присваивается содержательное название.
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Факторный анализ/Алгоритм оценки главных факторов. Матрица индивидуальных значений ГФ.md b/90 Library/Math/Статистика/Факторный анализ/Алгоритм оценки главных факторов. Матрица индивидуальных значений ГФ.md
new file mode 100644
index 0000000..e6c9541
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Алгоритм оценки главных факторов. Матрица индивидуальных значений ГФ.md
@@ -0,0 +1,65 @@
+---
+status: processing
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - factor-analysis
+created: 2026-01-20
+updated: 2026-05-07
+title: Алгоритм Оценки Главных Факторов. Матрица Индивидуальных Значений ГФ
+---
+
+# Алгоритм Оценки Главных Факторов. Матрица Индивидуальных Значений ГФ
+
+## Оценка ГФ
+Оценка корреляционной матрицы исходных признаков:
+$$x^{*}=(x_{1}^{*},\dots,x_{k}^{*})^{T} \in N(0,\Sigma_{x^{*}})\ \ \ \Sigma_{x^{*}}=R$$
+$$X = \begin{pmatrix} x_{11} & \dots & x_{1n} \\ \vdots & \ddots & \vdots \\ x_{k1} & \dots & x_{kn} \end{pmatrix}$$ - матрица "свойство-объект" (центрировано-нормированная)
+
+Оценка матрицы парных коэффициентов корреляции: $\hat{R} = \frac{1}{n}XX^{T}$
+
+Проверка гипотезы о незначимости корреляционной матрицы (критерий Уилкса)
+
+$$H_{0}: R=E_{k}$$
+$$H_{1}: R \neq E_{k}$$
+$$\chi^{2}=-(n-\frac{1}{6}(2k+5))\ln|\hat{R}| \in \chi^{2}(v)$$
+$$v = \frac{k(k-1)}{2}$$
+**Метод оценки общности**: $\hat{h}^{2}_{i}=R^{2}_{x_{i}/(\dots)}$
+
+**Критерий Лоули:**
+$H_{0}$: $m$ ГФ достаточно
+$H_{1}:\ m$ ГФ не достаточно
+$m < \frac{k-1}{2}$
+
+$$\chi^{2}=(n-1)\ln{\frac{|AA^{T}|}{|\hat{R}|}}\in \chi^{2}(v)$$
+$$v = \frac{1}{2}((k-m)^{2}-k-m)$$
+**Критерий Кайзера**: отбор факторов $СЧ>1$
+**Критерий каменистой осыпи**: число факторов выбирается по точке излома, после которой СЧ убывают медленно или почти линейно.
+
+## Матрица Индивидуальных Значений ГФ
+$$x_{ij}=a_{i1}f_{1j}+\dots+a_{im}f_{mj}+d_{i}v_{ij},\ \ i=\overline{1,k}, \ \ j=\overline{1,n}$$
+$X = Af+Dv$
+
+$f = \pmatrix{f_{11} & \dots & f_{1n} \\ \vdots & \ddots & \vdots \\ f_{m1} & \dots & f_{mn}}$
+
+$v = \pmatrix{v_{11} & \dots & v_{1n} \\ \vdots \\ v_{k1} & \dots & v_{kn}}$
+
+$f_{j} = \pmatrix{f_{1j}\\f_{2j}\\\vdots\\f_{mj}}$ - индивидуальные значения ГФ для $j$-го объекта
+$x_{j}=\pmatrix{x_{1j}\\\vdots\\x_{kj}}$ - наблюдаемое значение признаков для $j$-го объекта
+
+## Оценка Индивидуальных Значений ГФ. Метод Бартлетта
+Представим модель линейной множественной регрессии:
+$x_{j}=z\beta_{j}+\epsilon_{j}$ - ЛММР, $j=\overline{1,n}$
+
+$z = \pmatrix{z_{11} & \dots & z_{1m} \\ \vdots \\ z_{k1} & \dots & z_{km}}=A$;
+
+$\beta_{j} = \pmatrix{\beta_{1j}\\\vdots\\\beta_{mj}}=f_{j};$
+
+$\epsilon_{j}=\pmatrix{\epsilon_{1j}\\\vdots\\\epsilon_{kj}}$
+
+$\Sigma_{\epsilon_{j}}=M(\epsilon_{j}*\epsilon_{j}^{T})=D^{2}$
+$\hat{\beta_{j}}=(z^{T}(D^{2})^{-1}z)^{-1}(z^{T}(D^{2})^{-1}x_{j});$
+$b_{омнк} = (X^{T}\Sigma^{-1}X)^{-1}(X^{T}\Sigma^{-1}Y)$
+$\hat{f}_{j}=(A^{T}(D^{2})^{-1}A)^{-1}(A^{T}(D^{2})^{-1}X_{j})$
diff --git a/90 Library/Math/Статистика/Факторный анализ/Вращение факторов.md b/90 Library/Math/Статистика/Факторный анализ/Вращение факторов.md
new file mode 100644
index 0000000..f4c0e90
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Вращение факторов.md
@@ -0,0 +1,59 @@
+---
+status: seed
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - factor-analysis
+created: 2026-01-21
+updated: 2026-05-07
+title: Вращение Факторов
+---
+
+# Вращение Факторов
+
+## Задача Вращения Общих Факторов
+Построение простой структуры, т.е. такого расположения признаков, при котором они находятся вблизи от координатных осей или в непосредственной близости к началу координат.
+Вращение не изменяет общностей и суммарной объясненной дисперсии, а служит исключительно для повышения интерпретации факторов.
+
+## Пространство Общих Факторов
+**Пространство общих факторов** - пространство, координатами которого являются нагрузки признака на общие факторы.
+$d_{l}^{оф}=\sqrt{\sum\limits_{r=1}^{m}a_{ir}^{\alpha}}=h_{i}$ - длина вектора, соответствующего $i$-му, признаку в пространстве общих факторов.
+$\rho(x_{i}, x_{l})^{оф}=\cos(\phi_{il}^{оф})=\frac{1}{h_{i}h_{l}}\sum\limits_{r=1}^{m}a_{ir}a_{lr}$ ![[Pasted image 20260121124001.png|300]]
+
+## Полное Факторное Пространство
+Включает общие и характерные факторы
+$d_{i}^{П}=\sqrt{\sum\limits_{r=1}^{m}a_{ir}^{2}+d_{i}^{2}}=1$ - длина вектора, соответствующего $i$-ому признаку, в полном факторном пространстве ($=1$ т.к. это дисперсия, а признаки были нормированы)
+
+$\rho(x_{i},x_{l})^{П}=\cos(\phi_{il}^{П})=\sum\limits_{r=1}^{m}a_{ir}a_{lr}$
+
+## Вращение Факторов
+Осуществляется умножением матрицы факторных нагрузок $A$ на матрицу преобразования $T$: $A^{*}=AT$
+
+### Ортогональное
+- все факторы поворачиваются на **один и тот же** угол
+- факторы остаются некоррелированными
+Матрица $T$ - ортогональна: $T^{T}T=E$
+Примеры: варимакс, квартимакс, биквартимакс, эквимакс
+
+![[Pasted image 20260121124452.png|300]]
+$\vec{e_{1}}=\pmatrix{1\\0}$, $\vec(e)_{2}=\pmatrix{0\\1}$ - единичные вектора в исходной системе координат.
+$\vec{e}_{1}^{'}=\pmatrix{\cos{\alpha}\\-\sin{\alpha}}$, $\vec{e}_{2}^{'}=\pmatrix{\sin{\alpha}\\\cos{\alpha}}$
+$T = \pmatrix{\cos{\alpha} & \sin{\alpha}\\-\sin{\alpha} & \cos{\alpha}}$
+
+### Косоугольное
+- факторы могут поворачиваться на **разные** углы
+- между факторами возникают корреляции
+Используется неортогональные матрицы преобразования
+Примеры: облимакс, квартимин, облимин
+
+### Варимакс
+**Цель**: максимизировать дисперсии квадратов факторных нагрузок **по переменным для каждого фактора**, что приводит к простой структуре.
+Чаще используется **варимакс нормализованных ф.н.**
+$$V_{r}=\frac{k\sum\limits_{i=1}^{k}a_{ir}^{4}-(\sum\limits_{i=1}^{k}a_{ir}^{2})^{2}}{k^{2}} \to \max,\ r=\overline{1,m}$$
+### Квартимакс
+**Цель**: максимизировать дисперсию квадратов нагрузок по **факторам для каждой переменной**, т.е. надо *связать каждый признак с минимальным числом факторов*.
+$$q = \sum\limits_{i=1}^{k}\frac{\sum\limits_{r=1}^{m}a_{ir}^{4}-(\sum\limits_{r=1}^{m}a_{ir}^{2})^{2}}{m^{2}} \to \max$$
+работает по строкам матрицы нагрузок.
+Стремление к тому, чтобы каждый признак имел одну большую нагрузку, и минимум остальных.
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Факторный анализ/Матрица индивидуальных значений.md b/90 Library/Math/Статистика/Факторный анализ/Матрица индивидуальных значений.md
new file mode 100644
index 0000000..16dda68
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Матрица индивидуальных значений.md
@@ -0,0 +1,21 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - factor-analysis
+created: 2026-01-20
+updated: 2026-05-07
+title: Матрица Индивидуальных Значений
+---
+
+# Матрица Индивидуальных Значений
+## Определение
+Матрица индивидуальных значений $(Z)$ - матрица размера $N * m$, где $m$ - число выделенных ГК, элементами которой являются значения ГК для каждого объекта выборки.
+$$\hat{Z}=X^{*}*\hat{U}$$
+## Свойства Значений В Матрице
+- **Мат. ожидание**: среднее значение по каждому столбцу равно нулю: $\overline{z_{j}}=0$
+- **Дисперсия**: дисперсия равна собственному числу $D(Z_{j})=\lambda_{j}$
+- **Некоррелированность**: любые два столбца имеют нулевую ковариацию $cov(Z_{j},Z_{l})=0$
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Факторный анализ/Матрица нагрузок и её свойства.md b/90 Library/Math/Статистика/Факторный анализ/Матрица нагрузок и её свойства.md
new file mode 100644
index 0000000..d380674
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Матрица нагрузок и её свойства.md
@@ -0,0 +1,40 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - statistics
+ - factor-analysis
+created: 2026-01-20
+updated: 2026-05-07
+title: Матрица Нагрузок И Её Свойства
+---
+
+# Матрица Нагрузок И Её Свойства
+
+## Определение
+Матрица нагрузок $A$ - это матрица, эл-тами которой являются коэффициенты корреляции между исходными признаками $X_{i}$ и ГК $Z_{j}$
+
+Элемент матрицы $a_{ij}$ показывается тесноту линейной связи $i$-го признака с $j$-ой компонентой.
+В случае использования центрированно-нормированных признаков, расчет ведется по формуле: $a_{ij}=u_{ij}\sqrt{\lambda_{j}}$, где $u_{ij}$ - $i$-ая координата $j$-го СВ, а $\lambda_j$ - $j$-ое СЧ ковариационной матрицы.
+
+## Свойства Матрицы Нагрузок
+- **Свойство строк (Общность)**:
+ Сумма квадратов нагрузок в $i$-ой строке по всем $k$ компонентам равна дисперсии соответствующего исходного признака. Для нормированных признаков эта сумма равна 1:
+ $$\sum\limits_{j=1}^{k}a_{ij}^{2}=D(X_{i})=1$$
+- **Свойство столбцов (Вклад компоненты)**:
+ Сумма квадратов нагрузок в $j$-ом столбце равна СЧ $\lambda_{j}$, которое является дисперсией $j$-й ГК:
+ $$\sum\limits_{i=1}^{k}a_{ij}^{2}=\lambda_{i}=D(Z_{i})$$
+- **Ортогональность**:
+ Сумма произведений нагрузок любых двух различных столбцов равна нулю, что подтверждает некоррелированность ГК:
+ $$\sum\limits_{i=1}^{k}a_{ij}a_{il}=0,\ i \neq l$$
+- **Воспроизведение корреляций**:
+ Сумма произведений нагрузок $i$-го и $l$-го признаков по всем компонентам равна коэффициенту корреляции между этими признаками ([[Фундаментальная теорема факторного анализа]]):
+ $$\sum\limits_{j=1}^{k}a_{ij}a_{li}=r(X_{i}mX_{l})$$
+## Интерпретация
+- **Вес нагрузки**:
+ Чем выше абсолютное значение $|a_{ij}|$, тем сильнее данный признак определяет содержание компоненты.
+- **Знак нагрузки**:
+ Указывает направления связи (прямая или обратная)
+- **Цель вращения**:
+ Если нагрузки распределены "размазано" (много средних значений), то применяется вращение, чтобы получить **простую структуру**, где нагрузки близки к 1 или 0.
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Факторный анализ/Метод главных факторов. Методы оценки общности.md b/90 Library/Math/Статистика/Факторный анализ/Метод главных факторов. Методы оценки общности.md
new file mode 100644
index 0000000..498cd93
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Метод главных факторов. Методы оценки общности.md
@@ -0,0 +1,36 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - factor-analysis
+created: 2026-01-20
+updated: 2026-05-07
+title: Метод Главных Факторов. Методы Оценки Общности
+---
+
+# Метод Главных Факторов. Методы Оценки Общности
+Фундаментальная теорема факторного анализа:
+$R = R_{n}+D^{2}$
+Посчитав матрицу $D$ равной нулю, для оценки матрицы $A$ воспользуемся моделью ГК.
+
+Под МГФ понимают способ расчет, принятый в методе ГК, но примененный к $R_{h}$.
+
+Таким образом, нужна оценка общностей $\rho_{x_{i}/(\dots)}^{2} \leq h_{i}^{2} \leq r_{i}^{2}$
+1) $$\hat{h_{i}^{2}}=R^{2}_{x_{i}/(\dots)}=1-\frac{|\hat{R}|}{\hat{R_{ii}}}$$ - метод множественной корреляции
+2) $$\hat{h^{2}_{i}}=\max{|r_{ie}|};\ \ l=\overline{1,k}\ \ l \neq i$$ - max. корреляция
+3) $$\hat{h^{2}_{i}}=\frac{1}{k-1}\sum\limits^{k}_{\begin{align} l=1 \\ l \neq i \end{align}}|r_{il}|$$ - средняя корреляция
+4) $$\hat{h}^{2}_{i}=\frac{|r_{il}|*|r_{is}|}{|r_{ls}|}$$ - метод парных корреляций
+5) $$\hat{h}_{i}^{2}=\frac{(\sum\limits_{l=1}^{k}r_{il})^{2}}{\sum\limits_{l=1}^{k}\sum\limits_{s=1}^{k}r_{ls}}$$ - метод суммы корреляций
+
+---
+
+Методы оценки общностей нужны, чтобы понять, какую часть дисперсии каждого признака можно объяснить общими факторами.
+**Оценка общности** - множественные коэффициенты корреляции одной переменной на другие, т.е. строим уравнение регрессии и берем соответственные коэффициенты детерминации.
+**Метод оценки общностей**: явно вычислить множественную корреляцию между признаками, воспользовавшись уравнением регрессии, т.е. общности взять, как множественный коэффициент корреляции.
+
+**Требование**: каждая следующая ось ориентированная по направлению $max$ дисперсии в пространстве, ортогональном предыдущей ГК.
+
+---
diff --git a/90 Library/Math/Статистика/Факторный анализ/Определение первой и последующих компонент.md b/90 Library/Math/Статистика/Факторный анализ/Определение первой и последующих компонент.md
new file mode 100644
index 0000000..47fe6ed
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Определение первой и последующих компонент.md
@@ -0,0 +1,24 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - factor-analysis
+created: 2026-01-20
+updated: 2026-05-07
+title: Определение И Процедура Построения Первой И Последующих Компонент
+---
+
+# Определение И Процедура Построения Первой И Последующих Компонент
+## Определения Главных Компонент (ГК)
+- Первая ГК $(Z_{1})$: Это такая линейная комбинация исходных признаков $X=(X_{1},X_{2},\dots, X_{k})^{T}$, которая среди всех прочих комбинаций обладает наибольшей дисперсией.
+- $s$-ая ГК ($$$Z_{s}$): Это линейная комбинация исходных признаков, которая не коррелирована с $(s-1)$ предыдущими главными компонентами и среди всех прочих лин. комбинаций обладает наибольшей дисперсией.
+
+## Оптимизационная Задача Для Построения 1 ГК
+Математически построение первой ГК сводится к поиску вектора весовых коэффициентов $U = (u_{11},u_{12},\dots,u_{1k})^{T}$.
+- **Целевая функция**:
+ Максимизация дисперсии компоненты $D(Z_{1})=U_{1}^{T}\Sigma_{X}U_{1} \to \max$, $\Sigma_{X}$ - ковариационная матрица исх. признаков.
+- **Ограничение**: Вектор коэффициентов должен быть нормирован: $U_{1}^{T}U_{1}=1$
+
diff --git a/90 Library/Math/Статистика/Факторный анализ/Основные числовые характеристики главных компонент.md b/90 Library/Math/Статистика/Факторный анализ/Основные числовые характеристики главных компонент.md
new file mode 100644
index 0000000..7585244
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Основные числовые характеристики главных компонент.md
@@ -0,0 +1,34 @@
+---
+status: stable
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - factor-analysis
+created: 2026-01-20
+updated: 2026-05-07
+title: Основные Числовые Характеристики Главных Компонент
+---
+
+# Основные Числовые Характеристики Главных Компонент
+1) **Математическое ожидание**
+ Если исх. признаки $X_{j}$ центрированы (т.е. $E[X_{j}]=0$), то математическое ожидание каждой ГК также равно нулю:
+ $$E[Z_{s}]=0$$
+2) **Дисперсия**
+ Дисперсия каждой ГК равна соотв. СЧ $\lambda_{s}$ ковариационной (корреляционной) матрицы исх. признаков:
+ $$D(Z_{s})=\lambda_{s}$$
+3) **Ковариация**
+ ГК являются некоррелированными между собой (взаимно ортогональны).
+ Ковариация между любыми компонентами равна нулю:
+ $$cov(Z_{s},Z_{l})=0,\ s \neq l$$
+4) **Суммарная дисперсия**
+ Сумма дисперсий всех главных компонент равна сумме дисперсий исх. признаков (следу ковар. матрицы)
+ $$\sum\limits_{s=1}^{k}D(Z_{s})=\sum\limits_{j=1}^{k}D(X_{j})=\sum\limits_{s=1}^{k}\lambda_{s}$$
+5) **Показатель информативности**
+ Для оценки того, какую часть информации описывает конкретная компонента (или набор из $m$ первых компонент), используется:
+ - Удельный вес дисперсии: $\large d_{s}=\frac{\lambda_{s}}{\Sigma \lambda_{s}}$
+ - Кумулятивная доля дисперсии: $\large D_{m}=\frac{\sum_{s=1}^{m} \lambda_{s}}{\sum_{j=1}^{k}\lambda_{j}}$
+1) **Корреляция с исх. признаками (факторные нагрузки)**
+ Коэфф. корреляции между исх. признаком $X_{i}$ и ГК $Z_{j}$ рассчитываются через элементы СВ $u_{ij}$ и СЧ:
+ $$r(X_{i},Z_{j})=\frac{u_{ij}\sqrt{\lambda_{j}}}{\sigma_{i}}$$
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Факторный анализ/Постановка задачи снижения размерности признакового пространства.md b/90 Library/Math/Статистика/Факторный анализ/Постановка задачи снижения размерности признакового пространства.md
new file mode 100644
index 0000000..6e9b60b
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Постановка задачи снижения размерности признакового пространства.md
@@ -0,0 +1,35 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - factor-analysis
+created: 2026-01-18
+updated: 2026-05-07
+title: Постановка Задачи Снижения Размерности Признакового Пространства
+---
+
+# Постановка Задачи Снижения Размерности Признакового Пространства
+Задача снижения размерности признакового пространства заключается в определении такого набора признаков $Z$, найденного в классе допустимых преобразований исходных показателей $F(x)$, чтобы максимизировать или минимизировать критерий информативности:$$Im(Z(x))=extr_{Z \in F(x)}\{Im(Z(x))\}$$
+
+---
+
+Исходные система признаков: $x = (x_{1},x_{2},\dots,x_{k})^{T}$
+Признаки центрированы: $M_{x_{j}}=0,\ \forall j=\overline{1,k}$
+Новая система признаков: $z=(z_{1},z_{2},\dots,z_{m})^{T},\ m << k$
+Критерий информативности: $Im(Z(x)) = extr_{z \in F(x)}\{Im(Z(x))\}$
+
+$$Im(Z(x)) = \frac{D_{z_{1}}+\dots+D_{z_{m}}}{D_{x_{1}}+\dots+D_{x_{k}}}$$ - отношение суммарной дисперсии новой системы признаков к суммарной дисперсии исходной системы.
+
+> [!warning] Критерий
+> Необходимо отобрать столько признаков, чтобы суммарная вариация (дисперсия) исходных признаков в больше степени объяснялась дисперсией вновь введенных признаков.
+
+**Замечание**:
+1) В случае нормирования признаков, $\text{ковариационная матрица признаков}\ x^{*}==\text{корелляционной матрице исх.признаков}$ $\Sigma_{x^{*}}=R_{x}$
+2) Если признаки имеют разный масштаб, то необходимо провести их нормирование, т.е. перейти $$X_{j}^{*}=\frac{X_{j}}{\sqrt{DX_{j}}},\ DX_{j}^{*}=1,\ \forall j = \overline{1,k}$$
+
+## Связанные заметки
+- [[Линейные модели]] — снижение размерности (PCA) используется как предобработка перед линейными моделями в ML; матрица X в обоих случаях одинакова
+- [[Метрические алгоритмы]] — kNN страдает от проклятия размерности; снижение размерности напрямую улучшает качество kNN
diff --git a/90 Library/Math/Статистика/Факторный анализ/Процедура построения первой и остальных главных компонент.md b/90 Library/Math/Статистика/Факторный анализ/Процедура построения первой и остальных главных компонент.md
new file mode 100644
index 0000000..c087ff0
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Процедура построения первой и остальных главных компонент.md
@@ -0,0 +1,31 @@
+---
+status: stable
+type: concept
+tags:
+ - mephi
+ - math
+ - statistics
+ - factor-analysis
+created: 2026-01-20
+updated: 2026-05-07
+title: Процедура Построения Первой И Остальных Главных Компонент
+---
+
+# Процедура Построения Первой И Остальных Главных Компонент
+## Процедура Построения Первой ГК
+Используется метод множителей Лагранжа:
+1) **Ф-я Лагранжа**:
+ $\phi(U,\lambda)=U_{1}^{T}\Sigma_{X}U_{1}-\lambda(U_{1}^{T}U_{1}-1)\to\max$.
+2) **Нахождение производных**:
+ Дифференцирование по $U$ приводит к: $(\Sigma_{X}-\lambda E)U_{1}=0$
+3) **Составление характеристического уравнения**:
+ Чтобы система имела ненулевое решение, определитель матрицы должен быть равен нулю.
+4) **Поиск собственных чисел**:
+ Решение дает $k$ вещественных неотрицательных корней $\lambda_{1},\lambda_{2},\dots,\lambda_{k}$, которые являются Собственными Числами матрицы $\Sigma_{X}$
+5) **Выбор максимума**:
+ Т.к. дисперсия первой компоненты $D(Z_{1})=\lambda_{1}$, то в качестве первой ГК выбирается решение, соответствующее наибольшему Собственному Числу.
+
+## Построение Последующих Компонент
+- Каждая следующая компонента $Z_{s}$ соответствует следующему по величене СЧ $\lambda_{s}$ из упорядоченного по убыванию ряда СЧ.
+- Коэффициенты $U_{s}$ для каждой компоненты являются Собственными Векторами матрицы $\Sigma_{X}$, соответствующими найденным числам $\lambda_{s}$
+- Суммарная дисперсия всех ГК совпадает с суммарной дисперсией исх. признаков.
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Факторный анализ/Разложение дисперсии в факторном анализе. Разложение характерности в факторном анализе.md b/90 Library/Math/Статистика/Факторный анализ/Разложение дисперсии в факторном анализе. Разложение характерности в факторном анализе.md
new file mode 100644
index 0000000..6f61776
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Разложение дисперсии в факторном анализе. Разложение характерности в факторном анализе.md
@@ -0,0 +1,32 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - factor-analysis
+created: 2026-01-20
+updated: 2026-05-07
+title: Разложение Дисперсии В Факторном Анализе. Разложение Характерности В Факторном Анализе
+---
+
+# Разложение Дисперсии В Факторном Анализе. Разложение Характерности В Факторном Анализе
+## Разложение Дисперсии Признака
+В модели ФА каждый признак $X_{i}$ представляется как:
+$$X_{i}=\sum\limits_{j=1}^{m}a_{ij}F_{j}+d_{i}U_{i}$$
+Поскольку общие факторы $F_{j}$ и характерный фактор $U_{i}$ по предположению модели являются некоррелированными и имеют единичные дисперсии, общая дисперсия $D(X_{i})$ раскладывается на две основным части:$$1 = \sum\limits_{j=1}^{m}a_{ij}^{2}+d_{i}^{2}$$ или $$1 = h_{i}^{2}+d_{i}^{2}$$
+Где:
+- $h_{i}^{2}$ - **общность**: сумма квадратов факторных нагрузок признака по всем общим факторам. Она показывает долю дисперсии $i$-го признака, которая объясняется влиянием общих для всей совокупности факторов.
+- $d_{i}^{2}$ - **характерность**: доля дисперсии признака, которая не может быть объяснена через общие факторы. Она отражает индивидуальность конкретной переменной.
+
+## Разложение Характерности
+Сама по себе характерность не является однородной. $$d_{i}^{2}=s_{i}^{2}+e_{i}^{2}$$
+Где:
+- $s_{i}^{2}$ - специфичность.
+ Это часть дисперсии, которая обусловлена особенностями, присущими именно данному признаку.
+- $e_{i}^{2}$ - ошибка
+ Случайная составляющая дисперсии, связанная с погрешностями измерения, неточностью сбора стат. данных.
+
+> [!tip] Замечание
+> Сумма общности и специфичности $(h_{i}^{2} + s_{i}^{2})$ называется **надежностью** признака. Чем выше надежность, тем меньше в данных случайного шума.
diff --git a/90 Library/Math/Статистика/Факторный анализ/Требования к факторам. Линейная модель факторного анализа.md b/90 Library/Math/Статистика/Факторный анализ/Требования к факторам. Линейная модель факторного анализа.md
new file mode 100644
index 0000000..bd4826f
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Требования к факторам. Линейная модель факторного анализа.md
@@ -0,0 +1,64 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - factor-analysis
+ - linear-models
+created: 2026-01-20
+updated: 2026-05-07
+title: Требования К Факторам. Линейная Модель Факторного Анализа
+---
+
+# Требования К Факторам. Линейная Модель Факторного Анализа
+## Требования К Факторам
+Общие и характерные факторы центрировано-нормированные:
+$$\begin{align} M(f_{r}) = 0 \\ M(v_{i})=0 \\ \\ D(f_{r})=1 \\ D(v_{i})=1\end{align}$$ Естественные требования:
+$M(v_{i}*v_{s})=\rho(v_{i},v_{s})=0,\ \ \ \forall i,s=\overline{1...k}\ \ \ i \neq k$
+$M(f_{r}*v_{i})=\rho(f_{r},v_{i})=0\ \ \ r=\overline{1 \dots m}\ \ \ i=\overline{1 \dots k}$
+
+## Линейная Модель
+$$x_{ij}=\sum\limits_{r=1}^{m}a_{jr}f_{ir}+d_{j}u_{ij}$$
+Где:
+- $x_{ij}$ - **значение** $j$-го признака для $i$-го объекта. ($i=1,\dots,N;\ j=1,\dots,k$)
+- $a_{ir}$ - **факторная нагрузка** $j$-го признака по $r$-ому **общему** фактору. Показывает степень влияния фактора на признак.
+- $f_{ir}$ - **индивидуальное значение (score)** $r$-го общего фактора для $i$-го объекта. Насколько сильно данный фактор проявлен у конкретного объекта.
+- $u_{ij}$ - значение **характерного** фактора для $i$-го объекта по $j$-му признаку.
+- $d_{j}$ - **нагрузка** характерного фактора.
+
+## Матричная Форма
+$$A_{k*m} = \begin{pmatrix}
+a_{11} & a_{12} & \dots & a_{1m} \\
+a_{21} & a_{22} & \dots & a_{2m} \\
+\vdots & \vdots & \ddots & \vdots \\
+a_{k1} & a_{k2} & \dots & a_{km}
+ \end{pmatrix}$$
+ - матрица факторных нагрузок (весовых коэффициентов при общих факторах)
+ $$D_{k*k} = \begin{pmatrix}
+ d_{1} & 0 & \dots & 0 \\
+ 0 & d_{2} & \dots & 0 \\
+ \vdots & \vdots & \ddots & \vdots \\
+ 0 & 0 & \dots & d_{k}
+ \end{pmatrix}$$
+ - матрица характерностей (матрица весовых коэффициентов при характерных факторах)
+ $$M_{k*(m+k)} = (A:D)$$
+ - матрица весовых коэффициентов при факторах
+ $$f_{(m+k) * n}^{*}= \begin{pmatrix} f \\ v \end{pmatrix}$$
+ - вектор общих и характерных факторов
+
+$$x = Af + Dv = Mf^{*}$$
+- модель ФА в матричной форме
+$$f_{m*n} = \begin{pmatrix}
+f_{11} & \dots & f_{1n} \\
+\vdots & \ddots & \vdots \\
+f_{m1} & \dots & f_{mn}
+\end{pmatrix}$$
+- матрица индивидуальных значений общих факторов
+$$v_{k*n} = \begin{pmatrix}
+v_{11} & \dots & v_{1n} \\
+\vdots & \ddots & \vdots \\
+v_{m1} & \dots & v_{kn}
+\end{pmatrix}$$
+- матрица индивидуальных значений характерных факторов
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Факторный анализ/ФА - вращение.md b/90 Library/Math/Статистика/Факторный анализ/ФА - вращение.md
new file mode 100644
index 0000000..057f810
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/ФА - вращение.md
@@ -0,0 +1,25 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - statistics
+ - factor-analysis
+created: 2026-02-13
+updated: 2026-05-07
+title: ФА - Вращение
+---
+
+
+---
+type: concept
+status: stable
+tags:
+ - math
+ - ml
+ - mephi
+---
+
+# ФА - Вращение
+
+Вращение в Факторном анализе используется для улучшения интепретируемости общих факторов.
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Факторный анализ/ФА - модель, цель, сущность.md b/90 Library/Math/Статистика/Факторный анализ/ФА - модель, цель, сущность.md
new file mode 100644
index 0000000..624aa30
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/ФА - модель, цель, сущность.md
@@ -0,0 +1,59 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - ml
+ - mephi
+ - statistics
+ - factor-analysis
+created: 2026-02-13
+updated: 2026-05-07
+title: ФА - Модель, Цель, Сущность
+---
+
+# ФА - Модель, Цель, Сущность
+**Факторы** - гипотетические (латентные), непосредственно не измеряемые переменные, которые в той или иной мере связаны с измеряемыми характеристиками (исходными признаками). Основной идеей ФА выступает предположение, что структура связей между признаками может быть объяснена тем, что эти признаки зависят от **меньшего** количества другие, **общих** факторов.
+Что позволяет снизить размерность признакового пространства от количества исходных признаков, до меньшего количества общих факторов.
+
+**Цель:** найти такие факторы или такую матрицу $R_h$, чтобы минимизировать $D^2$.
+
+## Линейная Модель ФА
+
+Каждый исходный признак ($x_{j}$), который, является **центрированно-нормированным**, представляется в виде линейной комбинации:
+
+- $m$ - общих факторов
+- **одного** характерного фактора - $v_i$
+
+Модель описывается уравнением: $x_ij = a_{i1}f_{1j}+a_{i2}f_{2j}+\dots+a_{im}f_mj+d_iv_{ij}$
+
+$f_{rj}$ - значение $r$-го общего фактора для $j$-го объекта
+
+$v_{ij}$ - значение $i$-го характерного фактора для $j$-го объекта
+
+$x_{ij}$ - значение $i$-го исходного признака на $j$-ом объекте
+
+**Центрировано-нормированные признаки**
+
+- **Центрированность** означает, что мат.ожидание каждого признака равна нулю ($M(x_i) = 0$)
+- **Нормированность** означает, что дисперсия каждого признака равна единице ($D(x_i) = 1$)
+
+## Дисперсии
+
+В отличии от Метода Главных Компонент (МГК), Факторный Анализ предполагает, что $m$ общими факторами _нельзя_ полностью объяснить вариацию исходных признаков. Дисперсия исходного признака $x_i$ раскладывается на две компоненты:
+
+1. Общность - ($h_i^2$): доля дисперсии $i$-ого признака, объясняемая $m$ общими факторами: $h_i^2 = \sum_{r=1}^{m} a_{ir}^{2}$
+2. Характерность - ($d_i^2$): вклад в дисперсию $i$-го признака, характерного фактора $v_i$ (который нельзя объяснить _общими_ факторами)
+
+Тогда, для центрировано-нормированных признаков, дисперсия которых равна **единице** справедливо: $h_i^2 + d_i^2 = 1$
+
+## Фундаментальная Теорема ФА
+
+Выражение, позволяющее воспроизвести корреляционную матрицу исходных признаков $R$ через матрицу факторного отображения $A$ и матрицу характерностей $D^2$:
+
+$R = AA^{T} + D^2$,
+
+где $D^2$ - диагональная матрица с характерностями на главной диагонали.
+
+## Связанные заметки
+- [[Факторный анализ]]
diff --git a/90 Library/Math/Статистика/Факторный анализ/Факторное отображение. Факторная структура.md b/90 Library/Math/Статистика/Факторный анализ/Факторное отображение. Факторная структура.md
new file mode 100644
index 0000000..7e9d0a6
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Факторное отображение. Факторная структура.md
@@ -0,0 +1,29 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - factor-analysis
+created: 2026-01-20
+updated: 2026-05-07
+title: Факторное Отображение. Факторная Структура
+---
+
+# Факторное Отображение. Факторная Структура
+## Факторное Отображение
+**Матрица факторного отображения** - это матрица коэффициентов $A = {a_{ij}}$ в уравнениях лин. модели ФА:$$X_{i}=a_{i1}F_{1}+\dots+a_{im}F_{m}+d_{i}U_{i}$$
+- **Сущность**: Элементы этой матрицы ($a_{ij}$) называются **факторными нагрузками**. Они показывают вклад каждого фактора в формирование значения конкретного признака.
+- **Геометрический смысл**: Координаты вектора исходных признаков в базисе общих факторов.
+- **Применение**: Используется для понимания того, как факторы "строят" каждый признак.
+
+## Факторная Структура
+**Матрица факторной структуры** - это матрица, элементами которой являются **коэффициенты корреляции** между исходными признаками $(X_{i})$ и общими факторами $(F_{j})$.
+- **Сущность**: Показывает чистую статистическую связь между признаком и фактором.
+- **Применение**: Используется для содержательной интерпретации факторов. Чем выше корреляция признака с фактором, тем сильнее этот признак определяет смысл фактора.
+
+> [!info] Связь структуры и отображения
+> Матрицы *тождественно равны*, если факторы некоррелированы (ортогональны). Если было проведено косоугольное врачщение, то матрицы различаются.
+> **Отображение** показывает "чистый" вклад фактора в признак.
+> **Структура** - полную корреляцию, включая и косвенное влияние через другие факторы.
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Факторный анализ/Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент.md b/90 Library/Math/Статистика/Факторный анализ/Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент.md
new file mode 100644
index 0000000..40ff38e
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент.md
@@ -0,0 +1,45 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - factor-analysis
+created: 2026-01-20
+updated: 2026-05-07
+title: Факторный Анализ. Цели И Сущность. Постановка Задачи. Отличие От Анализа Главных Компонент
+---
+
+# Факторный Анализ. Цели И Сущность. Постановка Задачи. Отличие От Анализа Главных Компонент
+
+## Цели И Сущность
+**Факторный анализ** - совокупность методов, направленных на выявление скрытых (латентных) переменных, называемых **факторами**, которые объясняют связи между наблюдаемыми признаками.
+- **Сущность** - предполагается, что корреляция между большим числом измеряемых характеристик обусловлена влиянием небольшого числа ненаблюдаемых факторов.
+- **Цели**:
+ - Сокращение размерности (переход к меньшему кол-ву признаков без существенной потери информации)
+ - Выявление структуры данных (определения скрытых взаимосвязей и группировка признаков)
+ - Интерпретация (присвоение выявленным факторам содержательного смысла)
+
+## Постановка Задачи
+В ФА каждый исходный признак $X_{i}$ представляется в виде линейной комбинации $m$ **общих** **факторов** и одного **характерного** (специфического) фактора.
+
+$$X_{i}=a_{i1}F_{1}+a_{i2}F_{2}+\dots+a_{im}F_{m}+d_{i}U_{i}$$
+Где:
+1) $X_{i}$ - $i$-ый исходный признак ($i=1,\dots,k$)
+2) $F_{j}$ - $j$-ый исходный фактор ($j=1,\dots,m$, причем, $m < k$)
+ Эти факторы влияют на все или несколько признаков.
+3) $a_{ij}$ - **факторная нагрузка**. (коэффициент корреляции между $i$-ым признаком и $j$-ым фактором)
+4) $U_{i}$ - характерный фактор, влияющий только на признак $X_{i}$ (ошибка измерения или уникальные свойства)
+5) $d_{i}$ - нагрузка характерного фактора.
+
+## Отличия ФА От МГК
+
+| Характеристика | МГК | ФА |
+| --------------------- | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
+| Логика модели | Компоненты - это линейные комбинации признаков | Признаки - это лин. комбинации факторов |
+| Цель | Максимизация объясненной общей дисперсии всех признаков | Объяснение **ковариации** между признаками |
+| Структура дисперсии | Вся дисперсия признака считается полезной | Дисперсия делится на **общность** (объясняемая общими факторами) и **характерность** (уникальность) |
+| Диагональ матрицы | Полная корреляционная матрица (на диагонали единицы) | Редуцированная матрица (на диагонали - оценки общностей) |
+| Количество переменных | Кол-во компонент может быть равно количеству признаков | Количество факторов всегда строго меньше количества признаков |
+| Метод | Дедукция (от признаков к сумме) | Индукция (от скрытых причин к внешним проявлениям) |
diff --git a/90 Library/Math/Статистика/Факторный анализ/Факторный анализ.md b/90 Library/Math/Статистика/Факторный анализ/Факторный анализ.md
new file mode 100644
index 0000000..093a915
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Факторный анализ.md
@@ -0,0 +1,38 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - ml
+ - mephi
+ - statistics
+ - factor-analysis
+created: 2026-02-13
+updated: 2026-05-07
+title: Факторный Анализ
+---
+
+# Факторный Анализ
+Факторный анализ (в широком смысле) представляет собой **совокупность моделей и методов**, ориентированных на **выявление, конструирование и анализ внутренних (скрытых, латентных) факторов** по информации об их "внешних" проявлениях.
+
+%% Begin Waypoint %%
+- [[Алгоритм оценки главных компонент]]
+- [[Алгоритм оценки главных факторов. Матрица индивидуальных значений ГФ]]
+- [[Вращение факторов]]
+- [[Матрица индивидуальных значений]]
+- [[Матрица нагрузок и её свойства]]
+- [[Метод главных факторов. Методы оценки общности]]
+- [[Определение первой и последующих компонент]]
+- [[Основные числовые характеристики главных компонент]]
+- [[Постановка задачи снижения размерности признакового пространства]]
+- [[Процедура построения первой и остальных главных компонент]]
+- [[Разложение дисперсии в факторном анализе. Разложение характерности в факторном анализе]]
+- [[Требования к факторам. Линейная модель факторного анализа]]
+- [[ФА - вращение]]
+- [[ФА - модель, цель, сущность]]
+- [[Факторное отображение. Факторная структура]]
+- [[Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент]]
+- [[Фундаментальная теорема факторного анализа]]
+- [[Этапы ФА. Выделение факторов]]
+
+%% End Waypoint %%
diff --git a/90 Library/Math/Статистика/Факторный анализ/Фундаментальная теорема факторного анализа.md b/90 Library/Math/Статистика/Факторный анализ/Фундаментальная теорема факторного анализа.md
new file mode 100644
index 0000000..3693ee1
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Фундаментальная теорема факторного анализа.md
@@ -0,0 +1,26 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - factor-analysis
+created: 2026-01-20
+updated: 2026-05-07
+title: Фундаментальная Теорема Факторного Анализа
+---
+
+# Фундаментальная Теорема Факторного Анализа
+## Суть
+Корреляционная матрица исходных признаков может быть **воспроизведена** через матрицу факторного отображения (матрицу нагрузок). Это значит, что все взаимосвязи между переменными полностью объясняются влиянием общих факторов.
+
+![[Pasted image 20260120213355.png]]
+## Формула
+$$R = A*A^{T} + D^{2}$$
+$D^{2}$ - диагональная матрица с характерностями на главной диагонали.
+
+## Редуцированная Корреляционная Матрица
+
+$$R_{h}=A*A^{T}$$
+$$R = R_{h}+D^{2}$$
\ No newline at end of file
diff --git a/90 Library/Math/Статистика/Факторный анализ/Этапы ФА. Выделение факторов.md b/90 Library/Math/Статистика/Факторный анализ/Этапы ФА. Выделение факторов.md
new file mode 100644
index 0000000..f552e78
--- /dev/null
+++ b/90 Library/Math/Статистика/Факторный анализ/Этапы ФА. Выделение факторов.md
@@ -0,0 +1,45 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - statistics
+ - factor-analysis
+created: 2026-01-20
+updated: 2026-05-07
+title: Этапы ФА. Выделение Факторов
+---
+
+# Этапы ФА. Выделение Факторов
+## Этапы Факторного Анализа
+![[Pasted image 20260120213958.png|600]]
+
+1) Стандартизация данных
+2) По $x$ вычисляем корреляционная матрица $R$.
+3) Проверка гипотезы о незначимости $R_{x}$
+4) Оценка общностей
+5) Выделение числа факторов (Критерий Кайзера, Лоули, график "Каменистой осыпи")
+6) Нахождение матрицы факторных нагрузок $A$ из $R=A*A^{T}$
+7) Вращение факторов (матрицы $A$) для получения наилучшей интерпретации
+8) Матрица индивидуальных значений $(F:U)$ и оценка значений факторов
+
+## Выделение Факторов
+Установление числа факторов и направления осей координат, соответствующих общим факторам.
+
+С вычислительной точки зрения: проблема факторов означает определение ранга матрицы $A$ и оценивание её элементов:
+1) Метод Главных Факторов
+2) Метод Максимального Правдоподобия
+
+---
+
+**Матричное уравнение** $R_{h}=AA^{T}$ имеет множество решений: любое ортогональное преобразование $B$, переводящее $A$ в $G$, т.е. $G=AB$, ему удовлетворяет:
+$$\implies A=GB^{T} \implies [B^{-1}=B^{T}] \implies R_{h}=GB^{T}(GB^{T})^{T} =$$ $$= GB^{T}BG^{T}=GEG^{T}=GG^{T}$$
+**Требование**: каждая следующая ось ориентированная по направлению $max$ дисперсии в пространстве, ортогональном предыдущей ГК.
+Матрица весовых коэффициентов составлена из СВ. корреляционной матрицы $R$.
+
+Матрица весовых коэффициентов составлена из СВ корреляционной матрицы $R$:
+$R_{h}U=U\lambda | * U^{-1}$ ($\lambda$ - матрица на диагоналях СЗ корреляционной матрицы)
+$R_{h}UU^{-1}=U\lambda U^{1}$
+$R_{h}=U\lambda U^{-1}=U\lambda U^{T} = U\lambda^\frac{1}{2}\lambda^{1/2}U^{T}=AA^{T}$, где $A=U\lambda^{1/2}$
+$A$ получаем, применяя МГК к $R_{n}$, и $A$ будет матрицей факторного отображения.
\ No newline at end of file
diff --git a/90 Library/Math/Теория нечетких множеств/Доказательство законов Де Моргана.md b/90 Library/Math/Теория нечетких множеств/Доказательство законов Де Моргана.md
new file mode 100644
index 0000000..62da662
--- /dev/null
+++ b/90 Library/Math/Теория нечетких множеств/Доказательство законов Де Моргана.md
@@ -0,0 +1,35 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - fuzzy-sets
+created: 2025-12-17
+updated: 2026-05-07
+title: Доказательство законов Де Моргана
+---
+
+# Доказательство законов Де Моргана
+
+
+## $\overline{A \cup B} = \overline{A} \cap \overline{B}$
+
+$$1 - \mu_{A \cup B}(u)=1 - \max (\mu_{A}(u);\ \mu_{B}(u))$$
+$$\overline{A} \cap \overline{B} = \min(1-\mu_{A}(u);\ 1-\mu_{B}(u))$$
+Предположим, что $\mu_{B}(u) > \mu_{A}(u)$, тогда $1-\mu_{B}(u)=1-\mu_{B}(u)$
+
+## $\overline{A \cap B} = \overline{A} \cup \overline{B}$
+
+$$1-\mu_{A \cap B}=1 -min(\mu_{A}(u);\ \mu_{B}(u))$$
+$$\overline{A} \cup \overline{B} = max(1 - \mu_{A}(u);\ 1-\mu_{B}(u))$$
+Пусть $\mu_{B}(u)>\mu_{A}(u)$, тогда $1-\mu_{A}(u)=1-\mu_{A}(u)$
+
+## $\overline{A * B} = \overline{A} + \overline{B}$
+
+$$(\mu_{\overline{A}}(u) + \mu_{\overline{B}}(u) - \mu_{\overline{A}}(u)\mu_{\overline{B}}(u)) = $$
+$$= 1-\mu_{A}(u) + 1 - \mu_{B}(u) - 1 + \mu_{A}(u) + \mu_{B}(u)-\mu_{A}(u)\mu_{B}(u)=$$
+$$= 1 - \mu_{A}(u) \mu_{B}(u)$$
+## $\overline{A + B} = \overline{A} * \overline{B}$
+
+$$(1-\mu_{A}(u))*(1-\mu_{B}(u)) = 1-\mu_{A}(u)-\mu_{B}(u)+\mu_{A}(u)\mu_{B}(u) = $$
+$$1 - (\mu_{A}(u)+\mu_{B}(u)-\mu_{A}(u)\mu_{B}(u))$$
\ No newline at end of file
diff --git a/90 Library/Math/Теория нечетких множеств/Коэффициенты функций принадлежности.md b/90 Library/Math/Теория нечетких множеств/Коэффициенты функций принадлежности.md
new file mode 100644
index 0000000..8af16fe
--- /dev/null
+++ b/90 Library/Math/Теория нечетких множеств/Коэффициенты функций принадлежности.md
@@ -0,0 +1,15 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - mephi
+ - fuzzy-sets
+created: 2025-12-17
+updated: 2026-05-07
+title: Коэффициенты функций принадлежности
+---
+
+# Коэффициенты функций принадлежности
+
+![[Pasted image 20260306092019.png]]
diff --git a/90 Library/Math/Теория нечетких множеств/Логические операции над нечеткими множествами.md b/90 Library/Math/Теория нечетких множеств/Логические операции над нечеткими множествами.md
new file mode 100644
index 0000000..74a3f60
--- /dev/null
+++ b/90 Library/Math/Теория нечетких множеств/Логические операции над нечеткими множествами.md
@@ -0,0 +1,43 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - fuzzy-sets
+created: 2025-12-17
+updated: 2026-05-07
+title: Логические операции над нечеткими множествами
+---
+
+# Логические операции над нечеткими множествами
+
+## Терминология
+
+Пусть $A$ и $B$ - нечеткие множества универсума $U$.
+Нечеткое множество $A$ называется *пустым*, если $\mu_{A}(u) = 0,\ \forall u \in U$
+
+*Носителем* нечеткого множества $A$ называется подмножество таких точек $U$, для которых величина функции принадлежности положительна: $$S(A)=Sup\ \mu(A) = \{u|u \in U, \mu_{A}(u)>0\}$$
+*Высотой* множества $A$ называется максимальное значение х.ф.: $$h(A)=sup\ \mu_{A}(u)$$
+Множество $A$ называется *нормальным*, если его высота равна 1.
+В противном случае оно называется *субнормальным*. Любое субнормальное множество можно сделать нормальным.
+
+Элементы множества $U$, для которых $\mu_{A}(u)=0.5$, являются *точками перехода* нечеткого множества $A$.
+
+## Дизъюнкция
+Дизъюнкцией (объединением) нечетких множеств называют наименьшее подмножество $A \cup B$, включающее как $A$, так и $B$, с функцией принадлежности вида: $$\mu_{A\cup B}(u) = \max(\mu_{A}(u)\mu_{B}(u)),\ u \in U$$![[Pasted image 20260227193130.png|400]]
+
+## Конъюнкция
+Конъюнкцией (пересечением) нечетких множеств называют наибольшее подмножество $A \cap B$, содержащееся одновременно и в $A$, и в $B$, с функцией принадлежности вида: $$\mu_{A \cap B}(u) = \min(\mu_{A}(u),\mu_{B}(u)),\ u \in U$$
+![[Pasted image 20260227194025.png|400]]
+
+## Дополнение
+Дополнением (отрицанием) нечеткого множества $A$ называют нечеткое множество $\overline{A}$ с функцией принадлежности: $$\mu_{\overline{A}}(u) = 1 - \mu_{A}(u),\ u \in U$$
+![[Pasted image 20260227194309.png|400]]
+
+## Разность
+Разностью двух множеств называется множество $A - B = A \cap \overline{B}$ с функцией принадлежности: $$\mu_{A-B}(u)=\mu_{A \cap \overline{B}}(u) = \min(\mu_{A}(u),\mu_{\overline{B}}(u)) = \min(\mu_{A}(u), 1-\mu_{B}(u))$$
+
+## Связанные заметки
+- [[Линейные модели]] — линейная разделимость в ML (жёсткая граница) vs нечёткие операции (мягкая граница); оба решают задачу разделения классов
+- [[Функция принадлежности]] — операции определены через μ
+
diff --git a/90 Library/Math/Теория нечетких множеств/Определение нечеткого множества.md b/90 Library/Math/Теория нечетких множеств/Определение нечеткого множества.md
new file mode 100644
index 0000000..dfac22f
--- /dev/null
+++ b/90 Library/Math/Теория нечетких множеств/Определение нечеткого множества.md
@@ -0,0 +1,30 @@
+---
+status: seed
+type: concept
+tags:
+ - math
+ - fuzzy-sets
+created: 2026-02-17
+updated: 2026-05-07
+title: Определение Нечеткого Множества
+---
+
+# Определение Нечеткого Множества
+Пусть $U$ - универсальное множество (универсум), из эл-тов которого состоят все остальные множества, рассматриваемые в данном классе задач.
+Один из способов - характеристическая функция.
+
+Характеристическая функция - это функция $\mu_{A}$ значения которой показывают, принадлежит ли элемент $x$ множеству.
+
+В четкой логике: $$\mu_{A}(x)=\begin{cases} 1,\ если\ x\in A \\ 0,\ иначе\end{cases}$$
+В нечеткой эта логика принимает значение из диапазона.
+Устанавливается "степень принадлежности" элемента данному множеству.
+
+Нечеткое множество $A$ на универсуме ($U$) - это совокупность пар вида $u,\mu_{A}(u)$, где $\mu_{A}(u)$ - [[Функция принадлежности|функция принадлежности]] нечеткого множества $A:U \to [0,1]$.
+
+Примеры:
+1) $U = (a,b,c,d,e,f)$, то $A = (\frac{0}{a},\frac{1}{b}, \frac{0.5}{c}, \dots)$
+2) $U=\{a,b,c,d,e\};\ A=\{\{a,0\}, \{b,0.1\},\{c,0.5\},\{d,0.9\},\{e,1\}\};$
+3) $U = R;\ \mu_{A}(x)=(1+|x-10|^{m})^{-1}$
+
+## Связанные заметки
+- [[Теория нечетких множеств]]
diff --git a/90 Library/Math/Теория нечетких множеств/Теория нечетких множеств.md b/90 Library/Math/Теория нечетких множеств/Теория нечетких множеств.md
new file mode 100644
index 0000000..42ec043
--- /dev/null
+++ b/90 Library/Math/Теория нечетких множеств/Теория нечетких множеств.md
@@ -0,0 +1,25 @@
+---
+status: stable
+type: moc
+tags:
+ - math
+ - mephi
+ - fuzzy-sets
+created: 2026-05-02
+updated: 2026-05-07
+title: Теория Нечетких Множеств
+---
+
+# Теория Нечетких Множеств
+
+%% Begin Waypoint %%
+- [[Доказательство законов Де Моргана]]
+- [[Коэффициенты функций принадлежности]]
+- [[Логические операции над нечеткими множествами]]
+- [[Определение нечеткого множества]]
+- [[Функция принадлежности]]
+
+%% End Waypoint %%
+
+## Контекст
+- [[Кластерный анализ]] — нечёткая кластеризация (fuzzy c-means) использует функцию принадлежности
diff --git a/90 Library/Math/Теория нечетких множеств/Функция принадлежности.md b/90 Library/Math/Теория нечетких множеств/Функция принадлежности.md
new file mode 100644
index 0000000..c82e520
--- /dev/null
+++ b/90 Library/Math/Теория нечетких множеств/Функция принадлежности.md
@@ -0,0 +1,45 @@
+---
+status: stable
+type: concept
+tags:
+ - math
+ - mephi
+ - fuzzy-sets
+created: 2026-02-17
+updated: 2026-05-07
+title: Функция принадлежности
+---
+
+# Функция принадлежности
+В нечёткой логике функция принадлежности $\mu_{A}$ — это функция, значения которой лежат в непрерывном диапазоне, как правило, от 0 до 1.
+
+Методы построения функций принадлежности делятся на прямые и косвенные.
+- **Прямые** - эксперт самостоятельно задает функцию. (исп. для измеримых понятий - рост, время, скорость и т.д.)
+- **Косвенные** - характеристики выделяются исходя из попарных сравнений объектов.
+
+## Типовые формы кривых
+
+### Треугольная (trimf)
+
+![[Pasted image 20260227164620.png]]
+
+### Трапецевидная (trapmf)
+![[Pasted image 20260227164640.png]]
+
+### Гауссовская (gaussmf, gauss2mf)
+![[Pasted image 20260227164704.png]]
+
+### Колокол
+![[Pasted image 20260227164716.png]]
+### Сигмоидальные
+![[Pasted image 20260227164729.png]]
+
+### Z - функция
+![[Pasted image 20260227164751.png]]
+### S - функция
+![[Pasted image 20260227164805.png]]
+
+## Связанные заметки
+- [[Метрические алгоритмы]] — $\hat{P}_c(x)$ в kNN возвращает значение в [0,1], аналогично μ_A; оба представляют "мягкую" принадлежность классу
+- [[Линейные модели]] — сигмоидальная функция принадлежности = та же сигмоида в логистической регрессии
+
diff --git a/90 Library/Networking/Ethernet.md b/90 Library/Networking/Ethernet.md
new file mode 100644
index 0000000..963c206
--- /dev/null
+++ b/90 Library/Networking/Ethernet.md
@@ -0,0 +1,51 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - ethernet
+created: 2025-12-17
+updated: 2026-05-07
+title: Ethernet
+---
+
+# Ethernet
+
+> Определяется стандартом IEEE 802.3
+
+Ethernet относится к построению исключительно ЛВС, в силу малого радиуса действия. В модели OSI он живет на L1+L2, т.е.:
+
+> Ethernet - это набор описаний способов физической передачи данных на первом уровне модели и формирования кадров на втором уровне внутри локальной сети LAN
+
+Стоит отметить, что исходный Ethernet, разработанный в _1970 году_, имеет скорость всего в 10Мбит/с, что очень мало. После было разработан Fast Ethernet - 100 Мбит/с А сейчас мы используем Gigabit Ethernet, скорость которого, как несложно понять, 1 Гбит/с.
+
+Ethernet - это не кабель, это стандарт. Если говорить о кабелях, то сейчас используется кабель UTP 5 категории (CAT 5). UTP - Unshielded Twisted Pair - неэкранированная витая пара.
+
+## Ethernet Vs WiFi
+
+### Стабильность
+
+Развертывание сети на базе Ethernet, разумеется, сильно дороже, но это обеспечивает бОльшую устойчивость к помехам.
+
+Если нужна железобетонная стабильность (транзакции, важные документы и т.д.), то проводное соединение. Иначе, wifi.
+
+### Безопасность
+
+Тут, опять же, побеждает Ethernet, к wifi можно подключиться извне, а проводное соединение так просто не украдешь.
+
+### Стоимость
+
+Инвестиции в проводные сети кратно выше, чем в беспроводные, т.к. необходимо покупать все больше сетевых устройств для подключения большого кол-ва физических носителей + безопасность (фаерволы).
+
+### Порты
+
+То же, что и стоимость, нужны доп.коммутаторы.
+
+### Мобильность
+
+Устройство с кабелем сзади особо не потаскаешь. + в карму WiFi.
+
+### Итог
+
+Ethernet - стандарт, описывающий подключение к локальным сетям через провод. При использовании его дома, есть профит только в большей скорость загрузки/отдачи. В офисе, кабели безусловно занимают лидирующие позиции - это связано в первую очередь с безопасностью, ведь утечки коммерческих тайн еще никому не шли на пользу. В домашних условиях Wi-Fi занимает уверенные лидерские позиции.
\ No newline at end of file
diff --git a/90 Library/Networking/LAN vs WAN.md b/90 Library/Networking/LAN vs WAN.md
new file mode 100644
index 0000000..d2b25a0
--- /dev/null
+++ b/90 Library/Networking/LAN vs WAN.md
@@ -0,0 +1,23 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+created: 2025-12-17
+updated: 2026-05-07
+title: LAN Vs WAN
+---
+
+# LAN Vs WAN
+ЛВС - локальная вычислительная сеть, локалка.
+
+Покрывает небольшую зону (максимум, здание), в неё подключаются все локальные устройства. Как правило, делится VLAN'ы - виртуальные локальные сети.
+
+## WAN - Wide Area Network
+
+Глобальная вычислительная сеть.
+
+Крупная сеть с публичным характером, например, интернет.
+
+
\ No newline at end of file
diff --git a/90 Library/Networking/MAC-адрес.md b/90 Library/Networking/MAC-адрес.md
new file mode 100644
index 0000000..2bedcb0
--- /dev/null
+++ b/90 Library/Networking/MAC-адрес.md
@@ -0,0 +1,16 @@
+---
+status: stable
+type: concept
+tags:
+ - networking
+created: 2025-12-17
+updated: 2026-05-07
+title: MAC-адрес
+---
+
+# MAC-адрес
+Физический адрес. MAC - Media access control. Он присваивается на заводе, он относится непосредственно к устройству.
+
+Пример MAC-адреса: `00-50-B6-5B-CA-6A`
+
+Первые три _октета_ - OUI (Organizational Unique Identifier) - идентификатор производителя сетевой железки. Вторые 3 октета уникальны и идентифицируют конкретное устройство.
\ No newline at end of file
diff --git a/90 Library/Networking/NAT.md b/90 Library/Networking/NAT.md
new file mode 100644
index 0000000..c9ce8ba
--- /dev/null
+++ b/90 Library/Networking/NAT.md
@@ -0,0 +1,95 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - nat
+created: 2025-12-17
+updated: 2026-05-07
+title: NAT
+---
+
+# NAT
+
+При использовании IPv4 в какой-то момент возникла глобальная проблема нехватки IP-адресов, ведь количество устройств росло семимильными темпами, поэтому долгосрочным решением стал ввод IPv6, но это оказалось очень долго и дорого, поэтому спасением стала технология NAT - Network Assress Translation.
+
+Сети, обычно, проектируются с учетом приватной адресации, например:
+
+- `10.0.0.0/8`
+- `172.16.0.0/12`
+- `192.168.0.0/16`
+
+Эти адреса позволяют устройствам внутри сети общаться друг с другом, при этом не выводя каждое устройство в сеть на всеобщее обозрение. Чтобы локальному устройству "выйти" в сеть и связаться с внешними устройствами, нужно его внутренний приватный адрес "перевести" во внешний "белый" IP.
+
+Как раз для этого и нужна технология _NAT_, она позволяет переводить частный адреса в публичные. Это не только позволило, в связке с частными IPv4, экономить адреса, но и добавляет конфиденциальность, т.к. за одним публичным IP могут скрываться десятки, сотни, а то и тысячи устройств.
+
+Маршрутизаторы с поддержкой NAT могут быть настроены на один или несколько "белых" IP-адресов. Этот список называется **пулом NAT**. Когда устройство из внутренней сети отправляет трафик во внешнюю сеть, маршрутизатор переводит внутренний IP во внешний из пула. Для внешних устройств весь входящий и исходящий трафик выглядит, как имеющий общедоступный IP-адрес.
+
+Маршрутизатор с NAT, обычно, работает на границе со **Stub-сетью**.
+
+> _Stub-сеть_ — это тупиковая сеть, в которой весь трафик к другим сетям проходит через один-единственный маршрут, обычно через один маршрутизатор или шлюз. Такая сеть не используется для транзита чужих данных между сетями, а только для подключения собственных устройств к внешнему миру, часто по маршруту по умолчанию.
+
+
+
+В терминах NAT внутренней сетью является набор сетей, подлежащий переводу. Внешняя сеть относится ко всем остальным сетям.
+
+NAT включает 4 типа адресов:
+
+1. Внутренний локальный адрес (Inside Local Address)
+2. Внутренний глобальный адрес (Inside Global Address)
+3. Внешний местный адрес (Outside local address)
+4. Внешний глобальный адрес (Outside global address)
+
+При определении того, какой тип адреса используется, важно помнить, что терминология NAT всегда _применяется с точки зрения устройства с транслированным адресом_:
+
+- **Внутренний адрес (Inside address)** - адрес устройства, которое транслируется NAT
+- **Внешний адрес (Outside address)** - адрес устройства назначения
+- **Локальный адрес (Local address)** - это любой адрес, который отображается во внутренней части сети
+- **Глобальный адрес (Global address)** - это любой адрес, который отображается во внешней части сети
+
+
+
+## Типы NAT
+
+1. Статическая адресная трансляция (Static NAT) - сопоставление один к одному между локальными и глобальными адресами.
+2. Динамическая адресная трансляция (Dynamic NAT) - сопоставление многих ко многим между локальными и глобальными адресами.
+3. Post Address Translation (PAT) - многоадресное сопоставление локальных и глобальных адресов с использованием портов. Также известен, как **NAT Overload**.
+
+### Static NAT
+
+Статический NAT использует сопоставление локальных и глобальных адресов один к одному. Настраиваются администратором сети и остаются постоянными. При отправке пакетов на внешний адрес, он транслируется на внутренний, при этом для внешних устройств, они имеют внешний ip-адрес. Используются, например, для веб-серверов и иных устройств, которые должны иметь согласованный адрес, доступный в интернете. Статический NAT требует достаточное количество общедоступных адресов для обеспечения всех устройств.
+
+
+
+Таблица статического NAT
+
+### Dynamic NAT
+
+Динамический, обратно статическому, автоматически назначает и освобождает внешние адреса. Занимаются они по принципу "кто первый пришел, то и занял". Аналогично статике, требует достаточного количества адресов для удовлетворения общего количества одновременного использования всеми устройствами.
+
+
+
+Таблица динамического NAT
+
+### Port Address Translation (PAT)
+
+PAT - это совершенно иная по сути работы система. Тут происходит параллельная трансляция многих внутренних адресов на один или несколько внешних адресов. Такая схема чаще всего используется в домашних маршрутизаторах. Хитрость заключается в том, что адресация идет не только по адресам, но и для каждого внутреннего адреса, сопоставляется номер порта. Когда устройство инициирует сеанс **TCP/IP**, оно генерирует значение порта источника **TCP** или **UDP** для уникальной идентификации сеанса. Когда NAT-маршрутизатор получает пакет от клиента, он использует номер своего исходного порта, чтобы однозначно идентифицировать конкретный перевод NAT. PAT гарантирует, что устройства используют разный номер порта TCP для каждого сеанса. Когда ответ возвращается с сервера, номер порта источника, который становится номером порта назначения в обратном пути, определяет, какое устройство маршрутизатор перенаправляет пакеты.
+
+
+
+Таблица PAT
+
+**А что относительно пакетов IPv4, содержащих данные, отличные от TCP или UDP?**
+Эти пакеты не содержат номер порта уровня 4. PAT переводит наиболее распространенные протоколы, переносимые IPv4, которые не используют TCP или UDP в качестве протокола транспортного уровня. Наиболее распространенными из них являются **ICMPv4**. Каждый из этих типов протоколов по-разному обрабатывается PAT. Например, сообщения запроса ICMPv4, эхо-запросы и ответы включают идентификатор запроса Query ID. ICMPv4 использует Query ID. для идентификации эхо-запроса с соответствующим ответом. Идентификатор запроса увеличивается с каждым отправленным эхо-запросом. PAT использует идентификатор запроса вместо номера порта уровня 4.
+
+|Преимущества NAT|Недостатки NAT|
+|---|---|
+|Поддержка приватных адресов, экономия публичных IPv4|Увеличение задержек, особенно для VoIP|
+|Возможность нескольких пулов (резерв, балансировка нагрузки)|Потеря сквозной адресации, проблемы с некоторыми приложениями|
+|Независимость внутренней адресации от провайдера|Потеря сквозной трассировки, сложнее диагностика|
+|Повышение безопасности за счёт скрытия внутренней топологии|Сложности с туннелированием (IPsec и др.)|
+|Лёгкая смена публичной схемы адресации без перенастройки хостов|Нарушение работы сервисов, требующих входящих соединений или UDP|
+
+## Связанные заметки
+- [[Terraform]] — NAT-шлюзы и пулы IP-адресов — типовые сетевые ресурсы, которые Terraform декларативно управляет в облачной инфраструктуре (VPC, subnets)
\ No newline at end of file
diff --git a/90 Library/Networking/Networking - MOC.md b/90 Library/Networking/Networking - MOC.md
new file mode 100644
index 0000000..ee6f005
--- /dev/null
+++ b/90 Library/Networking/Networking - MOC.md
@@ -0,0 +1,60 @@
+---
+status: stable
+type: moc
+tags:
+ - network
+ - networking
+created: 2026-05-02
+updated: 2026-05-07
+title: Networking - MOC
+---
+
+# Networking — MOC
+
+## Модели и концепции
+- [[Модель OSI]]
+- [[Инкапсуляция данных]]
+- [[LAN vs WAN]]
+- [[Иерархическая модель Cisco]]
+- [[Режимы передачи данных в сетях]]
+- [[Сегментация сети]]
+
+## Физический и канальный уровень
+- [[Ethernet]]
+- [[Витая пара]]
+- [[MAC-адрес]]
+- [[Широковещательные и коллизионные домены. Коммутация.]]
+- [[Широковещательные и коллизионные домены. Маршрутизация.]]
+- [[Сетевые устройства]]
+- [[Базовая настройка коммутатора]]
+
+## Сетевой уровень
+- [[IP-адрес]]
+- [[IPv6]]
+- [[VLSM]]
+- [[NAT]]
+- [[Коммутатор L3 vs Маршрутизатор]]
+
+## Транспортный уровень
+- [[TCP vs UDP]]
+
+## Протоколы
+- [[ARP]]
+- [[ICMP - Internet Control Messag]]
+- [[DNS]]
+- [[DHCP]]
+- [[VPN]]
+
+## VLAN
+- [[VLAN]]
+
+## Router-on-a-Stick
+- [[Router-on-a-Stick]]
+
+## Безопасность
+- [[DHCP-snooping]]
+- [[Dynamic ARP Inspection]]
+
+## Прочее
+- [[Утилита Ping]]
+- [[Пример настройки DHCPv6]]
diff --git a/90 Library/Networking/Router-on-a-Stick/RoaS - Base.md b/90 Library/Networking/Router-on-a-Stick/RoaS - Base.md
new file mode 100644
index 0000000..a10acc9
--- /dev/null
+++ b/90 Library/Networking/Router-on-a-Stick/RoaS - Base.md
@@ -0,0 +1,34 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - roas
+created: 2025-12-19
+updated: 2026-05-07
+title: RoaS - Base
+---
+
+# RoaS - Base
+**Router-on-a-stick** (роутер на палочке) - это термин, часто используемый для описания схемы, состоящей из маршрутизатора и коммутатора, которые соединены с использованием одного канала Ethernet, настроенного как **802.1Q.**
+
+Стандарт 802.1Q используется для тегирования трафика, для передачи информации о принадлежности к VLAN. В этой схеме на коммутаторе настроено несколько VLAN и маршрутизатор выполняет всю маршрутизацию между различными сетями или VLAN (**Inter-VLAN routing**).
+
+Также такую схему иногда называют "леденец" – _**lollypop**_.
+
+## Пример В VoIP
+
+```text
+[Коммутатор] ←→ один кабель ←→ [Роутер]
+ ↓ ↓
+ trunk физический порт разветвляется
+ VLAN 10,20 на .10 и .20 сабинтерфейсы
+ ↓
+ маршрутизация между .10 ↔ .20
+```
+
+Пакеты, передающиеся между VLAN маршрутизируются через один роутер, подключенный к коммутатору, используя один физический порт, настроенный как транк на обоих концах (коммутатор и маршрутизатор).
+
+
+
diff --git a/90 Library/Networking/Router-on-a-Stick/Router-on-a-Stick.md b/90 Library/Networking/Router-on-a-Stick/Router-on-a-Stick.md
new file mode 100644
index 0000000..db41bf2
--- /dev/null
+++ b/90 Library/Networking/Router-on-a-Stick/Router-on-a-Stick.md
@@ -0,0 +1,24 @@
+---
+status: stable
+type: moc
+tags:
+ - network
+ - networking
+ - roas
+created: 2025-12-17
+updated: 2026-05-07
+title: Router-on-a-Stick
+---
+
+# Router-on-a-Stick
+
+%% Begin Waypoint %%
+- [[Настройка коммутатора Cisco (Router-on-a-Stick)]]
+- [[RoaS - Base]]
+
+%% End Waypoint %%
+
+## Контекст
+- [[VLAN]] — RoaS используется именно для маршрутизации между VLAN на одном физическом интерфейсе
+- [[DHCP]] — часто настраивается совместно: разные VLAN получают адреса из разных пулов
+- [[Коммутатор L3 vs Маршрутизатор]] — альтернатива RoaS для крупных сетей
diff --git a/90 Library/Networking/Router-on-a-Stick/Настройка коммутатора Cisco (Router-on-a-Stick).md b/90 Library/Networking/Router-on-a-Stick/Настройка коммутатора Cisco (Router-on-a-Stick).md
new file mode 100644
index 0000000..68b1543
--- /dev/null
+++ b/90 Library/Networking/Router-on-a-Stick/Настройка коммутатора Cisco (Router-on-a-Stick).md
@@ -0,0 +1,68 @@
+---
+status: processing
+type: lab
+tags:
+ - network
+ - networking
+ - roas
+created: 2025-12-17
+updated: 2026-05-07
+title: Настройка Коммутатора Cisco (Router-on-a-Stick)
+---
+
+# Настройка Коммутатора Cisco (Router-on-a-Stick)
+
+## Настройка Коммутатора
+
+Первым шагом является создание необходимых двух VLAN на нашем коммутаторе Cisco и настройка их с IP-адресом. Поскольку все коммутаторы Cisco содержат VLAN1 (VLAN по умолчанию), нам нужно только создать VLAN2.
+
+```bash
+Switch# configure terminal
+Switch(config)# vlan2
+Switch(config-vlan)# name voice
+Switch(config-vlan)# exit
+Switch(config)# interface vlan1
+Switch(config-if)# ip address 192.168.10.2 255.255.255.0
+Switch(config-if)# exit
+Switch(config)# interface vlan2
+Switch(config-if)# ip address 192.168.20.2 255.255.255.0
+Switch(config-if)# exit
+```
+
+Далее, нам нужно создать транк порт, который будет соединятся с маршрутизатором. Для этой цели мы выберем порт GigabitEthernet 0/1
+
+```bash
+Switch# configure terminal
+Switch(config)# interface gigabitethernet 0/1
+Switch(config-if)# switchport trunk encapsulation dot1q
+Switch(config-if)# switchport mode trunk
+Switch(config-if)# spanning-tree portfast trunk
+```
+
+При помощи данных команд мы определили, что транк будет использовать инкапсуляцию 802.1Q, установили порт в режим транка и включили функцию **portfast trunk spanning-tree**, чтобы гарантировать, что порт будет пересылать пакеты немедленно при подключении к устройству, например, маршрутизатору. Внимание: команда spanning-tree portfast trunk не должна использоваться на портах, которые подключаются к другому коммутатору, чтобы избежать петель в сети.
+
+## Настройка Маршрутизатора
+
+Создание транка на порте маршрутизатора не сильно отличается от процесса, описанного выше - хотя мы транк на одном физическом интерфейсе, мы должны создать под-интерфейс (**sub-interface**) для каждого VLAN.
+
+```bash
+Router# configure terminal
+Router(config)# interface gigabitethernet0/1
+Router(config-if)# no ip address
+Router(config-if)# duplex auto
+Router(config-if)# speed auto
+Router(config-if)# interface gigabitethernet0/1.1
+Router(config-subif)# encapsulation dot1q 1 native
+Router(config-subif)# ip address 192.168.10.1 255.255.255.0
+Router(config-subif)# interface gigabitethernet0/1.2
+Router(config-subif)# encapsulation dot1q 2
+Router(config-subif)# ip address 192.168.20.1 255.255.255.0
+```
+
+Чтобы сформировать транк с нашим коммутатором, необходимо создать один под-интерфейс для каждого VLAN, сконфигурированного на нашем коммутаторе. После создания под-интерфейса мы назначаем ему IP-адрес и устанавливаем тип инкапсуляции 802.1Q и указываем номер VLAN, к которому принадлежит под-интерфейс.
+
+Например, команда **encapsulation dot1q 2** определяет инкапсуляцию 802.1Q и устанавливает под-интерфейс на VLAN 2.
+
+Параметр **native** который мы использовали для под-интерфейса gigabitethernet0/1.1, сообщает маршрутизатору, что нативный vlan - это VLAN 1. Это параметр по умолчанию на каждом коммутаторе Cisco и поэтому должен совпадать с маршрутизатором.
+
+Для проверки можно использовать на роутере команду **show vlans**, где будут отображены созданные нами под-интерфейсы, а также при помощи команды **show ip route** в таблице маршрутизации мы должны увидеть наши под-интерфейсы.
\ No newline at end of file
diff --git a/90 Library/Networking/VLAN/VLAN - Base.md b/90 Library/Networking/VLAN/VLAN - Base.md
new file mode 100644
index 0000000..24c2af7
--- /dev/null
+++ b/90 Library/Networking/VLAN/VLAN - Base.md
@@ -0,0 +1,33 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - vlan
+created: 2025-12-19
+updated: 2026-05-07
+title: VLAN - Base
+---
+
+# VLAN - Base
+
+Virtual Local Area Network (VLAN), или виртуальная локальная сеть.
+
+По факту – это функция устройств связи, например, коммутаторов или маршрутизаторов, которая позволяет объединять устройства в одну или несколько **виртуальных** локальных подсетей в рамках одного физического сетевого интерфейса, такого как Wi-fi или Ethernet. Стоит отметить, что виртуальная логическая топология сети никак не пересекается с физической топологией и, соответственно, не зависит от нее.
+
+- **Создание отдельных подсетей для групп устройств, подключенных к одному и тому же коммутатору:**
+ 
+- **Создание виртуальной сети для устройств, подключенных к разным коммутаторам:**
+ ****
+- **Распределение Wi-fi сети для различных групп пользователей:**
+ ****
+
+## **Итог:**
+
+Технология VLAN позволяет разбить (объединить) подсети, что порождает следующие преимущества:
+
+- Меньшее количество используемых для создания внутренней сети организации проводов;
+- Более безопасную и контролируемую связь между устройствами – рабочие станции в рамках одной подсети не будут "видеть" устройства из других подсетей;
+- Более эффективное использование трафика в различных подсетях общей сети, за счет возможности управления трафиком в различных подгруппах;
+- Повышение эффективности работы отделов через создание новых подгрупп устройств, для чего VLAN предоставляет широчайшие возможности;
diff --git a/90 Library/Networking/VLAN/VLAN - диапазоны.md b/90 Library/Networking/VLAN/VLAN - диапазоны.md
new file mode 100644
index 0000000..32526cb
--- /dev/null
+++ b/90 Library/Networking/VLAN/VLAN - диапазоны.md
@@ -0,0 +1,70 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - vlan
+created: 2025-12-17
+updated: 2026-05-07
+title: VLAN - Диапазоны
+---
+
+# VLAN - Диапазоны
+Вывод команды `show vlan brief` на коммутаторе cisco по умолчанию:
+![[Pasted image 20251219143634.png]]
+```text
+Switch# show vlan brief
+
+VLAN Name Status Ports
+---- ----------------- ------- --------------------
+1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
+ Fa0/5, Fa0/6, Fa0/7, Fa0/8
+ Fa0/9, Fa0/10, Fa0/11, Fa0/12
+ Fa0/13, Fa0/14, Fa0/15, Fa0/16
+ Fa0/17, Fa0/18, Fa0/19, Fa0/20
+ Fa0/21, Fa0/22, Fa0/23, Fa0/24
+ Gi0/1, Gi0/2
+1002 fddi-default act/unsup
+1003 token-ring-default act/unsup
+1004 fddinet-default act/unsup
+1005 trnet-default act/unsup
+```
+
+## Нормальный Диапазон VLAN
+
+Ниже перечислены основные характеристики нормального диапазона:
+
+- Они используются в **малых, средних и больших сетях**;
+- Нумерация начинается от 1 до 1005;
+- Идентификаторы с 1002 до 1005 зарезервированы для устаревших сетей (Token Ring, FDDI);
+- Идентификаторы с 1002 до 1005 созданы автоматически и не могут быть удалены;
+- Созданные VLAN хранятся в памяти коммутатора в файле базы данных VLAN, именуемого vlan.dat;
+- VTP, если настроен, помогает распространять все VLAN между коммутаторами.
+
+## Расширенный Диапазон
+
+Ниже перечислены основные характеристики расширенного VLAN:
+
+- **Используется провайдерами и очень большими компаниями**;
+- Нумерация начинается с 1006 по 4094;
+- По умолчанию, они хранятся в running-config;
+- Имеют меньшую функциональность, чем нормальные VLAN;
+- Для настройки расширенного VLAN VTP должен работать в режиме **transparent**.
+
+**Примечание**
+
+Ограничение количества доступных VLAN продиктовано особенностями заголовка 802.1Q. Полю VLAN ID заголовка 802.1Q IEEE выделено всего 12 бит, поэтому 4096 -- верхняя граница доступных VLAN на коммутаторах Catalyst. А если нужно больше, то можно обратиться к такой технологии как VXLAN.
+
+|**Задача**|**IOS команда**|
+|---|---|
+|Войти в режим глобальной конфигурации|`Switch# configure terminal`|
+|Создать VLAN с валидным ID|`Switch(config)# vlan `|
+|Указать уникальное имя для идентификации VLAN|`Switch(config-vlan)# name `|
+|Вернуться в привилегированный режим EXEC|`Switch(config-vlan)# end`|
+
+Ещё про VLAN:
+[[VLAN - настройка Cisco]]
+[[VLAN - Base]]
+[[VLAN - история и trunk]]
+[[VLAN - полная настройка Cisco]]
\ No newline at end of file
diff --git a/90 Library/Networking/VLAN/VLAN - история и trunk.md b/90 Library/Networking/VLAN/VLAN - история и trunk.md
new file mode 100644
index 0000000..21f0edf
--- /dev/null
+++ b/90 Library/Networking/VLAN/VLAN - история и trunk.md
@@ -0,0 +1,27 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - vlan
+created: 2025-12-17
+updated: 2026-05-07
+title: VLAN - История И Trunk
+---
+
+# VLAN - История И Trunk
+Начиная с конца 1990-х, все коммутаторы Cisco поддерживали проприетарный протокол, помогающий инженерам настраивать одинаковые VLAN на нескольких коммутаторах одновременно. Назывался он **VTP - Virtual Trunking Protocol**.
+
+**VLAN (Virtual Local Area Network)** – виртуальная локальная сеть, помогает создавать новые бродкастные домены, увеличивает сегментацию и безопасность сети.
+
+До этого Cisco поддерживали иной транковый протокол - Cisco **Inter-Switch Link (ISL).**
+
+Этот протокол поддерживал создание VLAN только в диапазоне 1-1005, ранние версии версии VTP аналогично поддерживали только такой диапазон. Т.е. VTP v1 и v2 поддерживают только 1-1001 (1002-1005 зарезервированы).
+
+В 1998 году ввели стандарт **IEEE 802.1Q,** который ввел много нового, основным из которых стало увеличение размера заголовка для тега VLAN до 12 бит, что позволило увеличить диапазон допустимых VLAN до 4094 (за исключением зарезервированных). Однако, третья версия VTP, включившая это нововведение появилась лишь в 2009 году. Поэтому многие привыкли настраивать коммутаторы без VTP.
+
+> Не все коммутаторы Cisco поддерживают 4 090 VLAN-ов. Это ограничение оборудования, как такового.
+
+[[VLAN - настройка Cisco]]
+
diff --git a/90 Library/Networking/VLAN/VLAN - настройка Cisco.md b/90 Library/Networking/VLAN/VLAN - настройка Cisco.md
new file mode 100644
index 0000000..33d07f1
--- /dev/null
+++ b/90 Library/Networking/VLAN/VLAN - настройка Cisco.md
@@ -0,0 +1,74 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - vlan
+created: 2025-12-17
+updated: 2026-05-07
+title: VLAN - Настройка Cisco
+---
+
+# VLAN - Настройка Cisco
+## Команды Для Настройки VLAN
+
+```bash
+conf t # - вход в режим конфигурации коммутатора;
+
+vlan %номер vlan-а% # - создание VLAN-а, нужно указать номер;
+
+name %имя vlan-а% # - также VLAN-у можно присвоить имя;
+```
+
+> VLAN **не будет** создан, пока не выйти из режима конфигурирования.
+
+Существует иной способ - назначение интерфейса в VLAN.
+
+```bash
+conf t # - вход в режим конфигурации коммутатора;
+
+interface %номер интерфейса% # - вход в конкретный интерфейс;
+
+switchport access vlan %номер vlan-а% # - присваиваем VLAN интерфейсу, если VLAN не существовал, он будет автоматически создан;
+```
+
+**Удаление VLAN:**
+
+```bash
+conf t
+no vlan %номер vlan-а%
+```
+
+**Проверка VLAN:**
+
+```bash
+show vlan
+show vlan brief
+```
+
+При начале работы с коммутаторами Cisco необходимо перевести VTP на 3-ю версию, либо включить режим _**transparent**_ или выключить полностью.
+
+```bash
+conf t # - вход в режим конфигурации коммутатора;
+vtp mode {server / client / transparent / off} # - настройка режима VTP, для использования расширенного диапазона VLAN-ов, вам нужны transparent или off;
+```
+
+### Кейс 1 - Компания В Новом Офисе
+
+Организация переезжает в новый офис, отдел продаж и отдел разработки живут на одном этаже и подключены к одному коммутатору. Для разделения прав продавцов и разработчиков будут использованы VLAN.
+
+У продавцов поставим VLAN 10, программисты - VLAN 20. На коммутаторе, первые будут занимать порты FastEthernet 0/1 - 0/12, а программисты - 0/13 - 0/24.
+
+Для настройки каждого интерфейса в соответствии с нужным VLAN'ом, используем `interface range`.
+
+```bash
+conf t # режим конфигурации коммутатора
+vlan 10 # создаем VLAN для продавцов
+vlan 20 # создаем VLAN для разработчиков
+interface range fatethernet0/1-12 # конфигурация параллельно всех 12 интерфейсов
+switchport access vlan 10 # интерфейсы настроены на работу в vlan 10
+interface range fastethernet0/13-24
+switchport access vlan 20
+do wr # сохраняем конфигурацию
+```
\ No newline at end of file
diff --git a/90 Library/Networking/VLAN/VLAN - полная настройка Cisco.md b/90 Library/Networking/VLAN/VLAN - полная настройка Cisco.md
new file mode 100644
index 0000000..d473715
--- /dev/null
+++ b/90 Library/Networking/VLAN/VLAN - полная настройка Cisco.md
@@ -0,0 +1,390 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - vlan
+created: 2025-12-17
+updated: 2026-05-07
+title: VLAN - Полная Настройка Cisco
+---
+
+# VLAN - Полная Настройка Cisco
+Создание **VLAN**-ов, как и все другие конфигурации на сетевом оборудование, достигается путем ввода соответствующих команд. В этой статье рассматриваются настройка разных типов VLAN на коммутаторах **Cisco**.
+
+
+
+---
+
+## Диапазоны VLAN На Коммутаторах Catalyst
+
+В зависимости от модели, коммутаторы **Cisco** поддерживает разное число VLAN. Числа поддерживаемых VLAN обычно вполне достаточно для задач большинства компаний. Например, коммутаторы Cisco Catalyst 2960 и 3650 поддерживают больше 4000 виртуальных сетей. Нормальный диапазон VLAN начинается от 1 до 1005, а расширенный – от 1006 до 4094. На выводе внизу можно увидеть VLAN по умолчание на коммутаторе Cisco Catalyst 2960 с Cisco IOS 15 версии.
+
+Switch# show vlan brief
+
+VLAN Name Status Ports
+---- ----------------- ------- --------------------
+1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
+ Fa0/5, Fa0/6, Fa0/7, Fa0/8
+ Fa0/9, Fa0/10, Fa0/11, Fa0/12
+ Fa0/13, Fa0/14, Fa0/15, Fa0/16
+ Fa0/17, Fa0/18, Fa0/19, Fa0/20
+ Fa0/21, Fa0/22, Fa0/23, Fa0/24
+ Gi0/1, Gi0/2
+1002 fddi-default act/unsup
+1003 token-ring-default act/unsup
+1004 fddinet-default act/unsup
+1005 trnet-default act/unsup
+
+### Нормальный Диапазон VLAN
+
+Ниже перечислены основные характеристики нормального диапазона:
+
+- Они используются в малых, средних и больших сетях;
+- Нумерация начинается от 1 до 1005;
+- Идентификаторы с 1002 до 1005 зарезервированы для устаревших сетей (Token Ring, FDDI);
+- Идентификаторы с 1002 до 1005 созданы автоматически и не могут быть удалены;
+- Созданные VLAN хранятся в памяти коммутатора в файле базы данных VLAN, именуемого vlan.dat;
+- VTP, если настроен, помогает распространять все VLAN между коммутаторами.
+
+### Расширенный Диапазон
+
+Ниже перечислены основные характеристики расширенного VLAN:
+
+- Используется провайдерами и очень большими компаниями;
+- Нумерация начинается с 1006 по 4094;
+- По умолчанию, они хранятся в running-config;
+- Имеют меньшую функциональность, чем нормальные VLAN;
+- Для настройки расширенного VLAN VTP должен работать в режиме transparent.
+
+> Примечание: Ограничение количества доступных VLAN продиктовано особенностями заголовка 802.1Q. Полю VLAN ID заголовка 802.1Q IEEE выделено всего 12 бит, поэтому 4096 -- верхняя граница доступных VLAN на коммутаторах Catalyst. А если нужно больше, то можно обратиться к такой технологии как VXLAN.
+
+---
+
+## Команды Для Создания VLAN
+
+Когда создается VLAN нормального диапазона, как уже было отмечено, эти настройки хранятся в файле `vlan.dat`, то есть не нужно вводить команды `copy running-config startup-config` или `write memory`. Тем не менее, чтобы не потерять изменения сделанные наряду с созданием VLAN, рекомендуется сохранять текущую конфигурацию.
+
+В таблице ниже перечислены команды, которые нужно вводит для создания VLAN и присвоения им названия. Хорошей практикой считается давать VLAN понятные названия, чтобы облегчить поиск и устранение проблем в будущем.
+
+| | |
+|---|---|
+|**Задача**|**IOS команда**|
+|Войти в режим глобальной конфигурации|Switch# configure terminal|
+|Создать VLAN с валидным ID|Switch(config)# vlan vlan-id|
+|Указать уникальное имя для идентификации VLAN|Switch(config-vlan)# name vlan-name|
+|Вернуться в привилегированный режим EXEC|Switch(config-vlan)# end|
+
+---
+
+## Пример Создания VLAN
+
+В топологии ниже, порт к которому подключен ПК Stundent, еще не добавлен ни в один VLAN, но у него есть IP 172.17.20.22, который принадлежит VLAN 20.
+
+
+
+Пример ниже демонстрирует настройку VLAN 20 с названием student на коммутаторе S1.
+
+S1# configure terminal
+S1(config)# vlan 20
+S1(config-vlan)# name student
+S1(config-vlan)# end
+
+> Примечание: Кроме создание VLAN-ов по одному, так же есть возможность создания нескольких влан, вводя их идентификаторы через запятые или дефис. Например, команда vlan 100,102,105-107 в режиме конфигурации создаст сразу 5 VLAN-ов с идентификаторами 100, 102, 105, 106, и 107
+
+---
+
+## Добавление Портов В VLAN
+
+После создания VLAN, следующий шаг – это добавление нужных портов в конкретный VLAN.
+
+В таблице ниже приведены команды для переведения порта в режим **access** и добавления в конкретный VLAN. Команда `switchport mode access` опциональна, но в целях безопасности рекомендуется вводить ее, так как она принудительно переводит порт в режим **access**, что помогает защищаться от атак вроде VLAN Hopping.
+
+| | |
+|---|---|
+|**Задача**|**IOS команда**|
+|Войти в режим глобальной конфигурации|Switch# configure terminal|
+|Войти в режим конфигурации интерфейса|Switch(config)# interface interface-id|
+|Установить порт в режим access|Switch(config-if)# switchport mode access|
+|Присвоить порт VLAN'у.|Switch(config-if)# switchport access vlan vlan-id|
+|Вернуться в привилегированный режим EXEC|Switch(config-if)# end|
+
+> Примечание: Для одновременной конфигурации нескольких портов можно воспользоваться командой **interface range**.
+
+---
+
+## Пример Присвоения Порту VLAN
+
+В топологии ниже порт F0/6 коммутатора S1 настроен в режиме access и добавлен в VLAN 20. Теперь любое устройство, подключенное к данному порту, будет в 20-ом VLAN-е, как и ПК2 в нашем случае.
+
+
+
+А ниже приведен пример команд для реализации вышеуказанной цели.
+
+S1# configure terminal
+S1(config)# interface fa0/6
+S1(config-if)# switchport mode access
+S1(config-if)# switchport access vlan 20
+S1(config-if)# end
+
+VLAN настраивается на порту коммутатора, а не на конечном устройстве. ПК2 присвоен IP адреси маска подсети, которая относиться к VLAN 20, а последний указан на порту коммутатора. Если VLAN 20 настроить на другом коммутаторе, администратор сети должен настроить другой компьютер так, чтобы он был в одной подсети с ПК2 (172.17.20.0/24).
+
+---
+
+## VLAN Данных И Голосовой VLAN
+
+На порту коммутатора в режиме access можно настроить не более одного VLAN-а данных. Тем не менее, на том же порту можно настроить голосовой VLAN. Например, порт к которому подключены IP телефон и конечное устройство, может быть сразу в двух VLAN-ах, - голосовом и VLAN-е данных.
+
+Например, в топологии ниже, ПК5 подключен к IP телефону, который в свою очередь подключен к порту F0/18 коммутатора S3. Для реализации данной идеи созданы VLAN данных и голосовой VLAN.
+
+
+
+---
+
+## Пример Голосового VLAN И VLAN Данных
+
+Чтобы настроить на интерфейсе голосовой VLAN используется команда `switchport voice vlan [vlan-id]` в режиме конфигурации порта на коммутаторе.
+
+В сетях, где поддерживается голосовой трафик, обычно настраиваются различные QoS. Голосовой трафик должен быть маркирован доверенным, как только попадет на интерфейс. Чтобы пометить голосовой трафик как доверенный, а так же указать какое поле пакета используется для классификации трафика, применяется команда `mls qos trust [cos | device cisco-phone | dscp | ip-precedence]` в режиме конфигурации интерфейса.
+
+Конфигурация в примере ниже создаст два VLAN-а и присвоит порту F0/18 коммутатора S3 VLAN данных с идентификатором 20, а также голосовой VLAN 150 и включит QoS, на основе CoS.
+
+S3(config)# vlan 20
+S3(config-vlan)# name student
+S3(config-vlan)# vlan 150
+S3(config-vlan)# name VOICE
+S3(config-vlan)# exit
+S3(config)# interface fa0/18
+S3(config-if)# switchport mode access
+S3(config-if)# switchport access vlan 20
+S3(config-if)# mls qos trust cos
+S3(config-if)# switchport voice vlan 150
+S3(config-if)# end
+
+Если на коммутаторе еще не создан нужный VLAN команда `switchport access vlan` принудительно создаст его. Например, VLAN 30 не выводится при вводе команды `switchport vlan brief`. Но если ввести команду `switchport access vlan 30` без предварительного создания под любым интерфейсом на терминале выведется соответствующее сообщение:
+
+% Access VLAN does not exist. Creating vlan 30
+
+---
+
+## Проверка Настроек VLAN
+
+После настроек VLAN, правильность конфигурации можно проверить с помощью команды `show` с последующим ключевым словом.
+
+Команда `show vlan` выводит список существующих VLAN. Данной команде можно задать разные параметры. Полный синтаксис команды такой: `show vlan [brief | id vlan-id | name vlan-name | summary]`.
+
+В таблице описываются параметры команды `show vlan`.
+
+| | |
+|---|---|
+|**Задача**|**Опция команды**|
+|Отображение имени, статуса и портов VLAN по одной VLAN на строку|brief|
+|Отображение информации об определенном номере VLAN ID. Для vlan-id диапазон от 1 до 4094|id vlan-id|
+|Отображение информации об определенном имени VLAN. Vlan-name - это строка ASCII от 1 до 32 символов.|name vlan-name|
+|Отображение сводной информации о VLAN|summary|
+
+Команда `show vlan summary` выводит количество настроенных VLAN на коммутаторе:
+
+S1# show vlan summary
+Number of existing VLANs : 7
+Number of existing VTP VLANs : 7
+Number of existing extended VLANS : 0
+
+Есть и другие полезные команды вроде `show interfaces interface-id switchport` и `show interfaces vlan vlan-id`. Например, команда `show interfaces fa0/18 switchport` может использоваться для проверки правильно ли присвоен интерфейс F0/18 к голосовому VLAN и VLAN данных.
+
+S1# show interfaces fa0/18 switchport
+Name: Fa0/18
+Switchport: Enabled
+Administrative Mode: static access
+Operational Mode: static access
+Administrative Trunking Encapsulation: dot1q
+Operational Trunking Encapsulation: native
+Negotiation of Trunking: Off
+Access Mode VLAN: 20 (student)
+Trunking Native Mode VLAN: 1 (default)
+Voice VLAN: 150
+Administrative private-vlan host-association: none
+(Output omitted)
+
+---
+
+## Переназначение VLAN На Интерфейсе
+
+Есть несколько вариантов переназначения интерфейсу VLAN-а.
+
+Если неправильно сконфигурировали VLAN на интерфейсе, просто введите команду `switchport access vlan vlan-id` подставив нужный VLAN. Например, представим что порт F0/18 добавлен в VLAN по умолчанию VLAN 1. Чтобы поменять на VLAN 20, достаточно ввести switchport access vlan 20.
+
+Чтобы вернуть обратно в VLAN по умолчанию в режиме конфигурации интерфейса введите команду `no switchport access vlan`.
+
+На выводе ниже можно убедиться, что 18-ый порт коммутатора находится в VLAN по умолчанию.
+
+S1(config)# interface fa0/18
+S1(config-if)# no switchport access vlan
+S1(config-if)# end
+S1#
+S1# show vlan brief
+VLAN Name Status Ports
+---- ------------------ --------- -------------------------------
+1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4
+ Fa0/5, Fa0/6, Fa0/7, Fa0/8
+ Fa0/9, Fa0/10, Fa0/11, Fa0/12
+ Fa0/13, Fa0/14, Fa0/15, Fa0/16
+ Fa0/17, Fa0/18, Fa0/19, Fa0/20
+ Fa0/21, Fa0/22, Fa0/23, Fa0/24
+ Gi0/1, Gi0/2
+20 student active
+1002 fddi-default act/unsup
+1003 token-ring-default act/unsup
+1004 fddinet-default act/unsup
+1005 trnet-default act/unsup
+
+Следует заметить, что 20-ый VLAN все еще активен, несмотря на то, что под ним нет никакого интерфейса. Чтобы убедиться, что на 18-ый порт в VLAN 1, можно воспользоваться командой show interfaces f0/18 switchport:
+
+S1# show interfaces fa0/18 switchport
+Name: Fa0/18
+Switchport: Enabled
+Administrative Mode: static access
+Operational Mode: static access
+Administrative Trunking Encapsulation: negotiate
+Operational Trunking Encapsulation: native
+Negotiation of Trunking: Off
+Access Mode VLAN: 1 (default)
+Trunking Native Mode VLAN: 1 (default)
+
+---
+
+## Удаление VLAN
+
+Для удаления VLAN используется команда `no vlan vlan-id` в глобальном режиме конфигурации.
+
+Внимание: Прежде чем удалить VLAN убедитесь, что все интерфейсам с данным VLAN назначен другой.
+
+Чтобы удалить весь файл `vlan.dat` введите команду `delete flash:vlan.dat` в привилегированном режиме EXEC. После перезагрузки все настроенные на коммутаторе VLAN удалятся.
+
+> Примечание: Чтобы сбросить коммутаторы Catalyst до заводских настроек отсоедините все кабели кроме кабеля питания и консольного кабеля, от коммутатора. Затем введите `erase startup-config` после него `delete vlan.dat`. После перезагрузки коммутатор сбросится до первоначальных настроек.
+
+---
+
+## Настройка Trunk
+
+После создания и настройки VLAN, пора перейти к конфигурации **Trunk** портов. Trunk это связь на втором уровне OSI между коммутаторами, который пропускает все VLAN (если список разрешенных VLAN явно не указан).
+
+Для настройки интерфейса в режиме Trunk нужно воспользоваться команды, указанные ниже в таблице:
+
+| | |
+|---|---|
+|**Задача**|**IOS команда**|
+|Войти в режим глобальной конфигурации|Switch# configure terminal|
+|Войти в режим конфигурации интерфейса|Switch(config)# interface interface-id|
+|Установите порт в режим постоянного транкинга|Switch(config-if)# switchport mode trunk|
+|Устанавливает для native VLAN значение, отличное от VLAN 1|Switch(config-if)# switchport trunk native vlan vlan-id|
+|Укажите список VLAN, разрешенных для транка|Switch(config-if)# switchport trunk allowed vlan vlan-list|
+|Вернуться в привилегированный режим EXEC|Switch(config-if)# end|
+
+---
+
+## Пример Настройки Trunk
+
+В топологии ниже VLAN 10, 20 и 30 обслуживают компьютеры Faculty, Student и Guest. Порт F0/1 коммутатора S1 настроек в режиме Trunk и пропускает VLAN-ы 10, 20, 30. VLAN 99 настроен в качестве native (VLAN по умолчанию).
+
+
+
+В данном примере показывается настройка порта в режиме trunk, смена VLAN по умолчанию и ограничение разрешенных VLAN.
+
+S1(config)# interface fastEthernet 0/1
+S1(config-if)# switchport mode trunk
+S1(config-if)# switchport trunk native vlan 99
+S1(config-if)# switchport trunk allowed vlan 10,20,30,99
+S1(config-if)# end
+
+> Примечание: В данном примере подразумевается, что используется коммутатор Cisco Catalyst 2960, в котором порты по умолчанию используют 802.1Q. На других коммутаторах может понадобиться ручная настройка режима энкапсуляции на интерфейсе. Так же следует настроить VLAN по умолчанию на обоих концах, иначе коммутатор будет выдавать ошибки.
+
+---
+
+## Проверка Настройки Trunk
+
+Вывод ниже демонстрирует настройки интерфейса Fa0/1 коммутатора S1. Данный вывод получен с помощью команды `show interfaces interface-ID switchport`:
+
+S1# show interfaces fa0/1 switchport
+Name: Fa0/1
+Switchport: Enabled
+Administrative Mode: trunk
+Operational Mode: trunk
+Administrative Trunking Encapsulation: dot1q
+Operational Trunking Encapsulation: dot1q
+Negotiation of Trunking: On
+Access Mode VLAN: 1 (default)
+Trunking Native Mode VLAN: 99 (VLAN0099)
+Administrative Native VLAN tagging: enabled
+Voice VLAN: none
+Administrative private-vlan host-association: none
+Administrative private-vlan mapping: none
+Administrative private-vlan trunk native VLAN: none
+Administrative private-vlan trunk Native VLAN tagging: enabled
+Administrative private-vlan trunk encapsulation: dot1q
+Administrative private-vlan trunk normal VLANs: none
+Administrative private-vlan trunk associations: none
+Administrative private-vlan trunk mappings: none
+Operational private-vlan: none
+Trunking VLANs Enabled: ALL
+Pruning VLANs Enabled: 2-1001
+(output omitted)
+
+Подчеркнутые части показывают режим работы интерфейса и нативный VLAN.
+
+---
+
+## Сброс Trunk До Настроек По Умолчанию
+
+Для сброса настроек транкового интерфейса используйте команды `no switchport trunk allowed vlan` и `no switchport trunk native vlan`. После сброса настроек данный порт будет пропускать все VLAN-ы и VLAN-ом по умолчанию будет VLAN 1.
+
+S1(config)# interface fa0/1
+S1(config-if)# no switchport trunk allowed vlan
+S1(config-if)# no switchport trunk native vlan
+S1(config-if)# end
+
+Вывод команды `show interfaces f0/1 switchport` показывает, что порт сброшен до настроек по умолчанию:
+
+S1# show interfaces fa0/1 switchport
+Name: Fa0/1
+Switchport: Enabled
+Administrative Mode: trunk
+Operational Mode: trunk
+Administrative Trunking Encapsulation: dot1q
+Operational Trunking Encapsulation: dot1q
+Negotiation of Trunking: On
+Access Mode VLAN: 1 (default)
+Trunking Native Mode VLAN: 1 (default)
+Administrative Native VLAN tagging: enabled
+Voice VLAN: none
+Administrative private-vlan host-association: none
+Administrative private-vlan mapping: none
+Administrative private-vlan trunk native VLAN: none
+Administrative private-vlan trunk Native VLAN tagging: enabled
+Administrative private-vlan trunk encapsulation: dot1q
+Administrative private-vlan trunk normal VLANs: none
+Administrative private-vlan trunk associations: none
+Administrative private-vlan trunk mappings: none
+Operational private-vlan: none
+Trunking VLANs Enabled: ALL
+Pruning VLANs Enabled: 2-1001
+(output omitted)
+
+В вывод ниже показывает команды, которые используются для смены режима работы интерфейс с **trunk** на **access**.
+
+S1(config)# interface fa0/1
+S1(config-if)# switchport mode access
+S1(config-if)# end
+S1# show interfaces fa0/1 switchport
+Name: Fa0/1
+Switchport: Enabled
+Administrative Mode: static access
+Operational Mode: static access
+Administrative Trunking Encapsulation: dot1q
+Operational Trunking Encapsulation: native
+Negotiation of Trunking: Off
+Access Mode VLAN: 1 (default)
+Trunking Native Mode VLAN: 1 (default)
+Administrative Native VLAN tagging: enabled
+(output omitted)
\ No newline at end of file
diff --git a/90 Library/Networking/VLAN/VLAN.md b/90 Library/Networking/VLAN/VLAN.md
new file mode 100644
index 0000000..a62ee1d
--- /dev/null
+++ b/90 Library/Networking/VLAN/VLAN.md
@@ -0,0 +1,22 @@
+---
+status: stable
+type: moc
+tags:
+ - network
+ - networking
+ - vlan
+created: 2025-12-17
+updated: 2026-05-07
+title: VLAN
+---
+
+# VLAN
+
+%% Begin Waypoint %%
+- [[VLAN - диапазоны]]
+- [[VLAN - история и trunk]]
+- [[VLAN - настройка Cisco]]
+- [[VLAN - полная настройка Cisco]]
+- [[VLAN - Base]]
+
+%% End Waypoint %%
diff --git a/90 Library/Networking/VLSM.md b/90 Library/Networking/VLSM.md
new file mode 100644
index 0000000..52ebc92
--- /dev/null
+++ b/90 Library/Networking/VLSM.md
@@ -0,0 +1,66 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+created: 2025-12-17
+updated: 2026-05-07
+title: VLSM
+---
+
+# VLSM
+Стоит вспомнить про [[IP-адрес]], а конкретно то, что существует две версии IPv4 и IPv6.
+
+IP бывают _публичные_ и _приватные_. Публичный адрес уникален, он виден всем в интернете. Каждый сайт глобальной сети имеет свой IP-адрес (_белый_). Устройства же также имеют публичный IP-адрес, но под ним же в сеть могут выходить ещё сотни устройств, т.к. это IP не конкретного устройства, а маршрутизатора, который эти устройства обслуживает.
+
+Приватные же IP-адреса - это адреса, используемые в пределах одной сети, они могут повторяться в разрезе разных сетей, но в одной строго идентифицируют конкретное устройство. Стандартные диапазоны приватных сетей:
+
+1. 10.0.0.0-10.255.255.255
+2. 172.16.0.0 - 172.31.255.255
+3. 192.168.0.0 - 192.168.215.255
+
+В период зарождения интернета, было принято делить IP-адреса в интернете на классы:
+
+
+
+При этом, `0.0.0.0` используется для протокола DHCP, этот адрес присваивается новому устройству в сети и он отправляет **широковещательный** (_broadcast_) запрос на адрес `255.255.255.255`, т.е. всем устройствам сети, в надежде найти DHCP-сервер.
+
+`127.*.*.*` - используются для **lookback**-адресации (адресация на самом хосте).
+
+IP-адрес, в сущности, имеет две части:
+
+1. Адрес сети
+2. Адрес узла, который определяется маской сети
+
+**Маска сети** - это 32-битное число, где подряд идущие биты всегда равны _единице_. Вообще говоря, каждое десятичное число IP-адреса - это сумма степеней двойки.
+
+Принадлежность адреса к классу определялась по первым битам. Для сетей класса A, первый бит всегда был равен `0`, B - `10`, C - `110`. И, разумеется, за каждым классом закреплялась своя маска подсети:
+
+- A -> 255.0.0.0
+- B -> 255.255.0.0
+- C -> 255.255.255.0
+
+Со временем стало ясно, что система классов не особо эффективно использует адреса. Поэтому мир перешел на **CIDR** (_Classless Inter-Domain Routing_) или, проще говоря, бесклассовую адресацию.
+
+Однако, даже это не решило проблему полностью. Отделу бухгалтерии в крупной фирму надо выделить сеть с адресом `192.168.1.0/24`, при этом в отделе всего 25 хостов, значит 229 адресов остаются неиспользованными. `192.168.1.0` - адрес сети `192.168.1.255` - широковещательный адрес.
+
+Есть формула для вычисления кол-ва занятых адресов в указанной сети:
+
+$$H = 2^{n}-2,\ \text{где H - число хостов, n - число бит, отведенных под номер хоста}$$
+
+Например, в адресе `192.168.1.0` - первые 24 бита `192.168.1` - определяются номер сети, а остальные 8 бит `.0` - номер конкретного устройства, поэтому $2^{8}-2 = 254$ хоста.
+
+Вспоминаем про деление на подсети. Это не только позволяет экономить адресное пространство, но и дает дополнительную безопасность, т.к. пользователи одной подсети не могут слушать трафик другой подсети. Вдобавок, мы можем увеличивать количество широковещательных доменов, сокращая широковещательный трафик.
+
+В сегментировании сети используется маска сети с переменной длиной _**VLSM**_ (_Variable Length Subnet Mask_). Суть состоит в том, что вам выделяют пул (диапазон) адресов и надо их распределить так, чтобы никто не мог перехватить трафик, но и всем досталось, как минимум, по одному адресу.
+
+Выделением IP-адресов занимается организация _IANA_ (Internet Assigned Numbers Authority). Она делегирует права на выделение региональным регистраторам, которые выделяют адреса национальным регистраторам. Например, для Европы, региональным является _RIPE_. А те делят адреса между провайдерами.
+
+> IANA -> Региональные регистраторы - Национальные регистрации -> Провайдеры
+
+192.168.25.0/24, где 24 - кол-во единиц в маске. _255.255.255.0_
+
+Для определения количества подсетей: $N = 2^{n}$, где $N$ - число подсетей, а $n$ - число бит, заимствованных из хостовой части IP-адреса.
+
+
\ No newline at end of file
diff --git a/90 Library/Networking/VPN.md b/90 Library/Networking/VPN.md
new file mode 100644
index 0000000..16083c5
--- /dev/null
+++ b/90 Library/Networking/VPN.md
@@ -0,0 +1,28 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - vpn
+created: 2025-12-17
+updated: 2026-05-07
+title: VPN
+---
+
+# VPN
+VPN - Virtual Private Network (Виртуальная частная сеть) - Технология, позволяющая установить прямое виртуальное соединение между устройством и удаленным устройством (или сетью).
+
+Существуют два основных вида VPN:
+
+1. **Site-to-Site** - С пограничного маршрутизатора (VPN-шлюза) строится туннель до другого такого устройства, тем самым, объединяя обе сети в одну виртуальную, и рабочие станции с первой сети могут "достучаться" до станций второй сети безопасно и без препятствий.
+2. **Remote Access** - Использование удаленного сервера (VPN-сервера), для прогона всего трафика через него.
+
+Защита заключается в алгоритмах шифрования, которое бывает двух типов:
+
+- Симметричное - один и тот же ключ для зашифрования и дешифрования.
+- Ассимметричное - один для зашифровывания (открытый), один для расшифровывания (закрытый).
+
+## Связанные заметки
+- [[CA и NGINX]] — TLS-сертификат в NGINX реализует асcиметричное шифрование, описанное здесь; CA выдаёт пару ключей
+- [[Network Drivers - Docker]] — overlay-драйвер в Docker реализует принцип VPN: инкапсуляция трафика одной сети поверх другой
\ No newline at end of file
diff --git a/90 Library/Networking/Базовая настройка коммутатора.md b/90 Library/Networking/Базовая настройка коммутатора.md
new file mode 100644
index 0000000..d910fc0
--- /dev/null
+++ b/90 Library/Networking/Базовая настройка коммутатора.md
@@ -0,0 +1,88 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+created: 2025-12-17
+updated: 2026-05-07
+title: Базовая Настройка Коммутатора
+---
+
+# Базовая Настройка Коммутатора
+Сетевые железки, глобально, работают в режимах, разделяемые на три категории:
+
+1. Первая и основная - передача данных (плоскость данных, data plane).
+ Это режим работы коммутатора по передаче кадров, генерируемых устройствами, к нему подключенных. Иначе говоря, это _основной режим работы коммутатора._
+2. Управление передачей данных (плоскость управления, control plane).
+ Управление тем, _как_ передаются данные: какие порты активны, их скорость, работы **spanning tree** (блокировка петель маршрутизации) и т.д. Влияет непосредственно на работу **data plane**.
+
+ 3. Управление устройством (плоскость управления устройством, management plane)
+ Управление самим коммутатором, как устройством: доступ администратора, IP-адрес для удаленного доступа, мониторинг и т.д.
+ Не влияет напрямую на передачу данных
+
+## Защита Коммутатора Через CLI
+
+**Безопасность доступа к коммутатору Cisco**
+
+**Проблема по умолчанию:**
+
+- Любой с физическим доступом может подключиться через консоль/USB
+- Вход в user mode и privileged mode без пароля
+- Нет защиты из коробки
+
+**Важность защиты CLI:** Защита CLI критически важна, поскольку злоумышленник, получивший доступ к привилегированному режиму (`enable`), может перезагрузить коммутатор или изменить его конфигурацию. Защита пользовательского режима также необходима, так как она предотвращает просмотр настроек коммутатора и сети, которые могут быть использованы для последующих атак.
+
+### Основные Методы Защиты Входа
+
+В статье рассматриваются четыре основных метода защиты доступа к коммутатору:
+
+#### 1. Защита Простыми Общими Паролями
+
+По умолчанию коммутатор Cisco Catalyst позволяет любому пользователю подключиться через консольный порт и получить доступ к пользовательскому, а затем к привилегированному режиму без какой-либо защиты. Настройка общих паролей позволяет получить доступ к оборудованию, используя только пароль, без ввода имени пользователя.
+
+- **Консольный доступ:** Пароль настраивается для линии `line con 0`.
+- **Удаленный доступ (Telnet):** Пароль настраивается для терминальных линий `line vty 0 15` (vty – Virtual TeletYpe).
+- **Привилегированный режим (**`**enable**`**):** Защита настраивается с помощью команды `enable password` или `enable secret`.
+- **Рекомендация:** **Рекомендуется использовать команду** `**enable secret**`, так как она считается более безопасной по сравнению с `enable password`.
+
+**Пошаговая настройка общих паролей (Пример 2, 12, 13):**
+
+1. Установите пароль привилегированного режима: `enable secret password-value`.
+2. Настройте консоль: `line con 0` -> `password password-value` -> `login`.
+3. Настройте VTY (Telnet): `line vty 0 15` -> `password password-value` -> `login`.
+
+#### 2. Локальная Аутентификация По Имени Пользователя И Паролю
+
+Этот метод использует **пары имя пользователя / пароль**, настроенные непосредственно в локальной конфигурации коммутатора. Этот метод работает для входа по консоли, Telnet и SSH, но не влияет на пароль для перехода в привилегированный режим (`enable`).
+
+**Пошаговая настройка локальной аутентификации (19, 20, 21):**
+
+1. Создание пары: В режиме глобальной конфигурации используйте команду `username <имя> secret <пароль>`.
+2. Настройка консоли: В режиме `line con 0` используйте подкоманду `**login local**` для запроса имени пользователя и пароля из локальной базы.
+3. Настройка VTY: В режиме `line vty 0 15` используйте подкоманду `**login local**`.
+4. _Опционально:_ Используйте `no password` для удаления существующих простых общих паролей.
+
+#### 3. Использование Внешних Серверов Аутентификации (AAA)
+
+Использование локальной базы данных на каждом устройстве неудобно для администрирования. **Серверы аутентификации, авторизации и учета (AAA)** обеспечивают централизованное и безопасное хранение всех пар имя пользователя / пароль.
+
+- Коммутатор отправляет полученные учетные данные на внешний AAA-сервер для проверки.
+- Соединение между коммутатором и AAA-сервером обычно осуществляется с использованием протоколов **RADIUS** или **TACACS+**, которые шифруют пароли при передаче по сети.
+
+#### 4. Защита Удаленного Доступа С Помощью Secure Shell (SSH)
+
+**Telnet** имеет серьезный недостаток: **все данные, включая пароли, передаются в открытом виде**. Протокол **SSH шифрует все передаваемые данные**, защищая их.
+
+- **Требования:** SSH, в отличие от простых общих паролей, требует использования метода аутентификации, который включает имя пользователя (например, локальная база или AAA-сервер).
+- **Настройка SSH (33):** Для настройки SSH на коммутаторе необходимо выполнить следующие шаги:
+ 1. Задать имя хоста: `hostname `.
+ 2. Задать доменное имя: `ip domain-name `.
+ 3. Сгенерировать ключи шифрования RSA: `**crypto key generate rsa**` (рекомендуется использовать ключ не менее 768 бит для SSHv2).
+
+**Управление протоколами удаленного доступа (31, 32):** Чтобы повысить безопасность, можно отключить Telnet на линиях vty. Для управления разрешенными протоколами используется подкоманда `transport input` в режиме конфигурации линий vty:
+
+- `transport input all` или `transport input telnet ssh`: Поддержка и Telnet, и SSH (по умолчанию).
+- `transport input ssh`: **Поддержка только SSH**.
+- `transport input telnet`: Поддержка только Telnet.
+- `transport input none`: Не поддерживается ни один протокол.
\ No newline at end of file
diff --git a/90 Library/Networking/Введение в сетевую безопасность.md b/90 Library/Networking/Введение в сетевую безопасность.md
new file mode 100644
index 0000000..cc0f350
--- /dev/null
+++ b/90 Library/Networking/Введение в сетевую безопасность.md
@@ -0,0 +1,74 @@
+---
+status: seed
+type: concept
+tags:
+ - networking
+ - security
+ - infosec
+created: 2025-12-17
+updated: 2026-05-07
+title: Введение в сетевую безопасность
+---
+
+# Введение в сетевую безопасность
+
+**Сетевая безопасность** — часть информационной безопасности, которая защищает сетевую инфраструктуру, передаваемые данные и доступ к сетевым ресурсам.
+
+Сетевая безопасность связана с архитектурой сети, политиками доступа, сегментацией, мониторингом и защитой от атак. В контексте сети рядом лежат темы [[Сегментация сети]], [[VPN]] и [[Networking - MOC]].
+
+## CIA: базовая модель безопасности
+
+Информационная безопасность описывает состояние защищённости информации, при котором обеспечиваются:
+
+- **конфиденциальность** — информация недоступна неавторизованным пользователям;
+- **целостность** — информация не искажена и не подменена;
+- **доступность** — система и данные доступны легитимным пользователям.
+
+## Идентификация, аутентификация, авторизация
+
+- **Идентификация** — присвоение субъектам и объектам уникальных идентификаторов.
+- **Аутентификация** — проверка подлинности пользователя или системы.
+- **Авторизация** — проверка прав доступа к объектам и операциям.
+
+## Принципы защиты
+
+Для повышения уровня безопасности полезны следующие принципы:
+
+- **простота** — меньше лишних технологий и механизмов, меньше поверхность атаки;
+- **безопасные настройки по умолчанию** — доступ запрещён, если он явно не разрешён;
+- **полная опосредованность** — каждое обращение к ресурсу проходит проверку прав;
+- **минимизация полномочий** — субъект получает только необходимые права;
+- **разделение ответственности** — разные части системы получают разные зоны ответственности и доступы.
+
+## Уязвимость, угроза и атака
+
+> [!info] Уязвимость
+> **Уязвимость** — слабое место системы, которое может позволить нарушить её безопасность.
+
+Примеры уязвимостей:
+
+- ошибка в программе;
+- слабый пароль;
+- неправильные права доступа;
+- небезопасная конфигурация сети.
+
+**Угроза** — набор обстоятельств и действий, которые потенциально могут привести к нарушению безопасности.
+
+**Атака** — реализованная угроза.
+
+## Поиск уязвимостей
+
+Поиск уязвимостей включает регулярное тестирование системы и анализ её состояния. Для автоматизации применяются сканеры уязвимостей, например OpenVAS и Nessus.
+
+Сканирование обычно строится так:
+
+1. Инструмент отправляет запросы к целевой системе.
+2. По ответам формируется информационный отпечаток.
+3. Отпечаток сравнивается с базой известных уязвимостей.
+4. Формируется отчёт с найденными проблемами.
+
+## Связанные заметки
+
+- [[Networking - MOC]]
+- [[Сегментация сети]]
+- [[VPN]]
diff --git a/90 Library/Networking/Витая пара.md b/90 Library/Networking/Витая пара.md
new file mode 100644
index 0000000..6804ae2
--- /dev/null
+++ b/90 Library/Networking/Витая пара.md
@@ -0,0 +1,51 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+created: 2025-12-17
+updated: 2026-05-07
+title: Витая Пара
+---
+
+# Витая Пара
+**Почему патч-корд?**
+
+Предположительно, вторым названием витой пары стал патч-корд, потому что в серверных стойках устройства, предоставляющие прямой доступ к портам коммутатора называют патч-панелью, а витая пара вставляется как раз в такую патч-панель.
+
+Витой парой, обычно, называют кабель, состоящий из пары (нескольких пар) скрученных между собой проводов в единой оболочке. Современные кабели предоставляют на концах (для связи устройств) коннекторы с восьмиконтактными разъемами `8P8C`. В обиходе его называют `RJ45`, но это неверно, `RJ45` - это другой стандарт связи, несовместимый с `8P8C`, пусть и напоминающем его по внешнему виду.
+
+Кабели витой пары имеют более десятка разных стандартов, но многие из них канули в лету из-за низкой скорости. Стандарт, на данный момент, это _8 изолированных проводов_, попарно свитых между собой, заключенных в общую оболочку. Для удобства распиновки (а это важно, ведь при ошибках, работать не будет), каждый провод обозначается своим цветом.
+
+
+
+- бело-оранжевый (БО) оранжевый (О);
+- бело-зеленый (БЗ) зеленый (З);
+- бело-синий (БС) синий (С);
+- бело-коричневый (БК) коричневый (К;)
+
+Существует 3 основных способа коммутации сетевых кабелей:
+
+1. Прямое
+ - соединение разнородных устройств (ПК - коммутатор)
+ - используется одинаковый обжим по одному из стандартов (568A-568A или 568B-568B)
+ - наиболее распространен в LAN
+2. Кросс-соединение
+ - соединение однородных устройств (ПК-ПК, коммутатор-коммутатор)
+ - обжимаются по разным стандартам (один по 568A, другой по 568B)
+ - нужен для передачи данных по одинаковым портам, т.к. осуществляется перекрестное соединение сигнальных пар
+ - в современных устройствах не используется, т.к. поддерживается авто-согласование (_Auto-MDI/MDIX_)
+3. Консольное (rollover)
+ - используется исключительно для подключения в консольный порт сетевого оборудования для его настройки
+ - обжим происходит по особенному принципу: порядок проводов на одном конце кабеля _зеркально противоположен_ другому концу
+ - используется исключительно в сервисных целях, а не для передачи данных
+
+## Стандарты Обжима
+
+|Стандарт|Один конец|Второй конец|
+|---|---|---|
+|TIA/EIA-568A|_БЗ-З-БО_-С-БС-_О_-БК-К|-|
+|TIA/EIA-568B|_БО-О-БЗ_-С-БС-_З_-БК-К|-|
+|Кросс-соединение|_БЗ-З-БО_-С-БС-_О_-БК-К|_БО-О-БЗ_-С-БС-_З_-БК-К|
+|Консольное|**БО-О-БЗ-С-БС-З-БК-К**|**К-БК-З-БС-С-БЗ-О-БО**|
\ No newline at end of file
diff --git a/90 Library/Networking/Иерархическая модель Cisco.md b/90 Library/Networking/Иерархическая модель Cisco.md
new file mode 100644
index 0000000..9a811d8
--- /dev/null
+++ b/90 Library/Networking/Иерархическая модель Cisco.md
@@ -0,0 +1,48 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+created: 2025-12-17
+updated: 2026-05-07
+title: Иерархическая Модель Cisco
+---
+
+# Иерархическая Модель Cisco
+Сетевая модель от компании Cisco предлагает правила по созданию сети внутри предприятия. Подразделяются на 3 уровня:
+
+1. Уровень ядра (Core Level)
+2. Уровень распределения (Distribution Level)
+3. Уровень доступа (Access Level)
+
+
+
+## Уровень Ядра | Внутренний Уровень (Core Level)
+
+Также называется сетевым магистральным уровнем и отвечает за обеспечение транспорта между распределительными коммутаторами в пределах предприятия.
+
+На этом уровне очень важна отказоустойчивость и качество соединения, поэтому оборудованием являются устройства высокого класса, имеющий модульный форм-фактор. Основным здесь является сохранение конфигурации как можно более минимальной на уровне ядра.
+
+## Распределительный Уровень | Distribution Level
+
+Уровень, стоящий между уровнем ядра и уровнем доступа. Обеспечивает маршрутизацию, фильтрацию, WAN-доступ, а также визуализировать связь между уровнями.
+
+Основные функции:
+
+- Аккумулирование каналов LAN/WAN - увеличение пропускной способности за счет объединения каналов связи
+- Контроль доступа и фильтрация
+- Маршрутизация между локальными сетями и VLAN
+- Управление широковещательным доменом
+
+## Уровень Доступа | Access Level
+
+Включает в себя коммутаторы 2 уровня и точки доступа, обеспечивая подключение к рабочим станциям и серверам (Endpoints).
+
+- Коммутация уровня 2;
+- Высокая доступность;
+- Безопасность портов;
+- Классификация и маркировка QoS;
+- Граница доверия;
+- Списки контроля доступа (ACL);
+- Остовное дерево.
\ No newline at end of file
diff --git a/90 Library/Networking/Инкапсуляция данных.md b/90 Library/Networking/Инкапсуляция данных.md
new file mode 100644
index 0000000..c34008a
--- /dev/null
+++ b/90 Library/Networking/Инкапсуляция данных.md
@@ -0,0 +1,48 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+created: 2025-12-17
+updated: 2026-05-07
+title: Инкапсуляция Данных
+---
+
+# Инкапсуляция Данных
+Согласно моделям [[Модель OSI|OSI]] и TCP/IP данные передаются последовательно от приложения ниже по уровням, далее по физическому уровню от отправителя к получателю, а у получателя последовательно вверх к уровню приложения. Процесс "спуска" сверху вниз называется _**инкапсуляцией**_, а "подъем" снизу вверх - _**деинкапсуляцией**_
+
+## Инкапсуляция
+
+_Инкапсуляция данных_ - это процесс добавления к исходным данным, полученным с уровня приложения (L7), некоторой дополнительной служебной информации, которая позволяет надлежащим образом обрабатывать и передавать исходную информацию. Добавляться информация может как в заголовок (**header**), так и в конец (**footer**, **trailer**) данных.
+
+## Деинкапсуляция
+
+_Деинкапсуляция данных_ - процесс, очевидно, обратный инкапсуляции. Информация, полученная на уровне `n` в процессе инкапсуляции, обрабатывается тем же уровнем `n` в процессе деинкапсуляции и эта информация удаляется из данных.
+
+
+
+## Процесс Инкапсуляции
+
+1. Приложение получает какие-то данные (имеются ввиду L7+L6+L5), обрабатывает, инкапсулирует (как - не столь важно, это зависит от приложения, притом не обязательно, добавляя _headers_).
+2. Транспортный (L4) уровень получает поток данных и разделяет на несколько частей. К каждой части добавляет заголовок, теперь это "**сегменты данных**". Заголовки содержат информацию о последовательности, что позволяет получателю собрать сегменты в полноценный поток данных.
+3. Сетевой (L3) уровень получает сегменты данных, добавляя им заголовок, содержащий служебную информацию о маршрутизации для правильной доставки данных. Теперь сегмент называется пакетом или дейтаграммой (datagram).
+4. Канальный (L2) уровень берет пакет и добавляет к нему **заголовок**, содержащий информацию для коммутации конкретным аппаратным компонентам, а также нижний **футер**, содержащий информацию, связанную с обнаружением ошибок. Здесь данные называются фреймом (_frame_) данных.
+5. Физический (L1) уровень работает с фреймами, преобразуя их в физический сигнал.
+
+## Процесс Деинкапсуляции
+
+1. L1 принимает физический сигнал и преобразовывает в фреймы данных.
+2. L2 проверяет заголовок фрейма, правильно ли он пришел (если нет - выбрасываем), дальше проверяет футер, если есть ошибка, то запрашивается повторная передача данных, иначе, пересылает выше.
+3. L3 получает пакет и смотрит на заголовок (проверка правильности маршрутизации), если всё нормально, то сегмент данных пересылается дальше.
+4. L4 проверяет заголовок сегмента, затем собирает все сегменты в нужном порядке для формирования потока данных.
+5. L5+L6+L7 преобразуют поток данных по правилам конкретного ПО и выдают конечному пользователю.
+
+> **Сегментирование данных**
+>
+> Сегментирование - процесс разбиение сообщения на более мелкие единицы. Мультиплексирование - процесс получение нескольких потоков сегментированных данных.
+>
+> Сегментация имеет два основных преимущества:
+>
+> 1. Высокая скорость - нет нужны отправлять весь файл по одному каналу связи, можно отправить много сегментов по многим каналам.
+> 2. Большая эффективность - при потере одного сегмента не надо перекачивать весь файл, а нужно заново скачать только этот сегмент.
\ No newline at end of file
diff --git a/90 Library/Networking/Коммутатор L3 vs Маршрутизатор.md b/90 Library/Networking/Коммутатор L3 vs Маршрутизатор.md
new file mode 100644
index 0000000..4529390
--- /dev/null
+++ b/90 Library/Networking/Коммутатор L3 vs Маршрутизатор.md
@@ -0,0 +1,33 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+created: 2025-12-17
+updated: 2026-05-07
+title: Коммутатор L3 Vs Маршрутизатор
+---
+
+# Коммутатор L3 Vs Маршрутизатор
+**Коммутатор L3 (Layer 3 switch):**
+
+- Основная задача - _коммутация на уровне L2 с возможностью маршрутизации между VLAN_
+- Аппаратная маршрутизация (ASIC) - очень высокая скорость
+- Много портов (24-48+)
+- Ограниченный функционал маршрутизации
+- Простые протоколы (статика, RIP, иногда OSPF)
+- Работает внутри локальной сети/ЦОД
+
+**Маршрутизатор:**
+
+- Основная задача - маршрутизация между сетями
+- Программная или смешанная обработка
+- Мало портов (2-8)
+- Полный функционал маршрутизации (BGP, OSPF, QoS, NAT, VPN, firewall)
+- Работает на границе сетей/в WAN
+
+**Простая аналогия:**
+
+- L3 switch - быстрая маршрутизация между этажами внутри здания
+- Router - соединение зданий между собой с контролем трафика
\ No newline at end of file
diff --git a/90 Library/Networking/Модель OSI.md b/90 Library/Networking/Модель OSI.md
new file mode 100644
index 0000000..92f8b39
--- /dev/null
+++ b/90 Library/Networking/Модель OSI.md
@@ -0,0 +1,78 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - osi
+created: 2025-12-17
+updated: 2026-05-07
+title: Модель OSI
+---
+
+# Модель OSI
+
+**Модель OSI (Open Systems Interconnection)** - это база всех сетей. Теоретическая база, определяющая протоколы, равномерно распределяя их на 7 логических уровней.
+
+_Протокол_ - это набор правил и соглашений, которые определяет, как будет происходить обмен данными. Важно, что в любом процессе, управление сетевой передачей переходит от уровня к уровню, добавляя все новую информацию к исходной информации.
+
+Нижние уровни отвечают за физическую передачу данных по проводам (представление в токи, нули и единицы). Верхние же отвечают за сетевые данные с точки зрения пользователя.
+
+
+
+## 01: Физический (physical) Уровень
+
+На самом первом уровне происходит передача _физических_ сигналов (токи, свет, радиоволны) от источника к получателю. На этом уровне оперируем кабелями, контактами, модуляцией, патч-кордами, патч-панелями и кодированием нулей и единиц.
+
+Основным протоколом является [[Ethernet]]
+
+Устройствами, используемыми на этом уровне, выступают хабы и репитеры. Они весьма глупые, просто работают с физ.сигналом (например, усиливают).
+
+## 02: Канальный (data Link) Уровень
+
+После получения физического сигнала (набор напряжений разной амплитуды, волн, радиочастот), второй уровень проверяет и исправляет ошибки передачи. На этом уровне мы оперируем понятием _frame_ или кадр. Появляются идентификатора - [[MAC-адрес]]
+
+> MAC-адрес MAC-адрес — уникальный идентификатор устройства в сети, который используется для определения источника и назначения данных на уровне канального уровня модели OSI.
+
+**В общем, он отвечает за передачу данных в одной сети.**
+
+Делится на два подуровня:
+
+1. **Управление логическим каналом** (LLC, Logical Link Control) - обеспечение надежной передачи данных, контроль ошибок, управление потоком и идентификация протоколов. Позволяет различным протоколам работать на одном физическом носителе.
+2. Управление доступом к среде (MAC, Media Access Control) - регуляция кто и как может получить доступ к сетевому средству.
+
+На этом уровне работают коммутаторы (switch) и _мосты_ (bridge). Ну и _**Ethernet**_ (L1 + L2) для соединения этого всего безумия.
+
+L1 + L2 работают исключительно в парадигме локальной сети (LAN).
+
+## 03: Сетевой (network) Уровень
+
+На сетевом уровне, мы вводим понятие _маршрутизации_ и, следовательно, [[IP-адрес|ip-адреса]]
+Для преобразования IP-адреса в MAC и обратно используется протокол **ARP**.
+
+> [!tldr] ARP ARP (Address Resolution Protocol) — протокол, используемый для определения MAC-адреса устройства по его IP-адресу в локальной сети.
+
+На этом уровене происходит маршрутизация трафика, если мы хотим перейти на конкретный сайт example.ru, то устройство отправляет запрос к DNS-серверу, тот отправляет ответ в виде IP-адреса сервера этого сайта и мы подставляем его в _пакет_ (в отличии от L2, L3 оперирует понятием _пакет_).
+
+Основное устройство - маршрутизатор (роутер).
+
+> Процесс передачи данных с верхнего уровня на нижние называется **инкапсуляцией** (мы добавляем все больше служебной информации), а обратно **деинкапсуляцией**.
+
+## 04: Транспортный (transport) Уровень
+
+Транспортный уровень обеспечивает передачу данных по сети. Основными протоколами являются TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Применяются они для разных категорий трафика.
+
+- Если нам нужна точность в передаче данных - TCP (пароли, транзакции, почта).
+- Если важна скорость, но не так страшны потери - UDP (видео, звонки).
+
+[[TCP vs UDP]]
+
+---
+
+Дальше идут уровни, с которыми сетевой инженер, как таковыми, не работает - это задача разработчиков софта.
+
+## 05-07: Верхние Уровни OSI
+
+1. 05: Сеансовый (session) уровень - Сеансовый уровень занимается тем, что управляет соединениями, или попросту говоря, сессиями. Он их разрывает.
+2. 06: Уровень представления (presentation) - Отвечает за преобразование форматов сообщений (кодирование, сжатие). Протоколы JPEG, GIF, например. Отвечает ещё за передачу потока на L4.
+3. 07: Уровень приложения (application) - Оперирует сетевыми службами. HTTP(-S), SMTP, FTP.
\ No newline at end of file
diff --git a/90 Library/Networking/Пример настройки DHCPv6.md b/90 Library/Networking/Пример настройки DHCPv6.md
new file mode 100644
index 0000000..818e363
--- /dev/null
+++ b/90 Library/Networking/Пример настройки DHCPv6.md
@@ -0,0 +1,27 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+created: 2025-12-18
+updated: 2026-05-07
+title: Пример Настройки DHCPv6
+---
+
+# Пример Настройки DHCPv6
+![[Pasted image 20251219101128.png]]
+В этом примере у нас есть DHCP-клиент, маршрутизатор и DHCP-сервер. Поскольку DHCP-клиент и DHCP-сервер не находятся в одной подсети, нам придется настроить маршрутизатор для ретрансляции сообщений DHCP.
+
+![[Pasted image 20251219101452.png]]
+Клиент будет использовать свой link-local адрес в качестве источника, а адрес назначения будет многоадресный адрес **FF02:: 1:2 (all-DHCP-agents)**. Это **link-local multicast** адрес, поэтому он не будет покидать подсеть. В результате DHCP-сервер никогда не получит это сообщение запроса.
+
+Настройка ретрансляции DHCPv6 запросов, чтобы запрашиваемое сообщение было переадресовано DHCP-серверу:
+```js
+Router(config)# interface fa0/0
+Router(config-if)# ipv6 dhcp relay destination 2001:5:6:7::2
+```
+![[Pasted image 20251219102347.png]]
+Маршрутизатор переадресует сообщение запроса, и адрес будет изменнен. Источником будет IPv6-адрес на интерфейсе Fa1/0 нашего маршрутизатора, а местом назначения-IPv6-адрес DHCP-сервера. Это большая разница по сравнению с DHCP relay для IPv4, где был бы использован IP-адрес на Fa0/0.
+
+Другие сообщения DHCP будут использовать те же адреса. Между маршрутизатором и DHCP-сервером мы будем использовать **2001:5:6:7::1** и еще **2001:5:6:7::2 адреса**. Маршрутизатор будет перенаправлять трафик на DHCP-клиент, используя его link-local адрес и в качестве места назначения.
\ No newline at end of file
diff --git a/90 Library/Networking/Протоколы/ARP.md b/90 Library/Networking/Протоколы/ARP.md
new file mode 100644
index 0000000..aa875a6
--- /dev/null
+++ b/90 Library/Networking/Протоколы/ARP.md
@@ -0,0 +1,78 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - protocols
+ - arp
+created: 2025-12-17
+updated: 2026-05-07
+title: ARP
+---
+
+# ARP
+## Адресация
+
+Адреса L2 используются для связи устройств, связанных напрямую в локальной сети. Адреса же L3 для связи устройств, подключенных косвенно в межсетевой среде.
+
+Сети используют адресацию для идентификации и группировки устройств для успешной передачи данных. Протокол [[Ethernet]] использует MAC-адреса, привязанные к сетевой карте устройства.
+
+Для общения устройств, находящихся в разных сетях, необходимо установить соответствие IP и MAC адресов. Для этого используются протоколы ARP:
+
+1. ARP - Address Resolution Protocol
+2. Reverse ARP (RARP)
+3. Serial Line ARP (SLARP)
+4. Inverce ARP (InARP)
+
+## Address Resolution Protocol
+
+Для передачи данных на L3 ARP необходим для сопоставления IP с MAC для отправки IP-пакетов. Перед отправкой, устройство обратится к своему кешу ARP, где хранятся все сопоставления IP и MAC для того, чтобы узнать, есть ли там соответствие. Если же записи нет, то оно отправляет _широковещательный_ пакет каждому устройство в сети, чтобы узнать, кому принадлежит соответствующий IP адрес. Устройства сами сравнивают запрашиваемый IP со своим и, при совпадении, нужное устройство отправляет в ответ свой MAC-адрес. Исходное устройство добавляет эту информацию в свою таблицу ARP для дальнейшего использования.
+
+
+
+Если устройство назначения находится в удаленной сети, то устройства L3 отправляют один за одним ARP-запрос для MAC-адреса шлюза по умолчанию (192.168.0.1, например).
+
+> Шлюз - это устройство, куда направляется пакет, если для отправителя получатель неизвестен.
+
+Далее шлюз смотрит по IP-адресу, ищет нужную сеть и отправляет на устройство L3 соответствующей сети.
+
+## Кэширование ARP
+
+Т.к. сопоставление IP и MAC адресов происходит на каждом "хопе" в сети для каждого пакета, производительность сети может быть снижена огромным количеством запросов. Для эффективного использования ресурсов сети, применяется кэширование протокола ARP.
+
+Кэш ARP - это способ хранения таблицы соответствия IP и MAC адресов. Запиши кэша должны обновляться для поддержания актуальности. Каждое устройство обновляет свои таблицы по мере передачи адресов.
+
+## Статические И Динамические Записи В Кэше ARP
+
+Существуют записи статического и динамического ARP-кэша. Статические записи - это вручную проставленные записи соответствия, они сохраняются на постоянной основе. Динамические выставляются сами и могут обновляться по мере необходимости.
+
+Для статической маршрутизации, администратор должен вручную вводить IP-адрес, маски подсети, шлюзы, соответствующий MAC-адрес. Статика обеспечивает больший контроль, но создает дополнительную работу при поддержании.
+
+## Устройства, Не Использующие ARP
+
+Когда сеть делится на два сегмента, устройство под названием _мост_ (bridge) соединяет сегменты и фильтрует трафик на каждый сегмент на основе MAC-адресов. Мост создает собственную таблицу, использующую только MAC, в отличие от маршрутизатора, который имеет кэш ARP, который содержит как IP-адреса, так и соответствующие MAC-адреса.
+
+Пассивные хабы - это устройства L1, работа которых заключается в пересылке всех пакетов, полученных на один порт, на все основные порты. Нет необходимости в таблице адресов.
+
+## Inverce ARP
+
+Вместо использования адреса уровня 3 (IP-адреса) для поиска MAC-адреса, Inverse ARP использует MAC-адрес для поиска IP-адреса. Как следует из названия, InARP - это просто противоположность ARP. Обратный ARP был заменен более поздними версиями DHCP, но обратный ARP используется исключительно для настройки устройства. Обратный ARP включен по умолчанию в сетях ATM (Asynchronous Transfer Mode)
+
+> ATM (Asynchronous Transfer Mode) — это сетевая технология передачи данных, которая используется для передачи информации в виде небольших фиксированных ячеек размером 53 байта.
+
+## Reverse ARP
+
+Reverse ARP (RARP) - работает так же, как и протокол ARP, но целью является запрос IP-адреса, исходя из MAC-адреса устройства. Используется бездисковыми устройства, не имеющим возможности хранить свой IP на постоянной основе.
+
+## Proxy ARP
+
+Если два устройства находятся в разных сегментах сети, например, подключены к разным коммутаторам, которые, в свою очередь, подключены к одному маршрутизатору, то получается ситуация, при которой они не могут друг друга увидеть, т.к. маршрутизатор не передает широковещательный запрос ARP (для поиска MAC по IP). В таком случае, маршрутизатор становится "соседом" для каждого устройства, передавая отправителю свой MAC, как ответ, а отправитель отправляет данные на маршрутизатор, а тот уже пересылает нужному устройству в другом сегменте.
+
+Proxy ARP вызывается следующими условиями:
+
+- IP-адрес назначения не находится в той же физической сети (LAN), на которой получен запрос.
+- Сетевое устройство имеет один или несколько маршрутов к IP-адресу назначения.
+- Все маршруты к IP-адресу назначения проходят через интерфейсы, отличные от тех, на которых получен запрос.
+
+Когда proxy ARP отключен, устройство отвечает на запросы ARP, полученные на его интерфейсе, только если IP-адрес назначения совпадает с его IP-адресом или если целевой IP-адрес в ARP-запросе имеет статически настроенный псевдоним ARP.
\ No newline at end of file
diff --git a/90 Library/Networking/Протоколы/DHCP/DHCP-snooping.md b/90 Library/Networking/Протоколы/DHCP/DHCP-snooping.md
new file mode 100644
index 0000000..3d2a5c8
--- /dev/null
+++ b/90 Library/Networking/Протоколы/DHCP/DHCP-snooping.md
@@ -0,0 +1,17 @@
+---
+status: seed
+type: concept
+tags:
+ - network
+ - networking
+ - protocols
+ - dhcp
+created: 2025-12-22
+updated: 2026-05-07
+title: DHCP-snooping
+---
+
+# DHCP-snooping
+DHCP-snooping - функция коммутатора, предназначенная для защиты от атак с использованием протокола DHCP.
+
+Например, атаки с подменой **DHCP**-сервера в сети или атаки **DHCP** starvation, которая заставляет **DHCP**-сервер выдать все существующие на сервере адреса злоумышленнику.
\ No newline at end of file
diff --git a/90 Library/Networking/Протоколы/DHCP/DHCP.md b/90 Library/Networking/Протоколы/DHCP/DHCP.md
new file mode 100644
index 0000000..8ee9fc6
--- /dev/null
+++ b/90 Library/Networking/Протоколы/DHCP/DHCP.md
@@ -0,0 +1,34 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - protocols
+ - dhcp
+created: 2025-12-17
+updated: 2026-05-07
+title: DHCP
+---
+
+# DHCP
+DHCP - **Dynamic Host Configuration Protocol**
+
+При простой конфигурации сети (устройств мало и они не изменяются), сетевой администратор может спокойно сам прописать всем устройствам статичный IP и это нормально.
+
+Но если в сети есть мобильные клиенты или устройства постоянно то приходят, то уходят, то задача становится весьма трудоемкой. Для решения это проблемы существует протокол DHCP, позволяющий удобно управлять распределением адресов в сети.
+
+Существует 3 механизма работы DHCP:
+
+1. Manual Allocation (Ручное распределение) - администратор предварительно настраивает IPv4 адрес клиенту, а сервер его автоматически передает.
+2. Automatic Allocation (Автоматическое) - Администратор выделяет пул адресов серверу и тот сам распределяет их между клиентами, но нет понятия "аренды" после присвоения этот IP остается с клиентом навсегда.
+3. Dynamic Allocation (Динамическое распределение) - сервер динамически назначает IP-адреса из выделенного пула на ограниченный срок, после его истечения, устройство должно заново запросить IP. Сервер, как правило, просто продлевает аренду.
+
+%% Begin Waypoint %%
+- [[Механизм работы - DHCP]]
+- [[Настройка DHCP - Cisco]]
+- [[Настройка DHCP Snooping и DAI]]
+- [[DHCP-snooping]]
+- [[Dynamic ARP Inspection]]
+
+%% End Waypoint %%
diff --git a/90 Library/Networking/Протоколы/DHCP/Dynamic ARP Inspection.md b/90 Library/Networking/Протоколы/DHCP/Dynamic ARP Inspection.md
new file mode 100644
index 0000000..852db3b
--- /dev/null
+++ b/90 Library/Networking/Протоколы/DHCP/Dynamic ARP Inspection.md
@@ -0,0 +1,19 @@
+---
+status: seed
+type: concept
+tags:
+ - network
+ - networking
+ - protocols
+ - dhcp
+ - arp
+created: 2025-12-22
+updated: 2026-05-07
+title: Dynamic ARP Inspection
+---
+
+# Dynamic ARP Inspection
+**Dynamic ARP Inspection** — функция коммутатора, предназначенная для защиты от атак с использованием протокола ARP.
+
+Например, атаки ARP-spoofing, позволяющей перехватывать трафик между узлами, которые расположены в пределах одного широковещательного домена.
+Данная функция предотвращающая атаку типа **Man-in-The-Middle**. Это такой вид атаки, когда к вашей сети подключается устройство злоумышленника и, например, объявляет, что IP адрес, принадлежащий авторизованному серверу, принадлежит ему. После этого все данные, которые отправляются на сервер переходят через устройство злоумышленника.
\ No newline at end of file
diff --git a/90 Library/Networking/Протоколы/DHCP/Механизм работы - DHCP.md b/90 Library/Networking/Протоколы/DHCP/Механизм работы - DHCP.md
new file mode 100644
index 0000000..c8c9705
--- /dev/null
+++ b/90 Library/Networking/Протоколы/DHCP/Механизм работы - DHCP.md
@@ -0,0 +1,33 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - protocols
+ - dhcp
+created: 2025-12-17
+updated: 2026-05-07
+title: Механизм Работы - DHCP
+---
+
+# Механизм Работы - DHCP
+Получение IP-адреса по механизму DORA (Discovery, Offer, Request, Ack)
+
+1. dhcpDISCOVER
+ Клиент, у которого нет IP-адреса, отправляет широковещательный запрос (broadcast) в сеть. В нем он сообщает свой MAC-адрес с адресом назначения `255.255.255.255`, и т.к. у клиента ещё нет IP, то отправитель - `0.0.0.0`
+2. dhcpOFFER
+ После получения запроса, существующий в сети DHCP-сервер резервирует свободный адрес из пула и создает ARP запись (сопоставление MAC и IP) и отправляет на `0.0.0.0` "предложение" клиенту с этим IP.
+3. dhcpREQUEST
+ Ответ клиента уже с полученным IP, если DHCP-серверов несколько, то ответ также широковещательный.
+ Используется request также и для продления.
+4. dhcpACK
+ Сервер отправляет "подтверждение принятия" клиентом адреса и окончательно фиксирует аренду.
+
+
+
+При истечении аренды IP-адреса, клиент отправляет REQUEST-запрос серверу, который выдал ему адрес для продления, для получения ACK.
+
+Если сервер не отвечает, то клиент отправляет broadcast-запрос ко всем серверам.
+
+
\ No newline at end of file
diff --git a/90 Library/Networking/Протоколы/DHCP/Настройка DHCP - Cisco.md b/90 Library/Networking/Протоколы/DHCP/Настройка DHCP - Cisco.md
new file mode 100644
index 0000000..ae5f1a9
--- /dev/null
+++ b/90 Library/Networking/Протоколы/DHCP/Настройка DHCP - Cisco.md
@@ -0,0 +1,49 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - protocols
+ - dhcp
+created: 2025-12-17
+updated: 2026-05-07
+title: Настройка DHCP - Cisco
+---
+
+# Настройка DHCP - Cisco
+
+- **Исключение адресов из пула**
+
+```text-plain
+Router(config)# ip dhcp excluded-address 192.168.1.254
+Router(config)# ip dhcp excluded-address 192.168.1.1 192.168.1.9
+```
+
+- **Настройка DHCP-пула**
+
+```bash
+Router(config)# ip dhcp pool POOL-1 - создание пула
+Router(dhcp-config)# network 192.168.1.0 255.255.255.0
+Router(dhcp-config)# default-router 192.168.1.1
+
+Router(dhcp-config)# dns-server 192.168.1.2 - dns-сервер
+Router(dhcp-config)# domain-name merionet.ru - доменное имя
+Router(dhcp-config)# lease 2 - время аренды
+
+Router(dhcp-config)# show ip dhcp binding - ARP-таблица
+```
+
+- Ретрансляция DHCP (DHCP RELAY)
+
+```bash
+Router_2(config)# interface g0/0
+Router_2(config-if)# ip helper-address 192.168.1.1
+```
+
+- Настройка роутера как DHCP-клиента
+
+```text-plain
+Router_3(config)# interface g0/0
+Router_3(config-if)# ip address dhcp
+```
\ No newline at end of file
diff --git a/90 Library/Networking/Протоколы/DHCP/Настройка DHCP Snooping и DAI.md b/90 Library/Networking/Протоколы/DHCP/Настройка DHCP Snooping и DAI.md
new file mode 100644
index 0000000..1338774
--- /dev/null
+++ b/90 Library/Networking/Протоколы/DHCP/Настройка DHCP Snooping и DAI.md
@@ -0,0 +1,61 @@
+---
+status: seed
+type: lab
+tags:
+ - network
+ - networking
+ - protocols
+ - dhcp
+created: 2025-12-22
+updated: 2026-05-07
+title: Настройка DHCP Snooping И DAI
+---
+
+# Настройка DHCP Snooping И DAI
+Чтобы включить DHCP Snooping и DAI нужно, для начала, задать доверенные и не доверенные порты. По умолчанию, все порты, к которым подключаются конечные пользователи считаются **не доверенными**.
+
+```js
+AccSwitch# conf t
+AccSwitch(config)#
+AccSwitch(config)#int ra gi1/0/1-46
+AccSwitch(config-if-range)#ip dhcp snooping limit rate 15
+AccSwitch(config-if-range)#ip arp inspection limit rate 100
+```
+
+Тут мы задаем количество пакетов, которые должны проходить через не доверенный интерфейс. Обычно такого числа пакетов хватает для получения и обновления IP адреса. Далее настраиваем доверенные интерфейсы:
+```js
+AccSwitch(config)#int ra gi1/0/47-48
+AccSwitch(config-if-range)#ip dhcp snooping trust
+AccSwitch(config-if-range)#ip arp inspection trust
+```
+
+После этого глобально включаем DHCP Snooping, но НЕ ARP Inspection:
+```js
+AccSwitch(config)#ip dhcp snooping
+AccSwitch(config)#ip dhcp snooping vlan 200
+AccSwitch(config)#no ip dhcp snooping information option
+```
+
+Последняя команда отключает опцию 82, которая используется коммутатором в DHCP пакетах, идущих от DHCP клиента через коммутатор к DHCP серверу. Опция 82 содержит информацию об устройстве (например, MAC адрес коммутатора) и информацию о номере порта с которого идет запрос для того, чтобы сервер, опираясь на полученную информацию, смог выдать IP адрес DHCP клиенту из нужной подсети.
+
+Далее переходим к настройке DAI. Если у вас в сети есть устройства со статическим IP адресом, то нужно как-то сказать коммутатору, чтобы порты, к которым подключены такие устройства не проверялись. Для этого существуют ARP списки доступа. Важно, чтобы название access-list-а было именно DAI. По личному опыту знаю, что в противном случае нужно вводить дополнительные команды. А так все работает без лишних команд.
+
+```js
+AccSwitch(config)#
+AccSwitch(config)# arp access-list DAI
+AccSwitch(config-arp-nacl)# permit ip host 192.168.200.25 mac host 0017.6111.a309
+```
+
+В таком порядке добавляем IP адреса всех устройств со статическим IP. Дополнительно можно настроить Sorce Guard. Этим мы конкретное устройство к порту коммутатора, таким образом другое устройство подключенное к указанному порту не сможет выдать себя за привязанное:
+
+```js
+AccSwitch(config)#ip source binding 0017.6111.a309 vlan 200 192.168.200.14 interface Gi1/0/5
+```
+
+Также под не доверенными интерфейсами нужно ввести команду _ip verify source_, которые проверяет источник запросов.
+
+Важно! После всех настроек, приведенных выше, ждем сутки-две чтобы DHCP Snooping таблица заполнилась. В противном случае DAI будет блокировать все запросы, и пользователи не смогут работать в сети. Когда таблица заполнена включаем arp inspection:
+
+```js
+AccSwitch(config)#ip arp inspection vlan 200
+```
\ No newline at end of file
diff --git a/90 Library/Networking/Протоколы/DNS.md b/90 Library/Networking/Протоколы/DNS.md
new file mode 100644
index 0000000..c743f57
--- /dev/null
+++ b/90 Library/Networking/Протоколы/DNS.md
@@ -0,0 +1,49 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - protocols
+ - dns
+created: 2025-12-17
+updated: 2026-05-07
+title: DNS
+---
+
+# DNS
+DNS - Domain Name System Аналог: контактная книга в телефоне (сопоставление ФИО номеру телефона).
+
+При вводе названия сайта или его доменного имени в поисковую строку браузер обращается к кэшу, если вдруг уже заходили на этот сайт с этого браузера.
+
+Далее идет обращение к локальному DNS серверу (для ПК это файл `hosts`).
+
+Если ничего нет, то идет обращение к **resolver** (распознающий). Обычно, это сервер у хостинг-провайдера, но можно задать любой другой.
+
+Тот ищет записи в своем кэше (если его пользователи часто ищут твой сайт) А если не находит, то идет к корневому **root** серверу, который отвечает за зону `.`.
+
+Стоит отметить, что все доменные имена, на самом деле, имеют точку в конце адреса: youtube.com. vk.com. mephi.ru. За эту корневую точку и отвечают корневые сервера.
+
+Тот не говорит IP-адрес, но говорит, кто может "подсказать".
+
+Он нас пересылает на TLD (Top Level Domain) сервер, который отвечает за свою верхнеуровневую доменную зону. Те делятся на:
+
+1. gTLD (Generic Top Level Domain) - доменные зоны, не привязанные к стране.
+ - `.edu` - образование
+ - `.com` - коммерческие
+ - `.org` - организации и некомерческие
+2. ccTLD (Country Code Top Level Domain) - привязанные к стране:
+ - `.ru` - Россия
+ - `.ua` - Украина
+ - `.by` - Беларусь
+ - `.us` - США
+
+Т.е. после корневого сервера, resolver пойдет к серверу верхнего уровня, но и тот не скажет ему, куда переходить, тот подскажет, к какому _авторитарному_ серверу обратиться.
+
+Авторитарный сервер или сервер авторитативных имен (_Authoritative nameserver_) - это сервер, отвечающий за конкретный пул адресов, как правило, такими выступают хостинг-провайдеры, которые регистрируют домены. Вот они как раз говорят, какое нужен ip-адрес.
+
+В терминологии DNS существует 3 вида запросов:
+
+1. Recursive (рекурсивный) - запрос IP-адреса по домену.
+2. Iterative (итеративный) - запрос IP-адреса, либо авторитативного DNS сервера.
+3. Inverse (обратный) - запрос доменного имени по IP-адресу.
\ No newline at end of file
diff --git a/90 Library/Networking/Протоколы/ICMP - Internet Control Messag.md b/90 Library/Networking/Протоколы/ICMP - Internet Control Messag.md
new file mode 100644
index 0000000..16bbf7a
--- /dev/null
+++ b/90 Library/Networking/Протоколы/ICMP - Internet Control Messag.md
@@ -0,0 +1,27 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - protocols
+ - icmp
+created: 2025-12-17
+updated: 2026-05-07
+title: ICMP - Internet Control Message
+---
+
+# ICMP - Internet Control Message
+ICMP - расшифровывается как Internet Control Message Protocol - протокол служебных сообщений на сетевом уровне. Используется на третьем уровне модели [[Модель OSI|OSI]]. ICMP позволяет определить, может ли достичь пакет адреса назначения в установленные временные рамки (TTL). ICMP используют маршрутизаторы и др. устройства третьего уровня.
+
+Для демонстрации работы протокола, можно взять в пример утилиту `ping`, которая позволяет проверить сетевую связность между узлами.
+
+С помощью TTL - time to live - можно понять, сколько переходов между маршрутизаторами (или "хопов") потребовалось пакету, если есть петля в настройках маршрутизаторов, то TTL быстро закончится и не будет зацикливания и траты ресурсов, а полное использование 128 хопов - явление редкое, поэтому с большой долей вероятности это означает петлю.
+
+Вторым важным примером использования является утилита `traceroute`, которая позволяет просмотреть список "хопов" пакета от отправителя к получателю.
+
+## Темная Сторона ICMP
+
+С помощью этого протокола можно не только проверять "жив ли хост?", но и проводить полноценные атаки на сеть. Такие атаки, зачастую, связаны с атакой типа DOS (Denial-Of-Service - отказ в обслуживании). Например, огромное количество пинг-запросов на хоста с разных источников. В итоге, хост пытается ответить всем и перегружается.
+
+Так же, раньше была популярна атака **Ping of Death**. Если кратко, ее суть заключалась в следующем: злоумышленник намеренно отправляет пакет больше максимального размера. Такой пакет фрагментируется на сети на несколько частей, прилетает в буфер устройства и попадает в очередь на сборка пакета "воедино". Переполнение этой очереди приводило к подвисанию хоста и полному отказу в работе.
\ No newline at end of file
diff --git a/90 Library/Networking/Протоколы/IP-адрес.md b/90 Library/Networking/Протоколы/IP-адрес.md
new file mode 100644
index 0000000..9fcb2b6
--- /dev/null
+++ b/90 Library/Networking/Протоколы/IP-адрес.md
@@ -0,0 +1,24 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - protocols
+created: 2025-12-17
+updated: 2026-05-07
+title: IP-адрес
+---
+
+# IP-адрес
+**IP - Internet Protocol -** Сетевой адрес
+
+IP-адрес - это просто набор из 32 нулей и единиц, который преобразовали в 10-ричную систему счисления и разбили на 4 части для удобства.
+
+В стандарте IPv4 мы можем использовать только **4 294 967 296** адресов, что может не хватить. На замену ему потихоньку вводится [[IPv6]] - число из 128 единиц и нулей, переведенный в 16-чную С.С. и разбитый на 8 частей. Тут доступно уже сильно больше вариантов...
+
+## Статическая И Динамическая Адресация
+
+Статика - задается вручную и не меняется в ходе работы. Динамика - задается автоматически посредством DHCP-сервера из определенного ему пула IP.
+
+Т.к. переход на IPv6 дорог, да и иметь всем конкретный IP не очень безопасно, придумали [[NAT]] (Network Address Translation) и его надстройку PAT (Port Address Translation). Суть в том, что много устройств могут выходить в сеть под "одним" белым (внешним) IP. Но есть нюанс, при маршрутизации трафика к белому IP добавляется порт, который уточняет, к какому именно устройству сети и с каким "внутренним" IP направить эти пакеты.
\ No newline at end of file
diff --git a/90 Library/Networking/Протоколы/IPv6.md b/90 Library/Networking/Протоколы/IPv6.md
new file mode 100644
index 0000000..c1f3d98
--- /dev/null
+++ b/90 Library/Networking/Протоколы/IPv6.md
@@ -0,0 +1,127 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - protocols
+ - ipv6
+created: 2025-12-17
+updated: 2026-05-07
+title: IPv6
+---
+
+# IPv6
+При использовании IPv4 с 4 миллиардами адресов, в какой-то момент очевидно столкнулись с проблемой их нехватки. Даже создание PAT и использование локальной адресации не сильно спасло ситуацию.
+
+Решением проблемы стало изобретение IP версии 6, где используется не 32 бита для кодирования адреса, а 128, при этом, увеличение количества бит на единицу, увеличивает кол-во доступных адресов ровно в два раза, следовательно, для 128 бит вакантных адресов примерно...
+
+$$\large 340\ 282\ 366\ 920\ 938\ 463\ 463\ 374\ 607\ 431\ 768\ 211\ 456$$
+
+Это много, даже очень.
+
+IPv5 А что случилось с IPv5? Хороший вопрос ... IP-версия 5 была использована для экспериментального проекта под названием "Протокол интернет-потока". Он определен в RFC, если вас интересуют исторические причины: [http://www.faqs.org/rfcs/rfc1819.html](http://www.faqs.org/rfcs/rfc1819.html)
+
+## Отличия IPv4 И IPv6
+
+В чем же основная проблема перехода на IPv6? А в том, что нет совместимости протоколов для IPv4 и новых поколений.
+
+- **OSPF** был обновлен с 2 (IPv4) до 3 (IPv6) версии.
+- **ICMP** был обновлен до ICMP 6.
+- **ARP** был заменен на _NDP_ (Neighborhood Discovery Protocol).
+
+
+
+Вместо того чтобы уже добавлять все поля в заголовок, заголовок IPv6 использует "следующий заголовок", который ссылается на необязательные заголовки. Поскольку заголовок намного проще, маршрутизаторам придется выполнять меньше работы.
+
+Маршрутизация тоже сильно поменялась при переходе на новую версию:
+
+1. RIP -> RIPng (RIP Next Generation)
+2. BGP (Border Gateway Protocol) - протокол, объединяющий интернет вместе. MP-BGP - Multi-Protocol BGP, он может маршрутизировать IPv6. EIGRP также поддерживает IPv6.
+
+Надо учитывать, что даже при условии поддержки OSPF и EIGRP адресации обоих версий, это два **разных протокола**. Из этого следует, что сначала надо поднять протокол для одной версии, а потом для другой. Использование двух версий IP называется **двойным стеком**.
+
+> Поскольку эти два протокола несовместимы, в будущем будет происходить переход с IPv4 на IPv6. Это означает, что вы будете запускать оба протокола в своей сети и, возможно, однажды вы сможете отключить IPv4, так как весь интернет будет настроен на IPv6.
+
+## Формат IPv6
+
+```text
+2041:0000:140F:0000:0000:0000:875B:131B
+```
+
+Он сильно длиннее, чем IPv4, состоит из 8 частей, каждая часть состоит из 4 шестнадцатиричных чисел.
+
+
+
+Таблица перевода шестнадцатиричных чисел в двоичные
+
+Существуют некоторые правила, позволяющие упростить работу с адресами:
+
+1. Если есть несколько частей с нулями, то их можно убрать, заменив на `::` `2041:0000:140F:0000:0000:0000:875B:131B` -> `2041: 0000:140F:: 875B:131B`
+2. Если есть одиночный блок с нулями, то можно его заменить на один ноль `2041: 0000:140F:: 875B:131B` -> `2041:0:140F:: 875B:131B`
+3. При наличии в блоке значащих чисел и нулями перед ними, нули можно опустить `2001:0001:0002:0003:0004:0005:0006:0007` -> `2001:1:2:3:4:5:6:7`
+
+При использовании IPv4 и нехватке адресов, люди начали адаптироваться, придумав частные сети и [[VLSM]] (сегментацию сети), использовали [[NAT]] и так далее. При переходе на IPv6 такой проблемы уже не будет, т.к. пула доступных адресов будет достаточно для снабжения адресами нескольких планет, таких, как Земля. Протокол IPv6 предлагает два варианта для одноадресной рассылки:
+
+1. Global Unicast
+2. Unique Local
+
+Ранее, как отголосок IPv4 существовал третий диапазон адресов "site local", который начинался с `FEC0::/10`. Он предназначался для использования во внутренних сетях (аналог `192.168.0.0/24`), но был удален из стандарта IPv6.
+
+**Global Unicast** передачи похожи на публичные IPv4 адреса. Каждая компания, желающая подключится к интернету, получает пул адресов, которые они, на своё усмотрение, делят на более мелкие префиксы, чтобы все устройства сети поулчили IPv6 адрес, притом уникальный во всем мире. Зарезервированный блорк называется префиксом глобальной маршрутизации.
+
+## Получение Префиксов
+
+- **IANA** отвечает за распределение всех префиксов IPv6. Они будут назначать реестрам разные блоки, которыми будут управлять региональные компании.
+- **ISP**, попадлающие под реестр региональной компании, заправшивает блок IPv6. Они получают свой пул адресов, которые могут распределять между провайдерами. !
+
+
+
+> Некоторые префиксы **FD**: Unique Local **FF**: Multicast **FE80**: Link-Local
+
+## Local И Link-Local
+
+После получения клиентом от провайдера префикса, например, `2001: 828:105:: / 48`, необходимо его разбить на подсети для различных VLAN и point-to-point соединений, которые могут быть. Поскольку адресное пространство настолько велико, все используют префикс `/64` для подсетей. Не имеет смысла брать меньшие подсети. Когда мы используем IPv4, мы вынуждены, для подсетей, дробить хостовую часть!
+
+
+
+Тогда, у нас, в целом, будет меньше хостов на подсеть.
+
+
+
+ В IPv6 такой проблемы нет:
+
+
+
+Префикс Global Routing был назначен провайдером. Последние 64 бита называются **идентификатором интерфейса**, это эквивалетно части хоста в IPv4.
+
+Путем несложно математики, получается, что у нас 16 бит на подсети, а это около 65536 подсетей (как правило, этого _более чем_ достаточно). В этой же схеме, на хосты в каждой подсети отводится около **18 квинтиллионов** хостов.
+
+Если клиент получил префикс `2001: 828: 105:: / 48`, то он может создать такие подсети:
+
+
+
+```text
+- 2001:828:105:0000::/64;
+- 2001:828:105:0001::/64;
+- 2001:828:105:0002::/64;
+- 2001:828:105:0003::/64;
+- 2001:828:105:0004::/64;
+- 2001:828:105:0005::/64;
+- 2001:828:105:0006::/64;
+- 2001:828:105:0007::/64;
+- 2001:828:105:0008::/64;
+- 2001:828:105:0009::/64;
+- 2001:828:105:000A::/64;
+- 2001:828:105:000B::/64;
+- 2001:828:105:000C::/64;
+- 2001:828:105:000D::/64;
+- 2001:828:105:000E::/64;
+- 2001:828:105:000F::/64;
+- 2001:828:105:0010::/64;
+- 2001:828:105:0011::/64;
+- 2001:828:105:0012::/64;
+- 2001:828:105:0013::/64;
+- 2001:828:105:0014::/64;
+...
+```
\ No newline at end of file
diff --git a/90 Library/Networking/Протоколы/TCP vs UDP.md b/90 Library/Networking/Протоколы/TCP vs UDP.md
new file mode 100644
index 0000000..0bd9320
--- /dev/null
+++ b/90 Library/Networking/Протоколы/TCP vs UDP.md
@@ -0,0 +1,42 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+ - protocols
+created: 2025-12-17
+updated: 2026-05-07
+title: TCP Vs UDP
+---
+
+# TCP Vs UDP
+Основные протоколы транспортного уровня модели OSI (L4).
+
+## **TCP**
+
+- Transmission Control Protocol Перед передачей данных устанавливает соединение трехсторонним рукопожатием.
+
+- SYN - отправка запроса на возможность передачи данных от отправителя.
+- SYNACK - подтверждение получающей стороной.
+- ACK - начало передачи данных.
+
+После отправки части данных, получающая сторона отправляет подтверждение передачи.
+
+Этот протокол надежный, но очень медленный.
+
+TCP, как протокол, определен в **RFC (Request For Comments) 793**, выполняет функции, перечисленные в таблице ниже, через механизмы, предоставляемые конечными устройствами. Он полагается на IP для сквозной доставки данных, включая вопросы маршрутизации. Независимо от того, в каких условиях находятся ПК для передачи, TCP работает одинаково на своем уровне.
+
+
+
+Функционал TCP
+
+
+
+Поля заголовка TCP
+
+## **UDP**
+
+- User Datagram Protocol Просто бросается файлами в "сторону" получающей стороны. Может теряться часть данных, или их порядок. В случае с видео, звонками, мы можем позволить себе потерю данных.
+
+
\ No newline at end of file
diff --git a/90 Library/Networking/Режимы передачи данных в сетях.md b/90 Library/Networking/Режимы передачи данных в сетях.md
new file mode 100644
index 0000000..22b92db
--- /dev/null
+++ b/90 Library/Networking/Режимы передачи данных в сетях.md
@@ -0,0 +1,52 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+created: 2025-12-17
+updated: 2026-05-07
+title: Режимы Передачи Данных В Сетях
+---
+
+# Режимы Передачи Данных В Сетях
+
+> Механизм передачи данных или информации между двумя устройствами, связанными по сети, называется **режимом передачи**.
+
+Существует 3 категории режимов передачи:
+
+1. Симплексный режим
+2. Полудуплексный режим
+3. Дуплексный (полнодуплексный) режим
+
+## Симплексный Режим
+
+В этом режиме связь является исходно однонаправленной, т.е. данные могут передаваться только в одном направлении.
+
+Пример: пульт от телевизора, пульт отправляет запросы, но телевизон даже не думает, что-то пересылать пульту.
+
+|Преимущества|Недостатки|
+|---|---|
+|Станция может использовать всю пропускную способность канала связи|Нет связи м/у устройствами, т.е. движение одностороннее|
+
+## Полудуплекс
+
+В этом режиме оба устройства могут и передавать и получать данные, но не одновременно!
+
+В полудуплексном режиме отправитель отправляет данные и ожидает их подтверждения, а если есть какая-либо ошибка, то получатель может потребовать от него повторной передачи этих данных. Благодаря этому возможно обнаружение ошибок.
+
+|Преимущества|Недостатки|
+|---|---|
+|Аналогично, сиплексному режиму, передаче доступна вся полоса пропускания|Огромные задержки в обмене информацией, ведь нужно дождаться, пока коллега завершит передачу|
+
+## Полнодуплекс
+
+В отличие от двух методов выше, полнодуплекс предоставляет двустороннюю одновременную связь, поток движется между двумя устройствами в обе стороны.
+
+Дуплекс имеет два отдельных канала передачи информации, один для прямого хода, второй для обратного.
+
+|Преимущества|Недостатки|
+|---|---|
+|Обе станции могут отправлять и получать данные одновременно|Полоса пропускания делится на две части, между устройствами|
+
+
\ No newline at end of file
diff --git a/90 Library/Networking/Сегментация сети.md b/90 Library/Networking/Сегментация сети.md
new file mode 100644
index 0000000..2902bf7
--- /dev/null
+++ b/90 Library/Networking/Сегментация сети.md
@@ -0,0 +1,54 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+created: 2025-12-17
+updated: 2026-05-07
+title: Сегментация Сети
+---
+
+# Сегментация Сети
+Сегментация сети позволяет усилить информационную безопасность сети, путем уменьшения площади проникновения и уменьшая воздействие броадкастного шторма, при котором сеть перегружается большим количеством широковещательных запросов.
+
+Сегментация сети выполняет разделение пользователей на различные сетевые группы, изолированные друг от друга. В зависимости от политик безопасности, определяемых отделом ИБ, обмен информацией между группами строго контролируется или вовсе ограничен.
+
+Политика безопасности определяет некоторые принципы, позволяющие разделить пользователей на подгруппы.
+
+- Гость
+- Временный сотрудник
+- Персонал
+- Администратор
+
+> Сегментацию сети желательно выполнять при полной реализации бизнес-процессов. К таким процессам относится выдача доступа к сети интернет пользователям, не состоящих в рядах работников компании, так сказать, гостевым юзерам.
+
+## Методы Сегментации Сети
+
+Для выполнения сегментации сети, необходимо выполнить следующие задачи:
+
+1. Определить, действительно ли пользователь принадлежит той или иной группе
+2. Ограничить трафик пользователей одной группы к пользователям другой группы
+3. Предоставить пользователям разрешение на использование только разрешенных ресурсов, и наложить запрет на остальное
+
+Решением первой задачи является использование технологии `802.1x` в корпоративных сетях - т.е. использование дополнительного фактора для получения доступа в сеть.
+
+Второй - создание дополнительных сетей, в т.ч. виртуальных, путем создания разных сетей для сотрудников разных департаментов, различные DMZ и т.д.
+
+Третьей - фильтрация на основе IP-адресов. Контроль доступа обычно может быть реализован двумя способами: грубыми средствами и тонкой фильтрацией. Это реализуется с помощью листов контроля доступа - обычных, расширенных и динамических.
+
+## Ограничение Традиционных Методов
+
+Если использовать только эти подходы, то, зачастую, большую часть работы придется выполнять вручную. Эта ситуация станет более ощутимой, когда сегментированная среда станет динамической, ведь правила могут меняться.
+
+> - Некоторые правила, которые тесно связаны с обновлениями служб защиты, а также которые управляют ресурсами и сотрудниками компаний;
+> - Количество групп юзеров, которое может меняться от условий реорганизации внутри организации, а от различных дополнений ресурсов в сети и так далее;
+> - Расположение групп пользователей, в связи с чем может возникнуть необходимость расширить сегментацию на новые части сети;
+
+С ростом количества сотрудников и различных устройств, поддержка сегментации становится всё более сложной.
+
+ _**Сегментация**_ - это не единовременная операция, а постоянный и очень важный процесс. Всё более популярным становится подход программно-определяемой сегментации сети (напр. **TrustSec** от Cisco).
+
+## Связанные заметки
+- [[Network Drivers - Docker]] — изоляция контейнеров по bridge-сетям = программная сегментация; разные bridge-сети не видят друг друга, как разные VLAN
+- [[File Permissions]] — принцип наименьших привилегий: в ФС — rwx для owner/group/others; в сети — изоляция Guest/Employee/Admin
diff --git a/90 Library/Networking/Сетевые устройства.md b/90 Library/Networking/Сетевые устройства.md
new file mode 100644
index 0000000..6ad9b83
--- /dev/null
+++ b/90 Library/Networking/Сетевые устройства.md
@@ -0,0 +1,29 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+created: 2025-12-17
+updated: 2026-05-07
+title: Сетевые Устройства
+---
+
+# Сетевые Устройства
+## **Хаб**
+
+Хаб (концентратор) - есть несколько портов для подключения нескольких устройств. После того, как данные приходят на один порт, он их копирует и рассылает по всем портам.
+
+## **Коммутатор**
+
+**Коммутатор** (switch) - пришедший трафик рассылается только адресату, кроме broadcast (широковещательный) и multicast (отдельная общая волна, на которую надо настроиться).
+
+## **Маршрутизатор**
+
+**Маршрутизатор** (router) - работают с IP-адресами. Маршрутизирует данные из сетей в сети, на основе полученных данных и таблицы маршрутизации. - может выступать как DNS, DHCP сервер, обладать firewall'ом и много чего ещё.
+
+> Хаб - L1
+>
+> Коммутатор - L2
+>
+> Маршрутизатор - L3
\ No newline at end of file
diff --git a/90 Library/Networking/Утилита Ping.md b/90 Library/Networking/Утилита Ping.md
new file mode 100644
index 0000000..b69fa59
--- /dev/null
+++ b/90 Library/Networking/Утилита Ping.md
@@ -0,0 +1,23 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+created: 2025-12-17
+updated: 2026-05-07
+title: Утилита Ping
+---
+
+# Утилита Ping
+Можно сказать, это самый базовый инструмент инженера, который позволяет понять ""А жив ли хост?"
+
+Помимо прочего, пинг поможет понять как долго пакет доходит до адреса назначения и, соответственно, поможет измерить задержку.
+
+Работает ping предельно просто:
+
+1. Источник отправляет запрос вида **ICMP echo request**. Это выглядит как вопрос "бро, ты живой?"
+2. Получатель отправляет ответ источнику **ICMP echo reply**. Это звучит как ответ вида "да, бро, я жив, спасибо!"
+3. Время с момента отправки вопроса до получения ответа суммируется и считается за время пинга
+
+
\ No newline at end of file
diff --git a/90 Library/Networking/Широковещательные и коллизионные домены. Коммутация..md b/90 Library/Networking/Широковещательные и коллизионные домены. Коммутация..md
new file mode 100644
index 0000000..e895475
--- /dev/null
+++ b/90 Library/Networking/Широковещательные и коллизионные домены. Коммутация..md
@@ -0,0 +1,31 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+created: 2025-12-17
+updated: 2026-05-07
+title: Широковещательные И Коллизионные Домены. Коммутация
+---
+
+# Широковещательные И Коллизионные Домены. Коммутация
+
+
+Домен коллизий определяется как набор хостов, подключенных к сети. Если эти хосты соединены прямым проводом, то они не смогут передавать пакеты одновременно (из-за возможного столкновения в одном потоке). Но если между устройствами будет ещё одно вспомогательное физическое устройство, то одновременная передача становится возможной, так как они находятся в отдельных **доменах коллизий.**
+
+**Домен коллизий** — это сегмент сети, в котором пакеты данных от разных устройств могут столкнуться друг с другом.
+
+Широковещательный домен - набор хостов, которые **могут** обмениваться данными, отправляя их по L2. Если узел А посылает широковещательный пакет, то его получают все устройства локальной сети, включая B, так как они находятся в одном широковещательном домене.
+
+**Широковещательный домен (broadcast domain)** — это сегмент сети, в котором широковещательный пакет (broadcast), отправленный одним устройством, достигает всех остальных устройств.
+
+Формально говоря, мостовое (прямое соединение) создает **домен коллизий**, а не широковещательный домен.
+
+Для создания функционирующей коммутируемой среды, необходимо поставить между устройствами коммутатор.
+
+
+
+Стоит отметить, что устройства не видят, что между ними что-то есть, коммутаторы "прозрачны" для устройств сети.
+
+Если узел А отправляет пакет на `192.168.1.2` (узел B), то от отправляет перед этим широковещательный запрос ко всем узлам, запрашивая [[MAC-адрес]] соответствующего устройства. Разрешает этот запрос протокол [[ARP]] (Address Resolution Protocol). Так как узлы находятся в одном широковещательном домене, то устройство B получает этот запрос и отправляет свой MAC-адрес обратно отправителю для последующего обмена пакетами.
\ No newline at end of file
diff --git a/90 Library/Networking/Широковещательные и коллизионные домены. Маршрутизация..md b/90 Library/Networking/Широковещательные и коллизионные домены. Маршрутизация..md
new file mode 100644
index 0000000..3d0af9b
--- /dev/null
+++ b/90 Library/Networking/Широковещательные и коллизионные домены. Маршрутизация..md
@@ -0,0 +1,29 @@
+---
+status: stable
+type: concept
+tags:
+ - network
+ - networking
+created: 2025-12-17
+updated: 2026-05-07
+title: Широковещательные И Коллизионные Домены. Маршрутизация
+---
+
+# Широковещательные И Коллизионные Домены. Маршрутизация
+Сеть, построенная на основе **маршрутизатора** (L3), не создает доменов вовсе.
+
+
+
+Как можно заметить, устройства находятся в разных подсетях. Указатель `/24` показывает, какое количество бит установлено в маске подсети, и указывает на длину перефикса. В нашем случае, префикс занимает 24 бита и эта адресация имеет маску: 255.255.255.0.
+
+Таким образом, узел A понимает, что узел B находится в другой подсети (192.168.**1**.1 и 192.168.**2**.1) и для оправки, должен использовать определенные методы маршрутизации.
+
+
+
+Хост А понимает, что находится с получатеем в разных широковещательных доменах. Он отправляет свои пакеты напрямую маршрутизатору (в данном случае, он знает, что маршрутизатор есть в его сети). Теперь А помещает в заголовок пакета IP-адрес хоста B, а также меняет MAC получателя на MAC промежуточного маршрутизатора.
+
+
+
+Маршрутизатор принимает пакет от узла А и строит наиболее коротки маршрут до B, исходя из его IP-адреса и своей таблицы маршрутизации. Сам заменяет MAC адрес в заголовке пакета на верный и отправляет в следующую подсеть для дальнейшей маршрутизации.
+
+> Коммутация L3 == маршрутизация.
\ No newline at end of file
diff --git a/90 Library/Other/Guide - Статья.md b/90 Library/Other/Guide - Статья.md
new file mode 100644
index 0000000..c620988
--- /dev/null
+++ b/90 Library/Other/Guide - Статья.md
@@ -0,0 +1,25 @@
+---
+status: processing
+type: concept
+tags:
+ - science
+ - other
+created: 2025-12-19
+updated: 2026-05-07
+title: Guide - Статья
+---
+
+# Guide - Статья
+1. Что-то существующее (описываем решения проблем) - обзорная статья
+ Решения в РФ, например
+ Привести метрики по решению для хорошей статьи
+ Какие-то данные к статьям
+2. Проектирование чего-то
+ Условия эксперимента, "нагрузка" и т.д.
+3. Описание уже спроектированного и апробированного продукта
+4. Построение своего **научного стенда** (для программистов)
+ Например, нагрузочное тестирование ПО для приемки
+5. Теоретические статьи
+ Например, изобретение методологии проверки безопасности сервера
+
+Если поступаешь в аспу, там требования постоянно ужесточаются, могут запросить статьи именно по тебе твоего БУДУЩЕГО исследования или по теме
\ No newline at end of file
diff --git a/90 Library/Other/Гайд на научников.md b/90 Library/Other/Гайд на научников.md
new file mode 100644
index 0000000..819aa6c
--- /dev/null
+++ b/90 Library/Other/Гайд на научников.md
@@ -0,0 +1,83 @@
+---
+status: stable
+type: knowledge
+tags:
+ - other
+created: 2026-02-27
+updated: 2026-05-07
+title: Гайд на научников
+---
+
+# Гайд
+## 🎓 Аспиранты как научные руководители
+
+Важное уточнение: аспиранты могут официально курировать дипломы специалистов и бакалавров.
+
+- **Малькута:** Специализация — **NLP** (обработка естественного языка) и **LLM** (языковые модели).
+
+- **Волков:** Специализация — **Криптовалюты** (защита, анализ, блокчейн).
+
+- **Крючков:** Специализация — **Мобильная разработка**.
+
+ > _Примечание: Крючкова просили лишний раз не беспокоить, обращаться только при сильном желании делать проект именно по мобилкам._
+
+---
+
+## 🏛️ Ключевые руководители: Стили и подходы
+
+### **Дженни Владимировна Домашова**
+
+- **Стиль работы:** Командный ("Проектный офис").
+
+- **Кому подходит:** Тем, кто **не определился с темой**. Она сама выдает задачу.
+
+- **Особенности:** Крупный проект делится на части (например: один обучает модель, второй — инженерит, третий — тестирует). Практикуется наставничество (прикрепление старшего студента/тьютора).
+
+- **Защита:** Максимально лояльна. "Бьется за своих студентов как львица".
+
+### **Виктор Юрьевич Радыгин**
+
+- **Стиль работы:** Индивидуальный.
+
+- **Кому подходит:** Тем, у кого есть **свое понимание темы** и желание заниматься реальной разработкой (информационные системы и др.).
+
+- **Особенности:** Очень занят. Требует проактивности от студента — нужно **напоминать о себе раз в месяц**, чтобы получать план и консультации.
+
+- **Защита:** Его студентов обычно не "топят" в силу его авторитета.
+
+---
+
+## 🛡️ Информационная безопасность (ИБ) и Сети
+
+|Руководитель|Специализация|Резюме|
+|---|---|---|
+|**Иванов**|ИБ (любое направление), Криптография|Отличный вариант для ИБ, хотя и "своеобразный".|
+|**Вавренюк**|Сети, Операционные системы|Рекомендуемый вариант по данному профилю.|
+
+Экспортировать в Таблицы
+
+> **Важный нюанс:** Иванов и Вавренюк — доценты, но **не входят в состав комиссии**. Это означает, что на защите не будет "своего" человека, который прикроет от сложных вопросов.
+
+---
+
+## ⚠️ Репутационные риски и переходы
+
+1. **Лояльность и "месть":**
+
+ - Переход **от Радыгина к Домашовой** (например, НИР у Виктора, диплом у Евгении) — **безопасно**.
+
+ - Переход **от Домашовой к Радыгину** — **не рекомендуется**, возможна негативная реакция со стороны Домашовой.
+
+2. **Нежелательные руководители:** * **Алейников** и **Рычков** — крайне не рекомендуются ("мрак").
+
+---
+
+## 📌 Итоговые рекомендации по выбору
+
+1. **Нет темы и нужен контроль?** — Домашова Д.В.
+
+2. **Есть идея и готов к самостоятельности?** — Радыгин В. Ю. (не забывать писать ему!).
+
+3. **Интересует узкий профиль (AI/Crypto)?** — Малькута или Волков.
+
+4. **Хардкорная ИБ или Сети?** — Иванов или Вавренюк (но готовиться к защите серьезно).
\ No newline at end of file
diff --git a/90 Library/Other/Сканер отпечатка пальцев.md b/90 Library/Other/Сканер отпечатка пальцев.md
new file mode 100644
index 0000000..318fbe2
--- /dev/null
+++ b/90 Library/Other/Сканер отпечатка пальцев.md
@@ -0,0 +1,13 @@
+---
+status: processing
+type: knowledge
+tags:
+ - other
+created: 2025-12-18
+updated: 2026-05-07
+title: Сканер Отпечатка Пальцев
+---
+
+# Сканер Отпечатка Пальцев
+
+Не надо бездумно пытаться включить fprint.service (утилиты для сканера отпечатка), это может сломать основную логику входа
diff --git a/90 Library/Programming/Ruby - массивы.md b/90 Library/Programming/Ruby - массивы.md
new file mode 100644
index 0000000..932ded6
--- /dev/null
+++ b/90 Library/Programming/Ruby - массивы.md
@@ -0,0 +1,97 @@
+---
+status: seed
+type: knowledge
+tags:
+ - programming
+ - ruby
+created: 2026-05-17
+updated: 2026-05-17
+title: Ruby - массивы
+source: "[[Ruby - массивы]]"
+---
+
+# Ruby — массивы
+
+Массив в Ruby — экземпляр класса `Array`. Поскольку массивы являются объектами со своими методами, работа со списками данных упрощается.
+
+Связанные темы: [[Ruby - основы языка]]
+
+## Создание массива
+
+```ruby
+a1 = [1, 2, 3] # литерал
+a2 = %w{word1 word2} # массив строк без кавычек
+a3 = ['start', nil, 5, [1, 2]] # разнотипные элементы, вложенный массив
+
+a4 = Array.new # пустой массив
+a5 = Array.new(3) # [nil, nil, nil]
+a6 = Array.new(5, "Test") # ["Test", "Test", ...]
+a7 = Array.new(5) { |i| i * i } # [0, 1, 4, 9, 16]
+a8 = Array.[](1, 'a', /^A/) # через метод класса
+```
+
+Ruby поддерживает многомерные массивы с элементами разной размерности.
+
+## Индексация
+
+```ruby
+a[0] # первый элемент
+a[-1] # последний элемент
+a[-2] # предпоследний
+```
+
+### Размер
+
+```ruby
+a.size # количество элементов
+a.length # синоним size
+```
+
+## Поиск элементов
+
+```ruby
+a.include?(obj) # => true / false
+a.index(obj) # индекс первого вхождения или nil
+```
+
+## Добавление элементов
+
+```ruby
+a << 4 # в конец
+a += [5] # объединение
+a.push(6) # в конец (синоним: append)
+a.unshift(0) # в начало (сдвигает остальные вправо)
+a.insert(2, x) # вставить перед элементом с индексом 2
+```
+
+## Удаление элементов
+
+```ruby
+a.delete(obj) # удалить все вхождения obj
+a.delete_at(index) # удалить по индексу
+a.delete_if { |x| block } # удалить все, подходящие под условие
+a.shift # удалить и вернуть первый элемент
+a.pop # удалить и вернуть последний элемент
+```
+
+## Срезы
+
+```ruby
+a[1..3] # диапазон индексов
+a[1, 3] # начиная с индекса 1, длиной 3
+a.values_at(0, 2, 4) # элементы по перечисленным индексам или диапазонам
+a.first(n) # первые n элементов
+a.last(n) # последние n элементов
+```
+
+## Полезные методы
+
+```ruby
+a.flatten # развернуть многомерный массив в одномерный
+a.flatten! # то же, но изменяет сам массив
+
+a.sample # случайный элемент
+a.sample(n) # n случайных элементов
+
+a.select { |x| block } # массив элементов, для которых block == true
+```
diff --git a/90 Library/Programming/Ruby - основы языка.md b/90 Library/Programming/Ruby - основы языка.md
new file mode 100644
index 0000000..60001d5
--- /dev/null
+++ b/90 Library/Programming/Ruby - основы языка.md
@@ -0,0 +1,121 @@
+---
+status: seed
+type: knowledge
+tags:
+ - programming
+ - ruby
+created: 2026-05-17
+updated: 2026-05-17
+title: Ruby - основы языка
+source: "[[Ruby - основы языка]]"
+---
+
+# Ruby — основы языка
+
+Ruby — объектно-ориентированный язык, но допускает процедурный стиль написания кода. Всё является объектом, включая числа и булевы значения.
+
+Связанные темы: [[Ruby On Rails]]
+
+## Синтаксис
+
+- Знак препинания в конце строки не нужен
+- Отступы не несут синтаксического смысла (в отличие от Python)
+- Несколько команд в одной строке разделяются через `;`
+
+```ruby
+puts "Hello World!"
+puts 42; puts "next line"
+```
+
+## Комментарии
+
+```ruby
+# однострочный комментарий
+
+=begin
+многострочный
+комментарий
+=end
+```
+
+## Типы данных
+
+```ruby
+"Hello".class # => String
+true.class # => TrueClass
+5.class # => Integer
+6.4.class # => Float
+nil.class # => NilClass
+```
+
+### Именование
+
+- Переменные — с маленькой буквы: `my_var`
+- Классы — с большой буквы: `MyClass`
+- Ключевые слова языка использовать нельзя
+
+### Преобразование типов
+
+**Явное:**
+
+| Метод | Что делает |
+|--------|-----------------------------------------|
+| `to_i` | к целому числу (дробная часть отсекается) |
+| `to_f` | к вещественному числу |
+| `to_s` | к строке |
+
+**Неявное:** при математических операциях `Integer + Float` → `Float`.
+
+## Управляющие конструкции
+
+```ruby
+# if без ветвления
+if a > 0
+ action
+end
+
+# if-elsif-else
+if a > 0
+ ...
+elsif a == 0
+ ...
+else
+ ...
+end
+
+# unless — выполнится, если условие ложно
+unless a > 0
+ action
+end
+
+# case
+case a
+when 1 then puts "один"
+when 2 then puts "два"
+else puts "другое"
+end
+```
+
+## Циклы
+
+| Оператор | Назначение |
+|----------|-----------|
+| `loop` | бесконечный цикл; выход через `break` |
+| `while` | цикл с условием выполнения |
+| `until` | цикл, пока условие ложно |
+| `for` | итератор по перечислимому объекту |
+| `next` | пропустить текущий шаг |
+| `redo` | повторить текущий шаг заново |
+
+**Диапазоны в `for`:**
+
+```ruby
+for i in 1..5 # от 1 до 5 включительно
+for i in 1...5 # от 1 до 4 (5 не входит)
+```
+
+**Деление с остатком:**
+
+```ruby
+x, r = x.divmod(n)
+```
diff --git a/90 Library/Programming/Ruby On Rails/Active Storage.md b/90 Library/Programming/Ruby On Rails/Active Storage.md
new file mode 100644
index 0000000..073c48f
--- /dev/null
+++ b/90 Library/Programming/Ruby On Rails/Active Storage.md
@@ -0,0 +1,25 @@
+---
+status: processing
+type: concept
+tags:
+ - programming
+ - ruby-on-rails
+created: 2025-12-17
+updated: 2026-05-07
+title: Active Storage
+---
+
+# Active Storage
+**Active Storage** - система хранения файлов в Rails. Идейно, хранить в БД информацию о файлах, а сами файлы отдельно (локально или в ином хранилище)
+
+Архитектура представляет из себя 3 таблицы в БД:
+
+1. `**active_storage_blobs**` — метаданные файла
+
+| | | | | | | |
+|---|---|---|---|---|---|---|
+|id|key|filename|content_type|byte_size|checksum|created_at|
+||||||||
+
+## Связанные заметки
+- [[Volume - Docker]] — в Docker-деплое файлы Active Storage должны персистироваться через Volume; без этого файлы теряются при перезапуске контейнера
\ No newline at end of file
diff --git a/90 Library/Programming/Ruby On Rails/Rails credentials edit не открывает редактор.md b/90 Library/Programming/Ruby On Rails/Rails credentials edit не открывает редактор.md
new file mode 100644
index 0000000..54e8a4a
--- /dev/null
+++ b/90 Library/Programming/Ruby On Rails/Rails credentials edit не открывает редактор.md
@@ -0,0 +1,70 @@
+---
+status: seed
+type: guide
+tags:
+ - programming
+ - ruby-on-rails
+ - debug
+created: 2026-05-20
+updated: 2026-05-20
+title: Rails credentials edit не открывает редактор
+source: "[[99 System/Archive/Rails credentials edit не открывает редактор|Rails credentials edit не открывает редактор]]"
+---
+
+# Rails credentials edit не открывает редактор
+
+Заметка фиксирует кейс, когда `bin/rails credentials:edit` в [[Ruby On Rails]] завершается без открытия редактора и без явной ошибки.
+
+## Симптом
+
+Команда:
+
+```bash
+bin/rails credentials:edit
+```
+
+сразу печатает:
+
+```text
+File encrypted and saved.
+```
+
+При этом редактор не открывается, а credentials фактически не меняются.
+
+## Причина
+
+Rails 7.x выбирает редактор через helper `rails/command/helpers/editor.rb` и берёт `$VISUAL` приоритетнее `$EDITOR`.
+
+Если переменная окружения `$VISUAL` установлена, например в `zed` или `code`, значение `$EDITOR` игнорируется. Если указанный в `$VISUAL` редактор не найден или не может быть запущен, системный вызов завершается с ошибкой, но Rails может молча продолжить выполнение и сохранить файл без изменений.
+
+Связанный контекст: [[Environment Variables]] и [[Command Path]].
+
+## Решение
+
+На один запуск явно сбросить `$VISUAL` и задать рабочий редактор:
+
+```bash
+VISUAL="" EDITOR="nano" bin/rails credentials:edit
+```
+
+Можно заменить `nano` на любой редактор, который доступен в текущем окружении.
+
+## Диагностика
+
+Проверить, не установлен ли `$VISUAL`:
+
+```bash
+echo "VISUAL='$VISUAL'"
+```
+
+Проверить, находится ли редактор в `PATH`:
+
+```bash
+which nano
+```
+
+Если используется GUI-редактор вроде `code` или `zed`, отдельно проверить, что его CLI-команда доступна из той же shell-сессии, где запускается Rails.
+
+## Практический вывод
+
+Для `credentials:edit` важен не только `$EDITOR`, но и `$VISUAL`. Если Rails ведёт себя так, будто файл был сохранён без редактирования, сначала проверить переменные окружения редактора и доступность команды редактора через `PATH`.
diff --git a/90 Library/Programming/Ruby On Rails/Ruby On Rails.md b/90 Library/Programming/Ruby On Rails/Ruby On Rails.md
new file mode 100644
index 0000000..0236cc5
--- /dev/null
+++ b/90 Library/Programming/Ruby On Rails/Ruby On Rails.md
@@ -0,0 +1,19 @@
+---
+status: stable
+type: moc
+tags:
+ - programming
+ - ruby-on-rails
+created: 2025-12-17
+updated: 2026-05-07
+title: Ruby On Rails
+---
+
+# Ruby On Rails
+
+%% Begin Waypoint %%
+- [[Active Storage]]
+- [[Rails credentials edit не открывает редактор]]
+- [[Sidekiq - основа работы]]
+
+%% End Waypoint %%
diff --git a/90 Library/Programming/Ruby On Rails/Sidekiq - основа работы.md b/90 Library/Programming/Ruby On Rails/Sidekiq - основа работы.md
new file mode 100644
index 0000000..691f7fd
--- /dev/null
+++ b/90 Library/Programming/Ruby On Rails/Sidekiq - основа работы.md
@@ -0,0 +1,21 @@
+---
+status: processing
+type: concept
+tags:
+ - programming
+ - ruby-on-rails
+created: 2025-12-17
+updated: 2026-05-07
+title: Sidekiq - Основа Работы
+---
+
+# Sidekiq - Основа Работы
+
+> Sidekiq - фоновый процессор задач для Ruby On Rails. Работает на базе Redis, обеспечивает ассинхронность выполнения задач, не блокируя интерфейс при, например, загрузке файла в фоне.
+
+## Основные Концепции
+
+1. **Worker** - класс,
+## Связанные заметки
+- [[Основы - Docker]] — Sidekiq требует Redis; в production и Redis, и Rails-приложение обычно запускаются как Docker-контейнеры
+- [[Volume - Docker]] — данные очередей Redis нужно персистировать через Docker Volume
diff --git a/90 Library/Sport/L-карнитин.md b/90 Library/Sport/L-карнитин.md
new file mode 100644
index 0000000..2b9fa07
--- /dev/null
+++ b/90 Library/Sport/L-карнитин.md
@@ -0,0 +1,104 @@
+---
+status: seed
+type: concept
+tags:
+ - gym
+ - БАД
+ - sport
+ - supplements
+created: 2026-05-14
+updated: 2026-05-14
+title: L-карнитин
+---
+
+# L-карнитин
+
+**L-карнитин** - соединение, участвующее в переносе длинноцепочечных жирных кислот в митохондрии, где они могут использоваться для получения энергии. Организм синтезирует карнитин сам, а также получает его из пищи, особенно из мяса и других продуктов животного происхождения.
+
+## Роль в организме
+
+Главная функция L-карнитина - участие в энергетическом обмене:
+
+- перенос жирных кислот через митохондриальную мембрану;
+- участие в окислении жирных кислот;
+- поддержание баланса ацил-групп внутри клетки.
+
+Из этой роли вырос маркетинг L-карнитина как "жиросжигателя", но сам факт участия в транспорте жирных кислот не означает автоматического ускорения потери жира.
+
+![[Pasted image 20260514123429.png]]
+## Жиросжигание
+
+L-карнитин не работает как прямой жиросжигатель. Если нет дефицита карнитина, дефицита калорий и регулярной нагрузки, добавка сама по себе обычно не даёт заметного эффекта.
+
+Исследования по снижению веса дают смешанную картину: в метаанализах эффект возможен, но он умеренный и чаще проявляется у людей с лишним весом, ожирением или метаболическими нарушениями. Для здорового тренирующегося человека с нормальным рационом эффект может быть слабым или незаметным.
+
+## Спортивная эффективность
+
+Для силовых тренировок L-карнитин не является добавкой первого выбора. По уровню практической полезности и доказательности он заметно уступает [[Креатин|креатину]].
+
+Потенциальные эффекты, которые изучаются:
+
+- снижение мышечного повреждения после нагрузки;
+- влияние на восстановление;
+- возможная поддержка выносливости;
+- влияние на утомляемость у отдельных групп.
+
+Но для роста силы, мощности и мышечной массы L-карнитин не считается базовой спортивной добавкой.
+
+## Формы
+
+Распространённые формы:
+
+| Форма | Комментарий |
+|---|---|
+| L-карнитин | базовая форма |
+| L-карнитин L-тартрат | часто используется в спортивных добавках |
+| Ацетил-L-карнитин | чаще связывают с нервной системой и когнитивными эффектами |
+| Пропионил-L-карнитин | чаще изучают в контексте кровотока и сердечно-сосудистой системы |
+
+## Дозировка
+
+Типичные дозировки в добавках:
+
+- 1-3 г/день;
+- часто принимают с едой;
+- для спортивных целей обычно используют L-карнитин L-тартрат.
+
+Высокие дозы не делают добавку автоматически эффективнее и чаще дают побочные эффекты со стороны ЖКТ.
+
+## Побочные эффекты
+
+Возможные побочные эффекты:
+
+- тошнота;
+- спазмы в животе;
+- диарея;
+- специфический "рыбный" запах тела при высоких дозах.
+
+Дозы от 3 г/день и выше чаще связаны с неприятными эффектами.
+
+## Кому может быть полезен
+
+L-карнитин может иметь больше смысла:
+
+- людям с медицински подтверждённым дефицитом карнитина;
+- людям с ограниченным потреблением продуктов животного происхождения;
+- пожилым людям или людям с отдельными метаболическими нарушениями;
+- в клинических сценариях, где добавку назначает врач.
+
+Для обычной цели "сжечь жир" приоритеты другие: дефицит калорий, белок, силовые тренировки, сон и регулярность.
+
+## Вывод
+
+L-карнитин - не бесполезное вещество, но как спортивная добавка часто переоценён. Его механизм связан с обменом жиров, однако это не превращает его в надёжный жиросжигатель.
+
+Если цель - силовой прогресс и набор мышц, [[Креатин]] полезнее. Если цель - снижение веса, L-карнитин может быть второстепенной добавкой, но не заменяет питание и тренировочный режим.
+
+## Источники
+
+- NIH Office of Dietary Supplements: Carnitine Fact Sheet
+- Pooyandjoo et al., systematic review and meta-analysis of L-carnitine supplementation and weight loss
+
+## Связанные заметки
+
+- [[Креатин]]
diff --git a/90 Library/Sport/Креатин.md b/90 Library/Sport/Креатин.md
new file mode 100644
index 0000000..3bbd793
--- /dev/null
+++ b/90 Library/Sport/Креатин.md
@@ -0,0 +1,97 @@
+---
+status: seed
+type: concept
+tags:
+ - gym
+ - БАД
+ - sport
+created: 2025-12-17
+updated: 2026-05-07
+title: Креатин
+---
+
+# Креатин
+## Что такое
+
+Натуральное вещество, синтезируется в печени и почках из аминокислот (аргинин, глицин, метионин). В мышцах накапливается как **фосфокреатин** → быстрый источник АТФ при взрывной нагрузке.
+
+Содержится в пище: мясо, рыба (~2–5 г/кг). У вегетарианцев дефицит → эффект от приёма выражен сильнее.
+
+---
+
+## Доказанные эффекты
+
+- Сила и мощность: +5–15%
+- Мышечная масса (за счёт воды в мышцах + улучшение тренировок)
+- Ускорение восстановления
+- Улучшение когнитивных функций и памяти
+- Нейропротекция (исследуется при Паркинсоне, депрессии)
+
+---
+
+## Дозировка
+
+### Без загрузки (рекомендуется)
+
+- 3–5 г/день ежедневно
+- Насыщение через 3–4 недели
+
+### С загрузкой (быстрый старт)
+
+- 20 г/день × 5–7 дней (4 приёма по 5 г)
+- Затем 3–5 г/день поддерживающая доза
+
+### Когда принимать
+
+Не критично. Оптимально — после тренировки с едой. В нетренировочные дни — с любым приёмом пищи.
+
+### Курс или постоянно
+
+Можно постоянно. Привыкания и синдрома отмены нет.
+
+---
+
+## Формы
+
+|Форма|Оценка|
+|---|---|
+|Моногидрат|✅ Золотой стандарт|
+|Creapure (немецкий)|✅ Очищенный моногидрат|
+|Креатин HCl|➖ Дороже, не лучше|
+|Kre-Alkalyn|❌ Не доказано превосходство|
+|Этил-эстер|❌ Маркетинг|
+
+**Выбор: моногидрат в порошке, желательно с логотипом Creapure**
+
+---
+
+## Побочные эффекты
+
+- Задержка воды в мышцах (+1–3 кг в первые недели) — норма
+- Дискомфорт в ЖКТ при больших дозах → делить на приёмы
+- Выпадение волос — **не доказано**
+- Вред почкам — **не подтверждён у здоровых людей**
+
+Рост креатинина в анализах крови при приёме креатина — норма, не патология.
+
+---
+
+## Противопоказания
+
+- Заболевания почек → только с врачом
+- Беременность и лактация → избегать
+- Совместный приём с нефротоксичными препаратами (НПВС) → с осторожностью
+
+---
+
+## Безопасность
+
+Один из наиболее изученных нутриентов. Исследования длительностью до 5 лет — без выявленных рисков у здоровых людей.
+
+---
+
+## Кому особенно полезен
+
+- Силовые виды спорта, единоборства, спринт
+- Вегетарианцы и веганы
+- Пожилые (поддержание мышц и когниций)
\ No newline at end of file
diff --git a/99 System/Archive/reader.md b/99 System/Archive/reader.md
new file mode 100644
index 0000000..82588c2
--- /dev/null
+++ b/99 System/Archive/reader.md
@@ -0,0 +1,15 @@
+---
+status: seed
+type: concept
+tags: []
+created: 2025-12-17
+updated: 2026-04-25
+title:
+---
+
+| Название | Цена | Диагональ | ОС | Особенности |
+| --------------------------------- | ---- | --------- | ---------------------- | -------------------------------------------- |
+| Onyx Book Galileo 3 (Leaf / Page) | 25к | 7 дюймов | Android 11 | Чехол в комплекте |
+| Onyx Book Go 7 | 28к | 7 дюймов | **Android 13** | Новее система, стилус (не входит в комплект) |
+| Amazon Kindle PaperWhite 12 | 20к | 7 дюймов | Amazon (проприетарная) | Реклама на выключенном экране + нет SD |
+
diff --git a/99 System/Archive/Финансы/Подписки - календарь.md b/99 System/Archive/Финансы/Подписки - календарь.md
new file mode 100644
index 0000000..bb04b2d
--- /dev/null
+++ b/99 System/Archive/Финансы/Подписки - календарь.md
@@ -0,0 +1,24 @@
+---
+status: seed
+type: concept
+tags: []
+created: 2025-12-17
+updated: 2026-04-21
+title: Подписки - календарь
+---
+
+# Подписки - календарь
+
+| Сервис | Тип (ежемесячная/ежегодная) | Цена в месяц (руб.) | Степень важности (0-5) | Комментарий |
+| ----------- | --------------------------- | ------------------- | ---------------------- | ----------------------------------------------------------------------- |
+| Singularity | Месяц | 299 | 4 | Таск-менеджер |
+| Obsidian | Месяц | 400 | 3 | Синхронизация хранилища (мб валиден переход на синк через гит или диск) |
+| AdmisVPS | Месяц | 429 | 4 | Сервер в МСК для обратного прокси |
+| BlancVPN | Год | 458 | 5 | ВПН для всех своих |
+| T-Mobile | Месяц | 304 | 5 | Оплата связи для рабочего номера |
+| Yandex Plus | Год | 291 | 4 | Подписка, которой пользуются в семье |
+| Yandex 360 | Год | 300 | 3 | Подписка yandex disk, а ещё что? |
+| DDX | Месяц | 1900 | 5 | Зал, что уж |
+| Claude | Месяц | 1850 | 5 | Бомба, соска, нереалка |
+| **Итого** | - | **6231** | - | - |
+
diff --git a/AGENTS.md b/AGENTS.md
index ebd7c17..cbc3f1d 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -1,213 +1,149 @@
---
created: 2026-04-20
-updated: 2026-05-17
+updated: 2026-05-22
title: Агент — контекст и инструкции для этого хранилища
---
# Агент — контекст и инструкции для этого хранилища
-## Кто владелец
+## Контекст
-- Учится на специалиста по **машинному обучению** и **анализу данных** с упором на финансовые структуры
-- Работает **Ruby-разработчиком** и **DevSecOps-инженером**
-- Увлекается **Linux**, **HomeLab**, **3D печатью** и **саморазвитием**.
+**Владелец:** ML/DS-специалист, Ruby-разработчик, DevSecOps-инженер. Интересы: Linux, HomeLab, 3D-печать, саморазвитие.
-## Роль агента
+**Роль агента:** соавтор `90 Library/` — обрабатывает черновики, создаёт заметки по запросу, поддерживает связи и порядок. Улучшает форму, не заменяет авторский стиль.
-Vault — второй мозг владельца. Агент помогает структурировать заметки, находить связи, оформлять материалы, автоматизировать рутинные изменения и поддерживать порядок в хранилище.
+## Правила
-Агент — соавтор `90 Library/`: дорабатывает черновики из Inbox, создаёт заметки из своих знаний по запросу, проставляет связи и следит за здоровьем графа.
+- Язык: русский. Стиль: коротко, прагматично.
+- Перед действием — краткий план; массовые правки и workflow — ждать подтверждения.
+- Видишь проблему со структурой, YAML, статусом — говори сразу.
+- Не трогать несвязанные правки, не удалять контент без явного запроса.
+- Если не хватает контекста — один вопрос, не серия.
-Инициатива, идеи и знания исходят от владельца. Агент дополняет, уточняет и аккуратно приводит материалы к устойчивой форме, не заменяя авторский стиль.
+## Границы записи
-## Правила работы
+| Папка | Доступ |
+|-------|--------|
+| `00 Inbox/`, `01 Ideas/`, `90 Library/` | читать и писать |
+| `02 Projects/`, `03 Journal/`, `99 System/` | только читать (менять по явному запросу) |
+| `99 System/Template/` | только читать |
-- **Язык ответов:** русский
-- **Длина:** коротко и по делу
-- **Перед действием:** сначала краткий план с обоснованием; для массовых правок, перемещений и workflow-действий ждать подтверждения
-- **Стиль:** прагматично, без лишней мотивации и украшений
-- **Замечания по хранилищу:** говорить сразу, если видны проблемы со структурой, YAML, статусами или связями
-- **Изменения файлов:** не трогать несвязанные пользовательские правки и не удалять содержимое без явного запроса
-
-## Границы работы
-
-- Писать только в `00 Inbox/`, `01 Ideas/` и `90 Library/`, если пользователь явно не разрешил другое
-- Никогда не менять без прямого запроса: `02 Projects/`, `03 Journal/`, `99 System/`
-- `99 System/Template/` читать можно, менять только по явному запросу
-- При сомнении считать заметку пользовательским материалом и сначала объяснить риск изменения
+- При сомнении — объяснить риск изменения, не трогать.
+- Не переименовывать и не перемещать без явной причины (ломаются ссылки).
+- Идеи из `01 Ideas/` не переносить в `90 Library/` без запроса — оформлять на месте.
## Работа с заметками
-Шаблоны находятся в `99 System/Template/`. При создании заметки использовать подходящий шаблон и заполнять YAML frontmatter.
+Шаблоны: `99 System/Template/`. Всегда использовать подходящий, заполнять frontmatter.
-| Шаблон | Когда использовать |
-|--------|-------------------|
-| `Base Note.md` | Любая концептуальная заметка |
-| `Study Item.md` | Книги, курсы, материалы для изучения |
-| `Daily Note.md` | Ежедневные заметки |
-| `Contact Template.md` | Контакты |
-| `Travel Item.md` | Путешествия |
+| Шаблон | Когда |
+|--------|-------|
+| `Base Note.md` | концептуальная заметка |
+| `Study Item.md` | книги, курсы |
+| `Daily Note.md` | ежедневные записи → `03 Journal/` |
+| `Contact Template.md` | контакты |
+| `Travel Item.md` | путешествия |
-**Обязательные properties:**
+**Обязательный frontmatter:** `title`, `status` (seed→processing→stable), `type` (concept/moc/lab/knowledge/guide), `tags`, `created`, `updated`.
-- `status`: `seed` → `processing` → `stable`
-- `type`: `concept` / `moc` / `lab` / `knowledge` / `guide`
-- `tags`: заполнять осмысленно
-- `created` и `updated`: актуальные даты
-- `title`: всегда заполнять
+**Статусы:**
+- `seed` — заметка только создана, не редактировалась.
+- `processing` — вносились любые изменения (кем угодно).
+- `stable` — заметка завершена. Можно спросить владельца, завершена ли она, при работе с ней. Статус может вернуться в `processing`.
-## Принципы хранилища
+## Принципы
-- Минимализм: не усложнять плагинами, лишними папками и искусственными структурами
-- Vault охватывает всё: учёбу, работу, личное, лабораторные заметки и справочные материалы
-- Хорошая заметка — та, что написал сам владелец
-- Задача агента — улучшать форму, связность и пригодность заметок к повторному использованию
-- Новые материалы лучше связывать с уже существующими заметками, чем создавать изолированные файлы
-
-## Принципы LLM Wiki
-
-- LLM Wiki — это навигационный слой для человека и LLM: заметки должны быть понятны без скрытого контекста
-- Каждая заметка должна отвечать на один главный вопрос или описывать одну устойчивую сущность
-- Названия должны быть прямыми и поисковыми, без временных формулировок вроде `разное`, `черновик`, `заметки`
-- В начале заметки полезно фиксировать краткое назначение: что это, зачем нужно, с чем связано
-- Связи важнее иерархии: использовать `[[wikilinks]]` к понятиям, источникам, MOC и соседним темам
-- Связи должны быть осмысленными: не добавлять ссылку только потому, что слово совпало
-- YAML нужен для машинной навигации, текст заметки — для человеческого понимания
-- Не превращать заметку в пересказ ради полноты; сохранять авторскую мысль, выводы и применимость
-- Если материал сырой, оставлять `status: seed`; если структурируется — `processing`; если пригоден как справка — `stable`
-- Для LLM важны явные контексты: расшифровывать сокращения, указывать область применения и ограничения
-- Дубли лучше объединять через ссылки и MOC, а не плодить почти одинаковые заметки
-- Любое автоматическое улучшение должно повышать читаемость, связность или повторное использование
-- Используем Inbox как единственный источник правды, если я туда закинул новую заметку по уже существующей теме, то стараемся обновить информацию в wiki
-
-## Известные проблемы
-
-1. Заметки зависают в `seed`-статусе и не переходят в `stable`
-2. Нет регулярного review старых заметок
-3. Трудно поддерживать привычку ежедневных заметок
-4. Некоторые темы проходят без фиксации
+- Минимализм: без лишних папок, плагинов, структур.
+- Одна заметка = один вопрос/сущность. Названия — прямые и поисковые.
+- Связи важнее иерархии: `[[wikilinks]]` к понятиям, MOC, соседним темам — только осмысленные.
+- YAML — для машины, текст — для человека. Не пересказывать ради полноты.
+- Inbox — источник правды: если туда упала заметка по существующей теме, обновить wiki.
+- Дубли объединять через ссылки/MOC, не плодить похожие файлы.
+- Перед созданием новой заметки проверить `INDEX.md` — нет ли уже близкой.
## Структура Library
| Раздел | Тема |
|--------|------|
-| `03 Math` | Статистика: ВР, ФА, кластеры, ДА, нечёткие множества |
-| `04 Networking` | OSI, VLAN, DHCP, Cisco, протоколы |
-| `10 Finance` | Налоговая система РФ, бухучёт |
-| `02 DevOps` | Ansible, Docker, Kubernetes, Terraform |
-| `05 OS` | Linux: права, env, редиректы |
-| `06 Programming` | Ruby on Rails, Sidekiq |
-| `11 ML` | Линейные модели, метрические алгоритмы |
-| `08 Study` | Конспекты курсов |
+| `Containers` | Docker, Kubernetes, Swarm, Mesos, Nomad |
+| `DevOps` | Ansible, Terraform, IaC, Git |
+| `Finance` | Инвестиции, Налоги, Бухучёт, Экономическая безопасность |
+| `HomeLab` | Инфраструктура, Proxy (Nginx, CA) |
+| `Linux` | Права, env, редиректы, команды |
+| `Machine Learning` | Нейросети, перцептрон, линейные модели, метрические алгоритмы |
+| `Math` | Статистика: ВР, ФА, кластеры, ДА, нечёткие множества |
+| `Networking` | OSI, VLAN, DHCP, Cisco, протоколы |
+| `Other` | Разное |
+| `Programming` | Ruby, Ruby on Rails, Sidekiq |
+| `Sport` | Спортивное питание |
-## Практические правила для агента
+## INDEX.md
-- Перед созданием новой заметки проверить, нет ли уже близкой по смыслу заметки
-- Если заметка учебная, искать место в `90 Library/08 Study/` или тематическом разделе `90 Library/`
-- Если заметка относится к проекту или лабораторной работе, сначала проверить `02 Projects/`
-- Идеи из `01 Ideas/` не переносить в `90 Library/` без прямого запроса; оформлять на месте, сохраняя авторский стиль, выделяя основную мысль и добавляя релевантные `[[wikilinks]]`
-- Для ежедневных записей использовать `03 Journal/`
-- При массовых правках сначала показать план и область изменений
-- Не переименовывать и не перемещать заметки без явной причины, потому что это может ломать ссылки
-- Если не хватает контекста, задать один конкретный вопрос вместо серии уточнений
+`INDEX.md` в корне vault — главный справочник агента: все заметки с путём, title, status, type, tags.
+
+- **Читать** в начале любого workflow вместо сканирования vault.
+- **Обновлять** после создания/удаления/перемещения заметки или изменения frontmatter.
+- **Как:** пройтись по всем `.md` (исключая `.trash`, `.obsidian`, `.git`, `.smart-env`, `.stversions`, сам `INDEX.md`), извлечь frontmatter, перезаписать файл в том же формате (frontmatter с `generated`/`total`, таблицы по секциям).
## Workflow: Ingest
-Триггер: команда `ingest` или новые файлы в `00 Inbox/`.
+Триггер: `ingest` или новые файлы в `00 Inbox/`.
-Если ingest запрошен для файла в `01 Ideas/`, не переносить его в `90 Library/` и не архивировать. Нужно оформить саму идею на месте: сохранить авторскую формулировку, выделить основную мысль, добавить структуру и релевантные ссылки на существующие заметки.
-- если в исходнике есть картинки, изучить их и принять решение - вынести из них информацию в заметку или оставить картинку в конечной заметке.
+Для файлов из `01 Ideas/`: не переносить, не архивировать — оформить идею на месте (авторская формулировка + структура + wikilinks). Картинки: изучить, решить — вынести текстом или оставить.
-Перед выполнением вывести план:
+**План перед выполнением:** какие файлы, какой шаблон, куда в `90 Library/`, какие wikilinks.
-- какие файлы из `00 Inbox/` будут обработаны
-- какой шаблон используется для каждого файла
-- куда создаётся итоговая заметка в `90 Library/`
-- какие `[[wikilinks]]` будут проставлены к существующим заметкам
-
-После подтверждения:
-1. Найти связанные заметки на тему черновика и решить, следует дополнить уже существующие заметки или создать новую.
-2. Создать/дополнить заметку в `90 Library/` по подходящему шаблону
-3. Доработать черновик: расширить, уточнить формулировки, структурировать
-4. Заполнить YAML frontmatter, поставить `status: seed`
-5. Добавить осмысленные `[[wikilinks]]`
-6. Переместить исходник в `99 System/Archive/` и добавить в YAML frontmatter созданной/дополненной заметки поле `source: "[[имя_файла]]"` со ссылкой на архивный файл
-7. После завершения показать список предложенных связей с существующими заметками, которые не были добавлены автоматически
+**После подтверждения:**
+1. Читать `INDEX.md` → найти связанные заметки → решить: дополнить существующую или создать новую.
+2. Создать/дополнить заметку в `90 Library/` по шаблону. Расширить, структурировать, заполнить frontmatter, `status: seed`.
+3. Добавить осмысленные `[[wikilinks]]`.
+4. Исходник → `99 System/Archive/`. В frontmatter заметки: `source: "[[имя_файла]]"`.
+5. Обновить `INDEX.md`.
+6. Показать список предложенных связей, которые не добавлены автоматически.
## Workflow: Wiki
-Триггер: команда `wiki [тема]`.
+Триггер: `wiki [тема]` — создать заметку из знаний агента без исходника.
-Агент создаёт заметку из своих знаний без исходника в Inbox.
+**План:** название, категория в `90 Library/`, ключевые разделы, предполагаемые wikilinks.
-Перед выполнением вывести план:
-
-- тема и предлагаемое название заметки
-- категория в `90 Library/`
-- ключевые разделы контента
-- предполагаемые `[[wikilinks]]` с существующими заметками
-
-После подтверждения:
-
-1. Создать заметку в `90 Library/` по шаблону `Base Note.md`
-2. Наполнить содержимым, сохраняя краткость и применимость
-3. Заполнить YAML frontmatter, поставить `status: seed`
-4. Проставить осмысленные `[[wikilinks]]`
-5. После завершения показать список предложенных связей, которые не были добавлены
+**После подтверждения:**
+1. Читать `INDEX.md` → убедиться, что близкой заметки нет.
+2. Создать по `Base Note.md`, наполнить, `status: seed`, проставить wikilinks.
+3. Обновить `INDEX.md`. Показать незакрытые связи.
## Workflow: Audit
-Триггер: команда `audit`.
+Триггер: `audit`.
-Проверить здоровье графа знаний:
+Читать `INDEX.md`. Проверить:
+- **orphan notes** — без входящих ссылок
+- **broken wikilinks** — ссылки на несуществующие файлы; если в `source:` frontmatter — заменить `"[[имя]]"` на `"имя"` (plain text)
+- **изолированные кластеры** — группы без связей с остальным графом
+- **предложения** — какие заметки стоит связать
-- orphan notes — заметки без входящих ссылок
-- broken wikilinks — ссылки на несуществующие заметки; если сломанная ссылка находится в поле `source:` YAML frontmatter, заменить `"[[имя_файла]]"` на просто `"имя_файла"` (plain text) во всех затронутых заметках
-- изолированные кластеры — группы заметок без связей с остальным графом
-- предложения — какие существующие заметки стоит связать между собой
-
-Вывести отчёт по каждому пункту с конкретными файлами.
+Отчёт по каждому пункту с конкретными файлами. Если исправлены broken links — обновить `INDEX.md`.
## Workflow: Remind
-Триггер: команда `remind`.
+Триггер: `remind`.
-Вывести топ-5 заметок, которые стоит перечитать или дописать.
+Читать `INDEX.md`. Топ-5 заметок для перечитки/доработки: `status: seed/processing`, давно не обновлялись, давно не читались. Формат: `[[ссылка]]` — причина — действие (перечитать/дописать/связать/стабилизировать). Файлы не менять.
-Критерии отбора:
+## Workflow: Conflicts
-- `status: seed` или `status: processing`;
-- заметка давно не обновлялась;
-- заметка выглядит важной для текущих направлений владельца: ML/DS, финансы, DevSecOps, Linux/HomeLab;
-- заметка имеет слабые связи, мало контекста или очевидные TODO/недописанные разделы.
+Триггер: `conflicts`. Паттерн конфликтов Syncthing: `имя.sync-conflict-YYYYMMDD-HHMMSS-DEVICEID.md`.
-Формат ответа:
+1. Найти все конфликтные файлы (кроме `.trash`, `.git`, `.obsidian`).
+2. Для каждого: путь конфликта, путь оригинала, существует ли оригинал, diff-резюме.
+3. Показать план разрешения, ждать подтверждения.
-- ссылка на заметку через `[[wikilink]]`;
-- короткая причина, почему её стоит перечитать или дописать;
-- конкретное предлагаемое действие: перечитать, дописать, связать, обновить, стабилизировать.
+Варианты: `keep-original` / `keep-conflict` / `merge` (показать diff, решает пользователь) / `keep-both`.
-Не менять файлы автоматически. Только вывести список и рекомендации.
-
-## Workflow: Agent Test
-
-Триггер: команда `agent-test`.
-
-Если агент прочитал и применяет `AGENTS.md`, он должен ответить ровно:
-
-```text
-AGENTS_OK
-```
-
-Не добавлять пояснения, списки или другой текст.
+После подтверждения — выполнить, отчёт, обновить `INDEX.md`.
## Workflow: Query
Триггер: вопрос по содержимому vault.
-Перед ответом указать:
-
-- какие заметки были прочитаны
-- на что опирается ответ
-
-Отвечать по содержимому `90 Library/`, цитировать конкретные заметки через `[[links]]`. Если ответа в vault нет, сказать это явно и отделить выводы Codex от фактов из заметок.
+Читать `INDEX.md`, затем нужные заметки. Указать, что прочитано и на что опирается ответ. Цитировать через `[[links]]`. Если ответа в vault нет — сказать явно.
diff --git a/INDEX.md b/INDEX.md
new file mode 100644
index 0000000..5366f6b
--- /dev/null
+++ b/INDEX.md
@@ -0,0 +1,502 @@
+---
+generated: 2026-05-22
+total: 450
+---
+
+# Vault Index
+
+Служебный файл для LLM-агента. Не редактировать вручную.
+
+## Статистика
+
+| Параметр | Значение |
+|----------|----------|
+| Всего заметок | 450 |
+| status: processing | 32 |
+| status: seed | 213 |
+| status: stable | 112 |
+| status: — | 93 |
+
+## Заметки
+
+Формат: `путь` | title | status | type | tags
+
+### 01 Ideas (1)
+
+| `01 Ideas/Идея от 2026-05-14.md` | Формат коротких роликов с адресным объяснением | seed | concept | — |
+
+### 02 Projects (9)
+
+| `02 Projects/Личные/reader.md` | — | seed | concept | — |
+| `02 Projects/Личные/Финансы/Подписки - календарь.md` | Подписки - календарь | seed | concept | — |
+| `02 Projects/Наука/НИР/Анализ рынка систем учета посещаемости.md` | Анализ рынка систем учета посещаемости | seed | concept | — |
+| `02 Projects/Наука/НИР/НИР.md` | НИР | seed | concept | — |
+| `02 Projects/Наука/Статьи/Разработка алгоритма автоматического бэкапа на основе «важности» данных.md` | 'Разработка алгоритма автоматического бэкапа на основе "важности" данных' | processing | project | article, science |
+| `02 Projects/Наука/Статьи/Сравнение LLM-моделей на задачах вопросно-ответных систем службы поддержки.md` | Сравнение LLM-моделей на задачах вопросно-ответных систем службы поддержки | seed | concept | — |
+| `02 Projects/Наука/Статьи/Статья с Виноградовой.md` | Статья с Виноградовой | seed | concept | — |
+| `02 Projects/УИР.md` | УИР | seed | knowledge | — |
+| `02 Projects/Учеба/Домашки/Информация по курсовой. ИРФМ.md` | Курсовая работа — Поиск стоп-слов в УК РФ | processing | concept | учёба, курсовая, nlp, zipf |
+
+### 90 Library (227)
+
+| `90 Library/Containers/Apache Mesos.md` | Apache Mesos | stable | concept | — |
+| `90 Library/Containers/Docker Swarm.md` | Docker Swarm | stable | concept | — |
+| `90 Library/Containers/Docker/Docker - Дополнительные знания.md` | Docker - Дополнительные Знания | stable | concept | — |
+| `90 Library/Containers/Docker/Images, Dockerfile - Docker.md` | Images, Dockerfile - Docker | stable | concept | — |
+| `90 Library/Containers/Docker/Multistaging - Docker.md` | Multistaging - Docker | stable | concept | — |
+| `90 Library/Containers/Docker/Network Drivers - Docker.md` | Network Drivers - Docker | stable | concept | — |
+| `90 Library/Containers/Docker/Storage Drivers - Docker.md` | Storage Drivers - Docker | stable | concept | — |
+| `90 Library/Containers/Docker/Volume - Docker.md` | Volume - Docker | stable | concept | — |
+| `90 Library/Containers/Docker/Основы - Docker.md` | Основы - Docker | stable | concept | — |
+| `90 Library/Containers/HashiCorp Nomad.md` | HashiCorp Nomad | stable | concept | — |
+| `90 Library/Containers/Kubernetes/Control Plane - Плоскость управления.md` | Control Plane - Плоскость управления | processing | concept | — |
+| `90 Library/Containers/Kubernetes/Data Plane - Плоскость данных.md` | Data Plane - Плоскость данных | processing | concept | — |
+| `90 Library/Containers/Kubernetes/Deployment и ReplicaSet.md` | Deployment и ReplicaSet | stable | concept | — |
+| `90 Library/Containers/Kubernetes/Kubernetes.md` | Kubernetes | stable | moc | — |
+| `90 Library/Containers/Kubernetes/PV, PVC.md` | PV, PVC | stable | concept | — |
+| `90 Library/Containers/Kubernetes/Алгоритм выбора лидера Lease.md` | Алгоритм выбора лидера Lease | stable | concept | — |
+| `90 Library/Containers/Kubernetes/Алгоритм консенсуса raft.md` | Алгоритм консенсуса raft | stable | concept | — |
+| `90 Library/Containers/Kubernetes/Шаблонизатор Helm.md` | Шаблонизатор Helm | seed | guide | — |
+| `90 Library/DevOps/Ansible/Ansible - основы.md` | Ansible - Основы | stable | concept | — |
+| `90 Library/DevOps/Ansible/Fail2Ban - Ansible.md` | Fail2Ban - Ansible | stable | concept | — |
+| `90 Library/DevOps/Ansible/Inventory - Ansible.md` | Inventory - Ansible | stable | concept | — |
+| `90 Library/DevOps/Ansible/Loops - Ansuble.md` | Loops - Ansuble | stable | concept | — |
+| `90 Library/DevOps/Ansible/Modules - Ansible.md` | Modules - Ansible | stable | concept | — |
+| `90 Library/DevOps/Ansible/Playbooks - Ansible.md` | Playbooks - Ansible | stable | concept | — |
+| `90 Library/DevOps/DevOps - основы.md` | DevOps - основы | stable | concept | — |
+| `90 Library/DevOps/Git.md` | Git | seed | concept | — |
+| `90 Library/DevOps/Gitlab.md` | Gitlab | seed | concept | — |
+| `90 Library/DevOps/IaC - основы.md` | IaC - Основы | stable | concept | — |
+| `90 Library/DevOps/Terraform.md` | Terraform | stable | concept | — |
+| `90 Library/DevOps/Основные команды git.md` | Основные команды git | seed | guide | — |
+| `90 Library/Finance/Бухгалтерский учет/Бухгалтерский баланс.md` | Бухгалтерский Баланс (ББ) | processing | concept | — |
+| `90 Library/Finance/Бухгалтерский учет/Отчет о финансовых результатах.md` | Отчет о финансовых результатах (ОФР) | processing | concept | — |
+| `90 Library/Finance/Инвестиции/Акции.md` | Акции | seed | guide | — |
+| `90 Library/Finance/Инвестиции/База инвестора.md` | База инвестора | seed | moc | — |
+| `90 Library/Finance/Инвестиции/Дивидендный портфель.md` | Дивидендный портфель | seed | guide | — |
+| `90 Library/Finance/Инвестиции/Золото в портфеле.md` | Золото в портфеле | seed | concept | — |
+| `90 Library/Finance/Инвестиции/Инвестиционные фонды.md` | Инвестиционные фонды | seed | guide | — |
+| `90 Library/Finance/Инвестиции/Инвестиционный портфель.md` | Инвестиционный портфель | seed | concept | — |
+| `90 Library/Finance/Инвестиции/Индексное инвестирование.md` | Индексное инвестирование | seed | guide | — |
+| `90 Library/Finance/Инвестиции/Инсайдерская торговля и манипулирование рынком.md` | Инсайдерская торговля и манипулирование рынком | seed | concept | — |
+| `90 Library/Finance/Инвестиции/Криптовалюты как инвестиционный актив.md` | Криптовалюты как инвестиционный актив | seed | concept | — |
+| `90 Library/Finance/Инвестиции/Облигации с залоговым обеспечением.md` | Облигации с залоговым обеспечением денежных требований | seed | concept | — |
+| `90 Library/Finance/Инвестиции/Облигации.md` | Облигации | seed | guide | — |
+| `90 Library/Finance/Инвестиции/Оценка акций.md` | Оценка акций | seed | guide | — |
+| `90 Library/Finance/Инвестиции/Риск-профиль инвестора.md` | Риск-профиль инвестора | seed | concept | — |
+| `90 Library/Finance/Инвестиции/Трейдинг.md` | Трейдинг | seed | guide | — |
+| `90 Library/Finance/Инвестиции/Управление инвестиционным портфелем.md` | Управление инвестиционным портфелем | seed | guide | — |
+| `90 Library/Finance/Налоги/Акцизы.md` | Акцизы | stable | concept | — |
+| `90 Library/Finance/Налоги/Государственная пошлина.md` | Государственная Пошлина | processing | concept | — |
+| `90 Library/Finance/Налоги/Государственный бюджет.md` | Государственный Бюджет | seed | concept | — |
+| `90 Library/Finance/Налоги/Доходы в целях налога на прибыль.md` | Доходы В Целях Налога На Прибыль | seed | concept | — |
+| `90 Library/Finance/Налоги/Законодательная база.md` | Законодательная База | seed | concept | — |
+| `90 Library/Finance/Налоги/Кривая Лаффера.md` | Кривая Лаффера | seed | concept | — |
+| `90 Library/Finance/Налоги/Методы признания доходов и расходов.md` | Методы Признания Доходов И Расходов | seed | concept | — |
+| `90 Library/Finance/Налоги/Налог на добавленную стоимость.md` | Налог На Добавленную Стоимость | seed | concept | — |
+| `90 Library/Finance/Налоги/Налог на доходы физических лиц (НДФЛ).md` | Налог На Доходы Физических Лиц (НДФЛ) | processing | concept | — |
+| `90 Library/Finance/Налоги/Налог на имущество ФЛ.md` | Налог На Имущество ФЛ | seed | concept | — |
+| `90 Library/Finance/Налоги/Налог на имущество организаций.md` | Налог На Имущество Организаций | seed | concept | — |
+| `90 Library/Finance/Налоги/Налог на прибыль.md` | Налог На Прибыль | seed | concept | — |
+| `90 Library/Finance/Налоги/Налоговая декларация.md` | Налоговая Декларация | processing | concept | — |
+| `90 Library/Finance/Налоги/Налоговая нагрузка.md` | Налоговая Нагрузка | seed | concept | — |
+| `90 Library/Finance/Налоги/Налоговая система (Классификация налогов).md` | Налоговая Система (Классификация налогов) | stable | concept | — |
+| `90 Library/Finance/Налоги/Налоговые вычеты.md` | Налоговые Вычеты | processing | concept | — |
+| `90 Library/Finance/Налоги/Налоговый контроль (камеральные, выездные проверки).md` | Налоговый Контроль (камеральные, Выездные проверки) | seed | concept | — |
+| `90 Library/Finance/Налоги/Налогообложение в России.md` | Налогообложение в России | stable | moc | — |
+| `90 Library/Finance/Налоги/Налогоплательщики и объекты налога на прибыль организаций.md` | Налогоплательщики И Объекты Налога На Прибыль Организаций | seed | concept | — |
+| `90 Library/Finance/Налоги/Ответственность (санкции, административная и уголовная).md` | Ответственность (санкции, Административная И уголовная) | seed | concept | — |
+| `90 Library/Finance/Налоги/Производные финансовые инструменты.md` | Производные Финансовые Инструменты | processing | concept | — |
+| `90 Library/Finance/Налоги/Разница метода по отгрузке и по оплате.md` | Разница Метода По Отгрузке И По Оплате | seed | concept | — |
+| `90 Library/Finance/Налоги/Расходы в целях налога на прибыль.md` | Расходы В Целях Налога На Прибыль | seed | concept | — |
+| `90 Library/Finance/Налоги/Специальные налоги организаций.md` | Специальные Налоги Организаций | seed | concept | — |
+| `90 Library/Finance/Налоги/Специальные налоговые режимы.md` | Специальные Налоговые Режимы | stable | concept | — |
+| `90 Library/Finance/Налоги/Страховые взносы.md` | Страховые Взносы | seed | concept | — |
+| `90 Library/Finance/Налоги/Субъекты налоговой системы (права и обязанности).md` | Субъекты Налоговой Системы (права И обязанности) | seed | concept | — |
+| `90 Library/Finance/Налоги/Сущность и история налогов.md` | Сущность И История Налогов | processing | concept | — |
+| `90 Library/Finance/Налоги/Таможенные пошлины.md` | Таможенные Пошлины | stable | concept | — |
+| `90 Library/Finance/Налоги/Функции налогов и экономические циклы.md` | Функции Налогов И Экономические Циклы | seed | concept | — |
+| `90 Library/Finance/Экономическая Безопасность/Индикаторы экономической безопасность.md` | Индикаторы экономической безопасность | stable | concept | — |
+| `90 Library/Finance/Экономическая Безопасность/Экономическая безопасность - база.md` | Экономическая безопасность | seed | concept | — |
+| `90 Library/HomeLab/Infrastructure — ada-dev.md` | Infrastructure — ada-dev | seed | concept | — |
+| `90 Library/HomeLab/Proxy/CA и NGINX.md` | CA И NGINX | stable | lab | — |
+| `90 Library/HomeLab/Proxy/Nginx Proxy Manager под path.md` | Nginx Proxy Manager под path | seed | guide | — |
+| `90 Library/HomeLab/Проблемы дистрибутивов.md` | Проблемы дистрибутивов | seed | concept | — |
+| `90 Library/Linux/Command Help.md` | Command Help | stable | concept | — |
+| `90 Library/Linux/Command Path.md` | Command Path | stable | concept | — |
+| `90 Library/Linux/Environment Variables.md` | Environment Variables | stable | concept | — |
+| `90 Library/Linux/File Permissions.md` | File Permissions | stable | concept | — |
+| `90 Library/Linux/Linux.md` | Linux | stable | moc | — |
+| `90 Library/Linux/Redirects.md` | Redirects | stable | concept | — |
+| `90 Library/Linux/Super-user.md` | Super-user | stable | concept | — |
+| `90 Library/Machine Learning/Backpropagation для многослойной нейронной сети.md` | Backpropagation для многослойной нейронной сети | stable | concept | — |
+| `90 Library/Machine Learning/Backpropagation для однослойного перцептрона.md` | Backpropagation для однослойного перцептрона | stable | concept | — |
+| `90 Library/Machine Learning/Алгоритм обучения сети Кохонена.md` | Алгоритм обучения сети Кохонена | seed | concept | — |
+| `90 Library/Machine Learning/Линейные модели.md` | Линейные модели | processing | concept | — |
+| `90 Library/Machine Learning/Метрические алгоритмы.md` | Метрические алгоритмы | processing | concept | — |
+| `90 Library/Machine Learning/Нейронная сеть Кохонена.md` | Нейронная сеть Кохонена | seed | concept | — |
+| `90 Library/Machine Learning/Нейронные сети.md` | Нейронные сети | processing | concept | — |
+| `90 Library/Machine Learning/Обратное распространение ошибки.md` | Обратное распространение ошибки | stable | concept | — |
+| `90 Library/Machine Learning/Обучение без учителя. Алгоритм Хебба.md` | Обучение без учителя. Алгоритм Хебба | seed | concept | — |
+| `90 Library/Machine Learning/Персептрон.md` | Персептрон | seed | concept | — |
+| `90 Library/Machine Learning/Предобработка данных для нейронных сетей.md` | Предобработка данных для нейронных сетей | seed | concept | — |
+| `90 Library/Machine Learning/Сеть Хопфилда.md` | Сеть Хопфилда | seed | concept | — |
+| `90 Library/Machine Learning/Сеть Хэмминга.md` | Сеть Хэмминга | seed | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/TS и DS ряды.md` | TS И DS Ряды | stable | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Автокорреляционная (ACF) и частная автокорреляционная (PACF) функции.md` | Автокорреляционная (ACF) И Частная Автокорреляционная (PACF) Функции | processing | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Автокорреляционная функция (АКФ).md` | Автокорреляционная Функция (АКФ) | stable | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Авторегрессия AR.md` | Авторегрессия AR | seed | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Белый шум.md` | Белый Шум | seed | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/ВР - основы.md` | ВР - Основы | stable | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Временные ряды.md` | Временные Ряды | stable | moc | — |
+| `90 Library/Math/Статистика/Временные ряды/Лаговый оператор.md` | Лаговый Оператор | processing | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Модели АРПСС. Методология Бокса-Дженкинса.md` | Модели АРПСС. Методология Бокса-Дженкинса | stable | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Модели скользящего среднего.md` | Модели Скользящего Среднего | seed | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Моделирование временных рядов.md` | Моделирование Временных Рядов | stable | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Общая схема методологии Бокса-Дженкинса.md` | Общая Схема Методологии Бокса-Дженкинса | seed | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Определение временного ряда, виды и особенности.md` | Определение Временного Ряда, Виды И Особенности | processing | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Определение порядков АР и СС.md` | Определение Порядков АР И СС | seed | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Переход к стационарным разностям.md` | Переход К Стационарным Разностям | seed | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Порядок интегрированности ряда.md` | Порядок Интегрированности Ряда | processing | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Проверка адекватности и выбор модели.md` | Проверка Адекватности И Выбор Модели | seed | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Процедура Доладо — Дженкинса — Сосвилла — Ривера.md` | Процедура Доладо — Дженкинса — Сосвилла — Ривера | seed | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Процесс ARIMA.md` | Процесс $ARIMA$ | seed | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Разложение Вольда.md` | Разложение Вольда | processing | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Скользящее среднее MA.md` | Скользящее Среднее Порядка $q$ | stable | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Случайное блуждание.md` | Случайное Блуждание | seed | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Смешанные модели (ARMA).md` | Смешанные Модели (ARMA) | seed | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Стационарность - ВР.md` | Стационарность - ВР | stable | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Стационарность. Строгая и слабая стационарность.md` | Стационарность. Строгая И Слабая Стационарность | seed | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Тесты на единичный корень и Дики-Фуллер.md` | Тесты На Единичный Корень | seed | concept | — |
+| `90 Library/Math/Статистика/Временные ряды/Частная автокорреляционная функция.md` | Частная Автокорреляционная Функция | stable | concept | — |
+| `90 Library/Math/Статистика/Дискриминантный анализ/Дискриминантный анализ.md` | Дискриминантный Анализ | stable | moc | — |
+| `90 Library/Math/Статистика/Дискриминантный анализ/Параметрический дискриминантный анализ в случае нормального закона распределения классов.md` | Параметрический Дискриминантный Анализ В Случае Нормального Закона Распределения Классов | seed | concept | — |
+| `90 Library/Math/Статистика/Дискриминантный анализ/Построение оптимальной процедуры классификации.md` | Построение Оптимальной Процедуры Классификации | seed | concept | — |
+| `90 Library/Math/Статистика/Дискриминантный анализ/Принципы дискриминантного анализа.md` | Принципы Дискриминантного Анализа | seed | concept | — |
+| `90 Library/Math/Статистика/Дискриминантный анализ/Условие отнесения объекта к классу в случае двух признаков.md` | Условие Отнесения Объекта К Классу В Случае Двух Признаков | stable | concept | — |
+| `90 Library/Math/Статистика/Дискриминантный анализ/Функция потерь.md` | Функция Потерь | seed | concept | — |
+| `90 Library/Math/Статистика/Кластерный анализ/Агломеративные (иерархические) методы.md` | Агломеративные (иерархические) Методы | seed | concept | — |
+| `90 Library/Math/Статистика/Кластерный анализ/Дивизимные методы.md` | Дивизимные Методы | seed | concept | — |
+| `90 Library/Math/Статистика/Кластерный анализ/Интерпретация результатов кластеризации.md` | Интерпретация Результатов Кластеризации | seed | concept | — |
+| `90 Library/Math/Статистика/Кластерный анализ/Итерационная классификация. Метод K-средних (K-means).md` | Итерационные Методы | seed | concept | — |
+| `90 Library/Math/Статистика/Кластерный анализ/Классификация.md` | Классификация | seed | concept | — |
+| `90 Library/Math/Статистика/Кластерный анализ/Кластерный анализ.md` | Кластерный Анализ | stable | moc | — |
+| `90 Library/Math/Статистика/Кластерный анализ/Критерии определения оптимального числа классов.md` | Критерии Определения Оптимального Числа Классов | seed | concept | — |
+| `90 Library/Math/Статистика/Кластерный анализ/Наивный Байесовский алгоритм.md` | Наивный Байесовский Алгоритм | seed | concept | — |
+| `90 Library/Math/Статистика/Кластерный анализ/Понятие однородности объектов.md` | Понятие Однородности Объектов | seed | concept | — |
+| `90 Library/Math/Статистика/Кластерный анализ/Постановка задачи Кластерного анализа.md` | Постановка Задачи Кластерного Анализа | seed | concept | — |
+| `90 Library/Math/Статистика/Кластерный анализ/Расстояние между классами объектов.md` | Расстояние Между Классами Объектов | stable | concept | — |
+| `90 Library/Math/Статистика/Кластерный анализ/Расстояние между объектами.md` | Расстояние Между Объектами | stable | concept | — |
+| `90 Library/Math/Статистика/Кластерный анализ/Функционалы качества разбиения.md` | Функционалы Качества Разбиения | seed | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Алгоритм оценки главных компонент.md` | Алгоритм Оценки Главных Компонент | seed | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Алгоритм оценки главных факторов. Матрица индивидуальных значений ГФ.md` | Алгоритм Оценки Главных Факторов. Матрица Индивидуальных Значений ГФ | processing | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Вращение факторов.md` | Вращение Факторов | seed | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Матрица индивидуальных значений.md` | Матрица Индивидуальных Значений | seed | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Матрица нагрузок и её свойства.md` | Матрица Нагрузок И Её Свойства | seed | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Метод главных факторов. Методы оценки общности.md` | Метод Главных Факторов. Методы Оценки Общности | stable | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Определение первой и последующих компонент.md` | Определение И Процедура Построения Первой И Последующих Компонент | seed | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Основные числовые характеристики главных компонент.md` | Основные Числовые Характеристики Главных Компонент | stable | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Постановка задачи снижения размерности признакового пространства.md` | Постановка Задачи Снижения Размерности Признакового Пространства | seed | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Процедура построения первой и остальных главных компонент.md` | Процедура Построения Первой И Остальных Главных Компонент | stable | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Разложение дисперсии в факторном анализе. Разложение характерности в факторном анализе.md` | Разложение Дисперсии В Факторном Анализе. Разложение Характерности В Факторном Анализе | stable | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Требования к факторам. Линейная модель факторного анализа.md` | Требования К Факторам. Линейная Модель Факторного Анализа | stable | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/ФА - вращение.md` | ФА - Вращение | seed | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/ФА - модель, цель, сущность.md` | ФА - Модель, Цель, Сущность | stable | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Факторное отображение. Факторная структура.md` | Факторное Отображение. Факторная Структура | stable | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Факторный анализ. Цели и сущность. Постановка задачи. Отличие от анализа главных компонент.md` | Факторный Анализ. Цели И Сущность. Постановка Задачи. Отличие От Анализа Главных Компонент | seed | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Факторный анализ.md` | Факторный Анализ | stable | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Фундаментальная теорема факторного анализа.md` | Фундаментальная Теорема Факторного Анализа | stable | concept | — |
+| `90 Library/Math/Статистика/Факторный анализ/Этапы ФА. Выделение факторов.md` | Этапы ФА. Выделение Факторов | seed | concept | — |
+| `90 Library/Math/Теория нечетких множеств/Доказательство законов Де Моргана.md` | Доказательство законов Де Моргана | seed | concept | — |
+| `90 Library/Math/Теория нечетких множеств/Коэффициенты функций принадлежности.md` | Коэффициенты функций принадлежности | seed | concept | — |
+| `90 Library/Math/Теория нечетких множеств/Логические операции над нечеткими множествами.md` | Логические операции над нечеткими множествами | seed | concept | — |
+| `90 Library/Math/Теория нечетких множеств/Определение нечеткого множества.md` | Определение Нечеткого Множества | seed | concept | — |
+| `90 Library/Math/Теория нечетких множеств/Теория нечетких множеств.md` | Теория Нечетких Множеств | stable | moc | — |
+| `90 Library/Math/Теория нечетких множеств/Функция принадлежности.md` | Функция принадлежности | stable | concept | — |
+| `90 Library/Networking/Ethernet.md` | Ethernet | stable | concept | — |
+| `90 Library/Networking/LAN vs WAN.md` | LAN Vs WAN | stable | concept | — |
+| `90 Library/Networking/MAC-адрес.md` | MAC-адрес | stable | concept | — |
+| `90 Library/Networking/NAT.md` | NAT | stable | concept | — |
+| `90 Library/Networking/Networking - MOC.md` | Networking - MOC | stable | moc | — |
+| `90 Library/Networking/Router-on-a-Stick/RoaS - Base.md` | RoaS - Base | stable | concept | — |
+| `90 Library/Networking/Router-on-a-Stick/Router-on-a-Stick.md` | Router-on-a-Stick | stable | moc | — |
+| `90 Library/Networking/Router-on-a-Stick/Настройка коммутатора Cisco (Router-on-a-Stick).md` | Настройка Коммутатора Cisco (Router-on-a-Stick) | processing | lab | — |
+| `90 Library/Networking/VLAN/VLAN - Base.md` | VLAN - Base | stable | concept | — |
+| `90 Library/Networking/VLAN/VLAN - диапазоны.md` | VLAN - Диапазоны | stable | concept | — |
+| `90 Library/Networking/VLAN/VLAN - история и trunk.md` | VLAN - История И Trunk | stable | concept | — |
+| `90 Library/Networking/VLAN/VLAN - настройка Cisco.md` | VLAN - Настройка Cisco | stable | concept | — |
+| `90 Library/Networking/VLAN/VLAN - полная настройка Cisco.md` | VLAN - Полная Настройка Cisco | stable | concept | — |
+| `90 Library/Networking/VLAN/VLAN.md` | VLAN | stable | moc | — |
+| `90 Library/Networking/VLSM.md` | VLSM | stable | concept | — |
+| `90 Library/Networking/VPN.md` | VPN | stable | concept | — |
+| `90 Library/Networking/Базовая настройка коммутатора.md` | Базовая Настройка Коммутатора | stable | concept | — |
+| `90 Library/Networking/Введение в сетевую безопасность.md` | Введение в сетевую безопасность | seed | concept | — |
+| `90 Library/Networking/Витая пара.md` | Витая Пара | stable | concept | — |
+| `90 Library/Networking/Иерархическая модель Cisco.md` | Иерархическая Модель Cisco | stable | concept | — |
+| `90 Library/Networking/Инкапсуляция данных.md` | Инкапсуляция Данных | stable | concept | — |
+| `90 Library/Networking/Коммутатор L3 vs Маршрутизатор.md` | Коммутатор L3 Vs Маршрутизатор | stable | concept | — |
+| `90 Library/Networking/Модель OSI.md` | Модель OSI | stable | concept | — |
+| `90 Library/Networking/Пример настройки DHCPv6.md` | Пример Настройки DHCPv6 | stable | concept | — |
+| `90 Library/Networking/Протоколы/ARP.md` | ARP | stable | concept | — |
+| `90 Library/Networking/Протоколы/DHCP/DHCP-snooping.md` | DHCP-snooping | seed | concept | — |
+| `90 Library/Networking/Протоколы/DHCP/DHCP.md` | DHCP | stable | concept | — |
+| `90 Library/Networking/Протоколы/DHCP/Dynamic ARP Inspection.md` | Dynamic ARP Inspection | seed | concept | — |
+| `90 Library/Networking/Протоколы/DHCP/Механизм работы - DHCP.md` | Механизм Работы - DHCP | stable | concept | — |
+| `90 Library/Networking/Протоколы/DHCP/Настройка DHCP - Cisco.md` | Настройка DHCP - Cisco | stable | concept | — |
+| `90 Library/Networking/Протоколы/DHCP/Настройка DHCP Snooping и DAI.md` | Настройка DHCP Snooping И DAI | seed | lab | — |
+| `90 Library/Networking/Протоколы/DNS.md` | DNS | stable | concept | — |
+| `90 Library/Networking/Протоколы/ICMP - Internet Control Messag.md` | ICMP - Internet Control Message | stable | concept | — |
+| `90 Library/Networking/Протоколы/IP-адрес.md` | IP-адрес | stable | concept | — |
+| `90 Library/Networking/Протоколы/IPv6.md` | IPv6 | stable | concept | — |
+| `90 Library/Networking/Протоколы/TCP vs UDP.md` | TCP Vs UDP | stable | concept | — |
+| `90 Library/Networking/Режимы передачи данных в сетях.md` | Режимы Передачи Данных В Сетях | stable | concept | — |
+| `90 Library/Networking/Сегментация сети.md` | Сегментация Сети | stable | concept | — |
+| `90 Library/Networking/Сетевые устройства.md` | Сетевые Устройства | stable | concept | — |
+| `90 Library/Networking/Утилита Ping.md` | Утилита Ping | stable | concept | — |
+| `90 Library/Networking/Широковещательные и коллизионные домены. Коммутация..md` | Широковещательные И Коллизионные Домены. Коммутация | stable | concept | — |
+| `90 Library/Networking/Широковещательные и коллизионные домены. Маршрутизация..md` | Широковещательные И Коллизионные Домены. Маршрутизация | stable | concept | — |
+| `90 Library/Other/Guide - Статья.md` | Guide - Статья | processing | concept | — |
+| `90 Library/Other/Гайд на научников.md` | Гайд на научников | stable | knowledge | — |
+| `90 Library/Other/Сканер отпечатка пальцев.md` | Сканер Отпечатка Пальцев | processing | knowledge | — |
+| `90 Library/Programming/Ruby - массивы.md` | Ruby - массивы | seed | knowledge | — |
+| `90 Library/Programming/Ruby - основы языка.md` | Ruby - основы языка | seed | knowledge | — |
+| `90 Library/Programming/Ruby On Rails/Active Storage.md` | Active Storage | processing | concept | — |
+| `90 Library/Programming/Ruby On Rails/Rails credentials edit не открывает редактор.md` | Rails credentials edit не открывает редактор | seed | guide | — |
+| `90 Library/Programming/Ruby On Rails/Ruby On Rails.md` | Ruby On Rails | stable | moc | — |
+| `90 Library/Programming/Ruby On Rails/Sidekiq - основа работы.md` | Sidekiq - Основа Работы | processing | concept | — |
+| `90 Library/Sport/L-карнитин.md` | L-карнитин | seed | concept | — |
+| `90 Library/Sport/Креатин.md` | Креатин | seed | concept | — |
+
+### 99 System (53)
+
+| `99 System/Archive/31, 32 - Налоги 1.md` | 31, 32 - Налоги | seed | knowledge | — |
+| `99 System/Archive/31, 32 - Налоги.md` | 31, 32 - Налоги | seed | knowledge | — |
+| `99 System/Archive/Git.md` | Git | seed | concept | — |
+| `99 System/Archive/Gitlab.md` | Gitlab | seed | concept | — |
+| `99 System/Archive/HW Eng17.03.md` | HW Eng17.03 | seed | concept | — |
+| `99 System/Archive/HW Eng20.03.26.md` | HW Eng20.03.26 | seed | concept | — |
+| `99 System/Archive/HW Eng24.03.md` | — | seed | concept | — |
+| `99 System/Archive/Infrastructure.md` | Infrastructure | seed | concept | — |
+| `99 System/Archive/OSINT - Зачет.md` | OSINT - Зачет | processing | knowledge | — |
+| `99 System/Archive/Rails credentials edit не открывает редактор.md` | Rails credentials edit не открывает редактор | seed | concept | — |
+| `99 System/Archive/Ruby - массивы.md` | Ruby - массивы | seed | concept | — |
+| `99 System/Archive/Ruby - основы языка.md` | Ruby - основы языка | seed | concept | — |
+| `99 System/Archive/Upgrade Homelab.md` | Upgrade Homelab | processing | project | — |
+| `99 System/Archive/Алгоритм обратного распространения ошибки для произвольного числа слоев НС.md` | Алгоритм обратного распространения ошибки для произвольного числа слоев НС | seed | concept | — |
+| `99 System/Archive/Алгоритм обучения сети Кохонена.md` | Алгоритм обучения сети Кохонена | seed | concept | — |
+| `99 System/Archive/Анализ типа фин. устойчивости.md` | Анализ типа фин. устойчивости | seed | concept | — |
+| `99 System/Archive/ВДО no кредитам.md` | — | seed | concept | — |
+| `99 System/Archive/Введение в сетевую безопасность.md` | Введение в сетевую безопасность | processing | concept | — |
+| `99 System/Archive/Идеи для статьи.md` | Идеи Для Статьи | — | — | — |
+| `99 System/Archive/Идея сети кохонена.md` | Идея сети кохонена | seed | concept | — |
+| `99 System/Archive/Идея.md` | — | seed | concept | — |
+| `99 System/Archive/КР - Кохонен.md` | КР - Кохонен | seed | concept | — |
+| `99 System/Archive/КР - Персептрон.md` | КР - Персептрон | seed | concept | — |
+| `99 System/Archive/КР - Хопфилд.md` | КР - Хопфилд | seed | concept | — |
+| `99 System/Archive/Лайфхак для NPM. Как проксировать не на поддомен а на под путь.md` | Лайфхак для NPM. Как проксировать не на поддомен а на под путь | seed | concept | — |
+| `99 System/Archive/Налоги - Организационные моменты.md` | Налоги - Организационные Моменты | seed | knowledge | — |
+| `99 System/Archive/Налоги - СР2.md` | Налоги - СР2 | seed | knowledge | — |
+| `99 System/Archive/Нейронная сеть Кохонена.md` | Нейронная сеть Кохонена | seed | concept | — |
+| `99 System/Archive/Нейронная сеть хемминга.md` | Нейронная сеть хемминга | seed | concept | — |
+| `99 System/Archive/Обратное распространение ошибки - вывод.md` | Обратное распространение ошибки - вывод | seed | concept | — |
+| `99 System/Archive/Основные команды git.md` | Основные команды git | processing | concept | — |
+| `99 System/Archive/Подготовка Speaking.md` | Подготовка Speaking | seed | concept | — |
+| `99 System/Archive/Подготовка к защите ЛР2.md` | Подготовка к защите ЛР2 | processing | lab | — |
+| `99 System/Archive/Поздравления с НГ.md` | Поздравления с НГ | processing | lab | — |
+| `99 System/Archive/РИАС - база.md` | РИАС - База | seed | knowledge | — |
+| `99 System/Archive/Сети Хопфилда и Хэмминга.md` | Сети Хопфилда и Хэмминга | seed | concept | — |
+| `99 System/Archive/Сравнение хранилищ секретов.md` | Сравнение Хранилищ Секретов | seed | knowledge | — |
+| `99 System/Archive/УИР.md` | УИР | seed | concept | — |
+| `99 System/Archive/Функционирование сети Хопфилда.md` | Функционирование сети Хопфилда | seed | concept | — |
+| `99 System/Archive/Шаблонизатор Helm.md` | Шаблонизатор Helm | seed | concept | — |
+| `99 System/Cache/Drawing 2026-05-14 15.06.37.excalidraw.md` | Drawing 2026-05-14 15.06.37.excalidraw | — | — | excalidraw |
+| `99 System/Cache/Drawing 2026-05-14 15.21.19.excalidraw.md` | Drawing 2026-05-14 15.21.19.excalidraw | — | — | excalidraw |
+| `99 System/Cache/Drawing 2026-05-14 17.02.08.excalidraw.md` | Drawing 2026-05-14 17.02.08.excalidraw | — | — | excalidraw |
+| `99 System/Cache/Drawing 2026-05-14 17.10.42.excalidraw.md` | Drawing 2026-05-14 17.10.42.excalidraw | — | — | excalidraw |
+| `99 System/Cache/Drawing 2026-05-14 17.24.16.excalidraw.md` | Drawing 2026-05-14 17.24.16.excalidraw | — | — | excalidraw |
+| `99 System/Cache/Drawing 2026-05-17 13.43.55.excalidraw.md` | Drawing 2026-05-17 13.43.55.excalidraw | — | — | excalidraw |
+| `99 System/Cache/Drawing 2026-05-17 14.13.00.excalidraw.md` | Drawing 2026-05-17 14.13.00.excalidraw | — | — | excalidraw |
+| `99 System/Cache/infra.excalidraw.md.md` | infra.excalidraw.md | — | — | excalidraw |
+| `99 System/Template/Base Note.md` | — | seed | concept | — |
+| `99 System/Template/Contact Template.md` | Contact Template | seed | contact | — |
+| `99 System/Template/Daily Note.md` | Daily Note | — | daily | — |
+| `99 System/Template/Study Item.md` | Study Item | — | — | — |
+| `99 System/Template/Travel Item.md` | Travel Item | seed | knowledge | — |
+
+### 04 Tools (89)
+
+| `04 Tools/SocialBase/01 Семья/Александр Мандель.md` | Александр Мандель | seed | contact | — |
+| `04 Tools/SocialBase/01 Семья/Анастасия Ускова.md` | Анастасия Ускова | seed | contact | — |
+| `04 Tools/SocialBase/01 Семья/Андрей Мандель.md` | Андрей Мандель | seed | contact | — |
+| `04 Tools/SocialBase/01 Семья/Владимир Антипенко.md` | Владимир Антипенко | seed | contact | — |
+| `04 Tools/SocialBase/01 Семья/Дмитрий Антипенко.md` | Дмитрий Антипенко | stable | contact | — |
+| `04 Tools/SocialBase/01 Семья/Екатерина Ускова.md` | Екатерина Ускова | stable | contact | — |
+| `04 Tools/SocialBase/01 Семья/Иван Усков.md` | Иван Александрович Усков | seed | contact | — |
+| `04 Tools/SocialBase/01 Семья/Людмила Ускова.md` | Людмила Ускова | seed | contact | — |
+| `04 Tools/SocialBase/01 Семья/Нина Антипенко.md` | Нина Антипенко | seed | contact | — |
+| `04 Tools/SocialBase/01 Семья/Татьяна Антипенко.md` | Татьяна Антипенко | seed | contact | — |
+| `04 Tools/SocialBase/02 Друзья/Андрей Лахин.md` | Андрей Лахин | seed | contact | — |
+| `04 Tools/SocialBase/02 Друзья/Анна Забелина.md` | Анна Забелина | seed | contact | — |
+| `04 Tools/SocialBase/02 Друзья/Артем Гусев.md` | Артем Алексеевич Гусев | seed | contact | — |
+| `04 Tools/SocialBase/02 Друзья/Арутюн Гаранян.md` | Арутюн Эдуардович Гаранян | seed | contact | — |
+| `04 Tools/SocialBase/02 Друзья/Валерия Архирий.md` | Валерия Архирий (Петрович) | seed | contact | — |
+| `04 Tools/SocialBase/02 Друзья/Виктория Прохорова.md` | Виктория Алексеевна Прохорова | seed | contact | — |
+| `04 Tools/SocialBase/02 Друзья/Владимир Епифанов.md` | Владимир Епифанов | stable | contact | — |
+| `04 Tools/SocialBase/02 Друзья/Даня Кузнецов.md` | Даня Кузнецов | seed | contact | — |
+| `04 Tools/SocialBase/02 Друзья/Дарья Ключинская.md` | Дарья Олеговна Ключинская | seed | contact | — |
+| `04 Tools/SocialBase/02 Друзья/Лика Вольфрам.md` | Лика Вольфрам | seed | contact | — |
+| `04 Tools/SocialBase/02 Друзья/Максим Суханов.md` | Максим Евгеньевич Суханов | seed | contact | — |
+| `04 Tools/SocialBase/02 Друзья/Михаил Никитин.md` | Михаил Никитин | seed | contact | — |
+| `04 Tools/SocialBase/02 Друзья/Никита Дробышевский.md` | Никита Сергеевич Дробышевский | seed | contact | — |
+| `04 Tools/SocialBase/02 Друзья/Тимофей Боков.md` | Тимофей Валерьевич Боков | seed | contact | — |
+| `04 Tools/SocialBase/03 Коллеги/Андрей Захаров.md` | Андрей Александрович Захаров | seed | contact | — |
+| `04 Tools/SocialBase/03 Коллеги/Денис.md` | Денис | seed | contact | — |
+| `04 Tools/SocialBase/03 Коллеги/Дмитрий Куприянов.md` | Дмитрий Юрьевич Куприянов | seed | contact | — |
+| `04 Tools/SocialBase/03 Коллеги/Дмитрий Ларуков.md` | Дмитрий Алексеевич Ларуков | seed | contact | — |
+| `04 Tools/SocialBase/03 Коллеги/Иван Мартынов.md` | Иван Алексеевич Мартынов | seed | contact | — |
+| `04 Tools/SocialBase/03 Коллеги/Игорь Утробин.md` | Игорь Николаевич Утробин | seed | contact | — |
+| `04 Tools/SocialBase/03 Коллеги/Мария Боева.md` | Мария Боева | seed | contact | — |
+| `04 Tools/SocialBase/03 Коллеги/Юрий Петров.md` | Юрий Николаевич Петров | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Азат Сейтанов.md` | Азат Сейтанов | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Александр Генсур.md` | Александр Генсур | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Александр Сиордия.md` | Александр Ревазович Сиордия | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Александр Якушин.md` | Александр Олегович Якушин | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Алина Шакурова.md` | Алина Шакурова | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Альбина Мусаева.md` | Альбина Мусаева | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Анастасия Романова.md` | Анастасия Алексеевна Романова | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Анастасия Спевакова.md` | Настасья Спевакова | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Андрей Стариков.md` | Андрей Михайлович Стариков | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Анна Глушанкова.md` | Анна Глушанкова | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Антон Окропишин.md` | Антон Евгеньевич Окропишин | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Валерий Степанов.md` | Валерий Михайлович Степанов | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Владислав Алёхин.md` | Владислав Алёхин | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Владислав Булгаков.md` | Владислав Булгаков | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Георгий Божко.md` | Георгий Божко | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Дарья Жаворонкова.md` | Дарья Геннадьевна Жаворонкова | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Диана Гасанова.md` | Диана Гасанова | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Дмитрий Тимохин.md` | Дмитрий Владимирович Тимохин | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Евангелина Сацута.md` | Ева-Евангелина Сацута | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Екатерина Борздых.md` | Екатерина Владимировна Борздых | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Екатерина Добрякова.md` | Екатерина Добрякова | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Екатерина Самостьян.md` | Екатерина Самостьян (Катя КК) | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Елена Иванова.md` | Елена Георгиевна Иванова | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Елена Степанова.md` | Елена Степанова | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Иван Богачев.md` | Иван Андреевич Богачев | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Игорь Прохоров.md` | Игорь Прохоров | seed | concept | — |
+| `04 Tools/SocialBase/04 Другие/Константин Блюдов.md` | Константин Блюдов | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Константин Гобрусенко.md` | Константин Иванович Гобрусенко | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Максим Никулушкин.md` | Максим Никулушкин | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Матвей Анисимов.md` | Матвей Дмитриевич Анисимов | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Наталья Васильева.md` | Наталья Леонидовна Васильева | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Олег Карпунин.md` | Олег Сергеевич Карпунин | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Роман Циколенко.md` | Роман Циколенко | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Салават Магомедов.md` | Салават Магомедов | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Сергей Костиков.md` | Сергей Александрович Костиков | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Сергей Талдытов.md` | Сергей Талдытов | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Соня Герасичкина.md` | Соня Герасичкина | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Татьяна Лукьянова.md` | Татьяна Лукьянова | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Эля Богатова.md` | Эля КК | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Юлия Медведева.md` | Юлия Михайловна Медведева | seed | contact | — |
+| `04 Tools/SocialBase/04 Другие/Юрий Туманов.md` | Юрий Михайлович Туманов | seed | contact | — |
+| `04 Tools/SocialBase/SocialBase.md` | SocialBase | — | database | — |
+| `04 Tools/StudyTracker/Books/Books.md` | 📚 Библиотека (Книги) | stable | moc | tracker, education, book |
+| `04 Tools/StudyTracker/Books/Антихрупкость.md` | Антихрупкость | — | — | — |
+| `04 Tools/StudyTracker/Books/Грокаем Глубокое Обучение.md` | Грокаем Глубокое Обучение | — | — | — |
+| `04 Tools/StudyTracker/Books/Заметки в инвестировании.md` | Заметки в инвестировании | — | — | — |
+| `04 Tools/StudyTracker/Books/Компьютерные сети.md` | Компьютерные сети | — | — | — |
+| `04 Tools/StudyTracker/Books/На пенсию в 35.md` | На пенсию в 35 | — | — | — |
+| `04 Tools/StudyTracker/Books/Психология денег.md` | Психология денег | — | — | — |
+| `04 Tools/StudyTracker/Books/Рискуя собственной шкурой.md` | Рискуя Собственной Шкурой | — | — | — |
+| `04 Tools/StudyTracker/Books/Черный лебедь.md` | Черный лебедь | — | — | — |
+| `04 Tools/StudyTracker/Courses/Courses.md` | 🎓 Учебные Курсы | stable | moc | tracker, education, course |
+| `04 Tools/StudyTracker/Courses/Data Science с нуля.md` | Data Science С Нуля | — | — | — |
+| `04 Tools/StudyTracker/Courses/Курс по DevOps от Merion.md` | Курс По DevOps От Merion | — | — | — |
+| `04 Tools/StudyTracker/Courses/Основы сетевых технологий.md` | Основы Сетевых Технологий | — | — | — |
+| `04 Tools/StudyTracker/StudyTracker.md` | 🎓 Трекер Обучения | stable | database | tracker, education |
+| `04 Tools/🛠️ Неоконченные заметки.md` | 🛠️ Неоконченные заметки | stable | database | — |
+
+### 03 Journal (67)
+
+| `03 Journal/03 Journal.md` | 03 Journal | — | moc | — |
+| `03 Journal/2025/11 - November/05.11.25 - Wednesday.md` | 05.11.25 - Wednesday | — | daily | — |
+| `03 Journal/2025/11 - November/06.11.25 - Thursday.md` | 06.11.25 - Thursday | — | daily | — |
+| `03 Journal/2025/11 - November/07.11.25 - Friday.md` | 07.11.25 - Friday | — | daily | — |
+| `03 Journal/2025/11 - November/08.11.25 - Saturday.md` | 08.11.25 - Saturday | — | daily | — |
+| `03 Journal/2025/11 - November/09.11.25 - Sunday.md` | 09.11.25 - Sunday | — | daily | — |
+| `03 Journal/2025/11 - November/10.11.25 - Monday.md` | 10.11.25 - Monday | — | daily | — |
+| `03 Journal/2025/11 - November/11.11.25 - Tuesday.md` | 11.11.25 - Tuesday | — | daily | — |
+| `03 Journal/2025/11 - November/25.11.25 - Tuesday.md` | 25.11.25 - Tuesday | — | daily | — |
+| `03 Journal/2025/11 - November/26.11.25 - Wednesday.md` | 26.11.25 - Wednesday | — | daily | — |
+| `03 Journal/2025/11 - November/27.11.25 - Thursday.md` | 27.11.25 - Thursday | — | daily | — |
+| `03 Journal/2025/11 - November/28.11.25 - Friday.md` | 28.11.25 - Friday | — | daily | — |
+| `03 Journal/2025/11 - November/29.11.25 - Saturday.md` | 29.11.25 - Saturday | — | daily | — |
+| `03 Journal/2025/11 - November/30.11.25 - Sunday.md` | 30.11.25 - Sunday | — | daily | — |
+| `03 Journal/2025/12 - December/01.12.25 - Monday.md` | 01.12.25 - Monday | — | daily | — |
+| `03 Journal/2025/12 - December/02.12.25 - Tuesday.md` | 02.12.25 - Tuesday | — | daily | — |
+| `03 Journal/2025/12 - December/03.12.25 - Wednesday.md` | 03.12.25 - Wednesday | — | daily | — |
+| `03 Journal/2025/12 - December/04.12.25 - Thursday.md` | 04.12.25 - Thursday | — | daily | — |
+| `03 Journal/2025/12 - December/09.12.25 - Tuesday.md` | 09.12.25 - Tuesday | — | daily | — |
+| `03 Journal/2025/12 - December/10.12.25 - Wednesday.md` | 10.12.25 - Wednesday | — | daily | — |
+| `03 Journal/2025/12 - December/12.12.25 - Friday.md` | 12.12.25 - Friday | — | daily | — |
+| `03 Journal/2025/12 - December/13.12.25 - Saturday.md` | 13.12.25 - Saturday | — | daily | — |
+| `03 Journal/2025/12 - December/14.12.25 - Sunday.md` | 14.12.25 - Sunday | — | daily | — |
+| `03 Journal/2025/12 - December/15.12.25 - Monday.md` | 15.12.25 - Monday | — | daily | — |
+| `03 Journal/2025/12 - December/16.12.25 - Tuesday.md` | 16.12.25 - Tuesday | — | daily | — |
+| `03 Journal/2025/12 - December/17.12.25 - Wednesday.md` | 17.12.25 - Wednesday | — | daily | — |
+| `03 Journal/2025/12 - December/18.12.25 - Thursday.md` | 18.12.25 - Thursday | — | daily | — |
+| `03 Journal/2025/12 - December/19.12.25 - Friday.md` | 19.12.25 - Friday | — | daily | — |
+| `03 Journal/2025/12 - December/20.12.25 - Saturday.md` | 20.12.25 - Saturday | — | daily | — |
+| `03 Journal/2025/12 - December/21.12.25 - Sunday.md` | 21.12.25 - Sunday | — | daily | — |
+| `03 Journal/2025/12 - December/22.12.25 - Monday.md` | 22.12.25 - Monday | — | daily | — |
+| `03 Journal/2025/12 - December/23.12.25 - Tuesday.md` | 23.12.25 - Tuesday | — | daily | — |
+| `03 Journal/2025/12 - December/24.12.25 - Wednesday.md` | 24.12.25 - Wednesday | — | daily | — |
+| `03 Journal/2025/12 - December/25.12.25 - Thursday.md` | 25.12.25 - Thursday | — | daily | — |
+| `03 Journal/2025/12 - December/26.12.25 - Friday.md` | 26.12.25 - Friday | — | daily | — |
+| `03 Journal/2025/12 - December/28.12.25 - Sunday.md` | 28.12.25 - Sunday | — | daily | — |
+| `03 Journal/2025/12 - December/29.12.25 - Monday.md` | 29.12.25 - Monday | — | daily | — |
+| `03 Journal/2025/12 - December/30.12.25 - Tuesday.md` | 30.12.25 - Tuesday | — | daily | — |
+| `03 Journal/2026/01 - January/03.01.26 - Saturday.md` | 03.01.26 - Saturday | — | daily | — |
+| `03 Journal/2026/01 - January/05.01.26 - Monday.md` | 05.01.26 - Monday | — | daily | — |
+| `03 Journal/2026/01 - January/07.01.26 - Wednesday.md` | 07.01.26 - Wednesday | — | daily | — |
+| `03 Journal/2026/01 - January/08.01.26 - Thursday.md` | 08.01.26 - Thursday | — | daily | — |
+| `03 Journal/2026/01 - January/09.01.26 - Friday.md` | 📅 09 January 2026 - Friday | — | daily | — |
+| `03 Journal/2026/01 - January/10.01.26 - Saturday.md` | 10.01.26 - Saturday | — | daily | — |
+| `03 Journal/2026/01 - January/11.01.26 - Sunday.md` | 11.01.26 - Sunday | — | daily | — |
+| `03 Journal/2026/01 - January/12.01.26 - Monday.md` | 12.01.26 - Monday | — | daily | — |
+| `03 Journal/2026/01 - January/13.01.26 - Tuesday.md` | 13.01.26 - Tuesday | — | daily | — |
+| `03 Journal/2026/01 - January/27.01.26 - Tuesday.md` | 27.01.26 - Tuesday | — | daily | — |
+| `03 Journal/2026/01 - January/29.01.26 - Thursday.md` | 29.01.26 - Thursday | — | daily | — |
+| `03 Journal/2026/01 - January/30.01.26 - Friday.md` | 30.01.26 - Friday | — | daily | — |
+| `03 Journal/2026/02 - February/21.02.26 - Saturday.md` | 21.02.26 - Saturday | — | daily | — |
+| `03 Journal/2026/02 - February/27.02.26 - Friday.md` | 27.02.26 - Friday | — | daily | — |
+| `03 Journal/2026/03 - March/16.03.26 - Monday.md` | 16.03.26 - Monday | — | daily | — |
+| `03 Journal/2026/03 - March/22.03.26 - Sunday.md` | 22.03.26 - Sunday | — | daily | — |
+| `03 Journal/2026/03 - March/23.03.26 - Monday.md` | 23.03.26 - Monday | — | daily | — |
+| `03 Journal/2026/03 - March/24.03.26 - Tuesday.md` | 24.03.26 - Tuesday | — | daily | — |
+| `03 Journal/2026/03 - March/26.03.26 - Thursday.md` | 26.03.26 - Thursday | — | daily | — |
+| `03 Journal/2026/03 - March/27.03.26 - Friday.md` | 27.03.26 - Friday | — | daily | — |
+| `03 Journal/2026/03 - March/28.03.26 - Saturday.md` | 28.03.26 - Saturday | — | daily | — |
+| `03 Journal/2026/03 - March/29.03.26 - Sunday.md` | 29.03.26 - Sunday | — | daily | — |
+| `03 Journal/2026/03 - March/30.03.26 - Monday.md` | 30.03.26 - Monday | — | daily | — |
+| `03 Journal/2026/03 - March/31.03.26 - Tuesday.md` | 31.03.26 - Tuesday | — | daily | — |
+| `03 Journal/2026/04 - April/01.04.26 - Wednesday.md` | 01.04.26 - Wednesday | — | daily | — |
+| `03 Journal/2026/04 - April/02.04.26 - Thursday.md` | — | seed | concept | — |
+| `03 Journal/2026/04 - April/06.04.26 - Monday.md` | 06.04.26 - Monday | — | daily | — |
+| `03 Journal/2026/04 - April/15.04.26 - Wednesday.md` | 15.04.26 - Wednesday | — | — | — |
+| `03 Journal/2026/05 - May/08.05.26 - Friday.md` | 08.05.26 - Friday | — | daily | — |
+
+### AGENTS.md (1)
+
+| `AGENTS.md` | Агент — контекст и инструкции для этого хранилища | — | — | — |
+
+### CLAUDE.md (1)
+
+| `CLAUDE.md` | CLAUDE | — | — | — |
+
+### CODEX.md (1)
+
+| `CODEX.md` | CODEX | — | — | — |
+
+### GEMINI.md (1)
+
+| `GEMINI.md` | GEMINI | — | — | — |