Ожидаемое решение.
На этом этапе хакатона мы применяем концепции машинного обучения и возможности oneAPI, чтобы помочь глобальным усилиям по обеспечению водной безопасности и экологической устойчивости, прогнозируя, безопасна ли пресная вода для питья и использования для экосистемы, которые зависят от него.

Цель
a. Создать модель прогнозирования, которая может определить, является ли целевой источник пресной водой или нет (т. е. безопасным или небезопасным).
b . Сделайте модель доступной для конечных пользователей и помогите им решить реальную проблему

Действующие шаги:
1. Загрузите набор данных по приведенной выше ссылке (разархивируйте его): https://s3-ap-southeast-1.amazonaws.com/he-public -data/datasetab75fb3.zip

2. Перейдите в каталог проекта в вашей локальной системе. Активируйте среду Python версии 3.9.

3. Загрузите репозиторий (файл .zip) из опции кода в правом углу окна.

4. Распакуйте ZIP-файл.

5. Скопируйте путь к извлеченной папке.
6. Перейдите в папку репозитория.

cd INTEL_SMIT-основной

7. Установите необходимые библиотеки, выполнив следующие команды:
(i)pip install scikit-learn-intelex
( ii)pip install -r requirements.txt

8. Откройте файл ipynb «intel_smit.ipynb» и измените путь в файле ipynb с обведенной части на путь к файлу в вашей системе.

9. Выполните следующую команду для локального запуска веб-приложения для прогнозирования вывода целевой переменной.

streamlit run app.py

Он автоматически откроет ваш браузер для прогнозирования целевого значения на основе ввода пользователя

10. Не скачивая его, вы можете сделать прогноз напрямую по ссылке: https://shivam5560-intel-smit-app-eleyjg.streamlit.app/

Анализ данных

Сопоставление атрибута цвета

{«Бесцветный»: 0, «Бледно-желтый»: 1, «Светло-желтый»: 2, «Почти бесцветный»: 3, «Желтый»: 4, «Другое»: 5}

Сопоставление исходного атрибута:

{'Водоносный горизонт': 0, 'Земля': 1, 'Озеро': 2, 'Водохранилище': 3, 'Река': 4, 'Родник': 5, 'Ручей': 6, 'Колодец': 7, «Другое»: 8

Оба этих атрибута сопоставляются с помощью Label Encoder.

Разработка функций

Атрибуты индекса, дня, месяца удаляются, так как они не имеют никакого значения для качества воды.

Также мы удалили температуру воды, температуру воздуха, проводимость, поскольку они не коррелируют с целевым значением.

Модель машинного обучения с использованием классификатора XGBoost в коде Python

Затем мы можем предсказать данные x_test и рассчитать отчет о точности и классификации.

Затем мы проверяем, какие Feature наиболее важны для модели ML по их изменению в выходной переменной.

КРИВАЯ ROC

Сравнение между логистической регрессией и кривой Roc Classifier XGBoost с их соответствующей оценкой

XGBoost лучше, чем логистическая регрессия, с точки зрения кривой ROC.

Кривая ROC для классификатора случайного леса

Это, безусловно, то же самое, что и кривая ROC XGBoost.

Но мы не выбираем классификатор Random Forest, поскольку он использует почти 8 ГБ памяти, когда мы пытаемся сохранить модель ML в файле рассола.

СОХРАНЕНИЕ МОДЕЛИ МАШИННОГО ОБУЧЕНИЯ В ФАЙЛЕ PICKLE В PYTHON

Используя этот файл рассола, мы можем быстро делать прогнозы, просто открыв этот файл и предоставив ему необходимые входные данные.

Это полезно, так как нам не нужно снова обучать нашу модель, что занимает гораздо больше времени по сравнению с этим.

Ссылка на коды: https://github.com/Shivam5560/INTEL_SMIT