Научная статья на тему 'РЕШЕНИЕ ЗАДАЧИ СОЗДАНИЯ АНСАМБЛЯ СЛУЧАЙНОГО ЛЕСА ДЛЯ КЛАССИФИЦИРОВАНИЯ МОДЕЛЕЙ ТЕЛЕФОНОВ ПО ЦЕНОВЫМ КАТЕГОРИЯМ'

РЕШЕНИЕ ЗАДАЧИ СОЗДАНИЯ АНСАМБЛЯ СЛУЧАЙНОГО ЛЕСА ДЛЯ КЛАССИФИЦИРОВАНИЯ МОДЕЛЕЙ ТЕЛЕФОНОВ ПО ЦЕНОВЫМ КАТЕГОРИЯМ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
71
7
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ДЕРЕВО РЕШЕНИЙ / ПРЕДСКАЗАТЕЛЬНАЯ АНАЛИТИКА / СЛУЧАЙНЫЙ ЛЕС РЕШЕНИЙ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гущин Александр Вячеславович, Гущина Оксана Александровна

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

SOLUTION TO THE PROBLEM OF CREATING A RANDOM FOREST ENSEMBLE FOR CLASSIFICATION OF PHONE MODELS BY PRICE CATEGORIES

The article discusses the creation and use of random forest ensembles of decision trees for predictive analytics by the example of solving the problem of classifying eighty phone models with twenty features in four price categories. A comparative analysis of the obtained solution with a solution based on the decision tree method was also carried out.

Текст научной работы на тему «РЕШЕНИЕ ЗАДАЧИ СОЗДАНИЯ АНСАМБЛЯ СЛУЧАЙНОГО ЛЕСА ДЛЯ КЛАССИФИЦИРОВАНИЯ МОДЕЛЕЙ ТЕЛЕФОНОВ ПО ЦЕНОВЫМ КАТЕГОРИЯМ»

ГУЩИНА О. А., ГУЩИН А. В.

РЕШЕНИЕ ЗАДАЧИ СОЗДАНИЯ АНСАМБЛЯ СЛУЧАЙНОГО ЛЕСА ДЛЯ КЛАССИФИЦИРОВАНИЯ МОДЕЛЕЙ ТЕЛЕФОНОВ ПО ЦЕНОВЫМ КАТЕГОРИЯМ

Аннотация. В статье рассматривается создание и использование ансамблей случайного леса деревьев решений для предсказательной аналитики на примере решения задачи классификации восьмидесяти моделей телефонов с двадцатью признаками по четырем ценовым категориям. Проведен сравнительный анализ полученного решения с решением на основе метода деревьев решений.

Ключевые слова: дерево решений, случайный лес решений, предсказательная аналитика.

GUSHCHINA О. А., GUSHCHIN А. V.

SOLUTION TO THE PROBLEM OF CREATING A RANDOM FOREST ENSEMBLE FOR CLASSIFICATION OF PHONE MODELS BY PRICE CATEGORIES

Abstract. The article discusses the creation and use of random forest ensembles of decision trees for predictive analytics by the example of solving the problem of classifying eighty phone models with twenty features in four price categories. A comparative analysis of the obtained solution with a solution based on the decision tree method was also carried out.

Keywords: decision tree, random decision forest, predictive analytics.

Постановка задачи. Пусть даны 80 различных моделей телефонов различных марок. Каждой модели телефона поставлено в соответствие уникальное сочетание из 20 признаков: емкость телефонной батарейки; наличие Bluetooth; скорость процессора; наличие разъёма для второй SIM-карты; число мегапикселей в фронтовой камере; поддержка 4G; размер внутренней памяти; толщина телефона; вес телефона; количество ядер процессора; количество мегапикселей в основной камере; объем оперативной памяти; высота экрана; ширина экрана; высота телефона; ширина телефона; время разговора от одной батареи; поддержка 3G; наличие сенсорного экрана; поддержка wifi.

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

Процесс решения задачи. Для хранения данных используется dataframe из библиотеки Pandas [1; 2] и массив из библиотеки NumPy, которые подключаются в начале файла. После загрузки данных можно просмотреть и их, и их статистическую информацию. Результаты этих манипуляций представлены таблицах 1-4.

Часть элементов выборки

№ battery_power Ь1ше clock_speed toшch_screen wifi price_rang е

0 842 0 2.2 0 1 1

1 1021 1 0.5 1 0 2

2 563 1 0.5 1 0 2

3 615 1 2.5 0 0 2

4 1821 1 1.2 1 0 1

1995 794 1 0.5 1 0 0

1996 1965 1 2.6 1 1 2

1997 1911 0 0.9 1 0 3

1998 1512 0 0.9 1 1 0

1999 510 1 2.0 1 1 3

Типы всех использованных переменных

Таблица 2

battery_power, Blue, dual_sim, Fc, int_memory, mobile_wt, n_cores, Pc,

px_height, px_width, Яат, sc_h, sc_w, talk_time, three_g, toшch_screen, toшch_screen, wifi, price_range

