Applying random forest algorithm for automating classification of soil categories

Cover Page


Cite item

Full Text

Abstract

The article discusses the creation of a machine learning model to solve the problem of soil classification using an ensemble of random decision trees (random forest) to automate the determination of soil categories with maximum accuracy based on the data available about them, including such characteristics as soil density, humidity, fractional composition and others. The user interface of the developed software and information system for conducting predictive analytics using the resulting model is also presented.

Full Text

Постановка задачи. Пусть дана таблица из результатов проб грунта (более 500 000 экземпляров) с 32 характеристиками различных грунтов. На основе данных взятых проб грунта в Москве и Московской области необходимо определить категорию грунта и сделать заключение о пригодности почвы к застройке определенных типов зданий. Это делается потому, что тип грунта ключевым фактором, влияющим на выбор типа фундамента здания (так как некоторые типы грунта более подходят для строительства строго определенных типов зданий) [1].

Процесс решения задачи. Грунты, представляющие собой комплекс природных материалов, различаются по своему происхождению, составу (супесчаные, глинистые, песчанисто-глинистые, глинисто-песчанистые и пр.), химическому составу, физическим свойствам (плотность, влажность, текстура, консистенция) и другим характеристикам (палеоповерхность, уровень углерода, минерализованные зоны) [2].

Для решения поставленной задачи целесообразно использовать возможности языка программирования Python, который специально используется в машинном обучении для выполнения научных и коммерческих проектов [3; 4]. Так, библиотека scikit-learn предназначена для непосредственного построения и работы с деревьями решений.

При разработке программно-информационной системы (ПИС) был использован CSV- файл с результатами анализа грунта. Структура CSV-файла представлена в таблице 1. CSV- файл расположен на Google Drive и, после загрузки, данные сохраняются в переменной 'df' типа DataFrame.

 

Таблица 1

Структура CSV-файла

1

index

Класс грунта

2

input_index

Входное значение класса по результатам первичной обработки экспертами (может совпадать или не совпадать с выходными значениями)

3

index_kod

Дубль поля input_index, но записан как id (число). Можно воспринимать как ранговый показатель, т.к. порядок закреплен – большие значения id лежат глубже меньших

4

prev_index

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

5

bottom

Абсолютные отметки кровли и подошвы слоя (метры над уровнем моря)

6

top

7

depth_to_paleosurf

Разница между отметкой кровли слоя и поверхностью палеорельефа. Палеорельеф – результат работы по картированию ненарушенной топографии городской территории (до начала хозяйственного использования)

8

depth_to_carbon

Разница между кровлей слоя и поверхностями дочетвертичных

отложений

9

depth_to_mz

Разница между кровлей слоя и поверхностями каменноугольных

отложений

10

top_MZ_map

top + depth_to_mz

11

top_C_map

top + depth_to_carbon

12

paleosurf

top + depth_to_paleosurf

13

x

Координаты скважины в некоторой системе координат, в нашем

случае – в Московской системе координат

14

y

15

okrug

Округ Москвы. Введен для упрощения учета территориального

фактора

16

PreQ_map

Числовая информация с разных геологических карт. Для разных геологических индексов важна разная информация

17

Carb_map

18

Q_map

19

Geomorf

20

genesis

Генезис происхождение грунтов – например речные, морские, болотные, ледниковые отложения на основе входного класса. За каждым классом жестко закреплен генезис. Чаще всего генезис не меняется в процессе интерпретации. Генезис можно рассматривать как кластер более высокого уровня, один генезис всегда включает несколько индексов. Грунты одного индекса не могут быть разного генезиса

21

litol

Литологическое описание грунта Дисперсные грунты:

  • Глинистые грунты – Глины, Суглинки, Супеси. Относятся к одной группе глинистых грунтов, но это не значит, что это одно и то же. В некоторых слоях (древние каменноугольные отложения – генезис carbon) могут быть только глины, причём только твердые и полутвердые.
  • Песчаные грунты – пески различной крупности и плотности сложения.
  • Крупнообломочные грунты (щебень, гравий, галька и т.д.).
  • Скальные грунты: известняк, доломит, мергель, песчаник. Бывают только в древних отложениях (генезис – carbon, Creatcious, Jurassic).
  • Специфические органогенные грунты – торф, ил, сапропель. Редкие и опасные для строительства.
  •  Техногенные грунты – отходы человеческой деятельности, строительные материалы и т.д. (генезис – technogen).
  • Карстовые полости – большие полости в известняках, часто заполненные дисперсными грунтами

22

podoshva

Глубина подошвы слоя

23

prochn

Прочность грунта (только для скальных пород)

24

vkluch

Наличие или отсутствие включений (случайные органические

или минеральные тела или предметы, генетически не связанные с почвенными процессами)

25

