Научная статья на тему 'Автоматизация кластеризации компаний по финансовым показателям с использованием k-means алгоритма на больших данных'

Автоматизация кластеризации компаний по финансовым показателям с использованием k-means алгоритма на больших данных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
0
0
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
Кластеризация / K-means / финансовые показатели / анализ данных / Python / генерация данных / визуализация / Clustering / K-means / financial metrics / data analysis / Python / synthetic data / visualization

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Вахромеева Е.Н., Зензинова Ю.Б.

В данной статье рассматривается использование алгоритма K-means на Python для кластеризации компаний на основе их финансовых показателей. Для демонстрации метода были сгенерированы синтетические данные, включающие чистую прибыль, общие активы и доход компаний. Описаны этапы предварительной обработки данных, нормализации и выполнения кластерного анализа. Приведена визуализация результатов кластеризации. Приведены преимущества использования языка Python и его библиотек для анализа данных, включая обработку больших объемов данных, масштабируемость и автоматизацию. Кластерный анализ позволяет выявлять группы компаний со схожими экономическими характеристиками, что может способствовать более точной сегментации рынка и разработке таргетированных стратегий. Данный подход позволяет эффективно анализировать большие объемы финансовых данных и выявлять скрытые закономерности, что может быть полезным для аналитиков и инвесторов.

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

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Вахромеева Е.Н., Зензинова Ю.Б.

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

Automation of company clustering by financial metrics using the k-means algorithm on big data

This article examines the use of the K-means algorithm in Python for clustering companies based on their financial indicators. Synthetic data, including net income, total assets, and revenue of companies, were generated to demonstrate the method. The stages of data preprocessing, normalization, and cluster analysis execution are described. A visualization of the clustering results is provided. The advantages of using Python and its libraries for data analysis, including handling large volumes of data, scalability, and automation, are highlighted. Cluster analysis allows identifying groups of companies with similar economic characteristics, which can contribute to more accurate market segmentation and the development of targeted strategies. This approach enables effective analysis of large volumes of financial data and the identification of hidden patterns, which can be useful for analysts and investors.

Текст научной работы на тему «Автоматизация кластеризации компаний по финансовым показателям с использованием k-means алгоритма на больших данных»

DOI 10.46320/2077-7639-2024-5-126-46-50

Автоматизация кластеризации компаний по финансовым показателям с использованием k-means алгоритма на больших данных

Вахромеева Е.Н., Зензинова Ю.Б.

В данной статье рассматривается использование алгоритма K-means на Python для кластеризации компаний на основе их финансовых показателей. Для демонстрации метода были сгенерированы синтетические данные, включающие чистую прибыль, общие активы и доход компаний. Описаны этапы предварительной обработки данных, нормализации и выполнения кластерного анализа. Приведена визуализация результатов кластеризации. Приведены преимущества использования языка Python и его библиотек для анализа данных, включая обработку больших объемов данных, масштабируемость и автоматизацию. Кластерный анализ позволяет выявлять группы компаний со схожими экономическими характеристиками, что может способствовать более точной сегментации рынка и разработке таргетированных стратегий. Данный подход позволяет эффективно анализировать большие объемы финансовых данных и выявлять скрытые закономерности, что может быть полезным для аналитиков и инвесторов.

ДЛЯ ЦИТИРОВАНИЯ ГОСТ 7.1-2003

Вахромеева Е.Н., Зензинова Ю.Б. Автоматизация кластеризации компаний по финансовым показателям с использованием k-means алгоритма на больших данных // Дискуссия. - 2024. - Вып. 126. - С. 46-50.

КЛЮЧЕВЫЕ СЛОВА

Кластеризация, K-means, финансовые показатели, анализ данных, Python, генерация данных, визуализация.

DOI 10.46320/2077-7639-2024-5-126-46-50

Automation of company clustering by financial metrics using the k-means algorithm on big data

Vakhromeeva E.N., Zenzinova Y.B.

This article examines the use of the K-means algorithm in Python for clustering companies based on their financial indicators. Synthetic data, including net income, total assets, and revenue of companies, were generated to demonstrate the method. The stages of data preprocessing, normalization, and cluster analysis execution are described. A visualization of the clustering results is provided. The advantages of using Python and its libraries for data analysis, including handling large volumes of data, scalability, and automation, are highlighted. Cluster analysis allows identifying groups of companies with similar economic characteristics, which can contribute to more accurate market segmentation and the development of targeted strategies. This approach enables effective analysis of large volumes of financial data and the identification of hidden patterns, which can be useful for analysts and investors.

