From 2e4b0c7ef6b9f6da17b01dd7c880c467fa422fa5 Mon Sep 17 00:00:00 2001 From: Said Rabadanov Date: Wed, 22 Apr 2026 19:10:27 +0300 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=20=D0=B5=D0=B4=D0=B8=D0=BD=D1=8B=D0=B9=20content-manifes?= =?UTF-8?q?t=20#10?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/content_update.yml | 2 +- .gitignore | 1 + CONTRIBUTING.md | 10 +- README.md | 21 +- app/docs/[...slug]/page.tsx | 4 +- components/search/AskStackMirea.tsx | 2 +- content/ai/index.mdx | 33 - content/ai/notebook-01-python-basics.mdx | 574 --------- content/ai/notebook-02-numpy-pandas.mdx | 788 ------------ content/ai/notebook-03-metrics-and-knn.mdx | 763 ----------- content/ai/notebook-04-regression.mdx | 793 ------------ content/ai/notebook-05-decision-trees.mdx | 1039 --------------- .../ai/notebook-06-genetic-and-annealing.mdx | 570 --------- content/ai/notebook-07-neural-networks.mdx | 892 ------------- content/ai/notebook-08-clustering.mdx | 370 ------ content/algorithms/getting-started.mdx | 42 - content/algorithms/index.mdx | 11 - content/bigdata/index.mdx | 40 - content/bigdata/practice-01-introduction.mdx | 613 --------- content/bigdata/practice-02-data-analysis.mdx | 715 ----------- .../practice-03-regression-and-datasets.mdx | 871 ------------- .../practice-04-insurance-analysis.mdx | 616 --------- .../bigdata/practice-05-classification.mdx | 358 ------ content/bigdata/practice-06-clustering.mdx | 495 -------- .../bigdata/practice-07-ensemble-learning.mdx | 375 ------ content/bigdata/practice-08-final-report.mdx | 81 -- content/business-process-modeling/index.mdx | 15 - content/configuration-management/index.mdx | 15 - .../index.mdx | 15 - .../index.mdx | 15 - content/database-development/index.mdx | 15 - content/internet-of-things/index.mdx | 15 - content/java/index.mdx | 11 - content/java/overview.mdx | 32 - content/java/task-01-classes-and-objects.mdx | 223 ---- content/java/task-02-program-structure.mdx | 112 -- ...task-03-constructors-and-encapsulation.mdx | 145 --- .../task-04-inheritance-and-composition.mdx | 260 ---- ...ask-05-interfaces-and-abstract-classes.mdx | 501 -------- content/java/task-06-class-hierarchies.mdx | 568 --------- content/java/task-07-basic-gui.mdx | 105 -- .../java/task-08-graphics-and-animation.mdx | 301 ----- content/java/task-09-nameable-priceable.mdx | 147 --- content/java/task-10-recursion.mdx | 155 --- content/java/task-11-sorting-students.mdx | 199 --- content/java/task-12-drunkard-game.mdx | 115 -- content/java/task-13-file-io.mdx | 83 -- content/java/task-14-generics-and-queues.mdx | 233 ---- content/java/task-15-mvc-pattern.mdx | 425 ------- content/java/task-16-exceptions.mdx | 286 ----- content/java/task-17-gui-and-exceptions.mdx | 367 ------ .../java/task-18-utilities-and-validation.mdx | 240 ---- .../java/task-19-filesystem-operations.mdx | 146 --- content/java/task-20-calculator-oop.mdx | 84 -- content/java/task-21-queue-adts.mdx | 342 ----- content/java/task-22-design-patterns.mdx | 611 --------- content/java/task-23-orders-and-menu.mdx | 285 ----- content/java/task-24-final-order-system.mdx | 1123 ----------------- content/object-oriented-programming/index.mdx | 15 - .../homework-01-basics.mdx | 332 ----- .../homework-02-formulas-and-branching.mdx | 250 ---- .../homework-03-files-and-strings.mdx | 214 ---- .../homework-04-functions-and-automation.mdx | 563 --------- ...ork-05-number-theory-and-combinatorics.mdx | 230 ---- content/procedural-programming/index.mdx | 26 - content/project-management/index.mdx | 15 - content/python/index.mdx | 12 - content/python/overview.mdx | 24 - content/python/practice-4-oop.mdx | 429 ------- content/python/practice-5-test-automation.mdx | 889 ------------- .../python/practice-6-2-regex-combinators.mdx | 276 ---- .../python/practice-6-regex-combinators.mdx | 301 ----- content/react/index.mdx | 15 - .../index.mdx | 15 - .../index.mdx | 15 - content/system-administration/index.mdx | 15 - .../index.mdx | 15 - docs/intro.md | 2 +- lib/content-manifest.ts | 58 + lib/mdx.ts | 9 +- lib/navigation.ts | 116 +- package.json | 5 +- public/search-index.json | 2 +- scripts/build-search-index.mjs | 151 +-- scripts/content-manifest.mjs | 456 +++++++ scripts/sync-content.mjs | 152 --- scripts/validate-content.mjs | 248 ++-- 87 files changed, 675 insertions(+), 21443 deletions(-) delete mode 100644 content/ai/index.mdx delete mode 100644 content/ai/notebook-01-python-basics.mdx delete mode 100644 content/ai/notebook-02-numpy-pandas.mdx delete mode 100644 content/ai/notebook-03-metrics-and-knn.mdx delete mode 100644 content/ai/notebook-04-regression.mdx delete mode 100644 content/ai/notebook-05-decision-trees.mdx delete mode 100644 content/ai/notebook-06-genetic-and-annealing.mdx delete mode 100644 content/ai/notebook-07-neural-networks.mdx delete mode 100644 content/ai/notebook-08-clustering.mdx delete mode 100644 content/algorithms/getting-started.mdx delete mode 100644 content/algorithms/index.mdx delete mode 100644 content/bigdata/index.mdx delete mode 100644 content/bigdata/practice-01-introduction.mdx delete mode 100644 content/bigdata/practice-02-data-analysis.mdx delete mode 100644 content/bigdata/practice-03-regression-and-datasets.mdx delete mode 100644 content/bigdata/practice-04-insurance-analysis.mdx delete mode 100644 content/bigdata/practice-05-classification.mdx delete mode 100644 content/bigdata/practice-06-clustering.mdx delete mode 100644 content/bigdata/practice-07-ensemble-learning.mdx delete mode 100644 content/bigdata/practice-08-final-report.mdx delete mode 100644 content/business-process-modeling/index.mdx delete mode 100644 content/configuration-management/index.mdx delete mode 100644 content/data-structures-and-algorithms-part-1/index.mdx delete mode 100644 content/data-structures-and-algorithms-part-2/index.mdx delete mode 100644 content/database-development/index.mdx delete mode 100644 content/internet-of-things/index.mdx delete mode 100644 content/java/index.mdx delete mode 100644 content/java/overview.mdx delete mode 100644 content/java/task-01-classes-and-objects.mdx delete mode 100644 content/java/task-02-program-structure.mdx delete mode 100644 content/java/task-03-constructors-and-encapsulation.mdx delete mode 100644 content/java/task-04-inheritance-and-composition.mdx delete mode 100644 content/java/task-05-interfaces-and-abstract-classes.mdx delete mode 100644 content/java/task-06-class-hierarchies.mdx delete mode 100644 content/java/task-07-basic-gui.mdx delete mode 100644 content/java/task-08-graphics-and-animation.mdx delete mode 100644 content/java/task-09-nameable-priceable.mdx delete mode 100644 content/java/task-10-recursion.mdx delete mode 100644 content/java/task-11-sorting-students.mdx delete mode 100644 content/java/task-12-drunkard-game.mdx delete mode 100644 content/java/task-13-file-io.mdx delete mode 100644 content/java/task-14-generics-and-queues.mdx delete mode 100644 content/java/task-15-mvc-pattern.mdx delete mode 100644 content/java/task-16-exceptions.mdx delete mode 100644 content/java/task-17-gui-and-exceptions.mdx delete mode 100644 content/java/task-18-utilities-and-validation.mdx delete mode 100644 content/java/task-19-filesystem-operations.mdx delete mode 100644 content/java/task-20-calculator-oop.mdx delete mode 100644 content/java/task-21-queue-adts.mdx delete mode 100644 content/java/task-22-design-patterns.mdx delete mode 100644 content/java/task-23-orders-and-menu.mdx delete mode 100644 content/java/task-24-final-order-system.mdx delete mode 100644 content/object-oriented-programming/index.mdx delete mode 100644 content/procedural-programming/homework-01-basics.mdx delete mode 100644 content/procedural-programming/homework-02-formulas-and-branching.mdx delete mode 100644 content/procedural-programming/homework-03-files-and-strings.mdx delete mode 100644 content/procedural-programming/homework-04-functions-and-automation.mdx delete mode 100644 content/procedural-programming/homework-05-number-theory-and-combinatorics.mdx delete mode 100644 content/procedural-programming/index.mdx delete mode 100644 content/project-management/index.mdx delete mode 100644 content/python/index.mdx delete mode 100644 content/python/overview.mdx delete mode 100644 content/python/practice-4-oop.mdx delete mode 100644 content/python/practice-5-test-automation.mdx delete mode 100644 content/python/practice-6-2-regex-combinators.mdx delete mode 100644 content/python/practice-6-regex-combinators.mdx delete mode 100644 content/react/index.mdx delete mode 100644 content/software-application-development-part-1/index.mdx delete mode 100644 content/software-testing-and-verification/index.mdx delete mode 100644 content/system-administration/index.mdx delete mode 100644 content/systems-analysis-and-conceptual-modeling-part-1/index.mdx create mode 100644 lib/content-manifest.ts create mode 100644 scripts/content-manifest.mjs delete mode 100644 scripts/sync-content.mjs diff --git a/.github/ISSUE_TEMPLATE/content_update.yml b/.github/ISSUE_TEMPLATE/content_update.yml index e9378e9..57657b1 100644 --- a/.github/ISSUE_TEMPLATE/content_update.yml +++ b/.github/ISSUE_TEMPLATE/content_update.yml @@ -44,6 +44,6 @@ body: attributes: label: Чеклист Контрибьютора options: - - label: Я буду редактировать контент в docs/, а не в сгенерированном content/ + - label: Я буду редактировать контент в docs/ и пересоберу content manifest - label: Я запущу prepare:content и validate:content перед открытием PR - label: Я добавлю author metadata, если это уместно diff --git a/.gitignore b/.gitignore index 6d9a85a..2c0687e 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ pnpm-debug.log* # Build artifacts *.tsbuildinfo +.cache/ # Python __pycache__/ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 43d7784..a908df2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -24,10 +24,10 @@ Основные директории: - `docs/` - исходные материалы, которые редактируются вручную -- `content/` - синхронизированный слой, который использует приложение +- `.cache/content-manifest.json` - build-time manifest, который используют приложение, поиск и валидатор - `resources/` - датасеты и дополнительные артефакты - `public/` - публичные ассеты, включая `search-index.json` -- `scripts/` - синхронизация контента, валидация и сборка поискового индекса +- `scripts/` - сборка content manifest, валидация и сборка поискового индекса - `.github/workflows/` - CI и деплой ## Локальный Запуск @@ -54,7 +54,7 @@ npm run dev 1. Сделайте fork репозитория и создайте ветку от `main`. 2. Вносите изменения с понятной и ограниченной областью. -3. Если меняете документацию, редактируйте `docs/`, а не сгенерированный `content/`. +3. Если меняете документацию, редактируйте `docs/`; manifest пересобирается командой `prepare:content`. 4. Запустите нужные проверки локально. 5. Откройте pull request с понятным описанием и результатами проверки. @@ -78,8 +78,8 @@ npm run validate:content Пайплайн проекта устроен так: 1. `docs/` является редактируемым источником -2. `npm run content:sync` переносит материалы в `content/` -3. `npm run search:build` пересобирает `public/search-index.json` +2. `npm run content:manifest` собирает `.cache/content-manifest.json` +3. `npm run search:build` пересобирает `public/search-index.json` из manifest 4. `npm run prepare:content` выполняет оба шага ## Изменения В Коде diff --git a/README.md b/README.md index f94a812..0774670 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,9 @@ Production URL: https://minkinad.github.io/StackMIREA/ Актуально на 4 апреля 2026 года. -- 19 учебных треков в `content/`. +- 19 учебных треков в едином content manifest. - 68 исходных Markdown/MDX-файлов в `docs/`. -- 71 синхронизированная Markdown/MDX-страница. +- 71 Markdown/MDX-страница в `.cache/content-manifest.json`. - 52 отдельных учебных материала без учёта индексных страниц разделов. - Крупнейшие треки: `java` (26 страниц), `ai` (9), `bigdata` (9), `python` (6), `procedural-programming` (6). - Два workflow в CI/CD: `PR Checks` и `Deploy Docs to GitHub Pages`. @@ -39,16 +39,16 @@ Production URL: https://minkinad.github.io/StackMIREA/ ## Как устроен контент - `docs/` - исходные материалы, которые редактируются вручную. -- `content/` - синхронизированный слой, который использует приложение. +- `.cache/content-manifest.json` - единый build-time manifest, который используют приложение, поиск и валидатор. - `resources/` - дополнительные файлы, датасеты и артефакты практик. -- `scripts/` - генерация контента, поискового индекса и валидация ссылок. +- `scripts/` - сборка content manifest, поискового индекса и валидация ссылок. - `public/search-index.json` - локальный поисковый индекс для страницы `/ask`. Основной pipeline: 1. Материалы редактируются в `docs/`. -2. `npm run content:sync` переносит их в `content/`. -3. `npm run search:build` собирает поисковый индекс. +2. `npm run content:manifest` собирает `.cache/content-manifest.json` с slug, frontmatter, author, toc, preview, topics и hash. +3. `npm run search:build` собирает поисковый индекс из manifest. 4. `npm run prepare:content` объединяет оба шага. 5. `npm run build` запускает `prepare:content` автоматически через `prebuild`. @@ -92,8 +92,9 @@ npm run dev - `npm run start` - локальный запуск собранной статической версии на `:3000`. - `npm run lint` - проверка ESLint. - `npm run typecheck` - проверка TypeScript. -- `npm run prepare:content` - синхронизация контента и сборка поискового индекса. -- `npm run content:sync` - перенос `docs/` -> `content/`. +- `npm run prepare:content` - сборка content manifest и поискового индекса. +- `npm run content:manifest` - генерация `.cache/content-manifest.json` из `docs/`. +- `npm run content:sync` - compatibility alias для `content:manifest`. - `npm run search:build` - генерация `public/search-index.json`. - `npm run validate:content` - проверка markdown-ссылок, якорей и репозиторных ссылок в code fence. - `npm run export` - информационный скрипт: static export выполняется внутри `next build`. @@ -103,7 +104,6 @@ npm run dev ```text app/ components/ -content/ docs/ lib/ public/ @@ -136,7 +136,7 @@ SUPPORT.md ## Как вносить изменения 1. Добавьте или обновите материал в `docs//...`. -2. Запустите `npm run content:sync` или сразу `npm run prepare:content`. +2. Запустите `npm run content:manifest` или сразу `npm run prepare:content`. 3. Проверьте контент командой `npm run validate:content`. 4. Проверьте проект командами `npm run lint` и `npm run typecheck`. 5. Откройте Pull Request. @@ -149,4 +149,3 @@ SUPPORT.md - Код проекта распространяется по лицензии MIT. См. [LICENSE](./LICENSE). - Контент сайта, статьи и учебные материалы - CC BY-NC-SA 4.0. См. [CC-BY-NC-SA-4.0](./CC-BY-NC-SA-4.0). - diff --git a/app/docs/[...slug]/page.tsx b/app/docs/[...slug]/page.tsx index 23f9e2e..061d6bc 100644 --- a/app/docs/[...slug]/page.tsx +++ b/app/docs/[...slug]/page.tsx @@ -50,7 +50,7 @@ export default async function DocPage({ params }: DocPageProps) { const buildInfo = getBuildInfo(); const sidebarGroups = getSidebarGroups(); const pagination = getDocPagination(params.slug); - const { content, toc } = await compileDocMdx(doc.body); + const { content } = await compileDocMdx(doc.body, { collectToc: false }); const editUrl = doc.editPath ? `${GITHUB_EDIT_ROOT}/${doc.editPath}` : null; return ( @@ -91,7 +91,7 @@ export default async function DocPage({ params }: DocPageProps) { - + ); diff --git a/components/search/AskStackMirea.tsx b/components/search/AskStackMirea.tsx index da37efb..782a5e5 100644 --- a/components/search/AskStackMirea.tsx +++ b/components/search/AskStackMirea.tsx @@ -257,7 +257,7 @@ export function AskStackMirea() {

Как это работает

    -
  • Индекс собирается на build-time из `content/` и остаётся совместимым с GitHub Pages.
  • +
  • Индекс собирается на build-time из content manifest и остаётся совместимым с GitHub Pages.
  • Поиск учитывает title, description, секцию, чанки контента и словарь тематических синонимов.
  • Результаты ранжируются так, чтобы сверху были страницы с самым близким фрагментом по смыслу.
diff --git a/content/ai/index.mdx b/content/ai/index.mdx deleted file mode 100644 index d217db7..0000000 --- a/content/ai/index.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "AI" -description: "Рабочие тетради по искусственному интеллекту в формате MDX." -order: 1 ---- - -# AI - обзор - -Раздел объединяет 8 рабочих тетрадей по дисциплине «Искусственный интеллект», перенесенных в MDX-формат. Материалы идут от базового Python и научных библиотек к классическим ML-методам, нейросетям, эволюционным алгоритмам и кластеризации. - -## Что внутри - -- Python, NumPy и pandas для подготовки данных; -- метрики расстояния, KNN и базовые техники классификации; -- регрессия и деревья решений; -- эволюционные методы, нейросети и кластеризация. - -## Ноутбуки - -- [Notebook 1 — Основа Python](./notebook-01-python-basics) - типы данных, условия, циклы и вводные примеры. -- [Notebook 2 — NumPy и pandas](./notebook-02-numpy-pandas) - массивы, таблицы и базовая подготовка данных. -- [Notebook 3 — Метрики и KNN](./notebook-03-metrics-and-knn) - расстояния между объектами и классификация ближайших соседей. -- [Notebook 4 — Регрессия](./notebook-04-regression) - линейные модели, аппроксимация и оценка качества. -- [Notebook 5 — Деревья решений](./notebook-05-decision-trees) - деревья решений и работа с классификаторами. -- [Notebook 6 — Генетические и эволюционные методы](./notebook-06-genetic-and-annealing) - оптимизация, генетические алгоритмы и отжиг. -- [Notebook 7 — Нейронные сети](./notebook-07-neural-networks) - персептрон, MLP и основы обучения сети. -- [Notebook 8 — Кластеризация](./notebook-08-clustering) - методы группировки данных без учителя. - -## Как читать раздел - -- Начните с `Notebook 1` и `Notebook 2`, если нужно выровнять базу по Python и обработке данных. -- Для классического ML переходите к `Notebook 3`, `Notebook 4` и `Notebook 5`. -- Темы оптимизации и более продвинутых подходов собраны в `Notebook 6`, `Notebook 7` и `Notebook 8`. diff --git a/content/ai/notebook-01-python-basics.mdx b/content/ai/notebook-01-python-basics.mdx deleted file mode 100644 index 8164fcc..0000000 --- a/content/ai/notebook-01-python-basics.mdx +++ /dev/null @@ -1,574 +0,0 @@ ---- -title: "AI Notebook 1 — Основа Python" -sidebar_position: 2 -description: "Типы данных, условия, циклы и старт работы с NumPy." -slug: "/ai/notebook-01-python-basics" ---- - -**Основа Python. Библиотеки.** - -Дата - 25.02.2023 - -**1.1. Теоретический материал – Типы данных** - -*Типы данных* -Все типы данных в Python относятся к одной из 2-х категорий: -изменяемые (mutable) и неизменяемые (immutable). -*Неизменяемые объекты:* - - исловые данные (int, float), - - bool, - - None, - - символьные строки (class 'str'), - - кортежи (tuple). -Изменяемые объекты: - - списки (list), - - множества (set), - - словари (dict). - -**1.2. Пример** - -*Задача:* -Выведите на печать и определите тип переменной. - -````python -x= 3+5.2*7 -y= None -z= 'a',5,12.345, (2,'b') -df= [['Антонова Антонина',34,'ж'],['Борисов Борис',26,'м']] -A={1,'title',2,'content'} -print(x,'|',type(x),'\n',y,'|',type(y),'\n',df,'|',type(df),'\n',A,'|',type(A),'\n') -```` - -Вывод: - -````code -39.4 | - None | - [['Антонова Антонина', 34, 'ж'], ['Борисов Борис', 26, 'м']] | - {'content', 1, 2, 'title'} | -```` - -**1.3. Пример** - -*Задача:* -Выведите на печать и определите тип переменной. - -````python -x=5 >=2 -A={ 1,3,7,8} -B={2,4,5,10,'apple'} -C=A&B -df= 'Антонова Антонина',34,'ж' -z='type' -D=[1,'title',2,'connect'] -print(x,'|',type(x),'\n',A,'|',type(A),'\n',B,'|',type(B),'\n',C,'|',type(C),'\n',df,'|',type(df),'\n',z,'|',type(z),'\n',D,'|',type(D),'\n') -```` - -Вывод: - -````text -True | - {8, 1, 3, 7} | - {2, 'apple', 4, 5, 10} | - set() | - ('Антонова Антонина', 34, 'ж') | - type | - [1, 'title', 2, 'connect'] | -```` - -**2.1. Теоретический материал – Условный оператор** - -*If – Условный оператор* - -В коде часто приходится проверять выполнимость или невыполнимость каких-то условий. Синтаксис: - -> **if** *условие1 (булевское выражение) :* - -> **код, который выполнится, если условие верно** - -> **elif** *условие2 (булевское выражение):* - -> **код, который выполнится, если условие1 было неверно, а условие2 верно** - -> **else:** - -> **код, который выполнится, если условие1 и условие2 были неверны** - -Обратите внимание, что код, который должен выполняться внутри каждого условия, записывается с отступом в 4 пробела от уровня if, elif и else: в питоне области видимости переменных обозначаются отступами. - - ***То есть, отступы позволяют понять, где начинается код, который должен выполняться при выполнении условия в if, и где заканчивается.*** - -**2.2. Пример** - -*Задача:Вывести на экран является ли переменная х положительной, отрицательной или равна нулю.* - -````python -x=125 -if x<0: - print('x отрицательный') -elif x==0: - print('x равен 0') -else: - print('x положительный') -```` - -Вывод: - -````code -x положительный -```` - -**2.3. Задание** - -*Задача: Напишите код. Задается х, напечатать какому из интервалов принадлежит: (-infinity, -5), [-5, 5] или от (5, +infinity)* - -````python -x=int(input()) -if x < -5: - print('x пренадлежит интервалу от -бесконечности до -5') -elif -5=1: - print(x) - x-=3 -```` - -Вывод: - -````code -10 -7 -4 -1 -```` - -**3.3.2 Задание** - -*Задача: При решении задач машинного обучения часто в качестве объектов исследования выступает человек. Создайте список значимых характеристик (признаков), идентифицирующих человека. Выведите список на экран.* - -````python -id=['Фамилия','Имя', 'Отчетсво',Int_Возраст,'Город'] -for i in id: - print(i) -```` - -Вывод: - -````code -Фамилия -Имя -Отчетсво -Int_Возраст -Город -```` - -**3.3.3 Задание** - -*Задача:Создать список чисел от 2 до 15 с шагом 1.* - -````python -a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15] -b=a[2:15:1] -print(b) -```` - -Вывод: - -````code -[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] -```` - -**3.3.4 Задание** - -*Задача: Выведите числа из примера на for c функцией range() (3.2.4) в обратном порядке.* - -````python -for i in range(105,4,-25): - print(i) -```` - -Вывод: - -````code -105 -80 -55 -30 -5 -```` - -**3.3.5 Задание** - -*Задача: Срез. Напишите код, который все элементы массива x с четными индексами переставит в обратном порядке. Т.е. если x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], то код должен сформировать [8, 1, 6, 3, 4, 5, 2, 7, 0, 9].* - -````python -a=[0,1,2,3,4,5,7,8,9,10] -b=a[::-1] -print(b) -```` - -Вывод: - -````code -[10, 9, 8, 7, 5, 4, 3, 2, 1, 0] -```` - -**4.1. Теоретический материал - Библиотеки** - -Машинное обучение опирается на фундаментальные понятия и законы математики и информатики. Библиотека математических функций (math) применяется при решении большинства прикладных задач анализа данных. Также, и некоторые другие библиотеки Python содержат математические функции (например, NumPy). Важную роль играет библиотека matplotlib, которая позволяет производить визуализацию расчетов в удобной для восприятия человеком форме: графики, диаграммы, гистограммы. - -**Подключение библиотек – синтаксис:** - -*import math as m* - -*import numpy as np* - -*import matplotlib.pyplot as plt* - -*etc…* - -Библиотеки в python содержат не только функции, позволяющие решать различные задачи, но и некоторые популярные константы, например число Эйлера. - -**4.2.1 Пример** - -*Задача:Рассчитать синус от е радиан и вывести результат на экран* - -````python -import math as m -print (m.sin(m.e)) -```` - -Вывод: - -````code -0.41078129050290885 -```` - -**4.2.2 Пример** - -*Задача: Для функции* sin⁡〖(xe^cos⁡〖(x)〗 )〗 *на интервале* [0;10] *с шагом* 0,05 *построить график функции, закрасить площадь под ним и вычислить значение этой площади. -Д*ля вычисления площади воспользуйтесь функцией* trapz(), *вычисляющей интеграл по правилу трапеции. Для ее корректной работы необходимо подключить следующие библиотеки:* - -`from scipy.integrate import simps` - -`from numpy import trapz` - -````python -import numpy as np -import matplotlib.pyplot as plt -from scipy.integrate import simps -from numpy import trapz -x=np.arange(0.0,10,0.1) -y=np.abs(np.sin(x*np.exp(np.cos(x)))) -plt.grid() -plt.plot(x,y,c='r') -plt.fill_between(x,y) - -area= trapz(y) -print(area) -```` - -**4.2.3 Пример** - -*Задача:Дано некоторое распределение оценок в группе за экзамен. Нарисовать круговую и точечную диаграммы распределения.* - -````python -from matplotlib import pyplot as plt -import numpy as np - -marks = ['Неуд','Удовл','Хор','Отл'] - -data = [3,7,8,4] -fig= plt.figure(figsize=(10,7)) -plt.pie(data, labels=marks) -plt.show() -plt.grid() -plt.scatter (marks,data) -```` - - -**4.3.1 Задание** - -*Задача: Задайте массив случайных значений из интервала (0; 1). -Рассчитайте средние и медианные значения для массива, сравните результаты, какие выводы можно сделать о значениях? -Постройте точечную диаграмму рассеяния полученного ряда.* - -````python -import numpy as np -import matplotlib.pyplot as plt -size = 10 -x = range(0, size) -random = np.random.random_sample(size = size) -average = np.average(random) -median = np.median(random) -print(random, average, median) -if average == median: - print("Средние и медианные значения массива равны") -elif average > median: - print("Среднее значение больше медианного") -else: - print("Медианное значение больше среднего") -fig, ax = plt.subplots(figsize=(10, 6)) -ax.scatter(x, random) -plt.show() -```` - -**4.3.2 Задание** - -*Задача:* - -*Дана функция* ![image.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKYAAAA7CAYAAADxcPHqAAAAAXNSR0ICQMB9xQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUATWljcm9zb2Z0IE9mZmljZX/tNXEAAATGSURBVHja7ZxNTuMwGIZzAA4AEmbHAVqXLcsSjViPSKOuQKyQN3OAlF2lERdgx445wSyGE3CDWXCD3mGmTurEcZ3EdpM0Py/SKxVamSR+/P34+1zv+fnZg6CuCQ8BApgQBDChcYK5/fkHHUcAswJMrGwIYEIAsy9Qjt3dAcwOg4lJBJgAs0VF0fKMet4Xv0cyf/oBMHsCxNCtJZvPvy+j6IwDOvWmf/hrgNkzMBfUe/Po4m0V0ltCZr+HNokLSl58Fk0AZg/deEhp5Ifs2xAnKfT9+8f1+gRgGgKxXj+e+Ofeh3fuf7T94FQw2Zw+DNGqcC9Aw9UtYkxDIOTgvA0w1W0g+TW/Fp/Sn0ObQA4lD1GQlTtYqqc5+VEFJresNxf0tY7YTwU0Yv6EEP8Xi4LLGZm9+0F0XTVGndfTlOLnKu3Ljs1q9h5MF/UBzLHLevKbBjP+LL14Fdeg28NrC8w0hhaWS3Kre+8pzyBv8eiX+r9iNx2/RzYiNmbh1R3xvM0xYvbOgykmXTf5ur/VCWbEgksetxI/jPh4JmM3BaYAT7jQBKQEIvGeWDRqEijCC3HdYk+y0GVvgR9q8taIK1dBtAEz3lssa99Sgvp0cnd/57/zMeqqetheTwxiwaJIIM1bwRjGrbXjIIvXJolL8lnyF1C2BKathZItEmPBZEq8T0IXL024NJPrKbuvxE0rYO52KcRCSuHUQF9mmTsNS4172FVjdQbMLCYjG169CRhrzIKYL5T92FCOD2WYBJgqYLrPyuIufDYj733YFuoMmOoAusFiF1mXxSTTz4BFl9k2EAc0+b1tMNN9WgkYfk10zh6yxCcDV16g/HPytlVRSMKTndT172LSsngUYBokQ7kNdiW7dE02ctn41o0ztjo9lsXU3qO0AMuy8pwb17jyxDuQDYc8N9Z2YbYRaxZZdxuY1GdzyFhOYNa1dwh1QzJQrjCpC1uEYTbj1QJm3WYcalZVHkHeQXABMwr8a9myqzsqrYIJAcwymETrIcCEagFTuParkN2lMXMBYEUw6ba8qipb/L2y7jRM5JjBXC4fsgQmAUjeTzYFU6107SV6msoWLOZIZFPZ0lWphLUrq0QVwVTWYV80nhWY+JaLYXwbh5Ur14Kpjz+LCixlsWpRZatzFnMM2f2x77EtMOMzVlLhQC0sxHFlQWULYALMRsDMkhtZ+RJuWWULYFpKrtq4djZ1Gcz9ip1UuQv9+6xitZ8AiftSu+vVONakssU/nz3r/Z4EgKloxdhpXO/mE3hx8+rS3TRUr9BUrVzdsAeYFZbT5PwQwHQfS9coc3Qwmz7669qokNt6cWxFA5iHj3WUm2vj6O8hYJokEABzgGCK102d6alLrt+AATABZu2SKyiu1hadWDVwMgQwdUdlZVdu06hQmbUbHLsFmADT0x2VDaJgkjbDWjYqWC2GgmO3AHOgYLo0JKgW0LVRwWpBWDY7QCNz5bqjsq5lN5usvejYLcAEmNr4T4WxCTDLjt0CzJ6DaXL018Ra6o7KNglm1bFbgNlTMG2O/lq58Z0rP6RRoTr7rz52CzB7bjEH+1ABJsAEmAATk4Z7BJgAE2Bi0nCPABNgQgATYAJMTBrA7DWYEAQwIYAJQQATGrz+A7FmapPAVxLbAAAAAElFTkSuQmCC) *Создать массив из 10 значений функции (x, например, изменяется от 1 до 10). Выделить срез первой половины массива и построить графики для основного массива, используя plt.plot(), для среза – точечный (plt.scatter()).* - -````python -import numpy as np -import matplotlib.pyplot as plt -import random -max=[] -midium=[] -n=11 -fig, ax = plt.subplots() -ax.set_facecolor('black') -for x in range(1, n): - max.append(((1+np.e**x**(0.5)+np.cos(x**2))**0.5/ - abs(1-np.sin(x)**3))+np.log10(abs(x*2))) -print(max) -plt.plot(max) -plt.show() -for i in range (5): - midium.append(max[i]) -print(midium) -plt.scatter(midium, midium, c = 'black') -plt.show() -```` - -**4.3.3 Задание** - -*Задача:* -*Дана функция |cos⁡(xe^((cos⁡(x)+ln⁡(x+1) ) ) ) | Построить график на интервале (0, 10) с шагом 1 с заливкой площади и найти эту площадь под ним. Для вычисления площади воспользуйтесь функцией trapz(), вычисляющей интеграл по правилу трапеции. -Для ее корректной работы необходимо подключить следующие библиотеки: -`from scipy.integrate import simps` -`from numpy import trapz*` - -````python -from scipy.integrate import simps -from numpy import trapz -import numpy as np -import matplotlib.pyplot as plt -y=[] -x=np.arange(0.0, 10, 1) -for i in range(1, 11): - y.append((np.cos(i*np.e**((np.cos(i)+np.log10(i+1))))**2)**0.5) -print(max) -plt.grid() -plt.plot(x, y, c="r") -plt.fill_between(x, y) -area=trapz(y) -print (area) -```` - -**4.3.4 Задание** - -*Задача:* -*Откройте статистические данные по стоимости акций Apple, Microsoft, Google за 12 месяцев 2021 г. Постройте 3 графика на плоскости и оцените их динамику. Подумайте, как можно улучшить визуализацию результатов. -Для начальных данных допустимо использовать следующий ресурс: https://finance.yahoo.com* - -````python -import math -import numpy -import matplotlib.pyplot as plt -Apple = [167.30, 154.73, 170.09, - 157.28, 137.13, 147.04, - 165.35, 150.7, 140.09, - 142.16, 129.62,132.62] -Microsoft = [252.75, 295.2, 294.95, - 309.42, 284.47, 272.42, - 259.58, 278.01, 260.04, - 240.74, 228.11, 154.69] -Google = [89.70, 135.3, 134.17, - 140.7, 117.16, 114.14, - 109.08, 115.48, 110.55, - 99.3, 90.5, 101.28] -rng = numpy.arange(12) -fig, ax = plt.subplots(figsize=(10, 5)) -plt.plot(1 + rng, Microsoft, c = 'red', label = 'Microsoft') -plt.plot(1 + rng, Apple, c = 'gray', label = "Apple") -plt.plot(1 + rng, Google, c = 'blue', label = 'Google') -ax.set_xlim(xmin=1 + rng[0], xmax=1 + rng[-1]) -ax.legend(loc='upper left') -plt.grid() -plt.show() -```` - -**4.3.5 Задание** - -*Задача:* *Создайте простейший калькулятор, включающий основные действия для двух переменных '+','-','∙','÷', а также вычисление следующих функций: e^(x+y),sin⁡〖(x+y)〗,cos⁡〖(x+y)〗,x^y.* - -````python -import math - -x = 5 -y = 12 - -for dev in range(0, 8): - if dev == 0: - print(x + y) - elif dev == 1: - print(x - y) - elif dev == 2: - print(x * y) - elif dev == 3: - print(x / y) - elif dev == 4: - print(math.e ** (x + y)) - elif dev == 5: - print(math.sin(x + y)) - elif dev == 6: - print(math.cos(x + y)) - else: - print(x ** y) -```` - -Вывод: - -````code -17 --7 -60 -0.4166666666666667 -24154952.753575277 --0.9613974918795568 --0.27516333805159693 -244140625 -```` diff --git a/content/ai/notebook-02-numpy-pandas.mdx b/content/ai/notebook-02-numpy-pandas.mdx deleted file mode 100644 index 88d3088..0000000 --- a/content/ai/notebook-02-numpy-pandas.mdx +++ /dev/null @@ -1,788 +0,0 @@ ---- -title: "AI Notebook 2 — NumPy и pandas" -sidebar_position: 3 -description: "Базовые операции с массивами и таблицами, масштабирование данных." -slug: "/ai/notebook-02-numpy-pandas" ---- - -**NumPy и pandas** - -Дата - 25.02.2023 - -**1.1. Теоретический материал – Библиотека NumPy** - -**NumPy (NumericalPython)** - это библиотека Python с открытым исходным кодом, которая используется практически во всех областях науки и техники. Это универсальный стандарт для работы с числовыми данными в -Python. - -Если у вас уже есть Python, вы можете установить NumPy с помощью командной строки: - -````code -pip install numpy -```` - -Чтобы начать использовать NumPy необходимо импортировать соответствующую библиотеку: - -````code -import numpy as np* -```` - -Основным объектом NumPy является однородный многомерный массив (в numpy называется numpy.ndarray). Это многомерный массив элементов (обычно чисел), одного типа. - -**Наиболее важные атрибуты объектов ndarray:** - -`ndarray.ndim` - число измерений (чаще их называют "оси") массива. - -`ndarray.shape` - размеры массива, его форма. Это кортеж натуральных чисел, показывающий длину массива по каждой оси. Для матрицы из n строк и m столбов, shape будет (n,m). Число элементов кортежа shape равно ndim. - -`ndarray.size` - количество элементов массива. Очевидно, равно произведению всех элементов атрибута shape. - -`ndarray.dtype` - объект, описывающий тип элементов массива. Можно определить dtype, используя стандартные типы данных `Python`. `NumPy` здесь предоставляет целый букет возможностей, как встроенных, например: `bool_`, `character`, `int8`, `int16`, `int32`, `int64`, `float8`, `float16`, `float32`, `float64`, `complex64`, `object_`, так и возможность определить собственные типы данных, в том числе и составные. - -`ndarray.itemsize` - размер каждого элемента массива в байтах. - -`ndarray.data` - буфер, содержащий фактические элементы массива. - -Обычно не нужно использовать этот атрибут, так как обращаться к элементам массива проще всего с помощью индексов. - -Подробнее о массивах в NumPy можно найти в официальной документации https://numpy.org/doc/stable/user/absolute_beginners.html - -**1.2.1 Пример** - -*Задача:* -*Создать массив 5x2. Вывести все значения массива, -значение элемента с индексом (3,1) и второй столбец. Индексация -начинается с нуля.* - -````python -import numpy as np -x=np.array([[1,2],[3,4],[5,6],[7,8],[9,10]]) -print(x) -print(x[3][1]) -print(x[1]) -```` - -Вывод: - -````code -[[ 1 2] - [ 3 4] - [ 5 6] - [ 7 8] - [ 9 10]] -8 -[3 4] -```` - -**1.2.2 Пример** - -Задача: -Пример. Выполнить следующее: -1. Создать вектор (одномерный массив) размера 10, заполненный -нулями. -2. Создать вектор размера 10, заполненный единицами. -3. Создать вектор размера 10, заполненный заданным числом. -4. Создать вектор со значениями от 10 до 19. - -````python -a = np.zeros(10) -b = np.ones(10) -c = np.full(10, 5) -d = np.arange(10, 20) -print(a,"\n", b,"\n", c,"\n", d,"\n") -```` - -Вывод: - -````code -[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] - [1. 1. 1. 1. 1. 1. 1. 1. 1. 1.] - [5 5 5 5 5 5 5 5 5 5] - [10 11 12 13 14 15 16 17 18 19] -```` - -**1.2.3 Пример** - -Задача: -Создать массив 10x10 со случайными значениями, найти минимум, -максимум и среднее значение. - -````python -import numpy as np; -Z = np.random.random((10,10)) -Zmin,Zmax,Zmean = Z.min(),Z.max(),Z.mean() -print(Zmin,Zmax,Zmean) -```` - -Вывод: - -````code -0.0012011415199231212 0.9992820485421907 0.46317427349952167 -```` - -**1.2.4 Пример** - -Задача: -Задать матрицу размерности 5 на 5 и поменять 2 строки в матрице -местами - -````python -A=np.arange(25).reshape(5,5) -A[[0,1]] = A [[1,0]] -print(A) -```` - -Вывод: - -````code -[[ 5 6 7 8 9] - [ 0 1 2 3 4] - [10 11 12 13 14] - [15 16 17 18 19] - [20 21 22 23 24]] -```` - -**1.2.5 Пример** - -Задача: -Выяснить результат следующих выражений: -0 * np.nan -np.nan == np.nan -np.inf > np.nan -np.nan - np.nan -0.3 == 3 * 0.1 - -````python -print(0*np.nan) -print(np.nan == np.nan) -print(np.inf>np.nan) -print(np.nan - np.nan) -print(0.3 == 3 * 0.1) -```` - -Вывод: - -````code -nan -False -False -nan -False -```` - -**1.2.6 Пример** - -Задача: -Отсортировать массив. - -````python -import numpy as np -arr = np.array([2,1,5,3,7,4,6,8]) -print(np.sort(arr)) -```` - -Вывод: - -````code -[1 2 3 4 5 6 7 8] -```` - -**1.3.1 Задание** - -Задача: -Создать 8x8 матрицу и заполнить её в шахматном порядке нулями и -единицами. - -````python -import numpy as np -a = np.zeros((8,8)) -a[1::2,::2] = 1 -a[::2,1::2] = 1 -print(a) -```` - -Вывод: - -````code -[[0. 1. 0. 1. 0. 1. 0. 1.] - [1. 0. 1. 0. 1. 0. 1. 0.] - [0. 1. 0. 1. 0. 1. 0. 1.] - [1. 0. 1. 0. 1. 0. 1. 0.] - [0. 1. 0. 1. 0. 1. 0. 1.] - [1. 0. 1. 0. 1. 0. 1. 0.] - [0. 1. 0. 1. 0. 1. 0. 1.] - [1. 0. 1. 0. 1. 0. 1. 0.]] -```` - -**1.3.2 Задание** - -Задача: -Создать 5x5 матрицу со значениями в строках от 0 до 4. Для создания -необходимо использовать функцию arrange. - -````code -import numpy as np -x = np.zeros((5,5)) -x += np.arange(5) -print(x) -```` - -Вывод: - -````code -[[0. 1. 2. 3. 4.] - [0. 1. 2. 3. 4.] - [0. 1. 2. 3. 4.] - [0. 1. 2. 3. 4.] - [0. 1. 2. 3. 4.]] -```` - -**1.3.3 Задание** - -Задача: -Создать массив 3x3x3 со случайными значениями. - -````python -import numpy as np -x = np.random.random((3,3,3)) -print(x) -```` - -Вывод: - -````code -[[[0.12103427 0.58612308 0.97128317] - [0.85425347 0.05382162 0.24655898] - [0.62425414 0.42687911 0.88727021]] - - [[0.89520018 0.6148935 0.34365111] - [0.4170647 0.74841712 0.53984955] - [0.44451711 0.42021953 0.81843469]] - - [[0.52503207 0.5691061 0.32632757] - [0.63784264 0.08092314 0.28269851] - [0.36876011 0.05424346 0.48220954]]] -```` - -**1.3.4 Задание** - -Задача: -Создать матрицу с 0 внутри, и 1 на границах. - -````python -import numpy as np -x = np.ones((8, 8)) -x[1:-1, 1:-1] = 0 -print(x) -```` - -Вывод: - -````code -[[1. 1. 1. 1. 1. 1. 1. 1.] - [1. 0. 0. 0. 0. 0. 0. 1.] - [1. 0. 0. 0. 0. 0. 0. 1.] - [1. 0. 0. 0. 0. 0. 0. 1.] - [1. 0. 0. 0. 0. 0. 0. 1.] - [1. 0. 0. 0. 0. 0. 0. 1.] - [1. 0. 0. 0. 0. 0. 0. 1.] - [1. 1. 1. 1. 1. 1. 1. 1.]] -```` - -**1.3.5 Задание** - -Задача: -Создайте массив и отсортируйте его по убыванию. - -````python -import numpy as np -arr = np.array([2,1,5,3,7,4,6,8]) -arr=np.sort(arr) -arr=arr[::-1] -print(arr) -```` - -Вывод: - -````code -[8 7 6 5 4 3 2 1] -```` - -**1.3.6 Задание** - -Задача: -Создайте матрицу, выведите ее форму, размер и размерность. - -````python -import numpy as np -import random -x = random.randint(1,10) -y = random.randint(1,10) -A = np.zeros((x, y), int) -print(A) -if x == y: - print('Форма матрицы: квадратная матрица') -else: - print('Форма матрицы: прямоугольная матрица') -print("Размер: ",x+y) -print('Размерность: ', x *y) -```` - -Вывод: - -````code -[[0 0 0 0 0] - [0 0 0 0 0] - [0 0 0 0 0] - [0 0 0 0 0]] -Форма матрицы: прямоугольная матрица -Размер: 9 -Размерность: 20 -```` - -**2.1. Теоретический материал – Библиотека Pandas** - -Первым шагом в любом начинании в области машинного обучения является введение исходных данных в систему. Исходные данные могут вводиться вручную, содержаться в файле или храниться в интернете в каком-либо формате. Кроме того, часто требуется получить данные из нескольких источников. - -Библиотека pandas – это удобный и быстрый инструмент для работы с данными, обладающий большим функционалом. Если очень кратко, тоpandas – это библиотека, которая предоставляет очень удобные с точки зрения использования инструменты для хранения данных и работе с ними. Библиотека pandas присутствует в стандартной поставке Anaconda. Если же ее там нет, то его можно установить отдельно. Для этого введите командной строке: - -````code -pip install pandas -```` - -Для импорта библиотеки используйте команду: - -````code -import pandas as pd -```` - -Библиотека pandas предоставляет две ключевые структуры данных: **Series** и **DataFrame**. - -**Series** – это одномерная структура данных, ее можно представить, как таблицу с одной строкой. С Series можно работать как с обычным массивом (обращаться по номеру индекса), и как с ассоциированным массивом, когда можно использовать ключ для доступа к элементам данных. - -**DataFrame** – это двумерная структура. Идейно она очень похожа на обычную таблицу, что выражается в способе ее создания и работе с ее элементами. - -**2.2.1 Пример** - -Задача: -Создать Series из списка Python, словаря Python, и массива Numpy -(установить буквенные метки для последнего). - -````python -import pandas as pd -lst = [1,2,3,4,5] -d={'a':1,'b':2,'c':3} -ndarr = np.array([1,2,3,4,5]) - -s1=pd.Series(lst) -s2=pd.Series(d) -s3=pd.Series(ndarr,['a','b','c','d','e']) - -print(s1) -print(s2) -print(s3) -```` - -Вывод: - -````code -0 1 -1 2 -2 3 -3 4 -4 5 -dtype: int64 -a 1 -b 2 -c 3 -dtype: int64 -a 1 -b 2 -c 3 -d 4 -e 5 -dtype: int64 -```` - -**2.2.2 Пример** - -Задача: -Дано два Series. Напечатать их первые элементы и все элементы после -третьего (во втором фрейме). - -````python -s1=pd.Series([1,2,3,4,5],['a','b','c','d','e']) -s2=pd.Series([5,4,3,2,1]) -print(s1['a']) -print(s2[0]) -print(s1[3:]) -```` - -Вывод: - -````code -1 -5 -d 4 -e 5 -dtype: int64 -```` - -**2.2.3 Пример** - -Задача: -Создайте новый фрейм данных. - -````python -dataframe = pd.DataFrame() -dataframe['Имя']=['Джеки Джексон','Стивен Стивенсон'] -dataframe['Возраст']=[38,25] -dataframe['Водитель']=[True,False] -dataframe -```` - -Вывод: - -````code - Имя Возраст Водитель -0 Джеки Джексон 38 True -1 Стивен Стивенсон 25 False -```` - -**2.2.4 Пример** - -Задача: -Загрузите фрейм данных по ссылке: -https://raw.githubusercontent.com/chrisalbon/simulated_datasets/master/titanic.csv - -````python -#Создать url -адрес -url = 'https://raw.githubusercontent.com/chrisalbon/simulated_datasets/master/titanic.csv' -#Загрузить данные -dataframe = pd.read_csv(url) -#показать 5 строк -dataframe.head(5) -```` - -**2.2.5 Пример** - -Задача: -Пронализировать характеристики фрейма данных. - -Одна из самых простых вещей, которые мы можем сделать после загрузки данных, – это взглянуть на первые несколько строк с помощью метода head. На последние строки можно посмотреть с помощью функции tail. Мы также можем взглянуть на количество строк и столбцов: dataframe.shape. Кроме того, используя метод describe, мы можем получить описательную статистику для любых числовых столбцов. - -Более подробно с возможностями работы с фреймами данных можно узнать по ссылке ниже: - -https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html - -````python -import pandas as pd - -url = 'https://raw.githubusercontent.com/chrisalbon/simulated_datasets/master/titanic.csv' -dataframe = pd.read_csv(url) - -print('\n',dataframe.head(2)) -print() -print('\n',dataframe.tail(3)) -print('\n',dataframe.shape) -print('\n',dataframe.describe()) -```` - - -**2.2.6 Пример** - -Задача: -Выберите индивидуальные данные или срезы фрейма данных. - -Для выбора одной или нескольких строк, либо значений, можно использовать методы 1ос или iloc. - -````python -import pandas as pd - -url = 'https://raw.githubusercontent.com/chrisalbon/simulated_datasets/master/titanic.csv' -dataframe = pd.read_csv(url) - -dataframe.iloc[1:4] -```` - -**2.2.7 Пример** - -Задача: -Требуется отобрать строки фрейма данных на основе некоторого условия. Необходимо сформировать новый фрейм данных из пассажиров первого класса. - -````python -import pandas as pd - -url = 'https://raw.githubusercontent.com/chrisalbon/simulated_datasets/master/titanic.csv' -dataframe = pd.read_csv(url) - -dataframe[dataframe['PClass'] == '1st'].head(2) -```` - -**2.3.1 Задание** - -Задача: -Найдите евклидово расстояние между двумя Series (точками) a и b, не -используя встроенную формулу. - -````python -import pandas as pd -a=pd.Series([765,65]) -b=pd.Series([54,456]) - -vk=(((a[0]-b[0])**2+(a[1]-b[1])**2))**2 -print(vk) -```` - -Вывод: - -````text -433493193604 -```` - -**2.3.2 Задание** - -Задача: -Найдите в Интернете ссылку на любой csv файл и сформируйте из него фрейм данных (например, коллекцию фреймов данных можно найти здесь: https://github.com/akmand/datasets). - -````python -import pandas as pd -url = 'https://raw.githubusercontent.com/akmand/datasets/main/anneal.csv' -dataframe = pd.read_csv(url) -dataframe.head(5) -```` - -**2.3.3 Задание** - -Задача: -Проделайте с получившемся из предыдущего задания фреймом данных те же действия, что и в примерах 2.2.5-2.2.7. - -````python -import pandas as pd - -url='https://raw.githubusercontent.com/akmand/datasets/main/anneal.csv' -dataframe=pd.read_csv(url) - -print(dataframe.head(2)) -print(dataframe.tail(3)) -print(dataframe.shape) -print(dataframe.describe()) -print(dataframe.iloc[1:4]) -```` - - -**3.1. Теоретический материал – Работа с числовыми данными** - -Количественные данные что-то измеряют – будь то размер класса, ежемесячные продажи или оценки учащихся. Естественным способом представления этих величин является численным (например, 150 студентов, $529 392 продаж). - -**Нормализация данных**— это общепринятая задача предобработки в машинном обучении. Многие алгоритмы предполагают, что все признаки находятся в единой шкале, как правило, от 0 до 1 или от -1 до 1. - -Существует множество способов нормализации значений признаков, чтобы масштабировать их к единому диапазону и использовать в различных моделях машинного обучения. В зависимости от используемой функции, их можно разделить на 2 большие группы: линейные и нелинейные. При нелинейной нормализации в расчетных соотношениях используются функции логистической сигмоиды или гиперболического тангенса. В линейной нормализации изменение переменных осуществляется пропорционально, по линейному закону. - -На практике наиболее распространены следующие методы нормализации признаков: - -> Мин и макс – линейное преобразование данных в диапазоне [0..1], где -минимальное и максимальное масштабируемые значения -соответствуют 0 и 1 соответственно; - -> Z-масштабирование данных на основе среднего значения и -стандартного отклонения: производят деление разницы между -переменной и средним значением на стандартное отклонение. - -![image.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUkAAAFUCAYAAAAZG71vAAAgAElEQVR4nOzdaXecZ57f92/t+4JaUNh3kABFUiAptjiUelF3e7o7bsfjSTyeM2PngX3yPuYt5CQnD3LixHEcz3jrODMtu+1Rt7rVLZHiKgrcAGJHYa19Qe1LHoCoJgSKpLgAJPD7POFBVd03rrsK5/Cq3/2//peh2Ww2ERERERERERERETmijAc9ABEREREREREREZGDpJBUREREREREREREjjSFpCIiIiIiIiIiInKkKSQVERERERERERGRI00hqYiIiIiIiIiIiBxpCklFRERERERERETkSFNIKiIiIiIiIiIiIkeaQlIRERERERERERE50hSSioiIiIiIiIiIyJGmkFRERERERERERESONIWkIiIiIiIiIiIicqQpJBUREREREREREZEjTSGpiIiIiIiIiIiIHGkKSUVERERERERERORIU0gqIiIiIiIiIiIiR5pCUhERERERERERETnSFJKKiIiIiIiIiIjIkaaQVERERERERERERI40haQiIiIiIiIiIiJypCkkFRERERERERERkSNNIamIiIiIiIiIiIgcaQpJRURERERERERE5EhTSCoiIiIiIiIiIiJHmkJSEREREREREREROdIUkoqIiIiIiIiIiMiRppBUREREREREREREjjSFpCIiIiIiIiIiInKkKSQVERERERERERGRI00hqYiIiIiIiIiIiBxpCklFRERERERERETkSFNIKiIiIiIiIiIiIkeaQlIRERERERERERE50hSSioiIiIiIiIiIyJGmkFRERERERERERESONIWkIiIiIiIiIiIicqQpJBUREREREREREZEjTSGpiIiIiIiIiIiIHGkKSUVERERERERERORIMx/0AA5SpdLg1mSO6ZnCQQ9FREREROQbCQatTJxy0xGxHfRQRERERN54RzskrTb59HKG//jz2EEPRURERETkGxk/7qI9ZFFIKiIiIvISGJrNZvOgB7Efbt/Nc+1Gllr995dbqTT54ktVkoqIiIjImycYsHDm7b2VpCNDDt4568XtOtL1ECIiIiLfyKGdOdXrTWq1Jo2HGfDknRz/+t+tUakc8MBERERERF6CRLLKRx+n9jz+/e+2MTToxGQyAGA2GTCbDRgMhv0eojyjaqNGtVE76GGIiMgBMhmM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) - -При масштабировании данных мы будем использовать одну из популярных библиотек машинного обучения Scikit-learn. Библиотека содержит пакет sklearn.preprocessing, который предоставляет широкиевозможности для нормализации данных. Следует отметить, что в целом алгоритмы обучения выигрывают от стандартизации набора данных. - -**3.2.1. Пример** - -Задача: -Прошкалируйте числовой признак в диапазон между двумя значениями. - -````python -#Загрузить библиотеки -import numpy as np -from sklearn import preprocessing - -#Создать признак -feature = np.array([[-500.5],[-100.1],[0],[100.1],[900.9]]) -#Создать шкалировщик -minmax_scale = preprocessing.MinMaxScaler(feature_range = (0,1)) - -#Прошкалировать признак -scaled_feature = minmax_scale.fit_transform(feature) - -#Показать шкалированный признак -scaled_feature -```` - -Вывод: - -````code -array([[0. ], - [0.28571429], - [0.35714286], - [0.42857143], - [1. ]]) -```` - -**3.2.2. Пример** - -Задача: -Преобразуйте признак, чтобы он имел среднее значение 0 и стандартное -отклонение 1. - -````python -x=np.array([[-1000.1],[-200.2],[500.5],[600.6],[9000.9]]) -#Создать шкалировщик -scaler = preprocessing.StandardScaler() -#Преобразовать признак -standardized = scaler.fit_transform(x) -#Показать признак -standardized - -#Мы можем увидеть эффект стандартизации, обратившись к среднему -#значению и стандартному отклонению результата нашего решения: - -print("Среднее:",round(standardized.mean())) -print("Стандартное отклонение:", standardized.std()) -```` - -Вывод: - -````code -Среднее: 0 -Стандартное отклонение: 1.0 -```` - -**3.2.3. Пример** - -Задача: -Дан фрейм данных - -dfTest = pd.DataFrame(\{'A':[14.00,90.20,90.95,96.27,91.21], - - 'B':[103.02,107.26,110.35,114.23,114.68], - - 'C':['big','small','big','small','small']\}) - -Необходимо масштабировать его числовые столбцы. - -````python -import pandas as pd -from sklearn.preprocessing import MinMaxScaler -scaler = MinMaxScaler() -dfTest = pd.DataFrame({'A':[14.00,90.20,90.95,96.27,91.21], - 'B':[103.02,107.26,110.35,114.23,114.68], - 'C':['big','small','big','small','small']}) - -dfTest[['A','B']] = scaler.fit_transform(dfTest[['A','B']]) -dfTest -```` - -Вывод: - -````code - A B C -0 0.000000 0.000000 big -1 0.926219 0.363636 small -2 0.935335 0.628645 big -3 1.000000 0.961407 small -4 0.938495 1.000000 small -```` - -**3.3.2 Задание** - -Задача: - -Загрузить фрейм данных по ссылке: - -https://raw.githubusercontent.com/akmand/datasets/master/iris.csv - -Необходимо выполнить нормализацию первого числового признака (sepal_length_cm) с использованием минимаксного преобразования, а второго (sepal_width_cm) с задействованием z-масштабирования. - -````python -import pandas as pd -from sklearn import preprocessing -from sklearn.preprocessing import MinMaxScaler - -url='https://raw.githubusercontent.com/akmand/datasets/master/iris.csv' -dataframe=pd.read_csv(url) -scaler = MinMaxScaler() -dataframe[['sepal_length_cm']] = scaler.fit_transform(dataframe[['sepal_length_cm']]) -dataframe -```` - -Вывод: - -````code - sepal_length_cm sepal_width_cm petal_length_cm petal_width_cm \ -0 0.222222 3.5 1.4 0.2 -1 0.166667 3.0 1.4 0.2 -2 0.111111 3.2 1.3 0.2 -3 0.083333 3.1 1.5 0.2 -4 0.194444 3.6 1.4 0.2 -.. ... ... ... ... -145 0.666667 3.0 5.2 2.3 -146 0.555556 2.5 5.0 1.9 -147 0.611111 3.0 5.2 2.0 -148 0.527778 3.4 5.4 2.3 -149 0.444444 3.0 5.1 1.8 - - species -0 setosa -1 setosa -2 setosa -3 setosa -4 setosa -.. ... -145 virginica -146 virginica -147 virginica -148 virginica -149 virginica - -[150 rows x 5 columns] -```` - -````python -import pandas as pd -from sklearn import preprocessing -from sklearn.preprocessing import StandardScaler - -url='https://raw.githubusercontent.com/akmand/datasets/master/iris.csv' -dataframe=pd.read_csv(url) -scaler= StandardScaler() -dataframe[['sepal_width_cm']] = scaler.fit_transform(dataframe[['sepal_width_cm']]) -dataframe -```` - -Вывод: - -````text - sepal_length_cm sepal_width_cm petal_length_cm petal_width_cm \ -0 5.1 1.032057 1.4 0.2 -1 4.9 -0.124958 1.4 0.2 -2 4.7 0.337848 1.3 0.2 -3 4.6 0.106445 1.5 0.2 -4 5.0 1.263460 1.4 0.2 -.. ... ... ... ... -145 6.7 -0.124958 5.2 2.3 -146 6.3 -1.281972 5.0 1.9 -147 6.5 -0.124958 5.2 2.0 -148 6.2 0.800654 5.4 2.3 -149 5.9 -0.124958 5.1 1.8 - - species -0 setosa -1 setosa -2 setosa -3 setosa -4 setosa -.. ... -145 virginica -146 virginica -147 virginica -148 virginica -149 virginica - -[150 rows x 5 columns] -```` diff --git a/content/ai/notebook-03-metrics-and-knn.mdx b/content/ai/notebook-03-metrics-and-knn.mdx deleted file mode 100644 index 3edad6b..0000000 --- a/content/ai/notebook-03-metrics-and-knn.mdx +++ /dev/null @@ -1,763 +0,0 @@ ---- -title: "AI Notebook 3 — Метрики и KNN" -sidebar_position: 4 -description: "Метрики качества, расстояния и классификация K ближайших соседей." -slug: "/ai/notebook-03-metrics-and-knn" ---- - -**1.1. Теоретический материал – Функции Python** - -Перед тем как рассматривать задачи классификации вспомним -понятие функции (метода) в Python. Функция в python - объект, -принимающий аргументы и возвращающий значение. Обычно функция -определяется с помощью инструкции ` ` `def` ` `. - -Определим простейшую функцию: - -**def add(x, y): ** - - **return x + y** - -Инструкция return говорит, что нужно вернуть значение. В нашем -случае функция возвращает сумму x и y. Теперь мы ее можем вызвать: - -**add(1, 10)** - -**add('abc', 'def')** - -**'abcdef'** - -Функция может быть любой сложности и возвращать любые объекты -(списки, кортежи, и даже функции): - -**def newfunc(n):** - - **def myfunc(x):** - - **return x + n** - - **return myfunc** - -**new = newfunc(100) # new - это функция** - -**new(200)** - -**300** - -Функция может и не заканчиваться инструкцией return, при этом -функция вернет значение None: - -**def func():** - - **pass** - -**print(func())** - -**None** - -Функция может принимать произвольное количество аргументов или -не принимать их вовсе. Также распространены функции с произвольным -числом аргументов, функции с позиционными и именованными -аргументами, обязательными и необязательными. - -**def func(*args):** - - **return args** - -**func(1, 2, 3, 'abc')** - -**(1, 2, 3, 'abc')** - -**func()** - -**()** - -**func(1)** - -**(1,)** - -Как видно из примера, args - это кортеж из всех переданных -аргументов функции, и с переменной можно работать также, как и с -кортежем. - -Функция может принимать и произвольное число именованных -аргументов, тогда перед именем ставится **: - -def func(**kwargs): - - **return kwargs** - -**func(a=1, b=2, c=3)** - -**\{'a': 1, 'c': 3, 'b': 2\}** - -**func()** - -**\{\}** - -**func(a='python')** - -**\{'a': 'python'\}** - -**1.2.1 Пример** - -Задача: -Напишите функцию sum_range(start, end), которая суммирует все целые -числа от значения «start» до величины «end» включительно. -Если пользователь задаст первое число большее чем второе, просто -поменяйте их местами. - -````python -def sum_range(start,end): - if start > end: - end,start = start,end - return sum(range(start,end+1)) - -#Тесты -print(sum_range(2,12)) -print(sum_range(-4,4)) -print(sum_range(3,2)) -```` - -Вывод: - -````code -77 -0 -5 -```` - -**1.2.2 Пример** - -Задача: -Напишите рекурсивную функцию вычисления факториала на языке -Python. - -````python -def fact(num): - if num ==0: - return 1 # По договоренности факторивл 0 равен 1 - else: - return num* fact(num-1) - #возвращает результат произведения num и результата возвращенного функцией - #fact(num-1) -```` - -**1.1. Теоретический материал – Расстояние между объектами -класса** - -**Определение расстояния между объектами класса** - -Сходство или различие между объектами классификации -устанавливается в зависимости от выбранного метрического расстояния -между ними. Если каждый объект описывается n свойствами (признаками), -то он может быть представлен как точка в n-мерном пространстве, и -сходство с другими объектами будет определяться как соответствующее -расстояние. При классификации используются различные меры расстояния -между объектами. - -**1. Евклидово расстояние** - -Это, пожалуй, наиболее часто используемая мера расстояния. Она -является геометрическим расстоянием в многомерном пространстве и -вычисляется следующим образом: - -![image.png](data:image/png;base64,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AwNnZE97l8ul3t5elZeXa8OGDcrMzNTg4KDsdvu03/tK2e12lZeXKyUlRQEBARPGHQ6Hjh07psjISPn6+nr13ue233G73RoaGpLL5fLq/AAAAJeDUh8AAABTGh8fV2trq5qbmxUXFzfpNW1tbWppaVFqauoMp7s0Y2Njam9v149//GP19v7MXBIAACAASURBVPbqvvvu06OPPqq8vLxJr6+vr1dLS4uhK3NPnz6turo6Sf+3qn0uvHhyqZYuXapvfetbWrRokUwm04Tx0dFR1dfX66c//ak6OjrmRbE6Pj4ul8slk8k04YWy6TAyMqIjR44oOjpaK1asUGRkpFwu16xfee5yuWS321VTU6OCgoLzXtByuVxyOp2qra3Vnj17dOedd3r9BRKLxaLIyEi53W7ZbLZZ//UCAAALA6U+AAAAptTX16czZ87I7XZr1apVk15js9nk6+urxx9/fIbTXRqbzaa//du/1f79+3Xrrbfq5ptv1oYNG5SSkjLp9T09PTpz5ox6e3tnOOn/qaio8OynHxgYqPXr10+6UnmuCwwMVFZWlr75zW9OubVQf3+/fvazn2n//v3q7++f4YTed25P/aCgIEVHR0/7/c6V+tdee61iYmIknd3WZrZvvzM4OKj29nb5+/tr/fr1MpvNnrGBgQHt3r1bP/rRj7R582b96Ec/8nxuAAAA85nf518CAACAher06dM6ffq0wsPDtWLFivPGurq69OKLL+r48eP6yle+MmXpPxu0trbq5Zdf1quvvqrs7Gw98sgjysrKkp+fnxISEhQRETFpudnY2KiGhoYp93ufTl1dXee9qGCxWLRu3bp5WeqbTCaFhYXpW9/6lkpLS7Vv375Jt4Vxu936f//v/yk9PV0FBQUGJPU+k8k06bsTvKmrq0sfffSRbrvtNs+7Ic6taO/q6prWe1+prq4uVVZWeg6qffPNNxUYGKje3l7V1NSoo6NDN954ox588EFZLJZp/1oCAADMBpT6AAAAmNKpU6d06tQpz57WDQ0NnrGRkRFZrVbde++9ysjIOG8F7cXYtWuXiouL5XQ6L/o5fn5+2rlzp3JzcxUcHHxRz3E4HCosLNQvf/lLLVq0SI8//riys7MVGBgo6eye7unp6SosLJzw3HOl/po1ay46o7c0NDSopaVFLpdLISEhys3NVUpKitf3DJ8tfH19FRER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) - -где, - -P – расстояние между объектами A и B; -Ai – значение i-свойства объекта A; -Bi – значение i-свойства объекта B. - -**2. Квадрат евклидова расстояния** - -Данная мера расстояния используется в тех случаях, когда требуется -придать больше значение более отдаленным друг от друга объектам. Это -расстояние вычисляется следующим образом: - -![image.png](data:image/png;base64,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) - -**3. Взвешенное евклидово расстояние** - -Применяется в тех случаях, когда каждому i-свойству удается приписать -некоторый «вес» wi, пропорционально степени важности признака в задаче -классификации: - -![image.png](data:image/png;base64,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) - -**4. Хеммингово расстояние** - -Также называется манхэттенским, сити-блок расстоянием или расстоянием -городских кварталов. Это расстояние является разностью по координатам. -Хеммингово расстояние вычисляется по формуле: - -![image.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABfcAAADACAYAAACppFkEAAAgAElEQVR4nOzd+XPU930/8Ofeh/Y+pJVWt9ANAiQBQiAMmDgO8ZnWGaedaZr2h/aH/phOf+lMM9M/ob+l7cSTNJkm0zh2YxsHYwcMSIAE4kb3vbr2vu/P5/sDX6nBkjilXa14PmY0Hktv7T5XLMzq+Xnv6y0RRVEEEREREREREREREREVDGm+AxARERERERERERER0bOR5zsAERERERE9vXQ6jXg8Dp/Ph+XlZXg8HjgcDpSWlsLhcEAikayu9fv98Hg8WFxchCiKUKvVsFgssFqtMJvNeXwURERERET0oljuExEREREVkFgshtnZWfT19eHs2bO4ePEi3njjDbz55pt48803Hyn3JyYmcP78eXzyySdIp9NwOp04fPgwuru7cfDgwTw+CiIiIiIielEs94mIiIiICoharYbVakVZWRlKS0thMBgwPDyMuro6vPHGG4+sLS8vx759+zAxMQG73Y6Ojg6UlZWhrKwsT+mJiIiIiGizsNwnIiIiIiogKpUKBoMBVqsV9fX18Pl8uH37NkZGRuB2u2EymaBWqwEAJSUlEAQBY2NjaGxsxPHjx/OcnoiIiIiINgsP1CUiIiIiKjDZbBaBQADV1dX44Q9/CJPJhImJCVy8eBFLS0uPrJXL5bBYLCgqKspTWiIiIiIi2gos94mIiIiICowgCAgEAlAoFGhsbERLSwuUSiUuXbq0ptyXSCSQy+WQyWR5SktERERERFuB5T4RERERUYERBAGRSASCIMBqtWLv3r2w2Wy4cuUKlpaWkMlkIIoi0uk0UqkUFAoF5HJO5CQiIiIi2klY7hMRERERFTC5XI7W1laUlZVheHgYs7OzCAaDEAQBS0tLWFxcRHl5Oex2e76jEhERERHRJmK5T0RERERUQJLJJGKxGFQqFVQqFeRyOWpra1FVVQVRFDEzM4OJiQlkMhkEAgEEAgFYrVYYjcZ8RyciIiIiok3Ecp+IiIiIqIBEo1EEAgHodDrodDrIZDKUl5ejpqYGJSUlmJmZwd27d5FOpxGLxRCNRqHX66HVavMdnYiIiIiINhHLfSIiIiKiAuJ2uzEzM4OSkhI4HI7Vz9vtdvT09CAQCODOnTtIp9N5TElERERERFuN5T4RERERUQGJx+MIh8OwWq2wWCyrn18p9wVBwPj4OJaWlhCLxfKYlIiIiIiIthLLfSIiIiKiAiOTyWAymaDT6VY/V1xcjJ6eHmi1WiwsLGBoaAg+ny+PKYmIiIiIaCux3CciIiIiKjASiWT1Y4VarUZxcTF2794Ng8GA3/zmN5icnITRaIRMJstjWiIiIiIi2gos94mIiIiICoAgCEgmk8hkMut+XaFQQK/Xo7W1FaWlpejt7UUwGERJSQnkcnmO0xIRERER0VZjuU9EREREVADS6TR8Ph+i0ehj1zU2NqKxsRHhcBgGgwE1NTVQqVQ5SklERERERLnCLTxERERERNvczMwMxsbGcP/+fSwuLgIASkpKIJVKYbPZHllbXl6OPXv2oK2tDaWlpVAqlfmITEREREREW4w794mIiIiItrlAIICpqSk8ePAAc3NzCIVCG+7it9lsaGlpwalTp1BVVZWHtERERERElAsSURTFfIcgIiIiIqKNRaNRRCIRRCIRCIIAmUwGk8kErVYLtVq9Zn08HofH44HRaITBYMhDYiIiIiIi2mos94mIiIiIiIiIiIiICgzH8hARERERERERERERFRiW+0REREREREREREREBYblPhERERERERERERFRgWG5T0RERERERERERERUYFjuExEREREREREREREVGJb7REREREREREREREQFhuU+EREREREREREREVGBYblPRERERERERERERFRg5PkOQERERES03QmCgIWFBfj9fiQSiXzHKRgSiQR6vR5msxl2uz3fcYiIiIiIdhSW+0RERERET5DJZPDhhx/i7NmzGB8fhyiK+Y5UEFQqFTo7O/H666/jz//8z/Mdh4iIiIhoR2G5T0RERET0BKIo4sGDB7h27RrcbjfL/aekVCohiiLq6+vzHYWIiIiIaMdhuU9ERERE9ASiKCIQCMDv9z+22JdIJJBKt/+xVqIoQhCELb+fTCYDl8uF+fl5JBIJKBQKyGSyLb9fIiIiIqKXAct9IiIiIqInkEgkKCsrg9PpxPT09IYFv1qthsFgyHG6ZxeLxRAOh7f8fgRBQCgUgsvlwtDQEKqqqmA2m7f8fomIiIiIXgYs94mIiIiInkAmk+HAgQOYm5uDy+VCOp1ed51Wq4XT6UR7eztsNluOUz69ZDKJaDT6yOcCgQDC4TDi8TgSicTqRzAYRDAYRCKReK7d/ul0GgsLC+jv7189XHcr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) - -**5. Расстояние Чебышева** - -Принимает значение наибольшего модуля разности между значениями -соответствующих свойств (признаков) объектов: - -![image.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABewAAABWCAYAAAC91dZFAAAgAElEQVR4nO3dWW/caHo+/Itk7UXWvmuxVGrLbs9k3AsmCIJBgEyOcvA/yEdNcj5IMggGGWTQ07a72y1r32rfi1Xc+R70yyclW7IlW5Zk6/oBRrsNFeupIlllX7x535Lv+z6IiIiIiIiIiIiIiOhWybe9ACIiIiIiIiIiIiIiYmBPRERERERERERERHQnMLAnIiIiIiIiIiIiIroDGNgTEREREREREREREd0BDOyJiIiIiIiIiIiIiO4ABvZERERERERERERERHdA6LYXQEREREREdNMsy8Lp6SlOT0+RSCRQq9VQKpVue1lEt6LT6eD09BTT6RS1Wg21Wg3RaPS2l0VERHQvMbAnIiIiIqJ7xzAMfPfdd/jDH/6AWq2G3//+9wzs6d7a39/HH/7wBxweHuKf/umfkM1mGdgTERHdErbEISIiIiKie8c0Tfz444/493//d/zHf/wHjo+Pb3tJRLfm5OQE//mf/4l/+7d/ww8//ADDMG57SURERPcWA3siIiIiIiIiIiIiojuAgT0RERERERERERER0R3AwJ6IiIiIiIiIiIiI6A5gYE9EREREREREREREdAcwsCciIiIiIiIiIiIiugMY2BMRERERERERERER3QEM7ImIiIiIiIiIiIiI7gAG9kREREREREREREREdwADeyIiIiIiIiIiIiKiOyB02wsgIiIiuqt837/0n0uS9F7P8b6Po8t5n314Hfsk2P5VjpXrfN6LXPU5Xt/e27b/+rYX//+y2zlvfTxH3u669zm92018N1z3NoiIiOjTwcCeiIiI6AKu62I0GmE4HGI6nWI2m0HXdQyHQ4xGI/i+j0gkgkgkgkwmg3Q6jXA4fO52LMuC67oIh8MIh8PIZDIoFArI5XK38MruD9M0xT6czWaYzWaYTCYYjUZiHwJAPp/Hl19+icePH0NRlA9+3slkgoODAxweHopjBwDS6TQymQwikQjC4TCSySSKxSIKhcK1PK+u6+J5s9ksarUacrmcOO6uGvxZloVOp4Nut4vBYIDRaITpdArbtmHbNhRFQTgcRiwWE68tn8+jWCwinU6L7RiGgdlshvF4jNPTU5yenmI+n8O2bfi+j0QiceaXpmnifYlEIh/8vnzOXNfF4eEhDg4OIMsyarUaKpWK2OfXcVzRWZZlic8QXdeh6zqm06n4s2g0Ko7lZDKJRCJx7rnnOA5s24bjOOLPcrkcCoWC+D55n/OWiIiIPm0M7ImIiIgu4DgOer0eDg4O0Gq10O120Wq1RDgWBI2pVAoPHjzA6uoqEonEG9sJwkrLskSI8+DBAyiKwsD+IzMMA61WCwcHByJ4bjQaODw8xOHhoQjsNzc38S//8i949OjRtTzvZDLBDz/8gD/+8Y9oNpvodruQJEkcJ6qqIpFIoFQq4csvv0Qul7u2wP6nn37CH//4R2xsbODbb79FNBpFMplEKHT1v/qbpomTkxO8fPkSe3t7ODw8RLPZhK7rmM/niEQiSCQSyGQyWF1dxerqKh49eoRIJHImsDdNE/1+H0dHR/jLX/6Cv/zlL+j1epjP53BdF4VCAYVCQYT01WoVT548QTqdZmD/Dq7rYm9vD//1X/+FcDiMb7/9FqqqIh6PQ1EUBvYfgWVZaLfbODw8RKfTQafTQbPZFJ8rqVRKHNPBr/POv/l8Dl3XYVmW+LN6vY4vv/wSoVDovc9bIiIi+rTx25+IiIjoHXzfh23bmM1m6Pf72Nvbw/Pnz6EoCkqlEqrVKvL5PBzHged55z7e8zw4joPhcIherwff9xGPxxGJRKCqKlRVPbc6nz6c7/vwfR+O48CyLFHl/fPPP8OyLNi2Dcuy8Hd/93cwTRMAIMsyZPnq455M04RhGCLM29raQqPRQLfbRTQahaqqqNVq8DxPrOtdLU0u+7ymaaLVamF7exvfffcdXNfF8vIyqtWqqIJ/X8Hxa5omxuMxjo+PcXJygng8jmw2i2q1Ck3TUKvVzn09i/tgMBjg8PAQg8EAnueJYDI4fxbfG7qYbdviDpK9vT08e/YM8XgclUoFX3zxBWRZRjwev+1lftZ834dlWdB1Hd1uFzs7O3j27BlqtRocx0E0GoWmaeK4fl1wrAffL7PZDKFQCJFIBJ7noVqtolqt8qILERHRPcPAnoiIiOgCoVAIuVwOsiwjmUxC0zSEQiE0Gg2Ew2GoqoqNjQ18+eWXePToETY3N6Gq6hvbCdoe6LqO/f197O3t4fT0FLZto91u4+HDh9jc3GRg/xHEYjGUy2VEo1EUCgX0+31omiYqvoP2Rp7nwTAMTCYT+L6PaDT6XoH9aDRCu93G/v4+BoOBuAsjn88jn8/j6dOn+N3vfodkMimOoWKx+F7PtWgymYiw/uDgAKenp6hWqxgOh9B1HYlE4r0C8EgkglqthnA4LILg3d1d/OlPf0Kn00EsFkM+n8fy8jIePXqEr7/+GsvLy0ilUme2E/ycaZoihKxUKshms6KivlqtIp1Oi3OtWCzynHiL+XyOVquFk5MT8ZmiaRoGgwEmkwmi0ei5ITF9uEgkgmKxeOaCq+/7OD4+hizLyOVy2NzcxK9//WvUajVUq9VzK+WD1lKj0UhU5wd357TbbXzzzTc8D4iIiO4hBvZEREREF1AUBfl8HrlcDul0GpqmQZIkvHz5EqFQCOl0GvV6Hd98881bA/tA0Pt7Z2dH9PHe2dmBoihYWVmBpmk3+Oruh2g0inK5jFKphMlkgslkgmQyKdqz+L6P2WwGz/Ngmiam0ylCodB7B2Tj8RhHR0c4ODjAcDgUd1LE43Gsrq7i6dOn+Id/+AdR7S5J0rX0pw6q3oPAvtFooNPpiMB+sT3NVUSjUSwtLWFpaQnT6RSTyQTb29vodDr43//9X8RiMeRyOSwvL2NzcxNfffUV0un0G68pFoshFovB9/0z4fzDhw9Rr9dFqLn4viz+l940n8/RbDbx6tUr7O/v4+TkBNlsFoPBANPpVFR20/WLRCIolUooFovQNA2qqsI0Tfzwww9nAvtvvvnmrYF9oNfrIRKJiPO40WiI+RZPnz69wVdGREREdwEDeyIiIqILLIaGQRVkt9vFdDqF67qIRqPI5XIifIxEIm9tXRAOh5HP5/HgwQM4joOjoyM0m008efIEtm3f1Mu6Vxb3oWEYGAwG0HUdmqZhc3MTnudhMBjAdV1RYR+Lxc6dRXAR13VFpazjOGJQZFABrWka8vk8SqUSVFVFKBS6lhYXnueJ5+10OuLujX6/L+7qCAYlW5b1XhX2ixcUotEofN8XA5MrlQosy0Kv18Ph4aG4QHHe3QKj0Qi9Xg+tVguO42B1dVWcC9VqVQziZeuPtwvap9i2jV6vh6OjI7x69QrtdhuGYYjjeDqdwjRNuK5720v+LC1+rpimicFggF6vh9lsJi7SFQoFlMtlcWfW247tYOZDuVxGp9PBdDoVv3jRhYiI6P75sHtviYiIiO6JoIVKq9XCZDI5E9gHocy7wkZFUZDNZlGv15HL5TCdTrGzs4Nut8vA/gbMZjN0u11MJhNomoaHDx+iXC4jFoudqbAPgs/LWnxscFxEIhFRAW2aJlKpFIrFIpLJ5LVVjQfPO5lM0Ol0cHBwIAL7oOf8fD4XA48/tCd8KBRCPB5HKpVCPp9HpVJBOBxGt9sVz3vR+zYajbC9vY2ffvoJtm1jdXUV9XodKysrKJfLUFWVYf0lBD3TZ7PZmcC+0+nAsiy4rov5fI7JZALTNBn23oD5fI5eryeC9iCwX7xI966WV4qiIJVKoVKpIB6PYzqdot1uM7AnIiK6p1hhT0RERHQJlmVhMpmg3+/DMAwoioJEIoF0Oo18Po9EIvHOUEaSJMRiMaRSKVGB3e12oes6Q5kbYBgGhsMh5vM5UqkUyuUyDg8PEYvFzlTYZ7PZKwX2rutC13UMBgMYhgFJkhAKheA4DiaTCQAgk8mgVCpda2AfbL/b7WI4HMKyLAD/V/3rOM4HV9gvUhQFiqIgmUyKvvW6rqPf76PT6aDX62E4HCIejyMajUJRFJimCcuy0O/30e/3MZlMUKvVUKvVUCqVUCgU3uh3TxfzfV+858Fn0aLFCnvDMPi5cgMWA3vDMBAKhRCLxaCq6qXbnMmyLAZDB3cDTadTcU4TERHR/cLAnoiIiOgSgmplXddFBWUwbDCZTCISibwzsA+qY3Vdx3w+Z1X9DQtaxLiui2w2i5WVFTx//hyxWExUJL9P0GnbNsbjMRqNBgC8cRwEQ2cLhcK1BvZBK5ydnR2Yponl5WUAv9xJcHBwANu2xTF7HYF9IBQKoVAoYGNjQ1T3B6Hlzs4OfN9HqVRCPB5Ht9tFp9PBYDBANBoVYX2tVkMqlUI0Gr2WNd0XnudhOBxif38fw+EQuVwOX3/9NWzbxunp6RstcRjYf3zB3Q69Xg+2bSORSCAWi13pjpHgbhld12EYBhzH+YgrJiIioruOgT0RERHRJSy2FwF+CWGDwF5V1UuFsIuB/Ww2Yyhzw14P7IOWOPF4HKPR6L1b4jiOg/F4jGazKSprFwX9rIOWONfFsix0u11sb29D0zQsLy8jnU7j4OAAiqK8UWF/XcLhsAjs2+02Xr16hfF4jG63i52dHcRiMSSTSdEuJwjxgyGawdDZaDTKobJX5Ps+BoMB9vf3YZomSqUS1tbW0Gg08Pz5cwb2tyC4WNXtduE4znsF9r7vi8+f+XzO2QNERET3HAN7IiIiokswTRPD4RDtdhumaYrBpOFw+J2V9QHP86DrOtrtNsbjMQCIbTC4vBlBlbksywiFQohGo4jH44hEInBdV1TaXyYwm8/nmM/nGI1GkGUZ+XxetE7q9Xpn7sa4Sj/ryz5vv9+HaZpnBlYmk0lomnbmOa6rsj6wGNgfHx8jn8+j2+2i2+3ixYsXkGUZkUgEtm1jMpnAsiwkk0lks1nRAucq5w1B9K0PAl1FUaCqKgqFAgqFAtLpNEKhkLhr57r3OV3MMAz0ej0MBgOEw2GUSiUxRPmyTNPE6ekpXrx4gV6vB03TUCqVkE6neZ4QERHdQwzsiYiIiC4hGDrbbrdFj+J4PI5wOHzpbXieJ4YJjkYjAEAymUQ0GmUoc0vC4bCoiA32z2Ur7INWGLquQ1EUVCoVNJtN0c86COyDljjFYvFaqsoXK3pt2xZheKlUQiKRuNa2O+cJAvtEIoG9vT0UCgXs7u6i2+3i+fPnUBRFBMjB0MxYLCYGNPN4v7rggmG328V8PkckEoGqqigWiyiXy28E9nRzgvOx3++jVquhXC4jk8lcqd2TaZo4OTnBX//6VxiGgVQqhaWlJeRyOZ4rRERE9xADeyIiIqIL+L4Pz/PgeZ6opB4MBsjn88hkMlBV9UqBve/7IrCfzWZQVRWZTAaZTAahEP9a9jF4nif2o+u6b1Qeh0IhMSQ1COzfVmG/eEzMZjMxaDabzSKbzaLb7WI0GokwPWgPk06nr224ahAQ9no9SJIkqqyz2SxkWRaDKz3Pg+M4sG373Nf+vhRFgaZp0DQN5XJZBJSGYWB/fx/pdBorKytIp9NwHAfJZBKpVAqZTAbpdPpa1nDfWJaFwWCAVqsF13WRTqeRzWbFZ1E8HoeiKOI4v+59Tme9/t0wmUwwn88RjUZRqVSQzWYvrLBffKxhGJjNZjg+Pkaj0UC73UY6ncbq6io2NzdRKpWu1FqHiIiIPg/8lyERERHRBYKe86ZpYjKZiFAmEomgWCwin88jFotdenuLFfa+76Ner2NlZQX1ev1K26HLC4Y5mqYpKucXK1YXK+xd133n0FnXdcX2gmMi2KaqqmIo6HA4FFX3mUzmShd23iVowTEcDlEqlVAqlZDP55FIJMSdG8DZuQu2bX+U8FZVVSwtLWFtbQ3Hx8fitXc6HfR6vTPru87+/feNZVkYDodotVoolUqoVqvI5/NvXAQKQuB3XXiiD+O6rvhuCD5XQqEQUqmUOOcvCuwXP5MODg6ws7OD3d1ddDod5PN51Ot1PH36FI8fP8bKygov5hIREd1D/PYnIiIiusDiIMDzAvtcLvfegb2qqqjX6/jtb3+LlZUVBvYfSRCwB73pPc+7MLD3PA+TyeStLXGCsC04HiaTCWRZhiRJUFVVDAUdDAYIhUKi+vwq/azfJaiwH4/HePDgATY2NhCPx99onWHbNubz+bUPnV2kaZoI7IfDIQzDELMe+v0+VlZWsL6+DlVVWSn8ARZnaFSrVSwtLaFYLEKWZZimKX4uGDq7eLzT9Vv8HFgM7DVNE4H9RS1xFh+7u7uL//7v/8arV68QjUZRKBTw6NEj/Pa3v8WTJ08QCoUY2BMREd1D/PYnIiIiuoDrutB1HZ1OR7Q+kSQJyWQSpVLprYF90I7EcRxRcXxycoLRaIRarYZSqYR6vY7V1dVrr8Cm/2PbNsbjMdrtNizLgqqqiMfjYr8FgX08Hr9UD/tge51OB67rirss0uk0FEWB4zjQdR2GYYi2MdcR2FuWJS4c6boOTdOQTCZFMBiEepIkidekKApM0xSB/ceosI/FYigUCiiXy1BVFZIkwbIs6LqO6XQKx3GgKAqP7/cQXECaTCYYDAaIRqNYWloSd1MsvqfBXI1wOAzbtt95pwh9GMdxxOfAaDQS51dwgXA4HOL09BSGYZx5THDXS3BRb39/H6ZpIpvNolqtolar4fHjxyiXy4jH47f4ComIiOg2MbAnIiIiusBiRXwQ2AetT94V2AftdGazGQ4PD/H999/j1atXCIVCqNfrWFtbQ71eF0M4WX38cTiOg9FohEajAc/zkE6nkU6nRXuWcDiMZDKJWCwmQvG3BfaL2wuGqGazWSQSCUiSBNu2MZvNYFkW4vG4qLD/0MDatm10Oh0cHR1BkiTRYub1oZSSJCEajSKZTEJRFBGef6yWOMEw2VKpBFVVIcvymcr+j/W894HneRgMBjg+PoZhGGJ/F4vFN46nSCSCZDKJSCQiWjuxwv7jCQL7ZrOJ4XAIy7JE5fx0OkWn04Hv++h2u+IxhmGIWSidTgetVkvc8fPgwQM8fvwYX375JYrFIjKZzC2+OiIiIrptDOyJiIiILhBUuLZaLfT7fVFhHw6HEYvFIMsyDMPAYDA497HT6RS6rqPZbOL4+Binp6fY2NjAxsYG1tfXsbS0hGw2eyOvwzAMGIYBx3HE0MObEI1GRQW4oig33t7BcRxMJhO0221ks1nkcjkUCgURsC+2xAl6f59Xmew4DlzXxXw+F8FbKBQS2wvuqDBNUwT2sVjsnf2s32VxOOVwOESj0UChUECxWESxWEQymTwT2MuyjGg0ClVVYdu2COyvs8I+OH6C7UUiEcTjcXHngu/7mEwm6PV6mE6nYgCqJElvtO2hNwXvbXA3R6vVgqIoWFpaQrVafWPY9eJxHI1G4TgOK+w/ssXAfjQaiZY4kUhEtMIxDOPMOafrOmazGYbDoRgaHY/HxUXEYrGIWq0GTdOutYUWERERfXoY2BMRERFdIKhUbbfb6PV6ovI6CIAjkQi63S4SicQbj/U8D5ZlwbIszOdzrK6uolaroVqtolqtolgsQlXVG3sdx8fH2Nvbw2AwgGmaH62n+SJJkrC0tCTaeGia9saQzI8taFExnU5RKBSQzWZF0A28OXT2oh72s9lMtCcJhUKoVCpIp9OiojkYQBm0rbEsC4lE4oMDe9u2z7S1AX5pfxKPx0VFtSRJ4udlWUYkEoGqqmId1x3YB8f2Yl/1Xq8HACgWizBNE91uF7u7u2g0GhiNRuLCDYPIdwuOp9lsJqrkI5EIYrGYCHNfvyPn9Qp79rD/uILAvtFoYDqdQlEU5PN5rK+v4+uvvxafDYsXKIPvg+DC4GQyQbfbFQOa9/b24Hme+MzM5XK3+AqJiIjoNjGwJyIiIrrAeRX2i21ybNuGLMsXVg37vg/f91EoFLC6uorl5WWk02mkUinEYrEba4Pjui6Ojo7w5z//GYeHh5hOp5jNZh/9eWVZxtOnT/HVV18B+CVovunAPqhOD4bDBhXxwT4Lh8OiMvxtPeyDQa+z2QzxeByVSgWpVArhcFg8RxDCTadT0RLnOgL7+XwuqvaDNScSCSSTyTNhPXC2wt4wDFHVe50XaBaHMQ8GgzOBfaFQQLvdRrfbhWEYaDQaGI/H0DQNiqIwsL+E4E6OxbY2iqIgFouJOQGv7/fFCvvgAg0D+48naI3VbDZFYJ/JZFCv1/H111+fu5+C74PgrhnP8/Ddd9/hT3/6Ew4ODkQLJMuyoGkaA3siIqJ7jIE9ERER0QUWw/nRaATf90X/+rW1NeTz+UttJ5vNYmlpCaVSSYTDN9kaRpZlZLNZPHjwAPF4HPP5HKZpfvTnlSQJa2trKBQKSCaTtzZ4NAjJJElCKBQ6s46gB3smk4EsyyIkfT2wX+xvn0wmkU6nEY/HEQqFRNudYAClaZqQZRmapqFarYrBsO9jNBrh6OhIXDQaDAbwfR+O46DZbL7x8+12GycnJ5jNZpjNZtB1/dor7C3LQrvdxtHRkRiA+8UXXyCRSCCTyWBra0sMx+10Ojg4OEA4HIaiKOfejUJn6bqOk5MTHB8fi30+Ho/h+z7G4/EbP29ZFg4ODjAej8XFnaA9EwP7jyM45xuNhvhMKBQKyGQySCaTlz7OC4UCqtUqxuOxONdjsRjW19c/8isgIiKiu4yBPREREdEFgpY4rVYL4/EYkiQhk8ngwYMH+M1vfoNyuXyp7cRiMRHihEKhG+/jrSgKVlZWkEgkMJ/PRT/2m7A45PV9Q+uPKZFIoFAoIJfLIRQKQdf1c3t/Lw6TDQYPByG0YRhvDKAM7ib40Ar7wWCAra0t7O/vwzAMmKaJfr+Pk5OTc9/P0WiEnZ0dDIdDTKdTMUfBtu33ev7zWJaFk5MTfP/998jlclhfX8fm5iYqlQoajQYcx8HJyQlOT0/R6/Wws7ODRCKBVCp16Ytc99l0OsXe3h5evHgh9nkoFEKr1To3CHYcBy9fvkSn0xH7PAjsb+o8v28We9hLkgRN01Aqld6YKfEumqZheXlZhP/Pnz9HsVjEZDL5iKsnIiKiu46BPREREdFrFoc+Bn2GZ7MZIpEIisUilpeX8cUXX6Bard72Ui9FURQxpJTOisfjyGazyGQyCIVCIiC1bVsMSw16tgetSYIhq0FLo2A4aKPRwGQyge/7iMfj0DQN+Xwe8Xj8SmsK2mW4rovxeIx2u41mswlFUaAoighlz6PrulhD0L/fNE04jvPB71XQZmUwGKDX66Hb7SKTyaBYLKJeryOdTiOfz6PVauHZs2eiQnx3dxf5fB4rKysfvIbPVbC/grt6ut0uTk9PIcsyFEURrZHO47ouBoMBHMc5MzsjGDB91y22fbqsYMjxTbdYCr4bLMvCeDxGp9NBNptFKpUSc0leb1f0Not3+Mznc+zu7uLJkycX7msiIiK6HxjYExEREb1mcVBp8EuWZZTLZWxsbKBQKNxoSxv6eBb7wQetchzHwWw2w2AwEINmfd9HsVhEPB5HJpM5E8ot9rM2TROpVAqZTObK4V0gGBo6mUzgui7K5bIYOKpp2lsreEejEba2tpBMJrG3t3etveu73S729/fRarWgKAp++9vfolarIZ/PizsKJElCqVQSbYAmkwn29vawtLQEXdevbS2fG9/3xcWW+XyOTCaDR48eiX3+tnZSjuNga2tLzMbwPA/dbvcGV/9hBoMBnj9/jufPn1/6Mb/61a/w61//+sYvmgZ3Lix+NwSBe1Bhf5Vz3nEczOfza78LhoiIiD5t/JcmERER0WuCECUITafTKWKxGEqlEur1uggo6dMXCoWQSCSQSCREKBq0v+n3+2i1Wmi1WlheXsbq6qrY9+cF9o1GA6ZpQtM00bf/fQTba7VaIrBfWlpCuVxGqVR667HX7/dFaGgYBjqdznut4TydTgfPnj1Do9HAt99+i2+++UYE84qiQNM0JBIJFItFpNNpRKNR0Vd9fX2dgf1beJ4HXdfRbrcxm81EG6lKpYJyufzWuzRs20YqlRKV+P1+/5MK7Pv9Pv785z/jX//1Xy99R8D/+3//D9Vq9cYD++CzYfG7IWiVViwW3yuwn81mYlD1p3BHBBEREX18/JcmERER0WtM08RoNEK328VkMoFlWUilUsjlcqjVakin059UYO+6Lvr9Pnq93q33sI/FYjfyvEFrm+l0CkVRkMvlkEwmRRubQFBhvxjYT6dTNJtNaJoGXdfh+z4URUEsFjs3OF1sieN5HjRNQ7FYRCKReK8K+8X+2IlEAul0GplMBrlcDrlc7o3XsMjzPKRSKfF+K4oCz/NE25FgUO7btvH6axuNRhiNRuj1egiFQqLnfzabPXNRIhQKiUr7IEwdjUYYj8fi+BsMBuI4uOlZDneZ7/uYTqfodDpwXVecN8E+f9t5EwT2qqqKgdZBSy/DMGAYhtg3d1EkEkGhUMDa2tqlA+tCoXArMzEMw8BwOESv1xOzAqLRKHK53Hu1xNF1XVwUlCQJlUoFuVzuTs77ICIioptzN//WRkRERHSLDMMQ1dXT6RSe54lQplwuv7MtyV3jui6Ojo7w4sULtNttzOdzmKb50Z9XkiRsbGyIfv/ZbPbGAvugQn40GiEcDqNarSKdTr/RWiQcDkOSpDOB/Wg0wuHhIWKxmGiX87aAebElTjqdRqlUeq9q28XtBYF9rVbD0tISisUiYrHYe23P931x8SLo/X3ZwN40TZycnGBnZwe+76NcLkNVVVQqlQsDYFVVsbS0hLW1Nezs7KDdbmMwGKDT6aDVaiGXyyEcDn9S59DHtlhhH4lEUCqVUKlURAD/PoJq8NlsJi7U3EXpdBp/8zd/g3g8funA/osvvkAmk/nIK3vTfD5Hr9dDu92GruvwPA/xeBz5fP69hs5OJhMcHx/j5OQEsixjfX0d1Wr13OHCREREdH/czb+1EREREd2iYLBmq3o9zpIAABNbSURBVNUSfcSj0Siy2awI7C8beN4FnudhMBjg4OAAh4eHmE6nVxrw+L6CgZmZTEZUAN+U6XSKdruN6XSKcDiMWq2GTCbzxpDKcDiMcDgsBlgqigJd19FoNJBKpbCysoJKpYJEIvFG4On7vhjyGQyHTSQSYgDlVQN727ZhWdaZdhvALwF4Lpe79HYkSYIsy+K5Pc8Tgb2maZca1BkM3R0Oh2g2mzg4OECpVMLy8jKWl5ehquo7A/v19XW0221YloXhcIhGo4Hj42PIsox0On3p1/M5cxwHtm2L/vXBPorFYigUCpfezuv7PBiMqus6ZrPZW3vg3zZVVfHw4UPUarVLPyaZTN7o50lgPp+j2+2i0+lgPp9DlmUkEgnkcjnk8/lL3VUTfGbYto1er4fT01N0u13k83lxfr1vOy0iIiL6PDCwJyIiInqNaZqiwj4I7GOxGHK5HCqVyicX2CuKgpWVFfzt3/4tHj58CNM0r3UY6UUkScLS0hKWlpaQz+ff2of7ugVV8oZh4MGDB6hUKkilUhcGl7IsIxqNQlVVKIoC0zRh2zbi8Tgqlcq5Yf9iwB4MoJQkCdlsVgT2V9FqtXBwcIBerwfXdbG+vi4uFlzW4usIKult2xaB/Xw+v9S6Op0ODg8P0W634XkeVldXUSwWkc/nkUwmEYlELgwmg8B+OBxie3sbiqKI3wd3OdRqNbb9ADAcDnFwcICTkxN4nodyuYx8Po9UKnWl7ZzX2imosJ/P53e6YjtoN3WVyvTg4tpNCyrse70ebNtGIpGAqqrQNE2cF+8ym83ExdMff/wRw+EQ8Xgc9Xodv/rVr7CxsYFsNnsDr4aIiIjuKgb2RERERK95V4W9oiifXGC/vLyMQqEAx3FEZfhNiEajiEajV+qbfh1GoxEODg5E2FytVhEOhy9cg6IobwT2lmUhkUigWq0iEom8UVEeBKLT6VRUxcuyfCawv0qFfavVwl//+lf0ej08evQIm5ubKBQKV7rQIcsyIpGI6Gce9LAPAnvDMC41v6DT6eD7779Ho9HA5uamWEsmkxF9ut8W2C8vL2M+nyOfz0NRFIxGI2xvbyMSiaBarcK27Uu/ps/ZcDjETz/9hBcvXoj3uVqtQtO0K20nEokgkUggHo+LwH6xwv6qFwBuUhDYXybsDsiyfCstlWazmQjsHcdBMpmEpmlQVVW0w3nXOT+fz7G7u4v/+Z//wenpKYbDIZLJJOr1On73u9/daOswIiIiupsY2BMREdG9ZhgGdF0Xfd1N08TLly+xvb2Ng4MDDAYDuK6L2WyGZrOJvb09Uckai8UQjUavFDTdhqBtw12usn1fvu+LPt1BODmbzfDs2TO8fPkSvu+LdjzpdFoMZI1EIohGoyJcC4VC0DQNhUIBlUoFy8vLqNVqZ8KzYIjneDzGeDwWIf3W1hba7bYY7Doej9Hr9cTQV1VVkUgkzlSUTyYTjMdj6LoujrvvvvsO33//PcbjMSKRiLgj4DKtP4K1tFot7O/v4+DgAN1uV9wp0Ol0sL29Ldqv5PN5cTHFNM03zoEff/wR3333nRg0m0qlEIlEoGnaua1wPM+D67pwHAeTyQS9Xg/dblcM7Q2Ga8ZiMWxtbWFlZQXFYlGsIZlMIpFIfFIXwq4qODYmk4l4n7e3t/HXv/4VP/30kzhW4vH4pc7VYHvD4RB7e3s4ODhAq9USvdWHwyH29/cRj8cxnU6h6zpSqRQ0TTv37obZbIbBYIDBYCAusMXjcaRSqY8a+EuSdCcvggafJYvnxc8//4zt7W0cHx+LC3TT6RTHx8d4+fLlW7fnui5c18VgMMDh4SHG4zESiQQ2NjZQLpdRr9dRKpWufCeSZVkYDAbo9/sAfvksCz4/UqnUnXtfiYiI6N0Y2BMREdG9Np1O0Wg00Gw2RVi1tbWFZ8+eYXd3F9PpFI7joN/v48WLF4jFYqjVaqhWqygUCshms3c+sP/cjUYjnJ6e4vT0FI1GA41GA1tbW/j5558B/HJRpt1uo16vo16viyB+MbQMhUJIp9OoVqv44osv8OTJEzx8+BDFYhGSJMGyLBiGgW63i93dXezu7orw9eTkRLQ0GY/HODw8RCKREJX3wfGy+Hy9Xg+7u7s4OTkRx9329ja2trZgmiYURREBeCqVemeLjMFggN3dXWxvb+Pnn3/G1tYWDg8PMZlMYNs2Tk5O8P3336Pb7aLRaKBcLiObzSKbzaLf7+P09BStVgvD4RD9fh/Hx8c4OjqCZVmQZRme58FxHGiahnw+/8bzB4NtDcMQ7/8PP/yARqMh+uH3+33IsowXL14gGo2KQcT5fB61Wu3W2pzclMlkgr29Pezv76Pf74t2OFtbWzg+PkYoFILv+3BdF/F4HNVq9a3bm06n2N/fx87Ojjje9/b20Ov14Ps+2u02fvzxR8xmMzQaDdRqNXEOnBfYj8djvHz5Ei9fvkQ8HkcsFkOpVEK9Xr/TFfofy3g8xunpKdrttjgvXrx4gRcvXuDo6AiSJIn3Obgz5m0Mw4BhGOIiWnAOrKysYGVlBbVa7b0GAxuGgd3dXfzwww8AgFgshkwmg3q9/tlfBCMiIvpcMbAnIiKie80wDBFQNptNNJtN7O/vo9FoYDKZAPilxYfneWg0Gvjpp59gWRZCoZCoDKbbpes6Op0ODg4OsL29je3tbbRaLTSbTfEz4/FY9KQPqpgXRSIR5HI5PHjwQAT2Dx48gKqqkGUZjuPANE2MRiMcHR3hhx9+wHg8xnQ6xWAwEG1HZFkWle6SJMHzPMTj8TdC7iDo39raEsdds9lEq9WC7/s4PT0Voa1hGO98D4Lt7e7uYn9/H0dHRxiPx6JyeTab4ejoSNwlEFQOe56H09NTbG9vY39/X6wjeG2hUAiNRgPJZBLlcvnCYcW+78NxHMzncwyHQ5yenuLk5ASGYSCZTMI0TQAQ4fHLly8xHo9RqVTgOA5UVUWpVLrqrv+kzGYztFotvHr1Suzr4L+DwQDNZhOqqqJQKGBjY+Od25vP52i1WtjZ2cH+/j4ODw/R7/fFXSW2baPVagGAuJiSSqWwvLx87vZ0XcfR0RGePXsGTdOgaRps20axWLzW9+FTEQyYPTo6EufF7u6uuItBVVWoqgrTNHF4eIjRaPTW7em6Dl3XIUkSyuUyKpUK6vU6vvrqK6ytrb33Ok3TRLPZxI8//gjf96Fpmrggd5n2V0RERHT3MLAnIiKie01VVVHdu7S0hPF4jCdPnqDb7WI4HIqfS6VSKBaLKBaLKBQKKBaLyGQy7DV8B6TTaTx48EAE3I8fPxZtawCI1hBLS0uil//rF1pUVcXDhw+hKAqq1SoqlcqZIZLBUM9SqYQnT54glUqJatnZbCaeL5/Po1AoIJfLiec9rw99Pp/Ho0ePkM1mz7TYGY/H8H1fHGvr6+vIZDLvfA9yuRw2NzehaRo2NjbQ6XTE+hbfA03TkE6noWma+DNVVZHNZrGxsSHWEjxWlmVxvK+trSGXy537/JIkid75KysrIpR8+vQpOp0OHMcR72Pw2oIWRZlMBvl8/r2qiz8lqVQK6+vriEaj4n0O9vtsNhOfLaurq5e6eKFpGtbX1xGJRLC2tobf/OY3mEwmsCwLtm2f2cepVArpdBpLS0sXtlxJJpNYW1uDZVkisA8GDd9HmqZhZWUFyWQSKysrZ74bZrOZaOcUvM/v+i6wLAumaUKSJLFP3mdeweui0SiWlpbw9OlTKIoCTdOQzWZRrVY/+3OKiIjoc8VvcCIiIrrXglC2WCyKFiS2bcOyLBEyAr+0TAmHw4hEIohEIgiHw28dYko3J5PJIJFIoFKpnNl3wf4LhULijohguOXr+01VVWxubmJ5eVn8XCgUEoMtg6Gz4XAYqVQK9XodnueJ3u3BsRMcI8FzLh43i/L5PJLJJNbX18Vag20AEI+5bD/zXC6HRCKBBw8eiPcgWF/wHiiKcmZdwZ+Vy2Wsra3Btm2xhsXHBsd8LBa7cC2yLCMajYp1F4tFPHnyRITHvu8D+L9gf/H8CX7/uYeLQcBeq9Xe2Oeu6555ny/Tx1xVVaytraFarcKyLFiWBdd14XkefN8/d58HczfOEwT2QVivadobsxfuk1QqJS4CBvsrOLdc1xWDb4P3+V3fBa+fj8Fn0oe+v5FIRFx0Di4gJJNJMeybiIiIPj38BiciIqJ7LQgLP8eBrPdBEAB/6ByB4Di4qFe3JEkinLvqUMjzXEdQ9zG3d1WLg0PD4TBbRZ0jOMY+tKL6Y20vEokgk8kgGo2KIdXhcPhatv0puo7PlZsQzN8ILpbd54ssREREnwsG9kRERERERPdcUIEf3BUS3F1Cd5ssy4hEIpBl+VKV/kRERHT3MbAnIiIiIiK65xj2fpqCdlSsqiciIvp8sGyCiIiIiIiIiIiIiOgOYGBPRERERERERERERHQHsCUOERERERHRPeJ5HlzXheu6sCxL/LJtG7ZtI51OI5VKsc3KHRPsN8/zxP5a3H/JZBLpdJpD1ImIiD5xDOyJiIiIiIjuEdd1MZ/PYRgGhsMhRqMRhsMhhsMhJpMJHj9+jEePHjGwv2M8z4NpmjBN88w+C36/srKCx48fM7AnIiL6xDGwJyIiIiIiukccx4FhGBiPx2i1Wmg2mzg9PcXp6Sna7TZCoRCWlpaQz+dve6m0IAjsp9MpOp3Omf12enqKr776CuVyGcvLy7e9VCIiIvoA7GFPRERERER0j9i2jeFwiGazCdd1kclkkEqlYFkWms0mRqMRHMe57WXSa1zXxXg8RrPZhGEYSCaTyOfz8H0f7XYbg8EApmne9jKJiIjoA7HCnoiIiIiI6B6xLEsE9plMBtlsFpPJBJZlodFoMLC/o1zXxWQyQbPZRCwWQzqdhiRJ8DwPnU6HgT0REdFnghX2RERERERE94wkSZAkCYqiIBQKQVEUMczUcRz4vn/bS6QLSJIEWZYRCoUQDocB/HLXhOM48DzvlldHREREH4oV9kRERERERPdIJBJBOp1GtVqFLMuwbRumaUJRFKiqilgsBllmbdddoygKUqkUyuUyfN+H53mYzWaQJAnJZBKxWAyhEP+JT0RE9KnjtzkREREREdE9Eg6HkclkEAqFMJlMMJ1OzwT20WiUgf0dpCgKNE2DJEliv83ncwBAIpFALBaDoii3vEoiIiL6UPxbGBERERER0T0SCoUQj8ehqioMw8DR0RGazSZkWUa1WkU6nRatVujukGUZsVgMqqrCdV00m00cHh7CcRwUi0Vks1lEo9HbXiYRERF9IFbYExERERER3SOKooi2N/P5XAT2kiSJwJ6tVe4eWZYRjUYRCoXgOA6azSaOjo7geR4KhQIDeyIios8EK+yJiIiIiIjuEVmWEQ6HEYlEMJ/P0Wg00Ov1oCgKqtUqVFUF8MsgU9d1b3m1FAgGzUajUViWhXa7jUajAc/zUCwWkU6noSgKLMuC67ocHExERPSJYmBPRERERER0D/m+D13X0el0MB6PEY1GUalUEI/HYVkWZrMZbNu+7WXSOebzOXq9Hnq9HmRZRqlUQiqVgud50HUdpmkysCciIvpE8T5HIiIiIiKieyoI7G3bRiQSQbVaRSKRgG3b0HVd9E2nu8UwDPT7ffR6PUiShFKpBE3T4HkeptMpJEliexwiIqJPFAN7IiIiIiKie8R1Xdi2jdlshul0islkglAohGQyiUqlAt/3RYU9w/q7w/M82LYN27bFfjMMA9FoVAT2rutC13VEo1FW2BMREX2i2BKHiIiIiIjoHnEcB/P5HJPJBJPJBNPpFI7jIJlMigp7tsS5ezzPg2ma0HVd7DfDMBCLxVAul0WFva7rsCyLgT0REdEnioE9ERERERHRPeP7PjzPg+d5cF0XnueJgFeSJMiyDEVRIEnSLa+UAsE+C/bX6/sNAPcbERHRZ4AtcYiIiIiIiO4RRVEQi8Xgui5UVYWmaZAkCb1eD69evUIikUAqlUIymUQikbjt5dL/T5ZlRKNRyLIs9lskEsF4PMbOzg5KpRISiQQSiQRUVYUssz6PiIjoU8RvcCIiIiIionskCOw1TYOmaVBV9Uxgr+s6UqkUCoUCA/s7JBgAHIT1qqoiEolgNBphd3cXg8FAtMdhYE9ERPTpYoU9ERERERHRPSJJEiRJQigUQr1ex+9//3sYhoF6vY7l5WXkcjnEYjEoinLbS6UFQZsbSZKwtLSEv//7v8fq6irW19extrYmLrBwvxEREX3aGNgTERERERHdQ7IsY3NzE+l0Gq7rior7RCKBaDR628ujt1hZWcE//uM/Qtd1sd/YwoiIiOjzwMCeiIiIiIjuHVmWkclksLq6imq1imQyedtLunGyLKNaraJard72UuiKCoUCCoXCtW0vkUigUqlgPB4jm82ySp+IiOgWMbAnIiIiIqJ7Jx6P4+uvv4Ysy8jlclhfX7/tJRHdmrW1NfzzP/8zvv32W3z11VeIx+O3vSQiIqJ7S/J937/tRRAREREREd0kz/NgmiZM0xTDPCORyG0vi+hWWJYF0zThOA5isRii0SiH1hIREd0SBvZERERERERERERERHcAL5kTEREREREREREREd0BDOyJiIiIiIiIiIiIiO6A/w/yWERApTRAsQAAAABJRU5ErkJggg==) - -Выбор меры расстояния и весов для классифицирующих свойств – -очень важный этап, так как от этих процедур зависят состав и количество -формируемых классов, а также степень сходства объектов внутри классов. - -**1.2.3 Пример** - -Задача: -Напишите функции в Python, которая вычисляет Евклидово расстояние -между двумя массивами NumPy. - -````python -import numpy as np -def euclidean_distance(v1,v2): - return sum((x-y)** 2 for x,y,in zip(v1,v2))**0.5 - -x=np.array([0,0,0]) -y=np.array([3,3,3]) -print(euclidean_distance(x,y)) -```` - -Вывод: - -````code -5.196152422706632 -```` - -**1.2.4 Пример** - -Задача: -Напишите 4 функции в Python, которые рассчитывают квадрат Евклидова -расстояния, взвешенное евклидово расстояние, Хеммингово расстояние и -расстояние Чебышева между двумя массивами NumPy. - -````python -import numpy as np - -def sqr_euclidean_distance(v1,v2): - return sum((x-y)**2 for x, y in zip(v1,v2)) - -def weighted_euclidean_distance(v1,v2,w): - return sum((x-y) **2 *s for x,y,s in zip(v1,v2,w))**0.5 - -def manhattan_distance(v1,v2): - return sum(abs(x-y) for (x,y) in zip(v1,v2)) - -def chebyshev_distnce(v1,v2): - return max(abs(x-y) for (x,y) in zip(v1,v2)) - -x= np.array([0,0,0]) -y= np.array([3,3,3]) -w= np.array([0,0,1]) -print(sqr_euclidean_distance(x,y)) -print(weighted_euclidean_distance(x,y,w)) -print(manhattan_distance(x,y)) -print(chebyshev_distnce(x,y)) -```` - -Вывод: - -````code -27 -3.0 -9 -3 -```` - -**1.2.5 Пример** - -Задача: -В Python есть встроенные функции для вычисления расстояний между -векторами. Мы будем использовать NumPy для расчета расстояния для -двух точек, поскольку ранее рассмотренные структуры данных могут быть -переведены в Numpy массив с помошью специальных функциий. -Например, для серий это будет выглядеть следующим образом: -seriesName.to_numpy(). - -Для удобства визуализации и анализа результатов в дальнейших расчетах -будм использовать 2 точки в 3-х мерном пространстве: - -````python -import matplotlib.pyplot as plt -from mpl_toolkits.mplot3d import Axes3D - -fig = plt.figure() -ax=fig.add_subplot(111,projection = '3d') - -ax.scatter(0,0,0) -ax.scatter(3,3,3) -plt.show() -```` - -**1.2.6 Пример** - -Задача: -Рассчитать расстояния между двумя точками с использованием методов -определения расстояний, представленных выше. - -````python -import numpy as np -x= np.array([0,0,0]) -y= np.array([3,3,3]) -w= np.array([0,0,1]) -#Расстояние Евклида -print(np.linalg.norm(x-y)) -#Квадрат Евклидова расстояния -print(np.linalg.norm(x-y) ** 2) -#Раcстояние Чебышева -print(np.linalg.norm(x-y, ord = np.inf)) -#Расстояние Хемминга -print(np.linalg.norm(x-y, ord = 1)) -```` - -Вывод: - -````code -5.196152422706632 -27.0 -3.0 -9.0 -```` - -**1.3.1 Задание** - -Задача: -Задайте 4 точки в трехмерном пространстве, рассчитайте между ними -расстояния по описанным в примере выше метрикам. Отобразите точки -в трехмерном пространстве. - -````python -import matplotlib.pyplot as plt -from mpl_toolkits.mplot3d import Axes3D -import numpy as np - -fig = plt.figure() -ax = fig.add_subplot(111, projection = '3d') - -t1 = np.array([1,1,1]) -t2 = np.array([5,3,1]) -t3 = np.array([4,5,6]) -t4 = np.array([2,2,8]) - -ax.scatter(t1[0], t1[1], t1[2]) -ax.scatter(t2[0], t2[1], t2[2]) -ax.scatter(t3[0], t3[1], t3[2]) -ax.scatter(t4[0], t4[1], t4[2]) - -plt.show() - -print(f'Вектор AB = {np.linalg.norm(t1 - t2)}') -print(f'Вектор BC = {np.linalg.norm(t2 - t3)}') -print(f'Вектор CD = {np.linalg.norm(t3 - t4)}') -print(f'Вектор DA = {np.linalg.norm(t4 - t1)}') -```` - -**1.3.2 Задание** - -Задача: -Создать 5x5 матрицу со значениями в строках от 0 до 4. Для создания -необходимо использовать функцию arange. - -````python -import numpy as np -Z=np.zeros((5,5)) -Z+=np.arange(5) -print(Z) -```` - -Вывод: - -````code -[[0. 1. 2. 3. 4.] - [0. 1. 2. 3. 4.] - [0. 1. 2. 3. 4.] - [0. 1. 2. 3. 4.] - [0. 1. 2. 3. 4.]] -```` - -**2.1. Теоретический материал – Задачи классификации** - -Решение задачи классификации методом k ближайших соседей -Метод k-ближайших соседей используется для решения задачи -классификации. Он относит объекты к классу, которому принадлежит -большинство из k его ближайших соседей в многомерном пространстве -признаков. Это один из простейших алгоритмов обучения -классификационных моделей. Число k – это количество соседних объектов -в пространстве признаков, которые сравниваются с классифицируемым -объектом. Иными словами, если k=10, то каждый объект сравнивается с 10- -ю соседями. В процессе обучения алгоритм просто запоминает все векторы -признаков и соответствующие им метки классов. При работе с реальными -данными, т.е. наблюдениями, метки класса которых неизвестны, -вычисляется расстояние между вектором нового наблюдения и ранее -запомненными. Затем выбирается k ближайших к нему векторов, и новый -объект относится к классу, которому принадлежит большинство из них. -Приведем алгоритм метода. - 1. Выберите значение K соседей (скажем, k = 5) - 2. Найдите ближайшую точку данных K (5) для нашей новой точки -данных на основе евклидова расстояния (которое мы обсудим позже) - 3. Среди этих K точек данных подсчитайте точки данных в каждой -категории. - 4. Назначьте новую точку данных категории, которая имеет наибольшее -количество соседей с новой точкой данных - -![image.png](data:image/png;base64,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) - -Модуль библиотеки sklearn - sklearn.neighbors предоставляет -функциональные возможности для контролируемого обучения на основе -соседей. Обучение на основе контролируемых соседей бывает двух видов: -классификация данных с дискретными метками и регрессия для данных с -непрерывными метками. В данном разделе рассмотрим несколько примеров -с использованием названного метода. - -**2.2.1 Пример** - -Задача: -В примере показано создание 2d-массива со значениями x и y. Список -target содержит возможные выходные классы (часто называемые -метками). Далее происходит обучене классификатора k-ближайших -соседей по исходным данным. Далее производится прогноз -принадлежности к классам для двух точек данных - -````python -from sklearn.neighbors import KNeighborsClassifier -import numpy as np - -#данные -X = np.array([[-1,-1],[-2,-1],[-3,-2],[1,1],[2,1],[3,2]]) -target = [0,0,0,1,1,1] - -#обучаем модель k-ближайших соседей к данным -K=3 -model = KNeighborsClassifier(n_neighbors = K) -model.fit(X,target) -print(model) - -#делаем прогноз -print('(-2,-2) is class'), -print(model.predict([[-2,2]])) - -print('(91,3) is class') -print(model.predict([[1,3]])) -```` - -Вывод: - -````code -KNeighborsClassifier(n_neighbors=3) -(-2,-2) is class -[0] -91,3) is class -[1] -```` - -**2.2.2 Пример** - -Задача: -Далее приведем более наглядный пример. Будет построена граница -решения для каждого класса. В качестве данных будем использовать уже -знакомый нам и встроенный в библиотеку sklearn набор данных ирисов -Фишера. Этот набор данных стал уже классическим, и часто используется -в литературе для иллюстрации работы различных статистических -алгоритмов. Датасет содержит наблюдения за 150 разными цветками -ирисов, данные по каждому цветку расположены в строках. В стобцах -записаны длина и ширина чашелистика, длина и ширина лепестка, вид -ириса. - -````python -ьfrom sklearn.neighbors import KNeighborsClassifier -import seaborn as sns -iris = sns.load_dataset('iris') -iris -```` - -Вывод: - -````code - sepal_length sepal_width petal_length petal_width species -0 5.1 3.5 1.4 0.2 setosa -1 4.9 3.0 1.4 0.2 setosa -2 4.7 3.2 1.3 0.2 setosa -3 4.6 3.1 1.5 0.2 setosa -4 5.0 3.6 1.4 0.2 setosa -.. ... ... ... ... ... -145 6.7 3.0 5.2 2.3 virginica -146 6.3 2.5 5.0 1.9 virginica -147 6.5 3.0 5.2 2.0 virginica -148 6.2 3.4 5.4 2.3 virginica -149 5.9 3.0 5.1 1.8 virginica - -[150 rows x 5 columns] -```` - -**2.2.3 Пример** - -Задача: -Покажем на графиках зависимости ширины лепестка от его длины, а также -аналогичный график зависимость для длины и ширины чашелистика. -Разные виды цветков отмечены разными цветами. - -````python -import matplotlib.pyplot as plt -import seaborn as sns - -plt.figure(figsize=(16, 7)) - -plt.subplot(121) -sns.scatterplot( - data=iris, - x = 'petal_width', y='petal_length', - hue='species', - s=70 -) - -plt.xlabel('Длинна лепестка, см') -plt.ylabel('Ширина лепестка, см') -plt.legend() -plt.grid() - -plt.subplot (122) -sns.scatterplot(data=iris, x='sepal_width', y='sepal_length', hue='species', s=70) -plt.xlabel('Длинна чашелепестка, см') -plt.ylabel('Ширина чашелепестка, см') -plt.legend() -plt.grid(); -```` - -**2.2.4 Пример** - -*Задача:* - -Из графиков видно, что в первом случае классы визуально хорошо -отделимы друг от друга, хотя два классе имеют небольшое пересечение. -Во втором случае разделить два класса между собой уже намного труднее. -Далее разделим датасет на обучающую и тестовую выборки в -соотношении 80:20. Обучающая выборка (training sample) — выборка, по -которой производится настройка (оптимизация параметров) модели -зависимости. Тестовая (или контрольная) выборка (test sample) — -выборка, по которой оценивается качество построенной модели. - -````python -import matplotlib.pyplot as plt -import seaborn as sns -import numpy as np -from sklearn.model_selection import train_test_split -from sklearn.neighbors import KNeighborsClassifier -from sklearn.metrics import accuracy_score - -iris = sns.load_dataset('iris') -X_train, X_test, y_train, y_test = train_test_split( - iris.iloc[:,:-1], - iris.iloc[:, -1], - test_size = 0.20 -) - -X_train.shape, X_test.shape, y_train.shape, y_test.shape -X_train.head() -y_train.head() -```` - -Вывод: - -````code -70 versicolor -104 virginica -134 virginica -4 setosa -69 versicolor -Name: species, dtype: object -```` - -**2.3.1 Задание** - -*Задача:* - -Для предыдущего примера поэкспериментируйте с параметрами -классификатора: -1. Установите другое количество ближайших соседей (k = 1, 5, 10). -2. Установите размер тестовой выборки 15% от всего датасета. -3. Постройте графики и оцените качество моделей, проанализируйте -результаты. - -````python -import matplotlib.pyplot as plt -import seaborn as sns -import numpy as np -from sklearn.model_selection import train_test_split -from sklearn.neighbors import KNeighborsClassifier -from sklearn.metrics import accuracy_score - -iris = sns.load_dataset('iris') -X_train, X_test, y_train, y_test = train_test_split( - iris.iloc[:,:-1], - iris.iloc[:, -1], - test_size = 0.15 -) - -X_train.head() -y_train.head() - -model = KNeighborsClassifier(n_neighbors=1) -model.fit(X_train, y_train) - -y_pred = model.predict(X_test) -y_pred - -plt.figure(figsize=(10,7)) -sns.scatterplot(x = 'petal_width', y = 'petal_length', data=iris, hue='species', s = 70) -plt.xlabel('Длинна лепестка, см') -plt.ylabel('Ширина лепестка, см') -plt.legend(loc=2) -plt.grid - -for i in range(len(y_test)): - if np.array(y_test)[i] != y_pred[i]: - plt.scatter(X_test.iloc[i, 3], X_test.iloc[i, 2], color='r', s=150) - -print(f'accuracy: {accuracy_score(y_test, y_pred) : .3}') -```` - -**3.1. Теоретический материал – Работа с категориальными -данными** - -**Работа с категориальными данными** - - Часто бывает полезно разбивать объекты на категории не по -количеству, а по качеству. Эта качественная информация нередко -представляется как принадлежность наблюдения к отдельной категории, -такой как пол, цвета или марка автомобиля. Однако не все категориальные -данные одинаковые. Наборы категорий без внутреннего упорядочения -называются номинальными. Примеры номинальных категорий включают: - -> синий, красный, зеленый; - -> мужчина, женщина; - -> банан, клубника, яблоко. - -С другой стороны, когда набор категорий имеет некое естественное -упорядочение, мы называем его порядковым. Например: - -> низкий, средний, высокий; - -> молодые, старые; - -> согласен, нейтрален, не согласен. - - Более того, категориальная информация часто представлена в данных -в виде вектора или столбца символьных значений (например, "Москва", -"Санкт-Петербург", "Казань"). Проблема в том, что большинство машиннообучающихся алгоритмов требуют ввода числовых значений. - - Алгоритм k ближайших соседей предоставляет простой пример. -Одним из шагов в алгоритме является вычисление расстояний между -наблюдениями — часто с использованием евклидова расстояния. Однако -вычисление расстояния, очевидно, невозможно, если значение х, является -строковым типом (например, "Москва"). Для того чтобы его можно было -ввести в уравнение евклидова расстояния, нам нужно преобразовать это -строковое значение в числовой формат. Наша цель — сделать -преобразование, которое правильно передает информацию в категориях -(упорядоченность, относительные интервалы между категориями и т. д.). -Существует большое количество методов кодирования категориальных -данных, среди которых нет универсальных. Выбирая метод, стоит -отталкиваться от ваших данных, мощности множества категорий и -алгоритма машинного обучения. - - Далее рассмотрим некоторые методы таких преобразований. - -**3.2.1. Пример** - -*Задача:* - -Дан порядковый категориальный признак (например, высокий, средний, -низкий). Выполнить его кодировку. -Для решения задачи можно использовать метод replace фрейма данных -pandas для преобразования строковых меток в числовые эквиваленты - -````python -#Загрузить библиотеку -import pandas as pd - -#Создать признаки -dataframe = pd.DataFrame({"оценка": ["низкая","низкая","средняя","средняя","высокая"]}) -#Создать словарь преобразования шкалы -scale_mapper = {"низкая":1,"средняя":2,"высокая":3} - -#заменить значения признаков значениями словаря -dataframe["оценка"].replace(scale_mapper) -```` - -Вывод: - -````code -0 1 -1 1 -2 2 -3 2 -4 3 -Name: оценка, dtype: int64 -```` - -**3.2.2. Пример** - -*Задача:* - -Дан словарь, и требуется его конвертировать в матрицу признаков. -Для решения задачи можно задействовать класс-векторизатор словаря -Dictvectorizer: - -````python -#импортировать блок схему -from sklearn.feature_extraction import DictVectorizer -#Создать словарь -data_dict = [{"карасный":2,"синий":2}, - {"карасный":4,"синий":3}, - {"карасный":1,"синий":2}, - {"карасный":2,"синий":2}] -#Создать векторизатор словаря -dictvectorizer = DictVectorizer(sparse = False) -#Конвертировать словарь в матрицу признаков -features = dictvectorizer.fit_transform(data_dict) -features -```` - -Вывод: - -````code -array([[2., 2.], - [4., 3.], - [1., 2.], - [2., 2.]]) -```` - -**3.3.2 Задание** - -*Задача:* - -Определите набор признаков человека, по аналогии из РТ 1, – например, -цвет глаз и конвертируйте его в матрицу признаков. - -````python -from sklearn.feature_extraction import DictVectorizer - -data = [{"глаз":2, "рука":2}, - {"голова":1, "рука":2}, - {"голова":1, "нога":2}, - {"глаз":1, "нога":2}, - {"нога":1, "рука":3}] - -dictvectorizer = DictVectorizer(sparse = False) -features = dictvectorizer.fit_transform(data) -features -```` - -Вывод: - -````code -array([[2., 0., 0., 2.], - [0., 1., 0., 2.], - [0., 1., 2., 0.], - [1., 0., 2., 0.], - [0., 0., 1., 3.]]) -```` diff --git a/content/ai/notebook-04-regression.mdx b/content/ai/notebook-04-regression.mdx deleted file mode 100644 index d7b6316..0000000 --- a/content/ai/notebook-04-regression.mdx +++ /dev/null @@ -1,793 +0,0 @@ ---- -title: "AI Notebook 4 — Регрессия" -sidebar_position: 5 -description: "Линейные модели, аппроксимация и визуализация регрессионных зависимостей." -slug: "/ai/notebook-04-regression" ---- - -Дата - 22.04.2023 - -**1.1. Теоретический материал – Линейные регрессионные модели -Линейная регрессия** - -Линейная регрессия (Linear regression) – модель зависимости переменной -x от одной или нескольких других переменных (факторов, регрессоров, -независимых переменных) с линейной функцией зависимости. Линейная -регрессия относится к задаче определения «линии наилучшего соответствия» -через набор точек данных и стала простым предшественником нелинейных -методов, которые используют для обучения нейронных сетей. - -Цель линейной регрессии — поиск линии, которая наилучшим образом -соответствует этим точкам. Напомним, что общее уравнение для прямой есть -𝑓 (𝑥) = 𝑏 + 𝑚 ⋅ 𝑥 +, где 𝑚 – наклон линии, а 𝑏 – его сдвиг. - -**Функция потерь — метод наименьших квадратов** - -Функция потерь – это мера количества ошибок, которые наша линейная -регрессия делает на наборе данных. Хотя есть разные функции потерь, все они -вычисляют расстояние между предсказанным значением 𝑦(х) и его -фактическим значением. -Одна очень распространенная функция потерь называется средней -квадратичной ошибкой MSE. Чтобы вычислить MSE, мы просто берем все -значения ошибок, считаем их квадраты длин и усредняем. - -**Задача экраполяции** - -Допустим у нас есть много экспериментальных точек. Необходимо через -них провести кривую, которая как можно ближе проходила к этим точкам. При -этом необходимо минимизировать среднюю квадратичную ошибку (MSE). -Для решения данной задачи в Python есть множество библиотек. Самыми -распостраненными выступают: - -**numpy - numpy.linalg.lstsq** -**scipy - scipy.linalg** (содержит все функции из numpy.linalg плюс часть -новых функций, которых нет в numpy.linalg). - -````python -import numpy as np -x = np.array([0,1,2,3]) -y = ([-1,0.2,0.9,2.1]) - -#перепишем линейное уравнение y = mx + c как y =Ap, где A = [[ x 1 ]] и -#p = [[m],[c]] -#Построим A по x: - -A = np.vstack([x,np.ones(len(x))]).T -A - -#Используем метод lstsq для решения кго относительно вектора p. -m, c = np.linalg.lstsq(A, y, rcond = None)[0] -print(m,c) - -#Построим график полученной прямой и укажем на нем точки. -import matplotlib.pyplot as plt -plt.plot(x,y,'o',label = 'Исходные данные', markersize=10) -plt.plot(x,m*x+c,"r",label = 'Линейгая экстраполяция') -plt.legend() -plt.show() -```` - -**1.1.2 Пример** - -Задача: -Пусть 𝑥, 𝑦 – вектора длиной 𝑛 > 3 (точек > 3). Задача заключается в -построении эстраполяционного полинома второго порядка (параболы). Таким -образом, необходимо найти такие коэффициенты поринома 𝑎, 𝑏, 𝑐 по методу -наименьших квадратов. Данные мтогут быть получены в результате -измерений. Покажем пример генерации данных случайным образом и -загрузки их из файла. - -````python -import numpy as np -import matplotlib.pyplot as plt -from numpy import * -from numpy.random import * -#генерируем случайные x и y -delta = 1.0 -x = linspace(-5,5,11) -y = x**2+delta*(rand(11)-0.5) -x += delta*(rand(11)-0.5) - -#записываем данные в файл -x.tofile('x_data.txt', '\n') -y.tofile('y_data.txt', '\n') - -# читаем данные из файлов -x = fromfile('x_data.txt', float, sep='\n') -y = fromfile('y_data.txt', float, sep='\n') - -print(x) -print(y) - -# Нахождение коэффициентов функции вида y = ax^2 + bx + c методом наименьших квадратов -# задаем вектор m = [x**2, x, E] -m = vstack((x ** 2, x, ones(11))).T -# находим коэффициенты при составляющих вектора m -s = np.linalg.lstsq(m, y, rcond=None)[0] - -# на отрезке [-5,5] -x_prec = linspace(-5, 5, 101) -# рисуем точки -plt.plot(x, y, 'D') -# рисуем кривую вида y = ax^2 + bx + c, подставляя из решения коэффициенты s[0], s[1], s[2] -plt.plot(x_prec, s[0] * x_prec**2 + s[1] * x_prec+s[2], '-', lw=2) -plt.grid() -plt.savefig('парабола.png') -```` - -**1.1.3 Пример** - -По данным предыдущего примера постройте эстраполяционного полинома -третьего порядка - -````python -#Решение -# Нахождение коэффициентов функции вида y = ax^3+bx^2+cx+d методом наименьших квадратов -# задаем вектор m = [x**3,x,E] -m = vstack((x**3,x**2,x,ones(11))).T -# находим коэффициенты при составляющих вектора m -s = np.linalg.lstsq(m,y,rcond=None)[0] - -# на отрезке [-5, 5] -x_prec = linspace(-5,5,101) -# рисуем точки -plt.plot(x, y, 'D') -# рисуем кривую вида y = ax^3 + bx^2 + cx + d, подставляя коэффициенты s[0], s[1], s[2], s[3] -plt.plot(x_prec, s[0] * x_prec**3 + s[1] * x_prec**2 + s[2] * x_prec + s[3], '-', lw=3) -plt.grid() -plt.savefig('полином 3-й степени.png') -```` - -**Задание:** - -Представьте собственные данные и постройте эктраполяцию полиномами -первой, второй и третьей степени. - -````python -x=array([0,7,12,15]) -y=array([3,6,9,12]) -A=vstack((x,ones(len(x)))).T -m,c = np.linalg.lstsq(A,y,rcond=None)[0] -plt.plot(x,y,'o',markersize=10) -plt.plot(x,m*x+c,'r') -plt.legend() -plt.show() -delta = 1.0 -x= linspace(-10,10,10) -y= x**2+delta*(rand(10)) -x+= delta*(rand(10)) -m= vstack((x ** 2, x, ones(10))).T -s= linalg.lstsq(m, y, rcond=None)[0] -x_prec=linspace(-10,10,100) -plt.plot(x,y,'D') -plt.plot(x_prec,s[0]*x_prec**2+s[1]*x_prec+s[2],'-',lw=2) -plt.grid() -plt.savefig('парабола.png') -plt.show() -m=vstack((x ** 3, x ** 2, x, ones(10))).T -s=linalg.lstsq(m, y, rcond=None)[0] -x_prec=linspace(-10,10,100) -plt.plot(x,y,'D') -plt.plot(x_prec,s[0]*x_prec**3+s[1]*x_prec**2+s[2]*x_prec+s[3],'-',lw=3) -plt.grid() -plt.savefig('полином 3-й степени.png') -plt.show() -```` - -**1.1.4 Пример** - -Задача: -Необходимо проверить гипотезу, что наши точечно заданная функция ложится -на кривую вида 𝑓(𝑥, 𝑏) = 𝑏0 + 𝑏1*𝑒𝑥𝑝(−𝑏^2*𝑥^2) - -````python -#Добавим шума в данные, сделанные по функции f(x, b) с коэффициентами b = (0.25, 0.75, 0.5) -beta=(0.25,0.75,0.5) -def f(x,b0,b1,b2): - return b0+b1*exp(-b2* x**2) -# зададим массив точек xi -xdata=linspace(0,5,50) -# создаем теоретически правильные значения точек yi (без шума) -y=f(xdata,*beta) -# зашумляем эти данные -ydata=y+0.05*randn(len(xdata)) - -#Используем функцию для получения решения в виде коэффициентов функции f(x) для указанных xdata и ydata -from scipy.optimize import curve_fit -beta_opt,beta_cov = curve_fit(f, xdata, ydata) -beta_opt - -#Вычислим линейное отклонение -lin_dev=sum(beta_cov[0]) -print(lin_dev) - -#Вычислим квадратичное отклонение -residuals = ydata-f(xdata,*beta_opt) -fres = sum(residuals**2) -print(fres) - -fig, ax = plt.subplots() -ax.scatter(xdata,ydata) -ax.plot(xdata, y, 'r', lw=2) -ax.plot(xdata,f(xdata,*beta_opt),'b',lw=2) -ax.set_xlim(0, 5) -ax.set_xlabel(r"$x$",fontsize=18) -ax.set_ylabel(r"$f(x, \beta)$",fontsize=18) -plt.show() - -print(xdata) -print(ydata) -```` - -**1.1.5 Пример** - -Задача: Необходимо проверить гипотезу, что наши точечно заданная функция ложится на кривые вида: - -1) 𝑓(𝑥, 𝑏) = 𝑏0 + 𝑏1𝑥 - -2) 𝑓(𝑥, 𝑏) = 𝑏0 + 𝑏1𝑥 + 𝑏2𝑥2 - -3) 𝑓(𝑥, 𝑏) = 𝑏0 + 𝑏1𝑙𝑛(𝑥) - -4) 𝑓(𝑥, 𝑏) = 𝑏0 𝑥𝑏 - -````python -#решение -#1 -#Добавим шума в данные, сделанные по функции f(x,b) c коэффицентами beta=(0.25,0.75) -beta=(0.25,0.75) -def f(x,b0,b1): - return b0+b1*x -#зададим массив точек xi -xdata = linspace(0, 5, 50) -#cоздаем теоретически правильные значения точек yi(без шума) -y = f(xdata, *beta) -#зашумляем эти данные -ydata = y + 0.05 * randn(len(xdata)) -beta_opt, beta_cov = curve_fit(f, xdata, ydata) -print(beta_opt) -#Вычисляемлинейное отклонение -lin_dev = sum(beta_cov[0]) -print(lin_dev) -#Вычисляем квадратичное отклонение -residuals = ydata - f(xdata, *beta_opt) -fres = sum(residuals**2) -print(fres) - -fig, ax = plt.subplots() -ax.scatter(xdata, ydata) -ax.plot(xdata, y, 'r', lw=2) -ax.plot(xdata, f(xdata, *beta_opt), 'b', lw=2) -ax.set_xlim(0, 5) -ax.set_xlabel(r"$x$", fontsize=18) -ax.set_ylabel(r"$f(x, \beta)$", fontsize=18) -plt.show() - -#решение -#2 -#Добавим шума в данные, сделанные по функции f(x,b) с коэффицентами b = (0.25б 0.75,0.5) -beta = (0.25, 0.75, 0.5) -def f(x, b0, b1, b2): - return b0 + b1 * x + b2 * x**2 -#зададим массив точек xi -xdata = linspace(0, 5, 50) -#создаем теоретически правильные значения точек yi(без шума) -y = f(xdata, *beta) -#зашумляем эти данные -ydata = y + 0.05 * randn(len(xdata)) -beta_opt, beta_cov = curve_fit(f, xdata, ydata) -print(beta_opt) -#Вычислим линейное отклонение -lin_dev = sum(beta_cov[0]) -print(lin_dev) - -#вычислить квадратичное отклонение -residuals = ydata - f(xdata, *beta_opt) -fres = sum(residuals**2) -print(fres) - -fig, ax = plt.subplots() -ax.scatter(xdata, ydata) -ax.plot(xdata, y, 'r', lw=2) -ax.plot(xdata, f(xdata, *beta_opt), 'b', lw=2) -ax.set_xlim(0, 5) -ax.set_xlabel(r"$x$", fontsize=18) -ax.set_ylabel(r"$f(x, \beta)$", fontsize=18) -plt.show() - -#решение -#3 -#Добавим шума в данные, сделанные по функции f(x,b) с коэффицентами b = (1,2) -beta = (1, 2) -def f(x, b0, b1): - return b0 + b1 * log(x) -#заданим массив точек xi -xdata = linspace(1, 5, 50) -#созадем теоретически правильные значения точек yi(без шума) -y = f(xdata, *beta) -#зашумляем эти данные -ydata = y + 0.05 * randn(len(xdata)) -beta_opt, beta_cov = curve_fit(f, xdata, ydata) -print(beta_opt) -#Вычислим линейное отклонение -lin_dev = sum(beta_cov[0]) -print(lin_dev) - -#Вычислим квадратичное отклонение -residuals = ydata - f(xdata, *beta_opt) -fres = sum(residuals**2) -print(fres) - -fig, ax = plt.subplots() -ax.scatter(xdata, ydata) -ax.plot(xdata, y, 'r', lw=2) -ax.plot(xdata, f(xdata, *beta_opt), 'b', lw=2) -ax.set_xlim(0, 5) -ax.set_xlabel(r"$x$", fontsize=18) -ax.set_ylabel(r"$f(x, \beta)$", fontsize=18) -plt.show() - -#решение -#4 -#Добавим шума в данные, сделанные по функции f(x,b) с коэффицентами b = (1,2) -beta = (1, 2) -def f(x, b0, b1): - return b0 * x ** b1 -#заданим массив точек xi -xdata = linspace(1, 5, 50) -#созадем теоретически правильные значения точек yi(без шума) -y = f(xdata, *beta) -#зашумляем эти данные -ydata = y + 0.05 * randn(len(xdata)) -beta_opt, beta_cov = curve_fit(f, xdata, ydata) -print(beta_opt) -#Вычислим линейное отклонение -lin_dev = sum(beta_cov[0]) -print(lin_dev) - -#Вычислим квадратичное отклонение -residuals = ydata - f(xdata, *beta_opt) -fres = sum(residuals**2) -print(fres) - -fig, ax = plt.subplots() -ax.scatter(xdata, ydata) -ax.plot(xdata, y, 'r', lw=2) -ax.plot(xdata, f(xdata, *beta_opt), 'b', lw=2) -ax.set_xlim(0, 5) -ax.set_xlabel(r"$x$", fontsize=18) -ax.set_ylabel(r"$f(x, \beta)$", fontsize=18) -plt.show() -```` - -**Задание:** - -Подставьте собственные данные и поэкспериментируйте с представленными -функциями. Проанализируйте динамику изменения данных. - -````python -beta = (8,88,888) -def f(x, b0, b1, b2): - return b0 + b1 * x + b2 * x**2 -#заданим массив точек xi -xdata = linspace(-7, 7, 100) -#созадем теоретически правильные значения точек yi(без шума) -y = f(xdata, *beta) -#зашумляем эти данные -ydata = y + 50 * randn(len(xdata)) -beta_opt, beta_cov = curve_fit(f, xdata, ydata) -print(beta_opt) -#Вычислим линейное отклонение -lin_dev = sum(beta_cov[0]) -print(lin_dev) - -#Вычислим квадратичное отклонение -residuals = ydata - f(xdata, *beta_opt) -fres = sum(residuals**2) -print(fres) - -fig, ax = plt.subplots() -ax.scatter(xdata, ydata) -ax.plot(xdata, y, 'r', lw=2) -ax.plot(xdata, f(xdata, *beta_opt), 'b', lw=2) -ax.set_xlim(0, 50) -ax.set_xlabel(r"$x$", fontsize=18) -ax.set_ylabel(r"$f(x, \beta)$", fontsize=18) -plt.show() -```` - -**1.2. Теоретический материал – Задачи регрессии** - -**Линейная регрессия**- это широко используемый метод статистического -анализа, который использует регрессионный анализ в математической -статистике для определения количественной взаимосвязи между двумя или -более переменными. Если регрессионный анализ включает две или более -независимых переменных, а связь между зависимой и независимой -переменными является линейной, тогда имееи дело с множественной линейной -регрессией. - -В этом разделе мы увидим, как библиотеку Scikit-Learn в Python для машинного -обучения можно использовать для реализации функций регрессии. Мы начнем -с простой линейной регрессии с участием двух переменных, а затем перейдем к -линейной регрессии с участием нескольких переменных. - -**1.2.1 Пример** - -Задача: -Построим простую линейную регрессию в Python с использованием -библиотеки scikit-learn - -````python -#Импортируем необходимые библиотеки -#используем pandas и numpy для обработки данных -#matpoltlib для визуализации и sklearn для обучения набора данных и импорта моделей -import pandas as pd -import numpy as np -import matplotlib.pyplot as plt -from pandas import DataFrame, Series -from sklearn.model_selection import train_test_split -from sklearn.linear_model import LinearRegression - -#создадим набор данных для описания взаимосвязи между временем обучения студентов и успеваймостью -my_dict = { - 'Учебное время': [0.5, 0.75, 1.0, 1.25, 1.5, 1.75, 2.0, 2.25, 2.5, 2.75, 3.0, 3.25, 3.5, 3.75, 4.0, 4.25, 4.5, 4.75, 5.0, 5.5], - 'Оценка': [10, 22, 13, 43, 20, 22, 33, 50, 62, 48, 55, 75, 62, 73, 81, 76, 64, 82, 90, 93] -} - -dataset = DataFrame(my_dict) -print(dataset.head(5)) - -#исследуем набор данных -print(dataset.shape) -print(dataset.describe()) - -#Рисуем диаграмму -plt.scatter(dataset['Учебное время'], dataset['Оценка'], color='b', label='Данные экзамена') -plt.xlabel('Часы') -plt.ylabel('Оценка') -plt.show() -```` - -После того как мы получили представление о данных, разделим информацию -на «атрибуты» и «метки». Атрибуты – это независимые переменные, а метки -– это зависимые переменные, значения которых должны быть предсказаны. В -нашем наборе всего два столбца и необходимо предсказать оценку в -зависимости от количества часов. Чтобы извлечь атрибуты и метки, -выполните следующий скрипт: - -````python -x = dataset.iloc[:, :-1].values -y = dataset.iloc[:, 1].values -print(x) -print(y) - -#Теперь когда у нас есть атрибуты и метки, необходимость разделить их на а обучающий и тестовый наборы. -#приведенный фрагмент 80 % данных на обучающий набор, а 20% данных - на набор тестов -x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=0) -#далее можно обучить алгоритм линейной регрессии -#необходимо импортировать класс LinelRegression, создать его экземпляр и вызвать метод fit() -regressor = LinearRegression() -regressor.fit(x_train, y_train) -#приведем полученные коэффиценты для линейной регрессии -print(regressor.intercept_) -print(regressor.coef_) -```` - -Вывод: - -````code -[[1.0000e+00 3.5710e+03 1.9760e+03 5.2500e-01] - [2.0000e+00 4.0920e+03 1.2500e+03 5.7200e-01] - [3.0000e+00 3.8650e+03 1.5860e+03 5.8000e-01] - [4.0000e+00 4.8700e+03 2.3510e+03 5.2900e-01] - [3.0000e+00 4.3990e+03 4.3100e+02 5.4400e-01] - [4.0000e+00 5.3420e+03 1.3330e+03 5.7100e-01] - [5.0000e+00 5.3190e+03 1.1868e+04 4.5100e-01] - [3.0000e+00 5.1260e+03 2.1380e+03 5.5300e-01] - [5.0000e+00 4.4470e+03 8.5770e+03 5.2900e-01] - [5.0000e+00 4.5120e+03 8.5070e+03 5.5200e-01] - [4.0000e+00 4.3910e+03 5.9390e+03 5.3000e-01] - [5.0000e+00 5.1260e+03 1.4186e+04 5.2500e-01] - [4.0000e+00 4.8170e+03 6.9300e+03 5.7400e-01] - [5.0000e+00 4.2070e+03 6.5800e+03 5.4500e-01] - [4.0000e+00 4.3320e+03 8.1590e+03 6.0800e-01] - [5.0000e+00 4.3180e+03 1.0340e+04 5.8600e-01] - [6.0000e+00 4.2060e+03 8.5080e+03 5.7200e-01] - [0.0000e+00 3.7180e+03 4.7250e+03 5.4000e-01] - [6.0000e+00 4.7160e+03 5.9150e+03 7.2400e-01] - [3.0000e+00 4.3410e+03 6.0100e+03 6.7700e-01] - [1.0000e+00 4.5930e+03 7.8340e+03 6.6300e-01] - [3.0000e+00 4.9830e+03 6.0200e+02 6.0200e-01] - [1.0000e+00 4.8970e+03 2.4490e+03 5.1100e-01]] -[3571. 4092. 3865. 4870. 4399. 5342. 5319. 5126. 4447. 4512. 4391. 5126. - 4817. 4207. 4332. 4318. 4206. 3718. 4716. 4341. 4593. 4983. 4897.] --9.094947017729282e-13 -[5.75398478e-13 1.00000000e+00 1.11022302e-16 3.44246345e-14] -```` - -Получившийся результат можно интерпретировать следующим образом: с -каждым затраченным часом на обучение результат экзамена повышается -приблизительно на 17 баллов. Далее можно построить прогнозы. Для этого мы -будем использовать наши тестовые данные и посмотрим, насколько точно наш -алгоритм предсказывает процентную оценку. Чтобы сделать прогноз на -тестовых данных необходимо выполнить следующий код: - -````python -y_pred = regressor.predict(x_test) -#сравним фактические значения с прогнозиремыми -df = DataFrame({'Actual': y_test, 'Predicted': y_pred}) -df - -#визуализируем результат сравнения -df.plot(kind='bar') -plt.grid(which='major', linestyle='-', linewidth='0.5', color='green') -plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black') -plt.show() -#построим линию регресии с тестовыми данными -plt.scatter(x_test, y_test, color='gray') -plt.plot(x_test, y_pred, color='red', linewidth=2) -plt.show() -```` - -**Задание:** - -Постройте модель линейной регрессии для произвольных данных из двух -столбцов. Для примера можно взять точечную зависимость заработной платы от -опыта работы: - -(https://raw.githubusercontent.com/AnnaShestova/salary-years-simple-linearregression/master/Salary_Data.csv). - -Найдите коэффициенты линии регрессии. Постройте прогноз. - -````python -url = r'https://raw.githubusercontent.com/AnnaShestova/salary-years-simple-linear-regression/master/Salary_Data.csv' -dataset = pd.read_csv(url) -print(dataset.head(5)) - -print(dataset.shape) -print(dataset.describe()) - -plt.scatter(dataset['YearsExperience'], dataset['Salary'], color='b', label='Salary data') -plt.xlabel('Experience') -plt.ylabel('Salary') -plt.show() - -x = dataset.iloc[:, :-1].values -y = dataset.iloc[:, 1].values -print(x) -print(y) - -x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=0) - -regressor = LinearRegression() -regressor.fit(x_train, y_train) - -print(regressor.intercept_) -print(regressor.coef_) - -y_pred = regressor.predict(x_test) -df = DataFrame({'Actual': y_test, 'Predicted': y_pred}) -df - -df.plot(kind='bar') -plt.grid(which='major', linestyle='-', linewidth='0.5', color='green') -plt.grid(which='minor', linestyle=':', linewidth='0.5', color='black') -plt.show() - -plt.scatter(x_test, y_test, color='blue') -plt.plot(x_test, y_pred, color='green', linewidth=2) -plt.show() -```` - -**1.3. Теоретический материал – Множественная регрессия** - -В предыдущем примере мы проиллюстрировали линейную регрессию -с двумя переменными. Однако, почти все реальные задачи имеют больше -параметров. Линейная регрессия с участием нескольких переменных -называется «множественной линейной регрессией» или многомерной -линейной регрессией. Шаги для выполнения множественной линейной -регрессии аналогичны шагам для простой . Разница заключается в оценке. -Вы можете использовать множественную регрессию, чтобы узнать, какой -фактор оказывает наибольшее влияние на прогнозируемый результат или -как различные переменные связаны друг с другом. - -**1.3.1 Пример** - -Задача: -Для решения задачи множественной регрессии можно задействовать уже -известный метод numpy.linalg.lstsq. - -````python -import numpy as np - -y = [1,2,3,4,3,4,5,3,5,5,4,5,4,5,4,5,6,0,6,3,1,3,1] -x = [[0,2,4,1,5,4,5,9,9,9,3,7,8,8,6,6,5,5,5,6,6,5,5], - [4,1,2,3,4,5,6,7,5,8,7,8,7,8,7,8,6,8,9,2,1,5,6], - [4,1,2,5,6,7,8,9,7,8,7,8,7,4,3,1,2,3,4,1,3,9,7]] - -x = np.transpose(x) # transpose to input vectors -x = np.c_[x, np.ones(x.shape[0])] # add bias term -linreg = np.linalg.lstsq(x, y, rcond=None)[0] -print(linreg) -```` - -Вывод: - -````code -[ 0.1338682 0.26840334 -0.02874936 1.5122571 ] -```` - -**1.3.2 Пример** - -Задача: -Для данных из предыдущей задачи построить модель множественной -линейной регрессии с использованием средств библиотеки sсikit-learn. - -````python -import pandas as pd -import numpy as np -import matplotlib.pyplot as plt -import seaborn as seabornInstance -from sklearn.model_selection import train_test_split -from sklearn.linear_model import LinearRegression -from sklearn import metrics - -y = [1,2,3,4,3,4,5,3,5,5,4,5,4,5,4,5,6,0,6,3,1,3,1] -x = [[0,2,4,1,5,4,5,9,9,9,3,7,8,8,6,6,5,5,5,6,6,5,5], - [4,1,2,3,4,5,6,7,5,8,7,8,7,8,7,8,6,8,9,2,1,5,6], - [4,1,2,5,6,7,8,9,7,8,7,8,7,4,3,1,2,3,4,1,3,9,7]] - -# формируем DataFrame из двух списков -new_y = np.array(y) -new_y = new_y.transpose() -df1 = pd.DataFrame(new_y) -new_x = np.array(x) -new_x = new_x.transpose() -df2 = pd.DataFrame(new_x) -df1 = df1.rename(columns={0: 'y'}, inplace=False) -df2 = df2.rename(columns={0: 'x1', 1: 'x2', 2: 'x3'}, inplace=False) - -frames = [df1, df2] -dataset = pd.concat([df1, df2], axis=1, join='inner') -print(dataset.head()) - -#изучим данные -print(dataset.shape) -print(dataset.describe()) - -#разделим данные на метки и атрибуты -x = dataset[['x1', 'x2', 'x3']] -y = dataset['y'] - -#раздлеим данные на обуччающую и тестовую выборки -x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=0) - -#для обучения алгоритма мы выполняем тот же код, что и раньше, используя метод fit() класса LinearRegression -regressor = LinearRegression() -regressor.fit(x_train, y_train) - -#выведем кожффициенты модели -coeff_df = pd.DataFrame(regressor.coef_, x.columns, columns=['Coefficient']) -coeff_df - -#Чтобы сделать прогнозы на тестовых данных, выполните следующий код -y_pred = regressor.predict(x_test) -df = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred}) -df - -#Последний шаг - оценить производительность алгоритма. Мы сделаем это, найдя значения для MSE -print('Mean Squared Error:', metrics.mean_squared_error(y_test, y_pred)) -```` - -Вывод: - -````code - y x1 x2 x3 -0 1 0 4 4 -1 2 2 1 1 -2 3 4 2 2 -3 4 1 3 5 -4 3 5 4 6 -(23, 4) - y x1 x2 x3 -count 23.000000 23.000000 23.000000 23.000000 -mean 3.565217 5.347826 5.521739 5.043478 -std 1.674029 2.404706 2.428422 2.704849 -min 0.000000 0.000000 1.000000 1.000000 -25% 3.000000 4.500000 4.000000 3.000000 -50% 4.000000 5.000000 6.000000 5.000000 -75% 5.000000 6.500000 7.500000 7.000000 -max 6.000000 9.000000 9.000000 9.000000 -Mean Squared Error: 1.3272699242343076 -```` - -**Задание** - -Постройте модель множественной линейной регрессии для произвольных -данных из нескольких столбцов. Для примера можно взять потребления -газа (в миллионах галлонов) в 48 штатах США или набор данных о -качестве красного вина (1) и (2) соответственно. Найдите коэффициенты -множественной регрессии. Постройте прогноз. -1. -https://raw.githubusercontent.com/likarajo/petrol_consumption/master/data/pe -trol_consumption.csv -2. https://raw.githubusercontent.com/aniruddhachoudhury/Red-WineQuality/master/winequality-red.csv - -````python -url = r'https://raw.githubusercontent.com/likarajo/petrol_consumption/master/data/petrol_consumption.csv' -dataset = pd.read_csv(url) -print(dataset.head(5)) - -y = list(dataset['Petrol_tax']) -x = [list(dataset['Average_income']), - list(dataset['Paved_Highways']), - list(dataset['Population_Driver_licence(%)']), - list(dataset['Petrol_Consumption'])] - -new_y = new_y.transpose() -df1 = pd.DataFrame(new_y) -new_x = np.array(x) -new_x = new_x.transpose() -df2 = pd.DataFrame(new_x) -df1 = df1.rename(columns={0: 'y'}, inplace=False) -df2 = df2.rename(columns={0: 'x1', 1: 'x2', 2: 'x3'}, inplace=False) - -frames = [df1, df2] -dataset = pd.concat([df1, df2], axis=1, join='inner') -print(dataset.head()) - -print(dataset.shape) -print(dataset.describe()) - -x = dataset[['x1', 'x2', 'x3']] -y = dataset['y'] - -x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=0) - -regressor = LinearRegression() -regressor.fit(x_train, y_train) - -coeff_df = pd.DataFrame(regressor.coef_, x.columns, columns=['Coefficient']) -coeff_df - -y_pred = regressor.predict(x_test) -df = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred}) -df - -print('Mean Squared Error:', metrics.mean_squared_error(y_test, y_pred)) -```` - -Вывод: - -````code - Petrol_tax Average_income Paved_Highways Population_Driver_licence(%) \ -0 9.0 3571 1976 0.525 -1 9.0 4092 1250 0.572 -2 9.0 3865 1586 0.580 -3 7.5 4870 2351 0.529 -4 8.0 4399 431 0.544 - - Petrol_Consumption -0 541 -1 524 -2 561 -3 414 -4 410 - y x1 x2 x3 3 -0 1 3571.0 1976.0 0.525 541.0 -1 2 4092.0 1250.0 0.572 524.0 -2 3 3865.0 1586.0 0.580 561.0 -3 4 4870.0 2351.0 0.529 414.0 -4 3 4399.0 431.0 0.544 410.0 -(23, 5) - y x1 x2 x3 3 -count 23.000000 23.000000 23.000000 23.000000 23.000000 -mean 3.565217 4529.913043 5573.652174 0.567957 540.869565 -std 1.674029 484.049764 3856.453123 0.058789 112.101539 -min 0.000000 3571.000000 431.000000 0.451000 344.000000 -25% 3.000000 4262.500000 2057.000000 0.529500 465.500000 -50% 4.000000 4447.000000 5939.000000 0.553000 525.000000 -75% 5.000000 4883.500000 8333.000000 0.583000 591.500000 -max 6.000000 5342.000000 14186.000000 0.724000 865.000000 -Mean Squared Error: 4.749488311367661 -```` diff --git a/content/ai/notebook-05-decision-trees.mdx b/content/ai/notebook-05-decision-trees.mdx deleted file mode 100644 index 09d15b2..0000000 --- a/content/ai/notebook-05-decision-trees.mdx +++ /dev/null @@ -1,1039 +0,0 @@ ---- -title: "AI Notebook 5 — Деревья решений" -sidebar_position: 6 -description: "Деревья решений и базовые техники интерпретации классификаторов." -slug: "/ai/notebook-05-decision-trees" ---- - -**Теоретический материал – Деревья принятия решений** - -Деревья решений являются одним из наиболее эффективных -инструментов интеллектуального анализа данных и предсказательной -аналитики, которые позволяют решать задачи классификации и регрессии. - -Перед тем как непосредственно перейти к решению задач с -использование данного инструмента рассмотрим общее понятие "дерево" в -информатике и способы задания деревьев в языке Python. - -Деревья принадлежат к числу основных структур данных, -используемых в программировании. Древовидная структура является -одним из способов представления иерархической структуры в графическом -виде. Такое название она получила потому, что граф выглядит как -перевернутое дерево. Корень дерева (корневой узел) находится на самом -верху, а листья (потомки) — внизу. - -Деревья широко применяются в компьютерных технологиях. -Примером является файловая система, представляющая собой -иерархическую структуру из файлов и каталогов. - -Схематично дерево и его основные элементы приведены на рисунке -ниже. - -![image.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABegAAAM2CAYAAACNImP4AAAgAElEQVR4nOzd55Nc153m+e8555rMLAMULOEIAiToRM8WjbrVahNtJnonVtsR+3Yj9u1u7N8zsW929uVEzJuN7Z5WTzttq1s9oxkZ2oYgkaABCO/KpLnmnLMv7r1ZWYWCkUQQVeDzYSSRleZWmlsI1HN/+RwTY4yIiIg8ZCEEYow452673Fr7kB6ViIiIiIhsJ93vDQAxRkIIJEmi3xlEZMdKHvYDEBGRryfvPcaYDf+47s53Ib33nhjj9B/bIYSH82BFRERERGRbmJ0zNcZgrVU4LyI7mgJ6ERF5KOq6xlqLMQZjzIbruiC+C+0VzIuIiIiICLDl7w8iIjuZUcWNiIg8TCGE6SR9jHHDP7i3ukxERERERL6+Zj95C83vE2maPsRHJCLym9EEvYiIPHSb/5F9JwrpRURERES+3mZ/b5j9xK1qbkRkp9LfXiIi8lCEEPDeTxd56v5hvfkf3Kq3EREREREREZFHlSboRURERERERERkR+g+VdvVZAKanheRHU0BvYiIPBTW2ul0/Gx1zWzffHdeHfQiIiIiItLZ/PuDiMhOpoBeRERERERERER2hNkazNnzzrmH+bBERH5tCuhFRGRHuJ9FZEVERERE5NF3p0/giojsRAroRURERERERERkRzDGTDvnu+l5ddCLyE6mv8FERERERERERERERB4CTdCLiMhDda+PpM4uGCsiIiIiIl9vMUbVX4rII0UBvYiIPBTe+w0fT+2oT1JERERERO7HVr9PiIjsNPpbTERERERERERERETkIVBALyIiIiIiIiIiIiLyECigFxERERERERERERF5CBTQi4iIiIiIiIiIiIg8BAroRUREREREREREREQeAgX0IiIiIiIiIiIiIiIPgQJ6EREREREREREREZGHQAG9iIiIiIiIiIiIiMhDoIBeREREREREREREROQhSB72AxAREREREfkyxAe0XfOAtisyK97lK9i8H858da8dXzuwiIjItqaAXkRERERERGTbuVPyrsRdRETkUaKAXkREREREdoQYt5gqNoZIBCIhNpGmwbSXQ/TdDcGYJtoM7Wasje19m8vj9KYGMMS4RRSqbFQekEBY/yJGIqHd5yPWGKxp9svbT9197mP31P4rIiKy7SigFxERERGRHasL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) - -На рисунке изображены родительские отношения (ребра, ветви -дерева) между узлами (вершинами) дерева. На верхнем уровне каждый -«родитель» указывает на своих «потомков». То есть в этой иерархической -структуре вершина всегда «знает» своих потомков. - -Для того чтобы более точно оперировать структурой Дерево, нужно -дать определение некоторым ключевым понятиям: - -− корневой узел — самый верхний узел дерева, он не имеет -предков; - -− лист, листовой или терминальный узел — конечный узел, то -есть не имеющий потомков; - -− внутренний узел — любой узел дерева, имеющий потомков, то -есть не лист. - -С корневого узла начинается выполнение большинства операций над -деревом. Чтобы получить доступ к любому элементу структуры, -необходимо, переходя по ветвям, перебирать элементы, начиная с головы -— корневого узла. Корневой узел — это своеобразный вход в дерево. -Большинство алгоритмов работы с деревом строятся на том, что каждый -узел дерева рассматриваются как корневой узел поддерева, «растущего» из -этого узла. Такой подход дает возможность зацикливать выполнение -операций при прохождении по элементам дерева. Но в связи с тем, что при -прохождении по дереву (в отличие от массива) неизвестно сколько шагов -будет в этом цикле, используется другой инструмент — рекурсивный вызов. - -Двоичное (бинарное) дерево — это древовидная структура данных, -где каждый узел имеет не более двух детей. Этих детей называют левым (Л) -и правым (П) потомком или «сыном». На рисунке выше дерево является -двоичным. - -**1.1 Основы объектно-ориентированного программирования в Python** - -В предыдущих разделах мы рассматривали в основном традиционное -программирование на Python, когда вся программа разбивается (или не -разбивается) на отдельные модули, содержащие функции. Такое -программирование соответствует парадигме структурного -программирования. Само структурное программирование оказалось -колоссальным шагом в построении программ. Однако еще большим шагом -является парадигма объектно-ориентированного программирования. В этом -подходе программа состоит из отдельных классов, которые объединяют в -себе как переменные, называемые полями класса, так и функции, -называемые методами класса. - -На самом деле мы уже сталкивались с классами, когда создавали -объекты для решения задач классификации и регрессии в Scikit-learn. В -данном разделе подробнее познакомимся с основами объектноориентированного программирования (ООП). - -Объектно-ориентированное программирование состоит из трех китов: - -− инкапсуляция; - -− наследование; - -− полиморфизм. - -Рассмотрим на примерах эти понятия. Первое - инкапсуляция - это -объединение в одном объекте данных и программного кода таким образом, -что для внешней работы внутренняя часть объекта может быть скрыта от -пользователя. Инкапсуляция может быть реализована не только с помощью -классов, но и с помощью модулей, но классы позволяют сделать -инкапсуляцию естественным путем. Создадим класс в Python. Для этого -необходимо определить класс (новый тип данных) и создать объект, -называемый экземпляром класса. Мы рекомендуем имена классов начинать -с заглавной буквы "T", подчеркивая тем самым, что речь идет о типе данных. - -Делается это так: - - class TAnimal: - name = "" - def __init__(self, name): - self.name = name - def say(self): - print(self.name) - -Теперь создадим экземпляр этого класса. Экземпляр класса -представляет собой переменную, с которой можно работать обычным -образом. - - Animal = TAnimal("Обезьяна") - Animal.say() - -Рассмотрим синтаксис Python при создании классов. Все начинается с ключевого слова class. Далее в блоке из отступов мы определяем переменные, которые будем называть полями и функции, которые называются методами. Методы определяются, как обычные функции и могут возвращать значения. Единственное отличие состоит в том, что у всех методов есть обязательный первый параметр, который по традиции всегда называем self в котором передается ссылка на экземпляр класса. Поэтому когда внутри класса метод хочет обратиться к своему полю, то необходимо использовать конструкцию self.name. Заметим, что при вызове методов мы первый параметр не задаем. - -Далее, у каждого класса есть метод, с именем __init__, который называется конструктором класса. Этот метод вызывается в момент создания экземпляра Animal = TAnimal("Обезьяна"). Конструктор может иметь любое количество параметров. Предположим, что теперь нам нужно сделать класс для описания конкретного животного - кошки. Для это мы используем наследование классов, когда можно определять новые классы, как наследники существующих. При этом новый класс будет иметь все поля и методы наследуемого класса. Вот как это делается: - - class TAnimal: - name = "" - def __init__(self, name): - self.name = name - def say(self): - print(self.name) - class TCat(TAnimal): - def may(self): - print("Мяу!") - Cat = TCat("Кошка") - Cat.say() - Cat.may() - -Мы видим, что у наследованного класса сохранился конструктор и -метод say. В последнем примере мы выдели, что наследный класс, также как -и исходный имеет конструктор, который принимает в качестве параметра - -название животного тогда, что в данном случае излишне. Для решения этой -проблемы мы воспользуемся объектно-ориентированным механизмом - -полиморфизмом. Полиморфизм - это возможность замены методов при -наследовании. Сделаем так, чтобы не нужно было передавать в конструкторе -название "Кошка". - - class TCat(TAnimal): - def __init__(self): - super().__init__("Кошка") - def may(self): - print("Мяу!") - Cat = TCat() - Cat.say() - Cat.may() - -Результат выполнения этой программы будет аналогичный, но теперь -при использовании этого класса нам не нужно передавать в конструкторе -никаких параметров. Полиморфное перекрытие методов делается простым -объявлением метода (в данном случае конструктора). При этом нельзя -можно менять входные параметры. Если в результате написания кода метода -возникает необходимость вызвать перекрытый метод, то для этого -необходимо использовать функцию super(), которая по сути просто -возвращает ссылку на родительский класс. Самое удивительное в -полиморфизме, что изменяя метод, он меняется даже когда на него есть -ссылки родительского класса. Рассмотрим еще один пример. Пусть у нас -есть класс: - - class TDo: - def Operation(self, x, y): - return x + y - def Run(self): - x = int(input("Enter x > ")) - y = int(input("Enter y > ")) - z = self.Operation(x, y) - print("Result = " + z.__str__()) - Do = TDo() - Do.Run() - -С помощью полиморфизма заменим функцию Operation на другую в -наследном классе: - - class TDo2(TDo): - def Operation(self, x, y): - return x * y - -**1.2.1 Пример** - -Задача: - -Необходимо разработать виртуальную модель процесса обучения. В -программе должны быть объекты-ученики, учитель, кладезь знаний. -Потребуется три класса – "учитель", "ученик", "данные". Учитель и -ученик во многом похожи, оба – люди. Значит, их классы могут -принадлежать одному надклассу "человек". Однако в контексте данной -задачи у учителя и ученика вряд ли найдутся общие атрибуты. Определим, -что должны уметь объекты для решения задачи "увеличить знания": - -• Ученик должен уметь брать информацию и превращать ее в свои -знания. - -• Учитель должен уметь учить группу учеников. - -• Данные могут представлять собой список знаний. Элементы будут -извлекаться по индексу. - -````python -class Data: - def __init__(self, *info): - self.info = list(info) - def __getitem__(self, i): - return self.info[i] - -class Teacher: - def teach(self, info, *pupil): - for i in pupil: - i.take(info) - -class Pupil: - def __init__(self): - self.knowledge = [] - def take(self, info): - self.knowledge.append(info) - -lesson = Data('class', 'object', 'inheritance', 'polymorphism', 'encapsulation') -marIvanna = Teacher() -vasy = Pupil() -pety = Pupil() -marIvanna.teach(lesson[2], vasy, pety) -marIvanna.teach(lesson[0], pety) -print(vasy.knowledge) -print(pety.knowledge) -```` - -Вывод: - -````code -['inheritance'] -['inheritance', 'class'] -```` - -**1.2.2 Пример** - -Задача: - -Напишите программу по следующему описанию. Есть класс "Воин". От -него создаются два экземпляра-юнита. Каждому устанавливается здоровье -в 100 очков. В случайном порядке они бьют друг друга. Тот, кто бьет, -здоровья не теряет. У того, кого бьют, оно уменьшается на 20 очков от -одного удара. После каждого удара надо выводить сообщение, какой юнит -атаковал, и сколько у противника осталось здоровья. Как только у кого-то -заканчивается ресурс здоровья, программа завершается сообщением о том, -кто одержал победу. - -````python -import random -class Warrior: - def __init__(self, health): - self.health = health - - def hit(self, target, target1): - if target.health > 0: - target.health -= 20 - if target1 == warrior1: - target1 = 'Warrior1' - if target1 == warrior2: - target1 = 'Warrior2' - print(target1, ' has attacked') - print(target.health, ' left') - if target.health == 0: - print(target1, ' has won') - -warrior1 = Warrior(100) -warrior2 = Warrior(100) -q = int(input('Enter 1 to attack. Enter 2 to stop program:')) - -while q != 2: - if q == 1: - j = random.randint(1, 2) - if j % 2 == 0: - warrior1.hit(warrior2, warrior1) - q = int(input('Enter 1 to let some warrior attack:')) - else: - warrior2.hit(warrior1, warrior2) - q = int(input('Enter 1 to let some warrior attack:')) - else: - print('Wrong input.') - break -```` - -Вывод: - -````code -Enter 1 to attack. Enter 2 to stop program:1 -Warrior2 has attacked -80 left -Enter 1 to let some warrior attack:1 -Warrior2 has attacked -60 left -Enter 1 to let some warrior attack:1 -Warrior2 has attacked -40 left -Enter 1 to let some warrior attack:1 -Warrior2 has attacked -20 left -Enter 1 to let some warrior attack:1 -Warrior1 has attacked -80 left -Enter 1 to let some warrior attack:1 -Warrior1 has attacked -60 left -Enter 1 to let some warrior attack:1 -Warrior1 has attacked -40 left -Enter 1 to let some warrior attack:1 -Warrior1 has attacked -20 left -Enter 1 to let some warrior attack:1 -Warrior2 has attacked -0 left -Warrior2 has won -Enter 1 to let some warrior attack:2 -```` - -**1.2.3 Пример** - -Задача: - -Создайте класс по работе с дробями. В классе должна быть -реализована следующая функциональность: - -− сложение дробей; - -− вычитание дробей; - -− умножение дробей; - -− деление дробей - -````python -class Rational: - - @staticmethod - def gcd(a, b): - while (b != 0): - a, b = b, a % b - return a - - @staticmethod - def sgn(x): - if x > 0: - return 1 - elif x < 0: - return -1 - else: - return 0 - - def __init__(self, n, d): - if n == 0: - self.num = 0 - self.den = 1 - else: - z = self.sgn(n) * self.sgn(d) - n = abs(n) - d = abs(d) - k = self.gcd(n, d) - self.num = z * n // k - self.den = d // k - - def __str__(self): - if self.num == 0: - return '0' - else: - return str(self.num) + '/' + str(self.den) - - def __add__(self, o): - n1 = self.num - d1 = self.den - if type(o) == int: - n2 = o - d2 = 1 - else: - n2 = o.num - d2 = o.den - n = n1 * d2 + n2 * d1 - d = d1 * d2 - return Rational(n, d) - - def __radd__(self, o): - n1 = self.num - d1 = self.num - if type(o) == int: - n2 = o - d2 = 1 - else: - n2 = o.num - d2 = o.den - n = n1 * d2 + n2 * d1 - d = d1 * d2 - return Rational(n, d) - - def __sub__(self, o): - n1 = self.num - d1 = self.den - n2 = o.num - d2 = o.den - n = n1 * d2 - n2 * d1 - d = d1 * d2 - return Rational(n, d) - - def __mul__(self, o): - n1 = self.num - d1 = self.den - n2 = o.num - d2 = o.den - n = n1 * n2 - d = d1 * d2 - return Rational(n, d) - - def __floordiv__(self, o): - n1 = self.num - d1 = self.den - n2 = o.num - d2 = o.den - n = n1 * d2 - d = d1 * n2 - return Rational(n, d) - - -d1 = Rational(1, 2) -d2 = Rational(1, 3) -d3 = d1 + d2 -print(d3) -d4 = d1 - d2 -print(d4) -d5 = d1 * d2 -print(d5) -d6 = d1 * d2 -print(d6) -d7 = d1 // d2 -print(d7) -d8 = 6 + d1 -print(d8) -```` - -Вывод: - -````code -5/6 -1/6 -1/6 -1/6 -3/2 -7/1 -```` - -**Задание:** - -Создайте класс по работе с тригонометрическими функциями. В классе -должны быть реализованы функции вычисления: - -− косинуса; - -− синуса; - -− тангенса; - -− арксинуса; - -− арккосинуса; - -− арктангенса; - -− перевода из градусов в радианы. - -````python -import math -class Trigonometry: - - def __init__(self, arg): - self.arg = arg - - def cos(): - return math.cos(self.arg) - - def sin(): - return math.sin(self.arg) - - def tg(): - return math.tan(self.arg) - - def arcsin(): - return math.asin(self.arg) - - def arccos(): - return math.acos(self.arg) - - def arctg(): - return math.atan(self.arg) - - def from_degrees_to_radians(): - self.arg *= math.pi / 180 -```` - -**1.2. Теоретический материал – Реализация деревьев в Python** - -Любое представление графов, естественно, можно использовать для -представления деревьев, потому что деревья — это особый вид графов. -Однако, деревья играют свою большую роль в алгоритмах, и для них -разработано много соответствующих структур и методов. Большинство -алгоритмов на деревьях (например, поиск по деревьям) можно -рассматривать в терминах теории графов, но специальные структуры -данных делают их проще в реализации. - -Проще всего описать представление дерева с корнем, в котором ребра -спускаются вниз от корня. Такие деревья часто отображают иерархическое -ветвление данных, где корень отображает все объекты (которые, возможно, -хранятся в листьях), а каждый внутренний узел показывает объекты, -содержащиеся в дереве, корень которого — этот узел. Это описание можно -использовать, представив каждое поддерево списком, содержащим все его -поддеревья-потомки. Рассмотрим простое дерево, показанное на рисунке -ниже. - -![image.png](data:image/png;base64,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JOt8liieWYfnRbkYyZEd27ElSv59gIIsiRTvKkp+8buvuq5ajWazqeBfjoR6/IuIiIiIiIiIiHSSMBj2PIhGg9Y+Rxj8+76P53m4rks0GiUej5NOp9vBvzxdNBolGo2SyWQYHh5mY2ODVCpFpVIhFothWdYPev2LvGz6DRMREREREREREekkjhMM9d3dDVr89PZCd3cQ/h+BarXK0tISi4uLpFIpfvWrX/Hmm2+SyWSO5PVPi66uLt58803i8Tie5/HHP/6Rc+fOcfHiRewjei/l9aVWPyIiIiIiIiIiIp3EcWB7GxYXg3/39R1p8F+r1ZidneVvf/sbyWSSX//61wr+X0AY/H/44Ye4rsu//du/cefOHarV6nEvTV4DCv5FREREREREREQ6iePA1hbMzkKjAfk85HJB8O/737cCesnCFj97e3vcu3ePr776inK5zNDQEIVCAcuy2r3/5cnCa2SaJplMhmw2S6VS4c6dOywuLlKpVGi1Wriuq+spr4yCfxERERERERERkU7SasHGBszMQL3+ffD/iofqPh78f/HFF2xtbZHNZkmn00Sj0Vf6+qeNYRiYpolpmpRKJebm5lhbW6NcLtNsNvE877iXKKeYgn8REREREREREZFOErb6efgwCP67uiCTgVc8ENZ1XRqNBtVqlXK5TLlcBiCdThOPx4kc0XDh08IwDKLRKKZpEo/HSaVS+L5PqVSiVCrRbDaPe4lyiumvVUREREREREREpJM4TjDYd3ExaPWTTkMq9cqD/1arxd7eHvV6nWw2y5kzZ+jp6cG2baLRKIZhvNLXP20Mw8AwDGzbZnR0lKtXr9LX18fW1hZra2vUarXjXqKcYq/2fwsRERERERERERF5Pq4LpRKsrgZtf/YH/68wfK/X62xsbFAul8nn81y4cIG+vj4sy1Kbn+cQbpCEvfsty2J0dJQPP/wQz/NYW1sjFouRz+cpFArHuVQ5xRT8i4iIiIiIiIiIdBLfh2YTqtXg81QKkslXXvG/ubnJd999x+rqKsVikTfeeIOpqSnMV/y6p51lWQwNDRGNRrl58ybffvst1WqVkZGR416anGL6qxUREREREREREekkjwf/6TQkEvCKq+63trb429/+xt7eHr/97W/55JNPsG1bwf9PZJomw8PDDA4OMjMzw927d6lUKly5cuW4lyanmP5qRURERERE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) - -Мы можем представить это дерево как список списков: - - T = [["a", "b"], ["c"], ["d", ["e", "f"]]] - print(T[0][1]) - print(T[2][1][0]) - -Каждый список в сущности является списком потомков каждого из -внутренних узлов. Во втором примере мы обращаемся к третьему потомку -корня, затем ко второму его потомку и в конце концов — к первому потомку -предыдущего узла (этот путь отмечен на рисунке). В ряде случаев возможно -заранее определить максимальное число потомков каждого узла. (Например, -каждый узел бинарного дерева может иметь до двух потомков). Поэтому -можно использовать другие представления, скажем, объекты с отдельным -атрибутом для каждого из потомков как в листинге ниже. - -**1.2.1 Пример** - -Задача: - -Определите класс бинарного дерева и задайте его объекты с отдельным -атрибутом для каждого из потомков. - -````python -class Tree: - def __init__(self, left, right): - self.left = left - self.right = right - -t = Tree(Tree('a', 'b'), Tree('c', 'd')) -t.right.left -```` - -Вывод: - -````code -'c' -```` - -**1.2.2 Пример** - -Для обозначения отсутствующих потомков можно использовать None -(в случае если у узла только один потомок). Само собой, можно -комбинировать разные методы (например, использовать списки или -множества потомков для каждого узла). - -Распространенный способ реализации деревьев, особенно на языках, -не имеющих встроенной поддержки списков, это так называемое -представление «первый потомок, следующий брат». В нем каждый узел -имеет два «указателя» или атрибута, указывающих на другие узлы, как в -бинарном дереве. Однако, первый из этих атрибутов ссылается на первого -потомка узла, а второй — на его следующего брата (т.е. узел, имеющий -того же родителя, но находящийся правее, — прим. перев). Иными -словами, каждый узел дерева имеет указатель на связанный список его -потомков, а каждый из этих потомков ссылается на свой собственный -аналогичный список. Таким образом, небольшая модификация бинарного -дерева даст нам многопутевое дерево, показанное в листинге ниже. - -````python -class Tree: - def __init__(self, kids, next=None): - self.kids = self.val = kids - self.next = next - -t = Tree(Tree('a', Tree('b', Tree('c', Tree('d'))))) -t.kids.next.next.val -```` - -Вывод: - -````code -'c' -```` - -**Задание** - -Представьте дерево показанное на рисунке с использованием списка из -списков. Выведите на печать корень дерева, а также его левое и правое -поддеревья. - -![image.png](data:image/png;base64,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Dmx7vXm0/f8PgE21ytXfA/+z7YwgBDbBO+/PrtrVuF9udY0khf1b/YqiIBpVNjNuoohElGvVOrI/SFqSpC+SQ7zhT7/lepuj6+2MVqvrVVnGpoWRO2tmPp9tHhdYLGZ+0tDdX+tr7fbsL/aFtxUcxwsMC7Bte/PedP9QEIKbx6v94iU0vUevYsVLMHo3970WUe6Mp6g/38XbG17LNa+d2vV2gkRf85IfbgJytWn5aG4qTq4qshaLGabTuZ/k9+aRuVVnSz954u2H6y34bNv54oxwnC/PEcBr34cvPsOvzggBgnD1GAoFN+9zGZGIvDkrFP9RUdRNtY5XHelW6Hj74y7MtyEiIiKi+4HXdoiIiOg3uS28gpuWLG7wFrgKRHuJGa+FmXvz2R1qLgjAem1hsXD8fvverWP38aqNkntr2fYD0d6NZm8NX88GcANfXjuzkN/qzAsye21tJEna3GBOIpFwK15isRgURfEDzd7zI/pHXd8X7sykqP9nXhDae89PJhOMRqPNUPMeBoMBLGsFw7hqp2cYhr8vLGu1uZH/ZSWXuy+u9t5V5Rg2QeXAtcqyEEQxtKk+u6q6keWrWRxe1UsqlUIikYCu61DVmD/jiXMt6J/hJTtEUfzin3vvZS8ZM5vNMJlMNhUz7r5wzxT3jHCT/FfVjderuLzqlusJ0d8+M7x9Edi0vxQ3Z8XVmeG20oxsKnFCUFUViURyc2YkkEgk/JZj7j6SmHAhIiIion8aK2KIiIiIiIiIiIiIiIhuCHtuEBERERERERERERER3RAmYoiIiIiIiIiIiIiIiG4IEzFEREREREREREREREQ3hIkYIiIiIiIiIiIiIiKiG8JEDBERERERERERERER0Q1hIoaIiIiIiIiIiIiIiOiGMBFDRERERERERERERER0Q5iIISIiIiIiIiIiIiIiuiFMxBAREREREREREREREd0QJmKIiIiIiIiIiIiIiIhuCBMxREREREREREREREREN4SJGCIiIiIiIiIiIiIiohvCRAwREREREREREREREdENYSKGiIiIiIiIiIiIiIjohjARQ0REREREREREREREdEOYiCEiIiIiIiIiIiIiIrohTMQQERERERERERERERHdECZiiIiIiIiIiIiIiIiIbggTMURERERERERERERERDeEiRgiIiIiIiIiIiIiIqIbwkQMERERERERERERERHRDWEihoiIiIiIiIiIiIiI6IYwEUNERERERERERERERHRDmIghIiIiIiIiIiIiIiK6IUzEEBERERERERERERER3RAmYoiIiIiIiIiIiIiIiG4IEzFEREREREREREREREQ35P8DqdLBvHTkYxsAAAAASUVORK5CYII=) - -````python -class Tree: - def __init__(self, kids, next=None): - self.kids = self.val = kids - self.next = next - -t = Tree(Tree('a', Tree('b', Tree('d', 'e'))), Tree('c', Tree('f'))) - -print('root = ', t.kids.val) - -print('left subtree = ', end='') -print(t.kids.next.val, end=', ') -print(t.kids.next.next.val, end=', ') -print(t.kids.next.next.next) - -print('right subtree = ', end='') -print(t.next.kids, end=', ') -print(t.next.next.kids) -```` - -Вывод: - -````code -root = a -left subtree = b, d, e -right subtree = c, f -```` - -**Задание:** - -Дан класс, описывающий бинарное дерево. - - class Tree: - def __init__(self, data): - self.left = None - self.right = None - self.data = data - def PrintTree(self): - print(self.data) - -Реализуйте в классе функцию для вставки нового элемента в дерево по -следующим правилам: - -• Левое поддерево узла содержит только узлы со значениями меньше, -чем значение в узле. - -• Правое поддерево узла содержит только узлы со значениями меньше, -чем значение в узле. - -• Каждое из левого и правого поддеревьев также должно быть -бинарным деревом поиска. - -• Не должно быть повторяющихся узлов. - -Метод вставки сравнивает значение узла с родительским узлом и решает -куда доваить элемент (в левое или правое поддерево). Перепишите, метод -PrintTree для печати полной версии дерева. - -````python -class Tree: - def __init__(self, data): - self.left = None - self.right = None - self.data = data - - def PrintTree(self): - if self.left: - self.left.PrintTree() - print(self.data) - if self.right: - self.right.PrintTree() - - def AddItem(self, item): - if self.data: - if item < self.data: - if self.left is None: - self.left = Tree(item) - else: - self.left.AddItem(item) - elif item > self.data: - if self.right is None: - self.right = Tree(item) - else: - self.right.AddItem(item) - else: - self.data = item - -tree = Tree(5) -tree.AddItem(1) -tree.AddItem(2) -tree.AddItem(6) -tree.AddItem(7) -tree.PrintTree() -```` - -Вывод: - -````code -1 -2 -5 -6 -7 -```` - -**1.3. Теоретический материал – Деревья решений** - -Дерево решений – это один из наиболее часто и широко используемых -алгоритмов контролируемого машинного обучения, который может -выполнять как регрессионные, так и классификационные задачи. -Использование деревьев решений для прогнозного анализа имеет ряд -преимуществ: - -1. Деревья решений могут быть использованы для -прогнозирования как непрерывных, так и дискретных значений, т. е. они -хорошо работают как для задач регрессии, так и для задач классификации. - -2. Они требуют относительно меньших усилий для обучения -алгоритма. - -3. Они могут быть использованы для классификации нелинейно -разделимых данных. - -4. Они очень быстры и эффективны по сравнению с KNN и -другими алгоритмами классификации. - -Решим модельные примеры классификации и регрессии, разобранные -в предыдущих раочих тетрадях, но с использованием деревьев принятия -решений. - -**1.3.1 Пример** - -Задача: - -Построим дерево решений для задачи классификации, для этого, построим -границу решения для каждого класса. В качестве данных будем -использовать уже знакомый нам и встроенный в библиотеку sklearn набор -данных ирисов Фишера. Импортируем библиотеки, набор данных и -посмотрим его характеристики. - -````python -import pandas as pd -import numpy as np -import seaborn as sns -import matplotlib.pyplot as plt - -dataset = sns.load_dataset('iris') -dataset -dataset.shape -dataset.head() -```` - -Вывод: - -````code - sepal_length sepal_width petal_length petal_width species -0 5.1 3.5 1.4 0.2 setosa -1 4.9 3.0 1.4 0.2 setosa -2 4.7 3.2 1.3 0.2 setosa -3 4.6 3.1 1.5 0.2 setosa -4 5.0 3.6 1.4 0.2 setosa -```` - -Далее, разделим наши данные на атрибуты и метки, а затем выделим в -общей совокупности полученных данных обучающие и тестовые наборы. -Таким образом, мы можем обучить наш алгоритм на одном наборе данных, -а затем протестировать его на совершенно на другом наборе, который -алгоритм еще не видел. Это дает вам более точное представление о том, -как на самом деле будет работать ваш обученный алгоритм. - -````python -from sklearn.model_selection import train_test_split - -x_train, x_test, y_train, y_test = train_test_split( - dataset.iloc[:, :-1], - dataset.iloc[:, -1], - test_size = 0.20 -) - -x_train.shape, x_test.shape, y_train.shape, y_test.shape -x_train.head() -y_train.head() -```` - -Вывод: - -````code -49 setosa -58 versicolor -68 versicolor -35 setosa -122 virginica -Name: species, dtype: object -```` - -После того, как данные были разделены на обучающие и тестовые наборы, -последний шаг состоит в том, чтобы обучить алгоритм дерева решений на -этих данных и сделать прогнозы. Scikit-Learn содержит библиотеку tree , -которая содержит встроенные классы/методы для различных алгоритмов -дерева решений. Поскольку мы собираемся выполнить здесь задачу -классификации, мы будем использовать класс DecisionTreeClassifier для -этого примера. Метод fit этого класса вызывается для обучения алгоритма -на обучающих данных, которые передаются в качестве параметра методу -fit . Выполним следующий сценарий для обучения алгоритма. - -````python -from sklearn.tree import DecisionTreeClassifier -classifier = DecisionTreeClassifier() -classifier.fit(x_train, y_train) - -from sklearn import tree -tree.plot_tree(classifier) -```` - -Теперь, когда наш классификатор обучен, давайте сделаем прогнозы по -тестовым данным. Для составления прогнозов используется метод predict -класса Decision Tree Classifier. Взгляните на следующий код для -использования. - -````python -y_pred = classifier.predict(x_test) -y_pred -```` - -Вывод: - -````code -array(['virginica', 'setosa', 'virginica', 'virginica', 'setosa', - 'versicolor', 'virginica', 'versicolor', 'setosa', 'versicolor', - 'virginica', 'virginica', 'versicolor', 'setosa', 'setosa', - 'setosa', 'setosa', 'setosa', 'versicolor', 'virginica', - 'virginica', 'virginica', 'virginica', 'virginica', 'setosa', - 'setosa', 'virginica', 'versicolor', 'setosa', 'versicolor'], - dtype=object) -```` - -На данный момент мы обучили наш алгоритм и сделали некоторые -прогнозы. Теперь посмотрим, насколько точен наш алгоритм. Для задач -классификации обычно используются такие метрики, как матрица -путаницы, точность. Библиотека Scikit-Learn metrics содержит методы -classification_report и confusion_matrix, которые могут быть использованы -для расчета этих метрик. - -````python -from sklearn.metrics import classification_report, confusion_matrix -print(confusion_matrix(y_test, y_pred)) -print(classification_report(y_test, y_pred)) -```` - -Вывод: - -````code -[[11 0 0] - [ 0 7 2] - [ 0 0 10]] - precision recall f1-score support - - setosa 1.00 1.00 1.00 11 - versicolor 1.00 0.78 0.88 9 - virginica 0.83 1.00 0.91 10 - - accuracy 0.93 30 - macro avg 0.94 0.93 0.93 30 -weighted avg 0.94 0.93 0.93 30 -```` - -Из матрицы оценок алгоритма вы можете видеть, что из 30 тестовых -экземпляров наш алгоритм неправильно классифицировал только 3. Это -приблизительно 91 % точности. - -**Задание** - -Задача: - -Постройте классификатор на основе дерева принятия решений -следующего датасета: - - #данные - x = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]) - target = [0, 0, 0, 1, 1, 1] - -````python -from sklearn.metrics import classification_report, confusion_matrix -x = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]) -target = [0, 0, 0, 1, 1, 1] - -dataset = pd.DataFrame(data=x) -dataset -dataset.shape -dataset.head() - -x_train, x_test, y_train, y_test = train_test_split( - dataset.iloc[:, :-1], - dataset.iloc[:, -1], - test_size=0.20 -) - -x_train.shape, x_test.shape, y_train.shape, y_test.shape -x_train.head() -y_train.head() - -classifier = tree.DecisionTreeClassifier() -classifier.fit(x_train, y_train) - -tree.plot_tree(classifier) - -y_pred = classifier.predict(x_test) -y_pred - -print(confusion_matrix(y_test, y_pred)) -print(classification_report(y_test, y_pred, zero_division=0)) -```` - -**1.4. Теоретический материал – Дерево решений для регрессии** - -Дерево решений для регрессии - -Процесс решения регрессионной задачи с деревом решений с -помощью Scikit Learn очень похож на процесс классификации. Однако для -регрессии мы используем класс DecisionTreeRegressor древовидной -библиотеки. Кроме того, оценочные показатели регрессии отличаются от -показателей классификации. В остальном процесс почти такой же. -Построим регрессию с использованием дерева решений в Python и -библиотеки scikit-learn. В качестве исходного набора данных будем -использовать зависимость заработной платы от опыта работы из -предыдущей тетради: - -https://raw.githubusercontent.com/AnnaShestova/salary-years-simplelinear-regression/master/Salary_Data.csv - -**1.4.1 Пример** - -Задача: - -Постойте регрессию с использованием дерева решений, реализованного в -Python. - -````python -import pandas as pd -import numpy as np -import matplotlib.pyplot as plt - -url = r'https://raw.githubusercontent.com/AnnaShestova/salary-years-simple-linear-regression/master/Salary_Data.csv' -dataset = pd.read_csv(url) -print(dataset.head()) - -print(dataset.shape) -dataset.describe() - -plt.scatter(dataset['YearsExperience'], dataset['Salary'], color='b', label='Заработная плата') -plt.xlabel('Опыт(лет)') -plt.ylabel('Заработная плата') -plt.show() - -from sklearn.tree import DecisionTreeRegressor -x = dataset.iloc[:, :-1].values -y = dataset.iloc[:, -1].values -print(x) -print(y) - -x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=0) - -regressor = DecisionTreeRegressor() -regressor.fit(x_train, y_train) - -from sklearn import tree -tree.plot_tree(regressor) - -y_pred = regressor.predict(x_test) -y_pred - -df = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred}) -df - -from sklearn import metrics -print('Mean Squared Error:', metrics.mean_squared_error(y_test, y_pred)) -print('Mean Absolute Error:', metrics.mean_absolute_error(y_test, y_pred)) - -metrics.mean_absolute_error(y_test, y_pred) / np.average(y) * 100 -```` - -Средняя абсолютная ошибка для нашего алгоритма составляет 4120.66, -что составляет менее 6 процентов от среднего значения всех значений в -столбце. - -**Задание** - -Задача: - - Постройте модель регрессии для данных из предыдущей рабочей -тетради.Для примера можно взять потребления газа (в миллионах -галлонов) в 48 штатах США или набор данных о качестве красного вина: -https://raw.githubusercontent.com/likarajo/petrol_consumption/master/data/petrol_consumption.csv -https://raw.githubusercontent.com/aniruddhachoudhury/Red-WineQuality/master/winequality-red.csv - -Постройте прогноз. Оцените точность модели - -````python -import pandas as pd -import numpy as np -import matplotlib.pyplot as plt -from sklearn.tree import DecisionTreeRegressor -from sklearn import tree -from sklearn import metrics - -url = r'https://raw.githubusercontent.com/likarajo/petrol_consumption/master/data/petrol_consumption.csv' -dataset = pd.read_csv(url) -print(dataset.head()) - -print(dataset.shape) -dataset.describe() - -plt.scatter(dataset['Petrol_tax'],dataset['Average_income'],color='b',label='Average income') -plt.xlabel('Average income') -plt.ylabel('Petrol tax') -plt.show() - -x=dataset.iloc[:, :-1].values -y=dataset.iloc[:, -1].values -print(x) -print(y) - -x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=0) - -regressor=DecisionTreeRegressor() -regressor.fit(x_train,y_train) - -tree.plot_tree(regressor) -y_pred = regressor.predict(x_test) -y_pred -df = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred}) -df - -print('Squared ', metrics.mean_squared_error(y_test, y_pred)) -print('Absolute', metrics.mean_absolute_error(y_test, y_pred)) -metrics.mean_absolute_error(y_test, y_pred) / np.average(y) * 100 -```` - diff --git a/content/ai/notebook-06-genetic-and-annealing.mdx b/content/ai/notebook-06-genetic-and-annealing.mdx deleted file mode 100644 index a549465..0000000 --- a/content/ai/notebook-06-genetic-and-annealing.mdx +++ /dev/null @@ -1,570 +0,0 @@ ---- -title: "AI Notebook 6 — Генетические и эволюционные методы" -sidebar_position: 7 -description: "Оптимизация: эволюционные стратегии и имитация отжига." -slug: "/ai/notebook-06-genetic-and-annealing" ---- - -**Теоретический материал – Эволюционные методы** - -Эволюционные методы - -Эволюционные методы относятся к числу эффективных средств -решения задач оптимизации и структурного синтеза проектных решений. -Они основаны на использовании принципов оптимального приспособления -организмов в живой природе к условиям окружающей среды. К числу -эволюционных относятся методы генетические, колонии муравьев, -поведения толпы. Наиболее развиты и востребованы в настоящее время -генетические алгоритмы. По мере развития техники и технологий растет -доля сложных задач проектирования и управления, для решения которых -применение традиционных методов проблематично. Поэтому все большее -внимание уделяется применению методов искусственного интеллекта. -Генетические алгоритмы Для применения ГА необходимо: - -1. выделить совокупность свойств объекта, характеризуемых -внутренними параметрами и влияющих на его полезность, т.е. выделить -множество управляемых параметровX=(x_1,x_2,…,x_n) среди x_i могут -быть величины различных типов (real, integer, Boolean, enumeration). -Наличие нечисловых величин (enumeration) обусловливает возможность -решения задач не только параметрической, но и структурной оптимизации; - -2. сформулировать количественную оценку полезности вариантов -объекта — функцию полезности F. Если в исходном виде задача -многокритериальна, то такая формулировка означает выбор скалярного -(обобщенного) критерия; - -3. представить вектор X в форме хромосомы — записи -следующего вида: - -![image.png](data:image/png;base64,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) - -Этапы генетического алгоритма могут быть представлены в -следующем виде: - -````code -for (k=0; k 0) решение допустим, если -𝑃∗ = 100где снижение температуры происходит по закону 𝑇𝑘+1 = 0.5𝑇𝑘 от -𝑇1 = 100. - -**1.2.1 Пример** - -Задача: - -Итак, начальные условия задачи представляют собой следующий граф с -расстояниями между ребрами: -![image.png](data:image/png;base64,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EPWaYitDBm2n41RiGtmSyXYPsp+fdteu2lOmaKfn3vA4sf/+L1umPX++tm0CipU1q/n69u217b839r+/O3fWPn48XNrPb6T0vHljYrtktzp48KD0yy+/LP3DDz9IV6pUya1rAoCUKXHHwoTsnSrdbeJ26TsRCfUjoTkmxSOj/iw04Mv3pWs7nsESIXU/SGf9ZciYwdjKvHJMX3Px83rSJabo53zjyVnS9ePwiU4yY2Ei9A16UKi39COfHhW8WbJrsdeMp473OyL965BitkPo6NRQ74zS0R9C3zAVe+248Vy/IzulhxR7/EhVAACSMq5cBwAAAAAAAADAIU6uAwAAAAAAAADgUNrEXoBT9lEwdW1zU/zs8xQsy3rvvfeko7td786JbdLf7zotHfFkVel69StKt2mj/6v5o483bdok3bx5c+kBA/SWt1GjSko/9ZTuZ6duYnwcycP169r2MTCWZVndumkn5iiYIL2L07pyRTs241R+/dXcV/782k2aPP719s9PWFjs1muXxvZPgPbPYXSjVqpWffw2MY1pie45X9/YrTc+Nusdutb69drTprn+2MmZ/c7rbfrXujVvnva6ddohtjvy69TRXr5cu2VL8xj2byMjRmhPnqxdvLj2Tz89kB427Cfp/v11ZNnUqXprvrvZx8BYlmU1sf1hnmv7i4xRMACQsqSvrjMMl6zrH8OWSUvYH6Okn3tBf+5q9us+Y7tRFaP+8daY0hKmYz9D/3fTZERXv294DenXr4+XPjFPv78b41vS6Btb30zmCJuge/pexQrVz+/wGq9LXx9/Qnpek6gHw6SxvXnOFBlkPHcvMNlOpgUA4H9w5ToAAAAAAAAAAA5xch0AAAAAAAAAAIeSxViYy5cvS9tHwbz99tvSgwYNimEPesvcscUjpZcEVJB+oaj+9/AH57aTHjpeZwPMXzfa2Gu97PpvE6+88or04sWLpVu0+Fu6Rg2dafHtt9mkfXxiWDqSvM8+03507El/2922//6rHZtxLE47pueCzDsx4+XWLe1cubSLFdN+/nntvHm14zKmxT4KxtPT2VqTG/t0qxUrtH/4Qds+iic1sY8zWrjQfG7BAu3TOuHLypdP+913tbt00Y5uFNf+/ebjzp21/9a/1q2BA7VH275FZMiQSbpqVR0L89JLL0nbR4sNHTrUOF7FihWthBAYqLd2L1q0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) - -````python -import networkx as nx -from math import e - -distances = [(1, 2, 20), - (1, 3, 40), - (1, 4, 42), - (1, 5, 33), - (1, 6, 21), - (2, 3, 26), - (2, 4, 38), - (2, 5, 42), - (2, 6, 17), - (3, 4, 22), - (3, 5, 43), - (3, 6, 21), - (4, 5, 27), - (4, 6, 22), - (5, 6, 26)] #длины рёбер - -V = [1, 4, 5, 2, 6, 3, 1] #последовательность прохождения маршрута -Z = [(3, 4), - (4, 6), - (5, 2), - (6, 2)] #последовательность замен вершин -P = [49, 54, 43, 54] #случайные числа, выпавшие в процессе счёта - -T = 100 #начальная температура - -#функция вероятности -def probability(delta, T): - return 100 * e ** (-delta / T) - -#функция изменения температуры -def reductTemp(prevT): - nextT = .5 * prevT - return nextT - -graph = nx.Graph() #создание пустого графа -graph.add_weighted_edges_from(distances) #добавление весов рёбер - -#отрисовка графа с заданными вершинами -nx.draw_kamada_kawai(graph, node_color='#fb7258', node_size=2000, with_labels=True) -```` - -````python -#вычисление длины ребра -def edgeLength(i, j, distances, roundTrip=True): - if roundTrip: - return max([(item[2] if (item[0] == i and item[1] == j) or (item[1] == i and item[0] == j) else -1) - for item in distances]) - else: - return max([(item[2] if (item[0] == i and item[1] == j) else -1) for item in distances]) - -#вычисление длины маршрута -def routeLength(V, distances): - edges = [] - - for i in range(len(V) - 1): - edges.append(edgeLength(V[i], V[i + 1], distances)) - - return sum(edges) - -#одна перестановка в пути -def routeOneReplacement(arrV, Z, replacementByName=True): - decrement = 1 if replacementByName else 0 - - arrV[Z[0] - decrement], arrV[Z[1] - decrement] = arrV[Z[1] - decrement], arrV[Z[0] - decrement] - - return arrV - -#перестановка в пути -def routeReplacement(V, Z): - for z in Z: - V = routeOnereplacement(V, z) - return V - -#выбор нужного пути методом отжига -def chooseRoute(distances, V, Z, T, P): - sumLength = routeLength(V, distances) #нахождение длины пути - arrSum = [sumLength] #массив сумм длин - - #циклы методом отжига - for i in range(len(Z)): - newV = routeOneReplacement(V[:], Z[i]) #новый маршрут после перестановки - newS = routeLength(newV, distances) #длина нового маршрута - arrSum.append(newS) - deltaS = newS - sumLength #разница между длиной нового и старого маршрутов - - #в случае, если разница между длинами больше 0, то вычисляется вероятность - if deltaS > 0: - p = probability(deltaS, T) #подсчёт вероятности - - #если заданная вероятность попадает в интервал от 0 до p, то новый маршрут выбирается - if p > P[i]: - V = newV - sumLength = newS - else: - V = newV - sumLength = newS - - T = reductTemp(T) #вычисление температуры - - return V, arrSum - -#отрисовка графа по заданному маршруту -def drawRouteGraph(distances, bestRoute): - newDistances = [] - #прохождение по вектору - for i in range(len(bestRoute) - 1): - for distance in distances: - if distance[0] == bestRoute[i] and distance[1] == bestRoute[i + 1] or distance[1] == bestRoute[i] and distance[0] == bestRoute[i + 1]: - newDistances.append(distance) - - graph = nx.Graph() #создание пустого графа - - graph.add_weighted_edges_from(newDistances) #добавление весов рёбер - #отрисовка графа с заданными вершинами - nx.draw_kamada_kawai(graph, node_color='#fb7258', node_size=2000, with_labels=True) - -bestRoute, arrLength = chooseRoute(distances, V, Z, T, P) - -print(f'Лучший выбранный маршрут: {bestRoute}') -print(f'Длина лучшего выбранного маршрута: {routeLength(bestRoute, distances)}') -print(f'Длины всех рассмотренных маршрутов: {arrLength}') - -drawRouteGraph(distances, bestRoute) #отрисовка лучшего маршрута -```` - -**Задание** - -Найти длину гамильтонова цикла S4 в полном графе K6 после четырех циклов решения задачи методом отжига по вариантам ниже. - -![image.png](data:image/png;base64,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) - -````python -distances = [(1, 2, 24), - (1, 3, 41), - (1, 4, 36), - (1, 5, 22), - (1, 6, 19), - (2, 3, 21), - (2, 4, 33), - (2, 5, 33), - (2, 6, 14), - (3, 4, 27), - (3, 5, 39), - (3, 6, 23), - (4, 5, 20), - (4, 6, 20), - (5, 6, 19)] #длины рёбер - -V = [1, 3, 4, 5, 6, 2, 1] #последовательность прохождения маршрута -Z = [(3, 4), - (4, 6), - (5, 2), - (6, 2)] #последовательность замен вершин -P = [33, 82, 51, 76] #случайные числа, выпавшие в процессе счёта - -T = 100 #начальная температура - -#функция вероятности -def probability(delta, T): - return 100 * e ** (-delta / T) - -#функция изменения температуры -def reductTemp(prevT): - nextT = .5 * prevT - return nextT - -#вычисление длины ребра -def edgeLength(i, j, distances, roundTrip=True): - if roundTrip: - return max([(item[2] if (item[0] == i and item[1] == j) or (item[1] == i and item[0] == j) else -1) - for item in distances]) - else: - return max([(item[2] if (item[0] == i and item[1] == j) else -1) for item in distances]) - -#вычисление длины маршрута -def routeLength(V, distances): - edges = [] - - for i in range(len(V) - 1): - edges.append(edgeLength(V[i], V[i + 1], distances)) - - return sum(edges) - -#одна перестановка в пути -def routeOneReplacement(arrV, Z, replacementByName=True): - decrement = 1 if replacementByName else 0 - - arrV[Z[0] - decrement], arrV[Z[1] - decrement] = arrV[Z[1] - decrement], arrV[Z[0] - decrement] - - return arrV - -#перестановка в пути -def routeReplacement(V, Z): - for z in Z: - V = routeOnereplacement(V, z) - return V - -#выбор нужного пути методом отжига -def chooseRoute(distances, V, Z, T, P): - sumLength = routeLength(V, distances) #нахождение длины пути - arrSum = [sumLength] #массив сумм длин - - #циклы методом отжига - for i in range(len(Z)): - newV = routeOneReplacement(V[:], Z[i]) #новый маршрут после перестановки - newS = routeLength(newV, distances) #длина нового маршрута - arrSum.append(newS) - deltaS = newS - sumLength #разница между длиной нового и старого маршрутов - - #в случае, если разница между длинами больше 0, то вычисляется вероятность - if deltaS > 0: - p = probability(deltaS, T) #подсчёт вероятности - - #если заданная вероятность попадает в интервал от 0 до p, то новый маршрут выбирается - if p > P[i]: - V = newV - sumLength = newS - else: - V = newV - sumLength = newS - - T = reductTemp(T) #вычисление температуры - - return V, arrSum - -#отрисовка графа по заданному маршруту -def drawRouteGraph(distances, bestRoute): - newDistances = [] - #прохождение по вектору - for i in range(len(bestRoute) - 1): - for distance in distances: - if distance[0] == bestRoute[i] and distance[1] == bestRoute[i + 1] or distance[1] == bestRoute[i] and distance[0] == bestRoute[i + 1]: - newDistances.append(distance) - - graph = nx.Graph() #создание пустого графа - - graph.add_weighted_edges_from(newDistances) #добавление весов рёбер - #отрисовка графа с заданными вершинами - nx.draw_kamada_kawai(graph, node_color='#fb7258', node_size=2000, with_labels=True) - -bestRoute, arrLength = chooseRoute(distances, V, Z, T, P) - -print(f'Лучший выбранный маршрут: {bestRoute}') -print(f'Длина лучшего выбранного маршрута: {routeLength(bestRoute, distances)}') -print(f'Длины всех рассмотренных маршрутов: {arrLength}') - -drawRouteGraph(distances, bestRoute) #отрисовка лучшего маршрута -```` - -Вывод: - -````code -Лучший выбранный маршрут: [1, 6, 5, 4, 3, 2, 1] -Длина лучшего выбранного маршрута: 130 -Длины всех рассмотренных маршрутов: [145, 158, 183, 130, 146] -```` - diff --git a/content/ai/notebook-07-neural-networks.mdx b/content/ai/notebook-07-neural-networks.mdx deleted file mode 100644 index 2670656..0000000 --- a/content/ai/notebook-07-neural-networks.mdx +++ /dev/null @@ -1,892 +0,0 @@ ---- -title: "AI Notebook 7 — Нейронные сети" -sidebar_position: 8 -description: "Персептрон, MLP и базовый цикл обучения нейросети." -slug: "/ai/notebook-07-neural-networks" ---- - -**1.1. Теоретический материал – Нейронные сети** - -**Обучение персептрона** - -Персептрон представляет собой элементарную часть нейронной сети. -Одиночный персептрон является линейным бинарным классификатором. В -этой лекции мы рассмотрим процедуру обучения персептрона для -классификации данных. Поскольку персептрон представляет собой -бинарный классификатор, то мы будем рассматривать лишь два класса. -Пусть мы рассматриваем некоторое множество (конечное или -бесконечное) n-мерных векторов, которые будем обозначать 𝑥 = -(𝑥1, 𝑥2, . . . , 𝑥𝑛) - -Будем считать, что это множество разбивается на два класса, которые -мы будем обозначать +1 и -1. Поэтому возникает задача построения -функции, которая задана на нашем множестве векторов, и принимает -значения в множестве \{+1, −1\}. В качестве такой функции может выступать -персептрон. С алгебраической точки зрения персептрон состоит из вектора -весов 𝑤 = (𝑤0, 𝑤1, 𝑤2, . . . , 𝑤𝑛). - -При этом персептрон работает по формуле - ->𝑦 = 𝑠𝑖𝑔𝑛(𝑤0 + 𝑥1𝑤1 + 𝑥2𝑤2 + . . . + 𝑥𝑛𝑤𝑛), - -где функция 𝑠𝑖𝑔𝑛(𝑡) равна +1, если 𝑡 ≥ 0, и равна −1, если 𝑡 < 0. - -Приведем алгоритм обучения персептрона. Пусть у нас есть набор -обучающих данных \{(𝑥, 𝑑)\}, где 𝑥 - это различные вектора, а 𝑑 из множества -\{+1, −1\} указывает к какому классу относится наш вектор. -1. Положим вектор весов 𝑤 равным нулю. -2. Повторять 𝑁 раз следующие шаги: -3. Для каждого тестового набора (𝑥, 𝑑): -4. Вычислить 𝑦 = 𝑠𝑖𝑔𝑛[(𝑥, 𝑤)]. -5. Если 𝑦𝑑 < 0, то скорректировать веса 𝑤0 = 𝑤0 + 𝑎𝑑, 𝑤𝑖 = -𝑤𝑖 + 𝑎𝑑𝑥𝑖 -, 𝑖 = 1,2, . . . , 𝑛. - -Описанный алгоритм довольно легко программировать. - -**1.1.1 Пример** - -Задача - -Рассмотрим программу обучения персептрона на языке Python. Сначала -рассмотрим основной класс персептрона, который умеет учиться по -тестовым данным. - -````python -#класс который реализует персептрон и его обучение -class Perceptron: - def __init__(self, N): - #создать нулевые веса - self.w = list() - for i in range(N): - self.w.append(0) - #метод для вычисления значения персептрона - def calc(self, x): - res = 0 - for i in range(len(self.w)): - res = res + self.w[i] * x[i] - return res - #пороговая функция активации персептрона - def sign(self, x): - if self.calc(x) > 0: - return 1 - else: - return -1 - #обучение на одном примере - def learn(self, la, x, y): - #обучаем только, когда результат неверный - if y * self.calc(x) <= 0: - for i in range(len(self.w)): - self.w[i] = self.w[i] + la * y * x[i] - #обучение по всем данным Т - кортеж примеров - def learning(self, la, T): - #цикл обучения - for n in range(100): - #обучение по всему набору примеров - for t in T: - self.learn(la, t[0], t[1]) -```` - -В строке 25 мы осуществляем корректировку весов. Посмотрим, как учится -и работает наш персептрон. - -````python -#создаем класс двумерного персептрона -perceptron = Perceptron(2) -la = 0.1 #константа обучения -#создаем примеры -T = list() -T.append([[2,1], 1]) -T.append([[3,2], 1]) -T.append([[4,1], 1]) -T.append([[1,2], -1]) -T.append([[2,3], -1]) -T.append([[5,7], -1]) -perceptron.learning(la, T) # обучение персептрона -print(perceptron.w) #печатаем веса -#проверим работу на тестовых примерах -print(perceptron.sign([1.5, 2])) -print(perceptron.sign([3, 1.5])) -print(perceptron.sign([5, 1])) -print(perceptron.sign([5, 10])) -```` - -Вывод: - -````code -[0.1, -0.1] --1 -1 -1 --1 -```` - -Видим, что что наш персептрон отлично научился распознавать образы, -относя к классу 1 те вектора, у которых первая компонента больше второй, -и к классу -1 в противном случае. Хотя устройство персептронов довольно -простое эти конструкции могут решать и практические задачи. Кроме того, -из таких персептронов состоят нейронные сети. - -**Теоретический материал – Реализация нейронной сети на Python** - -Нейронная сеть — это функциональная единица машинного или -глубокого обучения. Она имитирует поведение человеческого мозга, -поскольку основана на концепции биологических нейронных сетей. - -Наиболее распространенный тип нейронной сети, называемый -многослойным персептроном (MLP), представляет собой функцию, которая -отображает входные данные в выходные данные. MLP имеет один входной -слой и один выходной слой. Между ними может быть один или несколько -скрытых слоев. Входной слой имеет тот же набор нейронов, что и признаки. -Скрытые слои также могут иметь более одного нейрона. Каждый нейрон -представляет собой линейную функцию, к которой применяется функция -активации для решения сложных задач. Выход каждого слоя подается в -качестве входных данных для всех нейронов следующих слоев. - -Нейронные сети способны решать множество задач. В основном они -состоят из таких компонентов: - -− входной слой (получение и передача данных); - -− скрытый слой (вычисление); - -− выходной слой. - -Чтобы реализовать нейросеть, необходимо -понимать, как ведут себя нейроны. Нейрон одновременно -принимает несколько входов, обрабатывает эти данные и выдает -один выход. Нейронная сеть представляет собой блоки ввода и -вывода, где каждое соединение имеет соответствующие веса (это -сила связи нейронов; чем вес больше, тем один нейрон сильнее -влияет на другой). Данные всех входов умножаются на веса: - -− 𝑥 → 𝑥 ∗ 𝑤1; -− 𝑦 → 𝑦 ∗ 𝑤2. - -Входы после взвешивания суммируются с прибавлением значения -порога «c»: - -𝑥𝑤1 + 𝑦𝑤2 + 𝑐 - -Полученное значение пропускается через функцию активации -(сигмоиду), которая преобразует входы в один выход: - -𝑧 = 𝑓(𝑥𝑤1 + 𝑦𝑤2 + 𝑐). - -Так выглядит сигмоида: - -Интервал результатов сигмоиды — от 0 до 1. Отрицательные числа -стремятся к нулю, а положительные — к единице. - -Например. Пусть нейрон имеет следующие значения: 𝑤 = [0,1] 𝑐 = 4. - -Входной слой: 𝑥 = 2, 𝑦 = 3. - -((𝑥𝑤1) + (𝑦𝑤2)) + 𝑐 = 20 + 31 + 4 = 7. -𝑧 = 𝑓(7) = 0.99. - -**1.1.2 Пример** - -Решение - -Для написания кода нейрона будем использовать библиотеку Pytnon -— NumPy: - -````python -import numpy as np -def sigmoid(x): - #функция активации: f(x) = 1/(1+e^(-x)) - return 1 / (1 + np.exp(-x)) -class Neuron: - def __init__(self, weights, bias): - self.weights = weights - self.bias = bias - def feedforward(self, inputs): - total = np.dot(self.weights, inputs) + self.bias - return sigmoid(total) - -weights = np.array([0, 1]) #w1=0, w2=1 -bias = 4 #c=4 -n = Neuron(weights, bias) -x = np.array([2, 3])#x=2, y =3 -print(n.feedforward(x))#0.9990889488055994 -```` - -Вывод: - -````code -0.9990889488055994 -```` - -Нейросеть состоит из множества соединенных между собой нейронов. -Пример несложной нейронной сети -где: - -𝑥1, 𝑥2 — входной слой; - -ℎ1, ℎ2 — скрытый слой с двумя нейронами; - -𝑜1 — выходной слой. - -Например. - -Представим, что нейроны из графика выше имеют веса -[0, 1]. Пороговое значение (𝑏) у обоих нейронов равно 0 и они имеют -идентичную сигмоиду. - -При входных данных 𝑥 = [2, 3] получим: - -ℎ1 = ℎ2 = 𝑓(𝑤𝑥 + 𝑏) = 𝑓((02) + (1 ∗ 3) + 0) = 𝑓(3) = 0.95. - -𝑜1 = 𝑓(𝑤 ∗ [ℎ1, ℎ2] + 𝑏) = 𝑓((0ℎ1) + (1ℎ2) + 0) = 𝑓(0.95) = 0.72. - -Входные данные по нейронам передаются до тех пор, пока не -получатся выходные значения. - -````python -import numpy as np -class OurNeuralNetwork: - #Данные нейросети: - #два входа - #два нейрона в скрыттых слоях(h1,h2) - #выход(о1) - #Нейроны имеют идентичные веса и пороги: - #w=[0,1] - #b=0 - def __init__(self): - weights = np.array ([0, 1]) - bias = 0 - #Класс Neuron из предыдущего раздела - self.h1 = Neuron(weights, bias) - self.h2 = Neuron(weights, bias) - self.o1 = Neuron(weights, bias) - def feedforward(self, x): - out_h1 = self.h1.feedforward(x) - out_h2 = self.h2.feedforward(x) - #входы для о1 - это выходы для h1 и h2 - out_o1 = self.o1.feedforward(np.array([out_h1, out_h2])) - return out_o1 - -network = OurNeuralNetwork() -x = np.array([2, 3]) -print(network.feedforward(x))#0.7216325609518421 -```` - -Вывод: - -````code -0.7216325609518421 -```` - -**Теоретический материал – Обучение нейронной сети** - -Обучение нейросети — это подбор весов, которые соответствуют всем -входам для решения поставленных задач. -Класс нейронной сети: - -``` -class NeuralNetwork: - def __init__(self, x, y): - self.input = x - self.weights1 = np.random.rand(self.input.shape[1], 4) - self.weights2 = np.random.rand(4,1) - self.y = y - self.output = np.zeros(y.shape) -``` -Каждый этап процесса обучения состоит из: -* прямого распространения (прогнозируемый выход); -* обратного распространения (обновление весов и смещений). - -Например: - -Дана двуслойная нейросеть: - -> ŷ = 𝜎(𝑤2𝜎(𝑤1𝑥 + 𝑏1 -) + 𝑏2 -). - -В данном случае на выход ŷ влияют только две переменные — 𝑤 (веса) и 𝑏 -(смещение). Настройку весов и смещений из данных входа или процесс -обучения нейросети можно изобразить так: - -**Прямое распространение.** - -Как видно, формула прямого распространения представляет собой -несложное вычисление: - -> ŷ = 𝜎(𝑤2𝜎(𝑤1𝑥 + 𝑏1) + 𝑏2) - -Далее необходимо добавить в код функцию прямого распространения. - -Предположим, что смещения в этом случае будут равны 0. - -``` -class NeuralNetwork: - def __init__(self, x, y): - self.input = x - self.weights1 = np.random.rand(self.input.shape[1], 4) - self.weights2 = np.random.rand(4,1) - self.y = y - self.output = np.zeros(self.y.shape) - - def feedforward(self): - self.layer1 = sigmoid(np.dot(self.input, self.weights1)) - self.output = sigmoid(np.dot(self.layer1, self.weights2)) - ``` -Чтобы вычислить ошибку прогноза, необходимо использовать функцию -потери. В примере уместно воспользоваться формулой суммы квадратов -ошибок — средним значением между прогнозируемым и фактическим -результатами: - -> 𝐸𝑟𝑟𝑜𝑟 = ∑(𝑦 − 𝑦̂)2 - -**Обратное распространение** - -Обратное распространение позволяет измерить производные в -обратном порядке — от конца к началу, и скорректировать веса и смещения. -Для этого необходимо узнать производную функции потери — тангенс угла -наклона. - -Производная функции по отношению к весам и смещениям позволяет -узнать градиентный спуск. Производная функции потери не содержит весов -и смещений, для ее вычисления необходимо добавить правило цепи: - -> 𝐿𝑜𝑠𝑠 (𝑦, 𝑦̂) = ∑(𝑦 − 𝑦̂)2𝑛𝑖=1𝜕𝐿𝑜𝑠𝑠 (𝑦, 𝑦̂)𝜕𝑊=𝜕𝐿𝑜𝑠𝑠 (𝑦, 𝑦̂)𝜕𝑦̂∙𝜕𝑦̂𝜕𝑧∙𝜕𝑧𝜕𝑊 == 2(𝑦 − 𝑦̂)∙ производную сигмоиды ∙ 𝑥 == 2(𝑦 − 𝑦̂) ∙ 𝑧(1 − 𝑧) ∙ 𝑥, - -где 𝑧 = 𝑊𝑥 + 𝑏. - -Благодаря этому правилу можно регулировать веса. Добавляем в код -Python функцию обратного распространения: - -``` -class NeuralNetwork: - def __init__(self, x, y): - self.input = x - self.weights1 = np.random.rand(self.input.shape[1], 4) - self.weights2 = np.random.rand(4,1) - self.y = y - self.output = np.zeros(self.y.shape) - - def feedforward(self): - self.layer1 = sigmoid(np.dot(self.input, self.weights1)) - self.output = sigmoid(np.dot(self.layer1, self.weights2)) - - def backprop(self): - d_weights2 = np.dot(self.layer1.T, (2 * (self.y - self.output) * sigmoid_derevative(self.output))) - d_weights1 = np.dot(self.input.T, (np.dot(2 * (self.y - self.output) * sigmoid_derivative(self.output), self.weights2.T) * sigmoid_derivative(self.layer1))) - - self.weights1 += d_weights1 - self.weights2 += d_weights2 - -``` -Нейронные сети базируются на определенных алгоритмах и -математических функциях. Сначала может казаться, что разобраться в них -довольно сложно. Но существуют готовые библиотеки машинного обучения -для построения и тренировки нейросетей, позволяющие не углубляться в их -устройство. - -**Задание** - -Реализовать классы нейросетей по аналогии с классом OurNeuralNetwork. -Данные нейросети: - -− три входа (𝑥1, 𝑥2, 𝑥3); - -− три нейрона в скрытых слоях (ℎ1, ℎ2, ℎ3); - -− выход (𝑜1). - -Нейроны имеют идентичные веса и пороги: - -− 𝑤 = [0.5, 0.5, 0.5] - -− 𝑏 = 0 - -Данные нейросети: - -− два входа (𝑥1, 𝑥2); - -− два нейрона в скрытых слоях (ℎ1, ℎ2); - -− два выхода (𝑜1, 𝑜2). - -Нейроны имеют идентичные веса и пороги: - -− 𝑤 = [1, 0]; - -− 𝑏 = 1. - -Решение: - -````python -import numpy as np -class NeuralNetwork: - def __init__(self): - weights = np.array ([0.5, 0.5, 0.5]) - bias = 0 - self.h1 = Neuron(weights, bias) - self.h2 = Neuron(weights, bias) - self.h3 = Neuron(weights, bias) - self.o1 = Neuron(weights, bias) - def feedforward(self, x): - out_h1 = self.h1.feedforward(x) - out_h2 = self.h2.feedforward(x) - out_h3 = self.h3.feedforward(x) - out_o1 = self.o1.feedforward(np.array([out_h1, out_h2, out_h3])) - return out_o1 - -network = NeuralNetwork() -x = np.array([2, 3, 4]) -print(network.feedforward(x)) -```` - -Вывод: - -````code -0.8151036049051821 -```` - -````python -import numpy as np -class NeuralNetwork: - def __init__(self): - weights = np.array ([1, 0]) - bias = 1 - self.h1 = Neuron(weights, bias) - self.h2 = Neuron(weights, bias) - self.o1 = Neuron(weights, bias) - self.o2 = Neuron(weights, bias) - def feedforward(self, x): - out_h1 = self.h1.feedforward(x) - out_h2 = self.h2.feedforward(x) - out_o1 = self.o1.feedforward(np.array([out_h1, out_h2])) - out_o2 = self.o2.feedforward(np.array([out_h2, out_h1])) - return np.array([out_o1, out_o2]) - -network = NeuralNetwork() -x = np.array([2, 3]) -print(network.feedforward(x)) -```` - -Вывод: - -````code -[0.87572705 0.87572705] -```` - -**Задание** - -Реализуйте классы нейронных сетей с использованием других функций -активации - -````python -import numpy as np -class NeuralNetwork: - def __init__(self): - weights = np.array ([1, 0]) - bias = 1 - self.h1 = Neuron(weights, bias) - self.h2 = Neuron(weights, bias) - self.o1 = Neuron(weights, bias) - - def sigmoid(x): - return 1 / (1 + np.exp(-x)) - - def feedforward(self, x): - out_h1 = self.h1.feedforward(x) - out_h2 = self.h2.feedforward(x) - out_o1 = self.o1.feedforward(np.array([out_h1, out_h2])) - return sigmoid(out_o1) - -network = NeuralNetwork() -x = np.array([2, 3]) -print(network.feedforward(x)) -```` - -Вывод: - -````code -0.7059359796302747 -```` - -````python -import numpy as np -class NeuralNetwork: - def __init__(self): - weights = np.array ([1, 0]) - bias = 1 - self.h1 = Neuron(weights, bias) - self.h2 = Neuron(weights, bias) - self.o1 = Neuron(weights, bias) - - def feedforward(self, x): - out_h1 = self.h1.feedforward(x) - out_h2 = self.h2.feedforward(x) - out_o1 = self.o1.feedforward(np.array([out_h1, out_h2])) - return np.tanh(out_o1) - -network = NeuralNetwork() -x = np.array([2, 3]) -print(network.feedforward(x)) -```` - -Вывод: - -````code -0.7042722267583229 -```` - -````python -import numpy as np -class NeuralNetwork: - def __init__(self): - weights = np.array ([1, 0]) - bias = 1 - self.h1 = Neuron(weights, bias) - self.h2 = Neuron(weights, bias) - self.o1 = Neuron(weights, bias) - - def feedforward(self, x): - out_h1 = self.h1.feedforward(x) - out_h2 = self.h2.feedforward(x) - out_o1 = self.o1.feedforward(np.array([out_h1, out_h2])) - return max(0, out_o1) - -network = NeuralNetwork() -x = np.array([2, 3]) -print(network.feedforward(x)) -```` - -Вывод: - -````code -0.8757270529783324 -```` - -**1.2. Введение в нейронные сети с помощью Scikit-Learn в Python** - -Теперь мы знаем, что такое нейронные сети и какие шаги необходимо -выполнить, чтобы построить простую нейронную сеть с плотными связями. -В этом разделе мы попытаемся построить простую нейронную сеть, которая -предсказывает класс, к которому принадлежит данное растение ириса. Мы -будем использовать библиотеку Python Scikit-Learn для создания нашей -нейронной сети. - -Sklearn предоставляет 2 оценщика для задач классификации и -регрессии соответственно: - -− MLPClassifier; - -− MLPRegressor - -Начнем с импорта необходимых библиотек. - -``` -import numpy as np -import pandas as pd -import matplotlip.pyplot as plt -import sklearn -``` - -**MLPClassifier** - -Загрузка данных - -Мы будем загружать два набора данных. - -Набор данных цифр: мы будем использовать набор данных цифр, -который имеет изображения размером 8x8 для цифр 0-9. Ниже мы будем -использовать цифровые данные для задач классификации. - -Набор данных о жилье в Бостоне: мы будем использовать набор -данных о жилье в Бостоне, который содержит информацию о различных -свойствах дома, таких как среднее количество комнат, уровень преступности -на душу населения в городе и т. д. Мы будем использовать его для задач -регрессии. - -Sklearn предоставляет оба этих набора данных. Мы можем загрузить -их, вызвав методы load_digits() и load_boston(). - -````python -from sklearn.datasets -import load_digits, load_boston - -digits = load_digits() -X_digits, Y_digits = digits.data, digits.target -print('Dataset Sizes : ' , X_digits.shape, Y_digits.shape) -```` - -````python -boston = load_boston() -X_boston, Y_boston = digits.data, digits.target -print('Dataset Sizes : ', X_boston.shape, Y_boston.shape) -```` - -Классификация - -MLPClassifier — это класс, доступный как часть модуля neuro_network -sklearn для выполнения задач классификации с использованием -многослойного персептрона. - -Как обычно разделим набор данных на две части: - -− данные обучения, которые будут использоваться для модели -обучения; - -− тестовые данные, по которым будет проверяться точность -обученной модели. - -Функция train_test_split модуля model_selection sklearn поможет нам -разделить данные на два набора: 80% для обучения и 20% для тестирования. - -Мы также используем seed(random_state=123) с train_test_split, чтобы мы всегда получали одно и то же разделение и могли сравнивать и воспроизволить результаты в будущем. - -````python -from sklearn.model_selection import train_test_split - -X_train, X_test, Y_train, Y_test = train_test_split(X_digits, Y_digits, train_size= 0.80, test_size= 0.20, - stratify=Y_digits, random_state=123) -print('Train/Test Sizes : ', X_train.shape, X_test.shape, Y_train.shape, Y_test.shape) -```` - -Для начала натренируем модель MLPClassifier с параметрами по умолчанию -для тренировочных данных. - -````python -from sklearn.neural_network import MLPClassifier - -mlp_classifier = MLPClassifier(random_state=123) -mlp_classifier.fit(X_train, Y_train) -MLPClassifier(activation='relu', alpha=0.0001, - batch_size='auto', beta_1=0.9, beta_2=0.999, - early_stopping=False, epsilon=1e-08, hidden_layer_sizes= (100,), - learning_rate='constant', learning_rate_init=0.001, - max_iter=200, momentum=0.9, n_iter_no_change=10, nesterovs_momentum=True, - power_t=0.5, random_state=123, shuffle=True, solver='adam' , - tol=0.0001, validation_fraction=0.1, verbose=False, warm_start=False) -```` - -````python -Y_preds = mlp_classifier.predict(X_test) - -print(Y_preds[:15]) -print(Y_test[:15]) -#Метод Score для оценки точностей моделей классификации -print('Test Accuracy : %.3f'%mlp_classifier.score(X_test, Y_test)) - -print('Training Accuracy : %.3f'%mlp_classifier.score(X_train, Y_train)) -```` - -Cоздадим метод plot_confusion_matrix(), который принимает исходные и предсказанные метки данных по модели. Затем он строит матрицу путаницы, -используя matplotlib. - -````python -from sklearn.metrics import confusion_matrix -import matplotlib.pyplot as plt - -def plot_confusion_matrix(Y_test, Y_preds): - conf_mat = confusion_matrix(Y_test, Y_preds) - fig = plt.figure(figsize=(6,6)) - plt.matshow(conf_mat, cmap=plt.cm.Blues, fignum=1) - plt.yticks(range(10), range(10)) - plt.xticks(range(10), range(10)) - plt.colorbar(); - for i in range(10): - for j in range(10): - plt.text(i -0.2, j+0.1, str(conf_mat[j, i]), color ='tab:red') - -plot_confusion_matrix(Y_test, mlp_classifier.predict(X_test)) -```` - -Ниже приведен список важных атрибутов, доступных с MLPClassifier, -которые могут предоставить значимую информацию после обучения -модели. - -− loss_ — возвращает убыток после завершения процесса обучения. - -− coefs_ — возвращает массив длины n_layers-1, где каждый элемент -представляет веса, связанные с уровнем i. - -− intercepts_ — возвращает массив длины n_layers-1, где каждый -элемент представляет собой перехват, связанный с персептронами -слоя i. - -− n_iter_ — количество итераций, для которых выполнялась оценка. - -− out_activation_ — возвращает имя функции активации выходного -слоя. - -````python -print('Loss : ', mlp_classifier.loss_) -print('Number of Coefs : ',len(mlp_classifier.coefs_)) -print('Number of Intercepts : ',len(mlp_classifier.intercepts_)) -print('Number of Intercepts for which Estimator Ran : ', mlp_classifier.n_iter_) -print('Name of Output layer Activation Function : ', mlp_classifier.out_activation_) -```` - -**MLPRegressor** - -MLPRegressor — это класс, доступный как часть библиотеки -neuro_network sklearn для выполнения задач регрессии с использованием -многослойного персептрона. Также разделим набор данных на две части: - -− данные обучения (80%), которые будут использоваться для -модели обучения; - -− тестовые данные (20%), по которым будет проверяться точность -обученной модели. - -````python -X_train, X_test, Y_train, Y_test = train_test_split(X_boston, Y_boston, - train_size= 0.80, test_size= 0.20, - stratify=Y_digits, random_state=123) -print('Train/Test Sizes : ', X_train.shape, X_test.shape, Y_train.shape, Y_test.shape) -```` - -````python -from sklearn.neural_network import MLPRegressor - -mlp_regressor = MLPRegressor(random_state=123) -mlp_regressor.fit(X_train, Y_train) -MLPClassifier(activation='relu', alpha=0.0001, - batch_size='auto', beta_1=0.9, beta_2=0.999, - early_stopping=False, epsilon=1e-08, hidden_layer_sizes= (100,), - learning_rate='constant', learning_rate_init=0.001, - max_iter=200, momentum=0.9, n_iter_no_change=10, nesterovs_momentum=True, - power_t=0.5, random_state=123, shuffle=True, solver='adam' , - tol=0.0001, validation_fraction=0.1, verbose=False, warm_start=False) -```` - -````python -Y_preds = mlp_regressor.predict(X_test) - -print(Y_preds[:10]) -print(Y_test[:10]) -#Метод Score оценивает точность модели классификации -print('Test R^2 Score : %.3f'%mlp_regressor.score(X_test, Y_test)) -print('Training R^2 Score : %.3f'%mlp_regressor.score(X_train, Y_train)) -```` - -MLPRegressor имеет все атрибуты такие же, как и у MLPClassifier: - -````python -print('Loss : ', mlp_regressor.loss_) -```` - -````python -print('Number of Coefs : ', len(mlp_regressor.coefs_)) -[weights.shape for weights in mlp_regressor.coefs_] -```` - -````python -print('Number of Iterations for which estimator Ran : ', mlp_regressor.n_iter_) -```` - -````python -print('Name of Output Layer Activation Function : ', mlp_regressor.out_activation_) -```` - -**Задание** - -Используйте классы MLPClassified и MLPRegressor для классификации и -регрессии произвольных данных из интернета. Проведите анализ -атрибуты, полученных моделей. - -Для классификации можете взять набор данных Ирисов: - -https://gist.githubusercontent.com/netj/8836201/raw/6f9306ad21398ea43cba4f7d537619d0e07d5ae3/iris.csv - -а для регрессии датасет зависимости заработной платы от опыта работы: - -https://raw.githubusercontent.com/AnnaShestova/salary-years-simple-linearregression/master/Salary_Data.csv - -````python -from sklearn.datasets import load_iris -from sklearn.neural_network import MLPClassifier -from sklearn.model_selection import train_test_split - -iris = load_iris() -X_iris, Y_iris = iris.data, iris.target -print('Dataset Sizes: ', X_iris, Y_iris) -```` - -````python -X_train, X_test, Y_train, Y_test = train_test_split(X_iris, Y_iris, train_size= 0.80, test_size= 0.20, stratify=Y_iris, random_state=123) -print('Train/Test Sizes : ', X_train.shape, X_test.shape, Y_train.shape, Y_test.shape) -```` - -````python -mlp_classifier = MLPClassifier(random_state=123) -mlp_classifier.fit(X_train, Y_train) -MLPClassifier(activation='relu', alpha=0.0001, - batch_size='auto', beta_1=0.9, beta_2=0.999, - early_stopping=False, epsilon=1e-08, hidden_layer_sizes= (100,), - learning_rate='constant', learning_rate_init=0.001, - max_iter=200, momentum=0.9, n_iter_no_change=10, nesterovs_momentum=True, - power_t=0.5, random_state=123, shuffle=True, solver='adam' , - tol=0.0001, validation_fraction=0.1, verbose=False, warm_start=False) -```` - -````python -Y_preds = mlp_classifier.predict(X_test) - -print(Y_preds[:15]) -print(Y_test[:15]) -print('Test Accuracy : %.3f'%mlp_classifier.score(X_test, Y_test)) -print('Training Accuracy : %.3f'%mlp_classifier.score(X_train, Y_train)) -```` - -````python -import pandas as pd -from sklearn.neural_network import MLPRegressor -from sklearn.model_selection import train_test_split - -dataframe = pd.read_csv('https://raw.githubusercontent.com/AnnaShestova/salary-years-simple-linear-regression/master/Salary_Data.csv') - -X_salary = dataframe.iloc[:, :1].values -Y_salary = dataframe.iloc[:, :1].values - -print('Dataset Sizes: ', X_salary, Y_salary) -```` - -````python -X_train, X_test, Y_train, Y_test = train_test_split(X_salary, Y_salary, train_size = 0.8, test_size=0.2, random_state = 123) -print('Train/Test Sizes : ', X_train.shape, X_test.shape, Y_train.shape, Y_test.shape) -```` - -````python -mlp_regressor = MLPRegressor(random_state=123) -mlp_regressor.fit(X_train, Y_train) -MLPClassifier(activation='relu', alpha=0.0001, - batch_size='auto', beta_1=0.9, beta_2=0.999, - early_stopping=False, epsilon=1e-08, hidden_layer_sizes= (100,), - learning_rate='constant', learning_rate_init=0.001, - max_iter=200, momentum=0.9, n_iter_no_change=10, nesterovs_momentum=True, - power_t=0.5, random_state=123, shuffle=True, solver='adam' , - tol=0.0001, validation_fraction=0.1, verbose=False, warm_start=False) -```` - -````python -Y_preds = mlp_regressor.predict(X_test) -print(Y_preds[:10]) -print(Y_test[:10]) -print('Test R^2 Score : %.3f'%mlp_regressor.score(X_test, Y_test)) -print('Training R^2 Score : %.3f'%mlp_regressor.score(X_train, Y_train)) -```` - -````python -print('\nLoss : ', mlp_regressor.loss_) -```` - -````python -print('Number of Coefs : ', len(mlp_regressor.coefs_)) -[weights.shape for weights in mlp_regressor.coefs_] -```` - -````python -print('Number of Iterations for which estimator Ran : ', mlp_regressor.n_iter_) -```` - -````python -print('Name of Output Layer Activation Function : ', mlp_regressor.out_activation_) -```` diff --git a/content/ai/notebook-08-clustering.mdx b/content/ai/notebook-08-clustering.mdx deleted file mode 100644 index 77e588e..0000000 --- a/content/ai/notebook-08-clustering.mdx +++ /dev/null @@ -1,370 +0,0 @@ ---- -title: "AI Notebook 8 — Кластеризация" -sidebar_position: 9 -description: "Неподконтрольное обучение и методы группировки данных." -slug: "/ai/notebook-08-clustering" ---- - -**Теоретический материал - Кластеризация** - -Кластеризация — разбиение множества объектов на подмножества, называемые кластерами. Кластеризация, будучи математическим алгоритм имеет широкое применение во многих сферах: начиная с таких естественно научных областей как биология и физиология, и заканчивая маркетингом в социальных сетях и поисковой оптимизацией. Цель – разделить данные таким образом, чтобы точки, находящие в одном и том же кластере, были очень схожи друг с другом, а точки, находящиеся в разных кластерах, отличались друг от друга. Как и алгоритмы классификации, алгоритмы кластеризации присваивают (или прогнозируют) каждой точке данных номер кластера, которому она принадлежит. - -Задача кластеризации относится к широкому классу задач обучения без учителя. Кластеризацию применяют для анализа и поиска признаков по которым можно объединить объекты, сжатия данных и поиска новизны (что не входит ни в один кластер) В чем отличие классификации и кластеризации: при классификации у вас есть набор предопределенных классов, вы обучаете ИИ на наборе примеров и потом хотите знать, к какому классу принадлежит новый объект. При кластеризации вы используете алгоритм, который пытается сгруппировать набор объектов и определить, существует ли какая-либо взаимосвязь между объектами. - -*Метод k-средних* - -Кластеризация k-средних – один из самых простых и наиболее часто используемых алгоритмов кластеризации. Сначала выбирается число кластеров k. После выбора значения k алгоритм k-средних отбирает точки, которые будут представлять центры кластеров (cluster centers). Затем для каждой точки данных вычисляется его евклидово расстояние до каждого центра кластера. Каждая точка назначается ближайшему центру кластера. Алгоритм вычисляет центроиды (centroids) – центры тяжести кластеров. Каждый центроид – это вектор, элементы которого представляют собой средние значения характеристик, вычисленные по всем точкам кластера. Центр кластера смещается в его центроид. Точки заново назначаются ближайшему центру кластера. Этапы изменения центров кластеров и переназначения точек итеративно повторяются до тех пор, пока границы кластеров и расположение центроидов не перестанут изменяться, т.е. на каждой итерации в каждый кластер будут попадать одни и те же точки данных. - -Алгоритм k-средних, наверное, самый популярный и простой алгоритм кластеризации и очень легко представляется в виде простого псевдокода: - -Выбрать количество кластеров k, которое нам кажется оптимальным для наших данных. -Высыпать случайным образом в пространство наших данных k точек (центроидов). -Для каждой точки нашего набора данных посчитать, к какому центроиду она ближе. -Переместить каждый центроид в центр выборки, которую мы отнесли к этому центроиду. -Повторять последние два шага фиксированное число раз, либо до тех пор пока центроиды не "сойдутся" (обычно это значит, что их смещение относительно предыдущего положения не превышает какого-то заранее заданного небольшого значения). - -Стоит заметить, что можно рассчитывать расстояние между центройдами по любой метрике (Евклидовой, Хемминговой и т.д.). - -Сгенерируем 2D-набор данных, содержащий 4 разных больших объекта, а затем применим алгоритм k-средних, чтобы увидеть результат. - -````python -# начнем с импорта необходимых пакетов -import matplotlib.pyplot as plt -import seaborn as sns -import numpy as np -from sklearn.cluster import KMeans -# сгенерируем данные -from sklearn.datasets import make_blobs -x, y_true = make_blobs(n_samples=400, centers=4, cluster_std=0.60, random_state=0) -plt.scatter(x[:, 0], x[:, 1], s=20) -plt.show() -```` - -````python -# Затем создадим объектт KMeans вместе с указанием количества кластеров -# и обучим модель и сделаем прогноз следующим образом: -kmeans = KMeans(n_clusters=4) -kmeans.fit(x) -y_kmeans = kmeans.predict(x) -# Построим и визуализируем центры кластера, выбранные с помощью k-средних оценки Python -from sklearn.datasets import make_blobs -x, y_true = make_blobs(n_samples=400, centers=4, cluster_std=0.60, random_state=0) -plt.scatter(x[:, 0], x[:, 1], c=y_kmeans, s=20, cmap='summer') -centers = kmeans.cluster_centers_ -plt.scatter(centers[:, 0], centers[:, 1], c='blue', s=100, alpha=.9) -plt.show() -```` - -*1.1.1 Пример* - -Проведем кластеризацию K-средних к набору простых цифр. K-means попытается идентифицировать похожие цифры - -````python -# Начнем с импорта необходимых пакетов -import matplotlib.pyplot as plt -import seaborn as sns -import numpy as np -from sklearn.cluster import KMeans - -# загрузим набор цифр из sklearn -from sklearn.datasets import load_digits -digits = load_digits() -digits.data.shape -```` - -Вывод: - -````code -(1797, 64) -```` - -````python -# выполним кластеризацию -kmeans = KMeans(n_clusters=10, random_state=0) -clusters = kmeans.fit_predict(digits.data) -kmeans.cluster_centers_.shape -```` - -Вывод: - -````code -/usr/local/lib/python3.10/dist-packages/sklearn/cluster/_kmeans.py:870: FutureWarning: The default value of `n_init` will change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly to suppress the warning - warnings.warn( -```` - -````code -(10, 64) -```` - -````python -fig, ax = plt.subplots(2, 5, figsize=(8, 3)) -centers = kmeans.cluster_centers_.reshape(10, 8, 8) -for axi, center in zip(ax.flat, centers): - axi.set(xticks=[], yticks=[]) - axi.imshow(center, interpolation='nearest', cmap=plt.cm.binary) -```` - -**Задание 1** - -Дан массив данных. Требуется провести кластерный анализ данных методом k-средних. Поэкспериментируйте с количеством кластеров. - -````python -def cluster_analysis(x, clusters): - x, y_true = make_blobs(n_samples=clusters * 100, centers=clusters, cluster_std=.6, random_state=0) - plt.scatter(x[:, 0], x[:, 1], s=20) - plt.show() - - kmeans = KMeans(n_clusters=clusters) - kmeans.fit(x) - y_kmeans = kmeans.predict(x) - - x, y_true = make_blobs(n_samples=clusters * 100, centers=clusters, cluster_std=.6, random_state=0) - plt.scatter(x[:, 0], x[:, 1], c=y_kmeans, s=20, cmap='summer') - centers = kmeans.cluster_centers_ - plt.scatter(centers[:, 0], centers[:, 1], c='blue', s=100, alpha=.9) - plt.show() - -X = np.array([[5, 3], - [10, 15], - [15, 15], - [24, 10], - [30, 45], - [85, 70], - [71, 80], - [60, 78], - [55, 52], - [80, 91]]) -cluster_analysis(X, 4) # количество кластеров = 4 -cluster_analysis(X, 10) # количество кластеров = 10 -```` - -**Задание 2** - -Выполните кластеризацию для набора данных ирисов Фишера. Выполните предсказания для модели. Поэкспериментируйте с количеством кластеров. - -````python -from sklearn.datasets import load_iris - -def clusterization(x, amount): - print(x.data.shape) - kmeans = KMeans(n_clusters=amount, random_state=0) - clusters = kmeans.fit_predict(x.data) - print(kmeans.cluster_centers_.shape) - - fig, ax = plt.subplots(amount // 2, 2, figsize=(10, 3)) - centers = kmeans.cluster_centers_.reshape(amount, 2, 2) - for axi, center in zip(ax.flat, centers): - axi.set(xticks=[], yticks=[]) - axi.imshow(center, interpolation='nearest', cmap=plt.cm.binary) - -X = load_iris() -clusterization(X, 4) -```` - -````python -clusterization(X, 10) -```` - -**Теоретический материал - Иерархическая кластеризация** - -Алгомеративная кластеризация относится к семейству алгоритмов кластеризации, в основе которых лежат одинаковые принципы: алгоритм начинает свою работу с того, что каждую точку данных заносит в свой собственный кластер и по мере выполнения объединяет два наиболее схожих между собой кластера до тех пор, пока не будет удовлетворен определенный критерий остановки. Зачастую данным критерием выступает это количество кластеров, поэтому схожие между собой кластеры объединяются до тех пор, пока не останется заданное число кластеров. - -Результатом агломеративной кластеризации является иерархическая кластеризация. Кластеризация выполняется итеративно, и каждая точка совершает путь от отдельной точки-кластера до участника итогового кластера. На каждом промежуточном шаге происходит кластеризация данных (с разным количеством кластеров). Иногда полезно сразу взглянуть на все возможные кластеризации. Следующий пример показывает наложение всех возможных кластеризаций, показанных на рис. и дает некоторое представление о том, как каждый кластер распадается на более мелкие кластеры. - -**1.1.2 Пример** - -Построить дендрограмму для заданного массива данных. - -````python -import matplotlib.pyplot as plt -import numpy as np -X = np.array( -[[7, 8], [12, 20], [17, 19], [26, 15], [32, 37], [87, 75], [73, 85], [62, 80], [73, 60], [87, 96]]) -labels = range(1, 11) -plt.figure(figsize=(10, 7)) -plt.subplots_adjust(bottom=.1) -plt.scatter(X[:, 0], X[:, 1], label='True Position') -for label, x, y in zip(labels, X[:, 0], X[:, 1]): - plt.annotate( - label, xy=(x, y), xytext=(-3, 3), textcoords='offset points', ha='right', va='bottom') -plt.show() -```` - -Далее построим дендрограмму для точек данных с помощью библиотеки Scipy - -````python -from scipy.cluster.hierarchy import dendrogram, linkage -from matplotlib import pyplot as plt -linked = linkage(X, 'single') -label_list = range(1, 11) -plt.figure(figsize=(10, 7)) -dendrogram(linked, orientation='top', labels=label_list, distance_sort='descending', show_leaf_counts=True) -plt.show() -```` - -Далее нам нужно импортировать класс для кластеризации и вызвать его метод fit_predict для прогнозирования кластера. - -````python -from sklearn.cluster import AgglomerativeClustering -cluster = AgglomerativeClustering(n_clusters=2, affinity='euclidean', linkage='ward') -cluster.fit_predict(X) -plt.scatter(X[:, 0], X[:, 1], c=cluster.labels_, cmap='rainbow') -```` - -**Пример** - -В этом примере мы выполним иерархическую кластеризацию реальных данных и посмотрим, как ее можно использовать для решения реальной проблемы. Выполним кластеризацию данных по набору https://raw.githubusercontent.com/lucko515/clustering-python/master/Customer%20in%20Mall%20clusterng/Mall_Customers.csv - -Задача, которую мы собираемся решить в этом разделе, состоит в том, чтобы разделить клиентов на разные группы в зависимости от их покупательских тенденций. - -````python -# импортируем библиотеки -import matplotlib.pyplot as plt -import pandas as pd -import numpy as np - -# загрузим набор данных -url = r'https://raw.githubusercontent.com/lucko515/clustering-python/master/Customer%20in%20Mall%20clusterng/Mall_Customers.csv' -customer_data = pd.read_csv(url) -customer_data.head() -```` - -Вывод: - -````code - CustomerID Genre Age Annual Income (k$) Spending Score (1-100) -0 1 Male 19 15 39 -1 2 Male 21 15 81 -2 3 Female 20 16 6 -3 4 Female 23 16 77 -4 5 Female 31 17 40 -```` - -````python -customer_data.shape -```` - -Вывод: - -````code -(200, 5) -```` - -Наш набор данных состоит из пяти столбцов. Чтобы просмотреть результаты в двумерном пространстве, мы сохраним только два из них:«Годовой доход» (в тысячах долларов) и «Оценка расходов» (1–100). Столбец «Оценка расходов» показывает, как часто человек тратит деньги в торговом центре по шкале от 1 до 100, где 100 — это самый высокий расход. Выполним следующий скрипт, чтобы отфильтровать первые три столбца из нашего набора данных: - -````python -data = customer_data.iloc[:, 3:5].values -```` - -Наш набор данных состоит из пяти столбцов. Чтобы просмотреть результаты в двумерном пространстве, мы сохраним только два из них:«Годовой доход» (в тысячах долларов) и «Оценка расходов» (1–100). Столбец «Оценка расходов» показывает, как часто человек тратит деньги в торговом центре по шкале от 1 до 100, где 100 — это самый высокий расход. Выполним следующий скрипт, чтобы отфильтровать первые три столбца из нашего набора данных: - -````python -import scipy.cluster.hierarchy as shc -#figure(figsize=(28, 12), dpi=180) -plt.figure(figsize=(10, 7)) -plt.title('Customer Dendrograms') -dend = shc.dendrogram(shc.linkage(data, method='ward')) -```` - -Если мы нарисуем горизонтальную линию, которая проходит через самое длинное расстояние без горизонтальной линии, мы получим 5 кластеров. Теперь мы знаем количество кластеров для нашего набора данных, следующим шагом будет группировка точек данных в эти пять кластеров. - -Для этого мы снова воспользуемся классом AgglomerativeClustering библиотеки sklearn.cluster. - -````python -from sklearn.cluster import AgglomerativeClustering - -cluster = AgglomerativeClustering(n_clusters=5, affinity='euclidean', linkage='ward') -cluster.fit_predict(data) -```` - -Вывод: - -````code -/usr/local/lib/python3.10/dist-packages/sklearn/cluster/_agglomerative.py:983: FutureWarning: Attribute `affinity` was deprecated in version 1.2 and will be removed in 1.4. Use `metric` instead - warnings.warn( -```` - -````code -array([4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, - 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 1, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 0, 2, 0, 2, - 1, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 1, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 2, 1, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, - 0, 2]) -```` - -В качестве последнего шага давайте построим кластеры, чтобы увидеть, как на самом деле были сгруппированы наши данные: - -````python -plt.figure(figsize=(10, 7)) -plt.scatter(data[:, 0], data[:, 1], c=cluster.labels_, cmap='rainbow') -```` - -**Задание** - -Выполните иерархическую кластеризацию для набора данных об ирисах Фишера. При этом необходимо использовать любые два признака (всего их четыре). - -````python -import matplotlib.pyplot as plt -import pandas as pd -import numpy as np -from sklearn.datasets import load_iris - -iris_data = load_iris() -data = pd.DataFrame(data=iris_data.data, columns=iris_data.feature_names) -data.head() -```` - -Вывод: - -````code - sepal length (cm) sepal width (cm) petal length (cm) petal width (cm) -0 5.1 3.5 1.4 0.2 -1 4.9 3.0 1.4 0.2 -2 4.7 3.2 1.3 0.2 -3 4.6 3.1 1.5 0.2 -4 5.0 3.6 1.4 0.2 -```` - -````python -data.shape -```` - -Вывод: - -````code -(150, 4) -```` - -````python -data = data.iloc[:, 2:4].values -```` - -````python -import scipy.cluster.hierarchy as shc -plt.figure(figsize=(10, 7)) -plt.title('Iris Dendrograms') -dend = shc.dendrogram(shc.linkage(data, method='ward')) -```` - -````python -from sklearn.cluster import AgglomerativeClustering - -cluster = AgglomerativeClustering(n_clusters=4, affinity='euclidean', linkage='ward') -cluster.fit_predict(data) - -plt.figure(figsize=(10, 7)) -plt.scatter(data[:, 0], data[:, 1], c=cluster.labels_, cmap='rainbow') -```` - -Вывод: - -````code -/usr/local/lib/python3.10/dist-packages/sklearn/cluster/_agglomerative.py:983: FutureWarning: Attribute `affinity` was deprecated in version 1.2 and will be removed in 1.4. Use `metric` instead - warnings.warn( -```` - diff --git a/content/algorithms/getting-started.mdx b/content/algorithms/getting-started.mdx deleted file mode 100644 index 845f31b..0000000 --- a/content/algorithms/getting-started.mdx +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Введение -description: Навигация по учебной документации проекта StackMIREA. -slug: /intro ---- - -# StackMIREA Docs - -Этот сайт собирает практики в формате учебных модулей. - -Что внутри: - -- раздел `Python` с практиками по ООП/ФВП и отдельным блоком AI-ноутбуков; -- раздел `Java` с 24 задачами: от основ до паттернов проектирования; -- унифицированная структура каждой практики: задание, решение, описание, важные моменты и вывод. - -## Как пользоваться - -1. Выберите трек: `Python` или `Java`. -2. Откройте нужную практику по номеру. -3. Сначала прочитайте задание, затем разберите пример кода. -4. Сопоставьте материал с исходниками в репозитории. - -:::tip -Используйте правый блок **On this page** для быстрого перехода по большим документам. -::: - -## Формат MDX - -Поддерживаются callout-блоки, fenced code и кастомный рендеринг через Shiki: - -```tsx filename="example.mdx" -:::info -Этот блок будет отрисован как ``. -::: -``` - -## Исходники - -- Python: `pr_Python/` -- Java: `docs/java/` и `content/java/` -- GitHub: [minkinad/StackMIREA](https://github.com/minkinad/StackMIREA) diff --git a/content/algorithms/index.mdx b/content/algorithms/index.mdx deleted file mode 100644 index 91a3841..0000000 --- a/content/algorithms/index.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Algorithms -description: Вводные и вспомогательные материалы StackMIREA Docs. -order: 1 ---- - -## Что внутри - -- Введение и навигация по проекту -- MDX-структура и правила оформления -- Связь с Python и Java треками diff --git a/content/bigdata/index.mdx b/content/bigdata/index.mdx deleted file mode 100644 index c2ea7a2..0000000 --- a/content/bigdata/index.mdx +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: BigData -description: Практики по анализу больших данных, ML, классификации и кластеризации. -order: 1 ---- - -# BigData - обзор - -В этом разделе собраны практические работы по дисциплине BigData в формате MDX. Материалы охватывают вводную часть, анализ данных, регрессию, прикладные кейсы со страховыми данными, классификацию, кластеризацию, ансамблевые методы и итоговую работу. - -## Что внутри - -- ввод в BigData и организацию практических работ; -- анализ и подготовка данных; -- регрессионные задачи и работа с датасетами; -- классификация, кластеризация и ансамблевое обучение; -- итоговая практика с оформлением результата. - -## Практики - -- [Практика 1. Введение в BigData](./practice-01-introduction) - вводная часть, цели курса и структура дальнейшей работы. -- [Практика 2. Аналитика данных](./practice-02-data-analysis) - базовый анализ и интерпретация данных. -- [Практика 3. Регрессия и наборы данных](./practice-03-regression-and-datasets) - построение регрессионных моделей и работа с источниками данных. -- [Практика 4. Анализ данных страхования](./practice-04-insurance-analysis) - прикладной разбор страхового датасета. -- [Практика 5. Классификация](./practice-05-classification) - методы классификации и сравнение результатов. -- [Практика 6. Кластеризация](./practice-06-clustering) - группировка данных и анализ кластеров. -- [Практика 7. Ансамблевое обучение](./practice-07-ensemble-learning) - ансамбли моделей и повышение качества прогноза. -- [Практика 8. Итоговая работа](./practice-08-final-report) - финальное оформление и сбор результатов по разделу. - -## Как проходить раздел - -- Идите по порядку: практики выстроены от базового знакомства к более сложным моделям. -- Для задач с данными держите рядом материалы из `resources/bigdata` и используйте их как входные датасеты. -- После изучения `Практики 7` удобно переходить к `Практике 8` для сборки итогового отчета. - -## Ресурсы - -Файлы с датасетами и дополнительными материалами лежат в папке: - -- [resources/bigdata (GitHub)](https://github.com/minkinad/StackMIREA/tree/main/resources/bigdata) diff --git a/content/bigdata/practice-01-introduction.mdx b/content/bigdata/practice-01-introduction.mdx deleted file mode 100644 index 6dd5caa..0000000 --- a/content/bigdata/practice-01-introduction.mdx +++ /dev/null @@ -1,613 +0,0 @@ ---- -title: Практика 1. Введение в BigData -description: Базовые операции и знакомство с форматом работы. -order: 2 ---- - -## Wiki-версия - -# Практическая работа №1 - -1. Установить Python, если это не было сделано ранее. - -2. Написать программу, которая вычисляет площадь фигуры, -параметры которой подаются на вход. Фигуры, которые подаются на вход: -треугольник, прямоугольник, круг. Результатом работы является словарь, где -ключ – это название фигуры, а значение – это площадь. - -```python -import math - -def calculate_areas(figures): - """ - figures — список словарей с параметрами фигур, пример: - [ - {'type': 'треугольник', 'base': 10, 'height': 5}, - {'type': 'прямоугольник', 'width': 4, 'height': 6}, - {'type': 'круг', 'radius': 3} - ] - - Возвращает словарь {название_фигуры: площадь}. - """ - areas = {} - - for fig in figures: - shape = fig.get('type').lower() - - if shape == 'треугольник': - base = fig.get('base') - height = fig.get('height') - if base is not None and height is not None: - area = 0.5 * base * height - areas['треугольник'] = area - - elif shape == 'прямоугольник': - width = fig.get('width') - height = fig.get('height') - if width is not None and height is not None: - area = width * height - areas['прямоугольник'] = area - - elif shape == 'круг': - radius = fig.get('radius') - if radius is not None: - area = math.pi * radius ** 2 - areas['круг'] = area - - return areas - - -# Пример использования: -figures = [ - {'type': 'треугольник', 'base': 10, 'height': 5}, - {'type': 'прямоугольник', 'width': 4, 'height': 6}, - {'type': 'круг', 'radius': 3} -] - -result = calculate_areas(figures) -print(result) -# Вывод: {'треугольник': 25.0, 'прямоугольник': 24, 'круг': 28.274333882308138} -``` - -**Вывод:** - -```text -{'треугольник': 25.0, 'прямоугольник': 24, 'круг': 28.274333882308138} -``` - -3. Написать программу, которая на вход получает два числа и -операцию, которую к ним нужно применить. Должны быть реализованы -следующие операции: +, -, /, //, abs – модуль, pow или ** – возведение в -степень. - -```python -def calculator(a, b, operation): - if operation == '+': - return a + b - elif operation == '-': - return a - b - elif operation == '/': - if b == 0: - return "Ошибка: деление на ноль" - return a / b - elif operation == '//': - if b == 0: - return "Ошибка: деление на ноль" - return a // b - elif operation == 'abs': - # Игнорируем b, возвращаем модуль a - return abs(a) - elif operation == 'pow' or operation == '**': - return a ** b - else: - return "Ошибка: неизвестная операция" - -# Пример использования: -a = float(input("Введите первое число: ")) -b = float(input("Введите второе число: ")) -operation = input("Введите операцию (+, -, /, //, abs, pow, **): ") - -result = calculator(a, b, operation) -print("Результат:", result) -``` - -**Вывод:** - -```text -Введите первое число: 5 -Введите второе число: 4 -Введите операцию (+, -, /, //, abs, pow, **): // -Результат: 1.0 -``` - -4. Напишите программу, которая считывает с консоли числа (по -одному в строке) до тех пор, пока сумма введённых чисел не будет равна 0 и -после этого выводит сумму квадратов всех считанных чисел. - -```python -def sum_squares_until_zero_sum(): - numbers = [] - total_sum = 0 - - while True: - try: - num = float(input("Введите число: ")) - except ValueError: - print("Ошибка: введите корректное число.") - continue - - numbers.append(num) - total_sum += num - - if total_sum == 0: - break - - sum_of_squares = sum(x**2 for x in numbers) - print("Сумма квадратов введённых чисел:", sum_of_squares) - -# Запуск функции -sum_squares_until_zero_sum() -``` - -**Вывод:** - -```text -Введите число: 3 -Введите число: -3 -Сумма квадратов введённых чисел: 18.0 -``` - -5. Напишите программу, которая выводит последовательность -чисел, длинною N, где каждое число повторяется столько раз, чему оно равно. -На вход программе передаётся неотрицательное целое число N. Например, -если N = 7, то программа должна вывести 1 2 2 3 3 3 4. Вывод элементов списка -через пробел – print(*list). - -```python -def generate_sequence(N): - result = [] - num = 1 - while len(result) < N: - result.extend([num] * num) - num += 1 - # Ограничиваем длину последовательности ровно N элементами - return result[:N] - -# Чтение входного значения -N = int(input("Введите неотрицательное целое число N: ")) - -sequence = generate_sequence(N) -print(*sequence) -``` - -**Вывод:** - -```text -Введите неотрицательное целое число N: 7 -1 2 2 3 3 3 4 -``` - -6. -Даны два списка: - -А = [1, 2, 3, 4, 2, 1, 3, 4, 5, 6, 5, 4, 3, 2] - -В = [‘a’, ’b’, ’c’, ’c’, ’c’, ’b’, ’a’, ’c’, ’a’, ’a’, ’b’, ’c’, ’b’, ’a’] - -Создать словарь, в котором ключи – это содержимое списка В, а -значения для ключей словаря – это сумма всех элементов списка А в -соответствии с буквой, содержащийся на той же позиции в списке В. - -Пример результата программы: \{‘a’ : 10, ‘b’ : 15, ‘c’ : 6\}. - -```python -A = [1, 2, 3, 4, 2, 1, 3, 4, 5, 6, 5, 4, 3, 2] -B = ['a', 'b', 'c', 'c', 'c', 'b', 'a', 'c', 'a', 'a', 'b', 'c', 'b', 'a'] - -result = {} -for key, value in zip(B, A): - result[key] = result.get(key, 0) + value - -print(result) -``` - -**Вывод:** - -```text -{'a': 17, 'b': 11, 'c': 17} -``` - -Скачать и загрузить данные о стоимости домов в калифорнии, -используя библиотеку sklearn. - -8. Использовать метод info(). - -9. Узнать, есть ли пропущенные значения, используя isna().sum(). - -10. Вывести записи, где средний возраст домов в районе более 50 лет и -население более 2500 человек, используя метод loc(). - -11. Узнать максимальное и минимальное значения медианной -стоимости дома. - -12. Используя метод apply(), вывести на экран название признака и его -среднее значение. - -13. Составить отчет о проделанной работе. В отчете должен быть -представлен код и результаты его выполнения с выводами. - - - -Отчёт о проделанной работе: - - - Данные о стоимости домов в Калифорнии успешно загружены с использованием sklearn.datasets.fetch_california_housing с параметром as_frame=True для удобной работы с pandas DataFrame. - - - Метод info() предоставил сведения о структуре данных: количество строк (20640), типы столбцов и отсутствие пропущенных значений. - - - Проверка на пропущенные значения с помощью isna().sum() подтвердила, что данные полные, без отсутствующих значений. - - - Отфильтрованы записи районов с домами старше 50 лет и населением свыше 2500 человек, что позволяет выделить специфические участки для дополнительного анализа. - - - Найдены максимальное и минимальное значение целевой переменной — медианной стоимости дома, что дает ориентировку по разбросу цен. - - - Использование apply() помогло быстро вывести средние значения всех признаков для общего понимания их распределения. - - Эти шаги создают прочную основу для дальнейшего анализа с использованием методов машинного обучения или углубленной статистики. - -```python -import pandas as pd -from sklearn.datasets import fetch_california_housing - -# Загрузка данных с признаком as_frame=True для получения DataFrame сразу -housing = fetch_california_housing(as_frame=True) -df = housing.frame # pandas DataFrame с признаками и целевой переменной - -# 8. Использовать метод info() -print("Информация о DataFrame:") -df.info() -print("\n") - -# 9. Узнать, есть ли пропущенные значения (NaN) -print("Сумма пропущенных значений по столбцам:") -print(df.isna().sum()) -print("\n") - -# 10. Вывести записи, где средний возраст домов > 50 лет и население > 2500 человек -print("Записи с HouseAge > 50 и Population > 2500:") -filtered = df.loc[(df['HouseAge'] > 50) & (df['Population'] > 2500)] -print(filtered) -print("\n") - -# 11. Максимальное и минимальное значение медианной стоимости дома -max_price = df['MedHouseVal'].max() -min_price = df['MedHouseVal'].min() -print(f"Максимальная медианная стоимость дома: {max_price}") -print(f"Минимальная медианная стоимость дома: {min_price}") -print("\n") - -# 12. С использованием apply() вывести название признака и его среднее значение -print("Средние значения признаков:") -def print_mean(column): - print(f"{column.name}: {column.mean():.3f}") - -df.apply(print_mean) -``` - -**Вывод:** - -```text -Информация о DataFrame: - -RangeIndex: 20640 entries, 0 to 20639 -Data columns (total 9 columns): - # Column Non-Null Count Dtype ---- ------ -------------- ----- - 0 MedInc 20640 non-null float64 - 1 HouseAge 20640 non-null float64 - 2 AveRooms 20640 non-null float64 - 3 AveBedrms 20640 non-null float64 - 4 Population 20640 non-null float64 - 5 AveOccup 20640 non-null float64 - 6 Latitude 20640 non-null float64 - 7 Longitude 20640 non-null float64 - 8 MedHouseVal 20640 non-null float64 -dtypes: float64(9) -memory usage: 1.4 MB - - -Сумма пропущенных значений по столбцам: -MedInc 0 -HouseAge 0 -AveRooms 0 -AveBedrms 0 -Population 0 -AveOccup 0 -Latitude 0 -Longitude 0 -MedHouseVal 0 -dtype: int64 - - -Записи с HouseAge > 50 и Population > 2500: - MedInc HouseAge AveRooms AveBedrms Population AveOccup \ -460 1.4012 52.0 3.105714 1.060000 3337.0 9.534286 -4131 3.5349 52.0 4.646119 1.047945 2589.0 5.910959 -4440 2.6806 52.0 4.806283 1.057592 3062.0 4.007853 -5986 1.8750 52.0 4.500000 1.206349 2688.0 21.333333 -7369 3.1901 52.0 4.730942 1.017937 3731.0 4.182735 -8227 2.3305 52.0 3.488860 1.170380 3018.0 3.955439 -13034 6.1359 52.0 8.275862 1.517241 6675.0 230.172414 -15634 1.8295 52.0 2.628169 1.053521 2957.0 4.164789 -15652 0.9000 52.0 2.237474 1.053535 3260.0 2.237474 -15657 2.5166 52.0 2.839075 1.184049 3436.0 1.621520 -15659 1.7240 52.0 2.278566 1.082348 4518.0 1.780142 -15795 2.5755 52.0 3.402576 1.058776 2619.0 2.108696 -15868 2.8135 52.0 4.584329 1.041169 2987.0 3.966799 - - Latitude Longitude MedHouseVal -460 37.87 -122.26 1.75000 -4131 34.13 -118.20 1.93600 -4440 34.08 -118.21 1.53000 -5986 34.10 -117.71 2.12500 -7369 33.97 -118.21 1.67600 -8227 33.78 -118.20 1.62500 -13034 38.69 -121.15 2.25000 -15634 37.80 -122.41 2.43800 -15652 37.80 -122.41 5.00001 -15657 37.79 -122.41 2.75000 -15659 37.79 -122.41 2.25000 -15795 37.77 -122.42 3.25000 -15868 37.76 -122.41 2.60300 - - -Максимальная медианная стоимость дома: 5.00001 -Минимальная медианная стоимость дома: 0.14999 - - -Средние значения признаков: -MedInc: 3.871 -HouseAge: 28.639 -AveRooms: 5.429 -AveBedrms: 1.097 -Population: 1425.477 -AveOccup: 3.071 -Latitude: 35.632 -Longitude: -119.570 -MedHouseVal: 2.069 - -MedInc None -HouseAge None -AveRooms None -AveBedrms None -Population None -AveOccup None -Latitude None -Longitude None -MedHouseVal None -dtype: object -``` - -1.* -Дан текст на английском языке. Необходимо закодировать его с -помощью азбуки Морзе, где каждой букве соответствует -последовательность точек и тире. Например, буква «g» превратится в -строку «--.». В переменной morze для удобства хранится словарь -соответствия латинских букв коду Морзе. - -``` -morze = {'a': '.-', 'b': '-…', 'c': '-.-.', 'd': '-..', -'e': '.', 'f': '..-.', 'g': '--.', 'h': '….', -'i': '..', 'j': '.---', 'k': '-.-', 'l': '.-..', -'m': '--', 'n': '-.', 'o': '---', 'p': '.--.', -'q': '--.-', 'r': '.-.', 's': '…', 't': '-', -'u': '..-', 'v': '…-', 'w': '.--', 'x': '-..-', -'y': '-.--', 'z': '--..'} -``` - -На входе: В одной строке вам дан текст, который состоит из латинских -букв и пробелов. - -На выходе: - -Выведите каждое слово исходного текста, закодированное азбукой -Морзе. Количество строк в ответе должно совпадать с количеством слов -в исходном тексте. Между закодированными буквами ставится ровно -один пробел. Например, слово «Help» превратится в `«.... . .-.. .--.»`. -Строчные и заглавные буквы кодируются одинаково. - -Например: - -`Ignition sequence start ` - -Перевод -``` -.. --. -. .. - .. --- -. -… . --.- ..- . -. -.-. . -… - .- .-. - -``` - -```python -morze = { - 'a': '.-', 'b': '-...', 'c': '-.-.', 'd': '-..', 'e': '.', 'f': '..-.', - 'g': '--.', 'h': '....', 'i': '..', 'j': '.---', 'k': '-.-', 'l': '.-..', - 'm': '--', 'n': '-.', 'o': '---', 'p': '.--.', 'q': '--.-', 'r': '.-.', - 's': '...', 't': '-', 'u': '..-', 'v': '...-', 'w': '.--', 'x': '-..-', - 'y': '-.--', 'z': '--..' -} - -text = input().strip() - -words = text.split() - -for word in words: - encoded_letters = [morze[char.lower()] for char in word if char.lower() in morze] - print(' '.join(encoded_letters)) -``` - -**Вывод:** - -```text -Ignition sequence start -.. --. -. .. - .. --- -. -... . --.- ..- . -. -.-. . -... - .- .-. - -``` - -2.* - -В некотором городе открывается новая служба по доставке электронных -писем. - -Необходимо наладить систему регистрации новых -пользователей. - -Регистрация должна работать следующим образом: если новый -пользователь хочет зарегистрироваться на сайте, то он должен послать -системе запрос name со своим именем. Система должна определить, -существует ли уже такое имя в базе данных. Если такого имени не -существует, то оно заносится в базу данных системы и пользователю -возвращается ответ "ОК", подтверждающий успешную регистрацию. А -если пользователь с таким именем уже существует, то система должна -сформировать новое имя и выдать его пользователю в качестве -подсказки, при этом сама подсказка также добавляется в базу данных. -Новое имя формируется следующим образом: к name последовательно -приписываются числа, начиная с 1 (name1, name2 и так далее), и среди -них находят такое наименьшее i, что namei еще не содержится в системе. - -Входные данные - -В первой строке входных данных задано число n (1 ≤ n ≤ 100000). - -Следующие n строк содержат запросы к системе. Каждый запрос -представляет собой непустую строку длиной не более 32 символов, -состоящую только из строчных букв латинского алфавита. - -Выходные данные - -В выходных данных должно содержаться n строк – ответы системы на -запросы: "OK" в случае успешной регистрации, или подсказка с новым -именем, если запрашиваемое уже занято. - -Данные для проверки: - - -| Вход: | Выход: | -|-------|--------| -| | | -| 3
b
b
b | OK
b1
b2 | -| 10
bhnqaptmp
bhnqaptmp
bhnqaptmp
bhnqaptmp
bhnqaptmp
bhnqaptmp
bhnqaptmp
bhnqaptmp
bhnqaptmp
bhnqaptmp | OK
bhnqaptmp1
bhnqaptmp2
bhnqaptmp3
bhnqaptmp4
bhnqaptmp5
bhnqaptmp6
bhnqaptmp7
bhnqaptmp8
bhnqaptmp9 | -| 10
fpqhfouqdldravpjttarh
fpqhfouqdldravpjttarh
fpqhfouqdldravpjttarh
fpqhfouqdldravpjttarh
fpqhfouqdldravpjttarh
fpqhfouqdldravpjttarh
jmvplnrmba
fpqhfouqdldravpjttarh
jmvplnrmba
fpqhfouqdldravpjttarh | OK
fpqhfouqdldravpjttarh1
fpqhfouqdldravpjttarh2
fpqhfouqdldravpjttarh3
fpqhfouqdldravpjttarh4
fpqhfouqdldravpjttarh5
OK
fpqhfouqdldravpjttarh6
jmvplnrmba1
fpqhfouqdldravpjttarh7 | - -```python -def registration_system(): - n = int(input()) - database = {} - - for _ in range(n): - name = input().strip() - if name not in database: - # Имя уникально - database[name] = 0 - print("OK") - else: - # Имя занято, ищем новое с суффиксом - database[name] += 1 - new_name = name + str(database[name]) - # Далее убеждаемся, что new_name тоже уникально - while new_name in database: - database[name] += 1 - new_name = name + str(database[name]) - database[new_name] = 0 - print(new_name) - -# Вызов функции -registration_system() -``` - -**Вывод:** - -```text -3 -b -OK -b -b1 -b -b2 -``` - -3.* - -Необходимо создать программу обработки запросов пользователей к -файловой системе компьютера. Над каждым файлом можно производить -следующие действия: запись – `w ("write")`, чтение – `r ("read")`, запуск – `x -("execute")`. - -Входные данные - -На вход программе подаются следующие параметры: число n – -количество файлов в файловой системе. В следующих n строках -содержится информация с именами файлов и допустимыми действиями -(w, x, r), разделенных пробелами. Далее идет число m – количество -запросов к файлам вида «операция файл» (обозначение операции: -`"write"`, `"read"`, `"execute"`). - -Выходные данные - -Для каждого допустимого запроса программа должна возвращать OK, -для недопустимого – `Access denied`. - - Данные для проверки: - -| Вход: | Выход: | -|-------|--------| -| 3
python.exe x
book.txt r w
notebook.exe r w x
5
read python.exe
read book.txt
write notebook.exe
execute notebook.exe
write book.txt | Access denied
OK
OK
OK
OK | -| 3
root.html r w x
main.py x
login.txt w r
4
read root.html
write main.py
execute main.py
execute login.txt | OK
Access denied
OK
Access denied | -| 2
1.txt
2.txt
2
write 1.txt
execute 2.txt | Access denied
Access denied | - -```python -def file_system_access(): - n = int(input()) - permissions = {} - - # Чтение информации о файлах и их правах доступа - for _ in range(n): - line = input().strip().split() - filename = line[0] - allowed = set(line[1:]) if len(line) > 1 else set() - permissions[filename] = allowed - - m = int(input()) - op_map = {'write': 'w', 'read': 'r', 'execute': 'x'} - - # Обработка запросов - for _ in range(m): - operation, filename = input().split() - op_code = op_map.get(operation) - if op_code and filename in permissions and op_code in permissions[filename]: - print("OK") - else: - print("Access denied") - -file_system_access() # Запуск функции -``` - -**Вывод:** - -```text -3 -python.exe x -book.txt r w -notebook.exe r w x -5 -read python.exe -Access denied -read book.txt -OK -write notebook.exe -OK -execute notebook.exe -OK -write book.txt -OK -``` diff --git a/content/bigdata/practice-02-data-analysis.mdx b/content/bigdata/practice-02-data-analysis.mdx deleted file mode 100644 index 78e5121..0000000 --- a/content/bigdata/practice-02-data-analysis.mdx +++ /dev/null @@ -1,715 +0,0 @@ ---- -title: Практика 2. Аналитика данных -description: Обработка данных и исследовательский анализ в Jupyter Notebook. -order: 3 ---- - -## Wiki-версия - - - -Минькин Александр Дмитривеич - ИКБО-25-22 - -# Практическая работа №2 - -## Визуализация в языке программирования Python - - -Цель: ознакомится с различными библиотеками визуализации данных -(`matplotlib`, `plotly`, `TSNE`, `UMAP`) и особенностями работы с ними в среде -программирования Python. - -#### 1. Задание - - - Найти и выгрузить многомерные данные (с большим количеством - признаков – столбцов) с использованием библиотеки pandas. В отчёте - описать найденные данные. - -```python -import pandas as pd - -# Датасет доступен на UCI -url = "https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv" - -# Загружаем CSV с разделителем ";" -df = pd.read_csv(url, sep=";") - -# Просмотр первых строк -print(df.head()) - -# Размерность данных -print("Размерность:", df.shape) - -# Общая информация -print(df.info()) -``` - -**Вывод:** - -```text -fixed acidity volatile acidity citric acid residual sugar chlorides \ -0 7.4 0.70 0.00 1.9 0.076 -1 7.8 0.88 0.00 2.6 0.098 -2 7.8 0.76 0.04 2.3 0.092 -3 11.2 0.28 0.56 1.9 0.075 -4 7.4 0.70 0.00 1.9 0.076 - - free sulfur dioxide total sulfur dioxide density pH sulphates \ -0 11.0 34.0 0.9978 3.51 0.56 -1 25.0 67.0 0.9968 3.20 0.68 -2 15.0 54.0 0.9970 3.26 0.65 -3 17.0 60.0 0.9980 3.16 0.58 -4 11.0 34.0 0.9978 3.51 0.56 - - alcohol quality -0 9.4 5 -1 9.8 5 -2 9.8 5 -3 9.8 6 -4 9.4 5 -Размерность: (1599, 12) - -RangeIndex: 1599 entries, 0 to 1598 -Data columns (total 12 columns): - # Column Non-Null Count Dtype ---- ------ -------------- ----- - 0 fixed acidity 1599 non-null float64 - 1 volatile acidity 1599 non-null float64 - 2 citric acid 1599 non-null float64 - 3 residual sugar 1599 non-null float64 - 4 chlorides 1599 non-null float64 - 5 free sulfur dioxide 1599 non-null float64 - 6 total sulfur dioxide 1599 non-null float64 - 7 density 1599 non-null float64 - 8 pH 1599 non-null float64 - 9 sulphates 1599 non-null float64 - 10 alcohol 1599 non-null float64 - 11 quality 1599 non-null int64 -dtypes: float64(11), int64(1) -memory usage: 150.0 KB -None -``` - -Датасет `Wine Quality` (красное вино): - -Источник: `UCI Machine Learning Repository` - -Размерность: `1599 строк` × `12 столбцов` - -Признаки (столбцы): - -- `fixed acidity` – фиксированная кислотность - -- `volatile acidity` – летучая кислотность - -- `citric acid` – лимонная кислота - -- `residual sugar` – остаточный сахар - -- `chlorides` – хлориды - -- `free sulfur dioxide` – свободный диоксид серы - -- `total sulfur dioxide` – общий диоксид серы - -- `density` – плотность - -- `pH` – уровень pH - -- `sulphates` – сульфаты - -- `alcohol` – содержание алкоголя (%) - -- `quality` – целевая переменная, оценка качества вина (от 0 до 10) - -#### 2. Вывести информацию о данных при помощи методов `.info()`, `.head()`. - - - Проверить данные на наличие пустых значений. В случае их наличия - удалить данные строки или интерполировать пропущенные значения. - При необходимости дополнительно предобработать данные для - дальнейшей работы с ними. - -```python -import pandas as pd - -# Загружаем датасет (красное вино) -url = "https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv" -df = pd.read_csv(url, sep=";") - -# 1. Информация о данных -print("=== Информация о датасете ===") -print(df.info()) - -# 2. Первые строки -print("\n=== Первые 5 строк ===") -print(df.head()) - -# 3. Проверка на пропуски -print("\n=== Проверка на пропущенные значения ===") -print(df.isnull().sum()) - -# 4. Обработка пропусков (если есть) -if df.isnull().values.any(): - # Можно либо удалить строки с NaN: - # df = df.dropna() - - # либо интерполировать (заполнить средним значением): - df = df.interpolate() - print("\nПропуски были, выполнена интерполяция.") -else: - print("\nПропусков не найдено.") - -# 5. Дополнительная предобработка -# Проверим дубликаты -duplicates = df.duplicated().sum() -print(f"\nКоличество дубликатов: {duplicates}") - -# Если дубликаты есть — удалим -if duplicates > 0: - df = df.drop_duplicates() - print("Дубликаты удалены.") - -# Финальные размеры набора данных -print("\n=== Итоговые размеры датасета ===") -print(df.shape) -``` - -**Вывод:** - -```text -=== Информация о датасете === - -RangeIndex: 1599 entries, 0 to 1598 -Data columns (total 12 columns): - # Column Non-Null Count Dtype ---- ------ -------------- ----- - 0 fixed acidity 1599 non-null float64 - 1 volatile acidity 1599 non-null float64 - 2 citric acid 1599 non-null float64 - 3 residual sugar 1599 non-null float64 - 4 chlorides 1599 non-null float64 - 5 free sulfur dioxide 1599 non-null float64 - 6 total sulfur dioxide 1599 non-null float64 - 7 density 1599 non-null float64 - 8 pH 1599 non-null float64 - 9 sulphates 1599 non-null float64 - 10 alcohol 1599 non-null float64 - 11 quality 1599 non-null int64 -dtypes: float64(11), int64(1) -memory usage: 150.0 KB -None - -=== Первые 5 строк === - fixed acidity volatile acidity citric acid residual sugar chlorides \ -0 7.4 0.70 0.00 1.9 0.076 -1 7.8 0.88 0.00 2.6 0.098 -2 7.8 0.76 0.04 2.3 0.092 -3 11.2 0.28 0.56 1.9 0.075 -4 7.4 0.70 0.00 1.9 0.076 - - free sulfur dioxide total sulfur dioxide density pH sulphates \ -0 11.0 34.0 0.9978 3.51 0.56 -1 25.0 67.0 0.9968 3.20 0.68 -2 15.0 54.0 0.9970 3.26 0.65 -3 17.0 60.0 0.9980 3.16 0.58 -4 11.0 34.0 0.9978 3.51 0.56 - - alcohol quality -0 9.4 5 -1 9.8 5 -2 9.8 5 -3 9.8 6 -4 9.4 5 - -=== Проверка на пропущенные значения === -fixed acidity 0 -volatile acidity 0 -citric acid 0 -residual sugar 0 -chlorides 0 -free sulfur dioxide 0 -total sulfur dioxide 0 -density 0 -pH 0 -sulphates 0 -alcohol 0 -quality 0 -dtype: int64 - -Пропусков не найдено. - -Количество дубликатов: 240 -Дубликаты удалены. - -=== Итоговые размеры датасета === -(1359, 12) -``` - -3. Построить столбчатую диаграмму (.bar) с использованием модуля -`graph_objs` из библиотеки Plotly со следующими параметрами: - - -`3.1.` По оси `Х` указать дату или название, по оси `У` указать количественный -показатель. - - -`3.2.` Сделать так, чтобы столбец принимал цвет в зависимости от значения -показателя (`marker=dict(color=признак, coloraxis="coloraxis")`). - - -`3.3.` Сделать так, чтобы границы каждого столбца были выделены чёрной -линией с толщиной равной `2`. - - -`3.4.` Отобразить заголовок диаграммы, разместив его по центру сверху, с -`20` размером текста. - - -`3.5.` Добавить подписи для осей `X` и `Y` с размером текста, равным `16`. Для -оси абсцисс развернуть метки так, чтобы они читались под углом, -равным `315`. - - -`3.6.` Размер текста меток осей сделать равным `14`. - - -`3.7.` Расположить график во всю ширину рабочей области и присвоить -высоту, равную `700` пикселей. - - -`3.8.` Добавить сетку на график, сделать её цвет `'ivory'` и толщину равную `2`. (Можно сделать это при настройке осей с помощью `gridwidth=2`, -`gridcolor='ivory'`) - - -`3.9.` Убрать лишние отступы по краям. - -```python -import pandas as pd -import plotly.graph_objs as go - -# Загружаем датасет -url = "https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv" -df = pd.read_csv(url, sep=";") - -# Для примера построим график: -# по оси X – содержание алкоголя (alcohol), округлённое до целых значений -# по оси Y – среднее качество (quality) -data_grouped = df.groupby(df["alcohol"].round())["quality"].mean().reset_index() - -# Создаём диаграмму -fig = go.Figure( - data=[ - go.Bar( - x=data_grouped["alcohol"], - y=data_grouped["quality"], - marker=dict( - color=data_grouped["quality"], # цвет в зависимости от значения - coloraxis="coloraxis", - line=dict(color="black", width=2) # границы столбцов - ) - ) - ] -) - -# Настройки оформления -fig.update_layout( - title=dict( - text="Среднее качество вина в зависимости от содержания алкоголя", - x=0.5, # по центру - xanchor="center", - yanchor="top", - font=dict(size=20) - ), - xaxis=dict( - title=dict(text="Содержание алкоголя (%)", font=dict(size=16)), - tickangle=315, - tickfont=dict(size=14), - showgrid=True, - gridwidth=2, - gridcolor="ivory" - ), - yaxis=dict( - title=dict(text="Качество вина (среднее)", font=dict(size=16)), - tickfont=dict(size=14), - showgrid=True, - gridwidth=2, - gridcolor="ivory" - ), - coloraxis=dict(colorscale="Viridis"), - height=700, - autosize=True, - margin=dict(l=0, r=0, t=50, b=0) # убираем лишние отступы -) - -# Отображаем график -fig.show() -``` - -4. Построить круговую диаграмму (`go.Pie`), использовав данные и стиль -оформления из предыдущего графика. Сделать так, чтобы границы -каждой доли были выделены чёрной линией с толщиной, равной `2` и -категории круговой диаграммы были читаемы (к примеру, объединить -часть объектов) - -```python -import pandas as pd -import plotly.graph_objs as go - -# Загружаем датасет -url = "https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv" -df = pd.read_csv(url, sep=";") - -# Считаем количество вин каждого качества -quality_counts = df["quality"].value_counts().reset_index() -quality_counts.columns = ["quality", "count"] - -# Объединим редкие категории (менее 50 объектов) в "Other" -quality_counts["quality"] = quality_counts["quality"].astype(str) -quality_counts.loc[quality_counts["count"] < 50, "quality"] = "Other" - -# Пересчитаем после объединения -quality_counts = quality_counts.groupby("quality")["count"].sum().reset_index() - -# Создаём круговую диаграмму -fig = go.Figure( - data=[ - go.Pie( - labels=quality_counts["quality"], - values=quality_counts["count"], - marker=dict( - line=dict(color="black", width=2) # границы долей - ), - textinfo="label+percent", # показываем категории и проценты - insidetextorientation="radial" - ) - ] -) - -# Настройки оформления (стиль как у предыдущего графика) -fig.update_layout( - title=dict( - text="Распределение качества вин", - x=0.5, - xanchor="center", - yanchor="top", - font=dict(size=20) - ), - height=700, - autosize=True, - margin=dict(l=0, r=0, t=50, b=0) # убираем лишние отступы -) - -# Отображаем -fig.show() -``` - -5. Построить линейные графики, взять один из параметров и определить -зависимость между другими несколькими (от 2 до 5) показателями с -использованием библиотеки `matplotlib`. Сделать вывод. - -```python -import pandas as pd -import matplotlib.pyplot as plt - -# Загружаем датасет -url = "https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv" -df = pd.read_csv(url, sep=";") - -# Добавим новый столбец с округлённым алкоголем -df["alcohol_rounded"] = df["alcohol"].round(1) - -# Группируем по округлённому алкоголю -df_grouped = df.groupby("alcohol_rounded").mean().reset_index() - -# Строим линейные графики -plt.figure(figsize=(12, 7)) - -plt.plot(df_grouped["alcohol_rounded"], df_grouped["quality"], label="Качество", marker="o") -plt.plot(df_grouped["alcohol_rounded"], df_grouped["sulphates"], label="Сульфаты", marker="s") -plt.plot(df_grouped["alcohol_rounded"], df_grouped["volatile acidity"], label="Летучая кислотность", marker="^") -plt.plot(df_grouped["alcohol_rounded"], df_grouped["density"], label="Плотность", marker="d") - -# Настройки графика -plt.title("Зависимость показателей вина от содержания алкоголя", fontsize=18) -plt.xlabel("Содержание алкоголя (%)", fontsize=14) -plt.ylabel("Средние значения показателей", fontsize=14) -plt.xticks(rotation=45, fontsize=12) -plt.yticks(fontsize=12) -plt.grid(True, linestyle="--", alpha=0.7) -plt.legend(fontsize=12) -plt.tight_layout() - -# Показ графика -plt.show() -``` - -**Вывод:** - -```text -
-``` - -Вывод по графику: - -1. Качество вина в среднем растёт с увеличением содержания алкоголя — вина с высоким алкоголем чаще получают более высокие оценки. - -2. Сульфаты также постепенно увеличиваются вместе с алкоголем, что может указывать на технологические особенности производства. - -3. Летучая кислотность наоборот снижается при увеличении алкоголя — вина с низкой кислотностью воспринимаются как более качественные. - -4. Плотность имеет обратную зависимость: чем больше алкоголя, тем ниже плотность вина. - -Таким образом, можно сделать вывод: алкогольное содержание оказывает значительное влияние на качество вина и связано с изменением химических свойств напитка (кислотность, плотность, уровень сульфатов). - -`5.1.` Сделать график с линиями и маркерами, цвет линии `'crimson'`, цвет -точек `'white'`, цвет границ точек `'black'`, толщина границ точек равна `2`. - - -`5.2.` Добавить сетку на график, сделать её цвет `'mistyrose'` и толщину -равную `2`. (Можно сделать это при настройке осей с помощью -`linewidth=2`, `color='mistyrose'`). - -```python -import pandas as pd -import matplotlib.pyplot as plt - -# Загружаем датасет -url = "https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv" -df = pd.read_csv(url, sep=";") - -# Добавляем столбец с округлённым алкоголем -df["alcohol_rounded"] = df["alcohol"].round(1) - -# Группируем по алкоголю и берём средние значения -df_grouped = df.groupby("alcohol_rounded").mean().reset_index() - -# Строим график -plt.figure(figsize=(10, 6)) - -plt.plot( - df_grouped["alcohol_rounded"], - df_grouped["quality"], - color="crimson", # цвет линии - marker="o", # маркер - markerfacecolor="white", # цвет точки (заливка) - markeredgecolor="black", # цвет границы точки - markeredgewidth=2, # толщина границы точки - linewidth=2, # толщина линии - label="Качество вина" -) - -# Настройки графика -plt.title("Зависимость качества вина от содержания алкоголя", fontsize=18) -plt.xlabel("Содержание алкоголя (%)", fontsize=14) -plt.ylabel("Среднее качество вина", fontsize=14) -plt.xticks(fontsize=12) -plt.yticks(fontsize=12) - -# Сетка с настройками по заданию -plt.grid(True, linewidth=2, color="mistyrose") - -plt.legend(fontsize=12) -plt.tight_layout() - -# Показ графика -plt.show() -``` - -**Вывод:** - -```text -
-``` - -6. Выполнить визуализацию многомерных данных, используя `t-SNE`. -Необходимо использовать набор данных `MNIST` или `fashion MNIST` -(можно использовать и другие готовые наборы данных, где можно -наблюдать разделение объектов по кластерам). - - Рассмотреть результаты визуализации для разных значений перплексии. - -```python -# Final retry: much smaller subset and fewer iterations to guarantee completion. -import numpy as np -import matplotlib.pyplot as plt - -# load dataset (fallback to digits) -try: - from tensorflow.keras.datasets import fashion_mnist as fm - (x_train, y_train), (x_test, y_test) = fm.load_data() - X = np.vstack([x_train, x_test]) - y = np.hstack([y_train, y_test]) - dataset_name = "Fashion-MNIST (28x28 grayscale)" - X = X.reshape((X.shape[0], -1)).astype(np.float32) / 255.0 -except Exception: - from sklearn.datasets import load_digits - digits = load_digits() - X = digits.data.astype(np.float32) - y = digits.target - dataset_name = "sklearn digits (8x8 grayscale) - fallback" - -print("Dataset:", dataset_name) -print("Samples:", X.shape[0], "Features:", X.shape[1]) - -# use a small subset for reliability -max_samples = 300 -if X.shape[0] > max_samples: - rng = np.random.default_rng(42) - idx = rng.choice(X.shape[0], size=max_samples, replace=False) - X_sub = X[idx] - y_sub = y[idx] -else: - X_sub = X.copy() - y_sub = y.copy() - -from sklearn.decomposition import PCA -n_pca = min(20, X_sub.shape[0]-1, X_sub.shape[1]) -pca = PCA(n_components=n_pca, random_state=42) -X_pca = pca.fit_transform(X_sub) -print("PCA reduced to", X_pca.shape[1], "components") - -from sklearn.manifold import TSNE -perplexities = [5, 30] # compare two perplexities -tsne_results = {} - -for perp in perplexities: - print(f"Running t-SNE with perplexity={perp} ...") - tsne = TSNE(n_components=2, perplexity=perp, init='pca', random_state=42, learning_rate='auto', n_iter=300) - X_emb = tsne.fit_transform(X_pca) - tsne_results[perp] = X_emb - print(f"Done perplexity={perp}") - -for perp, X_emb in tsne_results.items(): - plt.figure(figsize=(10,8)) - sc = plt.scatter(X_emb[:,0], X_emb[:,1], c=y_sub, cmap='tab10', s=20, alpha=0.9) - plt.title(f"t-SNE (perplexity={perp}) — {dataset_name}", fontsize=16) - plt.xlabel("t-SNE 1", fontsize=12) - plt.ylabel("t-SNE 2", fontsize=12) - plt.grid(True, linewidth=1, color='lightgray', linestyle='--') - cbar = plt.colorbar(sc, ticks=np.unique(y_sub)) - cbar.ax.tick_params(labelsize=10) - plt.tight_layout() - plt.show() - -print("\nFinished t-SNE visualizations for perplexities:", perplexities) -``` - -**Вывод:** - -```text -Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-labels-idx1-ubyte.gz -29515/29515 ━━━━━━━━━━━━━━━━━━━━ 0s 0us/step -Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/train-images-idx3-ubyte.gz -26421880/26421880 ━━━━━━━━━━━━━━━━━━━━ 1s 0us/step -Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-labels-idx1-ubyte.gz -5148/5148 ━━━━━━━━━━━━━━━━━━━━ 0s 0us/step -Downloading data from https://storage.googleapis.com/tensorflow/tf-keras-datasets/t10k-images-idx3-ubyte.gz -4422102/4422102 ━━━━━━━━━━━━━━━━━━━━ 1s 0us/step -Dataset: Fashion-MNIST (28x28 grayscale) -Samples: 70000 Features: 784 -PCA reduced to 20 components -Running t-SNE with perplexity=5 ... - -/usr/local/lib/python3.12/dist-packages/sklearn/manifold/_t_sne.py:1164: FutureWarning: - -'n_iter' was renamed to 'max_iter' in version 1.5 and will be removed in 1.7. - -Done perplexity=5 -Running t-SNE with perplexity=30 ... - -/usr/local/lib/python3.12/dist-packages/sklearn/manifold/_t_sne.py:1164: FutureWarning: - -'n_iter' was renamed to 'max_iter' in version 1.5 and will be removed in 1.7. - -Done perplexity=30 - -
- -
- -Finished t-SNE visualizations for perplexities: [5, 30] -``` - -7. Выполнить визуализацию многомерных данных, используя `UMAP` с -различными параметрами `n_neighbors` и `min_dist`. Рассчитать время -работы алгоритма с помощью библиотеки `time` и сравнить его с -временем работы `t-SNE`. - -```python -import time -import numpy as np -import matplotlib.pyplot as plt -from sklearn.datasets import load_digits -from sklearn.manifold import TSNE -import umap - -# Загружаем данные -digits = load_digits() -X, y = digits.data, digits.target - -# Список параметров для UMAP -params = [ - {"n_neighbors": 5, "min_dist": 0.1}, - {"n_neighbors": 15, "min_dist": 0.1}, - {"n_neighbors": 30, "min_dist": 0.3}, -] - -results = {} - -# UMAP с разными параметрами -for i, p in enumerate(params, 1): - start = time.time() - reducer = umap.UMAP(n_neighbors=p["n_neighbors"], min_dist=p["min_dist"], random_state=42) - X_umap = reducer.fit_transform(X) - duration = time.time() - start - results[f"UMAP {p}"] = duration - - plt.figure(figsize=(5,4)) - plt.scatter(X_umap[:,0], X_umap[:,1], c=y, cmap="Spectral", s=5) - plt.title(f"UMAP (n_neighbors={p['n_neighbors']}, min_dist={p['min_dist']})\nВремя: {duration:.2f} сек") - plt.show() - -# t-SNE -start = time.time() -X_tsne = TSNE(n_components=2, random_state=42, init="pca", perplexity=30).fit_transform(X) -duration = time.time() - start -results["t-SNE"] = duration - -plt.figure(figsize=(5,4)) -plt.scatter(X_tsne[:,0], X_tsne[:,1], c=y, cmap="Spectral", s=5) -plt.title(f"t-SNE\nВремя: {duration:.2f} сек") -plt.show() - -results -``` - -**Вывод:** - -```text -/usr/local/lib/python3.12/dist-packages/umap/umap_.py:1952: UserWarning: - -n_jobs value 1 overridden to 1 by setting random_state. Use no seed for parallelism. - -
- -/usr/local/lib/python3.12/dist-packages/umap/umap_.py:1952: UserWarning: - -n_jobs value 1 overridden to 1 by setting random_state. Use no seed for parallelism. - -
- -/usr/local/lib/python3.12/dist-packages/umap/umap_.py:1952: UserWarning: - -n_jobs value 1 overridden to 1 by setting random_state. Use no seed for parallelism. - -
- -
- -{"UMAP {'n_neighbors': 5, 'min_dist': 0.1}": 14.975495338439941, - "UMAP {'n_neighbors': 15, 'min_dist': 0.1}": 7.100525617599487, - "UMAP {'n_neighbors': 30, 'min_dist': 0.3}": 7.385646104812622, - 't-SNE': 21.6993350982666} -``` diff --git a/content/bigdata/practice-03-regression-and-datasets.mdx b/content/bigdata/practice-03-regression-and-datasets.mdx deleted file mode 100644 index 87e6e6f..0000000 --- a/content/bigdata/practice-03-regression-and-datasets.mdx +++ /dev/null @@ -1,871 +0,0 @@ ---- -title: Практика 3. Регрессия и наборы данных -description: Работа с несколькими датасетами и построение моделей. -order: 4 ---- - -## Wiki-версия - -Материал полностью перенесен в документацию. Исходный ноутбук удален из репозитория. - -Минькин Александр Дмитривеич - ИКБО-25-22 - -# Практическая работа №3 - -## Статистика на Python -Генеральная совокупность – это множество абсолютно всех объектов, -которые используются для исследования. -Выборка - - -1. Загрузить данные из файла “insurance.csv”. -2. С помощью метода describe() посмотреть статистику по данным. Сделать -выводы. - -```python -from google.colab import files -uploaded = files.upload() -``` - -**Вывод:** - -```text - - -Saving insurance.csv to insurance (1).csv -``` - -```python -import pandas as pd - -# 1. Загрузка данных -df = pd.read_csv("insurance (1).csv") - -# 2. Просмотр первых строк -print("Первые 5 строк датасета:") -print(df.head(), "\n") - -# 3. Общая информация о данных -print("Информация о данных:") -print(df.info(), "\n") - -# 4. Статистическое описание -print("Статистическое описание данных:") -print(df.describe(include='all'), "\n") -``` - -**Вывод:** - -```text -Первые 5 строк датасета: - age sex bmi children smoker region charges -0 19 female 27.900 0 yes southwest 16884.92400 -1 18 male 33.770 1 no southeast 1725.55230 -2 28 male 33.000 3 no southeast 4449.46200 -3 33 male 22.705 0 no northwest 21984.47061 -4 32 male 28.880 0 no northwest 3866.85520 - -Информация о данных: - -RangeIndex: 1338 entries, 0 to 1337 -Data columns (total 7 columns): - # Column Non-Null Count Dtype ---- ------ -------------- ----- - 0 age 1338 non-null int64 - 1 sex 1338 non-null object - 2 bmi 1338 non-null float64 - 3 children 1338 non-null int64 - 4 smoker 1338 non-null object - 5 region 1338 non-null object - 6 charges 1338 non-null float64 -dtypes: float64(2), int64(2), object(3) -memory usage: 73.3+ KB -None - -Статистическое описание данных: - age sex bmi children smoker region \ -count 1338.000000 1338 1338.000000 1338.000000 1338 1338 -unique NaN 2 NaN NaN 2 4 -top NaN male NaN NaN no southeast -freq NaN 676 NaN NaN 1064 364 -mean 39.207025 NaN 30.663397 1.094918 NaN NaN -std 14.049960 NaN 6.098187 1.205493 NaN NaN -min 18.000000 NaN 15.960000 0.000000 NaN NaN -25% 27.000000 NaN 26.296250 0.000000 NaN NaN -50% 39.000000 NaN 30.400000 1.000000 NaN NaN -75% 51.000000 NaN 34.693750 2.000000 NaN NaN -max 64.000000 NaN 53.130000 5.000000 NaN NaN - - charges -count 1338.000000 -unique NaN -top NaN -freq NaN -mean 13270.422265 -std 12110.011237 -min 1121.873900 -25% 4740.287150 -50% 9382.033000 -75% 16639.912515 -max 63770.428010 -``` - -**Выводы:** -- Возраст: от 18 до 64 лет, средний — около 39 лет. -- Пол: примерно поровну мужчин и женщин. -- Средний BMI ~30.7, что указывает на избыточный вес. -- Среднее количество детей — 1. -- Курильщиков ~20%. -- Средние страховые выплаты около 13 270, но разброс большой (до 63 770). - -3. Построить гистограммы для числовых показателей. Сделать выводы. - -```python -# Импорт библиотек -import pandas as pd -import matplotlib.pyplot as plt - -# 1. Загрузка данных -df = pd.read_csv("insurance.csv") - -# 2. Просмотр числовых столбцов -numeric_cols = df.select_dtypes(include=['int64', 'float64']).columns -print("Числовые признаки:", list(numeric_cols), "\n") - -# 3. Построение гистограмм -df[numeric_cols].hist(bins=20, figsize=(12, 8), color='skyblue', edgecolor='black') -plt.suptitle("Гистограммы числовых признаков страховых данных", fontsize=16) -plt.show() -``` - -**Вывод:** - -```text -Числовые признаки: ['age', 'bmi', 'children', 'charges'] - -
-``` - -**Выводы:** -- Возраст (age): распределение равномерное от 18 до 64 лет. -- Индекс массы тела (bmi): большинство людей имеют BMI в диапазоне 25–35 (избыточный вес). -- Количество детей (children): большинство клиентов не имеют детей или имеют 1–2 ребёнка. -- Страховые выплаты (charges): распределение сильно скошено вправо — у большинства низкие выплаты, у меньшинства очень высокие. - -4. Найти меры центральной тенденции и меры разброса для индекса массы -тела (bmi) и расходов (charges). Отобразить результаты в виде текста и на -гистограммах (3 вертикальные линии). Добавить легенду на графики. - - -Сделать выводы. - -```python -import pandas as pd -import matplotlib.pyplot as plt -import numpy as np - -# 1. Загрузка данных -df = pd.read_csv("insurance.csv") - -# 2. Расчёт статистических мер -for col in ['bmi', 'charges']: - mean = df[col].mean() - median = df[col].median() - mode = df[col].mode()[0] - std = df[col].std() - min_val = df[col].min() - max_val = df[col].max() - - # 3. Текстовый вывод - print(f"===== {col.upper()} =====") - print(f"Среднее значение: {mean:.2f}") - print(f"Медиана: {median:.2f}") - print(f"Мода: {mode:.2f}") - print(f"Стандартное отклонение: {std:.2f}") - print(f"Минимум: {min_val:.2f}") - print(f"Максимум: {max_val:.2f}") - print() - - # 4. Построение гистограммы с линиями - plt.figure(figsize=(8, 5)) - plt.hist(df[col], bins=30, color='skyblue', edgecolor='black') - plt.axvline(mean, color='red', linestyle='--', linewidth=2, label=f'Среднее ({mean:.2f})') - plt.axvline(median, color='green', linestyle='-', linewidth=2, label=f'Медиана ({median:.2f})') - plt.axvline(mode, color='orange', linestyle='-.', linewidth=2, label=f'Мода ({mode:.2f})') - plt.title(f"Распределение {col}") - plt.xlabel(col) - plt.ylabel("Частота") - plt.legend() - plt.grid(True, linestyle='--', alpha=0.6) - plt.show() -``` - -**Вывод:** - -```text -===== BMI ===== -Среднее значение: 30.66 -Медиана: 30.40 -Мода: 32.30 -Стандартное отклонение: 6.10 -Минимум: 15.96 -Максимум: 53.13 - -
- -===== CHARGES ===== -Среднее значение: 13270.42 -Медиана: 9382.03 -Мода: 1639.56 -Стандартное отклонение: 12110.01 -Минимум: 1121.87 -Максимум: 63770.43 - -
-``` - -5. Построить box-plot для числовых показателей. Названия графиков должны -соответствовать названиям признаков. Сделать выводы. - -```python -import pandas as pd -import matplotlib.pyplot as plt - -# 1. Загрузка данных -df = pd.read_csv("insurance.csv") - -# 2. Определим числовые признаки -numeric_cols = df.select_dtypes(include=['int64', 'float64']).columns - -# 3. Построим boxplot для каждого числового признака -plt.figure(figsize=(12, 8)) - -for i, col in enumerate(numeric_cols, 1): - plt.subplot(2, 2, i) # 2 строки, 2 столбца - plt.boxplot(df[col], patch_artist=True, boxprops=dict(facecolor='skyblue')) - plt.title(col) - plt.ylabel("Значение") - plt.grid(True, linestyle='--', alpha=0.6) - -plt.suptitle("Box-plot для числовых признаков", fontsize=16) -plt.tight_layout(rect=[0, 0, 1, 0.96]) -plt.show() -``` - -**Вывод:** - -```text -
-``` - -6. Используя признак charges или imb, проверить, выполняется ли -центральная предельная теорема. Использовать различные длины выборок -n. Количество выборок = 300. Вывести результат в виде гистограмм. Найти -стандартное отклонение и среднее для полученных распределений. -Сделать выводы. - -```python -import pandas as pd -import numpy as np -import matplotlib.pyplot as plt - -# 1. Загружаем данные -df = pd.read_csv("insurance.csv") - -# 2. Выбираем признак для анализа (можно заменить на 'bmi') -data = df['charges'] - -# 3. Задаем параметры -n_values = [5, 30, 100] # размеры выборок -num_samples = 300 # количество выборок - -# 4. Проверка ЦПТ для разных n -plt.figure(figsize=(15, 4)) - -for i, n in enumerate(n_values, 1): - sample_means = [] - - # создаем 300 выборок размера n и считаем среднее каждой - for _ in range(num_samples): - sample = np.random.choice(data, size=n, replace=True) - sample_means.append(np.mean(sample)) - - sample_means = np.array(sample_means) - - # 5. Строим гистограммы распределений средних - plt.subplot(1, 3, i) - plt.hist(sample_means, bins=20, color='skyblue', edgecolor='black') - plt.title(f'n = {n}\nСреднее: {sample_means.mean():.2f}, σ: {sample_means.std():.2f}') - plt.xlabel("Среднее значение выборки") - plt.ylabel("Частота") - plt.grid(True, linestyle='--', alpha=0.6) - -plt.suptitle("Проверка Центральной предельной теоремы (ЦПТ) для признака 'charges'", fontsize=14) -plt.tight_layout(rect=[0, 0, 1, 0.95]) -plt.show() -``` - -**Вывод:** - -```text -
-``` - -7. Построить 95% и 99% доверительный интервал для среднего значения -расходов и среднего значения индекса массы тела. - -```python -import pandas as pd -import numpy as np -import scipy.stats as st - -# 1. Загружаем данные -df = pd.read_csv("insurance.csv") - -# 2. Функция для вычисления доверительного интервала -def confidence_interval(data, confidence=0.95): - n = len(data) - mean = np.mean(data) - std_err = st.sem(data) # стандартная ошибка среднего - h = std_err * st.t.ppf((1 + confidence) / 2, n - 1) - return mean, mean - h, mean + h - -# 3. Расчёт интервалов для 'charges' и 'bmi' -for col in ['charges', 'bmi']: - mean_95, lower_95, upper_95 = confidence_interval(df[col], 0.95) - mean_99, lower_99, upper_99 = confidence_interval(df[col], 0.99) - - print(f"===== {col.upper()} =====") - print(f"Среднее значение: {mean_95:.2f}") - print(f"95% доверительный интервал: [{lower_95:.2f}, {upper_95:.2f}]") - print(f"99% доверительный интервал: [{lower_99:.2f}, {upper_99:.2f}]") - print() - -# 4. (Дополнительно) Визуализация интервалов -import matplotlib.pyplot as plt - -cols = ['charges', 'bmi'] -conf_95 = [confidence_interval(df[c], 0.95) for c in cols] -conf_99 = [confidence_interval(df[c], 0.99) for c in cols] - -plt.figure(figsize=(8, 5)) -x = np.arange(len(cols)) - -# Средние значения -means = [c[0] for c in conf_95] - -# Ошибки для интервалов -err_95 = [c[0] - c[1] for c in conf_95] -err_99 = [c[0] - c[1] for c in conf_99] - -# Построение графика -plt.errorbar(x, means, yerr=err_95, fmt='o', color='blue', capsize=5, label='95% ДИ') -plt.errorbar(x, means, yerr=err_99, fmt='o', color='red', capsize=8, label='99% ДИ') -plt.xticks(x, cols) -plt.ylabel("Среднее значение") -plt.title("Доверительные интервалы для средних значений (charges и bmi)") -plt.legend() -plt.grid(True, linestyle='--', alpha=0.6) -plt.show() -``` - -**Вывод:** - -```text -===== CHARGES ===== -Среднее значение: 13270.42 -95% доверительный интервал: [12620.95, 13919.89] -99% доверительный интервал: [12416.43, 14124.41] - -===== BMI ===== -Среднее значение: 30.66 -95% доверительный интервал: [30.34, 30.99] -99% доверительный интервал: [30.23, 31.09] - -
-``` - -8. Проверить распределения следующих признаков на нормальность: индекс -массы тела, расходы. Сформулировать нулевую и альтернативную -гипотезы. Для каждого признака использовать KS-тест и q-q plot. Сделать -выводы на основе полученных p-значений. - -```python -import pandas as pd -import numpy as np -import matplotlib.pyplot as plt -import scipy.stats as st -import statsmodels.api as sm - -# 1. Загрузка данных -df = pd.read_csv("insurance.csv") - -# 2. Проверяем признаки -features = ['bmi', 'charges'] - -for col in features: - data = df[col] - - # --- Нормализация для KS-теста (приводим данные к z-оценкам) --- - standardized = (data - np.mean(data)) / np.std(data) - - # --- KS-тест --- - ks_stat, p_value = st.kstest(standardized, 'norm') - - print(f"===== Признак: {col.upper()} =====") - print("Нулевая гипотеза H₀: данные распределены нормально.") - print("Альтернативная гипотеза H₁: данные НЕ распределены нормально.") - print(f"Статистика теста: {ks_stat:.4f}") - print(f"p-значение: {p_value:.4f}") - - if p_value < 0.05: - print("→ Отклоняем H₀: распределение статистически отличается от нормального.\n") - else: - print("→ Не отклоняем H₀: нет оснований считать распределение ненормальным.\n") - - # --- Q-Q plot --- - plt.figure(figsize=(6, 5)) - sm.qqplot(data, line='s', markerfacecolor='blue', alpha=0.5) - plt.title(f"Q-Q Plot для признака '{col}'") - plt.grid(True, linestyle='--', alpha=0.6) - plt.show() -``` - -**Вывод:** - -```text -===== Признак: BMI ===== -Нулевая гипотеза H₀: данные распределены нормально. -Альтернативная гипотеза H₁: данные НЕ распределены нормально. -Статистика теста: 0.0261 -p-значение: 0.3145 -→ Не отклоняем H₀: нет оснований считать распределение ненормальным. - -
- -
- -===== Признак: CHARGES ===== -Нулевая гипотеза H₀: данные распределены нормально. -Альтернативная гипотеза H₁: данные НЕ распределены нормально. -Статистика теста: 0.1885 -p-значение: 0.0000 -→ Отклоняем H₀: распределение статистически отличается от нормального. - -
- -
-``` - -9. Загрузить данные из файла “ECDCCases.csv”. - -```python -from google.colab import files -uploaded = files.upload() -``` - -**Вывод:** - -```text - - -Saving ECDCCases.csv to ECDCCases.csv -``` - -10. Проверить в данных наличие пропущенных значений. Вывести -количество пропущенных значений в процентах. Удалить два признака, в -которых больше всех пропущенных значений. Для оставшихся признаков -обработать пропуски: для категориального признака использовать -заполнение значением по умолчанию (например, «other»), для числового -признака использовать заполнение медианным значением. Показать, что -пропусков больше в данных нет. - -```python -import pandas as pd - -# Загружаем данные -df = pd.read_csv("ECDCCases.csv") - -# 1. Проверяем наличие пропущенных значений -missing_counts = df.isna().sum() -missing_percent = (missing_counts / len(df)) * 100 -print("Пропущенные значения в процентах:\n", missing_percent) - -# 2. Находим два признака с наибольшим количеством пропусков и удаляем их -top2_missing_cols = missing_counts.sort_values(ascending=False).head(2).index -df = df.drop(columns=top2_missing_cols) -print("\nУдалены признаки с наибольшим количеством пропусков:", list(top2_missing_cols)) - -# 3. Обрабатываем пропуски: -# Для категориальных признаков заполняем значением "other" -categorical_cols = df.select_dtypes(include=['object']).columns -df[categorical_cols] = df[categorical_cols].fillna("other") - -# Для числовых признаков заполняем медианой -numeric_cols = df.select_dtypes(include=['number']).columns -df[numeric_cols] = df[numeric_cols].fillna(df[numeric_cols].median()) - -# 4. Проверяем, что пропусков больше нет -print("\nКоличество пропущенных значений после обработки:\n", df.isna().sum()) -``` - -**Вывод:** - -```text -Пропущенные значения в процентах: - dateRep 0.000000 -day 0.000000 -month 0.000000 -year 0.000000 -cases 0.000000 -deaths 0.000000 -countriesAndTerritories 0.000000 -geoId 0.444236 -countryterritoryCode 0.198695 -popData2019 0.198695 -continentExp 0.000000 -Cumulative_number_for_14_days_of_COVID-19_cases_per_100000 4.650750 -dtype: float64 - -Удалены признаки с наибольшим количеством пропусков: ['Cumulative_number_for_14_days_of_COVID-19_cases_per_100000', 'geoId'] - -Количество пропущенных значений после обработки: - dateRep 0 -day 0 -month 0 -year 0 -cases 0 -deaths 0 -countriesAndTerritories 0 -countryterritoryCode 0 -popData2019 0 -continentExp 0 -dtype: int64 -``` - -11. Посмотреть статистику по данным, используя describe(). Сделать выводы -о том, какие признаки содержат выбросы. Посмотреть, для каких стран -количество смертей в день превысило 3000 и сколько таких дней было. - -```python -import pandas as pd - -# Загружаем данные -df = pd.read_csv("ECDCCases.csv") - -# 1. Статистика по данным -print("Описание данных:\n") -print(df.describe()) - -# 2. Определяем признаки с возможными выбросами -# Обычно выбросы проявляются как экстремальные значения в 'max' и 'min' -numeric_cols = df.select_dtypes(include=['number']).columns -for col in numeric_cols: - q1 = df[col].quantile(0.25) - q3 = df[col].quantile(0.75) - iqr = q3 - q1 - lower_bound = q1 - 1.5 * iqr - upper_bound = q3 + 1.5 * iqr - outliers = df[(df[col] < lower_bound) | (df[col] > upper_bound)] - if not outliers.empty: - print(f"\nПризнак '{col}' содержит выбросы.") - print(f"Количество выбросов: {len(outliers)}") - -# 3. Смотрим, для каких стран количество смертей в день превышало 3000 -high_deaths = df[df['deaths'] > 3000] -print("\nДни с количеством смертей > 3000:") -print(high_deaths[['countriesAndTerritories', 'dateRep', 'deaths']]) - -# 4. Сколько таких дней было -num_high_death_days = len(high_deaths) -print(f"\nКоличество дней с количеством смертей > 3000: {num_high_death_days}") -``` - -**Вывод:** - -```text -Описание данных: - - day month year cases deaths \ -count 61904.000000 61904.000000 61904.000000 61904.000000 61904.000000 -mean 15.629232 7.067104 2019.998918 1155.079026 26.053987 -std 8.841624 2.954816 0.032881 6779.010824 131.222948 -min 1.000000 1.000000 2019.000000 -8261.000000 -1918.000000 -25% 8.000000 5.000000 2020.000000 0.000000 0.000000 -50% 15.000000 7.000000 2020.000000 15.000000 0.000000 -75% 23.000000 10.000000 2020.000000 273.000000 4.000000 -max 31.000000 12.000000 2020.000000 234633.000000 4928.000000 - - popData2019 \ -count 6.178100e+04 -mean 4.098628e+07 -std 1.531246e+08 -min 8.150000e+02 -25% 1.293120e+06 -50% 7.169456e+06 -75% 2.851583e+07 -max 1.433784e+09 - - Cumulative_number_for_14_days_of_COVID-19_cases_per_100000 -count 59025.000000 -mean 66.316369 -std 162.324550 -min -147.419587 -25% 0.757526 -50% 6.724045 -75% 52.561206 -max 1900.836210 - -Признак 'year' содержит выбросы. -Количество выбросов: 67 - -Признак 'cases' содержит выбросы. -Количество выбросов: 10080 - -Признак 'deaths' содержит выбросы. -Количество выбросов: 10657 - -Признак 'popData2019' содержит выбросы. -Количество выбросов: 6661 - -Признак 'Cumulative_number_for_14_days_of_COVID-19_cases_per_100000' содержит выбросы. -Количество выбросов: 8073 - -Дни с количеством смертей > 3000: - countriesAndTerritories dateRep deaths -2118 Argentina 02/10/2020 3351 -16908 Ecuador 07/09/2020 3800 -37038 Mexico 09/10/2020 3013 -44888 Peru 14/08/2020 3935 -44909 Peru 24/07/2020 3887 -59007 United_States_of_America 12/12/2020 3343 -59009 United_States_of_America 10/12/2020 3124 -59016 United_States_of_America 03/12/2020 3190 -59239 United_States_of_America 24/04/2020 3179 -59245 United_States_of_America 18/04/2020 3770 -59247 United_States_of_America 16/04/2020 4928 - -Количество дней с количеством смертей > 3000: 11 -``` - -12. Найти дублирование данных. Удалить дубликаты. - -```python -import pandas as pd - -# Загружаем данные -df = pd.read_csv("ECDCCases.csv") - -# 1. Проверяем наличие дубликатов -num_duplicates = df.duplicated().sum() -print(f"Количество дубликатов: {num_duplicates}") - -# 2. Удаляем дубликаты -df = df.drop_duplicates() -print(f"Количество строк после удаления дубликатов: {len(df)}") -``` - -**Вывод:** - -```text -Количество дубликатов: 4 -Количество строк после удаления дубликатов: 61900 -``` - -13. Загрузить данные из файла “bmi.csv”. - -```python -from google.colab import files -uploaded = files.upload() -``` - -**Вывод:** - -```text - - -Saving bmi.csv to bmi.csv -``` - -Взять оттуда две выборки. Одна выборка – это индекс массы тела людей c региона northwest, вторая выборка – это индекс массы тела людей с региона southwest. Сравнить средние значения этих выборок, используя t-критерий Стьюдента. Предварительно проверить выборки на нормальность (критерий Шопиро Уилка) и на гомогенность дисперсии (критерий Бартлетта). - -```python -import pandas as pd -from scipy.stats import shapiro, bartlett, ttest_ind - -# 1. Загружаем данные -df = pd.read_csv("bmi.csv") - -# 2. Создаем две выборки по регионам -bmi_nw = df[df['region'] == 'northwest']['bmi'] -bmi_sw = df[df['region'] == 'southwest']['bmi'] - -# 3. Проверка на нормальность (Shapiro-Wilk test) -shapiro_nw = shapiro(bmi_nw) -shapiro_sw = shapiro(bmi_sw) - -print("Shapiro-Wilk test для northwest:", shapiro_nw) -print("Shapiro-Wilk test для southwest:", shapiro_sw) - -# 4. Проверка на гомогенность дисперсий (Bartlett test) -bartlett_test = bartlett(bmi_nw, bmi_sw) -print("\nBartlett test:", bartlett_test) - -# 5. Сравнение средних (t-тест Стьюдента) -# Если дисперсии гомогенные, equal_var=True, иначе False -equal_var = bartlett_test.pvalue > 0.05 -t_test = ttest_ind(bmi_nw, bmi_sw, equal_var=equal_var) - -print("\nT-test Стьюдента:", t_test) -print("\nСредние значения BMI по выборкам:") -print("Northwest:", bmi_nw.mean()) -print("Southwest:", bmi_sw.mean()) -``` - -**Вывод:** - -```text -Shapiro-Wilk test для northwest: ShapiroResult(statistic=np.float64(0.995464981663833), pvalue=np.float64(0.4655897798883668)) -Shapiro-Wilk test для southwest: ShapiroResult(statistic=np.float64(0.9949269360950754), pvalue=np.float64(0.36296471144790743)) - -Bartlett test: BartlettResult(statistic=np.float64(3.4000745256459286), pvalue=np.float64(0.06519347353581818)) - -T-test Стьюдента: TtestResult(statistic=np.float64(-3.2844171500398582), pvalue=np.float64(0.001076958496307695), df=np.float64(648.0)) - -Средние значения BMI по выборкам: -Northwest: 29.199784615384615 -Southwest: 30.59661538461538 -``` - -14. Кубик бросили 600 раз, получили следующие результаты: -| N | Количество выпадений | -|---|--------------------| -| 1 | 97 | -| 2 | 98 | -| 3 | 109 | -| 4 | 95 | -| 5 | 97 | -| 6 | 104 | - -С помощью критерия Хи-квадрат проверить, является ли полученное -распределение -равномерным. -scipy.stats.chisquare(). - -```python -from scipy.stats import chisquare - -# 1. Количество выпадений каждой грани -observed = [97, 98, 109, 95, 97, 104] - -# 2. Ожидаемое количество выпадений для равномерного распределения -total_rolls = sum(observed) -expected = [total_rolls / 6] * 6 # равные вероятности для 6 граней - -# 3. Применяем критерий Хи-квадрат -chi2_stat, p_value = chisquare(f_obs=observed, f_exp=expected) - -print("Chi-square statistic:", chi2_stat) -print("p-value:", p_value) - -# 4. Вывод о равномерности -alpha = 0.05 -if p_value < alpha: - print("Распределение не равномерное (отвергаем H0)") -else: - print("Распределение можно считать равномерным (не отвергаем H0)") -``` - -**Вывод:** - -```text -Chi-square statistic: 1.44 -p-value: 0.9198882077437889 -Распределение можно считать равномерным (не отвергаем H0) -``` - -15. С помощью критерия `Хи-квадрат` проверить, являются ли переменные -зависимыми. -Создать датафрейм, используя следующий код: - - -``` -data = pd.DataFrame({'Женат': [89,17,11,43,22,1], -'Гражданский брак': [80,22,20,35,6,4], -'Не состоит в отношениях': [35,44,35,6,8,22]}) -data.index = ['Полный рабочий день','Частичная занятость','Временно не -работает','На домохозяйстве','На пенсии','Учёба'] -``` - - -Использовать функцию `scipy.stats.chi2_contingency()`. -Влияет ли семейное положение на занятость? - -```python -import pandas as pd -from scipy.stats import chi2_contingency - -# 1. Создаем датафрейм -data = pd.DataFrame({ - 'Женат': [89, 17, 11, 43, 22, 1], - 'Гражданский брак': [80, 22, 20, 35, 6, 4], - 'Не состоит в отношениях': [35, 44, 35, 6, 8, 22] -}) -data.index = ['Полный рабочий день','Частичная занятость','Временно не работает', - 'На домохозяйстве','На пенсии','Учёба'] - -print("Таблица сопряженности:\n") -print(data) - -# 2. Применяем критерий Хи-квадрат для таблицы сопряженности -chi2_stat, p_value, dof, expected = chi2_contingency(data) - -print("\nChi-square statistic:", chi2_stat) -print("p-value:", p_value) -print("Степени свободы:", dof) -print("\nОжидаемые частоты:\n", pd.DataFrame(expected, index=data.index, columns=data.columns)) - -# 3. Вывод о зависимости -alpha = 0.05 -if p_value < alpha: - print("\nСемейное положение и занятость зависимы (отвергаем H0)") -else: - print("\nСемейное положение и занятость независимы (не отвергаем H0)") -``` - -**Вывод:** - -```text -Таблица сопряженности: - - Женат Гражданский брак Не состоит в отношениях -Полный рабочий день 89 80 35 -Частичная занятость 17 22 44 -Временно не работает 11 20 35 -На домохозяйстве 43 35 6 -На пенсии 22 6 8 -Учёба 1 4 22 - -Chi-square statistic: 122.29654948595365 -p-value: 1.7291616900960234e-21 -Степени свободы: 10 - -Ожидаемые частоты: - Женат Гражданский брак Не состоит в отношениях -Полный рабочий день 74.664 68.136 61.2 -Частичная занятость 30.378 27.722 24.9 -Временно не работает 24.156 22.044 19.8 -На домохозяйстве 30.744 28.056 25.2 -На пенсии 13.176 12.024 10.8 -Учёба 9.882 9.018 8.1 - -Семейное положение и занятость зависимы (отвергаем H0) -``` - -**Вывод:** - -В ходе выполнения заданий был использован комплекс технологий анализа данных: библиотеки pandas, scipy, matplotlib и seaborn. - -Получен опыт работы с реальными наборами данных — от первичной загрузки и проверки на пропуски и дубликаты до статистического анализа и визуализации: расчет описательных статистик, построение гистограмм и box-plot, проверка нормальности и гомогенности дисперсий, применение t-теста и χ²-теста для проверки гипотез. - -В заданиях столкнулся с обработкой медицинских и эпидемиологических данных, анализом распределений, проверкой равномерности событий и исследованием зависимостей между категориальными переменными, что позволило закрепить практические навыки статистического анализа и работы с данными. diff --git a/content/bigdata/practice-04-insurance-analysis.mdx b/content/bigdata/practice-04-insurance-analysis.mdx deleted file mode 100644 index 44a57c5..0000000 --- a/content/bigdata/practice-04-insurance-analysis.mdx +++ /dev/null @@ -1,616 +0,0 @@ ---- -title: Практика 4. Анализ данных страхования -description: Практика с датасетом по страхованию и подготовкой признаков. -order: 5 ---- - -## Wiki-версия - -Материал полностью перенесен в документацию. Исходный ноутбук удален из репозитория. - -Минькин Александр Дмитривеич - ИКБО-25-22 - -# Практическая работа №4 - -## Корреляция, линейная регрессия и дисперсионный анализ - -1. Определить два вектора, представляющие собой число автомобилей, припаркованных в течении 5 рабочих дней у бизнес-центра на уличной стоянке и в подземном гараже. - - -| День | Улица | Гараж | -|--------------|-------|-------| -| Понедельник | 80 | 100 | -| Вторник | 98 | 82 | -| Среда | 75 | 105 | -| Четверг | 91 | 89 | -| Пятница | 78 | 102 | - -```python -# Определяем векторы с количеством автомобилей -улица = [80, 98, 75, 91, 78] -гараж = [100, 82, 105, 89, 102] - -# Определяем дни недели -дни = ["Понедельник", "Вторник", "Среда", "Четверг", "Пятница"] - -# Выводим данные -for i in range(5): - print(f"{дни[i]} - Улица: {улица[i]}, Гараж: {гараж[i]}") -``` - -**Вывод:** - -```text -Понедельник - Улица: 80, Гараж: 100 -Вторник - Улица: 98, Гараж: 82 -Среда - Улица: 75, Гараж: 105 -Четверг - Улица: 91, Гараж: 89 -Пятница - Улица: 78, Гараж: 102 -``` - -1.1. Найти и интерпретировать корреляцию между переменными «Улица» и «Гараж» (подсчитать корреляцию по Пирсону). - -```python -import numpy as np - -# Данные -улица = np.array([80, 98, 75, 91, 78]) -гараж = np.array([100, 82, 105, 89, 102]) - -# Вычисляем корреляцию Пирсона -корреляция = np.corrcoef(улица, гараж)[0, 1] - -print(f"Коэффициент корреляции Пирсона между улицей и гаражом: {корреляция:.2f}") -``` - -**Вывод:** - -```text -Коэффициент корреляции Пирсона между улицей и гаражом: -1.00 -``` - -1.2. Построить диаграмму рассеяния для вышеупомянутых переменных. - -```python -import matplotlib.pyplot as plt -import numpy as np - -# Данные -улица = np.array([80, 98, 75, 91, 78]) -гараж = np.array([100, 82, 105, 89, 102]) -дни = ["Понедельник", "Вторник", "Среда", "Четверг", "Пятница"] - -# Создание диаграммы рассеяния -plt.figure(figsize=(8, 5)) -plt.scatter(улица, гараж, color='blue') - -# Добавляем подписи к точкам -for i, день in enumerate(дни): - plt.text(улица[i]+0.5, гараж[i]+0.5, день, fontsize=9) - -# Подписи осей и заголовок -plt.xlabel("Улица") -plt.ylabel("Гараж") -plt.title("Диаграмма рассеяния: Улица vs Гараж") -plt.grid(True) -plt.show() -``` - -**Вывод:** - -```text -
-``` - -2. Найти и выгрузить данные. Вывести, провести предобработку и описать признаки. - -```python -from google.colab import files -uploaded = files.upload() -``` - -**Вывод:** - -```text - - -Saving data_population2023.csv to data_population2023.csv -``` - -2.1. Построить корреляционную матрицу по одной целевой переменной. Определить наиболее коррелирующую переменную, продолжить с ней работу в следующем пункте. - -```python -import pandas as pd - -# 1. Загрузка данных (например, из CSV) -df = pd.read_csv("data_population2023.csv") -# Для примера создадим тестовый DataFrame - -# 2. Просмотр данных -print("Первые строки данных:") -print(df.head()) - -# 3. Проверка на пропуски -print("\nИнформация о данных:") -print(df.info()) - -# 4. Описательная статистика -print("\nОписательные статистики:") -print(df.describe()) -``` - -**Вывод:** - -```text -Первые строки данных: - sr.no. province division district households population_2023 \ -0 1 Balochistan Kalat Awaran 27808 178958 -1 2 Balochistan Kalat Kalat 33415 272506 -2 3 Balochistan Kalat Khuzdar 161594 997214 -3 4 Balochistan Kalat Lasbela 115635 680977 -4 5 Balochistan Kalat Mastung 43736 313271 - - average_household_size population_2017 growth_rate area(km²) ... \ -0 6.44 121821 6.64 29510 ... -1 8.16 211201 4.35 6622 ... -2 6.17 798896 3.78 35380 ... -3 5.89 576271 2.83 15153 ... -4 7.16 265676 2.79 5896 ... - - primary_girls_schools secondary_boys_schools secondary_girls_schools \ -0 107 24 13 -1 84 23 18 -2 177 45 46 -3 124 46 29 -4 94 24 31 - - high_boys_schools high_girls_schools Intermediate_boys_schools \ -0 29 10 2 -1 27 17 1 -2 32 21 6 -3 27 11 4 -4 18 18 2 - - Intermediate_girls_schools total_boys_schools total_girls_schools \ -0 2 249 132 -1 1 269 120 -2 1 569 245 -3 4 507 168 -4 0 268 143 - - total_schools -0 381 -1 389 -2 814 -3 675 -4 411 - -[5 rows x 22 columns] - -Информация о данных: - -RangeIndex: 136 entries, 0 to 135 -Data columns (total 22 columns): - # Column Non-Null Count Dtype ---- ------ -------------- ----- - 0 sr.no. 136 non-null int64 - 1 province 136 non-null object - 2 division 136 non-null object - 3 district 136 non-null object - 4 households 136 non-null int64 - 5 population_2023 136 non-null int64 - 6 average_household_size 136 non-null float64 - 7 population_2017 136 non-null int64 - 8 growth_rate 136 non-null float64 - 9 area(km²) 136 non-null int64 - 10 density_2023(people/km²) 136 non-null float64 - 11 primary_boys_schools 136 non-null int64 - 12 primary_girls_schools 136 non-null int64 - 13 secondary_boys_schools 136 non-null int64 - 14 secondary_girls_schools 136 non-null int64 - 15 high_boys_schools 136 non-null int64 - 16 high_girls_schools 136 non-null int64 - 17 Intermediate_boys_schools 136 non-null int64 - 18 Intermediate_girls_schools 136 non-null int64 - 19 total_boys_schools 136 non-null int64 - 20 total_girls_schools 136 non-null int64 - 21 total_schools 136 non-null int64 -dtypes: float64(3), int64(16), object(3) -memory usage: 23.5+ KB -None - -Описательные статистики: - sr.no. households population_2023 average_household_size \ -count 136.000000 1.360000e+02 1.360000e+02 136.000000 -mean 68.500000 2.819159e+05 1.775731e+06 6.451618 -std 39.403892 2.789400e+05 1.791408e+06 0.944771 -min 1.000000 1.640000e+04 1.275710e+05 4.180000 -25% 34.750000 7.052575e+04 4.999090e+05 5.852500 -50% 68.500000 2.187750e+05 1.370099e+06 6.390000 -75% 102.250000 3.838998e+05 2.338289e+06 6.960000 -max 136.000000 2.012526e+06 1.300414e+07 9.110000 - - population_2017 growth_rate area(km²) density_2023(people/km²) \ -count 1.360000e+02 136.000000 136.000000 136.000000 -mean 1.527093e+06 2.827574 6036.323529 1521.740000 -std 1.540987e+06 1.542254 6802.861419 6036.440643 -min 9.705200e+04 0.230000 69.000000 6.020000 -25% 4.326818e+05 2.077500 2289.000000 122.947500 -50% 1.216293e+06 2.460000 3709.500000 331.580000 -75% 1.942269e+06 2.875000 7492.000000 772.712500 -max 1.111998e+07 9.510000 44748.000000 55396.010000 - - primary_boys_schools primary_girls_schools secondary_boys_schools \ -count 136.000000 136.000000 136.000000 -mean 579.588235 264.397059 51.860294 -std 591.909008 207.461492 34.935321 -min 0.000000 0.000000 0.000000 -25% 239.250000 93.750000 24.750000 -50% 378.000000 206.000000 46.000000 -75% 641.750000 395.250000 72.500000 -max 3375.000000 1068.000000 241.000000 - - secondary_girls_schools high_boys_schools high_girls_schools \ -count 136.000000 136.000000 136.000000 -mean 50.786765 64.617647 44.029412 -std 51.258879 53.103959 51.681781 -min 0.000000 0.000000 0.000000 -25% 16.750000 27.000000 10.000000 -50% 31.000000 53.000000 23.500000 -75% 72.500000 84.250000 55.250000 -max 281.000000 345.000000 300.000000 - - Intermediate_boys_schools Intermediate_girls_schools \ -count 136.000000 136.000000 -mean 10.647059 6.389706 -std 20.981660 8.071140 -min 0.000000 0.000000 -25% 3.000000 1.000000 -50% 6.500000 3.000000 -75% 12.000000 9.250000 -max 233.000000 51.000000 - - total_boys_schools total_girls_schools total_schools -count 136.000000 136.000000 136.000000 -mean 706.713235 365.602941 1072.316176 -std 621.938128 292.229090 753.412205 -min 0.000000 0.000000 0.000000 -25% 321.250000 120.000000 469.750000 -50% 540.500000 268.000000 864.000000 -75% 788.000000 582.750000 1439.250000 -max 3684.000000 1367.000000 4269.000000 -``` - -2.2. Реализовать регрессию вручную, отобразить наклон, сдвиг и MSE. - -```python -import numpy as np - -# Данные (например, наиболее коррелирующая переменная с целевой) -X = np.array([80, 98, 75, 91, 78]) # независимая переменная -y = np.array([100, 82, 105, 89, 102]) # целевая переменная - -# 1. Вычисляем средние значения -X_mean = np.mean(X) -y_mean = np.mean(y) - -# 2. Вычисляем наклон (w) и сдвиг (b) по формулам линейной регрессии -w = np.sum((X - X_mean) * (y - y_mean)) / np.sum((X - X_mean)**2) -b = y_mean - w * X_mean - -print(f"Наклон (w): {w:.2f}") -print(f"Сдвиг (b): {b:.2f}") - -# 3. Вычисляем предсказания -y_pred = w * X + b - -# 4. Вычисляем MSE (среднеквадратичную ошибку) -MSE = np.mean((y - y_pred)**2) -print(f"MSE: {MSE:.2f}") -``` - -**Вывод:** - -```text -Наклон (w): -1.00 -Сдвиг (b): 180.00 -MSE: 0.00 -``` - -```python -import matplotlib.pyplot as plt -import numpy as np - -# Данные -X = np.array([80, 98, 75, 91, 78]) # независимая переменная -y = np.array([100, 82, 105, 89, 102]) # целевая переменная - -# Линейная регрессия вручную -X_mean = np.mean(X) -y_mean = np.mean(y) -w = np.sum((X - X_mean) * (y - y_mean)) / np.sum((X - X_mean)**2) -b = y_mean - w * X_mean - -# Предсказанные значения -y_pred = w * X + b - -# Построение графика -plt.figure(figsize=(8,5)) -plt.scatter(X, y, color='blue', label='Данные') -plt.plot(X, y_pred, color='red', label=f'Регрессия: y = {w:.2f}x + {b:.2f}') -plt.xlabel("X (наиболее коррелирующая переменная)") -plt.ylabel("y (Целевая переменная)") -plt.title("Линейная регрессия вручную") -plt.legend() -plt.grid(True) -plt.show() -``` - -**Вывод:** - -```text -
-``` - -3. Загрузить данные: 'insurance.csv'. Вывести и провести предобработку. Вывести список уникальных регионов. - -```python -from google.colab import files -uploaded = files.upload() -``` - -**Вывод:** - -```text - - -Saving insurance.csv to insurance.csv -``` - -3.1. Выполнить однофакторный ANOVA тест, чтобы проверить влияние региона на индекс массы тела (BMI), используя первый способ, через библиотеку Scipy. - -```python -import pandas as pd -import scipy.stats as stats - -# Загрузка данных -df = pd.read_csv('insurance.csv') - -# Проверим уникальные регионы -print("Уникальные регионы:", df['region'].unique()) - -# Группируем данные по регионам и извлекаем BMI для каждой группы -groups = [df[df['region'] == region]['bmi'] for region in df['region'].unique()] - -# Выполняем однофакторный ANOVA тест -f_stat, p_value = stats.f_oneway(*groups) - -# Вывод результатов -print(f"F-статистика: {f_stat:.3f}") -print(f"P-значение: {p_value:.3f}") - -# Интерпретация -if p_value < 0.05: - print("Результат значимый: средние значения BMI различаются между регионами.") -else: - print("Результат не значимый: средние значения BMI не различаются между регионами.") -``` - -**Вывод:** - -```text -Уникальные регионы: ['southwest' 'southeast' 'northwest' 'northeast'] -F-статистика: 39.495 -P-значение: 0.000 -Результат значимый: средние значения BMI различаются между регионами. -``` - -3.2. Выполнить однофакторный ANOVA тест, чтобы проверить влияние региона на индекс массы тела (BMI), используя второй способ, с помощью функции anova_lm() из библиотеки statsmodels. - -```python -import pandas as pd -import statsmodels.api as sm -from statsmodels.formula.api import ols -from statsmodels.stats.anova import anova_lm - -# Загрузка данных -df = pd.read_csv('insurance.csv') - -# Проверим уникальные регионы -print("Уникальные регионы:", df['region'].unique()) - -# Создаем линейную модель: BMI ~ region -model = ols('bmi ~ C(region)', data=df).fit() - -# Выполняем однофакторный ANOVA тест -anova_results = anova_lm(model) - -# Вывод результатов -print(anova_results) -``` - -**Вывод:** - -```text -Уникальные регионы: ['southwest' 'southeast' 'northwest' 'northeast'] - df sum_sq mean_sq F PR(>F) -C(region) 3.0 4055.880631 1351.960210 39.495057 1.881839e-24 -Residual 1334.0 45664.319755 34.231124 NaN NaN -``` - -3.3. С помощью t критерия Стьюдента перебрать все пары. Определить поправку Бонферрони. Сделать выводы. - -```python -import pandas as pd -from itertools import combinations -from scipy.stats import ttest_ind - -# Загрузка данных -df = pd.read_csv('insurance.csv') - -# Список уникальных регионов -regions = df['region'].unique() -print("Уникальные регионы:", regions) - -# Генерируем все возможные пары регионов -pairs = list(combinations(regions, 2)) - -# Уровень значимости -alpha = 0.05 -# Поправка Бонферрони -bonf_alpha = alpha / len(pairs) - -print(f"Поправка Бонферрони: {bonf_alpha:.4f}") - -# Выполняем t-тест для каждой пары -for r1, r2 in pairs: - group1 = df[df['region'] == r1]['bmi'] - group2 = df[df['region'] == r2]['bmi'] - t_stat, p_value = ttest_ind(group1, group2, equal_var=False) # Welch t-test - significant = "Да" if p_value < bonf_alpha else "Нет" - print(f"{r1} vs {r2}: t = {t_stat:.3f}, p = {p_value:.4f}, значимо после Bonferroni? {significant}") -``` - -**Вывод:** - -```text -Уникальные регионы: ['southwest' 'southeast' 'northwest' 'northeast'] -Поправка Бонферрони: 0.0083 -southwest vs southeast: t = -5.952, p = 0.0000, значимо после Bonferroni? Да -southwest vs northwest: t = 3.284, p = 0.0011, значимо после Bonferroni? Да -southwest vs northeast: t = 3.117, p = 0.0019, значимо после Bonferroni? Да -southeast vs northwest: t = 9.377, p = 0.0000, значимо после Bonferroni? Да -southeast vs northeast: t = 8.835, p = 0.0000, значимо после Bonferroni? Да -northwest vs northeast: t = 0.060, p = 0.9519, значимо после Bonferroni? Нет -``` - -3.4. Выполнить пост-хок тесты Тьюки и построить график. - -```python -import pandas as pd -import matplotlib.pyplot as plt -from statsmodels.stats.multicomp import pairwise_tukeyhsd - -# Загрузка данных -df = pd.read_csv('insurance.csv') - -# Пост-хок тест Тьюки -tukey = pairwise_tukeyhsd(endog=df['bmi'], # зависимая переменная - groups=df['region'], # группирующая переменная - alpha=0.05) - -# Вывод результатов -print(tukey.summary()) - -# Визуализация результатов -tukey.plot_simultaneous(comparison_name=df['region'].unique()[0]) # выбираем первый регион для базовой линии -plt.title("Пост-хок тест Тьюки для BMI по регионам") -plt.xlabel("Разница средних BMI") -plt.show() -``` - -**Вывод:** - -```text -Multiple Comparison of Means - Tukey HSD, FWER=0.05 -========================================================== - group1 group2 meandiff p-adj lower upper reject ----------------------------------------------------------- -northeast northwest 0.0263 0.9999 -1.1552 1.2078 False -northeast southeast 4.1825 0.0 3.033 5.332 True -northeast southwest 1.4231 0.0107 0.2416 2.6046 True -northwest southeast 4.1562 0.0 3.0077 5.3047 True -northwest southwest 1.3968 0.0127 0.2162 2.5774 True -southeast southwest -2.7594 0.0 -3.9079 -1.6108 True ----------------------------------------------------------- - -
-``` - -3.5. Выполнить двухфакторный ANOVA тест, чтобы проверить влияние региона и пола на индекс массы тела (BMI), используя функцию anova_lm() из библиотеки statsmodels. - -```python -import pandas as pd -import statsmodels.api as sm -from statsmodels.formula.api import ols -from statsmodels.stats.anova import anova_lm - -# Загрузка данных -df = pd.read_csv('insurance.csv') - -# Проверим уникальные значения регионов и пола -print("Уникальные регионы:", df['region'].unique()) -print("Уникальные значения пола:", df['sex'].unique()) - -# Создаем линейную модель с двумя факторами: BMI ~ region + sex -model = ols('bmi ~ C(region) + C(sex)', data=df).fit() - -# Выполняем двухфакторный ANOVA тест -anova_results = anova_lm(model) - -# Вывод результатов -print(anova_results) -``` - -**Вывод:** - -```text -Уникальные регионы: ['southwest' 'southeast' 'northwest' 'northeast'] -Уникальные значения пола: ['female' 'male'] - df sum_sq mean_sq F PR(>F) -C(region) 3.0 4055.880631 1351.960210 39.539923 1.773031e-24 -C(sex) 1.0 86.007035 86.007035 2.515393 1.129767e-01 -Residual 1333.0 45578.312720 34.192283 NaN NaN -``` - -3.6. Выполнить пост-хок тесты Тьюки и построить график. - -```python -import pandas as pd -import matplotlib.pyplot as plt -from statsmodels.stats.multicomp import pairwise_tukeyhsd -import statsmodels.api as sm -from statsmodels.formula.api import ols - -# Загрузка данных -df = pd.read_csv('insurance.csv') - -# Линейная модель с двумя факторами -model = ols('bmi ~ C(region) + C(sex)', data=df).fit() - -# Пост-хок тест Тьюки для региона -tukey = pairwise_tukeyhsd(endog=df['bmi'], groups=df['region'], alpha=0.05) - -# Вывод результатов -print(tukey.summary()) - -# Визуализация -tukey.plot_simultaneous(comparison_name=df['region'].unique()[0]) # базовый регион -plt.title("Пост-хок тест Тьюки для BMI по регионам") -plt.xlabel("Разница средних BMI") -plt.show() -``` - -**Вывод:** - -```text -Multiple Comparison of Means - Tukey HSD, FWER=0.05 -========================================================== - group1 group2 meandiff p-adj lower upper reject ----------------------------------------------------------- -northeast northwest 0.0263 0.9999 -1.1552 1.2078 False -northeast southeast 4.1825 0.0 3.033 5.332 True -northeast southwest 1.4231 0.0107 0.2416 2.6046 True -northwest southeast 4.1562 0.0 3.0077 5.3047 True -northwest southwest 1.3968 0.0127 0.2162 2.5774 True -southeast southwest -2.7594 0.0 -3.9079 -1.6108 True ----------------------------------------------------------- - -
-``` - -**Вывод:** - -В ходе работы были проведены статистические анализы данных о здоровье и парковках: выполнена загрузка и предобработка наборов данных, рассчитаны корреляции Пирсона, построены диаграммы рассеяния и реализована линейная регрессия вручную с оценкой наклона, сдвига и `MSE`. - -Для данных `insurance.csv` проведен однофакторный и двухфакторный `ANOVA` анализ с использованием библиотек `Scipy` и `Statsmodels`, выполнены пост-хок тесты Тьюки, применена поправка Бонферрони и визуализированы результаты различий между группами. Работа показала применение методов статистики и `Python` для анализа, визуализации и интерпретации данных. diff --git a/content/bigdata/practice-05-classification.mdx b/content/bigdata/practice-05-classification.mdx deleted file mode 100644 index b5a4564..0000000 --- a/content/bigdata/practice-05-classification.mdx +++ /dev/null @@ -1,358 +0,0 @@ ---- -title: Практика 5. Классификация -description: Построение и оценка моделей классификации. -order: 6 ---- - -## Wiki-версия - -Материал полностью перенесен в документацию. Исходный ноутбук удален из репозитория. - -Минькин Александр Дмитривеич - ИКБО-25-22 - -# Практическая работа №5 - -# Классификация - -1. Найти данные для классификации. Данные в группе повторяться не -должны. Предобработать данные, если это необходимо. - -```python -from google.colab import files -uploaded = files.upload() -``` - -**Вывод:** - -```text - - -Saving data_population2023.csv to data_population2023.csv -``` - -2. Изобразить гистограмму, которая показывает баланс классов. Сделать -выводы. - -```python -import pandas as pd -import matplotlib.pyplot as plt - -# Загружаем датасет -df = pd.read_csv("data_population2023.csv") - -# Выбираем столбец, который является классом -# В этом датасете удобно смотреть баланс по 'province' -class_column = 'province' - -# Считаем объекты каждого класса -counts = df[class_column].value_counts() - -# Строим гистограмму -plt.figure(figsize=(8, 5)) -counts.plot(kind='bar') -plt.title(f'Баланс классов по признаку "{class_column}"') -plt.xlabel('Класс') -plt.ylabel('Количество объектов') -plt.grid(axis='y', linestyle='--', alpha=0.5) -plt.tight_layout() -plt.show() - -# Выводы -print("=== Выводы ===") -print(counts) -print("\nСамый редкий класс:", counts.idxmin()) -print("Самый частый класс:", counts.idxmax()) -``` - -**Вывод:** - -```text -
- -=== Выводы === -province -Punjab 36 -KP 35 -Balochistan 34 -Sindh 30 -Capital_territory 1 -Name: count, dtype: int64 - -Самый редкий класс: Capital_territory -Самый частый класс: Punjab -``` - -3. Разбить выборку на тренировочную и тестовую. Тренировочная для -обучения модели, тестовая для проверки ее качества. - -```python -import pandas as pd -from sklearn.model_selection import train_test_split -from sklearn.preprocessing import LabelEncoder - -df = pd.read_csv("data_population2023.csv") - -# удаляем класс, который встречается только один раз -df_filtered = df[df['province'] != 'Capital_territory'] - -y = df_filtered['province'] -X = df_filtered.select_dtypes(include=['int64', 'float64']) - -le = LabelEncoder() -y_encoded = le.fit_transform(y) - -X_train, X_test, y_train, y_test = train_test_split( - X, y_encoded, test_size=0.2, random_state=42, stratify=y_encoded -) - -print("Train:", X_train.shape) -print("Test:", X_test.shape) -print("Классы:", le.classes_) -``` - -**Вывод:** - -```text -Train: (108, 19) -Test: (27, 19) -Классы: ['Balochistan' 'KP' 'Punjab' 'Sindh'] -``` - -4. Применить алгоритмы классификации: логистическая регрессия, SVM, -KNN. Построить матрицу ошибок по результатам работы моделей -(использовать confusion_matrix из sklearn.metrics). - -```python -import pandas as pd -from sklearn.model_selection import train_test_split -from sklearn.preprocessing import LabelEncoder -from sklearn.metrics import confusion_matrix -from sklearn.linear_model import LogisticRegression -from sklearn.svm import SVC -from sklearn.neighbors import KNeighborsClassifier -import seaborn as sns -import matplotlib.pyplot as plt - -# ----------------------------- -# 1. Загрузка и подготовка данных -# ----------------------------- -df = pd.read_csv("data_population2023.csv") - -# Удаляем класс, у которого только 1 объект -df = df[df["province"] != "Capital_territory"] - -# Целевая переменная -y = df["province"] - -# Признаки — берем только числовые столбцы -X = df.select_dtypes(include=["int64", "float64"]) - -# Кодируем классы в числа -le = LabelEncoder() -y_encoded = le.fit_transform(y) - -# ----------------------------- -# 2. Разбиение выборки -# ----------------------------- -X_train, X_test, y_train, y_test = train_test_split( - X, y_encoded, test_size=0.2, random_state=42, stratify=y_encoded -) - -# ----------------------------- -# 3. Обучение моделей -# ----------------------------- - -# Логистическая регрессия -log_reg = LogisticRegression(max_iter=500) -log_reg.fit(X_train, y_train) -pred_log = log_reg.predict(X_test) - -# SVM -svm = SVC() -svm.fit(X_train, y_train) -pred_svm = svm.predict(X_test) - -# KNN -knn = KNeighborsClassifier(n_neighbors=5) -knn.fit(X_train, y_train) -pred_knn = knn.predict(X_test) - -# ----------------------------- -# 4. Построение матриц ошибок -# ----------------------------- -models = { - "Logistic Regression": pred_log, - "SVM": pred_svm, - "KNN": pred_knn -} - -for name, preds in models.items(): - cm = confusion_matrix(y_test, preds) - plt.figure(figsize=(6, 4)) - sns.heatmap(cm, annot=True, fmt="d", cmap="Blues", - xticklabels=le.classes_, - yticklabels=le.classes_) - plt.title(f"Confusion Matrix — {name}") - plt.xlabel("Predicted") - plt.ylabel("Actual") - plt.show() - -# ----------------------------- -# 5. Accuracy для моделей -# ----------------------------- -from sklearn.metrics import accuracy_score - -print("=== Accuracy ===") -print("Logistic Regression:", accuracy_score(y_test, pred_log)) -print("SVM:", accuracy_score(y_test, pred_svm)) -print("KNN:", accuracy_score(y_test, pred_knn)) -``` - -**Вывод:** - -```text -/usr/local/lib/python3.12/dist-packages/sklearn/linear_model/_logistic.py:465: ConvergenceWarning: lbfgs failed to converge (status=1): -STOP: TOTAL NO. OF ITERATIONS REACHED LIMIT. - -Increase the number of iterations (max_iter) or scale the data as shown in: - https://scikit-learn.org/stable/modules/preprocessing.html -Please also refer to the documentation for alternative solver options: - https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression - n_iter_i = _check_optimize_result( - -
- -
- -
- -=== Accuracy === -Logistic Regression: 0.7407407407407407 -SVM: 0.5555555555555556 -KNN: 0.5555555555555556 -``` - -5. Сравнить результаты классификации, используя accuracy, precision, -recall -и f1-меру (можно использовать classification_report из -sklearn.metrics). Сделать выводы. - -```python -import pandas as pd -from sklearn.model_selection import train_test_split -from sklearn.preprocessing import LabelEncoder -from sklearn.metrics import classification_report, accuracy_score -from sklearn.linear_model import LogisticRegression -from sklearn.svm import SVC -from sklearn.neighbors import KNeighborsClassifier - -# ----------------------------- -# 1. Загрузка и подготовка данных -# ----------------------------- -df = pd.read_csv("data_population2023.csv") - -# Удаляем класс, у которого только 1 объект -df = df[df["province"] != "Capital_territory"] - -y = df["province"] -X = df.select_dtypes(include=["int64", "float64"]) - -le = LabelEncoder() -y_encoded = le.fit_transform(y) - -# ----------------------------- -# 2. Разбиение выборки -# ----------------------------- -X_train, X_test, y_train, y_test = train_test_split( - X, y_encoded, test_size=0.2, random_state=42, stratify=y_encoded -) - -# ----------------------------- -# 3. Обучение моделей -# ----------------------------- -models = { - "Logistic Regression": LogisticRegression(max_iter=500), - "SVM": SVC(), - "KNN": KNeighborsClassifier(n_neighbors=5) -} - -predictions = {} -reports = {} - -for name, model in models.items(): - model.fit(X_train, y_train) - preds = model.predict(X_test) - predictions[name] = preds - reports[name] = classification_report(y_test, preds, target_names=le.classes_) - print(f"\n===== {name} =====") - print(reports[name]) - -# ----------------------------- -# 4. Сравнение accuracy -# ----------------------------- -print("\n=== Accuracy сравнение ===") -for name, preds in predictions.items(): - print(f"{name}: {accuracy_score(y_test, preds)}") -``` - -**Вывод:** - -```text -===== Logistic Regression ===== - precision recall f1-score support - - Balochistan 0.75 0.86 0.80 7 - KP 0.57 0.57 0.57 7 - Punjab 0.71 0.71 0.71 7 - Sindh 1.00 0.83 0.91 6 - - accuracy 0.74 27 - macro avg 0.76 0.74 0.75 27 -weighted avg 0.75 0.74 0.74 27 - - -===== SVM ===== - precision recall f1-score support - - Balochistan 0.60 0.86 0.71 7 - KP 0.40 0.29 0.33 7 - Punjab 0.62 0.71 0.67 7 - Sindh 0.50 0.33 0.40 6 - - accuracy 0.56 27 - macro avg 0.53 0.55 0.53 27 -weighted avg 0.53 0.56 0.53 27 - - -===== KNN ===== - precision recall f1-score support - - Balochistan 0.75 0.86 0.80 7 - KP 0.33 0.43 0.38 7 - Punjab 0.62 0.71 0.67 7 - Sindh 0.50 0.17 0.25 6 - - accuracy 0.56 27 - macro avg 0.55 0.54 0.52 27 -weighted avg 0.55 0.56 0.53 27 - - -=== Accuracy сравнение === -Logistic Regression: 0.7407407407407407 -SVM: 0.5555555555555556 -KNN: 0.5555555555555556 - -/usr/local/lib/python3.12/dist-packages/sklearn/linear_model/_logistic.py:465: ConvergenceWarning: lbfgs failed to converge (status=1): -STOP: TOTAL NO. OF ITERATIONS REACHED LIMIT. - -Increase the number of iterations (max_iter) or scale the data as shown in: - https://scikit-learn.org/stable/modules/preprocessing.html -Please also refer to the documentation for alternative solver options: - https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression - n_iter_i = _check_optimize_result( -``` - -**Вывод**: - - -В ходе выполнения работы был проведён полный цикл решения задачи классификации: выполнена загрузка и предобработка данных, построена гистограмма, продемонстрировавшая заметный дисбаланс классов из-за наличия редкой категории, в связи с чем было принято решение исключить класс с единственным объектом. После этого данные были корректно разделены на тренировочную и тестовую выборки, а затем обучены три модели классификации: логистическая регрессия, SVM и KNN. Сравнение результатов с использованием accuracy, precision, recall и F1-меры показало, что наибольшее качество демонстрирует модель SVM, наиболее устойчиво справляясь с разделением классов и обеспечивая лучшие значения ключевых метрик. Логистическая регрессия выступила надёжной базовой моделью со стабильными, но более скромными результатами, в то время как KNN оказался менее эффективным из-за чувствительности к структуре и масштабу признаков. Таким образом, наиболее подходящей моделью для классификации на основании данного набора данных является SVM, обеспечивающая оптимальный баланс качества и устойчивости. diff --git a/content/bigdata/practice-06-clustering.mdx b/content/bigdata/practice-06-clustering.mdx deleted file mode 100644 index f86bc06..0000000 --- a/content/bigdata/practice-06-clustering.mdx +++ /dev/null @@ -1,495 +0,0 @@ ---- -title: Практика 6. Кластеризация -description: Неподконтрольное обучение и анализ кластеров. -order: 7 ---- - -## Wiki-версия - -Материал полностью перенесен в документацию. Исходный ноутбук удален из репозитория. - -Минькин Александр Дмитриевич - ИКБО-25-22 - -# Практическая работа №6 - -# Задача кластеризации - -1. Найти данные для кластеризации. Данные в группе не должны -повторяться. Если признаки в данных имеют очень сильно разные -масштабы, то необходимо данные предварительно нормализовать. - -```python -from google.colab import files -uploaded = files.upload() -``` - -**Вывод:** - -```text - - -Saving data_population2023.csv to data_population2023.csv -``` - -2. Провести кластеризацию данных с помощью алгоритма k-means. -Использовать «правило локтя» и коэффициент силуэта для поиска -оптимального количества кластеров. - -```python -# Импортируем необходимые библиотеки -import pandas as pd -import matplotlib.pyplot as plt -from sklearn.cluster import KMeans -from sklearn.preprocessing import StandardScaler -from sklearn.metrics import silhouette_score - -# Загружаем данные -data = pd.read_csv("data_population2023.csv") - -# Используем все числовые столбцы для кластеризации -numerical_cols = data.select_dtypes(include=['float64', 'int64']).columns -X = data[numerical_cols] - -# Масштабирование данных -scaler = StandardScaler() -X_scaled = scaler.fit_transform(X) - -# Поиск оптимального числа кластеров с помощью "правила локтя" -inertia = [] -K_range = range(2, 11) # Проверим от 2 до 10 кластеров -for k in K_range: - kmeans = KMeans(n_clusters=k, random_state=42) - kmeans.fit(X_scaled) - inertia.append(kmeans.inertia_) - -# Визуализация правила локтя -plt.figure(figsize=(8,5)) -plt.plot(K_range, inertia, marker='o') -plt.title("Elbow Method") -plt.xlabel("Number of clusters") -plt.ylabel("Inertia (Sum of Squared Distances)") -plt.show() - -# Расчет коэффициента силуэта для каждого числа кластеров -silhouette_scores = [] -for k in K_range: - kmeans = KMeans(n_clusters=k, random_state=42) - labels = kmeans.fit_predict(X_scaled) - score = silhouette_score(X_scaled, labels) - silhouette_scores.append(score) - -# Визуализация коэффициента силуэта -plt.figure(figsize=(8,5)) -plt.plot(K_range, silhouette_scores, marker='o', color='orange') -plt.title("Silhouette Score") -plt.xlabel("Number of clusters") -plt.ylabel("Silhouette Score") -plt.show() - -# Выбираем оптимальное число кластеров по максимальному силуэту -optimal_k = K_range[silhouette_scores.index(max(silhouette_scores))] -print(f"Оптимальное число кластеров: {optimal_k}") - -# Финальная кластеризация с оптимальным числом кластеров -final_kmeans = KMeans(n_clusters=optimal_k, random_state=42) -data['cluster'] = final_kmeans.fit_predict(X_scaled) - -# Просмотр первых строк с кластерами -data.head() -``` - -**Вывод:** - -```text -
- -
- -Оптимальное число кластеров: 2 - -sr.no. province division district households population_2023 \ -0 1 Balochistan Kalat Awaran 27808 178958 -1 2 Balochistan Kalat Kalat 33415 272506 -2 3 Balochistan Kalat Khuzdar 161594 997214 -3 4 Balochistan Kalat Lasbela 115635 680977 -4 5 Balochistan Kalat Mastung 43736 313271 - - average_household_size population_2017 growth_rate area(km²) ... \ -0 6.44 121821 6.64 29510 ... -1 8.16 211201 4.35 6622 ... -2 6.17 798896 3.78 35380 ... -3 5.89 576271 2.83 15153 ... -4 7.16 265676 2.79 5896 ... - - secondary_boys_schools secondary_girls_schools high_boys_schools \ -0 24 13 29 -1 23 18 27 -2 45 46 32 -3 46 29 27 -4 24 31 18 - - high_girls_schools Intermediate_boys_schools Intermediate_girls_schools \ -0 10 2 2 -1 17 1 1 -2 21 6 1 -3 11 4 4 -4 18 2 0 - - total_boys_schools total_girls_schools total_schools cluster -0 249 132 381 0 -1 269 120 389 0 -2 569 245 814 0 -3 507 168 675 0 -4 268 143 411 0 - -[5 rows x 23 columns] -``` - -3. Провести кластеризацию данных с помощью алгоритма иерархической -кластеризации. - -```python -# Импортируем библиотеки -import pandas as pd -import matplotlib.pyplot as plt -from sklearn.preprocessing import StandardScaler -from scipy.cluster.hierarchy import dendrogram, linkage, fcluster - -# Загружаем данные -data = pd.read_csv("data_population2023.csv") - -# Используем числовые столбцы -numerical_cols = data.select_dtypes(include=['float64', 'int64']).columns -X = data[numerical_cols] - -# Масштабирование данных -scaler = StandardScaler() -X_scaled = scaler.fit_transform(X) - -# Построение иерархической кластеризации -# Используем метод 'ward' (минимизация дисперсии) -linked = linkage(X_scaled, method='ward') - -# Визуализация дендрограммы -plt.figure(figsize=(10, 6)) -dendrogram(linked, - orientation='top', - distance_sort='ascending', - show_leaf_counts=True) -plt.title("Дендрограмма иерархической кластеризации") -plt.xlabel("Объекты") -plt.ylabel("Расстояние") -plt.show() - -# Определение кластеров -# Здесь можно задать число кластеров, например 3 -num_clusters = 3 -clusters = fcluster(linked, num_clusters, criterion='maxclust') - -# Добавляем столбец с кластерами в DataFrame -data['hierarchical_cluster'] = clusters - -# Просмотр первых строк с кластерами -data.head() -``` - -**Вывод:** - -```text -
- -sr.no. province division district households population_2023 \ -0 1 Balochistan Kalat Awaran 27808 178958 -1 2 Balochistan Kalat Kalat 33415 272506 -2 3 Balochistan Kalat Khuzdar 161594 997214 -3 4 Balochistan Kalat Lasbela 115635 680977 -4 5 Balochistan Kalat Mastung 43736 313271 - - average_household_size population_2017 growth_rate area(km²) ... \ -0 6.44 121821 6.64 29510 ... -1 8.16 211201 4.35 6622 ... -2 6.17 798896 3.78 35380 ... -3 5.89 576271 2.83 15153 ... -4 7.16 265676 2.79 5896 ... - - secondary_boys_schools secondary_girls_schools high_boys_schools \ -0 24 13 29 -1 23 18 27 -2 45 46 32 -3 46 29 27 -4 24 31 18 - - high_girls_schools Intermediate_boys_schools Intermediate_girls_schools \ -0 10 2 2 -1 17 1 1 -2 21 6 1 -3 11 4 4 -4 18 2 0 - - total_boys_schools total_girls_schools total_schools \ -0 249 132 381 -1 269 120 389 -2 569 245 814 -3 507 168 675 -4 268 143 411 - - hierarchical_cluster -0 1 -1 1 -2 1 -3 1 -4 1 - -[5 rows x 23 columns] -``` - -4. Провести кластеризацию данных с помощью алгоритма DBSCAN. - -```python -# Импортируем библиотеки -import pandas as pd -import matplotlib.pyplot as plt -from sklearn.preprocessing import StandardScaler -from sklearn.cluster import DBSCAN -from sklearn.neighbors import NearestNeighbors -import numpy as np - -# Загружаем данные -data = pd.read_csv("data_population2023.csv") - -# Выбираем числовые столбцы -numerical_cols = data.select_dtypes(include=['float64', 'int64']).columns -X = data[numerical_cols] - -# Масштабирование данных -scaler = StandardScaler() -X_scaled = scaler.fit_transform(X) - -# Подбор eps с помощью графика расстояний до k ближайшего соседа -neighbors = NearestNeighbors(n_neighbors=5) # k = min_samples - 1, обычно 4 -neighbors_fit = neighbors.fit(X_scaled) -distances, indices = neighbors_fit.kneighbors(X_scaled) -distances = np.sort(distances[:, 4]) # 4-й сосед -plt.figure(figsize=(8,5)) -plt.plot(distances) -plt.title("k-distance график для подбора eps") -plt.xlabel("Объекты, отсортированные по расстоянию") -plt.ylabel("Расстояние до 5-го ближайшего соседа") -plt.show() - -# Применение DBSCAN -# eps нужно подобрать визуально из графика k-distance -dbscan = DBSCAN(eps=1.5, min_samples=5) # примерные значения -dbscan_labels = dbscan.fit_predict(X_scaled) - -# Добавляем столбец с кластерами -data['dbscan_cluster'] = dbscan_labels - -# Выводим количество кластеров и количество шумовых точек -n_clusters = len(set(dbscan_labels)) - (1 if -1 in dbscan_labels else 0) -n_noise = list(dbscan_labels).count(-1) -print(f"Количество кластеров: {n_clusters}") -print(f"Количество шумовых точек: {n_noise}") - -# Просмотр первых строк с кластерами -data.head() -``` - -**Вывод:** - -```text -
- -Количество кластеров: 2 -Количество шумовых точек: 82 - -sr.no. province division district households population_2023 \ -0 1 Balochistan Kalat Awaran 27808 178958 -1 2 Balochistan Kalat Kalat 33415 272506 -2 3 Balochistan Kalat Khuzdar 161594 997214 -3 4 Balochistan Kalat Lasbela 115635 680977 -4 5 Balochistan Kalat Mastung 43736 313271 - - average_household_size population_2017 growth_rate area(km²) ... \ -0 6.44 121821 6.64 29510 ... -1 8.16 211201 4.35 6622 ... -2 6.17 798896 3.78 35380 ... -3 5.89 576271 2.83 15153 ... -4 7.16 265676 2.79 5896 ... - - secondary_boys_schools secondary_girls_schools high_boys_schools \ -0 24 13 29 -1 23 18 27 -2 45 46 32 -3 46 29 27 -4 24 31 18 - - high_girls_schools Intermediate_boys_schools Intermediate_girls_schools \ -0 10 2 2 -1 17 1 1 -2 21 6 1 -3 11 4 4 -4 18 2 0 - - total_boys_schools total_girls_schools total_schools dbscan_cluster -0 249 132 381 -1 -1 269 120 389 0 -2 569 245 814 -1 -3 507 168 675 0 -4 268 143 411 0 - -[5 rows x 23 columns] -``` - -5. Визуализировать кластеризованные данные с помощью t-SNE или -UMAP, если необходимо. Если данные трехмерные, то можно -использовать трехмерный точечный график. - -```python -# ================================ -# Импорт библиотек -import pandas as pd -import matplotlib.pyplot as plt -from sklearn.preprocessing import StandardScaler -from sklearn.cluster import KMeans, DBSCAN -from sklearn.metrics import silhouette_score -from scipy.cluster.hierarchy import linkage, fcluster -from sklearn.manifold import TSNE -import umap -import numpy as np -from mpl_toolkits.mplot3d import Axes3D - -# ================================ -# 1. Загрузка данных -data = pd.read_csv("data_population2023.csv") -numerical_cols = data.select_dtypes(include=['float64', 'int64']).columns -X = data[numerical_cols] - -# Масштабирование данных -scaler = StandardScaler() -X_scaled = scaler.fit_transform(X) - -# ================================ -# 2. K-means кластеризация -optimal_k = 3 # пример, можно изменить после анализа локтя/силуэта -kmeans = KMeans(n_clusters=optimal_k, random_state=42) -data['kmeans_cluster'] = kmeans.fit_predict(X_scaled) - -# ================================ -# 3. Иерархическая кластеризация -linked = linkage(X_scaled, method='ward') -num_clusters = 3 # пример, можно подбирать по дендрограмме -data['hierarchical_cluster'] = fcluster(linked, num_clusters, criterion='maxclust') - -# ================================ -# 4. DBSCAN -dbscan = DBSCAN(eps=1.5, min_samples=5) # eps можно подбирать через k-distance график -data['dbscan_cluster'] = dbscan.fit_predict(X_scaled) - -# ================================ -# 5. Визуализация кластеров через t-SNE и UMAP -def visualize_clusters(X_scaled, df, cluster_col, method='t-SNE', dims=2): - if method == 't-SNE': - reducer = TSNE(n_components=dims, random_state=42) - elif method == 'UMAP': - reducer = umap.UMAP(n_components=dims, random_state=42) - else: - raise ValueError("method must be 't-SNE' or 'UMAP'") - - X_reduced = reducer.fit_transform(X_scaled) - - if dims == 2: - plt.figure(figsize=(8,6)) - plt.scatter(X_reduced[:,0], X_reduced[:,1], c=df[cluster_col], cmap='tab10', s=50) - plt.title(f"{method} визуализация ({cluster_col})") - plt.xlabel(f"{method} 1") - plt.ylabel(f"{method} 2") - plt.colorbar(label='Cluster') - plt.show() - elif dims == 3: - fig = plt.figure(figsize=(8,6)) - ax = fig.add_subplot(111, projection='3d') - scatter = ax.scatter(X_reduced[:,0], X_reduced[:,1], X_reduced[:,2], - c=df[cluster_col], cmap='tab10', s=50) - ax.set_title(f"3D {method} визуализация ({cluster_col})") - ax.set_xlabel(f"{method} 1") - ax.set_ylabel(f"{method} 2") - ax.set_zlabel(f"{method} 3") - fig.colorbar(scatter, ax=ax, label='Cluster') - plt.show() - -# Визуализируем все кластеризации (2D) -for col in ['kmeans_cluster', 'hierarchical_cluster', 'dbscan_cluster']: - visualize_clusters(X_scaled, data, col, method='t-SNE', dims=2) - visualize_clusters(X_scaled, data, col, method='UMAP', dims=2) - -# ================================ -# Просмотр первых строк с кластерами -data.head() -``` - -**Вывод:** - -```text -
- -/usr/local/lib/python3.12/dist-packages/umap/umap_.py:1952: UserWarning: n_jobs value 1 overridden to 1 by setting random_state. Use no seed for parallelism. - warn( - -
- -
- -/usr/local/lib/python3.12/dist-packages/umap/umap_.py:1952: UserWarning: n_jobs value 1 overridden to 1 by setting random_state. Use no seed for parallelism. - warn( - -
- -
- -/usr/local/lib/python3.12/dist-packages/umap/umap_.py:1952: UserWarning: n_jobs value 1 overridden to 1 by setting random_state. Use no seed for parallelism. - warn( - -
- -sr.no. province division district households population_2023 \ -0 1 Balochistan Kalat Awaran 27808 178958 -1 2 Balochistan Kalat Kalat 33415 272506 -2 3 Balochistan Kalat Khuzdar 161594 997214 -3 4 Balochistan Kalat Lasbela 115635 680977 -4 5 Balochistan Kalat Mastung 43736 313271 - - average_household_size population_2017 growth_rate area(km²) ... \ -0 6.44 121821 6.64 29510 ... -1 8.16 211201 4.35 6622 ... -2 6.17 798896 3.78 35380 ... -3 5.89 576271 2.83 15153 ... -4 7.16 265676 2.79 5896 ... - - high_boys_schools high_girls_schools Intermediate_boys_schools \ -0 29 10 2 -1 27 17 1 -2 32 21 6 -3 27 11 4 -4 18 18 2 - - Intermediate_girls_schools total_boys_schools total_girls_schools \ -0 2 249 132 -1 1 269 120 -2 1 569 245 -3 4 507 168 -4 0 268 143 - - total_schools kmeans_cluster hierarchical_cluster dbscan_cluster -0 381 2 1 -1 -1 389 2 1 0 -2 814 2 1 -1 -3 675 2 1 0 -4 411 2 1 0 - -[5 rows x 25 columns] -``` - -**Вывод:** - -В ходе выполнения заданий 2–5 была проведена комплексная кластеризация данных с использованием различных алгоритмов: K-means, иерархической кластеризации и DBSCAN, с последующим анализом качества кластеризации через правило локтя, коэффициент силуэта и визуальный подбор параметров. K-means позволил выявить оптимальное число кластеров на основе максимального силуэта, и объекты были распределены по четко различимым группам. Иерархическая кластеризация обеспечила наглядное представление структуры данных через дендрограмму и позволила формировать кластеры на разных уровнях разбиения. DBSCAN выявил как плотные кластеры, так и шумовые точки, что особенно полезно при наличии выбросов. Для визуализации результатов была применена методика снижения размерности (t-SNE и UMAP), которая позволила на двумерной или трехмерной плоскости наглядно оценить распределение кластеров и взаимное расстояние между ними, подтвердив внутреннюю структуру и качество выделенных групп. diff --git a/content/bigdata/practice-07-ensemble-learning.mdx b/content/bigdata/practice-07-ensemble-learning.mdx deleted file mode 100644 index bcdcc60..0000000 --- a/content/bigdata/practice-07-ensemble-learning.mdx +++ /dev/null @@ -1,375 +0,0 @@ ---- -title: Практика 7. Ансамблевое обучение -description: Комбинирование моделей для повышения качества предсказаний. -order: 8 ---- - -## Wiki-версия - -Материал полностью перенесен в документацию. Исходный ноутбук удален из репозитория. - -Минькин Александр Дмитриевич - ИКБО-25-22 - -# Практическая работа №7 - -# Ансамблевое обучение // Stacking // Bagging // Boosting - -1. Найти данные для кластеризации. Данные в группе не должны -повторяться. Если признаки в данных имеют очень сильно разные -масштабы, то необходимо данные предварительно нормализовать. - -```python -from google.colab import files -uploaded = files.upload() -``` - -**Вывод:** - -```text - - -Saving data_population2023.csv to data_population2023.csv -``` - -2) Реализовать баггинг. - -```python -import pandas as pd -from sklearn.model_selection import train_test_split -from sklearn.ensemble import RandomForestRegressor -from sklearn.metrics import mean_squared_error, r2_score -from sklearn.tree import plot_tree -import matplotlib.pyplot as plt -import seaborn as sns - - -data = pd.read_csv('/content/data_population2023.csv') - - -print("Первые 5 строк датасета:") -print(data.head()) - - -features = ['households', 'average_household_size', 'population_2017', 'growth_rate', 'area(km²)', - 'density_2023(people/km²)', 'primary_boys_schools', 'primary_girls_schools', - 'secondary_boys_schools', 'secondary_girls_schools', 'high_boys_schools', 'high_girls_schools', - 'Intermediate_boys_schools', 'Intermediate_girls_schools', 'total_boys_schools', 'total_girls_schools', 'total_schools'] - -X = data[features] -y = data['population_2023'] - - -X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) - - -rf_model = RandomForestRegressor( - n_estimators=100, - max_depth=None, - min_samples_leaf=1, - random_state=42 -) - - -rf_model.fit(X_train, y_train) - - -y_pred = rf_model.predict(X_test) - -mse = mean_squared_error(y_test, y_pred) -r2 = r2_score(y_test, y_pred) - -print(f'\nMean Squared Error (MSE): {mse:.2f}') -print(f'Коэффициент детерминации (R²): {r2:.2f}') - -feature_importances = pd.Series(rf_model.feature_importances_, index=features).sort_values(ascending=False) - -plt.figure(figsize=(12,6)) -sns.barplot(x=feature_importances.values, y=feature_importances.index) -plt.title('Важность признаков (Feature Importance) в Random Forest') -plt.show() - - -tree = rf_model.estimators_[0] - -plt.figure(figsize=(20,10)) -plot_tree(tree, feature_names=features, filled=True, rounded=True, fontsize=10) -plt.title("Пример одного дерева из Random Forest") -plt.show() -``` - -**Вывод:** - -```text -Первые 5 строк датасета: - sr.no. province division district households population_2023 \ -0 1 Balochistan Kalat Awaran 27808 178958 -1 2 Balochistan Kalat Kalat 33415 272506 -2 3 Balochistan Kalat Khuzdar 161594 997214 -3 4 Balochistan Kalat Lasbela 115635 680977 -4 5 Balochistan Kalat Mastung 43736 313271 - - average_household_size population_2017 growth_rate area(km²) ... \ -0 6.44 121821 6.64 29510 ... -1 8.16 211201 4.35 6622 ... -2 6.17 798896 3.78 35380 ... -3 5.89 576271 2.83 15153 ... -4 7.16 265676 2.79 5896 ... - - primary_girls_schools secondary_boys_schools secondary_girls_schools \ -0 107 24 13 -1 84 23 18 -2 177 45 46 -3 124 46 29 -4 94 24 31 - - high_boys_schools high_girls_schools Intermediate_boys_schools \ -0 29 10 2 -1 27 17 1 -2 32 21 6 -3 27 11 4 -4 18 18 2 - - Intermediate_girls_schools total_boys_schools total_girls_schools \ -0 2 249 132 -1 1 269 120 -2 1 569 245 -3 4 507 168 -4 0 268 143 - - total_schools -0 381 -1 389 -2 814 -3 675 -4 411 - -[5 rows x 22 columns] - -Mean Squared Error (MSE): 7068997444.97 -Коэффициент детерминации (R²): 0.99 - -
- -
-``` - -3) Реализовать бустинг на тех же данных, что использовались для баггинга. - -```python -import pandas as pd -from sklearn.model_selection import train_test_split -from sklearn.preprocessing import StandardScaler -from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor -from sklearn.metrics import mean_squared_error, r2_score - - -data = pd.read_csv('/content/data_population2023.csv') -data.head() - -features = data.drop(columns=['sr.no.', 'population_2023', 'province', 'division', 'district']) -target = data['population_2023'] - - -X_train, X_test, y_train, y_test = train_test_split(features, target, test_size=0.2, random_state=42) - - -scaler = StandardScaler() -X_train_scaled = scaler.fit_transform(X_train) -X_test_scaled = scaler.transform(X_test) -rf = RandomForestRegressor( - n_estimators=100, - max_depth=10, - min_samples_leaf=5, - random_state=42 -) - - -rf.fit(X_train, y_train) - -y_pred_rf = rf.predict(X_test) - - -print("Random Forest R^2:", r2_score(y_test, y_pred_rf)) -print("Random Forest MSE:", mean_squared_error(y_test, y_pred_rf)) - -gbr = GradientBoostingRegressor( - n_estimators=200, - learning_rate=0.1, - max_depth=3, - min_samples_leaf=5, - random_state=42 -) - - -gbr.fit(X_train, y_train) - - -y_pred_gbr = gbr.predict(X_test) - - -print("Gradient Boosting R^2:", r2_score(y_test, y_pred_gbr)) -print("Gradient Boosting MSE:", mean_squared_error(y_test, y_pred_gbr)) -print("R^2 Random Forest:", r2_score(y_test, y_pred_rf)) -print("R^2 Gradient Boosting:", r2_score(y_test, y_pred_gbr)) -``` - -**Вывод:** - -```text -Random Forest R^2: 0.9902127230594779 -Random Forest MSE: 8824200825.067791 -Gradient Boosting R^2: 0.9680482164967752 -Gradient Boosting MSE: 28807701678.92102 -R^2 Random Forest: 0.9902127230594779 -R^2 Gradient Boosting: 0.9680482164967752 -``` - -4) Сравнить результаты работы алгоритмов (время работы и качество -моделей). Сделать выводы. - -```python -import pandas as pd -import numpy as np -from sklearn.model_selection import train_test_split -from sklearn.preprocessing import StandardScaler -from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor -from sklearn.metrics import mean_squared_error, r2_score -import time - - -data = pd.read_csv("data_population2023.csv") - -data.columns = data.columns.str.strip() - -print(data.head()) -print(data.columns) - -features = data.drop(columns=['sr.no.', 'population_2023', 'province', 'division', 'district']) -target = data['population_2023'] - -X_train, X_test, y_train, y_test = train_test_split(features, target, test_size=0.2, random_state=42) - -scaler = StandardScaler() -X_train_scaled = scaler.fit_transform(X_train) -X_test_scaled = scaler.transform(X_test) - -rf = RandomForestRegressor( - n_estimators=100, - max_depth=10, - min_samples_leaf=5, - random_state=42 -) - -start_time = time.time() -rf.fit(X_train, y_train) -rf_time = time.time() - start_time - -y_pred_rf = rf.predict(X_test) - -rf_r2 = r2_score(y_test, y_pred_rf) -rf_mse = mean_squared_error(y_test, y_pred_rf) - -print(f"Random Forest: R^2 = {rf_r2:.4f}, MSE = {rf_mse:.2f}, Время = {rf_time:.2f} сек") - -gbr = GradientBoostingRegressor( - n_estimators=200, - learning_rate=0.1, - max_depth=3, - min_samples_leaf=5, - random_state=42 -) - -start_time = time.time() -gbr.fit(X_train_scaled, y_train) -gbr_time = time.time() - start_time - -y_pred_gbr = gbr.predict(X_test_scaled) - -gbr_r2 = r2_score(y_test, y_pred_gbr) -gbr_mse = mean_squared_error(y_test, y_pred_gbr) - -print(f"Gradient Boosting: R^2 = {gbr_r2:.4f}, MSE = {gbr_mse:.2f}, Время = {gbr_time:.2f} сек") - -comparison = pd.DataFrame({ - 'Модель': ['Random Forest (Bagging)', 'Gradient Boosting'], - 'R^2': [rf_r2, gbr_r2], - 'MSE': [rf_mse, gbr_mse], - 'Время обучения (сек)': [rf_time, gbr_time] -}) - -print(comparison) -``` - -**Вывод:** - -```text -sr.no. province division district households population_2023 \ -0 1 Balochistan Kalat Awaran 27808 178958 -1 2 Balochistan Kalat Kalat 33415 272506 -2 3 Balochistan Kalat Khuzdar 161594 997214 -3 4 Balochistan Kalat Lasbela 115635 680977 -4 5 Balochistan Kalat Mastung 43736 313271 - - average_household_size population_2017 growth_rate area(km²) ... \ -0 6.44 121821 6.64 29510 ... -1 8.16 211201 4.35 6622 ... -2 6.17 798896 3.78 35380 ... -3 5.89 576271 2.83 15153 ... -4 7.16 265676 2.79 5896 ... - - primary_girls_schools secondary_boys_schools secondary_girls_schools \ -0 107 24 13 -1 84 23 18 -2 177 45 46 -3 124 46 29 -4 94 24 31 - - high_boys_schools high_girls_schools Intermediate_boys_schools \ -0 29 10 2 -1 27 17 1 -2 32 21 6 -3 27 11 4 -4 18 18 2 - - Intermediate_girls_schools total_boys_schools total_girls_schools \ -0 2 249 132 -1 1 269 120 -2 1 569 245 -3 4 507 168 -4 0 268 143 - - total_schools -0 381 -1 389 -2 814 -3 675 -4 411 - -[5 rows x 22 columns] -Index(['sr.no.', 'province', 'division', 'district', 'households', - 'population_2023', 'average_household_size', 'population_2017', - 'growth_rate', 'area(km²)', 'density_2023(people/km²)', - 'primary_boys_schools', 'primary_girls_schools', - 'secondary_boys_schools', 'secondary_girls_schools', - 'high_boys_schools', 'high_girls_schools', 'Intermediate_boys_schools', - 'Intermediate_girls_schools', 'total_boys_schools', - 'total_girls_schools', 'total_schools'], - dtype='object') -Random Forest: R^2 = 0.9902, MSE = 8824200825.07, Время = 0.34 сек -Gradient Boosting: R^2 = 0.9680, MSE = 28807701678.92, Время = 0.38 сек - Модель R^2 MSE Время обучения (сек) -0 Random Forest (Bagging) 0.990213 8.824201e+09 0.341938 -1 Gradient Boosting 0.968048 2.880770e+10 0.379149 -``` - -**Вывод:** - -В ходе практической работы была выполнена задача регрессии на данных по населению и школам провинций. - -Сначала реализован бэггинг с использованием случайного леса, который показал высокую стабильность предсказаний и относительно быстрое обучение. - -Затем на тех же данных применён градиентный бустинг, который продемонстрировал чуть более высокое качество прогнозов (выше R² и ниже MSE), но требовал большего времени на обучение. - -Сравнение моделей показало, что случайный лес удобен для быстрой и устойчивой оценки, а бустинг эффективен для повышения точности предсказаний. - -Результаты подтверждают преимущества ансамблевых методов в уменьшении дисперсии и смещения моделей. diff --git a/content/bigdata/practice-08-final-report.mdx b/content/bigdata/practice-08-final-report.mdx deleted file mode 100644 index 4aaa4cf..0000000 --- a/content/bigdata/practice-08-final-report.mdx +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Практика 8. Итоговая работа -description: Финальный отчет и итоговые материалы по модулю BigData. -order: 9 ---- - -## Wiki-версия - требуется доработка - -1. Настроить виртуальную машину Ubuntu Server 22.04.5 LTS в системе виртуализации операционных систем, а также настроить Docker контейнеры PostgreSQL, Arenadata Cluster Manager совместно с бандлами для кластера и мониторинга (Prometheus, Grafana). (1 балл) - -В отчет прикрепить скриншот с интерфейса ADCM на странице Cluster->Overview где показано, что все сервисы подняты и работают в штатном режиме. - -Рисунок 1 – скриншот интерфейса ADCM , демонстрация работы сервисов - - - - - -2. Создать базу данных ecommerce и развернуть public схему таблиц, на основе приложенного скрипта, для хранения данных транзакций в PostgreSQL посредством postgresql-client (DBeaver или любой другой админ баз данных). Для каждой таблицы сделать импорт данных посредством импорта из CSV-файла в следующем порядке (1 балл): - -В отчет прикрепить визуализацию схемы таблиц, полученную в консоли командной строки или в виде диаграммы в админе баз данных (например DBeaver). - -Рисунок 2 – схема взаимодействия таблиц - -3. Написать запросы на языке SQL для базы данных ecommerce для получения данных по следующим заданиям: - -3.1. ТОП-10 категорий по выручке, с переводом (0,5 балла) - -Нужно определить десять товарных категорий с наибольшим оборотом продаж. Для каждой категории требуется посчитать сумму цен всех проданных позиций (это и есть выручка/GMV категории), количество уникальных заказов, в которых встречались товары этой категории, и общее число товарных позиций. Дополнительно к исходному названию категории нужно вывести её англоязычный перевод из словаря переводов. Итоговый набор данных должен быть отсортирован по выручке по убыванию и ограничен первыми десятью строками. - -3.2. Платежное поведение (0,5 балла) - -Нужно сравнить используемые способы оплаты. По каждому типу оплаты требуется вывести количество зарегистрированных платежей, среднее число рассрочек (если применимо), средний размер платежа и долю заказов, в которых встречается данный способ оплаты. - -Под долей заказов понимается отношение числа уникальных заказов, где зафиксирован хотя бы один платеж данного типа, к общему числу уникальных заказов, по которым известны записи об оплате. - -Следует учитывать, что у одного заказа может быть несколько платежей. Доля считается на уровне «есть/нет» для типа оплаты в заказе. - -3.3. Зависимость оценки от скорости доставки (0,5 балла) - -Нужно изучить, как длительность доставки коррелирует с оценками в отзывах. Для каждого заказа с отзывом и известной фактической датой доставки рассчитывается длительность доставки в днях как разница между датой доставки клиенту и датой покупки. - -Далее каждый заказ попадает в один из трёх интервалов длительности: - -− до пяти дней включительно, - -− от шести до десяти дней включительно, - -− более десяти дней. - -Для каждого интервала требуется посчитать количество заказов и среднюю оценку из отзывов. Итог должен содержать три строки — по одному агрегату на интервал — в логическом порядке от самого быстрого интервала к самому длительному. - -3.4. Эффективность продавцов (0,5 балла) - -Нужно получить рейтинг продавцов по активности и базовым бизнес-показателям. Для каждого продавца считается количество уникальных заказов, в которых он участвовал, число уникальных клиентов, которым он продал хотя бы одну позицию, общее число проданных товарных позиций, совокупный оборот по этим позициям (сумма цен) и средняя стоимость доставки на позицию (среднее от значений стоимости фрахта по позициям). Затем формируется топ-10 продавцов, отсортированный по числу заказов по убыванию. В отчёте по каждому продавцу должны присутствовать перечисленные метрики. - -4. Построить дашборд в Grafana для визуализации данных из ecommerce на основе следующих задач и нескольких ваших созданных визуализаций: - -4.1. Динамика числа заказов (0.5 балла) - -Нужно показать динамику общего числа заказов по месяцам. Для каждого месяца в хронологическом порядке считается количество уникальных заказов, оформленных в этот месяц. Полученный временной ряд должен быть представлен линией, позволяющей увидеть рост, падения или сезонность количества заказов. - -4.2. Количество заказов по оценкам (0.5 балла) - -Нужно построить распределение количества заказов по оценкам клиентов. Для этого все отзывы группируются по выставленной оценке, и для каждой категории оценки подсчитывается количество заказов, получивших такую оценку. Результат следует отобразить в виде отдельных вертикальных столбцов, показывающих частоту каждой оценки. - - - -4.3. Распределение способов оплаты (0.5 балла) - -Необходимо показать распределение способов оплаты заказов. Для этого подсчитывается количество уникальных заказов, оплаченных каждым способом. Итоговые доли по каждому методу оплаты отображаются на круговой диаграмме, где сегменты представляют разные способы оплаты, а их размер соответствует доле. - -4.4. Топ товарных категорий по объему продаж (0.5 балла) - -Задача заключается в том, чтобы вывести топ-10 товарных категорий по общему объёму продаж. Для каждой категории суммируется стоимость всех товарных позиций, после чего выбираются десять лидеров. Визуализация выполняется в виде горизонтальных столбцов (линеек), что позволяет удобно сравнивать категории между собой по длине. - -4.5 Ваши дополнительные две визуализации по 1 баллу каждый + дашборд отдельно в виде скриншотов, в котором умещается ваш дашборд. (2 балла) - -4.5.1 Средняя стоимость доставки (freight) по месяцам - -4.5.2 Количество новых клиентов по месяцам diff --git a/content/business-process-modeling/index.mdx b/content/business-process-modeling/index.mdx deleted file mode 100644 index f0a17fc..0000000 --- a/content/business-process-modeling/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Моделирование бизнес процессов -description: Подходы и инструменты для анализа и моделирования бизнес-процессов. -order: 1 ---- - -## О разделе - -Раздел **Моделирование бизнес процессов** добавлен в StackMIREA и готов к наполнению учебными материалами. - -## Что можно публиковать - -- Практические работы -- Конспекты и чеклисты -- Разборы задач и примеры кода diff --git a/content/configuration-management/index.mdx b/content/configuration-management/index.mdx deleted file mode 100644 index 2277b75..0000000 --- a/content/configuration-management/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Конфигурационное управление -description: Практики по управлению конфигурацией, версиям и средам разработки. -order: 1 ---- - -## О разделе - -Раздел **Конфигурационное управление** добавлен в StackMIREA и готов к наполнению учебными материалами. - -## Что можно публиковать - -- Практические работы -- Конспекты и чеклисты -- Разборы задач и примеры кода diff --git a/content/data-structures-and-algorithms-part-1/index.mdx b/content/data-structures-and-algorithms-part-1/index.mdx deleted file mode 100644 index a4f494a..0000000 --- a/content/data-structures-and-algorithms-part-1/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Структуры и алгоритмы обработки данных (часть 1) -description: Базовые структуры данных и алгоритмы обработки данных, часть 1. -order: 1 ---- - -## О разделе - -Раздел **Структуры и алгоритмы обработки данных (часть 1)** добавлен в StackMIREA и готов к наполнению учебными материалами. - -## Что можно публиковать - -- Практические работы -- Конспекты и чеклисты -- Разборы задач и примеры кода diff --git a/content/data-structures-and-algorithms-part-2/index.mdx b/content/data-structures-and-algorithms-part-2/index.mdx deleted file mode 100644 index d869425..0000000 --- a/content/data-structures-and-algorithms-part-2/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Структуры и алгоритмы обработки данных (часть 2) -description: Продвинутые структуры и алгоритмы обработки данных, часть 2. -order: 1 ---- - -## О разделе - -Раздел **Структуры и алгоритмы обработки данных (часть 2)** добавлен в StackMIREA и готов к наполнению учебными материалами. - -## Что можно публиковать - -- Практические работы -- Конспекты и чеклисты -- Разборы задач и примеры кода diff --git a/content/database-development/index.mdx b/content/database-development/index.mdx deleted file mode 100644 index 983bad3..0000000 --- a/content/database-development/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Разработка баз данных -description: Проектирование, нормализация, SQL и практики разработки БД. -order: 1 ---- - -## О разделе - -Раздел **Разработка баз данных** добавлен в StackMIREA и готов к наполнению учебными материалами. - -## Что можно публиковать - -- Практические работы -- Конспекты и чеклисты -- Разборы задач и примеры кода diff --git a/content/internet-of-things/index.mdx b/content/internet-of-things/index.mdx deleted file mode 100644 index 4b6a309..0000000 --- a/content/internet-of-things/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Интернет вещей -description: "Материалы по IoT: устройства, протоколы обмена и интеграции." -order: 1 ---- - -## О разделе - -Раздел **Интернет вещей** добавлен в StackMIREA и готов к наполнению учебными материалами. - -## Что можно публиковать - -- Практические работы -- Конспекты и чеклисты -- Разборы задач и примеры кода diff --git a/content/java/index.mdx b/content/java/index.mdx deleted file mode 100644 index e6d2dbf..0000000 --- a/content/java/index.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Java -description: 24 Java-практики с решениями в формате задания и разбора. -order: 1 ---- - -## Что внутри - -- 24 практики по Java -- OOP, интерфейсы, очереди, GUI, MVC, паттерны -- Задание, решение и описание для каждой практики diff --git a/content/java/overview.mdx b/content/java/overview.mdx deleted file mode 100644 index adb93ed..0000000 --- a/content/java/overview.mdx +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Java — обзор -sidebar_position: 1 -description: Карта Java-практик с решениями в формате задания и разбора. -slug: /java/overview ---- - -# Java Практики - -Java-трек состоит из 24 практических задач, где для каждой есть задание, решение и описание. - -## Основные темы - -- классы, объекты, инкапсуляция, наследование; -- интерфейсы, коллекции, обобщения и очереди; -- исключения и файловая система; -- GUI и паттерны проектирования; -- итоговый проект на основе системы заказов. - -## Формат модулей - -Каждый модуль содержит: - -- теоретический блок; -- фрагмент кода прямо из решения; -- список файлов, участвующих в задаче; -- практический разбор; -- итоговый вывод. - -## Исходники - -Исходный код задач перенесен в документацию по темам. diff --git a/content/java/task-01-classes-and-objects.mdx b/content/java/task-01-classes-and-objects.mdx deleted file mode 100644 index d3295f6..0000000 --- a/content/java/task-01-classes-and-objects.mdx +++ /dev/null @@ -1,223 +0,0 @@ ---- -title: Task 1 — Классы и объекты -sidebar_position: 2 -description: Базовое проектирование классов и создание экземпляров. -slug: /java/task-01-classes-and-objects ---- - -## Задание - -Базовое проектирование классов и создание экземпляров. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task1/Ball.java` -- `Task1/Book.java` -- `Task1/Dog.java` -- `Task1/TestBall.java` -- `Task1/TestBook.java` -- `Task1/TestDog.java` - -#### `Task1/Ball.java` - -```java title="Task1/Ball.java" -package Task1; - -import java.util.Scanner; - -public class Ball { - private String colour; - private int rad; - public Ball(String n, int a){ - colour = n; - rad = a; - } - public Ball(String n){ - colour = n; - rad = 0; - } - public Ball(){ - colour = "red"; - rad = 0; - } - public void setRad(int rad) { - this.rad = rad; - } - public void setColour(String colour) { - this.colour = colour; - } - public String getColour() { - return colour; - } - public int getRad() { - return rad; - } - public String toString(){ - return this.colour+"'s radius "+rad; - } - - public void initSystem() { - Scanner scanner = new Scanner(System.in); - String input; - input = scanner.next(); - //System.out.println(input); - Scanner scan = new Scanner(System.in); - String in; - in = scan.next(); - System.out.println(input+"'s radius "+in); - } -} - -``` - -#### `Task1/Book.java` - -```java title="Task1/Book.java" -package Task1; -public class Book { - private String name; - private int number; - public Book(String n, int a){ - name = n; - number = a; - } - public Book(String n){ - name = n; - number = 0; - } - public Book(){ - name = "leon"; - number = 0; - } - public void setNumber(int number){ - this.number = number; - } - public void setName(String name){ - this.name = name; - } - public String getName(String name){ - return name; - } - public int getNumber(){ - return number; - } - public String toString(){ - return this.name+" number str "+number; - } -} - -``` - -#### `Task1/Dog.java` - -```java title="Task1/Dog.java" -package Task1; -public class Dog { - private String name; - private int age; - public Dog(String n, int a){ - name = n; - age = a; - } - public Dog(String n){ - name = n; - age = 0; - } - public Dog(){ - name = "Pup"; - age = 0; - } - public void setAge(int age){ - this.age = age; - } - public void setName(String name) { - this.name = name; - } - public String getName(String name){ - return name; - } - public int getAge() { - return age; - } - public String toString(){ - return this.name+", age "+this.age; - } - public void intoHumanAge(){ - System.out.println(name+"'s age in human years is "+age*7+" years"); - } -} - -``` - -#### `Task1/TestBall.java` - -```java title="Task1/TestBall.java" -package Task1; - -public class TestBall { - public static void main(String[] args){ - Ball b1 = new Ball("yellow", 17); - Ball b2 = new Ball("black", 44); - Ball b3 = new Ball("green"); b3.setRad(78); - b3.initSystem(); - System.out.println(b1.toString()); - System.out.println(b2.toString()); - System.out.println(b3.toString()); - } -} - -``` - -#### `Task1/TestBook.java` - -```java title="Task1/TestBook.java" -package Task1; - -public class TestBook { - public static void main(String[] args){ - Book b1 = new Book("lord", 123); - Book b2 = new Book("res", 34); - Book b3 = new Book("got"); b3.setNumber(78); - System.out.println(b1); - System.out.println(b2); - System.out.println(b3); - } -} - -``` - -#### `Task1/TestDog.java` - -```java title="Task1/TestDog.java" -package Task1; - -public class TestDog { - public static void main(String[] args){ - Dog d1 = new Dog("Mike", 2); - Dog d2 = new Dog("Helen", 7); - Dog d3 = new Dog("Bob"); d3.setAge(1); - System.out.println(d1); - d1.intoHumanAge(); - d2.intoHumanAge(); - d3.intoHumanAge(); - } -} - -``` - - -## Описание - -В этом модуле используется 6 Java-файлов. Ключевые сущности: Ball, Book, Dog, TestBall, TestBook, TestDog. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 1 — Классы и объекты документирует реальное решение из исходного кода. diff --git a/content/java/task-02-program-structure.mdx b/content/java/task-02-program-structure.mdx deleted file mode 100644 index 7ed325c..0000000 --- a/content/java/task-02-program-structure.mdx +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Task 2 — Структура программы -sidebar_position: 3 -description: Точка входа и минимальная структура Java-приложения. -slug: /java/task-02-program-structure ---- - -## Задание - -Точка входа и минимальная структура Java-приложения. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task2/Task.java` - -#### `Task2/Task.java` - -```java title="Task2/Task.java" -package Task2; - -import java.util.Arrays; -import java.util.Scanner; - -public class Task { - public static String Factorial(int input) { - int tr = 1; - if (input >= 0) { - for (int i = 1; i < input + 1; i++) { - tr = tr * i; - } - return String.valueOf(tr); - } else { - return "ERROR"; - } - } - public static void main(String[] args){ - int [] b = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; - int f = 0; - for (int i = 0; i < b.length; i++) { - f += b[i]; - } - System.out.println(f); - System.out.println("1.1----------------"); - int r = 0; - int t1 = 0; - while (r < b.length){ - t1 += b[r]; - r +=1; - } - System.out.println(t1); - System.out.println("1.2-----------------"); - int t = 0; - int t2 = 0; - do{ - t2 += b[t]; - t += 1; - } - while (t0; i--){ - for (int j = 0; jty[j+1]){ - int tmp = ty[j+1]; - ty[j+1] = ty[j]; - ty[j] = tmp; - } - } - } - for(int i =0; i this.bottomRight.xSpeed){ - terx = this.topLeft; - terx.xSpeed -= this.bottomRight.xSpeed; - this.topLeft.xSpeed = this.bottomRight.xSpeed; - }else{ - terx = this.bottomRight; - terx.xSpeed -= this.topLeft.xSpeed; - this.bottomRight.xSpeed = this.topLeft.xSpeed; - } - } - } - public void proverkY(){ - if (this.topLeft.ySpeed != this.bottomRight.ySpeed){ - MovablePoint tery; - if(this.topLeft.ySpeed > this.bottomRight.ySpeed){ - tery = this.topLeft; - tery.ySpeed -= this.bottomRight.ySpeed; - this.topLeft.ySpeed = this.bottomRight.ySpeed; - }else{ - tery = this.bottomRight; - tery.ySpeed -= this.topLeft.ySpeed; - this.bottomRight.ySpeed = this.topLeft.ySpeed; - } - } - } - @Override - public String toString() { - return "MovableRectangle{" + - "topLeft=" + topLeft + - ", bottomRight=" + bottomRight + - '}'; - } - @Override - public void moveUp() { - this.proverkY(); - MovablePoint rety = this.topLeft; - rety.y += this.topLeft.ySpeed; - rety = this.bottomRight; - rety.y += this.bottomRight.ySpeed; - } - @Override - public void moveDown() { - this.proverkY(); - MovablePoint rety = this.topLeft; - rety.y -= this.topLeft.ySpeed; - rety = this.bottomRight; - rety.y -= this.bottomRight.ySpeed; - } - @Override - public void moveLeft() { - this.proverkX(); - MovablePoint retX = this.topLeft; - retX.x -= this.topLeft.xSpeed; - retX = this.bottomRight; - retX.x -= this.bottomRight.xSpeed; - } - - @Override - public void moveRight() { - this.proverkX(); - MovablePoint retX = this.topLeft; - retX.x += this.topLeft.xSpeed; - retX = this.bottomRight; - retX.x += this.bottomRight.xSpeed; - } -} - -``` - -#### `Task5/Rectangle.java` - -```java title="Task5/Rectangle.java" -package Task5; -public class Rectangle extends Shape{ - protected double width; - protected double length; - public Rectangle(){ - this.width = 6; - this.length = 5; - this.color = "red"; - this.filled = false; - } - public Rectangle(double width, double length){ - this.width = width; - this.length = length; - this.color = "red"; - this.filled = false; - } - public Rectangle(double width, double length, String color, boolean filled){ - this.width = width; - this.length = length; - this.color = color; - this.filled = filled; - } - public double getWidth(){ - return width; - } - public double getLength(){ - return length; - } - public void setWidth(double width){ - this.width = width; - } - public void setLength(double length){ - this.length = length; - } - @Override - public double getArea() { - return width*length; - } - @Override - public double getPerimeter() { - return 2*(width+length); - } - @Override - public String toString() { - return "Shape: rectangle width: "+this.width+", color: "+this.color+" Plosh "+getArea(); - } -} - -``` - -#### `Task5/Shape.java` - -```java title="Task5/Shape.java" -package Task5; -public abstract class Shape { - protected String color; - protected boolean filled; - public Shape(){ - - } - public Shape(String c, boolean f){ - this.color = c; - this.filled = f; - } - public String getColor(){ - return color; - } - public void setColor(String color){ - this.color = color; - } - public boolean isFilled(){ - return filled; - } - public void setFilled(boolean filled){ - this.filled = filled; - } - public abstract double getArea(); - public abstract double getPerimeter(); - public abstract String toString(); -} - - -``` - -#### `Task5/Square.java` - -```java title="Task5/Square.java" -package Task5; -public class Square extends Rectangle { - public Square(){ - this.filled = false; - this.color = "red"; - this.width = 1; - } - public Square(double side){ - this.filled = false; - this.color = "red"; - this.width = side; - } - public Square(double side, String color, boolean filled){ - this.width = side; - this.filled = filled; - this.color = color; - } - public double getSide(){ - return width; - } - public void setSide(double side){ - this.width = side; - } - @Override - public double getArea() { - return width*width; - } - @Override - public double getPerimeter() { - return 4*width; - } - @Override - public String toString() { - return "Shape: rectangle width: "+this.width+", color: "+this.color+" Plosh "+getArea(); - } -} - -``` - -#### `Task5/TestMovable.java` - -```java title="Task5/TestMovable.java" -package Task5; - -public class TestMovable { - public static void main(String[] args){ - MovablePoint m1 = new MovablePoint(3, 4, 6, 7); - MovableRectangle r1 = new MovableRectangle(5,0,5, 0,9, 8); - - MovableCircle c1 = new MovableCircle(4, 6, 8, 9, 10); - //System.out.println(((MovableCircle)c1).toString()); - System.out.println(r1); - c1.moveDown(); - r1.moveUp(); - m1.moveLeft(); - //System.out.println(((MovableCircle)c1).toString()); - System.out.println(r1); - //System.out.println(m1); - } -} - -``` - -#### `Task5/TestShape.java` - -```java title="Task5/TestShape.java" -package Task5; -import java.util.Scanner; -public class TestShape { - public static void main(String[] args) { -/* Scanner scanner = new Scanner(System.in); - String color = scanner.nextLine(); - boolean filled = scanner.nextBoolean(); - double radius = scanner.nextDouble(); - - - Circle c1 = new Circle(34, "red", false); - Square s1 = new Square(32, "red", false); - Rectangle r1 = new Rectangle(12, 11, "red", false); - System.out.println(c1.toString()); - System.out.println(s1.toString()); - System.out.println(r1.toString()); - } -} - - */ - - Shape s1 = new Circle(5.5, "RED", false); // Upcast Circle toShape - System.out.println(s1); // which version? - System.out.println(s1.getArea()); // which version? - System.out.println(s1.getPerimeter()); // which version? - System.out.println(s1.getColor()); - System.out.println(s1.isFilled()); - System.out.println(((Circle)s1).getRadius()); - Circle c1 = (Circle)s1; // downcast back to Circle - System.out.println(c1); - System.out.println(c1.getArea()); - System.out.println(c1.getPerimeter()); - System.out.println(c1.getColor()); - System.out.println(c1.isFilled()); - System.out.println(c1.getRadius()); - Shape s3 = new Rectangle(1.0, 2.0, "RED", false); // upcast - System.out.println(s3); - System.out.println(s3.getArea()); - System.out.println(s3.getPerimeter()); - System.out.println(s3.getColor()); - System.out.println(((Rectangle)s3).getLength()); - Rectangle r1 = (Rectangle)s3; // downcast - System.out.println(r1); - System.out.println(r1.getArea()); - System.out.println(r1.getColor()); - System.out.println(r1.getLength()); - Shape s4 = new Square(6.6); // Upcast - System.out.println(s4); - System.out.println(s4.getArea()); - System.out.println(s4.getColor()); - System.out.println(((Square) s4).getSide()); - Rectangle r2 = (Rectangle)s4; - System.out.println(r2); - System.out.println(r2.getArea()); - System.out.println(r2.getColor()); - System.out.println(((Square)r2).getSide()); - System.out.println(r2.getLength()); - Square sq1 = (Square)r2; - System.out.println(sq1); - System.out.println(sq1.getArea()); - System.out.println(sq1.getColor()); - System.out.println(sq1.getSide()); - System.out.println(sq1.getLength()); - } -} -``` - - -## Описание - -В этом модуле используется 10 Java-файлов. Ключевые сущности: Circle, Movable, MovableCircle, MovablePoint, MovableRectangle, Rectangle. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 5 — Интерфейсы и абстрактные классы документирует реальное решение из исходного кода. diff --git a/content/java/task-06-class-hierarchies.mdx b/content/java/task-06-class-hierarchies.mdx deleted file mode 100644 index 6bb91f3..0000000 --- a/content/java/task-06-class-hierarchies.mdx +++ /dev/null @@ -1,568 +0,0 @@ ---- -title: Task 6 — Иерархии классов -sidebar_position: 7 -description: Построение связанных сущностей в единой иерархии. -slug: /java/task-06-class-hierarchies ---- - -## Задание - -Построение связанных сущностей в единой иерархии. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task6/Bed.java` -- `Task6/Bylidog.java` -- `Task6/Chair.java` -- `Task6/Cup.java` -- `Task6/Dish.java` -- `Task6/Dog.java` -- `Task6/Furniture.java` -- `Task6/FurnitureShop.java` -- `Task6/Haski.java` -- `Task6/Pan.java` -- `Task6/Plate.java` -- `Task6/TestDish.java` -- `Task6/TestDog.java` -- `Task6/TestFurnitureShop.java` - -#### `Task6/Bed.java` - -```java title="Task6/Bed.java" -package Task6; - -public class Bed extends Furniture{ - private int count, maxw; - private String NameMatras; - public Bed(double h, double w, double l, String Name, String material, int count, int maxw, String NameMatras) { - super(h, w, l, Name, material); - this.count = count; - this.maxw = maxw; - this.NameMatras = NameMatras; - } - - public int getCount() { - return count; - } - - public void setCount(int count) { - this.count = count; - } - - public int getMaxw() { - return maxw; - } - - public void setMaxw(int maxw) { - this.maxw = maxw; - } - - public String getNameMatras() { - return NameMatras; - } - - public void setNameMatras(String nameMatras) { - NameMatras = nameMatras; - } - - @Override - public String toString() { - return "Bed{" + - "count=" + count + - ", maxw=" + maxw + - ", NameMatras='" + NameMatras + '\'' + - ", h=" + h + - ", w=" + w + - ", l=" + l + - ", Name='" + Name + '\'' + - ", material='" + material + '\'' + - '}'; - } -} - -``` - -#### `Task6/Bylidog.java` - -```java title="Task6/Bylidog.java" -package Task6; - -public class Bylidog extends Dog { - public Bylidog(String name, int year) { - super(name, year); - } - - @Override - public String toString() { - return "Bylidog{" + - "name='" + name + '\'' + - ", year=" + year + - '}'; - } -} - -``` - -#### `Task6/Chair.java` - -```java title="Task6/Chair.java" -package Task6; - -public class Chair extends Furniture{ - public String nameMaterial; - public Chair(double h, double w, double l, String Name, String material, String nameMaterial) { - super(h, w, l, Name, material); - this.nameMaterial = nameMaterial; - } - - public String getNameMaterial() { - return nameMaterial; - } - - public void setNameMaterial(String nameMaterial) { - this.nameMaterial = nameMaterial; - } - - @Override - public String toString() { - return "Chair{" + - "nameMaterial='" + nameMaterial + '\'' + - ", h=" + h + - ", w=" + w + - ", l=" + l + - ", Name='" + Name + '\'' + - ", material='" + material + '\'' + - '}'; - } -} - -``` - -#### `Task6/Cup.java` - -```java title="Task6/Cup.java" -package Task6; - -public class Cup extends Dish{ - protected double h; - protected double r; - public Cup(String color, boolean filled, double h, double r) { - super(color, filled); - this.r = r; - this.h = h; - } - public double getH() { - return h; - } - public void setH(double h) { - this.h = h; - } - public double getR() { - return r; - } - public void setR(double r) { - this.r = r; - } - - @Override - public String toString() { - return "Chahca{" + - "h=" + h + - ", r=" + r + - ", color='" + color + '\'' + - ", filled=" + filled + - '}'; - } - /* - @Override - public double Radus() { - return 2*r; - } - @Override - public double Diametr() { - return 0; - } - - @Override - public double Scovoroda() { - return 0; - } - - */ -} - -``` - -#### `Task6/Dish.java` - -```java title="Task6/Dish.java" -package Task6; - -public class Dish { - String color; - boolean filled; - public Dish(String c, boolean f) { - this.color = c; - this.filled = f; - } - public String getC() { - return color; - } - public void setC(String c) { - this.color = c; - } - public boolean getFilled() { - return filled; - } - public void setFilled(boolean f) { - this.filled = f; - } - @Override - public String toString() { - return "Dish{" + "color = " + color + ", r=" + filled + '}'; - } -} - -``` - -#### `Task6/Dog.java` - -```java title="Task6/Dog.java" -package Task6; - -public class Dog { - public String name; - public int year; - public Dog(String name, int year) { - this.name = name; - this.year = year; - } - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getYear() { - return year; - } - - public void setYear(int year) { - this.year = year; - } - - @Override - public String toString() { - return "Dog{" + "name='" + name + '\'' + ", year=" + year + '}'; - } -} - -``` - -#### `Task6/Furniture.java` - -```java title="Task6/Furniture.java" -package Task6; - -public abstract class Furniture { - public double h, w, l; - public String Name, material; - - public Furniture(double h, double w, double l, String Name, String material) { - this.h = h; - this.w = w; - this.l = l; - this.Name = Name; - this.material = material; - } - public double getH() { - return h; - } - public void setH(double h) { - this.h = h; - } - public double getW() { - return w; - } - public void setW(double w) { - this.w = w; - } - public double getL() { - return l; - } - public void setL(double l) { - this.l = l; - } - public String getName() { - return Name; - } - public void setName(String Name) { - this.Name = Name; - } - public String getMaterial() { - return material; - } - public void setMaterial(String material) { - this.material = material; - } - @Override - public String toString() { - return "Furniture{" + "h=" + h + ", w=" + w + ", l=" + l + ", name='" + Name + '\'' + ", material='" + material + '\'' + '}'; - } -} - -``` - -#### `Task6/FurnitureShop.java` - -```java title="Task6/FurnitureShop.java" -package Task6; - -public class FurnitureShop { - private Furniture[] goods; - public FurnitureShop(int count){ - goods = new Furniture[count]; - for(int i=0; i=count) break; - goods[i++] = new Bed(43, 23, 45, "lul", "derevo", 2, 45, "len"); - if (i>=count) break; - goods[i++] = new Chair(43, 23, 45, "lyl", "derevo", "derevo12"); - } - } - public Furniture[] getGoods() { - return goods; - } - public Furniture buy(int number){ - Furniture f = goods[number]; - Furniture[] prod = new Furniture[goods.length -1]; - for (int i=0; inumber) prod[i-1] = goods[i]; - } - goods=prod; - return f; - } - public String Asortiment(){ - String vr = "Асортимент магазина: \n"; - for (Furniture f : goods){ - vr += f.toString()+"\n"; - } - return vr; - } -} - -``` - -#### `Task6/Haski.java` - -```java title="Task6/Haski.java" -package Task6; - -public class Haski extends Dog{ - public Haski(String name, int year) { - super(name, year); - } - - @Override - public String toString() { - return "Haski{" + - "name='" + name + '\'' + - ", year=" + year + - '}'; - } -} - -``` - -#### `Task6/Pan.java` - -```java title="Task6/Pan.java" -package Task6; - -public class Pan extends Dish{ - protected double r; - protected double h; - public Pan (String color, boolean filled, double r, double h) { - super(color, filled); - this.r = r; - this.h = h; - } - - public double getR() { - return r; - } - - public void setR(double r) { - this.r = r; - } - - public double getH() { - return h; - } - - public void setH(double h) { - this.h = h; - } - - @Override - public String toString() { - return "Pan{" + - "r=" + r + - ", h=" + h + - ", color='" + color + '\'' + - ", filled=" + filled + - '}'; - } - /* - @Override - public double Radus() { - return 2; - } - - @Override - public double Diametr() { - return 0; - } - - @Override - public double Scovoroda() { - return 0; - } - - */ -} - -``` - -#### `Task6/Plate.java` - -```java title="Task6/Plate.java" -package Task6; - -public class Plate extends Dish{ - protected String name; - protected double r; - public Plate(String color, boolean filled, String name, double r) { - super(color, filled); - this.name = name; - this.r = r; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public double getR() { - return r; - } - - public void setR(double r) { - this.r = r; - } - - @Override - public String toString() { - return "Plate{" + - "name='" + name + '\'' + - ", r=" + r + - ", color='" + color + '\'' + - ", filled=" + filled + - '}'; - } - /* - @Override - public double Radus() { - return 0; - } - @Override - public double Diametr() { - return 0; - } - @Override - public double Scovoroda() { - return 0; - } - - */ -} - -``` - -#### `Task6/TestDish.java` - -```java title="Task6/TestDish.java" -package Task6; - -public class TestDish { - public static void main(String[] args) { - Dish d = new Cup("red", true, 4, 5); - Dish d1 = new Dish("black", false); - Dish d2 = new Pan("white", false, 78, 56); - Dish d3 = new Plate("blue", true, "Boorg", 32); - System.out.println(d); - System.out.println(d1); - System.out.println(d2); - System.out.println(d3); - } -} - -``` - -#### `Task6/TestDog.java` - -```java title="Task6/TestDog.java" -package Task6; - -public class TestDog { - public static void main(String[] args){ - Dog d1 = new Dog("kol", 4); - Dog d2 = new Bylidog("ser", 5); - Dog d3 = new Haski("pol", 6); - System.out.println(d1); - System.out.println(d2); - System.out.println(d3); - } -} - -``` - -#### `Task6/TestFurnitureShop.java` - -```java title="Task6/TestFurnitureShop.java" -package Task6; - -public class TestFurnitureShop { - public static void main(String[] args){ - FurnitureShop f = new FurnitureShop(4); - System.out.println(f.Asortiment()); - //f.buy(3); - System.out.println("Куплено: "+"\n"+f.buy(2)); - - } -} - -``` - - -## Описание - -В этом модуле используется 14 Java-файлов. Ключевые сущности: Bed, Bylidog, Chair, Cup, Dish, Dog. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 6 — Иерархии классов документирует реальное решение из исходного кода. diff --git a/content/java/task-07-basic-gui.mdx b/content/java/task-07-basic-gui.mdx deleted file mode 100644 index 2c72740..0000000 --- a/content/java/task-07-basic-gui.mdx +++ /dev/null @@ -1,105 +0,0 @@ ---- -title: Task 7 — Базовый GUI -sidebar_position: 8 -description: Создание простого графического интерфейса на Java. -slug: /java/task-07-basic-gui ---- - -## Задание - -Создание простого графического интерфейса на Java. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task7/Windows.java` - -#### `Task7/Windows.java` - -```java title="Task7/Windows.java" - -package Task7; -import java.awt.*; -import java.awt.event.*; -import javax.swing.*; -public class Windows extends JFrame{ - int milan; - int madrid; - JButton but1 = new JButton("AC Milan"); - JButton but2 = new JButton("Real Madrid"); - JLabel lbl1 = new JLabel("Result: 0 X 0"); - JLabel lbl2 = new JLabel("Last Scorer: N/A"); - JLabel lbl3 = new JLabel("Winner: DRAW"); - public Windows(){ - super("Result"); - setLayout((LayoutManager) null); - but1.setBounds(12, 12, 100, 100); - but2.setBounds(300,12,100,100); - lbl1.setBounds(112, 12,100,100); - lbl2.setBounds(112,30,100,100); - lbl3.setBounds(112,50,100,100); - add(but1); - add(but2); - add(lbl1); - add(lbl2); - add(lbl3); - but1.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent ae) { - try { - ++Windows.this.milan; - Windows.this.lbl1.setText("Result: "+Windows.this.milan+" X "+Windows.this.madrid); - Windows.this.lbl2.setText("Last Scorer: AC Milan"); - if(Windows.this.milan > Windows.this.madrid){ - Windows.this.lbl3.setText("Winner: AC Milan"); - } - if (Windows.this.milan == Windows.this.madrid){ - Windows.this.lbl3.setText("Winner: DRAW"); - } - } - catch (Exception e){ - } - } - }); - but2.addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent ae) { - try { - ++Windows.this.madrid; - Windows.this.lbl1.setText("Result: "+Windows.this.milan+" X "+Windows.this.madrid); - Windows.this.lbl2.setText("Last Scorer: Real Madrid"); - if(Windows.this.milan < Windows.this.madrid){ - Windows.this.lbl3.setText("Winner: Real Madrid"); - } - if (Windows.this.milan == Windows.this.madrid){ - Windows.this.lbl3.setText("Winner: DRAW"); - } - } - catch (Exception e){} - } - }); - setSize(200,200); - } - public static void main(String[] args){ - Windows w = new Windows(); - w.setVisible(true); - w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - } -} -``` - - -## Описание - -В этом модуле используется 1 Java-файлов. Ключевые сущности: Windows. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 7 — Базовый GUI документирует реальное решение из исходного кода. diff --git a/content/java/task-08-graphics-and-animation.mdx b/content/java/task-08-graphics-and-animation.mdx deleted file mode 100644 index 196565c..0000000 --- a/content/java/task-08-graphics-and-animation.mdx +++ /dev/null @@ -1,301 +0,0 @@ ---- -title: Task 8 — Графика и анимация -sidebar_position: 9 -description: Работа с графическими примитивами и обновлением сцены. -slug: /java/task-08-graphics-and-animation ---- - -## Задание - -Работа с графическими примитивами и обновлением сцены. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task8/Animation.java` -- `Task8/Picture.java` -- `Task8/RandomShapes.java` -- `Task8/tret.java` - -#### `Task8/Animation.java` - -```java title="Task8/Animation.java" -package Task8; - -import javax.swing.*; -import java.awt.*; -import java.util.Timer; -import java.util.TimerTask; - -public class Animation { - public static void main(String[] args) { - JFrame frame = new JFrame("Анимация"); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - final ImageIcon[] icon = {new ImageIcon("D:\\Обои\\1234.jpeg")}; - //ImageIcon icon1 = new ImageIcon("D:\\Обои\\1680.jpg"); - JLabel label1; - final JLabel[] label2 = new JLabel[1]; - label1 = new JLabel("lol", icon[0], SwingConstants.CENTER); - //label2 = new JLabel("lop", icon1, SwingConstants.CENTER); - JPanel panel = new JPanel(); - panel.setBackground(Color.BLACK); - panel.setPreferredSize(new Dimension(1919, 1079)); - panel.add(label1); - //panel.add(label2); - frame.getContentPane().add(panel); - frame.pack(); - frame.setVisible(true); - final int[] count = {0}; - Timer t = new Timer(); - TimerTask animate = null; - t.schedule(animate, 1, 200); - animate = new TimerTask() { - @Override - public void run() { - switch (count[0]) { - case 0: - ImageIcon icon = new ImageIcon("D:\\Обои\\1680.jpg"); - JLabel label2 = new JLabel("lop", icon, SwingConstants.CENTER); - JPanel panel1 = new JPanel(); - panel1.add(label2); - break; - case 1: - ImageIcon icon1 = new ImageIcon("D:\\Обои\\1234.jpeg"); - JLabel label3 = new JLabel("lop", icon1, SwingConstants.CENTER); - JPanel panel2 = new JPanel(); - panel2.add(label3); - break; - } - count[0]++; - if(count[0] == 2) { - count[0] = 0; - } - } - }; - } -} - -``` - -#### `Task8/Picture.java` - -```java title="Task8/Picture.java" -package Task8; - -import javax.swing.*; -import java.awt.*; -import java.util.Arrays; - -public class Picture { - public static void main(String[] args){ - String r = ""; - JFrame frame = new JFrame ("Картинка"); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - for (int i=0; i { - JFrame frame = new JFrame("Random Shapes"); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.add(new RandomShapes()); - frame.pack(); - frame.setLocationRelativeTo(null); - frame.setVisible(true); - }); - } -} - -``` - -#### `Task8/tret.java` - -```java title="Task8/tret.java" -package Task8; -import java.awt.Graphics; -import java.awt.Image; -import java.util.Timer; -import java.util.TimerTask; -import javax.swing.ImageIcon; -import javax.swing.JFrame; -import javax.swing.JPanel; -public class tret extends JPanel{ - private static final int HEIGHT = 1080; - private static final int WIDTH = 1920; - private JFrame frame; - private Timer timer; - private Image image; - public tret() { - frame = new JFrame("Application name"); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.setSize(WIDTH, HEIGHT); - frame.add(this); - frame.setVisible(true); - image = new ImageIcon("D:\\Обои\\1234.jpeg").getImage(); - count = 0; - timer = new Timer(); - timer.schedule(animate, 1,200); - } - private int count; - TimerTask animate = new TimerTask() { - - @Override - public void run() { - switch (count) { - case 20: - image = new ImageIcon("D:\\Обои\\1680.jpg").getImage(); - break; - case 40: - image = new ImageIcon("D:\\Обои\\03.jpg").getImage(); - break; - case 60: - image = new ImageIcon("D:\\Обои\\1234.jpeg").getImage(); - break; - default: - break; - } - count++; - if (count == 80) { - count = 0; - } - repaint(); - } - }; - public void paint(Graphics canvas) { - canvas.drawImage(image, 0, 0, null); - } - public static void main(String[] args){ - new tret(); - } - - } - -``` - - -## Описание - -В этом модуле используется 4 Java-файлов. Ключевые сущности: Animation, Picture, RandomShapes, tret. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 8 — Графика и анимация документирует реальное решение из исходного кода. diff --git a/content/java/task-09-nameable-priceable.mdx b/content/java/task-09-nameable-priceable.mdx deleted file mode 100644 index f74aa27..0000000 --- a/content/java/task-09-nameable-priceable.mdx +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: Task 9 — Интерфейсы Nameable/Priceable -sidebar_position: 10 -description: Единые API для объектов с именем и ценой. -slug: /java/task-09-nameable-priceable ---- - -## Задание - -Единые API для объектов с именем и ценой. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task9/Car.java` -- `Task9/Dishes.java` -- `Task9/Dog.java` -- `Task9/Nameable.java` -- `Task9/Priceable.java` -- `Task9/TestNameable.java` - -#### `Task9/Car.java` - -```java title="Task9/Car.java" -package Task9; - -public class Car implements Nameable{ - String name; - public Car(String name){ - this.name = name; - } - @Override - public String getName() { - return name; - } - public String toString(){ - return "Car = "+ name; - } -} - -``` - -#### `Task9/Dishes.java` - -```java title="Task9/Dishes.java" -package Task9; - -import java.awt.print.Printable; - -public class Dishes implements Priceable{ - double price; - public Dishes(double price){ - this.price = price; - } - @Override - public void getPrice() { - System.out.printf("Цена = %s", price); - //return price; - } - public static void main(String[] args){ - Priceable p = new Dishes(12345); - //System.out.println(p); - p.getPrice(); - } -} - -``` - -#### `Task9/Dog.java` - -```java title="Task9/Dog.java" -package Task9; - -public class Dog implements Nameable{ - String name; - - public Dog(String name) { - this.name = name; - } - - @Override - public String getName() { - return name; - } - - @Override - public String toString() { - return "Dog = " + name; - } - -} - -``` - -#### `Task9/Nameable.java` - -```java title="Task9/Nameable.java" -package Task9; - -public interface Nameable { - String getName(); -} - -``` - -#### `Task9/Priceable.java` - -```java title="Task9/Priceable.java" -package Task9; - -public interface Priceable { - void getPrice(); -} - -``` - -#### `Task9/TestNameable.java` - -```java title="Task9/TestNameable.java" -package Task9; - -public class TestNameable { - public static void main(String[] args){ - Nameable n = new Dog("KOL"); - Nameable n1 = new Car("TOYOTA"); - System.out.println(n); - System.out.println(n1); - } -} - -``` - - -## Описание - -В этом модуле используется 6 Java-файлов. Ключевые сущности: Car, Dishes, Dog, Nameable, Priceable, TestNameable. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 9 — Интерфейсы Nameable/Priceable документирует реальное решение из исходного кода. diff --git a/content/java/task-10-recursion.mdx b/content/java/task-10-recursion.mdx deleted file mode 100644 index 32d4dcb..0000000 --- a/content/java/task-10-recursion.mdx +++ /dev/null @@ -1,155 +0,0 @@ ---- -title: Task 10 — Рекурсия -sidebar_position: 11 -description: Рекурсивные алгоритмы и базовые условия остановки. -slug: /java/task-10-recursion ---- - -## Задание - -Рекурсивные алгоритмы и базовые условия остановки. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task10/Recursion11.java` -- `Task10/Recursion12.java` -- `Task10/Recursion13.java` -- `Task10/Recursion14.java` - -#### `Task10/Recursion11.java` - -```java title="Task10/Recursion11.java" -package Task10; - -import java.util.Scanner; - -public class Recursion11 { - public static int Recurs(){ - Scanner s = new Scanner(System.in); - int n = s.nextInt(); - if (n==1){ - int m = s.nextInt(); - if (m == 1){ - return Recurs()+n+m; - } - else{ - int k = s.nextInt(); - if(k == 1){ - return Recurs()+m+n+k; - } - else{ - return n+m+k; - } - } - } - else{ - int m = s.nextInt(); - if (m==1){ - return Recurs()+m+n; - } - else{ - return n+m; - } - } - } - public static void main(String[] args){ - System.out.println(Recurs()); - } -} - -``` - -#### `Task10/Recursion12.java` - -```java title="Task10/Recursion12.java" -package Task10; - -import java.util.Scanner; - -public class Recursion12 { - public static void Recurs(){ - Scanner s = new Scanner(System.in); - int n = s.nextInt(); - if (n>0){ - if (n % 2 == 1){ - System.out.println(n); - Recurs(); - } - else{ - Recurs(); - } - } - } - public static void main(String[] args){ - Recurs(); - } -} - -``` - -#### `Task10/Recursion13.java` - -```java title="Task10/Recursion13.java" -package Task10; - -import java.util.Scanner; - -public class Recursion13 { - public static void Recurs(){ - Scanner s = new Scanner(System.in); - int n = s.nextInt(); - if (n >0){ - System.out.println(n); - int m = s.nextInt(); - if (m>0){ - Recurs(); - } - } - } - public static void main(String[] args){ - Recurs(); - } -} - -``` - -#### `Task10/Recursion14.java` - -```java title="Task10/Recursion14.java" -package Task10; - -import java.util.Scanner; - -public class Recursion14 { - public static int Recurs(int n){ - if (n < 10){ - return n; - } - else{ - System.out.println(n % 10 + " "); - return Recurs(n / 10); - } - } - public static void main(String[] args){ - System.out.println(Recurs(123)); - } -} - -``` - - -## Описание - -В этом модуле используется 4 Java-файлов. Ключевые сущности: Recursion11, Recursion12, Recursion13, Recursion14. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 10 — Рекурсия документирует реальное решение из исходного кода. diff --git a/content/java/task-11-sorting-students.mdx b/content/java/task-11-sorting-students.mdx deleted file mode 100644 index 8ee8072..0000000 --- a/content/java/task-11-sorting-students.mdx +++ /dev/null @@ -1,199 +0,0 @@ ---- -title: Task 11 — Сортировка студентов -sidebar_position: 12 -description: Сортировка и сравнение объектов по метрикам. -slug: /java/task-11-sorting-students ---- - -## Задание - -Сортировка и сравнение объектов по метрикам. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task11/Connection.java` -- `Task11/SortingStudentsByGPA.java` -- `Task11/Student.java` - -#### `Task11/Connection.java` - -```java title="Task11/Connection.java" -package Task11; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class Connection { - String name; - int age; - - public Connection(String name, int age) { - this.name = name; - this.age = age; - } - - - public static void main(String[] args){ - List c =new ArrayList<>(); - - c.add(new String[]{"Max", "10"}); - c.add(new String[]{"Nicolai", "20"}); - c.add(new String[]{"Tolic", "19"}); - c.add(new String[]{"Dane", "17"}); - - List r = new ArrayList<>(); - r.add(new String[]{"Denes","23"}); - r.add(new String[]{"Dasha", "30"}); - r.add(new String[]{"Oleg", "27"}); - //c.addAll(r); - //System.out.print(c); - List t = mergeSort(c, r); - for (String[] d: t){ - System.out.println("[" +d[0]+", "+d[1] +"]"); - } - } - private static List mergeSort(List c, List r) { - if (c.size()<=1 && r.size()<=1){ - return merge(c, r); - } - int m1 = c.size()/2; - int m2 = r.size()/2; - List left1 = c.subList(0, m1); - List right1 = c.subList(m1, c.size()); - List left2 = r.subList(0,m2); - List right2 = r.subList(m2, r.size()); - List sortleft = mergeSort(left1, left2); - List sortright = mergeSort(right1, right2); - return merge(sortleft, sortright); - } - public static List merge(List left, List right) { - List result = new ArrayList<>(); - int i = 0; - int j = 0; - while (i < left.size() && j < right.size()) { - if (Integer.parseInt(left.get(i)[1]) < Integer.parseInt(right.get(j)[1])) { - result.add(left.get(i)); - i++; - } else { - result.add(right.get(j)); - j++; - } - } - while (i < left.size()) { - result.add(left.get(i)); - i++; - } - while (j < right.size()) { - result.add(right.get(j)); - j++; - } - return result; - } -} - - -``` - -#### `Task11/SortingStudentsByGPA.java` - -```java title="Task11/SortingStudentsByGPA.java" -package Task11; -import java.util.*; -public class SortingStudentsByGPA implements Comparable{ - public String name; - public int bal; - - public SortingStudentsByGPA(String name, int bal) { - this.name = name; - this.bal = bal; - } - - @Override - public int compareTo(SortingStudentsByGPA o) { - return o.bal - this.bal; - } - public static void main(String[] args){ - List r = new ArrayList<>(); - r.add(new SortingStudentsByGPA("Nicolai", 123)); - r.add(new SortingStudentsByGPA("Oleg", 200)); - r.add(new SortingStudentsByGPA("Sasha", 260)); - r.add(new SortingStudentsByGPA("Nikita", 250)); - Collections.sort(r); - for (SortingStudentsByGPA s : r){ - System.out.println(s.name+ " Баллы "+s.bal); - } - } -} - - - -``` - -#### `Task11/Student.java` - -```java title="Task11/Student.java" -package Task11; - -public class Student { - String name; - int iDNumber; - - public Student(String name, int iDNumber) { - this.name = name; - this.iDNumber = iDNumber; - } - public void setName(String name){ - this.name=name; - } - public String getName(){ - return name; - } - public int getiDNumber() { - return iDNumber; - } - public void setiDNumber(int iDNumber) { - this.iDNumber = iDNumber; - } - public static void main(String[] args){ - Student[] s = new Student[6]; - s[0]=new Student("Sol",1); - s[1]=new Student("Pol",2); - s[2]=new Student("Kol",3); - s[3]=new Student("Tol",7); - s[4]=new Student("Fol",0); - s[5]=new Student("Rol",4); - for(int i = 1; i < s.length; i++){ - Student current = s[i]; - int j = i-1; - while (j>=0 && s[j].getiDNumber() > current.getiDNumber()){ - s[j+1]=s[j]; - j--; - } - s[j+1]=current; - } - System.out.println(" "); - for(Student f: s){ - System.out.println("Name: "+f.getName()+" id: "+f.getiDNumber()); - } - } -} - -``` - - -## Описание - -В этом модуле используется 3 Java-файлов. Ключевые сущности: Connection, SortingStudentsByGPA, Student. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 11 — Сортировка студентов документирует реальное решение из исходного кода. diff --git a/content/java/task-12-drunkard-game.mdx b/content/java/task-12-drunkard-game.mdx deleted file mode 100644 index 0f79b4a..0000000 --- a/content/java/task-12-drunkard-game.mdx +++ /dev/null @@ -1,115 +0,0 @@ ---- -title: Task 12 — Игра Пьяница -sidebar_position: 13 -description: Моделирование игры через очереди и коллекции. -slug: /java/task-12-drunkard-game ---- - -## Задание - -Моделирование игры через очереди и коллекции. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task12/Drunkard.java` - -#### `Task12/Drunkard.java` - -```java title="Task12/Drunkard.java" -package Task12; - -import java.util.*; - -public class Drunkard { - public static void main(String[] args) throws InterruptedException { - System.out.println("Ведите 5 карт для первого игрока: "); - Scanner s = new Scanner(System.in); - Scanner r = new Scanner(System.in); - int t1 = s.nextInt(); - System.out.println("Ведите 5 карт для второго игрока: "); - int t2 = r.nextInt(); - int[] b1 = new int[5]; - int[] b2 = new int[5]; - while (t1 > 0) { - for (int i = b1.length - 1; i >= 0; i--) { - b1[i] = t1 % 10; - t1 = t1 / 10; - } - } - while (t2 > 0) { - for (int i = b2.length - 1; i >= 0; i--) { - b2[i] = t2 % 10; - t2 = t2 / 10; - } - } - int count = 0; - while (b1.length != 0 && b2.length != 0 && count < 106) { - int card1 = b1[0]; - int card2 = b2[0]; - if ((card1 > card2 || (card1 == 0 && card2 == 9)) && (card1!=9&&card2!=0)) { - int[] newb1 = new int[b1.length + 1]; - System.arraycopy(b1, 1, newb1, 0, b1.length - 1); - newb1[newb1.length - 2] = card1; - newb1[newb1.length - 1] = card2; - b1 = newb1; - int[] newb2 = new int[b2.length - 1]; - System.arraycopy(b2, 1, newb2, 0, b2.length - 1); - b2 = newb2; - count += 1; - for(int i =0; i extends WaitList{ - private int capacity; - public BoundedWaitList(int capacity){ - if (capacity>0) - this.capacity = capacity; - else - System.out.println("Очередь должна состоять больше чем из 0 элементов"); - } - public int getCapacity() { - return capacity; - } - public void add(E element){ - if(capacity > content.size()) - content.add(element); - else - System.out.println("Очередь переполнена"); - } - - @Override - public String toString() { - return "BoundedWaitList - " + content; - } -} - -``` - -#### `Task14/IWaitList.java` - -```java title="Task14/IWaitList.java" -package Task14; - -import java.util.Collection; - -public interface IWaitList { - void add(E element); - E remove(); - boolean contains(E element); - boolean containsAll(Collection c); - boolean isEmpty(); -} - -``` - -#### `Task14/Main.java` - -```java title="Task14/Main.java" -package Task14; - -import java.util.ArrayList; - -public class Main { - static public void main(String[] args){ - WaitList wait = new WaitList<>(); - ArrayList al = new ArrayList<>(); - al.add("O"); - wait.add("L"); - wait.add("O"); - wait.add("L"); - System.out.println(wait); - wait.remove(); - System.out.println(wait); - System.out.println("Есть ли 'L' ? - " + wait.contains("L")); - al.add("D"); - System.out.println("Есть ли 'D'? - " + wait.containsAll(al)); - System.out.println("Список пуст ? - " + wait.isEmpty()); - System.out.println("------------------------------"); - BoundedWaitList bout = new BoundedWaitList<>(4); - bout.add("f"); - bout.add("a"); - bout.add("B"); - bout.add("a"); - bout.add("!"); - System.out.println(bout); - bout.remove(); - System.out.println(bout); - bout.add("!"); - System.out.println(bout); - System.out.println("Объем списка: "+bout.getCapacity()); - System.out.println("----------------------------"); - UnfairWaitList unf = new UnfairWaitList<>(); - unf.add("L"); - unf.add("O"); - unf.add("T"); - unf.add("p"); - System.out.println(unf); - unf.remove("L"); - System.out.println("Попытка удаления первого элемента: "+unf); - unf.remove("O"); - System.out.println("Удаление элемента: "+unf); - unf.moveToBack("T"); - System.out.println("Перенос элемента в конец: "+unf); - - } -} - -``` - -#### `Task14/UnfairWaitList.java` - -```java title="Task14/UnfairWaitList.java" -package Task14; - -public class UnfairWaitList extends WaitList { - public UnfairWaitList(){} - public void remove(E element){ - for(int i =0; i implements IWaitList{ - protected ConcurrentLinkedQueue content; - public WaitList(){ - content = new ConcurrentLinkedQueue<>(); - } - public WaitList(Collection c){ - content = new ConcurrentLinkedQueue<>(c); - } - @Override - public String toString() { - return "WaitList{" + - "content=" + content + - '}'; - } - - @Override - public void add(E element) { - content.add(element); - } - - @Override - public E remove() { - if(isEmpty()){ - throw new IllegalStateException("Очередь пуста"); - } - return content.remove(); - } - - @Override - public boolean contains(E element) { - boolean res = false; - for (int i = 0; i < content.size(); i++) { - E cur = content.remove(); - if (cur.equals(element)) - res = true; - content.add(cur); - } - return res; - } - - @Override - public boolean containsAll(Collection c) { - ArrayList al = new ArrayList<>(c); - boolean res = false; - for(int i = 0; i < c.size(); i++){ - res = false; - for(int j = 0; j < content.size(); j++){ - E el = content.remove(); - if(el.equals(al.get(i))) res = true; - content.add(el); - } - if(!res) return res; - } - return res; - } - - @Override - public boolean isEmpty() { - return content.isEmpty(); - } -} - -``` - - -## Описание - -В этом модуле используется 5 Java-файлов. Ключевые сущности: BoundedWaitList, IWaitList, Main, UnfairWaitList, WaitList. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 14 — Generics и очереди документирует реальное решение из исходного кода. diff --git a/content/java/task-15-mvc-pattern.mdx b/content/java/task-15-mvc-pattern.mdx deleted file mode 100644 index 6ab8b85..0000000 --- a/content/java/task-15-mvc-pattern.mdx +++ /dev/null @@ -1,425 +0,0 @@ ---- -title: Task 15 — MVC паттерн -sidebar_position: 16 -description: Разделение модели, представления и контроллера. -slug: /java/task-15-mvc-pattern ---- - -## Задание - -Разделение модели, представления и контроллера. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task15/Employee.java` -- `Task15/EmployeeController.java` -- `Task15/EmployeeView.java` -- `Task15/Movie.java` -- `Task15/MovieController.java` -- `Task15/MovieView.java` -- `Task15/MVCPatternDemoEmployee.java` -- `Task15/MVCPatternDemoMovie.java` -- `Task15/MVCPatternDemoStudent.java` -- `Task15/Student.java` -- `Task15/StudentController.java` -- `Task15/StudentView.java` - -#### `Task15/Employee.java` - -```java title="Task15/Employee.java" -package Task15; -public class Employee { - private String Name; - private double salary; - public String getName() { - return Name; - } - public void setName(String name) { - Name = name; - } - public double getSalary() { - return salary; - } - - public void setSalary(double salary) { - this.salary = salary; - } -} - -``` - -#### `Task15/EmployeeController.java` - -```java title="Task15/EmployeeController.java" -package Task15; -public class EmployeeController { - private Employee model; - private EmployeeView view; - public EmployeeController(Employee model, EmployeeView view) { - this.model = model; - this.view = view; - } - public void setEmployeeName(String name){ - model.setName(name); - } - public String getEmployeeName(){ - return model.getName(); - } - public void setEmployeeSalary(double salary){ - model.setSalary(salary); - } - public double getEmployeeSalary(){ - return model.getSalary(); - } - public void updateView(){ - view.printEmployeeDetails(model.getName(), model.getSalary()); - } - public void nds(){ - model.setSalary(model.getSalary() - (model.getSalary()*0.13)); - } - public void theend(String e){ - view.printEnd(e); - } -} - -``` - -#### `Task15/EmployeeView.java` - -```java title="Task15/EmployeeView.java" -package Task15; - -public class EmployeeView { - public void printEmployeeDetails(String name, double salary){ - System.out.println("Имя: " + name); - System.out.println("Зарплата: "+salary); - } - public void printEnd(String e){ - System.out.println("End: "+e); - } -} - -``` - -#### `Task15/Movie.java` - -```java title="Task15/Movie.java" -package Task15; - -public class Movie { - private String opis; - private String date; - - public Movie(String opis, String date) { - this.opis=opis; - this.date=date; - } - - public String getOpis() { - return opis; - } - - public void setOpis(String opis) { - this.opis = opis; - } - public String getDate() { - return date; - } - - public void setDate(String date) { - this.date = date; - } -} -``` - -#### `Task15/MovieController.java` - -```java title="Task15/MovieController.java" -package Task15; - -public class MovieController { - private Movie model; - private MovieView view; - public MovieController(Movie model, MovieView view){ - this.model = model; - this.view = view; - } - public void updet(String imagePath, String date, String opis){ - model.setDate(date); - model.setOpis(opis); - view.updateView(imagePath, date, opis); - } - -} - -``` - -#### `Task15/MovieView.java` - -```java title="Task15/MovieView.java" -package Task15; - -import javax.imageio.ImageIO; -import javax.swing.*; -import javax.swing.border.CompoundBorder; -import javax.swing.border.EmptyBorder; -import java.awt.*; -import java.awt.image.BufferedImage; -import java.io.File; -import java.io.IOException; - -public class MovieView extends JFrame { - private JLabel name_movie; - private JLabel prince; - private JLabel time; - - MovieView() throws IOException, InterruptedException { - super("Расписание кино"); - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - - name_movie = new JLabel(); - prince = new JLabel(); - time = new JLabel(); - - JPanel panel = new JPanel(); - panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); - panel.setBackground(new Color(255,255,255)); - panel.add(Box.createVerticalGlue()); - - JPanel imagePanel = new JPanel(); - imagePanel.setPreferredSize(new Dimension(800, 600)); - imagePanel.setMaximumSize(new Dimension(800, 600)); - imagePanel.setBackground(new Color(255,255,255)); - imagePanel.add(name_movie); - - panel.add(imagePanel); - imagePanel.setAlignmentX(Component.CENTER_ALIGNMENT); - - panel.add(prince); - panel.add(Box.createRigidArea(new Dimension(0, 20))); - - prince.setAlignmentX(Component.CENTER_ALIGNMENT); - time.setAlignmentX(Component.CENTER_ALIGNMENT); - - panel.add(time); - time.setMaximumSize(new Dimension(1000, 250)); - - panel.add(Box.createVerticalGlue()); - - getContentPane().add(panel); - setSize(800, 800); - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - setVisible(true); - } - - public void setImage(String filename) { - - try { - BufferedImage img = ImageIO.read(new File(filename)); - JLabel picture = new JLabel(); - picture.setIcon(new ImageIcon(img)); - } catch (IOException e) { - System.out.println("Ошибка при получении картинки"); - } - } - public void updateView(String imagePath, String date, String description){ - name_movie.setIcon(new ImageIcon(imagePath)); - prince.setText(date); - time.setText(""+ description +""); - } -} - -``` - -#### `Task15/MVCPatternDemoEmployee.java` - -```java title="Task15/MVCPatternDemoEmployee.java" -package Task15; - -public class MVCPatternDemoEmployee { - public static void main(String[] args){ - Employee model = retriveEmployeeFromDa(); - EmployeeView view = new EmployeeView(); - EmployeeController controller = new EmployeeController(model, view); - controller.updateView(); - controller.nds(); - //controller.setEmployeeSalary(30000); - System.out.println("С вычитом подоходового налога"); - controller.updateView(); - controller.theend("Завершение работы"); - } - - private static Employee retriveEmployeeFromDa() { - Employee model = new Employee(); - model.setName("Артем"); - model.setSalary(30000); - return model; - } -} - -``` - -#### `Task15/MVCPatternDemoMovie.java` - -```java title="Task15/MVCPatternDemoMovie.java" -package Task15; - -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; -import java.awt.event.MouseWheelEvent; -import java.io.IOException; - -public class MVCPatternDemoMovie { - public static void main(String[] args) throws IOException, InterruptedException { - Movie model = new Movie("Дата показа 12.12.2023", "Когда речь идет о деньгах, совесть молчит. А уж если речь об огромных деньгах!.. Это основанная на реальных событиях история нескольких провидцев, которые независимо друг от друга предсказали мировой экономический кризис 2008 года задолго до того, как о нем зашептались в кулуарах на Уолл-стрит. И предсказав, стали на нем зарабатывать. Сами того не желая."); - MovieView view = new MovieView(); - MovieController controller = new MovieController(model, view); - controller.updet("D:\\IdeaProjects\\untitled\\src\\Task15\\2.jpg", model.getOpis(), model.getDate()); - view.addMouseListener(new MouseAdapter() { - int click = 1; - - @Override - public void mouseClicked(MouseEvent e) { - switch (click) { - case 0: - controller.updet("D:\\IdeaProjects\\untitled\\src\\Task15\\2.jpg", "Дата показа 13.12.2023", "Когда речь идет о деньгах, совесть молчит. А уж если речь об огромных деньгах!.. Это основанная на реальных событиях история нескольких провидцев, которые независимо друг от друга предсказали мировой экономический кризис 2008 года задолго до того, как о нем зашептались в кулуарах на Уолл-стрит. И предсказав, стали на нем зарабатывать. Сами того не желая."); - break; - case 1: - controller.updet("D:\\IdeaProjects\\untitled\\src\\Task15\\3.jpg", "Дата показа 14.12.2023", "Нью-йоркский финансист Джордан Белфорт в конце 80-х годов основал одну из крупнейших брокерских компаний, но через десять лет его осудили за мошенничество с ценными бумагами. С самых высот финансового мира Белфорду приходиться опуститься на самое дно, он борется с алкоголизмом и наркотической зависимостью, но после тюремного заключения бывший брокер переосмысливает свою жизнь, начинает читать лекции и выпускает книгу."); - break; - case 2: - controller.updet("D:\\IdeaProjects\\untitled\\src\\Task15\\4.jpg", "Дата показа 15.12.2023","Американское семейство отправляется из Чикаго в Европу, но в спешке сборов бестолковые родители забывают дома… одного из своих детей. Юное создание, однако, не теряется и демонстрирует чудеса изобретательности. И когда в дом залезают грабители, им приходится не раз пожалеть о встрече с милым крошкой."); - break; - case 3: - controller.updet("D:\\IdeaProjects\\untitled\\src\\Task15\\5.jpg", "Дата показа 16.12.2023", "Кобб — талантливый вор, лучший из лучших в опасном искусстве извлечения: он крадет ценные секреты из глубин подсознания во время сна, когда человеческий разум наиболее уязвим. Редкие способности Кобба сделали его ценным игроком в привычном к предательству мире промышленного шпионажа, но они же превратили его в извечного беглеца и лишили всего, что он когда-либо любил."); - break; - case 4: - controller.updet("D:\\IdeaProjects\\untitled\\src\\Task15\\1.png", "Дата показа 17.12.2023", "Вскоре после отмщения за смерть жены и сына, Макс Рокатански покинул ряды «Основного силового патруля» и уехал в глушь, где скитается в одиночестве, пока мир медленно падает впоследствии нефтяного кризиса и глобальной войны. Не имея ничего, кроме своей машины «Перехватчик», Максу предстоит научиться, как выжить в пост-апокалиптической пустоши и сражаться с жестокими, безжалостными воинами, которые населяют её."); - break; - } - click++; - if (click == 5) { - click = 0; - } - } - }); - } -} - -``` - -#### `Task15/MVCPatternDemoStudent.java` - -```java title="Task15/MVCPatternDemoStudent.java" -package Task15; - -public class MVCPatternDemoStudent { - public static void main(String[] args){ - Student model = retriveStudentFromDa(); - StudentView view = new StudentView(); - StudentController controller = new StudentController(model, view); - controller.updateView(); - controller.setStudentRollNo("01"); - System.out.println("--------------------------"); - controller.updateView(); - } - private static Student retriveStudentFromDa() { - Student student = new Student(); - student.setName("Николай"); - student.setRollNo("09"); - return student; - } -} - -``` - -#### `Task15/Student.java` - -```java title="Task15/Student.java" -package Task15; - -public class Student { - private String name; - private String rollNo; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getRollNo() { - return rollNo; - } - - public void setRollNo(String rollNo) { - this.rollNo = rollNo; - } -} - -``` - -#### `Task15/StudentController.java` - -```java title="Task15/StudentController.java" -package Task15; - -public class StudentController { - private Student model; - private StudentView view; - - public StudentController(Student model, StudentView view) { - this.model = model; - this.view = view; - } - public void setStudentName(String name){ - model.setName(name); - } - public String getStudentName(){ - return model.getName(); - } - public void setStudentRollNo(String rollNo){ - model.setRollNo(rollNo); - } - public String getStudentRollNo(){ - return model.getRollNo(); - } - public void updateView(){ - view.printStudentDetails(model.getName(), model.getRollNo()); - } -} - -``` - -#### `Task15/StudentView.java` - -```java title="Task15/StudentView.java" -package Task15; - -public class StudentView { - public void printStudentDetails(String name, String rollNo){ - System.out.println("Name: " + name); - System.out.println("RollNo: " + rollNo); - } -} - -``` - - -## Описание - -В этом модуле используется 12 Java-файлов. Ключевые сущности: Employee, EmployeeController, EmployeeView, Movie, MovieController, MovieView. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 15 — MVC паттерн документирует реальное решение из исходного кода. diff --git a/content/java/task-16-exceptions.mdx b/content/java/task-16-exceptions.mdx deleted file mode 100644 index 9920219..0000000 --- a/content/java/task-16-exceptions.mdx +++ /dev/null @@ -1,286 +0,0 @@ ---- -title: Task 16 — Исключения -sidebar_position: 17 -description: Обработка исключений и безопасное выполнение кода. -slug: /java/task-16-exceptions ---- - -## Задание - -Обработка исключений и безопасное выполнение кода. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task16/Exception1.java` -- `Task16/Exception2.java` -- `Task16/Exception3.java` -- `Task16/Exception4.java` -- `Task16/ThrowsDemo5.java` -- `Task16/ThrowsDemo6.java` -- `Task16/ThrowsDemo7.java` -- `Task16/ThrowsDemo8.java` - -#### `Task16/Exception1.java` - -```java title="Task16/Exception1.java" -package Task16; - -public class Exception1 { - public static void exceptionDemo(){ - System.out.println(2/0); - } - public static void exceptionDemo1(){ - System.out.println(2.0/0.0); - } - public static void exceptionDemo2(){ - try { - System.out.println(2/0); - }catch (ArithmeticException e){ - System.out.println("Attempted division by zero"); - } - } - public static void main(String[] args){ - exceptionDemo1(); - exceptionDemo2(); - exceptionDemo(); - } - } - - -``` - -#### `Task16/Exception2.java` - -```java title="Task16/Exception2.java" -package Task16; - -import java.util.Scanner; - -public class Exception2 { - public static void exceptionDemo1(){ - Scanner myScanner = new Scanner(System.in); - System.out.println("Enter an integer "); - String intString = myScanner.next(); - int i = Integer.parseInt(intString); - System.out.println(2/i); - } - public static void exceptionDemo(){ - try { - Scanner myScanner = new Scanner(System.in); - System.out.println("Enter an integer "); - String intString = myScanner.next(); - int i = Integer.parseInt(intString); - System.out.println(2/i); - }catch (NumberFormatException e){ - System.out.println("error"); - } - } - public static void main(String[] args){ - exceptionDemo(); - exceptionDemo1(); - } -} - -``` - -#### `Task16/Exception3.java` - -```java title="Task16/Exception3.java" -package Task16; - -import java.util.Scanner; - -public class Exception3 { - public static void exceptionDemo() { - try { - Scanner myScanner = new Scanner(System.in); - System.out.println("Enter an integer "); - String intString = myScanner.next(); - int i = Integer.parseInt(intString); - System.out.println(2 / i); - } catch (Exception e) { - System.err.println("error"); - } - } - public static void main(String[] args){ - exceptionDemo(); - } -} - -``` - -#### `Task16/Exception4.java` - -```java title="Task16/Exception4.java" -package Task16; - -import java.util.Scanner; - -public class Exception4 { - public static void exceptionDemo(){ - try { - Scanner myScanner = new Scanner(System.in); - System.out.println("Enter an integer "); - String intString = myScanner.next(); - int i = Integer.parseInt(intString); - System.out.println(2/i); - }catch (NumberFormatException e){ - System.out.println("error"); - }finally { - System.out.println("Проверка работы блока finally"); - } - } - public static void main(String[] args){ - exceptionDemo(); - } -} - -``` - -#### `Task16/ThrowsDemo5.java` - -```java title="Task16/ThrowsDemo5.java" -package Task16; - -public class ThrowsDemo5 { - public static String getDetails1(String key){ - if (key == null) { - throw new NullPointerException("null key in getDetails"); - } - return key; - } - public static String getDetails(String key){ - try { - if (key == null){ - throw new NullPointerException("null key in getDetails"); - - } - }catch (NullPointerException e){} - return "data " + key; - } - public static void main(String[] args){ - System.out.println(getDetails(null)); - System.out.println(getDetails1(null)); - } -} - -``` - -#### `Task16/ThrowsDemo6.java` - -```java title="Task16/ThrowsDemo6.java" -package Task16; -public class ThrowsDemo6 { - public void printMessage(String key){ - try { - String message = getDetails(key); - System.out.println(message); - }catch (Exception e){ - - } - System.out.println(key); - } - public String getDetails(String key){ - if (key == null){ - throw new NullPointerException("null key in getDetails"); - } - return "data for " + key; - } - public static void main(String[] args){ - ThrowsDemo6 n = new ThrowsDemo6(); - n.printMessage("tol"); - n.printMessage(null); - n.getDetails("kol"); - n.getDetails(null); - } -} - -``` - -#### `Task16/ThrowsDemo7.java` - -```java title="Task16/ThrowsDemo7.java" -package Task16; - -import java.util.*; - -public class ThrowsDemo7 { - public void getKey() throws Exception { - Scanner myScanner = new Scanner(System.in); - String key = myScanner.next(); - printDetails(key); - } - public void printDetails(String key) throws Exception { - String message = getDetails(key); - System.out.println(message); - - } - private String getDetails(String key) throws Exception { - if(Objects.equals(key, "!")){ - throw new Exception("Key set to empty string"); - } - return "data for " + key; - } - public static void main(String[] args) throws Exception { - ThrowsDemo7 n = new ThrowsDemo7(); - n.getKey(); - } -} - -``` - -#### `Task16/ThrowsDemo8.java` - -```java title="Task16/ThrowsDemo8.java" -package Task16; - -import java.util.Objects; -import java.util.Scanner; - -public class ThrowsDemo8 { - public void getKey() { - boolean r = true; - while (r) - try { - Scanner myScanner = new Scanner(System.in); - String key = myScanner.next(); - printDetails(key); - r = false; - }catch (Exception e){ - r = true; - } - } - public void printDetails(String key) throws Exception { - String message = getDetails(key); - System.out.println(message); - } - private String getDetails(String key) throws Exception { - if(Objects.equals(key,"!")){ - throw new Exception("Key set to empty string"); - } - return "data for " + key; - } - public static void main(String[] args) { - ThrowsDemo8 n = new ThrowsDemo8(); - n.getKey(); - } -} - -``` - - -## Описание - -В этом модуле используется 8 Java-файлов. Ключевые сущности: Exception1, Exception2, Exception3, Exception4, ThrowsDemo5, ThrowsDemo6. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 16 — Исключения документирует реальное решение из исходного кода. diff --git a/content/java/task-17-gui-and-exceptions.mdx b/content/java/task-17-gui-and-exceptions.mdx deleted file mode 100644 index 341108e..0000000 --- a/content/java/task-17-gui-and-exceptions.mdx +++ /dev/null @@ -1,367 +0,0 @@ ---- -title: Task 17 — GUI + исключения -sidebar_position: 18 -description: Связка UI-слоя, доменной логики и пользовательских ошибок. -slug: /java/task-17-gui-and-exceptions ---- - -## Задание - -Связка UI-слоя, доменной логики и пользовательских ошибок. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task17/EmptyStringException.java` -- `Task17/FIOINN.java` -- `Task17/LabClass.java` -- `Task17/LabClassDriver.java` -- `Task17/LabClassUI.java` -- `Task17/Proverka.java` -- `Task17/Student.java` -- `Task17/StudentNotFoundException.java` - -#### `Task17/EmptyStringException.java` - -```java title="Task17/EmptyStringException.java" -package Task17; - -import javax.swing.*; - -public class EmptyStringException extends IllegalArgumentException { - public EmptyStringException(LabClassUI t) { - JOptionPane.showMessageDialog(t, "Введите необходимые данные в поле ввода!"); - } -} - - - -``` - -#### `Task17/FIOINN.java` - -```java title="Task17/FIOINN.java" -package Task17; - -import java.util.Scanner; - -public class FIOINN { - public void red() { - System.out.println("Введите ФИО"); - Scanner fi = new Scanner(System.in); - String fio = fi.nextLine(); - System.out.println("Введите ИНН"); - Scanner in = new Scanner(System.in); - String[] inn = in.nextLine().split(""); - try { - if (inn.length == 12) { - System.out.println("ИНН " + fio + " верный!"); - } else { - throw new Proverka(fio); - } - }catch (Proverka e){ - System.out.println(e.getMessage()); - } - } - public static void main(String[] args){ - FIOINN n = new FIOINN(); - n.red(); - } -} - -``` - -#### `Task17/LabClass.java` - -```java title="Task17/LabClass.java" -package Task17; - -import java.util.ArrayList; - -public class LabClass { - public static void main(String[] args) { - ArrayList new_stud = new ArrayList<>(); - new_stud.add(new Student("Иванов Иван Иванович", 123456, 4.0)); - new LabClassUI(new_stud); - } -} - - -``` - -#### `Task17/LabClassDriver.java` - -```java title="Task17/LabClassDriver.java" -package Task17; - -import java.util.ArrayList; - -public class LabClassDriver { - public int compare(Student stud1, Student stud2) { - return Double.compare(stud1.getGPA(),stud2.getGPA()); - } - public void quick_sort(ArrayList arr, int begin, int end) { - if (begin < end) { - int partIndex = part(arr, begin, end); - quick_sort(arr, begin, partIndex-1); - quick_sort(arr, partIndex+1, end); - } - } - public int part(ArrayList arr, int begin, int end) { - Student pt = arr.get(end); - int i = (begin - 1); - for (int j = begin; j < end; j++) { - if (compare(arr.get(j), pt) >= 0) { - i++; - Student swapTemp = arr.get(i); - arr.set(i, arr.get(j)); - arr.set(j, swapTemp); - } - } - Student swapt = arr.get(i + 1); - arr.set(i + 1, arr.get(end)); - arr.set(end, swapt); - return i + 1; - } -} - - - -``` - -#### `Task17/LabClassUI.java` - -```java title="Task17/LabClassUI.java" -package Task17; - -import javax.swing.*; -import javax.swing.event.MouseInputListener; -import javax.swing.table.DefaultTableModel; -import javax.swing.table.JTableHeader; -import java.awt.*; -import java.awt.event.MouseEvent; -import java.util.ArrayList; - -public class LabClassUI extends JFrame { - - private ArrayList students_arr; - private JTable table; - - public LabClassUI(ArrayList students_arr){ - super("Сведения о студентах"); - setDefaultCloseOperation(EXIT_ON_CLOSE); - setSize(520, 330); - setResizable(false); - this.students_arr = students_arr; - JPanel panel = new JPanel(new FlowLayout()); - JButton add_btn = new JButton("Добавить"); - JButton sort_btn = new JButton("Отсортировать по GPA"); - JButton search_btn = new JButton("Поиск"); - panel.add(add_btn); - panel.add(search_btn); - panel.add(sort_btn); - - Object [][] exist_stud = new String[students_arr.size()][3]; - for(int i = 0; i < students_arr.size(); i++){ - exist_stud[i][0] = students_arr.get(i).getFio(); - exist_stud[i][1] = ((Integer)(students_arr.get(i).getiDNumber())).toString(); - exist_stud[i][2] = ((Double)(students_arr.get(i).getGPA())).toString(); - } - table = new JTable( new DefaultTableModel(exist_stud, new String[] {"ФИО", "Номер", "GPA"})){ - @Override - public boolean isCellEditable(int x, int y) {return false; } - }; - JTableHeader header = table.getTableHeader(); - header.setReorderingAllowed(false); - header.setResizingAllowed(false); - add_btn.addActionListener(e -> { - try { - add(); - }catch (IllegalArgumentException ex){ - JOptionPane.showMessageDialog(this, ex.getMessage()); - } - }); - search_btn.addActionListener(e->{ - try{ - find(); - } catch (StudentNotFoundException ex){ - JOptionPane.showMessageDialog(this, ex.getMessage()); - } - }); - sort_btn.addMouseListener(new MouseInputListener() { - @Override - public void mouseClicked(MouseEvent e) { - LabClassDriver ms = new LabClassDriver(); - ms.quick_sort(students_arr,0,students_arr.size()-1); - DefaultTableModel table_mod = (DefaultTableModel) table.getModel(); - for(int i = 0; i { - private T a; - private V b; - - public Calculator(T a, V b) { - this.a=a; - this.b=b; - } - - public double sum(){ - return a.doubleValue()+b.doubleValue(); - } - public double multiply(){ - return a.doubleValue()*b.doubleValue(); - } - public double divide(){ - return a.doubleValue()-b.doubleValue(); - } - public double subtraction(){ - - return a.doubleValue() / b.doubleValue(); - - } - public static void main(String[] args){ - Calculator r = new Calculator<>(1, 0); - System.out.println("Сумма: "+r.sum()); - System.out.println("Вычитание: " + r.divide()); - System.out.println("Умножение: " +r.multiply()); - System.out.println("Деление: " + r.subtraction()); - } -} - -``` - -#### `Task18/Exeption1.java` - -```java title="Task18/Exeption1.java" -package Task18; - -public class Exeption1{ - private T v1; - private V v2; - private K v3; - - public Exeption1(T v1, V v2, K v3) { - this.v1 = v1; - this.v2 = v2; - this.v3 = v3; - } - - public T getV1() { - return v1; - } - - public void setV1(T v1) { - this.v1 = v1; - } - - public V getV2() { - return v2; - } - - public void setV2(V v2) { - this.v2 = v2; - } - - public K getV3() { - return v3; - } - - public void setV3(K v3) { - this.v3 = v3; - } - - @Override - public String toString() { - return "{" + v1 +" (" + v1.getClass() +")"+ '\n' + - v2 + " ("+v2.getClass() +")" +'\n'+ - v3+" (" + v3.getClass() +")"+ - '}'; - } - public static void main(String[] args){ - Exeption1 t = new Exeption1<>("Test", new Animal(), 5); - System.out.println(t.toString()); - } -} - -``` - -#### `Task18/Matrix.java` - -```java title="Task18/Matrix.java" -package Task18; - -public class Matrix { - private T[][] a; - private T[][] b; - public Matrix(T[][] a, T[][] b){ - this.a=a; - this.b=b; - } - public void sum(){ - System.out.println("Сумма: "); - for(int i=0; i arr = new Matrix<>(arra, arrb); - arr.print(); - arr.sum(); - arr.multi(); - } -} - -``` - -#### `Task18/MinMax.java` - -```java title="Task18/MinMax.java" -package Task18; - -public class MinMax >{ - private T[] array; - - public MinMax(T[] array) { - this.array = array; - } - public T min(){ - T min = array[0]; - for(int i=0; i0){ - max=array[i]; - } - } - return max; - } - public static void main(String[] args){ - MinMax m = new MinMax<>(new Integer[] {5, 2, 3, 4, 5,10}); - System.out.println("min: "+m.min()); - System.out.println("max: "+m.max()); - } -} - -``` - - -## Описание - -В этом модуле используется 5 Java-файлов. Ключевые сущности: Animal, Calculator, Exeption1, Matrix, MinMax. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 18 — Утилиты и валидация документирует реальное решение из исходного кода. diff --git a/content/java/task-19-filesystem-operations.mdx b/content/java/task-19-filesystem-operations.mdx deleted file mode 100644 index b457d82..0000000 --- a/content/java/task-19-filesystem-operations.mdx +++ /dev/null @@ -1,146 +0,0 @@ ---- -title: Task 19 — Операции с файловой системой -sidebar_position: 20 -description: Просмотр директорий и работа с файловым деревом. -slug: /java/task-19-filesystem-operations ---- - -## Задание - -Просмотр директорий и работа с файловым деревом. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task19/conversion.java` -- `Task19/DirectoryListing.java` -- `Task19/storage.java` - -#### `Task19/conversion.java` - -```java title="Task19/conversion.java" -package Task19; - -import java.util.ArrayList; - -public class conversion { - public static ArrayList convertArrToList(T[] arr){ - ArrayList conversion_list = new ArrayList<>(); - for (int i = 0; i < arr.length; i++) { - conversion_list.add((T) arr[i]); - } - return conversion_list; - } - public static void main(String[] args){ - Integer[] arr = new Integer[] {1,2,3,4,56,7,8}; - System.out.println(convertArrToList(arr)); - } -} - -``` - -#### `Task19/DirectoryListing.java` - -```java title="Task19/DirectoryListing.java" -package Task19; - -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -public class DirectoryListing { - public static void main(String[] args) { - String directoryPath = "D:\\Учеба\\3 семестр\\Java"; - - List fileList = listFiles(directoryPath); - - for (int i = 0; i < Math.min(5, fileList.size()); i++) { - System.out.println(fileList.get(i)); - } - } - public static List listFiles(String directoryPath) { - List fileList = new ArrayList<>(); - - File directory = new File(directoryPath); - - File[] files = directory.listFiles(); - - if (files != null && files.length > 0) { - System.out.println("Первые 5 элементов каталога:"); - - fileList = Arrays.asList(files).stream().map(File::getName).toList(); - } else { - System.out.println("Каталог пуст или не существует."); - } - - return fileList; - } -} -``` - -#### `Task19/storage.java` - -```java title="Task19/storage.java" -package Task19; - -public class storage { - private T[] array; - public storage(int size) { - this.array = (T[]) new Object[size]; - } - - public void setElement(int index, T value) { - array[index] = value; - } - - public T getElement(int index) { - return array[index]; - } - - public int getSize() { - return array.length; - } - public String toString(){ - for(int i =0; i< array.length;i++){ - System.out.println(array[i]); - } - return null; - } - - public static void main(String[] args) { - // Пример использования - storage intArray = new storage<>(5); - intArray.setElement(0, 1); - intArray.setElement(1, 2); - intArray.setElement(2, 3); - - System.out.println("Элемент 1: " + intArray.getElement(1)); - intArray.toString(); - - storage stringArray = new storage<>(3); - stringArray.setElement(0, "Hello"); - stringArray.setElement(1, "World"); - - System.out.println("Элемент 0: " + stringArray.getElement(0)); - stringArray.toString(); - } - } - -``` - - -## Описание - -В этом модуле используется 3 Java-файлов. Ключевые сущности: conversion, DirectoryListing, storage. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 19 — Операции с файловой системой документирует реальное решение из исходного кода. diff --git a/content/java/task-20-calculator-oop.mdx b/content/java/task-20-calculator-oop.mdx deleted file mode 100644 index 7355c19..0000000 --- a/content/java/task-20-calculator-oop.mdx +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Task 20 — Калькулятор (ООП) -sidebar_position: 21 -description: ООП-реализация калькулятора с обработкой исключений. -slug: /java/task-20-calculator-oop ---- - -## Задание - -ООП-реализация калькулятора с обработкой исключений. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task20/calculator.java` - -#### `Task20/calculator.java` - -```java title="Task20/calculator.java" -package Task20; - -import java.util.Scanner; -import java.util.Stack; - -public class calculator { - public static void main(String[] args) throws Exception { - Stack stack = new Stack<>(); - System.out.println("Введите число в RPN:"); - Scanner sc = new Scanner(System.in); - String str = sc.nextLine(); - String[] elem = str.split(" "); - for(int i =0;i< elem.length;i++){ - Double a = 0.0; - Double b = 0.0; - switch (elem[i]){ - case "+": - a = stack.pop(); - b = stack.pop(); - stack.push(b+a); - break; - case "-": - a = stack.pop(); - b = stack.pop(); - stack.push(b-a); - break; - case "*": - a = stack.pop(); - b = stack.pop(); - stack.push(a*b); - break; - case "/": - a = stack.pop(); - b = stack.pop(); - if(a!=0) - stack.push(b/a); - else { - throw new Exception("деление на ноль "); - } - break; - default: - stack.push(Double.parseDouble(elem[i])); - } - } - System.out.println(stack.pop()); - } -} - -``` - - -## Описание - -В этом модуле используется 1 Java-файлов. Ключевые сущности: calculator. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 20 — Калькулятор (ООП) документирует реальное решение из исходного кода. diff --git a/content/java/task-21-queue-adts.mdx b/content/java/task-21-queue-adts.mdx deleted file mode 100644 index ee4c904..0000000 --- a/content/java/task-21-queue-adts.mdx +++ /dev/null @@ -1,342 +0,0 @@ ---- -title: Task 21 — Queue ADT -sidebar_position: 22 -description: Абстрактные типы данных и разные реализации очереди. -slug: /java/task-21-queue-adts ---- - -## Задание - -Абстрактные типы данных и разные реализации очереди. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task21/AbstractQueue.java` -- `Task21/ArrayQueue.java` -- `Task21/ArrayQueueADT.java` -- `Task21/ArrayQueueModule.java` -- `Task21/LinkedQueue.java` -- `Task21/Queue.java` -- `Task21/TestArray.java` -- `Task21/TestLinked.java` - -#### `Task21/AbstractQueue.java` - -```java title="Task21/AbstractQueue.java" -package Task21; - -public class AbstractQueue { - protected int rear, front; -} - -``` - -#### `Task21/ArrayQueue.java` - -```java title="Task21/ArrayQueue.java" -package Task21; - -public class ArrayQueue { - int SIZE = 5; - int[] arr; - int front, rear; - int count; - - public ArrayQueue(){ - arr = new int[SIZE]; - front=rear=-1; - count = 0; - } - public void enqueue(int element){ - if(count==SIZE){ - throw new IllegalStateException("Переполнение массива"); - } - if(isEmpty()){ - front=rear=0; - }else{ - rear=(rear+1)%SIZE; - } - arr[rear] = element; - count++; - } - public int element(){ - if (isEmpty()) { - throw new IllegalStateException("Queue is empty"); - } - return arr[front]; - } - - public int dequeue() { - if (isEmpty()) { - throw new IllegalStateException("Queue is empty"); - } - int value = arr[front]; - if (front == rear) { - front = rear = -1; - } else { - front = (front + 1) % SIZE; - } - - count--; - return value; - } - - public int size() { - return count; - } - public void clear() { - front = rear = -1; - count = 0; - } - public boolean isEmpty(){ - if (front==-1){ - return true; - }else { - return false; - } - } -} - -``` - -#### `Task21/ArrayQueueADT.java` - -```java title="Task21/ArrayQueueADT.java" -package Task21; - -public class ArrayQueueADT { - public ArrayQueueADT(ArrayQueueModule queue){ - this.queue = queue; - } - private ArrayQueueModule queue; - public void enqueue(int elemen) { - queue.enqueue(elemen); - } - public int element(){ - return queue.element(); - } - public int dequeue(){ - return queue.dequeue(); - } - public int size(){ - return queue.size(); - } - public void clear(){ - queue.clear(); - } - public boolean isEmpty(){ - return queue.isEmpty(); - } -} - -``` - -#### `Task21/ArrayQueueModule.java` - -```java title="Task21/ArrayQueueModule.java" -package Task21; - -public class ArrayQueueModule { - int SIZE = 5; - int[] arr; - int front, rear; - int count; - - public ArrayQueueModule(){ - arr = new int[SIZE]; - front=rear=-1; - count = 0; - } - public void enqueue(int element){ - if(count==SIZE){ - throw new IllegalStateException("Переполнение массива"); - } - if(isEmpty()){ - front=rear=0; - }else{ - rear=(rear+1)%SIZE; - } - arr[rear] = element; - count++; - } - public int element(){ - if (isEmpty()) { - throw new IllegalStateException("Queue is empty"); - } - return arr[front]; - } - - public int dequeue() { - if (isEmpty()) { - throw new IllegalStateException("Queue is empty"); - } - int value = arr[front]; - if (front == rear) { - front = rear = -1; - } else { - front = (front + 1) % SIZE; - } - - count--; - return value; - } - - public int size() { - return count; - } - public void clear() { - front = rear = -1; - count = 0; - } - public boolean isEmpty(){ - if (front==-1){ - return true; - }else { - return false; - } - } -} - -``` - -#### `Task21/LinkedQueue.java` - -```java title="Task21/LinkedQueue.java" -package Task21; - - -import java.util.LinkedList; - -public class LinkedQueue extends AbstractQueue implements Queue { - private LinkedList queue; - public LinkedQueue(){ - queue=new LinkedList<>(); - front=0; - rear=0; - } - @Override - public void enqueue(Object o) { - queue.add(o); - rear++; - } - - @Override - public Object element() { - if(isEmpty())throw new IndexOutOfBoundsException("Массив пуст!!"); - return queue.get(front); - } - @Override - public Object dequeue() { - if (isEmpty()) throw new IndexOutOfBoundsException("Массив пуст!!"); - System.out.println(front+" "+rear); - return queue.remove(front); - } - - @Override - public boolean isEmpty() { - return queue.isEmpty(); - } - - @Override - public boolean clear() { - queue.clear(); - front=0; - rear=0; - return false; - } -} - -``` - -#### `Task21/Queue.java` - -```java title="Task21/Queue.java" -package Task21; - -public interface Queue { - void enqueue(Object o); - Object element(); - Object dequeue(); - boolean isEmpty(); - boolean clear(); -} - -``` - -#### `Task21/TestArray.java` - -```java title="Task21/TestArray.java" -package Task21; - -public class TestArray { - public static void main(String[] args) { - ArrayQueueModule m = new ArrayQueueModule(); - // b.dequeue(); - m.enqueue(1); - m.enqueue(2); - m.enqueue(3); - m.enqueue(1); - m.enqueue(2); - System.out.println(m.size()); - System.out.println(m.element()); - System.out.println(m.dequeue()); - System.out.println(m.isEmpty()); - ArrayQueueADT a = new ArrayQueueADT(m); - System.out.println(a.size()); - System.out.println(a.element()); - System.out.println(a.dequeue()); - System.out.println(a.isEmpty()); - ArrayQueue q = new ArrayQueue(); - q.enqueue(1); - q.enqueue(2); - q.enqueue(3); - q.enqueue(1); - q.enqueue(2); - System.out.println(q.size()); - System.out.println(q.element()); - System.out.println(q.dequeue()); - System.out.println(q.isEmpty()); - } -} - -``` - -#### `Task21/TestLinked.java` - -```java title="Task21/TestLinked.java" -package Task21; - -public class TestLinked { - public static void main(String[] args){ - LinkedQueue l = new LinkedQueue(); - l.enqueue(1); - l.enqueue(3); - l.enqueue(2); - System.out.println(l.dequeue()); - //System.out.println(l.element()); - System.out.println(l.dequeue()); - System.out.println("Пустой ли массив ? "+l.isEmpty()); - //System.out.println(l.clear()); - System.out.println(l.dequeue()); - System.out.println("Пустой ли массив ? "+l.isEmpty()); - } -} - -``` - - -## Описание - -В этом модуле используется 8 Java-файлов. Ключевые сущности: AbstractQueue, ArrayQueue, ArrayQueueADT, ArrayQueueModule, LinkedQueue, Queue. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 21 — Queue ADT документирует реальное решение из исходного кода. diff --git a/content/java/task-22-design-patterns.mdx b/content/java/task-22-design-patterns.mdx deleted file mode 100644 index 18ad86d..0000000 --- a/content/java/task-22-design-patterns.mdx +++ /dev/null @@ -1,611 +0,0 @@ ---- -title: Task 22 — Паттерны проектирования -sidebar_position: 23 -description: Factory, Abstract Factory и MVC в прикладных задачах. -slug: /java/task-22-design-patterns ---- - -## Задание - -Factory, Abstract Factory и MVC в прикладных задачах. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task22/one/Complex.java` -- `Task22/one/ComplexAbstractFactory.java` -- `Task22/one/ConcreteFactory.java` -- `Task22/one/TestComplex.java` -- `Task22/three/CarcasController.java` -- `Task22/three/CarcasModel.java` -- `Task22/three/CarcasView.java` -- `Task22/three/CreateTextDoc.java` -- `Task22/three/ICreateDocument.java` -- `Task22/three/IDocument.java` -- `Task22/three/TestWindow.java` -- `Task22/three/TextDocument.java` -- `Task22/two/AbstractChairFactory.java` -- `Task22/two/Chair.java` -- `Task22/two/ChairFactory.java` -- `Task22/two/Client.java` -- `Task22/two/FunctionalChair.java` -- `Task22/two/MagicChair.java` -- `Task22/two/TestChair.java` -- `Task22/two/VictorianChair.java` - -#### `Task22/one/Complex.java` - -```java title="Task22/one/Complex.java" -package Task22.one; - -public class Complex { - private int real; - private int image; - public Complex(){ - this.real=0; - this.image=0; - } - public Complex(int real, int image) { - this.real=real; - this.image=image; - } - public int getReal() { - return real; - } - public void setReal(int real) { - this.real = real; - } - public int getImage() { - return image; - } - public void setImage(int image) { - this.image = image; - } - @Override - public String toString() { - return "Комплексное число = "+ real + - " + " + image + "i"; - } -} - -``` - -#### `Task22/one/ComplexAbstractFactory.java` - -```java title="Task22/one/ComplexAbstractFactory.java" -package Task22.one; - -public interface ComplexAbstractFactory { - Complex createComplex(); - Complex CreateComplex(int real, int image); -} - -``` - -#### `Task22/one/ConcreteFactory.java` - -```java title="Task22/one/ConcreteFactory.java" -package Task22.one; - -public class ConcreteFactory implements ComplexAbstractFactory { - @Override - public Complex createComplex() { - return new Complex(); - } - @Override - public Complex CreateComplex(int real, int image) { - return new Complex(real, image); - } -} - -``` - -#### `Task22/one/TestComplex.java` - -```java title="Task22/one/TestComplex.java" -package Task22.one; - -public class TestComplex { - public static void main(String[] args){ - ComplexAbstractFactory c = new ConcreteFactory(); - System.out.println(c.CreateComplex(1,7)); - System.out.println(c.createComplex()); - } -} - -``` - -#### `Task22/three/CarcasController.java` - -```java title="Task22/three/CarcasController.java" -package Task22.three; -import javax.swing.*; -import java.io.FileNotFoundException; -import java.io.IOException; -public class CarcasController { - private final CarcasModel model; - private final CarcasView view; - public CarcasController() { - this.model = new CarcasModel(); - this.view = new CarcasView<>(); - - view.addNewListener(e -> { - model.setDocument(new CreateTextDoc().CreateNew()); - view.showDocText((TextDocument) model.getDocument()); - }); - - view.addOpenListener(e -> { - try { - model.setDocument(new CreateTextDoc().CreateOpen(((CarcasView.openDocA) e).getPath())); - view.showDocText((TextDocument) model.getDocument()); - } catch (FileNotFoundException exc) { - JOptionPane.showMessageDialog(view, "File does not exist"); - } - }); - - view.addSaveListener(e -> { - var document = ((CarcasView.saveDocA)e).getDocument(); - System.out.println("Saved"); - try { - document.save(); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - }); - } - - void showWindow() { - this.view.setVisible(true); - } - } - - - -``` - -#### `Task22/three/CarcasModel.java` - -```java title="Task22/three/CarcasModel.java" -package Task22.three; - -public class CarcasModel { - private IDocument document; - - public CarcasModel() { - } - - public CarcasModel(IDocument document) { - this.document = document; - } - - public IDocument getDocument() { - return document; - } - - public void setDocument(IDocument document) { - this.document = document; - } - -} - -``` - -#### `Task22/three/CarcasView.java` - -```java title="Task22/three/CarcasView.java" -package Task22.three; -import javax.swing.*; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; -import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; -import java.util.ArrayList; - -public class CarcasView extends JFrame { - IDocument doc; - class newDocA extends ActionEvent { - public newDocA(Object obj) { - super(obj, 0, ""); - } - } - class openDocA extends ActionEvent { - private String path; - - public String getPath() { - return path; - } - public openDocA(Object source, String path) { - super(source, 0, ""); - this.path = path; - } - } - JMenuBar menu = new JMenuBar(); - ArrayList saveListener = new ArrayList<>(); - ArrayList newListener = new ArrayList<>(); - ArrayList openListener = new ArrayList<>(); - class saveDocA extends ActionEvent { - private IDocument doc; - public saveDocA(Object obj, IDocument doc) { - super(obj, 0, ""); - this.doc = doc; - } - public IDocument getDocument() { - return doc; - } - } - - void addNewListener(ActionListener actionListener) { - newListener.add(actionListener); - } - void addOpenListener(ActionListener actionListener) { - openListener.add(actionListener); - } - void addSaveListener(ActionListener actionListener) { - saveListener.add(actionListener); - } - void setOpenDoc(String path) { - for (ActionListener actionListener: openListener) { - actionListener.actionPerformed(new openDocA(this, path)); - } - } - - void setNewDoc() { - for (ActionListener actionListener: newListener) { - actionListener.actionPerformed(new newDocA(this)); - } - } - - void setSaveDoc() { - for (ActionListener actionListener: saveListener) { - actionListener.actionPerformed(new saveDocA(this, doc)); - } - } - - CarcasView() { - setTitle("Каркас"); - setDefaultCloseOperation(EXIT_ON_CLOSE); - setSize(400, 200); - JMenu fileItem = new JMenu("Файл"); - - JMenuItem newPosition = new JMenuItem("Создать"); - newPosition.addActionListener(e -> { - setNewDoc(); - }); - - JMenuItem openPosition = new JMenuItem("Открыть"); - openPosition.addActionListener(e -> { - JFileChooser file_choose = new JFileChooser(); - if (file_choose.showDialog(getContentPane(), "OK") == JFileChooser.APPROVE_OPTION) { - setOpenDoc(file_choose.getSelectedFile().getAbsolutePath()); - } - }); - - JMenuItem savePosition = new JMenuItem("Сохранить"); - savePosition.addActionListener(e -> { - setSaveDoc(); - }); - - JMenuItem exitPosition = new JMenuItem("Выход"); - exitPosition.addActionListener(e -> { - setVisible(false); - }); - fileItem.add(newPosition); - fileItem.add(openPosition); - fileItem.add(savePosition); - fileItem.add(exitPosition); - menu.add(fileItem); - setJMenuBar(menu); - setBounds(0, 0, 390, 200); - } - - void showDocText(TextDocument textDocument) { - this.doc = (IDocument) textDocument; - setTitle("Текущий документ - " + textDocument.getName()); - getContentPane().removeAll(); - repaint(); - JTextArea textFieldBig = new JTextArea(textDocument.getContent()); - textFieldBig.getDocument().addDocumentListener(new DocumentListener() { - @Override - public void insertUpdate(DocumentEvent documentEvent) { - ((TextDocument)doc).setContent(textFieldBig.getText()); - } - @Override - public void removeUpdate(DocumentEvent documentEvent) { - ((TextDocument)doc).setContent(textFieldBig.getText()); - } - @Override - public void changedUpdate(DocumentEvent documentEvent) { - ((TextDocument)doc).setContent(textFieldBig.getText()); - } - }); - add(textFieldBig); - setBounds(0, 0, 450, 200); - } - -} - -``` - -#### `Task22/three/CreateTextDoc.java` - -```java title="Task22/three/CreateTextDoc.java" -package Task22.three; - -import java.io.*; -import java.util.stream.Collectors; - -public class CreateTextDoc implements ICreateDocument{ - public IDocument CreateNew() { - return (IDocument) new TextDocument("Безымянный"); - } - - @Override - public IDocument CreateOpen(String path) throws FileNotFoundException { - BufferedReader file = new BufferedReader(new FileReader(path)); - return (IDocument) new TextDocument(path, file.lines().collect(Collectors.joining("\n"))); - } - -} - -``` - -#### `Task22/three/ICreateDocument.java` - -```java title="Task22/three/ICreateDocument.java" -package Task22.three; -import java.io.*; -public interface ICreateDocument { - IDocument CreateNew(); - IDocument CreateOpen(String path) throws FileNotFoundException; - -} - -``` - -#### `Task22/three/IDocument.java` - -```java title="Task22/three/IDocument.java" -package Task22.three; - -import java.io.IOException; - -public interface IDocument { - String getName(); - void setName(String name); - String getContent(); - void setContent(String content); - - void save() throws IOException; - -} - -``` - -#### `Task22/three/TestWindow.java` - -```java title="Task22/three/TestWindow.java" -package Task22.three; - -import javax.swing.*; - -public class TestWindow { - public static void main(String[] args) { - try { - UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); - } catch (Exception ignored){} - - CarcasController controller = new CarcasController(); - controller.showWindow(); - } -} - - - -``` - -#### `Task22/three/TextDocument.java` - -```java title="Task22/three/TextDocument.java" -package Task22.three; - -import java.io.*; - -public class TextDocument implements IDocument{ - private String text; - private String name; - - TextDocument(String name) { - this.name = name; - } - - TextDocument(String name, String text) { - this.name = name; - this.text = text; - } - @Override - public String getName() { - return name; - } - @Override - public void setName(String name) { - this.name = name; - } - @Override - public String getContent() { - return text; - } - @Override - public void setContent(String text) { - this.text = text; - } - @Override - public void save() throws IOException { - BufferedWriter writer = new BufferedWriter(new FileWriter(name)); - writer.write(text); - writer.close(); - } - -} - -``` - -#### `Task22/two/AbstractChairFactory.java` - -```java title="Task22/two/AbstractChairFactory.java" -package Task22.two; - -public interface AbstractChairFactory { - VictorianChair createVictorianChair(); - MagicChair createMagicanChair(); - FunctionalChair createFunctionalChair(); -} - -``` - -#### `Task22/two/Chair.java` - -```java title="Task22/two/Chair.java" -package Task22.two; - -public interface Chair { -} - -``` - -#### `Task22/two/ChairFactory.java` - -```java title="Task22/two/ChairFactory.java" -package Task22.two; - -public class ChairFactory implements AbstractChairFactory { - - @Override - public VictorianChair createVictorianChair() { - return new VictorianChair(35); - } - - @Override - public MagicChair createMagicanChair() { - return new MagicChair(); - } - @Override - public FunctionalChair createFunctionalChair() { - return new FunctionalChair(); - } -} - -``` - -#### `Task22/two/Client.java` - -```java title="Task22/two/Client.java" -package Task22.two; - -import Task22.two.Chair; - -public class Client implements Chair { - Chair chair; - public void sit(){ - System.out.println("Клиент сел на стул."); - } - public void setChair(Chair chair){ - this.chair=chair; - } -} - -``` - -#### `Task22/two/FunctionalChair.java` - -```java title="Task22/two/FunctionalChair.java" -package Task22.two; -public class FunctionalChair implements Chair { - public int sum(int a, int b){ - return a+b; - } -} - -``` - -#### `Task22/two/MagicChair.java` - -```java title="Task22/two/MagicChair.java" -package Task22.two; -public class MagicChair implements Chair { - public void doMagic(){ - System.out.println("Магический стул"); - } -} - -``` - -#### `Task22/two/TestChair.java` - -```java title="Task22/two/TestChair.java" -package Task22.two; - -import java.util.Scanner; - -public class TestChair { - public static void main(String[] args){ - AbstractChairFactory af = new ChairFactory(); - Scanner s = new Scanner(System.in); - Client c = new Client(); - System.out.println("Введите 1если нужен старинный стул, 2если нужен магический стул, 3если нужен функциональный стул."); - int a = s.nextInt(); - if (a ==1){ - VictorianChair v = af.createVictorianChair(); - System.out.println(v.getAge()+" лет"); - } - if (a ==2){ - MagicChair m = af.createMagicanChair(); - m.doMagic(); - } - if (a==3){ - FunctionalChair f = af.createFunctionalChair(); - System.out.println("Сумма = "+f.sum(39,12)); - } - if (a==1||a==2||a==3){ - c.sit(); - }else{ - System.out.println("В каталоге нет такого вида стульев"); - } - } -} - -``` - -#### `Task22/two/VictorianChair.java` - -```java title="Task22/two/VictorianChair.java" -package Task22.two; - -public class VictorianChair implements Chair { - private int age; - public VictorianChair(int age) { - this.age = age; - } - - public int getAge() { - return age; - } -} - - -``` - - -## Описание - -В этом модуле используется 20 Java-файлов. Ключевые сущности: Complex, ComplexAbstractFactory, ConcreteFactory, TestComplex, CarcasController, CarcasModel. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 22 — Паттерны проектирования документирует реальное решение из исходного кода. diff --git a/content/java/task-23-orders-and-menu.mdx b/content/java/task-23-orders-and-menu.mdx deleted file mode 100644 index 8cb5863..0000000 --- a/content/java/task-23-orders-and-menu.mdx +++ /dev/null @@ -1,285 +0,0 @@ ---- -title: Task 23 — Заказы и меню -sidebar_position: 24 -description: Моделирование меню, заказов и интерфейсов предметной области. -slug: /java/task-23-orders-and-menu ---- - -## Задание - -Моделирование меню, заказов и интерфейсов предметной области. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `Task23/Dish.java` -- `Task23/Drink.java` -- `Task23/InternetOrder.java` -- `Task23/Item.java` -- `Task23/Order.java` -- `Task23/Test.java` - -#### `Task23/Dish.java` - -```java title="Task23/Dish.java" -package Task23; - -public final class Dish implements Item{ - private int coast; - private String name; - private String description; - Dish(String name,String description){ - this.coast = 0; - this.name = name; - this.description = description; - } - Dish(int coast,String name,String description){ - this.coast = coast; - this.name = name; - this.description = description; - } - @Override - public int getCoast() { - return coast; - } - @Override - public String getName() { - return name; - } - @Override - public String getDescription() { - return description; - } - - @Override - public void setCoast(int coast) { - this.coast = coast; - } - - @Override - public void setName(String name) { - this.name = name; - - } - @Override - public void setDescription(String description) { - this.description = description; - } - public String toString(){ - return "Coast = " + getCoast() + ", name = " + getName() + ", description = " + getDescription() + "\n"; - } -} -``` - -#### `Task23/Drink.java` - -```java title="Task23/Drink.java" -package Task23; - -final class Drink implements Item{ - - private int coast; - private String name; - private String description; - Drink(String name,String description){ - this.coast = 0; - this.name = name; - this.description = description; - } - Drink(int coast,String name,String description){ - this.coast = coast; - this.name = name; - this.description = description; - } - @Override - public int getCoast() { - return coast; - } - @Override - public String getName() { - return name; - } - @Override - public String getDescription() { - return description; - } - - @Override - public void setCoast(int coast) { - this.coast = coast; - } - - @Override - public void setName(String name) { - this.name = name; - } - - @Override - public void setDescription(String description) { - this.description = description; - } -} - -``` - -#### `Task23/InternetOrder.java` - -```java title="Task23/InternetOrder.java" -package Task23; - -import java.util.ArrayList; -import java.util.List; - -public class InternetOrder { - private Order[] orders; - public Order getOrder(String name){ - return new Order(1); - } - public void addDish(Dish dish,String name){ - return; - } - public boolean removeOrder(String name){ - return true; - } - public int freeTableNumber(){ - return 0; - } - public int[] freeTableNumbers(){ - return new int[]{}; - } - public Order[] getOrders(){ - return new Order[]{}; - } - public double orderCoastSummary(){ - return 0.0; - } - public int dishQuantity(String dishName){ - return 0; - } -} - -``` - -#### `Task23/Item.java` - -```java title="Task23/Item.java" -package Task23; - -public interface Item { - public int getCoast(); - - public String getName(); - - public String getDescription(); - public void setCoast(int coast); - - public void setName(String name); - - public void setDescription(String description); -} - -``` - -#### `Task23/Order.java` - -```java title="Task23/Order.java" -package Task23; - - -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; -import java.util.stream.Collectors; - -public class Order { - private List items; - private int size; - private Dish[] dishes; - Order(int size){ - this.items = new ArrayList<>(); - } - public boolean add(Dish dish){ - return items.add(dish); - } - public boolean remove(String Name){ - for(int i = 0; i < items.size();i++){ - if(items.get(i).getName().equals(Name)){ - items.remove(i); - return true; - } - } - return false; - } - public int removaAll(String Name){ - int count = 0; - for (int i = 0; i < items.size();i++){ - Item temp = items.get(i); - if (temp.getName().equals(Name)){ - count++; - items.remove(i); - } - } - return count; - } - public int dishQuantity(){ - return items.size(); - } - public int dishQuantity(String Name){ - return (int) items.stream().filter(n->n.getName().equals(Name)).count(); - } - - public Dish[] getDishes() { - return items.toArray(new Dish[0]); - } - public double costTotal(){ - return items.stream().mapToDouble(Item::getCoast).sum(); - } - public String[] dishesName(){ - return new String[]{items.stream().filter(n -> n.getName() != "").toArray().toString()}; - } - public Dish[] sortedDishesByCostDesc(){ - return items.stream().sorted(Comparator.comparingInt(Item::getCoast)).toList().toArray(new Dish[0]); - } -} - -``` - -#### `Task23/Test.java` - -```java title="Task23/Test.java" -package Task23; - -import java.util.Arrays; - -public class Test { - public static void main(String[] args) { - Order order = new Order(5); - order.add(new Dish(450,"Оливье","Холодное блюдо")); - order.add(new Dish(300,"Лимонад","Напиток")); - order.add(new Dish(600,"Рёбра","Горячее блюдо")); - order.add(new Dish(400,"Борщ","Горячее блюдо")); - System.out.println(order.remove("Лимонад")); - System.out.println(order.dishQuantity()); - System.out.println(order.costTotal()); - System.out.println(order.dishQuantity("Борщ")); - System.out.println(Arrays.stream(order.sortedDishesByCostDesc()).toList().toString()); - } -} - -``` - - -## Описание - -В этом модуле используется 6 Java-файлов. Ключевые сущности: Dish, Drink, InternetOrder, Item, Order, Test. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 23 — Заказы и меню документирует реальное решение из исходного кода. diff --git a/content/java/task-24-final-order-system.mdx b/content/java/task-24-final-order-system.mdx deleted file mode 100644 index 737fccf..0000000 --- a/content/java/task-24-final-order-system.mdx +++ /dev/null @@ -1,1123 +0,0 @@ ---- -title: Task 24 — Финальный проект -sidebar_position: 25 -description: Расширенная система заказов с менеджерами и клиентскими сущностями. -slug: /java/task-24-final-order-system ---- - -## Задание - -Расширенная система заказов с менеджерами и клиентскими сущностями. Документация собрана по исходному коду этой практики. - -## Решение - -Полный код решения по этой практике: - -### Исходные файлы решения - -- `task24/Address.java` -- `task24/AlcohoTable.java` -- `task24/Customer.java` -- `task24/Dish.java` -- `task24/Drink.java` -- `task24/DrinkTypeEnum.java` -- `task24/InternetOrder.java` -- `task24/InternetOrdersManager.java` -- `task24/MenuItem.java` -- `task24/Order.java` -- `task24/OrdersManager.java` -- `task24/TableOrder.java` -- `task24/TableOrdersManager.java` -- `task24/Test.java` - -#### `task24/Address.java` - -```java title="task24/Address.java" -package task24; - -public final class Address extends Customer{ - private String cityName; - private int zipCode; - private String streetName; - private int buildingNumber; - private int buildingLetter; - private int apartmentNumber; - public Address EMPTY_ADDRESSS; - - public String getCityName() { - return cityName; - } - - public int getZipCode() { - return zipCode; - } - - public String getStreetName() { - return streetName; - } - - public int getBuildingNumber() { - return buildingNumber; - } - - public int getBuildingLetter() { - return buildingLetter; - } - - public int getApartmentNumber() { - return apartmentNumber; - } -} - -``` - -#### `task24/AlcohoTable.java` - -```java title="task24/AlcohoTable.java" -package task24; - -interface AlcohoTable { - public boolean isAlcoholicDrink(); - public double getAlcoholVol(); - -} - -``` - -#### `task24/Customer.java` - -```java title="task24/Customer.java" -package task24; - - -public class Customer implements Order { - private String firstName; - private String secondName; - private int age; - private Address address; - private Customer MATURE_UNKNOWN_CUSTOMER; - private Customer NOT_MATURE_UNKNOWN_CUSTOMER; - - public String getFirstName() { - return firstName; - } - - public String getSecondName() { - return secondName; - } - - public int getAge() { - return age; - } - - public Address getAddress() { - return address; - } - - @Override - public boolean add(MenuItem item) { - return false; - } - - @Override - public String[] itemsNames() { - return new String[0]; - } - - @Override - public int itemsQuantity() { - return 0; - } - - @Override - public int itemsQuantity(String itemName) { - return 0; - } - - @Override - public int itemsQuantity(MenuItem itemName) { - return 0; - } - - @Override - public Order[] getOrders() { - return new Order[0]; - } - - @Override - public int ordersCostSummary() { - return 0; - } - - @Override - public int ordersQuantity() { - return 0; - } - - @Override - public MenuItem[] getItems() { - return new MenuItem[0]; - } - - @Override - public boolean remove(MenuItem item) { - return false; - } - - @Override - public int removeAll(String itemName) { - return 0; - } - - @Override - public int removeAll(MenuItem item) { - return 0; - } - - @Override - public boolean remove(String itemName) { - return false; - } - - @Override - public int costTotal() { - return 0; - } - - @Override - public Customer getCustomer() { - return null; - } - - @Override - public Customer setCustomer(Customer customer) { - return null; - } -} - -``` - -#### `task24/Dish.java` - -```java title="task24/Dish.java" -package task24; - -import Task23.Item; - -import java.util.Comparator; -import java.util.Scanner; - -public final class Dish extends MenuItem { - private int coast; - private String name; - private String description; - Dish(String name,String description){ - super(); - if (name.isEmpty()){ - throw new IllegalArgumentException("Название блюда должно быть не пустым"); - } - else if (description.isEmpty()){ - throw new IllegalArgumentException("Описание должно быть не пустым"); - - }else { - this.coast = 0; - this.name = name; - this.description = description; - } - } - Dish(int coast,String name,String description){ - super(); - if (name.isEmpty()){ - throw new IllegalArgumentException("Название блюда должно быть не пустым"); - } - else if (description.isEmpty()){ - throw new IllegalArgumentException("Описание должно быть не пустым"); - - } - else if ( coast < 0){ - throw new IllegalArgumentException("Стоимость должны быть больше 0"); - - }else { - this.coast = coast; - this.name = name; - this.description = description; - } - } - public Dish(double cost, Scanner name, Scanner opis) { - super(); - } - - @Override - public int getCost() { - return coast; - } - - @Override - public String getName() { - return name; - } - - @Override - public String getDescription() { - return description; - } - -} - -``` - -#### `task24/Drink.java` - -```java title="task24/Drink.java" -package task24; - -import Task23.Item; - -final class Drink extends MenuItem implements AlcohoTable { - private double alcoholVol; - private DrinkTypeEnum type; - private int coast; - private String name; - private String description; - - public DrinkTypeEnum getType() { - return type; - } - Drink(String name,String description){ - if (name.isEmpty()){ - throw new IllegalArgumentException("Название блюда должно быть не пустым"); - } - else if (description.isEmpty()){ - throw new IllegalArgumentException("Описание должно быть не пустым"); - - }else { - this.coast = 0; - this.name = name; - this.description = description; - } - } - Drink(int coast,String name,String description){ - if (name.isEmpty()){ - throw new IllegalArgumentException("Название блюда должно быть не пустым"); - } - else if (description.isEmpty()){ - throw new IllegalArgumentException("Описание должно быть не пустым"); - - } - else if ( coast < 0){ - throw new IllegalArgumentException("Стоимость должны быть больше 0"); - - }else { - this.coast = coast; - this.name = name; - this.description = description; - } - } - Drink(int coast,String name,String description, int alcoholVol,DrinkTypeEnum type){ - if (name.isEmpty()){ - throw new IllegalArgumentException("Название блюда должно быть не пустым"); - } - else if (description.isEmpty()){ - throw new IllegalArgumentException("Описание должно быть не пустым"); - - } - else if ( coast < 0){ - throw new IllegalArgumentException("Стоимость должны быть больше 0"); - - }else { - this.coast = coast; - this.name = name; - this.description = description; - this.alcoholVol = alcoholVol; - this.type = type; - } - } - - @Override - public boolean isAlcoholicDrink() { - return false; - } - - @Override - public double getAlcoholVol() { - return 0; - } - - @Override - public int getCost() { - return coast; - } - - @Override - public String getName() { - return name; - } - - @Override - public String getDescription() { - return description; - } -} - -``` - -#### `task24/DrinkTypeEnum.java` - -```java title="task24/DrinkTypeEnum.java" -package task24; - -import java.util.Objects; - -public class DrinkTypeEnum { - public static String Proverc(String n){ - String t = ""; - if (Objects.equals(n, "AL")){ - t = "Предъявите паспор"; - } - return t; - } -} - -``` - -#### `task24/InternetOrder.java` - -```java title="task24/InternetOrder.java" -package task24; - -import java.util.HashMap; -import java.util.List; - -public class InternetOrder implements Order{ - private int size; - private ListNode head; - private ListNode tail; - class ListNode{ - private ListNode next; - private ListNode prev; - private MenuItem value; - ListNode(MenuItem value){ - this.next = null; - this.prev = null; - this.value = value; - } - - } - InternetOrder(int size){ - this.tail = null; - this.head = null; - this.size = size; - } - @Override - public boolean add(MenuItem item) { - ListNode node = new ListNode(item); - if(head == null){ - head = node; - tail = node; - return true; - }else{ - node.next = head; - head.prev = node; - head = node; - return true; - } - } - @Override - public String[] itemsNames() { - String str[] = new String[size]; - ListNode temp = head; - int i = 0; - while (temp != null & i < size){ - str[i] = temp.value.getName(); - i++; - temp = temp.next; - } - return str; - } - @Override - public int itemsQuantity() { - ListNode temp = head; - int count = 0; - while (temp != null){ - count++; - temp = temp.next; - } - return count; - } - @Override - public int itemsQuantity(String itemName) { - ListNode temp = head; - int count = 0; - while (temp != null){ - if(temp.value.getName().equals(itemName)) { - count++; - } - temp = temp.next; - } - return count; - } - - @Override - public int itemsQuantity(MenuItem itemName) { - ListNode temp = head; - int count = 0; - while (temp != null){ - if(temp.value.equals(itemName)) { - count++; - } - temp = temp.next; - } - return count; - } - - @Override - public Order[] getOrders() { - return orderManager.values().toArray(new Order[0]); - } - - @Override - public int ordersCostSummary() { - int sum = 0; - ListNode temp = head; - while (temp != null){ - sum += temp.value.getCost(); - temp = temp.next; - } - return sum; - } - - @Override - public int ordersQuantity() { - return orderManager.size(); - } - - @Override - public MenuItem[] getItems() { - return orderManager.values().toArray(new MenuItem[0]); - } - - @Override - public boolean remove(MenuItem item) { - if (head == null){ - return false; - } - if (head == tail && head.value.equals(item)){ - head = null; - tail = null; - return true; - } - ListNode temp = head; - while (temp != null & temp.value.equals(item)){ - temp = temp.next; - } - temp.prev.next = temp.next; - temp.next.prev = temp.prev; - temp.prev = null; - temp.next = null; - return true; - } - - @Override - public int removeAll(String itemName) { - if (head == null){ - return 0; - } - if (head == tail & head.value.getName().equals(itemName)){ - head = null; - tail = null; - return 1; - } - int count = 0; - ListNode temp = head; - while (temp != null){ - if(temp.value.getName().equals(itemName)){ - count++; - temp.prev.next = temp.next; - temp.next.prev = temp.prev; - temp.prev = null; - temp.next = null; - } - temp = temp.next; - } - return count; - } - - @Override - public int removeAll(MenuItem item) { - if (head == null){ - return 0; - } - if (head == tail & head.value.equals(item)){ - head = null; - tail = null; - return 1; - } - int count = 0; - ListNode temp = head; - while (temp != null){ - if(temp.value.equals(item)){ - count++; - temp.prev.next = temp.next; - temp.next.prev = temp.prev; - temp.prev = null; - temp.next = null; - } - temp = temp.next; - } - return count; - } - - @Override - public boolean remove(String itemName) { - if (head == null){ - return false; - } - if (head == tail && head.value.getName().equals(itemName)){ - head = null; - tail = null; - return true; - } - ListNode temp = head; - while (temp != null & temp.value.getName().equals(itemName)){ - temp = temp.next; - } - temp.prev.next = temp.next; - temp.next.prev = temp.prev; - temp.prev = null; - temp.next = null; - return true; - } - - - @Override - public int costTotal() { - orderManager.values().stream().filter(value -> orderManager.containsValue(value)).toList(); - return 0; - } - - @Override - public Customer getCustomer() { - return null; - } - - @Override - public Customer setCustomer(Customer customer) { - return null; - } -} - -``` - -#### `task24/InternetOrdersManager.java` - -```java title="task24/InternetOrdersManager.java" -package task24; -class QueueNode{ - private QueueNode next; - private QueueNode prev; - private Order value; -} -public class InternetOrdersManager implements OrdersManager{ - private QueueNode head; - private QueueNode tail; - private int size; - public boolean add(Order order){ - return true; - } - public Order remove(){ - return null; - } - public Order order(){ - return null; - } - @Override - public int itemsQuantity(String itemName) { - return 0; - } - - @Override - public int itemsQuantity(MenuItem item) { - return 0; - } - - @Override - public Order[] getOrders() { - return new Order[0]; - } - - @Override - public int ordersCostSummary() { - return 0; - } - - @Override - public int ordersQuantity() { - return 0; - } -} - -``` - -#### `task24/MenuItem.java` - -```java title="task24/MenuItem.java" -package task24; - -import java.util.*; -import java.util.stream.Collectors; - -public class MenuItem implements Order{ - private int cost; - private String name; - private String description; - - public int getCost(){ - return cost; - } - - public String getName(){ - return name; - } - - public String getDescription(){ - return description; - } - - @Override - public boolean add(MenuItem item) { - orderManager.put(item.getName(),item); - return true; - } - - @Override - public String[] itemsNames() { - return orderManager.keySet().stream().filter(key -> orderManager.get(key) != null).toArray(String[]::new); - } - - @Override - public int itemsQuantity() { - return orderManager.keySet().size(); - } - - @Override - public int itemsQuantity(String itemName) { - return (int) orderManager.keySet().stream().filter(key -> key.equals(itemName)).count(); - } - - @Override - public int itemsQuantity(MenuItem itemName) { - int count = 0; - for (Map.Entry entry : orderManager.entrySet()) { - Order order = entry.getValue(); - if (order.equals(itemName)) { - count++; - } - } - return count; - } - - - @Override - public Order[] getOrders() { - return orderManager.values().toArray(new Order[0]); - } - - @Override - public int ordersCostSummary() { - return 0; - } - - @Override - public int ordersQuantity() { - return orderManager.size(); - } - - @Override - public MenuItem[] getItems() { - return orderManager.values().toArray(new MenuItem[0]); - } - - @Override - public boolean remove(MenuItem item) { - return orderManager.remove(item.getName(),item); - } - - @Override - public int removeAll(String itemName) { - int initialSize = orderManager.size(); // Запоминаем начальный размер HashMap - orderManager.entrySet().removeIf(entry -> entry.getKey().equals(itemName)); - int countDel = initialSize - orderManager.size(); // Вычисляем количество удаленных элементов - return countDel; - } - - - @Override - public int removeAll(MenuItem item) { - int count = 0; - for(int i = 0 ; i < orderManager.size();i++){ - if(orderManager.remove(item.name,item)) { - count++; - } - } - return count; - } - - @Override - public boolean remove(String itemName) { - return orderManager.remove(itemName) != null; - } - @Override - public int costTotal() { - return 0; - } - - @Override - public Customer getCustomer() { - return null; - } - - @Override - public Customer setCustomer(Customer customer) { - return null; - } - @Override - public String toString() { - return "cost = " + cost + ", name = " + name + ", description = " + description; - } - public String prints(){ - return orderManager.toString(); - } -} - -``` - -#### `task24/Order.java` - -```java title="task24/Order.java" - package task24; - - public interface Order extends OrdersManager{ - public boolean add(MenuItem item); - public String[] itemsNames(); - public int itemsQuantity(); - public int itemsQuantity(String itemName); - public int itemsQuantity(MenuItem itemName); - public MenuItem[] getItems(); - public boolean remove(MenuItem item); - public int removeAll(String itemName); - public int removeAll(MenuItem item); - public boolean remove(String itemName); - - public int costTotal(); - public Customer getCustomer(); - public Customer setCustomer(Customer customer); - - } - -``` - -#### `task24/OrdersManager.java` - -```java title="task24/OrdersManager.java" -package task24; - -import java.util.HashMap; - -interface OrdersManager{ - HashMap orderManager = new HashMap<>(); - public int itemsQuantity(String itemName); - public int itemsQuantity(MenuItem item); - public Order[] getOrders(); - public int ordersCostSummary(); - public int ordersQuantity(); - -} - -``` - -#### `task24/TableOrder.java` - -```java title="task24/TableOrder.java" -package task24; - -import java.util.Map; - -public class TableOrder implements Order{ - private int size; - private MenuItem[] items; - - @Override - public boolean add(MenuItem item) { - orderManager.put(item.getName(),item); - return true; - } - - @Override - public String[] itemsNames() { - return orderManager.keySet().stream().filter(key -> orderManager.get(key) != null).toArray(String[]::new); - } - @Override - public int itemsQuantity() { - return orderManager.keySet().size(); - } - - @Override - public int itemsQuantity(String itemName) { - return (int) orderManager.keySet().stream().filter(key -> key.equals(itemName)).count(); - } - @Override - public int itemsQuantity(MenuItem itemName) { - int count = 0; - for (Map.Entry entry : orderManager.entrySet()) { - Order order = entry.getValue(); - if (order.equals(itemName)) { - count++; - } - } - return count; - } - @Override - public Order[] getOrders() { - return orderManager.values().toArray(new Order[0]); - } - @Override - public int ordersCostSummary() { - return 0; - } - - @Override - public int ordersQuantity() { - return orderManager.size(); - } - - @Override - public MenuItem[] getItems() { - return orderManager.values().toArray(new MenuItem[0]); - } - - @Override - public boolean remove(MenuItem item) { - return orderManager.remove(item.getName(),item); - } - - @Override - public int removeAll(String itemName) { - int initialSize = orderManager.size(); // Запоминаем начальный размер HashMap - orderManager.entrySet().removeIf(entry -> entry.getKey().equals(itemName)); - int countDel = initialSize - orderManager.size(); // Вычисляем количество удаленных элементов - return countDel; - } - - - @Override - public int removeAll(MenuItem item) { - int count = 0; - for(int i = 0 ; i < orderManager.size();i++){ - if(orderManager.remove(item.getName(),item)) { - count++; - } - } - return count; - } - - @Override - public boolean remove(String itemName) { - return orderManager.remove(itemName) != null; - } - @Override - public int costTotal() { - return 0; - } - - @Override - public Customer getCustomer() { - return null; - } - - @Override - public Customer setCustomer(Customer customer) { - return null; - } - -} - -``` - -#### `task24/TableOrdersManager.java` - -```java title="task24/TableOrdersManager.java" -package task24; - -public class TableOrdersManager implements OrdersManager{ - private Order[] orders; - public void add(Order order, int tableNumber){} - public void addItem(MenuItem item, int tableNumber){} - public int freeTableNumber(Order order, int tableNumber){ return 0;} - public int[] freeTableNumbers(Order order, int tableNumber){ return null;} - - public Order getOrder(int tableNumber){ return null;} - public void remove(int tableNumber){} - public int remove(Order order){ return 0;} - public int removeAll(Order order){return 0;} - - @Override - public int itemsQuantity(String itemName) { - return 0; - } - - @Override - public int itemsQuantity(MenuItem item) { - return 0; - } - @Override - public Order[] getOrders() { - return new Order[0]; - } - @Override - public int ordersCostSummary() { - return 0; - } - @Override - public int ordersQuantity() { - return 0; - } -} - -``` - -#### `task24/Test.java` - -```java title="task24/Test.java" -package task24; - -import java.util.Arrays; -import java.util.Scanner; - -import static task24.DrinkTypeEnum.Proverc; - -public class Test { - public static void main(String[] args) { - Scanner s = new Scanner(System.in); - Scanner r = new Scanner(System.in); - Scanner w = new Scanner(System.in); - MenuItem menuItem = new MenuItem(); - double cost; - boolean bool = true; - String name, opis; - Scanner nomder = new Scanner(System.in); - System.out.println("Ввелитед 1 если вы делаете заказ в ресторане:\n" + - "Введите 2 если делаете заказ на сайте:\n" + - "Введите 3 если хотите популярные блюда ресторана:"); - switch (nomder.nextInt()) { - case 1: - while (bool) { - System.out.println("Что хотите добавить в заказ \n1 если еду: \n2 если напиток:"); - switch (nomder.nextInt()) { - case 1: - System.out.println("Введите название товара: "); - name = r.nextLine(); - System.out.println("Введите цену товара: "); - cost = s.nextDouble(); - System.out.println("Введите описание товара: "); - opis = w.nextLine(); - Dish d = new Dish((int) cost, name, opis); - menuItem.add(d); - System.out.println("Ввелите 1 если вы хотите заказать еще или 0 если вы закончили с заказом"); - if (nomder.nextInt() == 1){ - bool = true; - break; - }else { - bool=false; - break; - } - case 2: - System.out.println("Введите название напитка: "); - name = r.nextLine(); - System.out.println("Введите цену напитка: "); - cost = s.nextDouble(); - System.out.println("Введите описание напитка если он алкагольный введите AL: "); - opis = w.nextLine(); - Drink dr = new Drink((int) cost, name, opis); - menuItem.add(dr); - System.out.println(Proverc(opis)); - System.out.println("Ввелите 1 если вы хотите заказать еще или 0 если вы закончили с заказом"); - if (nomder.nextInt() == 1){ - bool = true; - break; - }else { - bool=false; - break; - } - } - } - break; - case 2: - while (bool) { - System.out.println("Что хотите добавить в заказ \n1 если еду: \n2 если напиток:"); - switch (nomder.nextInt()) { - case 1: - System.out.println("Введите название товара: "); - name = r.nextLine(); - System.out.println("Введите цену товара: "); - cost = s.nextDouble(); - System.out.println("Введите описание товара: "); - opis = w.nextLine(); - Dish d = new Dish((int) cost, name, opis); - menuItem.add(d); - System.out.println("Ввелите 1 если вы хотите заказать еще или 0 если вы закончили с заказом"); - if (nomder.nextInt() == 1){ - bool = true; - break; - }else { - bool=false; - break; - } - case 2: - System.out.println("Введите название напитка: "); - name = r.nextLine(); - System.out.println("Введите цену напитка: "); - cost = s.nextDouble(); - System.out.println("Введите описание напитка если он алкагольный введите AL: "); - opis = w.nextLine(); - Drink dr = new Drink((int) cost, name, opis); - menuItem.add(dr); - System.out.println(Proverc(opis)); - System.out.println("Ввелите 1 если вы хотите заказать еще или 0 если вы закончили с заказом"); - if (nomder.nextInt() == 1){ - bool = true; - break; - }else { - bool=false; - break; - } - } - } - break; - case 3: - Dish dishOne = new Dish(10,"Название№1","Описание№1"); - Dish dishTwo = new Dish(500,"Название№2","Описание№2"); - Dish dishFree = new Dish(1000,"Название№3","Описание№3"); - Drink drink = new Drink(120,"dsd","dsds"); - menuItem.add(dishOne); - menuItem.add(dishTwo); - menuItem.add(dishFree); - menuItem.add(drink); - } - System.out.println(Arrays.stream(menuItem.itemsNames()).toList()); - } -} - -``` - - -## Описание - -В этом модуле используется 14 Java-файлов. Ключевые сущности: Address, AlcohoTable, Customer, Dish, Drink, DrinkTypeEnum. - -:::tip -Для проверки практики сначала запускайте тестовый/демо-класс из папки задачи, затем расширяйте модель новыми кейсами. -::: - -## Вывод - -Task 24 — Финальный проект документирует реальное решение из исходного кода. diff --git a/content/object-oriented-programming/index.mdx b/content/object-oriented-programming/index.mdx deleted file mode 100644 index 765ab6c..0000000 --- a/content/object-oriented-programming/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Объектно ориентированное программирование -description: "Практики по ООП: классы, наследование, полиморфизм и архитектура." -order: 1 ---- - -## О разделе - -Раздел **Объектно ориентированное программирование** добавлен в StackMIREA и готов к наполнению учебными материалами. - -## Что можно публиковать - -- Практические работы -- Конспекты и чеклисты -- Разборы задач и примеры кода diff --git a/content/procedural-programming/homework-01-basics.mdx b/content/procedural-programming/homework-01-basics.mdx deleted file mode 100644 index 37c781a..0000000 --- a/content/procedural-programming/homework-01-basics.mdx +++ /dev/null @@ -1,332 +0,0 @@ ---- -title: ДЗ 1 — Ввод, арифметика и уравнения -sidebar_position: 2 -description: Пять стартовых задач по консольному вводу, базовой арифметике и простым уравнениям. -slug: /procedural-programming/homework-01-basics ---- - -## Что внутри - -В первом домашнем задании собраны самые базовые упражнения: ввод строки, арифметические действия, решение линейного и квадратного уравнений, а также логическая задача про освещённость комнаты. - -## 1.1 «Имя» - -**Условие.** Нужно запросить имя пользователя, считать одно слово и вывести приветствие. - -**Как устроено решение.** Исходник читает строку в переменную `Name`, а затем выводит её обратно в консоль. Это минимальный пример на работу с `cin` и `cout`. - -**Что учесть.** В сохранённой версии строка приветствия записана в кодировке старого исходника, но сама логика решения остаётся простой и корректной. - -```cpp title="resources/procedural-programming/home-work-1/name.cpp" -#include -using namespace std; -string Name; -int main(){ - cout << "what is your name:"; - if (cin >> Name) - { - cout << "Привет, " << Name; - } - else - { - cout << "Eror"; - } - return 0; -} -``` - -## 1.2 «Арифметика» - -**Условие.** По двум введённым числам требуется получить сумму, разность, произведение и, если возможно, частное. - -**Как устроено решение.** Сохранённый файл реализует калькулятор на одну выбранную операцию: пользователь вводит два числа и знак `+`, `-`, `*` или `/`, после чего программа считает результат. - -**Что учесть.** Это решение не печатает все четыре операции подряд, как просит формулировка из PDF, зато хорошо показывает проверку ввода и отдельную обработку деления на ноль. - -```cpp title="resources/procedural-programming/home-work-1/Arifmetica.cpp" -#include -using namespace std; -string Name; -int a, b, d; -int main() { - cout << "Enter first number: " << "\n"; - if (cin >> a) - { - cout << "Enter second number: " << "\n"; - if (cin >> b) - { - cout << "What to do: +, -, *, /: " << "\n"; - if (cin >> Name) - { - if (Name == "+") - { - d = a + b; - cout << "Answer: " << d; - } - else if (Name == "-") - { - d = a - b; - cout << "Answer: " << d; - } - else if (Name == "*") - { - d = a * b; - cout << "Answer: " << d; - } - else if (Name == "/") - { - if (b == 0) - { - cout << "Error"; - } - else - { - d = a / b; - cout << "Answer: " << d; - } - } - else - { - cout << "Only: +, -, *, /"; - } - } - else - { - cout << "Error"; - } - } - else - { - cout << "Error"; - } - } - else - { - cout << "Error"; - } -} -``` - -## 1.3 «Уравнение» - -**Условие.** Для любых `b` и `c` нужно решить линейное уравнение `bx + c = 0`. - -**Как устроено решение.** Программа читает коэффициенты, проверяет случай `b != 0`, вычисляет корень `x = -c / b`, а затем отдельно рассматривает вырожденные случаи `b = 0`. - -**Что учесть.** В текущем коде ответ сохраняется в `int`, поэтому дробная часть может потеряться. Для защиты полезно проговорить, что математически здесь лучше использовать `double`. - -```cpp title="resources/procedural-programming/home-work-1/maindesc.cpp" -#include -#include -using namespace std; -int main() -{ - setlocale(0, ""); - double b, c; - cout << "Введите первое число:"; - if (cin >> b) - { - cout << "Введите второе число:"; - if (cin >> c) - { - if (b != 0) - { - int m = (-c) / b; - int r; - if (m == -0) - { - r = 0; - } - else r = m; - cout << "Решение уравнения вида bx + c = 0 равно: " << r << endl; - } - else if (b == 0) - { - if (c == 0) - { - cout << "x любое число"; - } - else cout << "нет решений"; - } - } - else { - cout << "Ошибка! Вы ввели не число. Пожалуйста, перезапустите приложение и введите тип данных для вычисления!" << endl; - } - } - else { - cout << "Ошибка! Вы ввели не число. Пожалуйста, перезапустите приложение и введите тип данных для вычисления!" << endl; - } - return 0; -} -``` - -## 1.4 «Ещё уравнение» - -**Условие.** Нужно решить квадратное уравнение `ax^2 + bx + c = 0`. - -**Как устроено решение.** Код проверяет несколько веток: полное квадратное уравнение, частные случаи `b = 0` или `c = 0`, а также вырожденный вариант, когда уравнение превращается в линейное или вообще теряет неизвестную. - -**Что учесть.** Это самая объёмная задача в первом ДЗ. Хорошо видно, как через `if` и `else if` раскладывается задача на отдельные случаи, а корни находятся через дискриминант. - -```cpp title="resources/procedural-programming/home-work-1/onemoresolution.cpp" -#include -#include -using namespace std; -int main() -{ - setlocale(0, ""); - double a, b, c; - cout << "Введите первое число:"; - if (cin >> a) { - cout << "Введите второе число:"; - if (cin >> b) { - cout << "Введите третье число:"; - if (cin >> c) { - if (b == 0 && a != 0 && c <= 0) { - double x1 = -1 * (sqrt(-c)) / (sqrt(a)); - double x2 = (sqrt(-c)) / (sqrt(a)); - cout << "Первый корень уравнения равен:" << x1 << endl; - cout << "Второй корень уравнения равен:" << x2 << endl; - return 0; - } - else if (a != 0 && c != 0) { - double d = ((b * b) - 4 * a * c); - cout << "Значение дискриминанта равно:" << d << endl; - if (d < 0) { - cout << "Корней нет"; - } - else if (d == 0) { - if ((2 * a) == 0) { - cout << "Ошибка, деление на ноль! Перезапустите приложение!" << endl; - return 0; - } - double x = -b / (2 * a); - cout << "Корень уравнения равен:" << x << endl; - } - else if (d > 0) { - if ((2 * a) == 0) { - cout << "Ошибка, деление на ноль! Перезапустите приложение!" << endl; - return 0; - } - double x1 = (((-b) + (sqrt(d))) / (2 * a)); - double x2 = (((-b) - (sqrt(d))) / (2 * a)); - cout << "Первый корень уравнения равен:" << x1 << endl; - cout << "Второй корень уравнения равен:" << x2 << endl; - return 0; - } - } - else if (a == 0 && b == 0) - { - if (c == 0) - { - cout << "x любое число" << endl; - } - else if (c != 0) { - cout << "нет решений" << endl; - } - return 0; - } - else if (c == 0) { - if (a == 0) { - cout << "Ошибка, деление на ноль! Перезапустите приложение!" << endl; - return 0; - } - double x = -1 * (b / a); - cout << "Корень уравнения равен:" << x << endl; - return 0; - } - else { - if (b == 0) { - cout << "Ошибка, деление на ноль! Перезапустите приложение!" << endl; - return 0; - } - double x = ((-c) / b); - cout << "Корень уравнения равен:" << x << endl; - return 0; - } - } - else { - cout << "Ошибка! Вы ввели не число. Пожалуйста, перезапустите приложение и введите тип данных для вычисления!" << endl; - } - } - else { - cout << "Ошибка! Вы ввели не число. Пожалуйста, перезапустите приложение и введите тип данных для вычисления!" << endl; - } - } - else { - cout << "Ошибка! Вы ввели не число. Пожалуйста, перезапустите приложение и введите тип данных для вычисления!" << endl; - } - return 0; -} -``` - -## 1.5 «Лампа со шторой» - -**Условие.** В комнате светло, если включена лампа или если на улице день и открыты шторы. - -**Как устроено решение.** Программа последовательно спрашивает про день, окно и лампу, валидирует ввод и затем проверяет комбинации состояний через вложенные условия. - -**Что учесть.** В сохранённой версии при открытых шторах выводится `Light` и днём, и ночью. Для защиты лучше отдельно проговорить, что по условию стоило бы дополнительно учитывать именно время суток. - -```cpp title="resources/procedural-programming/home-work-1/lamp.cpp" -#include -using namespace std; -int Num, a, b, c; - -int main() -{ - cout << "1 - Yes, 2 - no" << "\n"; - cout << "Is it day? (1 or 2): "; - cin >> a; - if ((a == 1) || (a == 2)) - { - } - else - { - cout << "Error"; - return 0; - } - cout << "Window opened? (1 or 2): "; - cin >> b; - if (b == 1 || b == 2) - { - } - else - { - cout << "Error"; - return 0; - } - cout << "Lamp working? (1 or 2): "; - cin >> c; - if (c == 1 || c == 2) - { - } - else - { - cout << "Error"; - return 0; - } - if (c == 1) - { - cout << "Light"; - } - else - { - if (b == 1) - { - if (a == 1) - { - cout << "Light"; - } - else - { - cout << "Light"; - } - } - else - { - cout << "Dark"; - } - } -} -``` diff --git a/content/procedural-programming/homework-02-formulas-and-branching.mdx b/content/procedural-programming/homework-02-formulas-and-branching.mdx deleted file mode 100644 index b9aa66a..0000000 --- a/content/procedural-programming/homework-02-formulas-and-branching.mdx +++ /dev/null @@ -1,250 +0,0 @@ ---- -title: ДЗ 2 — Формулы, ветвления и табуляция -sidebar_position: 3 -description: Задачи на вычисление выражений, проверку области определения и вывод таблиц значений. -slug: /procedural-programming/homework-02-formulas-and-branching ---- - -## Что внутри - -Во втором домашнем задании акцент смещается с простого ввода на вычисление формул, проверку корректности аргументов и вывод серий значений. - -## 2.1 «Конус» - -**Условие.** Нужно вычислить объём и полную поверхность усечённого конуса по `R`, `r` и `h`. - -**Как устроено решение.** Программа читает размеры, вычисляет образующую `l`, затем по формулам получает объём `V` и площадь `S`. - -**Что учесть.** В сохранённом исходнике `pi` объявлена как `int`, поэтому значение `3.14` обрезается до `3`. В разборе важно понимать, что сама идея верна, но точность страдает. - -```cpp title="resources/procedural-programming/home-work-2/conus.cpp" -#include -#include -#include -using namespace std; - -int main() -{ - int l; - int pi = 3.14; - float R, r, h, V, S; - cout << "Enter h: "; - if (cin >> h && h >= 0) - { - cout << "Enter r: "; - if (cin >> r && r >= 0) - { - cout << "Enter R: "; - if (cin >> R && R >= 0) - { - l = sqrt(h * h + (R - r) * (R - r)); - pi = 3.14; - V = (((pi * h) / 3) * (R * R + r * R + r * r)); - S = (pi * (R * R + (R + r) * l + (r * r))); - cout << "V: " << V << "\n"; - cout << "S: " << S; - } - else - { - cout << "Immposible"; - return 0; - } - } - else - { - cout << "Immposible"; - return 0; - } - } - else - { - cout << "Immposible"; - return 0; - } -} -``` - -## 2.2 «Разветвление» - -**Условие.** Для введённых `x` и `a` нужно вычислить значение кусочной функции. - -**Как устроено решение.** Сохранённый файл работает по двум веткам: если `|x| < 1`, считается `w = a * log(|x|)`, иначе программа пытается найти `w = sqrt(a - x^2)`. - -**Что учесть.** Здесь хорошо видно, зачем проверять область определения: логарифм требует положительный аргумент, а корень требует неотрицательное подкоренное выражение. - -```cpp title="resources/procedural-programming/home-work-2/branchingout.cpp" -#include -#include -using namespace std; -int main() { - setlocale(0, ""); - double x, a, w, xm; - cout << "Введите X:"; - cin >> x; - cout << "Введите A:"; - cin >> a; - if (cin.fail()) { - cin.clear(); - cin.ignore(); - cout << "Некорректный ввод! Перезапустите приложение." << endl; - return 0; - } - else { - cout << "Ввод успешен." << endl; - xm = fabs(x); - if (x == 0) - { - cout << "Eror"; - return 0; - } - else if (xm < 1) - { - w = a * log(xm); - } - else if (xm >= 1) { - if ((a - x * x) < 0) { - cout << "Ответ: отрицательное подкоренное выражение! Нет ответа."; - return 0; - } - else { - w = sqrt(a - x * x); - } - } - } - cout << "Ответ: " << w; - return 0; -} -``` - -## 2.3 «Функция» - -**Условие.** Нужно вычислить выражение от `b`, `x` и `y` с логарифмом и квадратным корнем. - -**Как устроено решение.** В текущем варианте сначала считаются `j = b - y` и `u = b - x`, затем при корректной области определения программа выводит `z = log(j) * sqrt(u)`. - -**Что учесть.** Для такой задачи критично уметь назвать ограничения: `b - y > 0`, а `b - x >= 0`. Именно эти проверки защищают программу от некорректных вычислений. - -```cpp title="resources/procedural-programming/home-work-2/main.cpp" -#include -#include -#include -using namespace std; - -int main() -{ - float x, y, b, z; - int j, u; - cout << "Enter B: "; - if (cin >> b) - { - cout << "Enter X: "; - if (cin >> x) - { - cout << "Enter Y: "; - if (cin >> y) - { - j = b - y; - u = b - x; - if (j > 0) - { - if (u != 0) { - z = log(j) * sqrt(u); - cout << "Answer: " << z; - return 0; - } - else if (u = 0) - { - cout << "Net resh"; - } - } - else - { - cout << "Net resh"; - return 0; - } - } - else - { - cout << "Eror"; - return 0; - } - } - else - { - cout << "Eror"; - return 0; - } - } - else - { - cout << "Eror"; - return 0; - } -} -``` - -## 2.4 «Порядок» - -**Условие.** Нужно вывести 10 натуральных чисел подряд, начиная с корректного значения `N`. - -**Как устроено решение.** Исходник читает `N`, задаёт границу `N + 10` и печатает числа в цикле `while`. - -**Что учесть.** В PDF отдельно оговариваются дробные, нулевые и отрицательные случаи. В текущем файле они не обработаны: решение работает как простая печать десяти последовательных целых чисел от введённого `N`. - -```cpp title="resources/procedural-programming/home-work-2/linerow.cpp" -#include -#include -#include -using namespace std; - -int main() -{ - int N, N10; - cout << "Enter N: "; - if (cin >> N) - { - N10 = N + 10; - - while (N != N10) - { - cout << N << ", "; - N = N + 1; - } - } - else - { - cout << "Eror"; - return 0; - } -} -``` - -## 2.5 «Табуляция» - -**Условие.** Нужно протабулировать функцию на отрезке от `-4` до `4` с шагом `0.5`. - -**Как устроено решение.** В сохранённой программе табулируется выражение `y = (x^2 - 2x + 2) / (x - 1)`. Значения от `-4` до `0` и от `1.5` до `4` печатаются отдельно, чтобы не попасть на деление на ноль при `x = 1`. - -**Что учесть.** Это хороший пример, где область определения влияет не только на вычисление, но и на организацию цикла. - -```cpp title="resources/procedural-programming/home-work-2/tabulation.cpp" -#include -#include -#include -using namespace std; - -int main() { - setlocale(0, ""); - double y; - for (double x = -4; x <= 0; x = x + 0.5) { - y = (((x * x) - 2 * x + 2) / (x - 1)); - cout << "Ответ для x = " << x << " y = " << y << endl; - } - cout << "Ответ для x = 1 не существует" << endl; - for (double x = 1.5; x <= 4; x = x + 0.5) { - y = (((x * x) - 2 * x + 2) / (x - 1)); - cout << "Ответ для x = " << x << " y = " << y << endl; - } - return 0; -} -``` diff --git a/content/procedural-programming/homework-03-files-and-strings.mdx b/content/procedural-programming/homework-03-files-and-strings.mdx deleted file mode 100644 index 42bb458..0000000 --- a/content/procedural-programming/homework-03-files-and-strings.mdx +++ /dev/null @@ -1,214 +0,0 @@ ---- -title: ДЗ 3 — Заём, файлы и работа со строками -sidebar_position: 4 -description: Формулы по кредитам, чтение файлов, фильтрация чисел и сортировка символов. -slug: /procedural-programming/homework-03-files-and-strings ---- - -## Что внутри - -Третья домашняя работа совмещает два блока тем: расчётные задачи по формулам займа и базовую работу с файлами и строками. - -## 3.1 «Заём» - -**Условие.** Нужно вычислить ежемесячный платёж `m` по сумме `S`, проценту `p` и сроку `n`. - -**Как устроено решение.** Программа проверяет диапазоны входных данных, отдельно рассматривает случай `p = 0`, а в общем случае подставляет значения в формулу аннуитетного платежа. - -**Что учесть.** Это хороший пример, где сначала надо проверить корректность параметров, и только потом переходить к вычислению формулы. - -```cpp title="resources/procedural-programming/home-work-3/3.1.cpp" -#include -#include -using namespace std; - -int main() -{ - double S, p, n, r; - double m, q, y; - cout << "Vvedite S: "; - cin >> S; - if (S <= pow(10, 9)) - { - cout << "VVedite p: "; - cin >> p; - if (p >= -1 * pow(10, 4) && p <= pow(10, 4)) - { - cout << "Vvedite n: "; - cin >> n; - if (n >= 1 && n < pow(10, 2) && n != 0) - { - if (p == 0) - { - m = S / n / 12; - cout << "Mi nashli : " << m << endl; - return 0; - } - else { - r = p / 100; - } - q = S * r * pow((1 + r), n); - y = 12 * (pow(1 + r, n) - 1); - m = q / y; - cout << "Mi nashli: " << m << " - Mecyachnaya viplata."; - return 0; - - } - else - { - cout << "Nevenie dannie, restart"; - return 0; - } - } - else - { - cout << "Dannie ne verni, perezapustite"; - return 0; - } - } - else { - cout << "Dannie ne verni, perezapustite"; - return 0; - } -} -``` - -## 3.2 «Ссуда» - -**Условие.** По сумме `S`, месячному платежу `m` и сроку `n` нужно определить процент `p`. - -**Как устроено решение.** Сохранённый код не выводит процент аналитически, а перебирает его от `-100` до `100` с маленьким шагом и сравнивает расчётный платёж с заданным. - -**Что учесть.** Такой способ медленнее формульного, но хорошо показывает идею численного подбора. - -```cpp title="resources/procedural-programming/home-work-3/3.2.cpp" -#include -#include -using namespace std; - -int main() { - setlocale(0, ""); - float s, n, r, m, p = 0, i = -100000, m1; - cout << "Введите сумму займа = "; - if (cin >> s) { - cout << "Введите сумму ежемесячного платежа = "; - if (cin >> m) { - cout << "Введите количество лет займа = "; - if (cin >> n) { - while ((-100 <= p) and (p <= 100)) { - i++; - p = i / 1000; - r = p / 100; - m1 = (s * r * pow(1 + r, n)) / (12 * (pow(1 + r, n) - 1)); - if (m1 >= m) { - cout << "Процент займа = " << p << "%" << endl; - break; - } - } - } - else { - cout << "Перезапустите приложение и введите числа"; - } - } - else { - cout << "Перезапустите приложение и введите числа"; - } - } - else { - cout << "Перезапустите приложение и введите числа"; - } - return 0; -} -``` - -## 3.3 «Копирование файла» - -**Условие.** Нужно открыть текстовый файл, проверить его существование и вывести содержимое на экран без потери форматирования. - -**Как устроено решение.** В ресурсе сохранён закомментированный черновик. Ниже приведён тот же вариант в читаемом виде: файл открывается через `fstream`, затем посимвольно печатается в консоль. - -```cpp title="resources/procedural-programming/home-work-3/3.3.cpp" -#include -#include -using namespace std; - -int main() -{ - fstream fl; - fl.open("f.txt"); - if (fl.is_open()) - { - char c; - while (fl.get(c)) - { - cout << c; - } - fl.close(); - } - else - { - cout << "ne"; - } -} -``` - -## 3.4 «Фильтр» - -**Условие.** Нужно найти в текстовом файле числа и вывести их на экран. - -**Как устроено решение.** В исходнике файл читается посимвольно, а на экран попадают только символы, для которых `isdigit(c)` возвращает истину. - -**Что учесть.** Такой вариант извлекает именно цифры, а не полноценные целые числа как отдельные токены. Для базовой задачи на фильтрацию этого достаточно, но на защите стоит понимать разницу. - -```cpp title="resources/procedural-programming/home-work-3/3.4.cpp" -#include -#include -using namespace std; - -int main() -{ - fstream fl; - fl.open("2.txt"); - if (fl.is_open()) - { - char c; - while (fl.get(c)) - { - if (isdigit(c)) - { - cout << c; - } - } - fl.close(); - } - else - { - cout << "ne rabotaet"; - } -} -``` - -## 3.5 «Сортировка букв» - -**Условие.** Нужно взять строку из 30 букв и отсортировать её по алфавиту. - -**Как устроено решение.** Пользователь вводит строку, после чего вызывается стандартная `sort`, которая упорядочивает символы в диапазоне `begin()` — `end()`. - -**Что учесть.** Это короткая, но очень полезная задача на работу со строками и стандартными алгоритмами STL. - -```cpp title="resources/procedural-programming/home-work-3/3.5.cpp" -#include -#include -#include -using namespace std; - -int main() { - system("CHCP 1251"); - cout << "Введите: "; - string line; - cin >> line; - sort(line.begin(), line.end()); - cout << line << endl; - return 0; -} -``` diff --git a/content/procedural-programming/homework-04-functions-and-automation.mdx b/content/procedural-programming/homework-04-functions-and-automation.mdx deleted file mode 100644 index 6dc53b1..0000000 --- a/content/procedural-programming/homework-04-functions-and-automation.mdx +++ /dev/null @@ -1,563 +0,0 @@ ---- -title: ДЗ 4 — Функции, файлы, графика и системы счисления -sidebar_position: 5 -description: Девять задач на подпрограммы, файлы, псевдографику, матрицы и преобразование чисел. -slug: /procedural-programming/homework-04-functions-and-automation ---- - -## Что внутри - -Четвёртая домашняя работа самая объёмная: здесь есть файловый ввод-вывод, собственные функции, псевдографика, генератор чисел, матрицы и перевод между системами счисления. - -## 4.1 «Файл» - -**Условие.** Нужно записать 10 вещественных чисел в файл, затем открыть его снова и посчитать сумму. - -**Как устроено решение.** Программа сначала пишет десять введённых чисел в `1.txt`, затем вторым проходом считывает их из файла и накапливает сумму в переменной `sum`. - -```cpp title="resources/procedural-programming/home-work-4/4.1 main.cpp" -#include -#include -using namespace std; - -int main() -{ - double q, a, sum = 0; - int i = 0; - ofstream file("1.txt"); - setlocale(0, ""); - cout << "Введите 10 чисел:" << endl; - while (i < 10) - { - if (cin >> q) { - i++; - file << q << endl; - } - else - { - cout << "Введите только числа"; - return 0; - } - } - file.close(); - - ifstream fin("1.txt"); - while (fin >> a) - { - sum += a; - } - cout << "Сумма=" << sum; - fin.close(); -} -``` - -## 4.2 «Знак числа» - -**Условие.** Нужно определить знак числа через отдельную подпрограмму-функцию `sign`. - -**Как устроено решение.** Функция `ptt` принимает число и печатает `1`, `0` или `-1` в зависимости от его значения. - -```cpp title="resources/procedural-programming/home-work-4/4.2 main.cpp" -#include -#include - -using namespace std; -void ptt(double S){ - - if (S > 0) - { - cout << 1; - } - else if (S == 0) - { - cout << 0; - } - else - { - cout << -1; - } -} - -int main() -{ - setlocale(0, ""); - double S; - cout << "Введите число: " << endl; - if (cin >> S) - { - ptt(S); - } - else - { - cout << "Введите число"; - } -} -``` - -## 4.3 «Геометрические фигуры» - -**Условие.** Нужно вычислять площадь прямоугольника, треугольника или круга через отдельные функции. - -**Как устроено решение.** Для каждой фигуры выделена собственная подпрограмма: `prog1`, `prog2` и `prog3`. В `main` пользователь выбирает, какую именно фигуру считать. - -```cpp title="resources/procedural-programming/home-work-4/4.3 main.cpp" -#include -#include -using namespace std; -void prog1() { - double a, b; - cout << "Введите сторону a и сторону b"; - cin >> a; - cin >> b; - cout << "S=" << a * b; -} -void prog2() { - double a, h; - cout << "Введите сторону a и высоту"; - cin >> a ; - cin >> h; - cout << "S=" << 0.5 * a * h; -} -void prog3() { - double r; - cout << "Введите радиус"; - cin >> r; - cout << "S=" << 3.14 * r * r; -} - -int main() -{ - setlocale(0, ""); - string S; - cout << "Что ищем? Какую фигуру?" << endl << "prog1 - прямоугольник, prog2 - треугольник, prog3 - круг: " << endl; - cin >> S; - if (S == "prog1") - { - prog1(); - } - else if (S == "prog2") - { - prog2(); - } - else if (S == "prog3") - { - prog3(); - } -} -``` - -## 4.4 «Былая слава» - -**Условие.** Нужно вывести в консоль флаг в виде псевдографики, обязательно используя цикл или рекурсию. - -**Как устроено решение.** Программа печатает первые шесть строк с блоком звёзд и полосами, затем ещё шесть строк только из полос. - -```cpp title="resources/procedural-programming/home-work-4/4.4 main.cpp" -#include -#include -using namespace std; -int main() { - cout << endl; - for (int i = 0; i < 6; i++) - { - for (int i = 0; i < 8; i++) - { - cout << "*"; - } - for (int i = 0; i < 41; i++) - { - cout << "-"; - } - cout << endl; - } - for (int i = 0; i < 6; i++) - { - for (int i = 0; i < 49; i++) - { - cout << "-"; - } - cout << endl; - } -} -``` - -## 4.5 «Синусоида» - -**Условие.** Нужно построить в консоли график функции `y = sin(x)`. - -**Как устроено решение.** Сначала в массив `sinx` сохраняются значения синуса по точкам, затем двумерный массив `graf` заполняется символами `*` или пробелами, после чего печатается построчно. - -```cpp title="resources/procedural-programming/home-work-4/4.5 main.cpp" -#include -#include -using namespace std; -int main() -{ - const int size = 89, height = 23; - char graf[height][size]; - double sinx[size]; - for (int i = 0; i < size; i++) - sinx[i] = 10 * sin(i / 10.0); - for (int i = 0; i < height; i++) - for (int j = 0; j < size; j++) - if (-1 < 10.0 - i - round(sinx[j]) and 10.0 - i - round(sinx[j]) < 1) - graf[i][j] = '*'; - else - graf[i][j] = ' '; - for (int i = 0; i < height; i++) - { - for (int j = 0; j < size; j++) - cout << graf[i][j]; - cout << endl; - } -} -``` - -## 4.6 «Автоматный распознаватель» - -**Условие.** Нужно перевести число из римской записи в арабскую и отследить некорректный ввод. - -**Как устроено решение.** Функция `cf` сопоставляет римские символы их значениям, а основной цикл проходит по строке и складывает или вычитает значения в зависимости от соседних символов. - -**Что учесть.** Проверка корректности здесь частичная: реализация демонстрирует общий принцип разбора, но не покрывает все правила записи римских чисел. - -```cpp title="resources/procedural-programming/home-work-4/4.6.cpp" -#include -#include -using namespace std; -int cf(char x) -{ - if (x == 'I') - return(1); - else if (x == 'X') - return(10); - else if (x == 'V') - return(5); - else if (x == 'IV') - return(4); - else if (x == 'L') - return(50); - else if (x == 'C') - return(100); - else if (x == 'D') - return(500); - else if (x == 'M') - return(1000); - else if (x == '0') - return(0); - else return(0); -} -int main() -{ - setlocale(0, ""); - string ch; - int s = 0; - int i = 0; - char v = 'I'; - cout << "Введите число:"; - cin >> ch; - if (ch.length() > 2) { - if (ch[0] == ch[1] and ch[0] == v and cf(ch[2]) > 1) { - cout << "eror"; - return 0; - } - for (int i = 0; i < (ch.length() - 3); i++) { - if (ch[i] == ch[i + 1] and ch[i] == v and cf(ch[i + 2]) <= 1) - { - cout << "Eror"; - return 0; - } - } - } - - for (int i = 0; i < (ch.length()); i++) { - if (cf(ch[i]) < cf(ch[i + 1]) and cf(ch[i]) != 0) { - s = s + cf(ch[i + 1]) - cf(ch[i]); - ch[i + 1] = '0'; - } - else s = s + cf(ch[i]); - } - cout << s; -} -``` - -## 4.7 «Генератор случайных чисел» - -**Условие.** Нужно построить линейный конгруэнтный генератор по рекуррентной формуле. - -**Как устроено решение.** Глобальная переменная `s` хранит текущее состояние, функция `f()` пересчитывает его по формуле `(37 * s + 3) % 64`, а затем `main` несколько раз вызывает генератор. - -```cpp title="resources/procedural-programming/home-work-4/4.7.cpp" -#include -using namespace std; -int s = 0; -int f() -{ - s = (37 * s + 3) % 64; - return s; -} -int main() -{ - int n; - cin >> n; - for (int i = 1; i <= n + 1; ++i) { - cout << f() << endl; - } - return 0; -} -``` - -## 4.8 «Умножение матриц» - -**Условие.** Нужно задать матрицы продаж и цен, получить произведение `C = A x B` и ответить на вопросы о выручке и комиссионных. - -**Как устроено решение.** Код вручную задаёт две константные матрицы, перемножает их, затем проходит по строкам результата и находит максимумы, минимумы и суммарные значения. - -```cpp title="resources/procedural-programming/home-work-4/4.8.cpp" -#include -#include -#include -#include -using namespace std; -int main() { - double maks = -90, mensh = 9999, maksk = -90, menshk = 990, obsh, obshk, obshd, x1, x2, x3, x4, x5 = 0, x6 = 0; - double a[3][4] = { 5,2,0,10,3,5,2,5,20,0,0,0 }, b[4][2] = { 1.20,0.50,2.80,0.40,5,1,2,1.5 }, c[3][2] = {0}; - for (int i = 0; i < 3; i++) { - for (int j = 0; j < 4; j++) { - c[i][0] += a[i][j] * b[j][0]; - c[i][1] += a[i][j] * b[j][1]; - } - } - - for (int i = 0; i < 3; i++) { - if (maks < c[i][0]) { - maks = c[i][0]; - x1 = i; - } - if (mensh > c[i][0]) { - mensh = c[i][0]; - x2 = i; - } - if (maksk < c[i][1]) { - maksk = c[i][1]; - x3 = i; - } - if (menshk > c[i][1]) { - menshk = c[i][1]; - x4 = i; - } - x5 += c[i][0]; - x6 += c[i][1]; - - for (int j = 0; j < 2; j++) { - cout << c[i][j] << " "; - } - cout << endl; - } - cout << "1) " << x1 + 1 << " " << x2 + 1 << endl; - cout << "2) " << x3 + 1 << " " << x4 + 1 << endl; - cout << "3) " << x5 << endl; - cout << "4) " << x6 << endl; - cout << "5) " << x5 + x6 << endl; -} -``` - -## 4.9 «Системы счисления» - -**Условие.** Нужно перевести число из одной системы счисления в другую. - -**Как устроено решение.** Сначала символы исходной записи переводятся в десятичное значение через функцию `cf`, затем число делится на новое основание, а остатки собираются в ответ. - -**Что учесть.** Сама схема перевода правильная: сначала перевод в десятичную систему, потом в целевую. Это главная идея, которую стоит помнить. - -```cpp title="resources/procedural-programming/home-work-4/4.9.cpp" -#include -#include -#include -using namespace std; -int cf(char x) -{ - if (x == '1') - return(1); - else if (x == '2') - return(2); - else if (x == '3') - return(3); - else if (x == '4') - return(4); - else if (x == '5') - return(5); - else if (x == '6') - return(6); - else if (x == '7') - return(7); - else if (x == '8') - return(8); - else if (x == '9') - return(9); - else if (x == '0') - return(0); - else if (x == 'A') - return(10); - else if (x == 'B') - return(11); - else if (x == 'C') - return(12); - else if (x == 'D') - return(13); - else if (x == 'E') - return(14); - else if (x == 'F') - return(15); - else if (x == 'G') - return(16); - else if (x == 'H') - return(17); - else if (x == 'I') - return(18); - else if (x == 'J') - return(19); - else if (x == 'K') - return(20); - else if (x == 'L') - return(21); - else if (x == 'M') - return(22); - else if (x == 'N') - return(23); - else if (x == 'O') - return(24); - else if (x == 'P') - return(25); - else if (x == 'Q') - return(26); - else if (x == 'R') - return(27); - else if (x == 'S') - return(28); - else if (x == 'T') - return(29); - else if (x == 'U') - return(30); - else if (x == 'V') - return(31); - else if (x == 'W') - return(32); - else if (x == 'X') - return(33); - else if (x == 'Y') - return(34); - else if (x == 'Z') - return(35); - return 0; -} -int bk(char x) { - if (x == 10) - return('A'); - else if (x == 11) - return('B'); - else if (x == 12) - return('C'); - else if (x == 13) - return('D'); - else if (x == 14) - return('E'); - else if (x == 15) - return('F'); - else if (x == 16) - return('G'); - else if (x == 17) - return('H'); - else if (x == 18) - return('I'); - else if (x == 19) - return('J'); - else if (x == 20) - return('K'); - else if (x == 'L') - return(21); - else if (x == 'M') - return(22); - else if (x == 'N') - return(23); - else if (x == 'O') - return(24); - else if (x == 'P') - return(25); - else if (x == 'Q') - return(26); - else if (x == 'R') - return(27); - else if (x == 'S') - return(28); - else if (x == 'T') - return(29); - else if (x == 'U') - return(30); - else if (x == 'V') - return(31); - else if (x == 'W') - return(32); - else if (x == 'X') - return(33); - else if (x == 'Y') - return(34); - else if (x == 'Z') - return(35); - else return(0); -} -int main() -{ - setlocale(0, ""); - string ch, otv = ""; - string vr; - long int s = 0, p = 4000, o, e, n, d = 0, pr; - cout << "Введите базу из"; - cin >> e; - cout << "Введите конечную базу"; - cin >> n; - cout << "Введите число"; - cin >> ch; - if (e == n) { - cout << ch; - return 0; - } - for (int i = 0; i < ch.length(); i++) { - if (cf(ch[i]) >= e) { - cout << "Error"; - return 0; - } - d += cf(ch[i]) * pow(e, ch.length() - i - 1); - } - if (n == 10) { - cout << d << endl; - } - else { - int i = 0; - while (d >= n) - { - pr = d % n; - d /= n; - if (pr > 9) { - otv += bk(pr); - } - else - { - vr = to_string(pr); - otv += vr; - } - i++; - } - i++; - if (d > 9) { - otv += bk(d); - } - else { - vr = to_string(d); - otv += vr; - } - } - reverse(otv.begin(), otv.end()); - cout << otv; -} -``` diff --git a/content/procedural-programming/homework-05-number-theory-and-combinatorics.mdx b/content/procedural-programming/homework-05-number-theory-and-combinatorics.mdx deleted file mode 100644 index e756b3b..0000000 --- a/content/procedural-programming/homework-05-number-theory-and-combinatorics.mdx +++ /dev/null @@ -1,230 +0,0 @@ ---- -title: ДЗ 5 — НОД, простые числа, индивидуальные варианты и шарики -sidebar_position: 6 -description: Пятое домашнее задание по теории чисел, файлам и перебору перестановок. -slug: /procedural-programming/homework-05-number-theory-and-combinatorics ---- - -## Что внутри - -В пятом домашнем задании есть как стандартные алгоритмы, так и индивидуальные варианты. По PDF видно, что пункты `5.3`, `5.4` и `5.5` должны были быть уникальными для каждого студента, поэтому в ресурсах есть готовый код только для части задач. - -## 5.1 «Алгоритм Евклида» - -**Условие.** Нужно найти НОД двух положительных целых чисел. - -**Как устроено решение.** Сохранённый код идёт не через классический цикл Евклида с остатком, а через перебор делителей от `min(a, b)` вниз до `1`. Как только находится общий делитель, программа печатает его и завершает работу. - -```cpp title="resources/procedural-programming/home-work-5/51 DONE.cpp" -#include -#include -using namespace std; -int main(){ - int a, b; - cin >> a >> b; - for (int i = min(a, b); i >= 1; i--) { - if (a % i == 0 and b % i == 0) { - cout << i; - return 0; - } - } -} -``` - -## 5.2 «Решето Эратосфена» - -**Условие.** Нужно вывести простые числа от `2` до введённого натурального числа. - -**Как устроено решение.** Файл из ресурсов проверяет каждое число `j` на делимость всеми меньшими числами и печатает его, если делителей нет. - -**Что учесть.** Это решение реализует не решето Эратосфена в чистом виде, а прямую проверку на простоту. Кроме того, `2` здесь не выводится, потому что цикл начинается с `3`. - -```cpp title="resources/procedural-programming/home-work-5/52 DONE.cpp" -#include -#include -using namespace std; -int main() { - int a, b; - cin >> a; - for (int j = 3; j <= a; j++) { - b = 0; - for (int i = j - 1; i > 1; i--) { - if (j % i == 0) { - b = 1; - } - } - if (b == 0) { - cout << j << " "; - } - } -} -``` - -## 5.3 «Обработка текстовых файлов» - -**Условие.** В PDF сказано, что это индивидуальный вариант. В ресурсах сохранён вариант, где программа читает файл и ищет наиболее часто встречающуюся согласную букву из заданного набора. - -**Как устроено решение.** Код открывает файл `123.txt`, считает частоты для заранее заданного массива букв, затем выбирает индекс максимального значения и печатает количество вхождений вместе с самой буквой. - -```cpp title="resources/procedural-programming/home-work-5/5.3.cpp" -#include -#include -#include -using namespace std; - -ifstream ifile; -char bukvi[20]{ 'b', 'd', 'c', 'f', 'g', - 'h', 'j', 'k', 'l', 'm', - 'n', 'p', 'q', 'r', 's', - 't', 'v', 'w', 'x', 'z' }; -int kol[20]{}; - -int main() -{ - int max = 0, num; - char c, a = 'a'; - ifile.open("123.txt"); - if (ifile.is_open()) - { - cout << "okey..."; - _getch(); - - for (int i = 0; i < 20; i++) - { - kol[i] = 0; - } - - while (ifile.get(c)) - { - if (c == 'b') { kol[0] += 1; } - else if (c == 'd') { kol[1] += 1; } - else if (c == 'c') { kol[2] += 1; } - else if (c == 'f') { kol[3] += 1; } - else if (c == 'g') { kol[4] += 1; } - else if (c == 'h') { kol[5] += 1; } - else if (c == 'j') { kol[6] += 1; } - else if (c == 'k') { kol[7] += 1; } - else if (c == 'l') { kol[8] += 1; } - else if (c == 'm') { kol[9] += 1; } - else if (c == 'n') { kol[10] += 1; } - else if (c == 'p') { kol[11] += 1; } - else if (c == 'q') { kol[12] += 1; } - else if (c == 'r') { kol[13] += 1; } - else if (c == 's') { kol[14] += 1; } - else if (c == 't') { kol[15] += 1; } - else if (c == 'v') { kol[16] += 1; } - else if (c == 'w') { kol[17] += 1; } - else if (c == 'x') { kol[18] += 1; } - else if (c == 'z') { kol[19] += 1; } - } - - for (int i = 0; i < 20; i++) - { - if (max < kol[i]) - { - max = kol[i]; - num = i; - } - } - - if (num == 0) { a = 'b'; } - else if (num == 1) { a = 'd'; } - else if (num == 2) { a = 'c'; } - else if (num == 3) { a = 'f'; } - else if (num == 4) { a = 'g'; } - else if (num == 5) { a = 'h'; } - else if (num == 6) { a = 'j'; } - else if (num == 7) { a = 'k'; } - else if (num == 8) { a = 'l'; } - else if (num == 9) { a = 'm'; } - else if (num == 10) { a = 'n'; } - else if (num == 11) { a = 'p'; } - else if (num == 12) { a = 'q'; } - else if (num == 13) { a = 'r'; } - else if (num == 14) { a = 's'; } - else if (num == 15) { a = 't'; } - else if (num == 16) { a = 'v'; } - else if (num == 17) { a = 'w'; } - else if (num == 18) { a = 'x'; } - else if (num == 19) { a = 'z'; } - - cout << "\n" << max << " [" << a << "]"; - } - else - { - cout << "ne okey..."; - _getch(); - exit(0); - } -} -``` - -## 5.4 «Ряды» - -**Что известно по PDF.** В формулировке указано только то, что это индивидуальный вариант на человека. - -**Что учесть.** В `resources/procedural-programming` нет отдельного условия или `cpp`-файла для конкретного варианта, поэтому в вики нельзя восстановить точную постановку без исходного личного задания. - -## 5.5 «Файлы» - -**Что известно по PDF.** Здесь ситуация такая же, как и в пункте `5.4`: в PDF сказано, что вариант индивидуальный. - -**Что учесть.** Без отдельного листа варианта или готового исходника точную задачу восстановить нельзя. - -## 5.6 «Шарики» - -**Условие.** Из урны последовательно достают пронумерованные шарики. Нужно посчитать число перестановок, в которых номер хотя бы одного шарика совпадает с номером шага. - -**Как устроено решение.** Ниже приведён аккуратный эталонный вариант, который соответствует алгоритму из PDF: строятся все перестановки, а на листе рекурсии проверяется наличие хотя бы одного совпадения `balls[i] == i + 1`. - -**Что учесть.** Это уже полноценная рекурсивная задача на перебор перестановок. Решение сохраняет идею из формулировки и работает для произвольного `n`, хотя на больших значениях факториальный рост быстро делает перебор тяжёлым. - -```cpp title="resources/procedural-programming/home-work-5/5.6.cpp" -#include -#include -using namespace std; - -bool hasFixedPoint(const vector& balls) { - for (int i = 0; i < static_cast(balls.size()); ++i) { - if (balls[i] == i + 1) { - return true; - } - } - return false; -} - -void generatePermutations(int position, vector& balls, long long& count) { - if (position == static_cast(balls.size())) { - if (hasFixedPoint(balls)) { - ++count; - } - return; - } - - for (int i = position; i < static_cast(balls.size()); ++i) { - swap(balls[position], balls[i]); - generatePermutations(position + 1, balls, count); - swap(balls[position], balls[i]); - } -} - -int main() { - int n; - cin >> n; - - if (n <= 0) { - cout << "Некорректное количество шариков"; - return 0; - } - - vector balls(n); - for (int i = 0; i < n; ++i) { - balls[i] = i + 1; - } - - long long count = 0; - generatePermutations(0, balls, count); - cout << count; - return 0; -} -``` diff --git a/content/procedural-programming/index.mdx b/content/procedural-programming/index.mdx deleted file mode 100644 index d3e8b24..0000000 --- a/content/procedural-programming/index.mdx +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Процедурное программирование -description: Домашние работы по процедурному программированию с условиями, кодом и подробным разбором. -order: 1 ---- - -## О разделе - -В этом разделе собраны домашние работы по процедурному программированию, которые были добавлены в `resources/procedural-programming` в формате PDF и C++-исходников. Формулировки из PDF перенесены в вики, а для каждой задачи добавлены: - -- краткое описание условия; -- логика решения; -- исходный код; -- замечания по тому, что именно делает сохранённая реализация. - -## Домашние работы - -- [ДЗ 1 — Ввод, арифметика и уравнения](./homework-01-basics) -- [ДЗ 2 — Формулы, ветвления и табуляция](./homework-02-formulas-and-branching) -- [ДЗ 3 — Заём, файлы и работа со строками](./homework-03-files-and-strings) -- [ДЗ 4 — Функции, файлы, графика и системы счисления](./homework-04-functions-and-automation) -- [ДЗ 5 — НОД, простые числа, индивидуальные варианты и шарики](./homework-05-number-theory-and-combinatorics) - -## Что осталось в ресурсах - -После переноса в вики в `resources/procedural-programming` остаются только `cpp`-файлы с решениями и вспомогательный код. PDF-формулировки больше не нужны, потому что их содержание уже встроено в документацию. diff --git a/content/project-management/index.mdx b/content/project-management/index.mdx deleted file mode 100644 index 0bea6c6..0000000 --- a/content/project-management/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Управление проектами -description: Планирование, управление рисками, сроками и командной разработкой. -order: 1 ---- - -## О разделе - -Раздел **Управление проектами** добавлен в StackMIREA и готов к наполнению учебными материалами. - -## Что можно публиковать - -- Практические работы -- Конспекты и чеклисты -- Разборы задач и примеры кода diff --git a/content/python/index.mdx b/content/python/index.mdx deleted file mode 100644 index 8966298..0000000 --- a/content/python/index.mdx +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: Python -description: Практические работы по Python в формате MDX-документации. -order: 1 ---- - -## Что внутри - -- Практика 4: OOP и AST -- Практика 5: тестирование и валидация -- Практика 6 и 6.2: комбинаторы и функциональный стиль -- Полный перенос тетрадей в `docs/python` и `content/python` diff --git a/content/python/overview.mdx b/content/python/overview.mdx deleted file mode 100644 index 253b5e2..0000000 --- a/content/python/overview.mdx +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: "Python — обзор" -sidebar_position: 1 -description: "Практики Python в формате технической документации." -slug: "/python/overview" ---- - -# Python Практики - -Раздел содержит практические работы по Python в формате документации MDX. - -## Что внутри - -- объектно-ориентированное программирование; -- тестирование и валидация; -- функциональный стиль и комбинаторы; -- регулярные выражения и обработка текста. - -## Практики - -- [Практика 4 — OOP](./practice-4-oop) -- [Практика 5 — Тестовая автоматизация](./practice-5-test-automation) -- [Практика 6 — Комбинаторы и функциональный стиль](./practice-6-regex-combinators) -- [Практика 6.2 — Расширенные комбинаторы regex](./practice-6-2-regex-combinators) diff --git a/content/python/practice-4-oop.mdx b/content/python/practice-4-oop.mdx deleted file mode 100644 index d1985ea..0000000 --- a/content/python/practice-4-oop.mdx +++ /dev/null @@ -1,429 +0,0 @@ ---- -title: "Практика 4 — OOP" -sidebar_position: 2 -description: "Классы, объекты и деревья выражений из рабочей тетради №4." -slug: "/python/practice-4-oop" ---- - -> Источник: `pr_Python/pr_Python/pract4.ipynb` - -# Выполнение рабочей тетради № 4 - -# 1. Некоторые операции с классами и объектами - -## 1.1. (уровень сложности: простейший) - -Напишите код, который выведет на экране все имена полей объекта произвольного пользовательского класса, -кроме служебных имен. - -````python -class Body(object): - def __init__(self,age, len): - self.age = age - self.len = len - -def main(): - Mark = Body(18,186); - print(Mark.age,", ",Mark.len) - -main() -```` - -Вывод: - -````text -18 , 186 -```` - -## 1.2. (уровень сложности: простейший) - -Напишите код, который по имени метода, заданному строкой, - вызовет этот метод в объекте некоторого пользовательского класса. - -````python -class Body(object): - def __init__(self,age, len): - self.age = age - self.len = len - - def Alive(self): - print("This guy is alive. He is ",self.age," y. o.") - - -def main(): - Mark = Body(18,186); - Mark.Alive(); - -main() -```` - -Вывод: - -````text -This guy is alive. He is 18 y. o. -```` - -## 1.3. (уровень сложности: простейший) - -С кодом ниже что-то не так. Что именно неправильно и как это исправить? -``` -class A: - pass - -class B(A): - pass - -class C(A, B): - pass -``` - -````python -class A: - pass - -class B(A): - pass - -class C(B):#here - pass -```` - -## 1.4. (уровень сложности: низкий) - -Напишите функцию-однострочник get_inheritance для вывода строки, - отражающей иерархию наследования для входного класса. - -Пример: -``` ->>>print(get_inheritance(OSError)) -OSError -> Exception -> BaseException -> object -``` - -````python -class Car(): - pass - -class Door(Car): - pass - -class Door_color(Door, Car): - pass - -def getinheritance(classname): - return f"{classname.__name__} -> {', '.join([base.__name__ for base in classname.__bases__])}" - -print(getinheritance(Door_color)) -```` - -Вывод: - -````text -Door_color -> Door, Car -```` - -# 2. Своя реализация структуры данных - -Реализуйте хэш-таблицу, аналог встроенного dict. - -Используйте для внутренней реализации список пар ключ-значение. - -Примените тестирование на случайных данных с использованием assert и оригинального dict. - -## 2.1. (уровень сложности: средний) - -Реализуйте методы чтения, записи и получения размера хэш-таблицы. - -## 2.2. (уровень сложности: низкий) - -Реализуйте для методов своей хэш-таблицы тот же интерфейс, что и в dict, включая перегрузку операций. - -Ссылка на dict - https://pythonru.com/osnovy/python-dict - -## 2.3. (уровень сложности: средний) - -Реализуйте поддержку итератора для цикла for. Обязательно протестируйте код на примерах с вложенными циклами! - -````python -class MyHashTable: - def __init__(self): - self.key_value_pairs = [] - - def __getitem__(self, key): - for k, v in self.key_value_pairs: - if k == key: - return v - raise KeyError(f"Key '{key}' not found") - - def __setitem__(self, key, value): - for i, (k, v) in enumerate(self.key_value_pairs): - if k == key: - self.key_value_pairs[i] = (key, value) - return - self.key_value_pairs.append((key, value)) - - def __len__(self): - return len(self.key_value_pairs) - - def __delitem__(self, key): - for i, (k, v) in enumerate(self.key_value_pairs): - if k == key: - del self.key_value_pairs[i] - return - raise KeyError(f"Key '{key}' not found") - - def __iter__(self): - return iter(self.key_value_pairs) - -# Тестирование пользовательской хэш-таблицы -my_dict = MyHashTable() -my_dict["name"] = "Alice" -my_dict["age"] = 30 -my_dict["city"] = "Wonderland" - -# Получение значений -print(my_dict["name"]) # Вывод: Alice -print(my_dict["age"]) # Вывод: 30 -print(my_dict["city"]) # Вывод: Wonderland - -# Размер хэш-таблицы -print(len(my_dict)) # Вывод: 3 - -# Удаление ключа -del my_dict["age"] -print(len(my_dict)) # Вывод: 2 - -# Итерация по парам ключ-значение -for key, value in my_dict: - print(f"{key}: {value}") -```` - -Вывод: - -````text -Тестирование успешно завершено. -```` - -# 3. Деревья выражений - -Требуется реализовать операции для печати, вычисления арифметических выражений и компиляции выражений в код стековой машины. - -## 3.1. (уровень сложности: низкий) - -Реализовать классы узлов дерева: Num, Add и Mul. Эти классы просто хранят данные и ничего не знают о действиях, которые могут производиться над выражениями. - -Пример, который будет использоваться далее: -``` -ast = Add(Num(7), Mul(Num(3), Num(2))) -``` - -````python -class Num: - def __init__(self, value): - self.value = value - - def print(self): - return str(self.value) - - def evaluate(self): - return self.value - - def compile(self): - return f"push {self.value}\n" - - -class Add: - def __init__(self, left, right): - self.left = left - self.right = right - - def print(self): - return f"({self.left.print()} + {self.right.print()})" - - def evaluate(self): - return self.left.evaluate() + self.right.evaluate() - - def compile(self): - return self.left.compile() + self.right.compile() + "add\n" - - -class Mul: - def __init__(self, left, right): - self.left = left - self.right = right - - def print(self): - return f"({self.left.print()} * {self.right.print()})" - - def evaluate(self): - return self.left.evaluate() * self.right.evaluate() - - def compile(self): - return self.left.compile() + self.right.compile() + "mul\n" - - -# Пример использования: -ast = Add(Num(7), Mul(Num(3), Num(2))) - -# Вывод выражения: -print(ast.print()) - -# Вычисление значения выражения: -print("Result:", ast.evaluate()) - -# Компиляция в код стековой машины: -print("Compiled code:") -print(ast.compile()) -```` - -Вывод: - -````text -(7 + (3 * 2)) -Result: 13 -Compiled code: -push 7 -push 3 -push 2 -mul -add -```` - -## 3.2. (уровень сложности: средний) - -Реализовать класс-посетитель PrintVisitor для печати выражения. Обойтись без перегрузки repr и str, а также без операторов ветвления! - -Пример: -``` ->>> pv = PrintVisitor() ->>> print(pv.visit(ast)) -(7 + (3 * 2)) -``` - -````python -class Num: - def __init__(self, value): - self.value = value - - def accept(self, visitor): - return visitor.visit_num(self) - - -class Add: - def __init__(self, left, right): - self.left = left - self.right = right - - def accept(self, visitor): - return visitor.visit_add(self) - - -class Mul: - def __init__(self, left, right): - self.left = left - self.right = right - - def accept(self, visitor): - return visitor.visit_mul(self) - - -class PrintVisitor: - def visit_num(self, node): - return str(node.value) - - def visit_add(self, node): - return f"({node.left.accept(self)} + {node.right.accept(self)})" - - def visit_mul(self, node): - return f"({node.left.accept(self)} * {node.right.accept(self)})" - - -# Пример использования: -ast = Add(Num(7), Mul(Num(3), Num(2))) - -pv = PrintVisitor() -print(pv.visit_add(ast)) -```` - -Вывод: - -````text -(7 + (3 * 2)) -```` - -## 3.3. (уровень сложности: средний) - -Реализовать класс-посетитель CalcVisitor для вычисления выражения. Обойтись без eval с exec, а также без операторов ветвления! - -Пример: -``` ->>> cv = CalcVisitor() ->>> print(cv.visit(ast)) -13 -``` - -````python - class Num: - def __init__(self, value): - self.value = value - - def accept(self, visitor): - return visitor.visit_num(self) - -class Add: - def __init__(self, left, right): - self.left = left - self.right = right - - def accept(self, visitor): - return visitor.visit_add(self) - - -class Mul: - def __init__(self, left, right): - self.left = left - self.right = right - - def accept(self, visitor): - return visitor.visit_mul(self) - - -class PrintVisitor: - def visit_num(self, node): - return str(node.value) - - def visit_add(self, node): - return f"({node.left.accept(self)} + {node.right.accept(self)})" - - def visit_mul(self, node): - return f"({node.left.accept(self)} * {node.right.accept(self)})" - - -class CalcVisitor: - def visit_num(self, node): - return node.value - - def visit_add(self, node): - return node.left.accept(self) + node.right.accept(self) - - def visit_mul(self, node): - return node.left.accept(self) * node.right.accept(self) - - -# Пример использования: -ast = Add(Num(7), Mul(Num(3), Num(2))) - -# Печать выражения -pv = PrintVisitor() -print(pv.visit_add(ast)) - -# Вычисление выражения -cv = CalcVisitor() -print(cv.visit_add(ast)) -```` - -Вывод: - -````text -(7 + (3 * 2)) -13 -```` diff --git a/content/python/practice-5-test-automation.mdx b/content/python/practice-5-test-automation.mdx deleted file mode 100644 index bdc2581..0000000 --- a/content/python/practice-5-test-automation.mdx +++ /dev/null @@ -1,889 +0,0 @@ ---- -title: "Практика 5 — Тестовая автоматизация" -sidebar_position: 3 -description: "Практикум по pytest, coverage, мутационному и property-based тестированию." -slug: "/python/practice-5-test-automation" ---- - -> Источник: `pr_Python/pr_Python/pract5.ipynb` - -# Практическое занятие №5 - -  Многие задачи из этого блокнота решать удобнее в парном составе: один студент занимается написанием кода программы и пытается внести в код такие ошибки, которые будет сложно выявить с помощью тестов другому студенту. - -  Далее потребуется несколько программ, содержащих ошибки. Если в задаче явно не указана программа для тестирования, то используется одна из следующих программ: - -### 1. Сортировка. - -````python -def bucketsort(arr, k): - counts = [0] * k - for x in arr: - counts[x] += 1 - - sorted_arr = [] - for i in range(k): - sorted_arr.extend([i] * counts[i]) - - return sorted_arr -```` - -### 2. Бинарный поиск. - -````python -def binary_search(arr, x): - left = 0 - right = len(arr) - while left <= right: - mid = round((left + right) / 2) - if arr[mid] == x: - return mid - if arr[mid] < x: - left = mid + 1 - else: - right = mid - return -1 -```` - -### 3. Вычисление расстояния между точками. - -````python -def distance(x1, y1, x2, y2): - return ((x2 + x1)**2 - (y2 + y1)**2) ** 0.25 -```` - -### 4. Определение типа треугольника. - -````python -def triangle_type(x1, y1, x2, y2, x3, y3): - a = distance(x1, y1, x2, y2) - b = distance(x2, y2, x3, y3) - c = distance(x3, y3, x1, y1) - if a == b == c: - return "равнобедренный" - elif a == b or a == c or b == c: - return "равносторонний" - elif a != b != c: - return "разносторонний" -```` - -### 5. Сжатие и расжатие данных по методу RLE. - -````python -def encode_rle(data): - encoded = bytes() - count = 0 - last_char = data[-1] - for i in range(1, len(data) + 1): - if data[i] == last_char: - count += 1 - else: - encoded.append(data[i]) - encoded.append(count) - count = 1 - last_char = data[i] - encoded.append(count) - encoded.append(last_char) - return bytes(encoded) - -def decode_rle(data): - decoded = bytes() - i = 1 - while i < len(data): - count = data[i - 1] - char = data[i] - decoded.extend([char]*count) - i += 1 - return bytes(decoded) -```` - -### 6. Банковский счет. - -````python -class BankAccount: - def __init__(self, account_number, balance=0): - self.account_number = account_number - self.balance = balance - - def deposit(self, amount): - self.balance += amount - return f"{amount} средств успешно зачислены на счет {self.account_number}" - - def withdraw(self, amount): - self.balance -= amount - return f"{amount} средств успешно сняты с счета {self.account_number}" - - def check_balance(self): - return f"Баланс счета {self.account_number}: {self.balance}" -```` - -### 7. Банковский счет с использованием базы данных. - -````python -import sqlite3 - -class BankAccount: - def __init__(self, account_number): - self.account_number = account_number - self.conn = sqlite3.connect('bank.db') - self.cursor = self.conn.cursor() - self.cursor.execute( - "CREATE TABLE IF NOT EXISTS accounts (account_number INTEGER PRIMARY KEY, balance REAL)") - self.conn.commit() - - def deposit(self, amount): - self.cursor.execute( - "UPDATE accounts SET balance = balance + ? WHERE account_number = ?", (amount, self.account_number)) - self.conn.commit() - return f"{amount} средств успешно зачислены на счет {self.account_number}" - - def withdraw(self, amount): - self.cursor.execute( - "SELECT balance FROM accounts WHERE account_number = ?", (self.account_number,)) - balance = self.cursor.fetchone()[0] - self.cursor.execute( - "UPDATE accounts SET balance = balance - ? WHERE account_number = ?", (amount, self.account_number)) - self.conn.commit() - return f"{amount} средств успешно сняты с счета {self.account_number}" - - def check_balance(self): - self.cursor.execute( - "SELECT balance FROM accounts WHERE account_number = ?", (self.account_number,)) - balance = self.cursor.fetchone()[0] - return f"Баланс счета {self.account_number}: {balance}" - - def close_account(self): - self.cursor.execute( - "DELETE FROM accounts WHERE account_number = ?", (self.account_number,)) - self.conn.commit() - return f"Счет {self.account_number} закрыт" - - def create_account(self, balance): - self.cursor.execute( - "INSERT INTO accounts (account_number, balance) VALUES (?, ?)", (self.account_number, balance)) - self.conn.commit() - return f"Счет {self.account_number} успешно создан" -```` - -# 1. Вводные задачи - -## 1.1. (уровень сложности: низкий) - - Исправьте функцию distance. Добавьте документацию к функции в виде docstring-строки. Укажите примеры в формате doctest. Примеры должны охватывать граничные случаи. Протестируйте программу с помощью вызова модуля doctest. Перенесите примеры в отдельный файл и снова протестируйте программу. - -````python -def distance(x1, y1, x2, y2): - """ - Calculate the Euclidean distance between two points in a 2D plane. - - Arguments: - x1 -- x-coordinate of the first point - y1 -- y-coordinate of the first point - x2 -- x-coordinate of the second point - y2 -- y-coordinate of the second point - - Returns: - Euclidean distance between the two points - - Formula: - distance = sqrt((x2 - x1)**2 + (y2 - y1)**2) - - Example: - >>> distance(0, 0, 3, 4) # 3-4-5 right triangle - 5.0 - >>> distance(0, 0, 1, 1) # distance is sqrt(2) - 1.4142135623730951 - >>> distance(0, 0, 0, 0) # distance between the same point - 0.0 - """ - return ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5 - -import doctest -doctest.testmod() -```` - -Вывод: - -````text -TestResults(failed=0, attempted=3) -```` - -## 1.2.(уровень сложности: высокий) * - - Добавьте к функции сортировки тестирование на случайных данных. Исправьте ошибки в функции. - - Напишите к функции сортировки отдельную функцию-спецификацию в виде набора assert'ов. Спецификация должна исчерпывающим образом описывать задачу сортировки (без привлечения готовых функций сортировки), иными словами – для общего случая нельзя придумать такое искажение кода сортировки, которое будет принято спецификацией. - -### 1.2.1 Сортировка. - -````python -def test_bucketsort_specification(): - # Генерируем случайный список arr и число k для тестирования - arr = [4, 1, 5, 3, 2, 4, 2, 0, 1, 3, 5, 0] - k = max(arr) + 1 - - # Проверяем, что список arr не пустой - assert arr - - # Проверяем, что все элементы в списке arr являются целыми неотрицательными числами - assert all(isinstance(x, int) and x >= 0 for x in arr) - - # Проверяем, что k больше 0 - assert k > 0 - - # Проверяем, что для каждого элемента x в списке arr он не превосходит k - assert all(x < k for x in arr) - - # Запускаем сортировку bucketsort - sorted_arr = bucketsort(arr, k) - - # Проверяем, что длина отсортированного списка совпадает с исходным - assert len(sorted_arr) == len(arr) - - # Проверяем, что все элементы в отсортированном списке находятся в правильном порядке - for i in range(len(sorted_arr) - 1): - assert sorted_arr[i] <= sorted_arr[i+1] - - # Проверяем, что все элементы из исходного списка присутствуют в отсортированном - assert all(elem in sorted_arr for elem in arr) - - # Проверяем, что все элементы в отсортированном списке меньше или равны k-1 - assert all(elem <= k-1 for elem in sorted_arr) -```` - -### 1.2.2 Бинарный поиск. - -````python -def test_binary_search_specification(): - # Генерируем случайный отсортированный список arr для тестирования - arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] - - # Проверяем, что список arr не пустой - assert arr - - # Проверяем, что все элементы в списке arr являются целыми числами - assert all(isinstance(x, int) for x in arr) - - # Проверяем, что список arr отсортирован по возрастанию - assert all(arr[i] <= arr[i+1] for i in range(len(arr) - 1)) - - # Проверяем, что для каждого элемента x в списке arr он присутствует в списке - for x in arr: - assert binary_search(arr, x) != -1 - - # Проверяем, что отрицательное число не находится в списке arr - assert binary_search(arr, -1) == -1 - - # Проверяем, что число, большее максимального элемента в списке arr, не находится в списке - assert binary_search(arr, 10) == -1 -```` - -### 1.2.3. Вычисление расстояния между точками. - -````python -import math - -def test_distance_specification(): - # Проверяем расстояние между двумя точками (0, 0) и (3, 4) - это треугольное число - assert distance(0, 0, 3, 4) == 5.0 - - # Проверяем расстояние между двумя точками (1, 2) и (4, 6) - assert distance(1, 2, 4, 6) == 5.0 - - # Проверяем расстояние между двумя одинаковыми точками (0, 0) и (0, 0) - assert distance(0, 0, 0, 0) == 0.0 - - # Проверяем симметричность расстояния: расстояние между (1, 2) и (4, 6) равно расстоянию между (4, 6) и (1, 2) - assert distance(1, 2, 4, 6) == distance(4, 6, 1, 2) - - # Проверяем, что расстояние между точками всегда неотрицательно - assert distance(1, 2, 3, 4) >= 0 - - # Проверяем свойство треугольного неравенства: для трех точек (x1, y1), (x2, y2), - # (x3, y3) расстояние между (x1, y1) и (x3, y3) не больше, - # чем сумма расстояний между точками (x1, y1) и (x2, y2), (x2, y2) и (x3, y3) - assert distance(1, 1, 3, 1) <= distance(1, 1, 2, 2) + distance(2, 2, 3, 1) -```` - -### 1.2.4. Определение типа треугольника. - -````python -def test_triangle_type_specification(): - # Проверяем тип равностороннего треугольника - assert triangle_type(0, 0, 1, math.sqrt(3), 2, 0) == "равносторонний" - - # Проверяем тип равнобедренного треугольника - assert triangle_type(0, 0, 1, 0, 0.5, math.sqrt(3) / 2) == "равнобедренный" - - # Проверяем тип разностороннего треугольника - assert triangle_type(0, 0, 1, 1, 2, 3) == "разносторонний" - - # Проверяем тип равнобедренного треугольника (все равны стороны) - assert triangle_type(0, 0, 1, 0, 0.5, math.sqrt(3) / 2) == "равнобедренный" - - # Проверяем, что треугольник с вершинами в одной точке не имеет типа - assert triangle_type(0, 0, 0, 0, 0, 0) is None -```` - -### 1.2.5. Сжатие и расжатие данных по методу RLE. - -````python -def test_encode_decode_rle_specification(): - # Проверяем кодирование - assert encode_rle(bytes([1, 1, 1, 2, 2, 3, 3, 3, 3])) == bytes([1, 3, 2, 2, 3, 4]) - - # Проверяем декодирование - assert decode_rle(bytes([1, 3, 2, 2, 3, 4])) == bytes([1, 1, 1, 2, 2, 3, 3, 3, 3]) - - # Проверяем крайний случай с одним элементом - assert encode_rle(bytes([5])) == bytes([5, 1]) - assert decode_rle(bytes([5, 1])) == bytes([5]) - - # Проверяем пустую последовательность - assert encode_rle(bytes([])) == bytes([]) - assert decode_rle(bytes([])) == bytes([]) - - # Проверяем последовательность с одним повторяющимся элементом - assert encode_rle(bytes([1, 1, 1, 1, 1])) == bytes([1, 5]) - assert decode_rle(bytes([1, 5])) == bytes([1, 1, 1, 1, 1]) - - # Проверяем последовательность с различными элементами - assert encode_rle(bytes([4, 4, 1, 1, 2, 2, 2, 5, 6, 6, 6, 3, 3])) == bytes([4, 2, 1, 2, 2, 3, 5, 6, 3, 3]) - assert decode_rle(bytes([4, 2, 1, 2, 2, 3, 5, 6, 3, 3])) == bytes([4, 4, 1, 1, 2, 2, 2, 5, 6, 6, 6, 3, 3]) -```` - -### 1.2.6. Банковский счет. - -### 1.2.7. Банковский счет с использованием базы данных. - -## 1.3. (уровень сложности: средний) - - Реализуйте конструкцию raises с помощью менеджера контекста в духе таковой из pytest. - -Пример использования: - -``` -with raises(MealyError) as e: - ... -``` - -````python -class MealyError(Exception): - pass - -class RaisesContext: - def __init__(self, exception): - self.exception = exception - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_value, traceback): - if exc_type is None: - raise AssertionError(f"{self.exception.__name__} was not raised") - if issubclass(exc_type, self.exception): - return True - - raise AssertionError(f"Expected {self.exception.__name__}, but got {exc_type.__name__}") - -def raises(exception): - return RaisesContext(exception) -```` - -````python -with raises(MealyError) as e: - raise MealyError("This error was explicitly raised") - -# No assertion error is raised -```` - -# 2. Библиотеки pytest и coverage - -### 2.1. (уровень сложности: средний) - - Научитесь работать с модулем pytest. Выберите одну из программ, содержащих ошибки. Создайте отдельный файл для тестирования, в который поместите тестирующие функции (не менее двух). Упростите код с помощью добавления fixture-функций. Добавьте параметризацию. - -````python -# Программа с ошибками (program.py) -def divide_numbers(a, b): - return a / b - -def uppercase_string(s): - return s.upper() - - - -# Тестирование программы с помощью pytest (test_program.py) -import pytest -from program import divide_numbers, uppercase_string #pycharm work - -@pytest.fixture -def numbers(): - return 10, 2 - -def test_divide_numbers(numbers): - a, b = numbers - assert divide_numbers(a, b) == 5 - -@pytest.mark.parametrize("test_input, expected", [("hello", "HELLO"), ("world", "WORLD")]) -def test_uppercase_string(test_input, expected): - assert uppercase_string(test_input) == expected -```` - -### 2.2. (уровень сложности: средний) - - Выберите одну из программ, содержащих ошибки. Добавьте туда ввод со стороны пользователя. Добавьте макетный код для тестирования, с учетом такого ввода. - -````python -# Программа с ошибкой и вводом от пользователя (program_with_error.py) -def divide_numbers(): - try: - a = float(input("Enter the first number: ")) - b = float(input("Enter the second number: ")) - result = a / b - return result - except ZeroDivisionError: - return "Error: Division by zero" - except ValueError: - return "Error: Invalid input" - -def uppercase_string(): - s = input("Enter a string: ") - return s.upper() -```` - -Теперь давайте создадим файл для тестирования с использованием pytest, учитывая ввод от пользователя: - -````python -# Тестирование программы с ошибкой и вводом от пользователя (test_program_with_error.py) -import pytest -from program_with_error import divide_numbers, uppercase_string -from io import StringIO - -@pytest.fixture -def numbers(monkeypatch): - monkeypatch.setattr('sys.stdin', StringIO("10\n2\n")) - return 10, 2 - -def test_divide_numbers(numbers): - assert divide_numbers() == 5 - -@pytest.mark.parametrize("test_input, expected", [("hello\n", "HELLO"), ("world\n", "WORLD")]) -def test_uppercase_string(test_input, expected, monkeypatch): - monkeypatch.setattr('sys.stdin', StringIO(test_input)) - assert uppercase_string() == expected -```` - -В этом файле мы также использовали @pytest.fixture для создания fixture-функции numbers, которая изменяет стандартный поток ввода sys.stdin на заданные значения. Это позволяет нам имитировать ввод от пользователя в тестах. - - Тестирующие функции test_divide_numbers и test_uppercase_string теперь также учитывают ввод от пользователя, благодаря использованию pytest.mark.parametrize и изменению потока ввода для каждого теста. - - Для запуска тестов также используйте команду pytest в терминале, указав файл для тестирования: - -``` -pytest test_program_with_error.py -``` - - Теперь программа с ошибкой и вводом от пользователя готова для тестирования с помощью pytest. - -### 2.2. (уровень сложности: средний) - - Научитесь работать с модулем coverage. Выберите одну из программ, содержащих ошибки. Получите статистику по покрытию операторов. Получите статистику по покрытию ветвей. Найдите случай, когда покрытие ветвей отличается от покрытия операторов. - - Постарайтесь изменить код исходной программы так, чтобы затруднить получение 100% покрытия. Найдите простой пример ошибки в выбранной программе, при полученном 100% покрытии. - - Реализуйте вывод статистики о покрытии в HTML-представлении с демонстрацией покрытия по строкам программы. - -Решение: - - Для примера, давайте выберем программу с ошибкой "programwitherror.py" из предыдущего примера и попробуем использовать модуль coverage для анализа покрытия кода. - - Сначала установим модуль coverage, если он еще не установлен, с помощью команды: -``` -pip install coverage -``` - - Теперь создадим скрипт, который запускает тесты с использованием coverage и собирает статистику покрытия: -``` -coverage run -m pytest test_program_with_error.py -``` - - После того как тесты успешно выполнены, мы можем получить статистику по покрытию операторов: -``` -coverage report -m -``` - - Это покажет покрытие по каждому файлу, каждой функции и оператору внутри функции. - - Далее, для анализа покрытия ветвей, воспользуемся командой: -``` -coverage report -m --include=program_with_error.py -``` - - Теперь давайте внесем изменения в программу, чтобы создать ситуацию, когда покрытие ветвей отличается от покрытия операторов: - -````python -# Изменим программу, чтобы создать ошибку при 100% покрытии -def divide_numbers(a, b): - if b == 0: - return "Error: Division by zero" - result = a / b - return result - -def uppercase_string(s): - if not s: - return "Error: Empty input" - return s.upper() -```` - -Теперь добавим тесты и изменения в файл для тестирования: - -````python -# Изменения в тестах для новой версии программы с ошибкой (test_program_with_error_v2.py) -import pytest -from program_with_error_v2 import divide_numbers, uppercase_string - -def test_divide_numbers(): - assert divide_numbers(10, 0) == "Error: Division by zero" - assert divide_numbers(10, 2) == 5 - -def test_uppercase_string(): - assert uppercase_string("") == "Error: Empty input" - assert uppercase_string("hello") == "HELLO" -```` - -И, наконец, выведем статистику покрытия в HTML-представлении с помощью команды: -``` -coverage html -``` - - После выполнения этой команды, вы найдете папку "htmlcov" в текущей директории, в которой содержится детальная информация о покрытии операторов и ветвей, включая подсвеченный исходный код с указанием покрытых и непокрытых строк. - - Теперь вы можете исследовать различия между покрытием операторов и ветвей, а также обнаружить пример ошибки, проявляющейся при 100% покрытии. - -# 3. Мутационное тестирование - - Прототип системы мутационного тестирования приведен ниже. Попробуйте разобраться в том, как работает этот код. Вам поможет документация к модулю ast. - - Функция mut_test принимает на вход тестируемую функцию и функцию, осуществляющую тестирование с помощью assert. - -````python -import random -from collections import defaultdict -import inspect -import ast - - -class Mutator(ast.NodeTransformer): - def visit_Constant(self, node): - # TODO - return node - - -def mutate_code(src): - tree = ast.parse(src) - Mutator().visit(tree) - return ast.unparse(tree) - - -def make_mutants(func, size): - mutant = src = ast.unparse(ast.parse(inspect.getsource(func))) - mutants = [src] - while len(mutants) < size + 1: - while mutant in mutants: - mutant = mutate_code(src) - mutants.append(mutant) - return mutants[1:] - - -def mut_test(func, test, size=20): - survived = [] - mutants = make_mutants(func, size) - for mutant in mutants: - try: - exec(mutant, globals()) - test() - survived.append(mutant) - except: - pass - return survived -```` - -### 3.1. (уровень сложности: средний) - - Выберите одну из программ, содержащих ошибки. Доработайте код мутационного тестирования так, чтобы генерировались программы-мутанты со случайными константами. Покажите, что при 100% покрытии тестами мутационное тестирование в состоянии находить ошибки. - -````python -def divide_by_two(num): - return num / 2 - - -class Mutator(ast.NodeTransformer): - def visit_Constant(self, node): - if isinstance(node.value, int) or isinstance(node.value, float): - if random.random() < 0.5: # 50% вероятность мутации константы - mutated_value = random.randint(-100, 100) # случайное целое число от -100 до 100 - return ast.copy_location(ast.Constant(value=mutated_value), node) - return node - - -def test_divide_by_two(): - assert divide_by_two(4) == 2 - -def test_mutant_divide_by_two(): - assert divide_by_two(42) == 21 # Неверное ожидаемое значение для успешного тестирования - -def main(): - survivors = mut_test(divide_by_two, test_divide_by_two) - print("Survived mutants:", len(survivors)) - -if __name__ == "__main__": - main() -```` - -Вывод: - -````text -Survived mutants: 0 -```` - -### 3.2. (уровень сложности: средний) - - Добавьте к системе мутационного тестирования генерацию случайных бинарных операций. Проверьте результат на сортировке. Постарайтесь генерировать программы-мутанты, которые «выживают» после большинства assert'ов. - -````python -import ast -import random - -class Mutator(ast.NodeTransformer): - def visit_BinOp(self, node): - if random.random() < 0.5: # 50% вероятность мутации бинарной операции - operators = [ast.Add(), ast.Sub(), ast.Mult(), ast.Div()] # возможные операторы - mutated_op = random.choice(operators) - return ast.copy_location(ast.BinOp(left=node.left, op=mutated_op, right=node.right), node) - return node - - - -def bubble_sort(arr): - n = len(arr) - for i in range(n): - for j in range(0, n-i-1): - if arr[j] > arr[j+1]: - arr[j], arr[j+1] = arr[j+1], arr[j] - return arr - -def test_bubble_sort(): - assert bubble_sort([3, 1, 2]) == [1, 2, 3] - -def test_mutant_bubble_sort(): - assert bubble_sort([42, 3, 15]) == [3, 15, 42] # Неверное ожидаемое значение для успешного тестирования - -def main(): - survivors = mut_test(bubble_sort, test_bubble_sort) - print("Survived mutants:", len(survivors)) - -if __name__ == "__main__": - main() -```` - -Вывод: - -````text -Survived mutants: 1 -```` - -# 4. Контракты - -### 4.1. (уровень сложности: средний) - - Изучите работу с модулем deal. Для тестирования контрактов используйте pytest. Выберите одну из программ, содержащих ошибки. Добавьте к программе контракты pre, post, ensure, raises, reason, has. - -````python -# pip install deal pytest - -def divide(a, b): - return a / b - -def test_divide(): - assert divide(10, 2) == 5 - assert divide(5, 0) == 0 # Ошибка: деление на ноль - - -# import deal - -@deal.pre(lambda a, b: b != 0, "Делитель не должен быть равен нулю") -@deal.post(lambda _, __, result: result != float('inf'), "Результат не должен быть бесконечностью") -@deal.ensure(lambda _, __, result, old_result: old_result * b == a, "Корректность деления") -@deal.raises(ZeroDivisionError) -def divide(a, b): - return a / b - -def test_divide(): - assert divide(10, 2) == 5 -```` - -````python -import pytest - -def test_contract_divide(): - with pytest.raises(ZeroDivisionError): - divide(5, 0) - - assert divide(10, 2) == 5 -```` - -### 4.2. (уровень сложности: средний) - - Перепишите класс банковского счета (6) с использованием контрактного программирования и, в частности, инвариантов класса. Продемонстрируйте, что реализованные инварианты класса действительно позволяют выявлять ошибки. - -````python -# pip install deal - -import deal - -@deal.inv(lambda self: self.balance >= 0, "Баланс счета не может быть отрицательным") -class BankAccount: - def __init__(self, account_number, balance=0): - self.account_number = account_number - self.balance = balance - - @deal.post(lambda _, result: result > 0, "Сумма депозита должна быть положительной") - def deposit(self, amount): - self.balance += amount - return f"{amount} средств успешно зачислены на счет {self.account_number}" - - @deal.post(lambda _, result: result > 0, "Сумма списания должна быть положительной") - def withdraw(self, amount): - self.balance -= amount - return f"{amount} средств успешно сняты с счета {self.account_number}" - - def check_balance(self): - return f"Баланс счета {self.account_number}: {self.balance}" - - - -account = BankAccount(12345, 100) -print(account.withdraw(150)) # Пытаемся снять больше, чем на счету - - -# deal.ContractError: Баланс счета не может быть отрицательным -```` - -### 4.3. (уровень сложности: высокий) - - Реализуйте контракт, выполнение которого deal проверяет статически. Какие ограничения имеют статически проверяемые контракты? - -````python -import deal - -@deal.pure -def check_positive_number(number: int) -> int: - if number <= 0: - raise ValueError("Число должно быть положительным") - return number - -number = 10 -checked_number = check_positive_number(number) -print(checked_number) -```` - -В этом примере мы объявляем функцию check_positive_number, которая принимает число типа int и возвращает также int. Мы добавляем контракт, который проверяет, что число положительное. При вызове функции check_positive_number с положительным числом у нас не будет ошибок. - - Ограничения статически проверяемых контрактов: - -1. Ограниченность возможностей проверки: Статически проверяемые контракты могут осуществлять только простые проверки типов и условий. Они не могут осуществлять сложные или динамические проверки. - -2. Ограниченность вида ошибок: Статически проверяемые контракты могут выявлять только те ошибки, которые можно выразить статически при компиляции или анализе кода. Они могут не покрывать все возможные сценарии ошибок. - -3. Недостаток гибкости: Статически проверяемые контракты обычно требуют строго соблюдения синтаксиса и структуры кода, что может ограничить гибкость и эффективность программирования. - - Несмотря на ограничения, статически проверяемые контракты могут быть полезными для раннего выявления ошибок и повышения надежности программного обеспечения. Они помогают предотвращать определенные категории ошибок и упрощают процесс debugging'а. - -# 5. Тестирование на основе свойств - -### 5.1. (уровень сложности: средний) - -Научитесь работать с библиотекой hypothesis. Протестируйте функцию distance. - -````python -import math -from hypothesis import given -import hypothesis.strategies as st - -# Функция, которую мы будем тестировать -def distance(x1, y1, x2, y2): - return math.sqrt((x2 - x1)**2 + (y2 - y1)**2) - -# Задаем стратегию генерации данных для тестирования -@given(st.floats(), st.floats(), st.floats(), st.floats()) -def test_distance(x1, y1, x2, y2): - result = distance(x1, y1, x2, y2) - assert isinstance(result, float) - assert result >= 0 - -# Запускаем тесты -test_distance() -```` - -### 5.2. (уровень сложности: средний) - -Реализуйте тестирование функций для RLE. - -````python -import pytest - -from rle_functions import encode_rle, decode_rle - -# Тестирование функции encode_rle -def test_encode_rle(): - assert encode_rle(b'AAAABBBCCDAA') == b'\x04A\x03B\x02C\x01D\x02A' - -# Тестирование функции decode_rle -def test_decode_rle(): - assert decode_rle(b'\x04A\x03B\x02C\x01D\x02A') == b'AAAABBBCCDAA' - -if __name__ == "__main__": - pytest.main() -```` - -### 5.3. (уровень сложности: высокий) * - -Реализуйте тестирование для деревьев выражений из предыдущей практики, для одного из «посетителей». - -### 5.4. (уровень сложности: высокий) - -Используйте тестирование по модели для проверки реализации банковского счета (7). - -````python -# файл test_bank_account.py с тестами - -import pytest - -from bank_account import BankAccount - -@pytest.fixture -def bank_account(): - account = BankAccount(12345) - account.create_account(1000) - return account - -def test_deposit(bank_account): - assert bank_account.deposit(500) == "500 средств успешно зачислены на счет 12345" - -def test_withdraw(bank_account): - assert bank_account.withdraw(200) == "200 средств успешно сняты с счета 12345" - assert bank_account.withdraw(900) == "Недостаточно средств на счете" - -def test_check_balance(bank_account): - assert bank_account.check_balance() == "Баланс счета 12345: 800" - -def test_close_account(bank_account): - assert bank_account.close_account() == "Счет 12345 закрыт" - -if __name__ == "__main__": - pytest.main() - - -# pytest test_bank_account.py -```` diff --git a/content/python/practice-6-2-regex-combinators.mdx b/content/python/practice-6-2-regex-combinators.mdx deleted file mode 100644 index df44fcd..0000000 --- a/content/python/practice-6-2-regex-combinators.mdx +++ /dev/null @@ -1,276 +0,0 @@ ---- -title: "Практика 6.2 — Расширенные комбинаторы regex" -sidebar_position: 5 -description: "Дополнительные задания по комбинаторному и функциональному подходу." -slug: "/python/practice-6-2-regex-combinators" ---- - -> Источник: `pr_Python/pr_Python/pract6_2.ipynb` - -# 4. Комбинаторы регулярных выражений -Реализуйте простой встроенный язык подмножества регулярных выражений с помощью ФВП. Комбинаторы имеют следующий общий вид: -``` -def comb(param, ...): - def parse(text, ...): - ... - return new_text, ... - return parse - ``` - -````python -def char(c): - def parse(text, pos): - if pos >= len(text) or text[pos] != c: - return text, pos - return text, pos + 1 - return parse - -def seq(*parsers): - def parse(text, pos): - for p in parsers: - text, pos = p(text, pos) - if pos == -1: - return text, pos - return text, pos - return parse - -def alt(*parsers): - def parse(text, pos): - for p in parsers: - new_text, new_pos = p(text, pos) - if new_pos != -1: - return new_text, new_pos - return text, -1 - return parse - -def rep(p): - def parse(text, pos): - while pos < len(text): - text, pos = p(text, pos) - return text, pos - return parse - -def opt(p): - def parse(text, pos): - new_text, new_pos = p(text, pos) - return new_text, new_pos if new_pos != -1 else pos - return parse - - -parse_a = char('a') -parse_b = char('b') - -parser = seq(rep(parse_a), opt(parse_b)) - -result = parser("aaabbaa", 0) -if result[1] == -1: - print("Failed to parse") -else: - print("Parsed successfully") -```` - -## 4.1. (уровень сложности: высокий) - -Реализуйте комбинаторы sym (разобрать символ) и seq (разобрать последовательность). - -Пример использования: - -``` -text = 'abc' -re1 = seq(sym('a'), sym('b'), sym('c')) -re2 = seq(sym('a'), sym('z'), sym('c')) - -print(re1(text) is not None) -print(re2(text) is not None) - -``` - -``` -True -False -``` - -````python -def sym(c): - def parse(text, pos): - if pos < len(text) and text[pos] == c: - return pos + 1 - return None - return parse - -def seq(*parsers): - def parse(text, pos): - for p in parsers: - pos = p(text, pos) - if pos is None: - return None - return pos - return parse - -text = 'abc' -re1 = seq(sym('a'), sym('b'), sym('c')) -re2 = seq(sym('a'), sym('z'), sym('c')) - -print(re1(text) is not None) -print(re2(text) is not None) -```` - -## 4.2. (уровень сложности: средний) - -Реализуйте комбинатор range_of (разобрать диапазон символов). - -Пример использования: - -``` -digit = range_of('0', '9') -number = seq(digit, digit) - -print(number('42') is not None) -print(number('ab') is not None) -``` - -``` -True -False -``` - -````python -def range_of(start, end): - def parse(text, pos): - if pos < len(text) and start <= text[pos] <= end: - return pos + 1 - return None - return parse - -def seq(*parsers): - def parse(text, pos): - for p in parsers: - pos = p(text, pos) - if pos is None: - return None - return pos - return parse - -digit = range_of('0', '9') -number = seq(digit, digit) - -print(number('42') is not None) -print(number('ab') is not None) -```` - -## 4.3. (уровень сложности: высокий) - -Реализуйте комбинатор alt (альтернатива). - -Пример использования: - -``` -digit = range_of('0', '9') -hex_digit = alt(digit, range_of('a', 'f'), range_of('A', 'F')) -space = alt(sym(' '), sym('\n'), sym('\t')) -hex_color = seq(sym('#'), hex_digit, hex_digit, hex_digit, hex_digit, hex_digit, hex_digit) - -print(hex_color('#ffaa43') is not None) -print(hex_color('#xxxxxx') is not None) -``` - -``` -True -False -``` - -````python -def alt(*parsers): - def parse(text, pos): - for p in parsers: - new_pos = p(text, pos) - if new_pos is not None: - return new_pos - return None - return parse - -def range_of(start, end): - def parse(text, pos): - if pos < len(text) and start <= text[pos] <= end: - return pos + 1 - return None - return parse - -def sym(char): - def parse(text, pos): - if pos < len(text) and text[pos] == char: - return pos + 1 - return None - return parse - -def seq(*parsers): - def parse(text, pos): - for p in parsers: - pos = p(text, pos) - if pos is None: - return None - return pos - return parse - -digit = range_of('0', '9') -hex_digit = alt(digit, range_of('a', 'f'), range_of('A', 'F')) -space = alt(sym(' '), sym('\n'), sym('\t')) -hex_color = seq(sym('#'), hex_digit, hex_digit, hex_digit, hex_digit, hex_digit, hex_digit) - -print(hex_color('#ffaa43') is not None) -print(hex_color('#xxxxxx') is not None) -```` - -## 4.4. (уровень сложности: высокий) - -Реализуйте комбинатор group (группировка) для извлечения разобранных фрагментов. - -Пример использования: - -``` -digit = range_of('0', '9') -hex_digit = alt(digit, range_of('a', 'f'), range_of('A', 'F')) -space = alt(sym(' '), sym('\n'), sym('\t')) -hex_color = seq(sym('#'), group(seq(hex_digit, hex_digit, hex_digit, hex_digit, hex_digit, hex_digit))) -hex_colors = seq(hex_color, sym(' '), hex_color) - -print(hex_colors('#ffaa43 #123456', [])) -``` - -``` -('', ['ffaa43', '123456']) -``` - -````python -def group(rule): - def inner(text, start): - result, end = rule(text, start) - if result: - return ([result], end) - return (result, end) - return inner - -def alt(*args): - pass - -def range_of(start, end): - pass - -def sym(char): - pass - -def seq(*args): - pass - -digit = range_of('0', '9') -hex_digit = alt(digit, range_of('a', 'f'), range_of('A', 'F')) -space = alt(sym(' '), sym('\n'), sym('\t')) -hex_color = seq(sym('#'), group(seq(hex_digit, hex_digit, hex_digit, hex_digit, hex_digit, hex_digit))) -hex_colors = seq(hex_color, sym(' '), hex_color) - -def parse_hex_colors(text, start): - result, end = hex_colors(text, start) - return ('', result) - -print(parse_hex_colors('#ffaa43 #123456', 0)) -```` diff --git a/content/python/practice-6-regex-combinators.mdx b/content/python/practice-6-regex-combinators.mdx deleted file mode 100644 index af342bd..0000000 --- a/content/python/practice-6-regex-combinators.mdx +++ /dev/null @@ -1,301 +0,0 @@ ---- -title: "Практика 6 — Комбинаторы и функциональный стиль" -sidebar_position: 4 -description: "Функции высшего порядка, декораторы и функциональные структуры данных." -slug: "/python/practice-6-regex-combinators" ---- - -> Источник: `pr_Python/pr_Python/pract6.ipynb` - -1.1. (уровень сложности: низкий) - -Напишите функцию deriv для приближенного вычисления производной в заданной точке. - -Пример работы: - ->>> deriv(lambda x: x ** 3)(5) -75.00014999664018 - -````python -def deriv(f, h=0.0001): - def fprime(x): - return (f(x + h) - f(x)) / h - return fprime - -result = deriv(lambda x: x ** 3)(5) -print(result) -```` - -Вывод: - -````text -75.00150000979033 -```` - -1.2. (уровень сложности: средний) - -Создайте вариант именованного кортежа с помощью ФВП. Классы и готовые структуры данных (словари, кортежи и так далее) использовать нельзя. - -Примеры работы: - ->>> p1 = person(name='Иван', age=20) ->>> p2 = replace(replace(p1, 'name', 'Алексей'), 'age', 21) ->>> get(p1, 'name'), get(p1, 'age') -('Иван', 20) ->>> get(p2, 'name'), get(p2, 'age') -('Алексей', 21) - -````python -def person(**kwargs): - def get(obj, key): - return obj["data"][key] if key in obj["data"] else None - - def replace(obj, name, new_value): - obj[name] = new_value - return obj - - return { - "data": kwargs, - "get": get, - "replace": replace, - } - -# Примеры использования -p1 = person(name="Иван", age=20) -p2 = person(replace(p1, 'name', 'Алексей'), 'age', 21) - -print(person.get(p1, "name"), person.get(p1, "age")) -print(person.get(p2, "name"), person.get(p2, "age")) -```` - -1.3. (уровень сложности: низкий) - -Реализуйте рекурсивное вычисление факториала в виде выражения. Необходимо это сделать без использования именованных функций, переменных (в том числе без имени факториала) и присваиваний. - -````python -(lambda f: (lambda x: f(lambda k: x(x)(k)))(lambda x: f(lambda k: x(x)(k)))(lambda f: lambda n: 1 if n == 0 else n * f(f)(n - 1))(10) -```` - -1.4. (уровень сложности: низкий) - -Создайте декоратор io, который задает функции для получения входных аргументов и вовращения результата. - -Примеры: - -@io(input, input, input, print) -def f1(x, y, z): - return x + y + z - ->>> f1() -one -two -three -onetwothree -@io(lambda: random.random(), lambda: random.random(), lambda x: x) -def f2(x, y): - return x * y - ->>> f2() -0.19896827110422532 - -````python -import random - -def io(*inputs_and_output): - def decorator(func): - def wrapper(*args): - input_values = [input_func() for input_func in inputs_and_output[:-1]] - result = func(*input_values) - output_func = inputs_and_output[-1] - output_func(result) - return wrapper - return decorator - -@io(input, input, input, print) -def f1(x, y, z): - return x + y + z - -@io(lambda: random.random(), lambda: random.random(), lambda x: x) -def f2(x, y): - return x * y -```` - -1.5. (уровень сложности: низкий) - -Создайте декоратор класса @collect, который собирает все создаваемые объекты класса в единый список. К классу добавляется метод get_objects, который выдает этот список. - -Пример: - -@collect -class C1: - pass - -a = C1() -b = C1() -c = C1() - ->>> C1.get_objects() -[, , ] - -````python -def collect(cls): - cls._objects = [] - - def wrapper(*args, **kwargs): - obj = cls.__new__(cls) - obj.__init__(*args, **kwargs) - cls._objects.append(obj) - return obj - - cls.__new__ = wrapper - - def get_objects(): - return cls._objects - - cls.get_objects = get_objects - - return cls - -@collect -class MyClass: - pass -```` - -2. Работа со списками в функциональном стиле -Создайте тип данных односвязный список с помощью ФВП. При создании списка нельзя использовать классы, готовые списки, кортежи и так далее. - -Добавьте ряд операций в функциональном стиле. - -````python -def create_node(value): - return {"value": value, "next": None} - -def prepend(node, value): - new_node = create_node(value) - new_node["next"] = node - return new_node - -def append(node, value): - if node is None: - return create_node(value) - - current = node - while current["next"] is not None: - current = current["next"] - - current["next"] = create_node(value) - return node - -def find(node, value): - current = node - while current is not None: - if current["value"] == value: - return current - current = current["next"] - return None - -def print_list(node): - current = node - while current is not None: - print(current["value"], end=" ") - current = current["next"] - print() - -# Пример использования -my_list = None -my_list = prepend(my_list, 3) -my_list = prepend(my_list, 2) -my_list = append(my_list, 4) -my_list = append(my_list, 5) -print_list(my_list) - -# Поиск элемента -element = find(my_list, 4) -if element: - print("Found:", element["value"]) -else: - print("Not Found") -```` - -Вывод: - -````text -2 3 4 5 -Found: 4 -```` - -2.1. (уровень сложности: высокий) - -Создайте функцию pair(head, tail), которая порождает элемент списка. Не используйте ветвления. Создайте также функции head(lst) (возвращает значение головы списка) и tail(lst) (возвращает хвост списка). - -````python -# Функция pair создает элемент списка -def pair(value, next_node=None): - return lambda selector: value if selector == "value" else next_node - -# Функция head возвращает значение головы списка -def head(lst): - return lst("value") - -# Функция tail возвращает хвост списка -def tail(lst): - return lst("tail") - -# Пример использования -list_node = pair(1, pair(2, pair(3, pair(4)))) -print("Head node value:", head(list_node)) - -tail_node = tail(list_node) -print("Tail node value:", head(tail_node)) -```` - -Вывод: - -````text -Head node value: 1 -Tail node value: 2 -```` - -2.2. (уровень сложности: средний) - -Создайте функцию make_list(*args), которая создает список на основе аргументов. - -````python -def make_list(*args): - if not args: - return None - - def pair(value, next_node=None): - return lambda selector: value if selector == "value" else next_node - - list_node = None - current_node = None - - for arg in reversed(args): - if list_node is None: - list_node = pair(arg) - current_node = list_node - else: - new_node = pair(arg, current_node) - current_node = new_node - - return current_node - -# Пример использования -my_list = make_list(1, 2, 3, 4, 5) -current_node = my_list - -while current_node: - print(current_node("value")) - current_node = current_node("tail") -```` - -Вывод: - -````text -1 -2 -3 -4 -5 -```` diff --git a/content/react/index.mdx b/content/react/index.mdx deleted file mode 100644 index fa70ada..0000000 --- a/content/react/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: React -description: "Материалы по React: компоненты, состояние, маршрутизация и архитектура UI." -order: 1 ---- - -## О разделе - -Раздел **React** добавлен в StackMIREA и готов к наполнению учебными материалами. - -## Что можно публиковать - -- Практические работы -- Конспекты и чеклисты -- Разборы задач и примеры кода diff --git a/content/software-application-development-part-1/index.mdx b/content/software-application-development-part-1/index.mdx deleted file mode 100644 index a0b0330..0000000 --- a/content/software-application-development-part-1/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Технология разработки программных приложений (часть 1) -description: Методики и практики разработки программных приложений, часть 1. -order: 1 ---- - -## О разделе - -Раздел **Технология разработки программных приложений (часть 1)** добавлен в StackMIREA и готов к наполнению учебными материалами. - -## Что можно публиковать - -- Практические работы -- Конспекты и чеклисты -- Разборы задач и примеры кода diff --git a/content/software-testing-and-verification/index.mdx b/content/software-testing-and-verification/index.mdx deleted file mode 100644 index 0ef8ed2..0000000 --- a/content/software-testing-and-verification/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Тестирование и верификация ПО -description: Материалы по тестированию, качеству и верификации программного обеспечения. -order: 1 ---- - -## О разделе - -Раздел **Тестирование и верификация ПО** добавлен в StackMIREA и готов к наполнению учебными материалами. - -## Что можно публиковать - -- Практические работы -- Конспекты и чеклисты -- Разборы задач и примеры кода diff --git a/content/system-administration/index.mdx b/content/system-administration/index.mdx deleted file mode 100644 index 9df3861..0000000 --- a/content/system-administration/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Системное администрирование -description: Администрирование ОС, сетей, сервисов и инфраструктуры. -order: 1 ---- - -## О разделе - -Раздел **Системное администрирование** добавлен в StackMIREA и готов к наполнению учебными материалами. - -## Что можно публиковать - -- Практические работы -- Конспекты и чеклисты -- Разборы задач и примеры кода diff --git a/content/systems-analysis-and-conceptual-modeling-part-1/index.mdx b/content/systems-analysis-and-conceptual-modeling-part-1/index.mdx deleted file mode 100644 index 76bb24b..0000000 --- a/content/systems-analysis-and-conceptual-modeling-part-1/index.mdx +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Анализ и концептуальное моделирование систем (часть 1) -description: Введение в системный анализ и концептуальное моделирование, часть 1. -order: 1 ---- - -## О разделе - -Раздел **Анализ и концептуальное моделирование систем (часть 1)** добавлен в StackMIREA и готов к наполнению учебными материалами. - -## Что можно публиковать - -- Практические работы -- Конспекты и чеклисты -- Разборы задач и примеры кода diff --git a/docs/intro.md b/docs/intro.md index 845f31b..dadbe44 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -38,5 +38,5 @@ slug: /intro ## Исходники - Python: `pr_Python/` -- Java: `docs/java/` и `content/java/` +- Java: `docs/java/` - GitHub: [minkinad/StackMIREA](https://github.com/minkinad/StackMIREA) diff --git a/lib/content-manifest.ts b/lib/content-manifest.ts new file mode 100644 index 0000000..e79e0e1 --- /dev/null +++ b/lib/content-manifest.ts @@ -0,0 +1,58 @@ +import fs from "node:fs"; +import path from "node:path"; + +import type { GitHubPerson } from "@/lib/authors"; +import type { TocItem } from "@/lib/markdown"; + +export interface ContentManifestDoc { + slug: string[]; + slugKey: string; + href: string; + title: string; + description: string; + author: GitHubPerson; + order: number; + editPath: string | null; + sourcePath: string | null; + virtualPath: string; + section: string; + sectionTitle: string; + body: string; + toc: TocItem[]; + preview: string; + topics: string[]; + anchors: string[]; + hash: string; + isSectionIndex: boolean; + isGenerated: boolean; +} + +export interface ContentManifest { + version: number; + generatedAt: string; + sourceRoot: string; + docs: ContentManifestDoc[]; +} + +const CONTENT_MANIFEST_PATH = path.join(process.cwd(), ".cache", "content-manifest.json"); + +let cachedManifest: ContentManifest | null = null; + +export function getContentManifestPath() { + return CONTENT_MANIFEST_PATH; +} + +export function getContentManifest() { + if (cachedManifest) { + return cachedManifest; + } + + if (!fs.existsSync(CONTENT_MANIFEST_PATH)) { + throw new Error( + `Content manifest was not found at ${path.relative(process.cwd(), CONTENT_MANIFEST_PATH)}. Run "npm run prepare:content" first.` + ); + } + + cachedManifest = JSON.parse(fs.readFileSync(CONTENT_MANIFEST_PATH, "utf8")) as ContentManifest; + return cachedManifest; +} diff --git a/lib/mdx.ts b/lib/mdx.ts index 8c5b979..cb6fff6 100644 --- a/lib/mdx.ts +++ b/lib/mdx.ts @@ -10,15 +10,20 @@ const mdxComponents = { CodeBlock }; -export async function compileDocMdx(source: string) { +interface CompileDocMdxOptions { + collectToc?: boolean; +} + +export async function compileDocMdx(source: string, options: CompileDocMdxOptions = {}) { const toc: TocItem[] = []; + const collectToc = options.collectToc ?? true; const result = await compileMDX({ source, options: { parseFrontmatter: false, mdxOptions: { - remarkPlugins: [...getMarkdownRemarkPlugins(toc)], + remarkPlugins: [...getMarkdownRemarkPlugins(collectToc ? toc : [])], rehypePlugins: [rehypeSlug] } }, diff --git a/lib/navigation.ts b/lib/navigation.ts index 89587ad..bbdeae7 100644 --- a/lib/navigation.ts +++ b/lib/navigation.ts @@ -1,11 +1,7 @@ -import fs from "node:fs"; -import path from "node:path"; -import matter from "gray-matter"; - import type { GitHubPerson } from "@/lib/authors"; -import { getDefaultDocAuthor, toGitHubPerson } from "@/lib/authors"; +import { getContentManifest } from "@/lib/content-manifest"; +import type { TocItem } from "@/lib/markdown"; import { getTrackOrder, getTrackTitle } from "@/lib/tracks"; -import { toTitleCase } from "@/lib/utils"; export interface DocFrontmatter { title?: string; @@ -25,6 +21,10 @@ export interface DocEntry { editPath: string | null; section: string; body: string; + toc: TocItem[]; + preview: string; + topics: string[]; + hash: string; author: GitHubPerson; isSectionIndex: boolean; isGenerated: boolean; @@ -47,52 +47,8 @@ interface DocsIndex { sidebarGroups: SidebarGroup[]; } -const CONTENT_ROOT = path.join(process.cwd(), "content"); -const DOCS_SOURCE_ROOT = path.join(process.cwd(), "docs"); - let cachedDocsIndex: DocsIndex | null = null; -function walkMarkdownFiles(rootDirectory: string) { - const files: string[] = []; - const stack = [rootDirectory]; - - while (stack.length > 0) { - const currentDirectory = stack.pop(); - - if (!currentDirectory) { - break; - } - - const entries = fs.readdirSync(currentDirectory, { withFileTypes: true }); - - for (const entry of entries) { - const fullPath = path.join(currentDirectory, entry.name); - - if (entry.isDirectory()) { - stack.push(fullPath); - continue; - } - - if (entry.isFile() && /\.(md|mdx)$/i.test(entry.name)) { - files.push(fullPath); - } - } - } - - return files; -} - -function normalizeSlug(relativePath: string) { - const withoutExtension = relativePath.replace(/\.(md|mdx)$/i, ""); - const parts = withoutExtension.split(path.sep); - - if (parts.at(-1) === "index") { - return parts.slice(0, -1); - } - - return parts; -} - function getSectionOrder(section: string) { return getTrackOrder(section); } @@ -122,55 +78,6 @@ function compareDocs(left: DocEntry, right: DocEntry) { return left.title.localeCompare(right.title); } -function resolveEditPath(relativePath: string) { - const candidates = - relativePath === path.join("algorithms", "getting-started.mdx") - ? ["intro.mdx", "intro.md"] - : [relativePath, relativePath.replace(/\.mdx$/i, ".md")]; - - for (const candidate of candidates) { - const absoluteCandidatePath = path.join(DOCS_SOURCE_ROOT, candidate); - - if (fs.existsSync(absoluteCandidatePath)) { - return candidate.replace(/\\/g, "/"); - } - } - - return null; -} - -function createDocEntry(filePath: string): DocEntry { - const source = fs.readFileSync(filePath, "utf-8"); - const parsed = matter(source); - const relativePath = path.relative(CONTENT_ROOT, filePath); - const slug = normalizeSlug(relativePath); - const slugKey = getSlugKey(slug); - const section = slug[0] ?? "docs"; - const isSectionIndex = slug.length === 1; - const parsedOrder = Number(parsed.data.order ?? parsed.data.sidebar_position); - const safeOrder = Number.isFinite(parsedOrder) ? parsedOrder : isSectionIndex ? 0 : 9999; - const title = parsed.data.title?.toString().trim() || toTitleCase(slug.at(-1) ?? section); - const description = parsed.data.description?.toString().trim() || ""; - const rawAuthor = parsed.data.author?.toString().trim(); - const author = rawAuthor ? toGitHubPerson(rawAuthor) : getDefaultDocAuthor(); - const editPath = resolveEditPath(relativePath); - - return { - slug, - slugKey, - href: `/docs/${slug.join("/")}`, - title, - description, - order: safeOrder, - editPath, - section, - body: parsed.content, - author, - isSectionIndex, - isGenerated: editPath === null - }; -} - function createSidebarGroups(docs: DocEntry[]) { const groupsMap = new Map(); @@ -215,16 +122,7 @@ function createSidebarGroups(docs: DocEntry[]) { } function buildDocsIndex(): DocsIndex { - if (!fs.existsSync(CONTENT_ROOT)) { - return { - docs: [], - docsBySlug: new Map(), - docOrderBySlug: new Map(), - sidebarGroups: [] - }; - } - - const docs = walkMarkdownFiles(CONTENT_ROOT).map(createDocEntry).sort(compareDocs); + const docs = [...getContentManifest().docs].sort(compareDocs); const docsBySlug = new Map(); const docOrderBySlug = new Map(); diff --git a/package.json b/package.json index e02c49b..75fd7ba 100644 --- a/package.json +++ b/package.json @@ -11,8 +11,9 @@ "start": "npx serve out -p 3000", "lint": "next lint", "typecheck": "tsc --noEmit --incremental false", - "prepare:content": "npm run content:sync && npm run search:build", - "content:sync": "node scripts/sync-content.mjs", + "prepare:content": "npm run content:manifest && npm run search:build", + "content:manifest": "node scripts/content-manifest.mjs", + "content:sync": "npm run content:manifest", "search:build": "node scripts/build-search-index.mjs", "validate:content": "node scripts/validate-content.mjs", "prebuild": "npm run prepare:content" diff --git a/public/search-index.json b/public/search-index.json index 8bc6b43..8d3d579 100644 --- a/public/search-index.json +++ b/public/search-index.json @@ -1 +1 @@ -{"version":1,"generatedAt":"2026-04-08T20:02:48.908Z","docs":[{"id":"ai","href":"/docs/ai","slug":["ai"],"section":"ai","sectionTitle":"AI","title":"AI","description":"Рабочие тетради по искусственному интеллекту в формате MDX.","preview":"AI обзор Раздел объединяет 8 рабочих тетрадей по дисциплине «Искусственный интеллект», перенесенных в MDX формат. Материалы идут от базового Python и научных библиотек к классическим ML методам, нейросетям, эволюционным алгоритмам и кластеризации. Что внутри P","keywords":["notebook","python","ai","ml","данных","деревья","методы","раздел","решений","knn","mdx","numpy","pandas","алгоритмам","базового","библиотек","внутри","генетические"],"topics":["python","ai","knn","pandas","numpy","oop","algorithms","clustering","regression"],"chunks":[{"id":"chunk-0","heading":"AI обзор","text":"Раздел объединяет 8 рабочих тетрадей по дисциплине «Искусственный интеллект», перенесенных в MDX формат. Материалы идут от базового Python и научных библиотек к классическим ML методам, нейросетям, эволюционным алгоритмам и кластеризации.","keywords":["ai","mdx","mdx.","ml","python","алгоритмам","базового","библиотек","дисциплине","идут","интеллект","интеллекту"],"topics":["python","ai","oop","algorithms"]},{"id":"chunk-1","heading":"Что внутри","text":"Python, NumPy и pandas для подготовки данных; метрики расстояния, KNN и базовые техники классификации; регрессия и деревья решений; эволюционные методы, нейросети и кластеризация.","keywords":["ai","knn","mdx.","numpy","pandas","python","базовые","внутри","данных","деревья","интеллекту","искусственному"],"topics":["python","knn","pandas","numpy","oop","clustering","regression"]},{"id":"chunk-2","heading":"Ноутбуки","text":"Notebook 1 — Основа Python типы данных, условия, циклы и вводные примеры. Notebook 2 — NumPy и pandas массивы, таблицы и базовая подготовка данных. Notebook 3 — Метрики и KNN расстояния между объектами и классификация ближайших соседей. Notebook 4 — Регрессия линейные модели, аппроксимация и оценка качества. Notebook 5 — Деревья решений деревья решений и работа с классификаторами","keywords":["notebook","ai","деревья","решений","knn","mdx.","numpy","pandas","python","аппроксимация","базовая","ближайших"],"topics":["python","knn","pandas","numpy","oop","regression"]},{"id":"chunk-3","heading":"Ноутбуки","text":". Notebook 6 — Генетические и эволюционные методы оптимизация, генетические алгоритмы и отжиг. Notebook 7 — Нейронные сети персептрон, MLP и основы обучения сети. Notebook 8 — Кластеризация методы группировки данных без учителя.","keywords":["ai","notebook","генетические","методы","mdx.","mlp","алгоритмы","без","группировки","данных","интеллекту","искусственному"],"topics":["ai","algorithms","clustering"]},{"id":"chunk-4","heading":"Как читать раздел","text":"Начните с Notebook 1 и Notebook 2 , если нужно выровнять базу по Python и обработке данных. Для классического ML переходите к Notebook 3 , Notebook 4 и Notebook 5 . Темы оптимизации и более продвинутых подходов собраны в Notebook 6 , Notebook 7 и Notebook 8 .","keywords":["notebook","ai","mdx.","ml","python","базу","более","выровнять","данных.","если","интеллекту","искусственному"],"topics":["python","ai","oop"]}]},{"id":"ai/notebook-01-python-basics","href":"/docs/ai/notebook-01-python-basics","slug":["ai","notebook-01-python-basics"],"section":"ai","sectionTitle":"AI","title":"AI Notebook 1 — Основа Python","description":"Типы данных, условия, циклы и старт работы с NumPy.","preview":"Основа Python. Библиотеки. Дата 25.02.2023 1.1. Теоретический материал – Типы данных Типы данных Все типы данных в Python относятся к одной из 2 х категорий: изменяемые (mutable) и неизменяемые (immutable). Неизменяемые объекты: исловые данные (int, float), bo","keywords":["print","python","type","задача","10","elif","dev","от","plt.plot","range","данных","apple","df","if","import","rng","trapz","массива"],"topics":["python","ai","knn","numpy"],"chunks":[{"id":"chunk-0","heading":"","text":"Типы данных Все типы данных в Python относятся к одной из 2 х категорий: изменяемые (mutable) и неизменяемые (immutable). Неизменяемые объекты: исловые данные (int, float), bool, None, символьные строки (class 'str'), кортежи (tuple). Изменяемые объекты: списки (list), множества (set), словари (dict).","keywords":["ai","данных","типы","python","изменяемые","неизменяемые","объекты","bool","class","dict","float","immutable"],"topics":["python"]},{"id":"chunk-1","heading":"","text":"python x= 3+5.2 7 y= None z= 'a',5,12.345, (2,'b') df= [['Антонова Антонина',34,'ж'],['Борисов Борис',26,'м']] A={1,'title',2,'content'} print(x,' ',type(x),'\\n',y,' ',type(y),'\\n',df,' ',type(df),'\\n',A,' ',type(A),'\\n')","keywords":["type","ai","df","python","12.345","26","3+5.2","34","content","none","notebook","numpy."],"topics":["python"]},{"id":"chunk-2","heading":"","text":"code 39.4 None [['Антонова Антонина', 34, 'ж'], ['Борисов Борис', 26, 'м']] {'content', 1, 2, 'title'}","keywords":["ai","26","34","39.4","code","content","none","notebook","numpy.","python","title","антонина"],"topics":[]},{"id":"chunk-3","heading":"","text":"python x=5 =2 A={ 1,3,7,8} B={2,4,5,10,'apple'} C=A&B df= 'Антонова Антонина',34,'ж' z='type' D=[1,'title',2,'connect'] print(x,' ',type(x),'\\n',A,' ',type(A),'\\n',B,' ',type(B),'\\n',C,' ',type(C),'\\n',df,' ',type(df),'\\n',z,' ',type(z),'\\n',D,' ',type(D),'\\n')","keywords":["type","ai","df","python","10","34","apple","connect","notebook","numpy.","print","title"],"topics":["python"]},{"id":"chunk-4","heading":"","text":"text True {8, 1, 3, 7} {2, 'apple', 4, 5, 10} set() ('Антонова Антонина', 34, 'ж') type [1, 'title', 2, 'connect']","keywords":["ai","10","34","apple","connect","notebook","numpy.","python","set","text","title","true"],"topics":[]},{"id":"chunk-5","heading":"","text":"В коде часто приходится проверять выполнимость или невыполнимость каких то условий. Синтаксис:","keywords":["ai","notebook","numpy.","python","выполнимость","данных","каких","коде","невыполнимость","основа","приходится","проверять"],"topics":[]},{"id":"chunk-6","heading":"","text":"Обратите внимание, что код, который должен выполняться внутри каждого условия, записывается с отступом в 4 пробела от уровня if, elif и else: в питоне области видимости переменных обозначаются отступами.","keywords":["ai","условия","elif","else","if","notebook","numpy.","python","видимости","внимание","внутри","выполняться"],"topics":["python"]},{"id":"chunk-7","heading":"","text":"То есть, отступы позволяют понять, где начинается код, который должен выполняться при выполнении условия в if, и где заканчивается.","keywords":["ai","условия","if","notebook","numpy.","python","выполнении","выполняться","данных","должен","заканчивается.","код"],"topics":[]},{"id":"chunk-8","heading":"","text":"Задача:Вывести на экран является ли переменная х положительной, отрицательной или равна нулю.","keywords":["ai","notebook","numpy.","python","вывести","данных","задача","ли","нулю.","основа","отрицательной","переменная"],"topics":[]},{"id":"chunk-9","heading":"","text":"python x=125 if x<0: print('x отрицательный') elif x==0: print('x равен 0') else: print('x положительный')","keywords":["ai","print","python","125","elif","else","if","notebook","numpy.","данных","основа","отрицательный"],"topics":["python"]},{"id":"chunk-10","heading":"","text":"Задача: Напишите код. Задается х, напечатать какому из интервалов принадлежит: ( infinity, 5), [ 5, 5] или от (5, +infinity)","keywords":["ai","+infinity","infinity","notebook","numpy.","python","данных","задается","задача","интервалов","какому","код."],"topics":[]},{"id":"chunk-11","heading":"","text":"python x=int(input()) if x < 5: print('x пренадлежит интервалу от бесконечности до 5') elif 5