vlaga

Влажность, водонасыщенность грунта

26

color_lit

Цвет грунта

27

konsist

Консистенция грунта: текучесть / пластичность / твердость и т.д.

(только для глинистых пород)

28

krupnost

Крупность (только для песчаных грунтов)

29

kavern

Кавернозность – наличие полостей и пор в скальных грунтах

30

plotn

Плотность сложения песчаных грунтов

31

sohran

Степень разрушения скального грунта

32

cons

konsist в числовом формате

 

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

  1. Выбор таблицы и данных из корпоративной базы данных с помощью SQL- запросов.
  2. Преобразование полученной таблицы в файл CSV и его экспорт.
  3. Импорт CSV-файла в среду Jupyter Lab с помощью Pandas.
  4. Обработка данных с помощью моделей машинного обучения является основным этап и включает следующие подэтапы обработки информации.
    • Преобразование типов данных.
    • Обработка пропущенных значений.
    • Нормализация данных.
    • Построение моделей машинного обучения.
    • Преобразование в исходный формат.
  5. Подготовка полученных данных к экспорту в формат CSV.
  6. Загрузка файла CSV в базу данных с использованием SQL.

На рисунке 1 представлена диаграмма вариантов использования ПИС.

 

Рис. 1. Диаграмма вариантов использования программно-информационной системы для определения категории грунта.

 

ПИС разработана на языке программирования Python с его мощными библиотеками для научных вычислений (pandas, numpy, sklearn, seaborn, matplotlib, tkinter, pandastable и time). Она выполняет перечисленную выше последовательность преобразований и визуализаций данных, а затем импортирует их в модель машинного обучения Random Forest для непосредственного определения типа грунта на основе предоставленных данных. Random Forest работает с ансамблями деревьев решений и используется для задач классификации и регрессии. То есть он представляет собой ансамблевый метод, который комбинирует прогнозы нескольких деревьев решений для улучшения общей производительности модели.

Обучение модели является ключевым шагом, позволяющим модели извлекать закономерности и зависимости из имеющихся данных и использовать их для предсказания типов грунта. В процессе обучения модели Random Forest, каждое дерево строится на основе случайной подвыборки данных из обучающей выборки. Для каждого дерева также случайно выбирается подмножество признаков. Это помогает снизить переобучение модели и повысить ее обобщающую способность. Деревья строятся путем разделения данных на основе различных признаков и значений. Признаки и их значения используются для создания условий, по которым данные разделяются на более чистые подгруппы, соответствующие различным типам грунта. Процесс разделения продолжается до достижения определенного критерия остановки, такого как достижение определенной глубины дерева или минимального числа образцов в листьях. Каждое дерево в Random Forest производит свое собственное предсказание типа грунта для каждого образца данных. Затем, для получения окончательного предсказания, модель применяет голосование или усреднение предсказаний от всех деревьев в ансамбле. Это позволяет учесть мнение нескольких деревьев и получить более надежный результат.

Обучение модели Random Forest включает построение ансамбля деревьев и настройку их параметров. Указываем количество деревьев в ансамбле, функцию измерения качества разделения, минимальное число образцов в листьях и бутстрап. Настройка параметров может влиять на производительность и обобщающую способность модели. После завершения обучения модели Random Forest на обучающей выборке, можно провести оценку производительности модели на тестовой выборке для оценивания качества классификации и способности модели обобщать на новые данные.

На рисунке 2 приведен пример графического интерфейса пользователя ПИС при выполнении действия (о чем свидетельствует прогресс-бар в правой нижней части экрана). Он позволяет выполнить: импорт, обработку, визуализацию и экспорт данных; выбрать средства для редактирования и изменения отображения графиков; выбрать средства для обучения моделей машинного обучения.

 

Рис. 2. Отображение графического интерфейса пользователя ПИС при выполнении действия.

 

При работе пользователи активно использует методы визуализации выбранных из таблицы данных в виде графиков прямо в интерфейсе (рис. 3). Существует возможность настройки различных атрибутов графика: написания заголовка, подписи осей, стиля линий.

 

Рис. 3. Пример отображения данных и настройки его параметров.

 

После загрузки данных из .csv файла проводится предварительный анализ данных. Структура данных состоит из 32 столбцов (то есть 32 признаков для классификации типов грунта) и 148595 строк (то есть данных для 148595 различных экземпляров проб грунта).

Далее было произведено изучение распределения значений в каждом признаке, используя статистические метрики (минимум и максимум, среднее значение, стандартное отклонение). Также были построены гистограммы распределения значений для визуального оценивания форм распределения и выявления возможных выбросы или аномалии.

При анализе данных были выявлены пропущенных значений. Далее, используя библиотеку pandas, были идентифицированы эти пропущенные значения и к каждому была применена соответствующая стратегия обработки (в некоторых случаях пропущенные значения были заполнены неизвестными или полностью удалены некорректные данные).