FOR CITATION APA

Vakhromeeva E.N., Zenzinova Y.B. Automation of company clustering by financial metrics using the k-means algorithm on big data. Diskussiya [Discussion], 126, 46-50.

KEYWORDS

Clustering, K-means, financial metrics, data analysis, Python, synthetic data, visualization.

В современном мире огромное количество финансовых данных требует эффективных методов анализа для принятия обоснованных решений. Кластерный анализ [1] представляет собой метод многомерного анализа данных, который используется для группировки объектов на основе их схожих характеристик. Одним из самых популярных методов кластерного анализа является алгоритм к-шеапя [2]. Этот алгоритм работает путем разделения данных на к кластеров, каждый из которых характеризуется средним значением всех объектов внутри кластера. к-шеапя используется для различных задач, таких как сегментация рынка, выявление паттернов в данных и многих других. Применение алгоритма к-шеапя позволяет эффективно выявлять скрытые структуры в больших объемах данных, что делает его важным инструментом анализа и исследования. Основные

преимущества этого алгоритма - его простота, скорость и возможность легко интерпретировать результаты.

В данной статье рассматривается применение алгоритма k-means для кластеризации компаний по их финансовым показателям на больших данных с помощью языка Python и его библиотек.

Использование Python для анализа данных имеет ряд существенных преимуществ по сравнению с другими инструментами, а именно:

1. Обработка больших объемов данных, так как библиотеки, такие как pandas и numpy, оптимизированы для работы именно с большими наборами данных.

2. Алгоритм, реализованный на Python, позволяет легко масштабировать анализ, визуализацию и обработку от небольших данных до огромных массивов.

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

4. Python легко интегрируется с другими системами и платформами, что позволяет создавать комплексные решения для анализа данных, включающие базы данных, веб-сервисы и другие источники данных.

Для анализа были сгенерированы данные о финансовых показателях компаний, таких как чистая прибыль, общие активы и доход. Для генерации данных был использован следующий код: import numpy as np import pandas as pd np.random.seed(42) n_companies = 100 data = {

—> "Ticker": [f"COMP{i}" for i in range(n_companies)],

— "Net Income": np.random.normal(100000,

20000, n_companies),

— "Total Assets": np.random.normal(500000,

100000, n_companies),

— "Revenue": np.random.normal(200000,

50000, n_companies)

}

df = pd.DataFrame(data)

В коде были использованы библиотеки numpy [3] и pandas [4], которые широко используются для работы с массивами данных и обработкой табличных данных соответственно. Далее, все сгенерированные данные собираются в DataFrame что упрощает последующую обработку и анализ данных.

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

Пример кода для предварительной обработки данных:

from sklearn.preprocessing import StandardScaler

# Заполнение пропущенных значений нулями

df.fillna(0, inplace=True)

# Нормализация данных scaler = StandardScaler() scaled_data = scaler.fit_transform

(df.drop("Ticker", axis=1))

Для кластеризации данных был использован алгоритм k-means. Сначала был импортирован класс KMeans из библиотеки scikit-learn [ 5 ]. Далее был создан объект kmeans, представляющий алгоритм k-means. Параметр n_clusters определяет

количество кластеров, на которые были разбиты данные. Параметр random_state используется для задания начального состояния генератора случайных чисел. Далее был запущен процесс кластеризации на основе данных, переданных в scaled_data. В результате работы алгоритма каждый объект данных был отнесен к одному из кластеров, а метки кластеров, которые были присвоены каждому объекту в результате кластеризации, были добавлены в исходный DataFrame df. Таким образом, каждая строка в DataFrame содержит информацию о том, к какому кластеру относится соответствующий объект данных. Код алгоритма представлен ниже:

from sklearn.cluster import KMeans kmeans = KMeans(n_clusters=3, random_state=42) kmeans.fit(scaled_data) df[ 'Cluster' ] = kmeans.labels_ Для визуализации результатов кластеризации компаний на двумерном графике была импортирована библиотека Matplotlib [6], которая используется для создания графиков в Python. Были созданы списки маркеров и цветов, которые используются для отображения точек на графике заданного размера (10х6 дюймов) для каждого кластера. Каждый новый DataFrame clustered_data содержит данные только для текущего кластера. И построена диаграмма рассеяния, где по оси X отображается чистая прибыль (Net Income), по оси Y - доход (Revenue). Каждая точка представляет компанию, а ее маркер и цвет определяются соответствующими значениями из списков markers и colors. Каждый кластер имеет свой уникальный маркер и цвет. Код для визуализации графика представлен ниже:

