Gforce-ML commited on
Commit
c81329a
·
1 Parent(s): 3db2497

del old app

Browse files
Files changed (1) hide show
  1. app.py +0 -201
app.py DELETED
@@ -1,201 +0,0 @@
1
- # imports
2
- # ====================================
3
-
4
- import numpy as np
5
- import pandas as pd
6
- import streamlit as st
7
- import streamlit.components.v1 as components
8
- import plotly.express as px
9
-
10
-
11
- components.html(
12
- """
13
- <a href="https://git.io/typing-svg"><img src="https://readme-typing-svg.herokuapp.com?font=Fira+Code&pause=1000&width=435&lines=Анализ+банкротства+компании" alt="Typing SVG" /></a>
14
- <a href="https://git.io/typing-svg"><img src="https://readme-typing-svg.herokuapp.com?font=Fira+Code&pause=1000&width=435&lines=методами+искуственного+интеллекта" alt="Typing SVG" /></a>
15
- """
16
- )
17
-
18
- st.markdown("<h1 style='text-align: center;'>Применение методов машинного обучения в анализе банкротства</h1>", unsafe_allow_html=True)
19
-
20
- with open("./img.png", "rb") as f:
21
- st.image(f.read(), use_column_width=True)
22
-
23
- st.write(
24
- """
25
- # Краткое описание задачи
26
- Эффективное и заблаговременное прогнозирование банкротства компаний имеет важно значение для всех участников рынка. По мере развития информационного общества традиционные методы выявления банкротства становятся менее эффективными и более трудозатратными. Поэтому сочетание традиционных методов с современными моделями искусственного интеллекта может быть эффективно применено в современных экономических условиях.
27
-
28
- Основная цель работы - оценить риск банкротства с помощью нескольких алгоритмов машинного обучения, сравнить результаты их работы, определить наилучшую модель и соответствующий набор признаков для прогнозирования банкротства компаний.
29
- """
30
- )
31
-
32
- st.write("""# Этапы разработки""")
33
-
34
- #image = Image.open("./stages.jpg")
35
- #st.image(image, output_format="auto", use_column_width="auto")
36
-
37
- with open("./stages.png", "rb") as f:
38
- st.image(f.read(), use_column_width=True)
39
-
40
-
41
- with st.expander("Описание пайплайна работы", expanded=True):
42
-
43
- st.write(
44
- """
45
- ### Этапы разработки
46
- <b><i>1. Поиск и сбор данных:</b></i>
47
- Был использован датасет из Тайваньского экономического журнала за период с 1999 по 2009 год. Банкротство компании было определено на основании правил ведения бизнеса Тайваньской фондовой биржи. (<a href="https://www.kaggle.com/datasets/fedesoriano/company-bankruptcy-prediction">Ссылка на данные</a>)
48
-
49
- <b><i>2. Обработка (препроцессинг):</b></i>
50
- Удаление ненужных колонок, one hot encoding категориальных переменных, заполнение пропущенных значений. С использованием библиотек pandas, numpy, seaborn.
51
-
52
- <b><i>3. Анализ статистических показателей и визуализация:</b></i>
53
- Инструменты для этого - с использованием библиотек pandas, seaborn.
54
-
55
- <b><i>4. Выбор моделей, обучение и валидация модели с ними (без фичей):</b></i>
56
- С использованием библиотек scikit-learn, pandas, seaborn.
57
-
58
- <b><i>5. Выбор моделей, обучение и валидация модели с ними (с фичами):</b></i>
59
- С использованием библиотек scikit-learn, pandas, seaborn.
60
- <
61
- b><i>6. Сравнение результатов:</b></i>
62
- Анализ и графическое представление работы алгоритмов. При некорректной работе или плохим результатом проводится п. 4 и п. 5.
63
-
64
- <b><i>7. Оформление микросервиса Streamlit:</b></i>
65
- С использованием библиотеки streamlit.
66
- """,
67
- unsafe_allow_html=True
68
- )
69
-
70
- with st.expander("Описание пайплайна работы", expanded=True):
71
-
72
- st.write(
73
- """
74
- ### Информация о применении методов машинного обучения для бизнес-задач:
75
- Прогнозирование финансовой неустойчивости – важный компон��нт управления компанией. Из-за банкротства акционеры теряют доходы, бизнес, нарушаются цепочки поставок, фискальные органы лишаются налоговых поступлений, госорганы фиксируют снижение экономического роста и повышение социальной напряженности, а работники вынуждены искать новую работу. Поэтому получение ясной картины финансового и имущественного состояния компаний уже много лет является целью специалистов самых разных областей знаний.
76
- Компании активно внедряют современные технологии в основную деятельность, автоматизируя большое количество бизнес-процессов. Это позволяет выстраивать, например, электронную экспертизу, c помощью которой возможно оперативно объединять множество экспертов из разных предметных областей для полного охвата рассматриваемой проблемы и принятия коллективного решения. Электронная экспертиза также подразумевает взаимодействие людей с интеллектуальными системами, которые способны строить анализ и прогнозы на основе более широкого пространства переменных. Так, в частности, методы машинного обучения применяются уже в значительном количестве бизнес-задач, в том числе для интеллектуальной аналитики больших данных, которые компания аккумулирует для построения моделей прогнозирования.
77
- Однако риски банкротства могут также возникнуть из-за некорректного стратегического менеджмента. Такой менеджмент подразумевает разработку долгосрочных целей и действий, которые позволят достичь более высоких результатов в будущем, например, стать лидирующей компанией в своей отрасли. Разрабатываемые при этом стратегии обычно носят амбициозный характер, поэтому цели компании в таком случае не направлены на пролонгацию сложившейся динамики. Правильный анализ стратегической ситуации также важен для прогнозирования банкротства. Существует множество методов для ее оценки, в том числе и на основе анализа больших данных.<a href="http://infosoc.iis.ru/article/view/509"> Источник<a>
78
- """,
79
- unsafe_allow_html=True
80
- )
81
-
82
- # INFO
83
- # =====================================
84
-
85
- st.write(
86
- """
87
- # 1. Информация о датасете
88
- <b><i>Похожие наборы данных:</i></b>
89
- - <a href="https://www.kaggle.com/datasets/fedesoriano/the-boston-houseprice-data">The Boston House-Price Data</a>
90
- - <a href="https://www.kaggle.com/datasets/fedesoriano/gender-pay-gap-dataset">Gender Pay Gap Dataset</a>
91
- - <a href="https://www.kaggle.com/datasets/fedesoriano/california-housing-prices-data-extra-features">Spanish Wine Quality Dataset</a>
92
-
93
- <b><i>Про сами данные:</i></b>
94
- Данные были получены из Тайваньского экономического журнала за период с 1999 по 2009 год. Банкротство компании было определено на основании правил ведения бизнеса Тайваньской фондовой биржи.
95
-
96
- <i>P.S. Обновлены имена столбцов и описание, чтобы упростить понимание данных (Y = выходной объект, X = входной объект).</i>
97
- """,
98
- unsafe_allow_html=True
99
- )
100
-
101
- st.write(
102
- """
103
- <b><i>Источник:</i></b>
104
- Deron Liang and Chih-Fong Tsai, deronliang '@' gmail.com; cftsai '@' mgt.ncu.edu.tw, National Central University, Taiwan.
105
- <a href="https://archive.ics.uci.edu/ml/datasets/Taiwanese+Bankruptcy+Prediction">The data was obtained from UCI Machine Learning Repository.</a>
106
-
107
- <b><i>Статья:</i></b>
108
- <a href="https://www.sciencedirect.com/science/article/abs/pii/S0377221716000412">Тык</a>
109
- """,
110
- unsafe_allow_html=True
111
- )
112
-
113
- data = pd.read_csv("./dataset.csv", sep=",")
114
-
115
- st.write(""" ### Таблица с данными: """, data)
116
-
117
- st.write(
118
- """
119
- # 2. Обработка (препроцессинг)
120
- """
121
- )
122
-
123
- # PREPROCESS
124
- # ==================================
125
-
126
- st.write(""" ### Статистика:""")
127
- st.code(
128
- """
129
- data.describe()
130
- """
131
- )
132
- st.text(data.describe())
133
- st.code(
134
- """
135
- data.shape
136
- """
137
- )
138
- st.write(""" #### Shape данных (номер строк и столбцов):""")
139
- st.text(data.shape)
140
-
141
- #st.table(data) - лучше не запускать :)
142
-
143
- data.columns = [i.title().strip() for i in list(data.columns)]
144
- row = data.shape[0]
145
- col = data.shape[1]
146
-
147
- null_values = data.isnull().sum().sort_values(ascending=False).head()
148
- st.code(
149
- """
150
- null_values = data.isnull().sum().sort_values(ascending=False).head()
151
- """
152
- )
153
- st.write(null_values)
154
-
155
- st.code(
156
- """
157
- data.info()
158
- """
159
- )
160
- st.text(data.info)
161
- st.write("""Поскольку пропущенных значений нет, мы можем перейти к анализу данных.""")
162
-
163
- # VISUALIZATIONS
164
- # ==================================
165
-
166
- # values = st.sidebar.slider("Target", int(data["Bankrupt?"]))
167
- st.write("""Тут должен быть график """)
168
-
169
- with open("./plot_1.png", "rb") as f:
170
- st.image(f.read(), use_column_width=True)
171
-
172
- st.code(
173
- """
174
- values = [0,1]
175
- values = list(data[""].count())
176
- f = px.histogram(values, x="Bankrupt?", nbins=15, title="Price distribution")
177
- f.update_xaxes(title="Price")
178
- f.update_yaxes(title="No. of listings")
179
- st.plotly_chart(f)
180
- """
181
- )
182
-
183
- st.write(
184
- """
185
- Записи кажутся сильно несбалансированными. Таким образом, необходимо рассмотреть возможность балансировки набора данных с помощью методов повышения или понижения дискретизации.
186
- """
187
- )
188
- st.write(
189
- """
190
- С помощью data.info() мы заметили, что у нас есть большинство данных «float64». Категориальные данные различаются как двоичные 1 и 0, поэтому сохраняются как «int64». Мы разделяем числовые и категориальные данные для анализа нашего набора данных.
191
- """
192
- )
193
- st.code(
194
- """
195
- numeric_features = data.dtypes[data.dtypes != 'int64'].index
196
- categorical_features = data.dtypes[data.dtypes == 'int64'].index
197
-
198
- data[categorical_features].columns.tolist()
199
- """,
200
- language="python"
201
- )