int64

clock_speed, m_dep

float64

Таблица 3

Результаты описательной статистики

№ battery_power Ь1ше wifi price_range

сошП; 2000.000000 2000.0000 2000.000000 2000.000000

теап 1238.518500 0.4950 0.507000 1.500000

std 439.418206 0.5001 0.500076 1.118314

тт 501.000000 0.0000 0.000000 0.000000

25% 851.750000 0.0000 0.000000 0.750000

50% 1226.000000 0.0000 1.000000 1.500000

75% 1615.250000 1.0000 1.000000 2.250000

тах 1998.000000 1.0000 1.000000 3.000000

Категориальные и количественные переменные

Категориальные []

Количественные ['battery_power', 'Ыше', 'clock_speed', Уша^т', Тс', Тошг_^, 'int_memory', 'm_dep', 'mobile_wt', 'n_cores', 'рс', 'px_height', 'px_width', 'гат', 'sc_w', Ча1к_йте', 'three_g', 'toшch_screen', 'мй', 'price_range']

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

На следующем этапе воспользовались библиотекой scikit-leam для создания объекта классификатора случайного леса и выполнения его обучение на представленных данных [3-6]. Переменную params используем для хранения параметров ансамбля. Эти данные передаем в функцию создания экземпляра случайного леса решений, фрагмент которого представлен далее. Далее воспользовались функцией обучения с передачей тренировочных данных.

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

Таблица 5

Результаты вычисления точности модели случайного леса решений

Метрика Результат

Правильность на обучающей выборке 0.999

Правильность на контрольной выборке 0.880

ООВ оценка правильности 0.89

АиС на обучающей выборке для RandomForest 1.000

АиС на контрольной выборке для RandomForest 0.982

В качестве примера спрогнозировали принадлежность первых пяти объектов к определенному классу с помощью функции forestClassifier.predict_proba(X_test[:5])). Результат представлен в таблице 6. Каждый столбец соответствует определенному классу (ценовой категории), а строка - определенной модели телефона.

Таблица 6

Пример вывода спрогнозированных вероятностей принадлежности первых пяти модели телефона (таблица 1) к одной из четырех ценовых категорий

0.01039387 0.06722729 0.15937753 0.76300131

0.0517534 0.09618108 0.26739106 0.58467446

0.06692121 0.44428379 0.37681018 0.11198482

0.01541764 0.04722354 0.13160823 0.80575059

0.23304687 0.55828515 0.15961096 0.04905703

Дополнительно с вычислением метрики точности модели случайного леса решений, была вычислена матрица ошибок (рис. 1) и сформирован квалификационному отчет (рис. 2).

Матрица ошибок:

Рис. 1. Матрица ошибок.

Классификационный отчет:

precision recall fl-score support

0.0 е. .90 0, .95 0, .92 118

i.e е. .30 0, ,31 0. .30 126

2.0 0 .33 0. .73 0. .80 134

3.0 0 .93 0, .91 0, .92 122

accuracy 0. .86 500

macro avg 0 .36 0, ,36 0, .86 500

weighted avg 0. .36 0, ,36 0. .86 500

Рис. 2. Квалификационный отчет.

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

Показатели важности признаков случайного леса решений

1 ram 0.522775

2 battery_power 0.076009

3 px_height 0.055573

4 px_width 0.054512

5 mobile_wt 0.035392

6 int memory 0.031938

7 talk time 0.026818

8 pc 0.026318

9 clock_speed 0.025707

10 sc_w 0.025151

11 sc_h 0.024550

12 fc 0.021197

13 m_dep 0.020963

14 n_cores 0.019568

15 dual_sim 0.005946

16 wifi 0.005899

17 touch_screen 0.005887

18 four_g 0.005619

19 blue 0.005320

20 three_g 0.004857

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

Таблица 8

Результаты вычисления точности модели дерева решений

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Метрика Результат

Правильность на обучающей выборке 1.000

Правильность на контрольной выборке 0.836

АиС на обучающей выборке для RandomForest 1.000

АиС на контрольной выборке для RandomForest 0.876

Сравнив показатели эффективности обучения для случайного леса и дерева решений в таблицы 5 и 8, отметим, что точность первого больше на 0.044, а значение AUC на контрольной выборке лучше на 0.106. Следовательно, ансамбль деревьев решений эффективнее дерева решений.

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

Таблица 9

Показатели важности признаков дерева решений

1 ram 0.659793

2 battery_power 0.093422

3 px_height 0.091308

4 px_width 0.085851

5 mobile_wt 0.012314

6 talk time 0.010347

7 sc_w 0.007392

8 sc_h 0.005382

9 fc 0.005496

10 pc 0.004757

11 m_dep 0.004418

12 n_cores 0.004289

13 three_g 0.003922

14 dual_sim 0.003846

15 clock_speed 0.003296

16 int memory 0.002545

17 blue 0.001433

18 wifi 0.000989

19 touch_screen 0.000000

20 four_g 0.000000