Затем был выполнен анализ, включающий вычисление статистических метрик, визуализацию данных и проверку корреляции между признаками и целевой переменной. В результате были выбраны наиболее значимые признаки для классификации грунтов, то есть сформировано подмножество признаков, которые будут использоваться для обучения модели. Визуализации boxplot полезна для сравнения распределений разных признаков и выявления потенциальных выбросов или необычных значений, что важно при принятии решений о предобработке данных или выборе соответствующих статистических методов (рис. 4).

 

Рис. 4. Пример применения boxplot на один из признаков.

 

Гистограммы распределения данных использовались для визуализации частоты появления значений в различных интервалах. Она позволяет наглядно представить форму распределения данных и выявить ее особенности (моды, наличие выбросов и прочие). Это помогает принять решения о преобразовании данных, удалении выбросов или выборе соответствующих статистических методов для дальнейшего анализа и моделирования.

Для анализа данных и подготовки их к обучению модели была использована корреляционная матрица (рис. 5). Она позволяет определить степень линейной связи между признаками и выявить сильно коррелирующие признаки. Это важно для исключения дублирования информации и снижения влияния мультиколлинеарности на процесс обучения модели. После анализа матрицы корреляции можно принимать решение о выборе наиболее значимых признаков и использовать их для обучения модели.

 

Рис. 5. Матрица корреляции.

 

Далее в четыре этапа происходит подготовка данных к обучению.

На первом этапе с помощью метода get_dummies было проведено преобразование категориальных переменных в числовые значения для подготовки данных к классификации с использованием алгоритма Random Forest (так как при наличии категориальными данными не получится их использовать в моделях машинного обучения (линейной регрессии или дереве принятия решений)).

На втором этапе было выполнено масштабирование признаков, то есть приведение значений признаков к одному и тому же диапазону или единой шкале (иначе признаки с большими значениями в своих диапазонах будут иметь большее влияние на модель, чем признаки с меньшими значениями и/или с меньшими диапазонами). Для масштабирования признаков использовались методы стандартизации (z-масштабирование). То есть при стандартизации признаков вычисляется среднее значение и стандартное отклонение каждого признака. Затем каждое значение признака вычитается из среднего значения и делится на стандартное отклонение. Это приводит к тому, что каждый признак имеет среднее значение равное нулю и стандартное отклонение равное единице.

На третьем этапе с помощью функции concat колонки объединяются и подготавливаются датафреймы к обучению.

На четвертом этапе проводится разделение данных на обучающую и тестовую выборки, необходимо для оценивания производительности модели машинного обучения и проверки ее способности к обобщению на новых данных. Пусть обучающая выборка составляет 70% от исходного набора данных, а тестовая – 30%.

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

В процессе обучения модели Random Forest, каждое дерево строится на основе случайной подвыборки данных из обучающей выборки. Для каждого дерева также случайно выбирается подмножество признаков (это снижает переобучение модели и повышает ее обобщающую способность). Деревья строятся путем разделения данных на основе различных признаков и значений. Признаки и их значения используются для создания условий, по которым данные разделяются на более чистые подгруппы, соответствующие различным типам грунта. Процесс разделения продолжается до достижения определенного критерия остановки, такого как достижение определенной глубины дерева или минимального числа образцов в листьях.

Каждое дерево в Random Forest производит свое собственное предсказание типа грунта для каждого образца данных. Затем, для получения окончательного предсказания, модель применяет голосование или усреднение предсказаний от всех деревьев в ансамбле. Это позволяет учесть мнение нескольких деревьев и получить более надежный результат.

Обучение модели Random Forest включает построение ансамбля деревьев и настройку их параметров. Изначально указывается количество деревьев в ансамбле, функции измерения качества разделения, минимальное число образцов в листьях и бутстрап. Настройка параметров может влиять на производительность и обобщающую способность модели. После завершения обучения модели на обучающей выборке, можно провести оценку производительности модели на тестовой выборке.

После завершения обучения модели выполняется анализ результатов обучения, включающий оценку точности модели на тестовых данных, генерацию отчета о классификации и другие метрики оценивания модели (рис. 6).

Реализация интерфейса ПИС осуществлялась с использованием библиотеки Tkinter для создания интуитивно понятного графического пользовательского интерфейса (GUI) и PandasTable для отображения и взаимодействия с табличными данными.

 

Рис. 6. Пример квалификационного отчета.

 

Заключение. В результате проведенного исследования разработано программное обеспечение (ПИС) для анализа и классификации данных проб грунтов, а также практического определению категории грунта на основе имеющихся о них данных.

×

About the authors

О. A. Gushchina