import matplotlib.pyplot as plt

# Создание символов и оттенков серого для кластеров

markers = [ 'o', 's', 'D' ]

colors = [ 'black', 'dimgray', 'lightgray' ]

# Визуализация кластеров plt.figure(figsize=(10, 6)) for cluster in range(3):

clustered_data = df [ df [ 'Cluster' ] == cluster ] plt.scatter(clustered_data [ 'Net Income' ], clustered_data [ 'Revenue' ],

marker=markers [ cluster ], color=col-ors[ciuster], label=f'Cluster {cluster}')

plt.title('Кластеры компаний по финансовым показателям')

plt.xlabel('Net Income')

plt.ylabel('Revenue')

plt.legend()

р^.яЬошО видно, какие компании имеют схожие финансовые

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

Кластеры компаний по финансовым показателям

m Cluster 0

■ Cluster 1

Cluster 2

• # ■ •

• щ ■

• • ■ ■ ■ m ■ ■ ■

• • ♦ • • ■ ■

• • % • f ■

• • ■

■ • ■ ■

■ ■ % ■

■ • ■

60000 80000 100000 Net Income

Рисунок 1. График кластеризации компаний по финансовым показателям

Данные из исходного DataFrame df можно легко просмотреть, используя стандартные методы pandas, такие как df.head() для просмотра первых строк или df.describe() для получения сводной статистики.

Результаты кластеризации могут быть добавлены в исходный фрейм данных в виде нового столбца, содержащего метки кластеров для каждой строки. Это упрощает визуализацию и анализ данных, поскольку объекты, принадлежащие к разным кластерам, можно легко группировать и сравнивать. Полученные данные также можно экспортировать в различные форматы файлов, такие как CSV или Excel, для удобного обмена и использования в других приложениях. Использование специализированных форматов, таких как JSON [ 7 ] или Parquet [ 8 ], может повысить эффективность обработки данных и совместимость с различными аналитическими инструментами. Наконец, результаты кластеризации могут быть загружены в базы данных для интеграции с существующими системами. Кроме того, код представляет собой автоматизацию процесса визуализации данных и кластеризации, что означает, что его можно легко адаптировать для работы с реальными данными, просто заменив синтетические данные на реальные данные компаний.

Экономическое обоснование и преимущества использования кластерного анализа в экономике можно разбить на несколько аспектов, а именно:

1. Выявление скрытых закономерностей: кластеризация позволяет выявлять скрытые закономерности и группы компаний со схожими финансовыми показателями, что может быть полезно для сегментации рынка [9], разработки целевых стратегий и принятия управленческих решений.

2. Оптимизация бизнес-процессов: анализ кластеров может помочь в оптимизации бизнес-процессов [10], выявлении эффективных стратегий и устранении слабых мест в управлении ресурсами.

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

4. Снижение рисков: кластеризация помогает оценивать риски [11], связанные с различными группами компаний, и разрабатывать стратегии управления этими рисками.

5. Инвестиционная привлекательность: для инвесторов кластерный анализ предоставляет ценную информацию [12] о группах компаний с высоким потенциалом роста или стабильными финансовыми показателями, что облегчает принятие инвестиционных решений.

Таким образом, использование алгоритма K-means для кластеризации компаний по финансовым показателям является мощным инструментом анализа больших данных. Применение

Китанин С.С., Смольянов Б.Д., Чемерис О.С.

Перспективы применения технологии блокчейн в энергетическом секторе экономики

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

Список литературы

1. Гитис Л. Х. Статистическая классификация и кластерный анализ: монография. - Москва: МГГУ, 2003. - 157 с. -[Электронный ресурс]. - Режим доступа: https://znanium. com/catalog/product/999908 (дата обращения: 10.06.2024).

2. Апельцин Л. Data Science в действии. - СПб.: Питер, 2023.

- 736 с.

3. Документация по библиотеке NumPy. - [Электронный ресурс]. - Режим доступа: https://numpy.org/doc/stable/ (дата обращения: 31.05.2024).

4. Документация по библиотеке pandas. - [Электронный ресурс]. - Режим доступа: https://pandas.pydata.org/docs/ user_guide/index.html (дата обращения: 31.05.2024).

5. Документация по библиотеке scikit-learn. - [Электронный ресурс]. - Режим доступа: https://scikit-learn.org/stable/user_ guide.html (дата обращения: 31.05.2024).

6. Документация по библиотеке Matlolib. - [Электронный ресурс]. - Режим доступа: https://matplotlib.org/stable/ users/index (дата обращения: 31.05.2024).