Для понимания структуры дерева решений в ансамбле и в отдельности, мы их визуализировали и вывели в РКО-файл (рис. 3, 4).

Рис. 3. Визуализация дерева решений из ансамбля.

Рис. 4. Фрагмент дерева решений из ансамбля.

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

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

Для повышения точности необходимо использовать оптимальные параметры. Самым простым способом их выявления считается метод сеточного поиска ОнёБеагсИСУ с кросс-валидацией из библиотеки skleam.model_selection. Суть метода состоит в том, что строит множество моделей с различными параметрами, обучающимися и сравнивающимися по эффективности. Оптимальным числом различных моделей ансамблей является произведение значения кросс-валидации и числа комбинаций выбранных параметров.

После прохода всех параметров, показанного на рисунке 5, получаем гиперпараметры

для лучшей модели (рис. 6).

Fitting в [Parallel [Parallel [Parallel [Parallel [Parallel [Parallel [Parallel [Parallel [Parallel [Parallel [Parallel [Parallel [Parallel [Parallel [Parallel [Parallel [Parallel [Parallel

folds fo n_jobs=-n_jobs=-n_jobs=-n_jobs=-n_jobs=-n_jobs=-n_jobs=-n_jobs=-n_jobs=-n_jobs=-n_jobs=-n_jobs=-n_jobs=-n_jobs=-n_jobs=-n_jobs=-n_jobs=-n_jobs=-

each of Using Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done

4326 cand backend 52 tasks 215 tasks 466 tasks S16 tasks 1266 task 1316 task 2466 task 3216 task 4666 task 5016 task 6066 task 7216 task S466 task 9316 task 11266 tas 12316 tas 12969 out

idateSj totalling 12966 fits LokyBackend with 8 concurrent workers.

elapsed: 3.8s elapsed: 19.3s elapsed: 42.5s elapsed: 1.2min s | elapsed: 1.9min

s | elapsed: 2.7min

s | elapsed: 3.7min

s | elapsed: 4.9min

s | elapsed: 6.4min

s | elapsed: 8.8min

s | elapsed: 10.1min

s | elapsed: 12.5min

s | elapsed: 15.1min

s | elapsed: 18.0min

ks | elapsed: 21.2min

ks | elapsed: 24.7min

of 12969 | elapsed: 25.0min finished

Рис. 5. Результат вычисления гиперпараметров.

RaridomForestClassifier(bootstrap=Truej ccp_alpha=9.Sj class_weight=None.,

criterior^'gini'j max_depth=15J max_features='sqrt' rrax_leaf_nodes=Nonej max_samples=Nonej miri_impurity_decrease=0.0J min_impurity_split=NoneJ rrin_samples_leaf=3J min_samples_split=2:, rriri_weight_fraction_leaf=S.6j n_estimators=7SSj n_jobs=Nonej oob_score=Truej random_state=None., verbose=0, warm_start=False)

Рис. 6. Результат вывода гиперпараметров лучшей модели.

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

Таблица 10

Результаты показателей точности модели случайного дерева решений с различными гиперпараметрами

param_max_depth param_max_features Точность

2 log2 0.718581

sqrt 0.719463

Продолжение таблицы 10

3 log2 0.775933

sqrt 0.775521

7 log2 0.836848

sqrt 0.837754

11 log2 0.844720

sqrt 0.844389

15 log2 0.844227

sqrt 0.845271

На рисунке 7 приведен график зависимости вероятности совпадения полученных решений с реальными данными от количества деревьев в случайном лесе решений.

1.00 -

0.95

0.90 -

t 0.В5

о.ео -

га 0.75 -

0.70

0.65

0.60 -

обучение

перекрестная проверка

___

25

50

75

100

125

150

175

2D0

Количество деревьев

Рис. 7. График зависимости вероятности совпадения полученных решений с реальными данными от количества деревьев.

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

СПИСОК ЛИТЕРАТУРЫ

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1. Ансамблевые методы: бэггинг, бустинг и стекинг [Электронный ресурс]. - Режим доступа: https://neurohive.io/ru/osnovy-data-science/ansamblevye-metody-begging-busting-i-steking/ (дата обращения: 03.11.2022).

2. Груздев А. В. Прогнозное моделирование в IBM SPSS Statistics, R и Python: метод деревьев решений и случайный лес. - М.: ДМК Пресс, 2018. - 642 c.

3. Открытый курс машинного обучения. Тема 5. Композиции: бэггинг, случайный лес [Электронный ресурс]. - Режим доступа: https://habr.com/ru/company/ods/blog/324402 (дата обращения: 03.11.2022).

4. Джоши П. Искусственный интеллект с примерами на Python: Пер. с англ. - СПб.: ООО «Диалектика», 2019. - 448 с.

5. A random forest classifier [Электронный ресурс]. - Режим доступа: https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier (дата обращения: 03.11.2022).

6. Hastie Т. The Elements of Statistical Learning. - Springer, 2017. - 764 p.

i Надоели баннеры? Вы всегда можете отключить рекламу.