Giter Site home page Giter Site logo

schatzederwelt / gold-recovery-prediction Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 1.94 MB

Добыча золота - предсказание коэффициента обогащения

Jupyter Notebook 100.00%
pandas python data-analysis linear-regression power-transformer make-scorer confidence-intervals correlation-matrix data-pipelines feature-engineering numeric-data outliers skewness time-intervals random-forest regression decision-tree

gold-recovery-prediction's Introduction

Добыча золота - предсказание коэффициента обогащения

Описание проекта

ПРОБЛЕМА:

В золотодобывающей отрасли есть большие риски запуска предприятий с убыточными характеристиками.

Основная характеристика - низкий коэффициент восстановления золота из золотосодержащей руды.

ЦЕЛЬ ПРОЕКТА:

Построить прототип модели машинного обучения, которая сможет предсказывать коэффициент обогащения и поможет оптимизировать производство.

В нашем распоряжении различные параметры с 4-х последовательных этапов процесса извлечения золота из руды:

  1. rougher — флотация

==> черновой концентрат

  1. primary_cleaner — первичная очистка
  2. secondary_cleaner — вторичная очистка
  3. final — финальные характеристики

==> финальный концентрат


ЛИЧНАЯ ЦЕЛЬ:

  • Попробовать свои силы в прикладных задачах для промышленности, разобраться в неизвестной предметной области и провести детальный исследовательский анализ EDA.

  • Научиться строить модели для датасетов с большим количеством признаков.

  • Применить на практике подход с Feature Engineering и добиться более высоких результатов предсказаний с помощью несложных алгоритмов.

  • Научиться использовать для оценки моделей пользовательские метрики

Посмотреть проект

Новые навыки


✔️ Исследовательский анализ предметной области ✔️ Временные интервалы

✔️ Большой набор атрибутов (> 80) ✔️ Пайплайны обработки данных

✔️ Матрицы корреляции ✔️ Feature Engineering для числовых признаков

✔️ Аутлайеры и доверительные интервалы ✔️ Skewness распределений

✔️ Кастомная метрика качества

Этапы исследования

  1. Изучили параметры производственного процесса в исходных данных

  2. Исследовали концентрацию веществ на разных стадиях и аномалии:

    • провели оценку skewness распределений
    • удалили аутлайеры вне доверительных интервалов
  3. Провели корреляционный анализ параметров и целевых признаков

  4. Построили предсказания коэффициента обогащения золота на базе 3-х алгоритмов:

    • LinearRegression
    • DecisionTree
    • RandomForest
  5. Используя Feature Engineering улучшили результаты базовых моделей:

    • подобрали ключевой набор признаков (15 вместо 52)
    • создали пайплайн для удаления аутлайеров по графикам корреляции

Результат проекта

Для предсказания коэффициента восстановления золота мы подготовили два прототипа моделей машинного обучения

  • для чернового концентрата (rough) - Линейная Регрессия
  • для финального концентрата (final) - Решающее Дерево

Качество оценивалось с помощью кастомной метрики sMAPE:

base_models final_test
mscore_rough 7.033982 4.434954
mscore_final 8.832535 7.619455
mscore_total 7.483620 5.231079

Возможности для улучшения:

  • усложнить модель Случайного Леса и подобрать параметры с помощью RandomizedSearch
  • построить модель с помощью CatBoost

Исходные данные

import pandas as pd

df = pd.read_csv("/datasets/gold_recovery_train_new.csv")
display(df.iloc[:, :6].head(3))
df.iloc[:, 84:].head(3)
date final.output.concentrate_ag final.output.concentrate_pb final.output.concentrate_sol final.output.concentrate_au final.output.recovery
0 2016-01-15 00:00:00 6.055403 9.889648 5.507324 42.192020 70.541216
1 2016-01-15 01:00:00 6.029369 9.968944 5.257781 42.701629 69.266198
2 2016-01-15 02:00:00 6.055926 10.213995 5.383759 42.657501 68.116445
secondary_cleaner.state.floatbank5_b_level secondary_cleaner.state.floatbank6_a_air secondary_cleaner.state.floatbank6_a_level
0 -500.470978 14.151341 -605.841980
1 -500.582168 13.998353 -599.787184
2 -500.517572 14.028663 -601.427363

Все поля имеют формат название_этапа.тип_параметра.название_параметра и отражают состояние процесса в указанный момент времени.

gold-recovery-prediction's People

Contributors

schatzederwelt avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.