References

1. Gitis L. H. Statistical classification and cluster analysis: monograph. - Moscow: MGSU, 2003. - 157 p. - [Electronic resource].

- Access mode: https://znanium.com/catalog/product/999908 (access date: 10.06.2024).

2. Apeltsin L. Data Science in action. - St. Petersburg: St. Petersburg, 2023. - 736 p.

3. Documentation for the NumPy library. - [Electronic resource].

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

- Access mode: https://numpy.org/doc/stable / (access date: 31.05.2024).

4. Documentation for the pandas library. - [Electronic resource].

- Access mode: https://pandas.pydata.org/docs/user_guide/ index.html (access date: 31.05.2024).

5. Documentation for the scikit-learn library. - [Electronic resource].

- Access mode: https://scikit-learn.org/stable/user_guide.html (access date: 31.05.2024).

6. Documentation for the Matlolib library. - [Electronic resource].

- Access mode: https://matplotlib.org/stable/users/index (access

Информация об авторе

Вахромеева Е.Н., кандидат технических наук, доцент кафедры Автоматизированные системы обработки информации и управления Российского государственного университета им. А. Н. Косыгина (Технологии. Дизайн. Искусство) (г. Москва, Российская Федерация).

Зензинова Ю.Б., кандидат технических наук, доцент кафедры Автоматизированные системы обработки информации и управления Российского государственного университета им. А. Н. Косыгина (Технологии. Дизайн. Искусство) (г. Москва, Российская Федерация).

© Вахромеева Е.Н., Зензинова Ю.Б., 2024.

ставляет ценную информацию для аналитиков и инвесторов. Автоматизация анализа данных с использованием Python и его библиотек делает этот процесс более эффективным и масштабируемым по сравнению с традиционными инструментами.

7. Документация JSON. - [Электронный ресурс]. - Режим доступа: https://docs.python.org/3/library/json.html (дата обращения: 4.06.2024).

8. Документация Parquet. - [Электронный ресурс]. - Режим доступа: https://parquet.apache.org/docs/ (дата обращения: 4.06.2024).

9. Интеллектуальный анализ данных - кластерный анализ. -[Электронный ресурс]. - Режим доступа: https://coderlessons. com/tutorials/akademicheskii/izuchit-dobychu-dannykh/ intellektualnyi-analizdannykh-klasternyi-analiz. (дата обращения: 3.06.2024).

10. Боуш Г. Д. Бизнес-кластеры: категориально-системное представление. - ОмГУ, 2011. - 242 с.

11. Петерс Э. Фрактальный анализ финансовых рынков. - М.: Интернет-трейдинг, 2004. - 304 с.

12. Акулич М. Кластерный подход. Экономический рост и инновационные кластеры. - М.: Издательские решения, 2017. -

886 c.

date: 31.05.2024).

7. JSON documentation. - [Electronic resource]. - Access mode: https://docs.python.org/3/Library/json.htmL (access date: 24.06.2024).

8. Parquet documentation. - [Electronic resource]. - Access mode: https://parquet.apache.org/docs / (access date: 14.06.2024).

9. 9. Data mining - cluster analysis. - [Electronic resource]. -Access mode: https://coderlessons.com/tutorials/akademich-eskii/izuchit-dobychu-dannykh/intellektualnyi-analizdanny-kh-klasternyi-analiz. (access date: 3.06.2024).

10. 10. Boush G. D. Business clusters: a categorical system representation. - OmSU, 2011. - 242 p.

11. 11. Peters E. Fractal analysis of financial markets. - M.: Internet trading, 2004. - 304 p.

12. 12. Akulich M. Cluster approach. Economic growth and innovative clusters. - M.: Publishing solutions, 2017. - 886 p.

Information about the author

Vakhromeeva E.N., Ph.D. of Engineering Sciences, Associate Professor of the Department of Automated Information Processing and Management Systems of the Kosygin Russian State University (Technologies. Design. Art) (Moscow, Russian Federation).

Zenzinova Y.B., Ph.D. of Engineering Sciences, Associate Professor of the Department of Automated Information Processing and Management Systems of the Kosygin Russian State University (Technologies. Design. Art) (Moscow, Russian Federation).

© Vakhromeeva E.N., Zenzinova Y.B., 2024.

5D МАТЕМАТИЧЕСКИЕ И ВЫЧИСЛИТЕЛЬНЫЕ МЕТОДЫ

DISCUSSION №5 ( 126) MAY 2024

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