Gforce-ML commited on
Commit
32d42d6
·
1 Parent(s): 4ac6147

change app

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