Author for correspondence.
Email: ogarevonline@yandex.ru
Russian Federation

A. S. Korzhov

Email: ogarevonline@yandex.ru
Russian Federation

References

  1. Специалисты Газпром нефти научили программу исследовать образцы керна по фото [Электронный ресурс]. – Режим доступа: https://neftegaz.ru/news/standarts/637475-spetsialisty-gazprom-nefti-nauchili- programmu-issledovat-obraztsy-kerna-po-foto/ (дата обращения: 03.09.2023).
  2. Комплексный анализ и определение фильтрационно-емкостных свойств геологического образца [Электронный ресурс]. – Режим доступа: https://xn-- b1aghfftcbpg0bw.xn--p1ai/ (дата обращения: 11.10.2023).
  3. Документация Python 3.12.0 [Электронный ресурс]. – Режим доступа: https://docs.python.org/3/ (дата обращения: 11.10.2023).
  4. Груздев А. В. Прогнозное моделирование в IBM SPSS Statistics, R и Python: метод деревьев решений и случайный лес. – М.: ДМК Пресс, 2018. – 642 с.

Supplementary files

Supplementary Files
Action
1. JATS XML
2. Fig. 1. Diagram of options for using the software and information system to determine the soil category.

Download (99KB)
3. Fig. 2. Display of the PIS graphical user interface when performing an action.

Download (235KB)
4. Fig. 3. Example of data display and setting its parameters.

Download (97KB)
5. Fig. 4. An example of applying boxplot to one of the features.

Download (14KB)
6. Fig. 5. Correlation matrix.

Download (107KB)
7. Fig. 6. Example of a qualification report.

Download (94KB)

Мы используем файлы cookies, сервис веб-аналитики Яндекс.Метрика для улучшения работы сайта и удобства его использования. Продолжая пользоваться сайтом, вы подтверждаете, что были об этом проинформированы и согласны с нашими правилами обработки персональных данных.

Согласие на обработку персональных данных с помощью сервиса «Яндекс.Метрика»

1. Я (далее – «Пользователь» или «Субъект персональных данных»), осуществляя использование сайта https://journals.rcsi.science/ (далее – «Сайт»), подтверждая свою полную дееспособность даю согласие на обработку персональных данных с использованием средств автоматизации Оператору - федеральному государственному бюджетному учреждению «Российский центр научной информации» (РЦНИ), далее – «Оператор», расположенному по адресу: 119991, г. Москва, Ленинский просп., д.32А, со следующими условиями.

2. Категории обрабатываемых данных: файлы «cookies» (куки-файлы). Файлы «cookie» – это небольшой текстовый файл, который веб-сервер может хранить в браузере Пользователя. Данные файлы веб-сервер загружает на устройство Пользователя при посещении им Сайта. При каждом следующем посещении Пользователем Сайта «cookie» файлы отправляются на Сайт Оператора. Данные файлы позволяют Сайту распознавать устройство Пользователя. Содержимое такого файла может как относиться, так и не относиться к персональным данным, в зависимости от того, содержит ли такой файл персональные данные или содержит обезличенные технические данные.

3. Цель обработки персональных данных: анализ пользовательской активности с помощью сервиса «Яндекс.Метрика».

4. Категории субъектов персональных данных: все Пользователи Сайта, которые дали согласие на обработку файлов «cookie».

5. Способы обработки: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, передача (доступ, предоставление), блокирование, удаление, уничтожение персональных данных.

6. Срок обработки и хранения: до получения от Субъекта персональных данных требования о прекращении обработки/отзыва согласия.

7. Способ отзыва: заявление об отзыве в письменном виде путём его направления на адрес электронной почты Оператора: info@rcsi.science или путем письменного обращения по юридическому адресу: 119991, г. Москва, Ленинский просп., д.32А

8. Субъект персональных данных вправе запретить своему оборудованию прием этих данных или ограничить прием этих данных. При отказе от получения таких данных или при ограничении приема данных некоторые функции Сайта могут работать некорректно. Субъект персональных данных обязуется сам настроить свое оборудование таким способом, чтобы оно обеспечивало адекватный его желаниям режим работы и уровень защиты данных файлов «cookie», Оператор не предоставляет технологических и правовых консультаций на темы подобного характера.

9. Порядок уничтожения персональных данных при достижении цели их обработки или при наступлении иных законных оснований определяется Оператором в соответствии с законодательством Российской Федерации.

10. Я согласен/согласна квалифицировать в качестве своей простой электронной подписи под настоящим Согласием и под Политикой обработки персональных данных выполнение мною следующего действия на сайте: https://journals.rcsi.science/ нажатие мною на интерфейсе с текстом: «Сайт использует сервис «Яндекс.Метрика» (который использует файлы «cookie») на элемент с текстом «Принять и продолжить».