vanus commited on
Commit
a58835f
·
verified ·
1 Parent(s): 1c54f55

Upload 40 files

Browse files
Files changed (41) hide show
  1. .gitattributes +15 -0
  2. .streamlit/config.toml +3 -0
  3. app.py +120 -0
  4. data/исходные данные от оператора/022C4097/log(336804182)[26-03-2024_16-06-01] 01.06-01.07.csv +0 -0
  5. data/исходные данные от оператора/022C4097/log(336804182)[26-03-2024_16-08-32] 01.07-01.08.csv +0 -0
  6. data/исходные данные от оператора/023T0569/log(336804727)[26-03-2024_16-11-37] 01.07-01.08.csv +0 -0
  7. data/исходные данные от оператора/023T0569/log(336804727)[26-03-2024_16-17-03] 01.06-01.07.csv +3 -0
  8. data/исходные данные от оператора/023Т0049/log(336804656)[27-03-2024_07-44-01] 01.06-01.07.csv +0 -0
  9. data/исходные данные от оператора/023Т0049/log(336804656)[27-03-2024_07-46-35] 01.07-01.08.csv +0 -0
  10. data/исходные данные от оператора/023Т0255/log(336805040)[26-03-2024_13-19-11] 01.08-01.09.csv +0 -0
  11. data/исходные данные от оператора/023Т0255/log(336805040)[26-03-2024_13-21-02] 01.09-01.10.csv +0 -0
  12. data/исходные данные от оператора/023Т0719/log(336807105)[26-03-2024_16-19-05] 01.06-01.07.csv +0 -0
  13. data/исходные данные от оператора/023Т0719/log(336807105)[26-03-2024_16-21-40] 01.07-01.08.csv +0 -0
  14. data/исходные данные от оператора/C1969/log(336802313)[26-03-2024_15-59-36] 01.06-01.07.csv +3 -0
  15. data/исходные данные от оператора/C1969/log(336802720)[26-03-2024_15-51-13] 01.05-01.06.csv +0 -0
  16. data/исходные данные от оператора/Р3106/log(336044815)[26-03-2024_13-06-23] 01.08-01.09.csv +3 -0
  17. data/исходные данные от оператора/Р3106/log(336044815)[26-03-2024_13-15-23] 01.07-01.08.csv +0 -0
  18. data/исходные данные от оператора/С0790/log(336801558)[26-03-2024_13-30-07] 01.07-01.08.csv +3 -0
  19. data/исходные данные от оператора/С0790/log(336801558)[26-03-2024_14-09-43] 01.06-01.07.csv +0 -0
  20. data/исходные данные от оператора/С0873/log(336802058)[25-03-2024_16-30-37] 01.10-01.11.csv +0 -0
  21. data/исходные данные от оператора/С0873/log(336802058)[25-03-2024_16-31-03] 01.09-01-10.csv +0 -0
  22. data/исходные данные от оператора/С1067/log(336802167)[25-03-2024_17-01-54] 01.07-01.08.csv +3 -0
  23. data/исходные данные от оператора/С1067/log(336802167)[26-03-2024_09-22-07] 01.06-06.06.csv +3 -0
  24. data/исходные данные от оператора/С1067/log(336802167)[26-03-2024_09-29-02] 06.06-18.06.csv +3 -0
  25. data/исходные данные от оператора/С1067/log(336802167)[26-03-2024_10-29-13] 18.06-30.06.csv +3 -0
  26. data/исходные данные от оператора/С1178/log(336801334)[25-03-2024_16-39-11] 01.08-01.09.csv +0 -0
  27. data/исходные данные от оператора/С1178/log(336801334)[25-03-2024_16-41-08] 01.09-01.10.csv +3 -0
  28. data/исходные данные от оператора/С2177/log(336802953)[26-03-2024_16-33-14] 01.05-01.06.csv +3 -0
  29. data/исходные данные от оператора/С2177/log(336802953)[26-03-2024_16-47-56] 01.06-01.07.csv +3 -0
  30. data/исходные данные от оператора/С2586/log(336801531)[26-03-2024_10-59-04] 01.07-01.08.csv +3 -0
  31. data/исходные данные от оператора/С2586/log(336801531)[26-03-2024_11-45-54] 01.08-01.09.csv +3 -0
  32. data/исходные данные от оператора/С2627 7226ом61/log(336802983)[26-03-2024_16-24-22] 01.07-01.08.csv +0 -0
  33. data/исходные данные от оператора/С2627 7226ом61/log(336802983)[26-03-2024_16-26-50] 01.06-01.07.csv +0 -0
  34. data/исходные данные от оператора/С2627 7226ом61/log(336802983)[26-03-2024_16-29-06] 01.05-01.06.csv +3 -0
  35. forecasting/README.md +6 -0
  36. forecasting/__pycache__/prediction_script.cpython-310.pyc +0 -0
  37. forecasting/colab_model_train.ipynb +0 -0
  38. forecasting/model.cbm +3 -0
  39. forecasting/predict.csv +0 -0
  40. forecasting/prediction_script.py +71 -0
  41. reqiurments.txt +5 -0
.gitattributes CHANGED
@@ -33,3 +33,18 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/023T0569/log(336804727)\[26-03-2024_16-17-03\][[:space:]]01.06-01.07.csv filter=lfs diff=lfs merge=lfs -text
37
+ data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/Р3106/log(336044815)\[26-03-2024_13-06-23\][[:space:]]01.08-01.09.csv filter=lfs diff=lfs merge=lfs -text
38
+ data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С0790/log(336801558)\[26-03-2024_13-30-07\][[:space:]]01.07-01.08.csv filter=lfs diff=lfs merge=lfs -text
39
+ data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С1067/log(336802167)\[25-03-2024_17-01-54\][[:space:]]01.07-01.08.csv filter=lfs diff=lfs merge=lfs -text
40
+ data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С1067/log(336802167)\[26-03-2024_09-22-07\][[:space:]]01.06-06.06.csv filter=lfs diff=lfs merge=lfs -text
41
+ data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С1067/log(336802167)\[26-03-2024_09-29-02\][[:space:]]06.06-18.06.csv filter=lfs diff=lfs merge=lfs -text
42
+ data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С1067/log(336802167)\[26-03-2024_10-29-13\][[:space:]]18.06-30.06.csv filter=lfs diff=lfs merge=lfs -text
43
+ data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С1178/log(336801334)\[25-03-2024_16-41-08\][[:space:]]01.09-01.10.csv filter=lfs diff=lfs merge=lfs -text
44
+ data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С2177/log(336802953)\[26-03-2024_16-33-14\][[:space:]]01.05-01.06.csv filter=lfs diff=lfs merge=lfs -text
45
+ data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С2177/log(336802953)\[26-03-2024_16-47-56\][[:space:]]01.06-01.07.csv filter=lfs diff=lfs merge=lfs -text
46
+ data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С2586/log(336801531)\[26-03-2024_10-59-04\][[:space:]]01.07-01.08.csv filter=lfs diff=lfs merge=lfs -text
47
+ data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С2586/log(336801531)\[26-03-2024_11-45-54\][[:space:]]01.08-01.09.csv filter=lfs diff=lfs merge=lfs -text
48
+ data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/С2627[[:space:]]7226ом61/log(336802983)\[26-03-2024_16-29-06\][[:space:]]01.05-01.06.csv filter=lfs diff=lfs merge=lfs -text
49
+ data/исходные[[:space:]]данные[[:space:]]от[[:space:]]оператора/C1969/log(336802313)\[26-03-2024_15-59-36\][[:space:]]01.06-01.07.csv filter=lfs diff=lfs merge=lfs -text
50
+ forecasting/model.cbm filter=lfs diff=lfs merge=lfs -text
.streamlit/config.toml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ [server]
2
+ runOnSave = false
3
+ maxUploadSize = 1000
app.py ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import datetime
2
+ from io import StringIO
3
+ from pathlib import Path
4
+
5
+ import pandas as pd
6
+ import streamlit as st
7
+
8
+ from forecasting import prediction_script
9
+
10
+ MOST_IMPORTANT_CONSTANT = 300
11
+
12
+
13
+ def predict_line_chart(dataframe: pd.DataFrame) -> None:
14
+ datetime_column = [_x for i, _x in enumerate(dataframe['datetime'].to_list())]
15
+ predict_column = [_y for i, _y in enumerate(dataframe['predict'].to_list())]
16
+
17
+ if len(datetime_column) > MOST_IMPORTANT_CONSTANT:
18
+ datetime_column = [datetime_column[index] for index in
19
+ range(0, len(datetime_column), len(datetime_column) // MOST_IMPORTANT_CONSTANT)]
20
+ predict_column = [predict_column[index] for index in
21
+ range(0, len(predict_column), len(predict_column) // MOST_IMPORTANT_CONSTANT)]
22
+
23
+ st.line_chart(
24
+ {
25
+ 'datetime': datetime_column,
26
+ 'predict': predict_column,
27
+ }, y='predict'
28
+ )
29
+
30
+ st.set_page_config(page_title="Streamlit Wide Mode", layout="wide")
31
+ tractor_data_upload__tab, origin_tractor_data__tab = st.tabs(
32
+ ["Загрузить данные трактора", "Валидация исходных данных тракторов от оператора", ])
33
+
34
+ with origin_tractor_data__tab:
35
+ directory_path = Path().joinpath(*['data', 'исходные данные от оператора'])
36
+
37
+ files_dict = {file_path.parent.name: file_path.name for file_path in directory_path.rglob("*") if
38
+ file_path.is_file()}
39
+
40
+ st.header("Система умной телеметрии трактора")
41
+
42
+ st.text('Для начала работы выберите трактор')
43
+
44
+ SELECT_TRACTOR_IDENTIFIER_SUGGEST = 'Выберите идентификатор'
45
+ SELECT_TRACTOR_DETAIL_SUGGEST = "Выберите деталь"
46
+
47
+ selected_tractor_id = st.selectbox("Выберите идентификатор трактора",
48
+ [SELECT_TRACTOR_IDENTIFIER_SUGGEST]
49
+ + [f'{tractor_id}' for tractor_id in files_dict.keys()])
50
+ if selected_tractor_id != SELECT_TRACTOR_IDENTIFIER_SUGGEST:
51
+ if selected_tractor_id in files_dict:
52
+ st.success(f"Выбранный трактор: {selected_tractor_id}")
53
+
54
+ files = directory_path.joinpath(selected_tractor_id).rglob("*")
55
+ dataframes = [pd.read_csv(file, delimiter=';') for file in files]
56
+ dataframe = pd.concat(dataframes)
57
+ dataframe = prediction_script.predict(dataframe)
58
+ predict_line_chart(dataframe)
59
+
60
+ predict_column = [_y for i, _y in enumerate(dataframe['predict'].to_list())]
61
+
62
+ if sum(predict_column) / len(predict_column) > 1.5:
63
+ st.error('Трактор сейчас определённо имеет проблемы')
64
+
65
+ detail_id = st.selectbox("Выберите деталь для замены", [
66
+ SELECT_TRACTOR_DETAIL_SUGGEST,
67
+ "ДВС",
68
+ "КПП",
69
+ "Гидравлика",
70
+ "Питание двигателя",
71
+ "Электросистема",
72
+ "Стояночный тормоз",
73
+ "Охлаждение",
74
+ "Термостат",
75
+ ])
76
+
77
+ if detail_id != SELECT_TRACTOR_DETAIL_SUGGEST:
78
+ if detail_id:
79
+ st.success(f"{detail_id} заказана.\n"
80
+ f"Ждите")
81
+ else:
82
+ st.success(f"Выбранный трактор сейчас в нормальном состоянии")
83
+
84
+ else:
85
+ st.error("Идентификатор не найдет. ")
86
+ with tractor_data_upload__tab:
87
+ uploaded_file = st.file_uploader("Choose a file", )
88
+ if uploaded_file is not None:
89
+ bytes_data = uploaded_file.getvalue()
90
+
91
+ stringio = StringIO(uploaded_file.getvalue().decode("utf-8"))
92
+ dataframe = pd.read_csv(uploaded_file, delimiter=';')
93
+
94
+ dataframe = prediction_script.predict(dataframe)
95
+
96
+ predict_line_chart(dataframe)
97
+
98
+ predict_column = [_y for i, _y in enumerate(dataframe['predict'].to_list())]
99
+
100
+ if sum(predict_column) / len(predict_column) > 1.5:
101
+ st.error('Трактор сейчас определённо имеет проблемы')
102
+
103
+ detail_id = st.selectbox("Выберите деталь для замены", [
104
+ SELECT_TRACTOR_DETAIL_SUGGEST,
105
+ "ДВС",
106
+ "КПП",
107
+ "Гидравлика",
108
+ "Питание двигателя",
109
+ "Электросистема",
110
+ "Стояночный тормоз",
111
+ "Охлаждение",
112
+ "Термостат",
113
+ ])
114
+
115
+ if detail_id != SELECT_TRACTOR_DETAIL_SUGGEST:
116
+ if detail_id:
117
+ st.success(f"{detail_id} заказана.\n"
118
+ f"Ждите")
119
+ else:
120
+ st.success(f"Выбранный трактор сейчас в нормальном состоянии")
data/исходные данные от оператора/022C4097/log(336804182)[26-03-2024_16-06-01] 01.06-01.07.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/022C4097/log(336804182)[26-03-2024_16-08-32] 01.07-01.08.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/023T0569/log(336804727)[26-03-2024_16-11-37] 01.07-01.08.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/023T0569/log(336804727)[26-03-2024_16-17-03] 01.06-01.07.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a15f589e57587d952603ebac39d911644e98c3d036c57c148f068ce9d7aee5f0
3
+ size 10486177
data/исходные данные от оператора/023Т0049/log(336804656)[27-03-2024_07-44-01] 01.06-01.07.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/023Т0049/log(336804656)[27-03-2024_07-46-35] 01.07-01.08.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/023Т0255/log(336805040)[26-03-2024_13-19-11] 01.08-01.09.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/023Т0255/log(336805040)[26-03-2024_13-21-02] 01.09-01.10.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/023Т0719/log(336807105)[26-03-2024_16-19-05] 01.06-01.07.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/023Т0719/log(336807105)[26-03-2024_16-21-40] 01.07-01.08.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/C1969/log(336802313)[26-03-2024_15-59-36] 01.06-01.07.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1eb1810fcc53cebba01b7d73918a0be2e8b042ae29f1fdb0428ba263ce08be87
3
+ size 31401385
data/исходные данные от оператора/C1969/log(336802720)[26-03-2024_15-51-13] 01.05-01.06.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/Р3106/log(336044815)[26-03-2024_13-06-23] 01.08-01.09.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c92ca39be6165457ffb198286c6100ab3bd91b5cf88ece7a5211d50831ae27c4
3
+ size 15450403
data/исходные данные от оператора/Р3106/log(336044815)[26-03-2024_13-15-23] 01.07-01.08.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/С0790/log(336801558)[26-03-2024_13-30-07] 01.07-01.08.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f2671c530e89ac7962bcbe6ff2d402fa6043fe1b4ead55926bdff65eb4956082
3
+ size 49849217
data/исходные данные от оператора/С0790/log(336801558)[26-03-2024_14-09-43] 01.06-01.07.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/С0873/log(336802058)[25-03-2024_16-30-37] 01.10-01.11.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/С0873/log(336802058)[25-03-2024_16-31-03] 01.09-01-10.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/С1067/log(336802167)[25-03-2024_17-01-54] 01.07-01.08.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:229d3d52af9cd9b97b10603173b7f77ad2424f59ac40a3504ae096cf3819e9ac
3
+ size 48275328
data/исходные данные от оператора/С1067/log(336802167)[26-03-2024_09-22-07] 01.06-06.06.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:42a14d6540abaf9032d6bb8a66c9d7b3806cf2840181907e0ffd928075b9a817
3
+ size 14988548
data/исходные данные от оператора/С1067/log(336802167)[26-03-2024_09-29-02] 06.06-18.06.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:981e48a0f93f88a475dc68ffa29820384af547afce8ff0eb74efffa9ee22996c
3
+ size 50824644
data/исходные данные от оператора/С1067/log(336802167)[26-03-2024_10-29-13] 18.06-30.06.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ad3f945987dc403ced3fa032db9bddf741e3de261f52865deff0ac110ff022a6
3
+ size 54165574
data/исходные данные от оператора/С1178/log(336801334)[25-03-2024_16-39-11] 01.08-01.09.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/С1178/log(336801334)[25-03-2024_16-41-08] 01.09-01.10.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c7e8fb62b2fd278a99d8021dd3e1741b87e410bd062975fa53d985accb576f58
3
+ size 24615603
data/исходные данные от оператора/С2177/log(336802953)[26-03-2024_16-33-14] 01.05-01.06.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fd4f4ff2312acb16a4bff3ea8889d442cf3a4c8aed0a66c903a1b07e55e0977c
3
+ size 24505901
data/исходные данные от оператора/С2177/log(336802953)[26-03-2024_16-47-56] 01.06-01.07.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8a7a67dbe2ba875b8dfbf21804c4152bb51cf50383c825ac8bc2cef80755e354
3
+ size 22347280
data/исходные данные от оператора/С2586/log(336801531)[26-03-2024_10-59-04] 01.07-01.08.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1d99b37818479900f00335c29237cb76477daff82091d5e980a6e054edb21001
3
+ size 51963905
data/исходные данные от оператора/С2586/log(336801531)[26-03-2024_11-45-54] 01.08-01.09.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e76f94bfb84e1355bf80f6081d40ca60631134ede0acaa1dc4e5ef415f30ab08
3
+ size 91456950
data/исходные данные от оператора/С2627 7226ом61/log(336802983)[26-03-2024_16-24-22] 01.07-01.08.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/С2627 7226ом61/log(336802983)[26-03-2024_16-26-50] 01.06-01.07.csv ADDED
The diff for this file is too large to render. See raw diff
 
data/исходные данные от оператора/С2627 7226ом61/log(336802983)[26-03-2024_16-29-06] 01.05-01.06.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3930e47b6283b102e2992f657f71a83cbdc75e3a5992a0cacac9820dc5ed0afd
3
+ size 13333833
forecasting/README.md ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ Данная папка должна содержать:
2
+
3
+ - код обучения модели прогнозирования;
4
+ - сохраненный файл с весами обученной модели прогнозирования;
5
+ - описание проделанной работы, обоснование выбора модели, анализ производительности и качества предложенного решения, логика работы модели и другие комментарии от разработчиков;
6
+ - `.ipynb`-ноутбук, демонстрирующий запуск модели на тестовых данных с кодом выгрузки предсказаний для проверяющей системы. Если данные были изменены перед тем, как обучать модель, приложите файл обработанных данных или проведите изменения непосредственно в ноутбуке. У жюри должна быть возможность склонировать ваш репозиторий и без дополнительных усилий запустить предсказания, получив в результате работы ноутбука файл с ответами для проверки в проверяющей системе.
forecasting/__pycache__/prediction_script.cpython-310.pyc ADDED
Binary file (3.85 kB). View file
 
forecasting/colab_model_train.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
forecasting/model.cbm ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8079d39ec7b196aad7fbb5f6bf0314683e16143f0775446da8486557803722d5
3
+ size 104737304
forecasting/predict.csv ADDED
The diff for this file is too large to render. See raw diff
 
forecasting/prediction_script.py ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+ import numpy as np
3
+ from catboost import CatBoostClassifier
4
+ from pathlib import Path
5
+
6
+
7
+ # PATH = 'data\исходные данные от оператора\С0873\log(336802058)[25-03-2024_16-31-03] 01.09-01-10.csv'
8
+ def predict(dataframe):
9
+ dataframe = dataframe.replace(r'^\s*-', np.nan, regex=True)
10
+
11
+ dataframe.reset_index(drop=True, inplace=True)
12
+
13
+ dataframe.drop_duplicates(inplace=True)
14
+
15
+ data_time = dataframe['Дата и время']
16
+
17
+ dataframe.drop(columns=['Дата и время', 'iButton2', 'Нагрузка на двигатель, %', 'Крутящий момент (spn513), Нм',
18
+ 'Положение рейки ТНВД (spn51), %', 'Расход топлива (spn183), л/ч',
19
+ 'ДВС. Температура наддувочного воздуха, °С',
20
+ 'Давление наддувочного воздуха двигателя (spn106), кПа', 'Текущая передача (spn523)',
21
+ 'Температура масла гидравлики (spn5536), С', 'Педаль слива (spn598)'], inplace=True)
22
+
23
+ dataframe.drop(['Нейтраль КПП (spn3843)', 'Стояночный тормоз (spn3842)',
24
+ 'Аварийная температура охлаждающей жидкости (spn3841)', 'Засоренность воздушного фильтра (spn3840)',
25
+ 'Засоренность фильтра КПП (spn3847)', 'Аварийное давление масла ДВС (spn3846)',
26
+ 'Засоренность фильтра ДВС (spn3845)',
27
+ 'Засоренность фильтра рулевого управления (spn3844)',
28
+ 'Засоренность фильтра навесного оборудования (spn3851)',
29
+ 'Недопустимый уровень масла в гидробаке (spn3850)',
30
+ 'Аварийная температура масла в гидросистеме (spn3849)',
31
+ 'Аварийное давление в I контуре тормозной системы (spn3848)',
32
+ 'Аварийное давление в II контуре тормозной системы (spn3855)',
33
+ 'Зарядка АКБ (spn3854)', 'Отопитель (spn3853)',
34
+ 'Выход блока управления двигателем (spn3852)',
35
+ 'Включение тормозков (spn3859)', 'Засоренность фильтра слива (spn3858)',
36
+ 'Аварийное давление масла КПП (spn3857)',
37
+ 'Аварийная температура масла ДВС(spn3856)',
38
+ 'Неисправность тормозной системы (spn3863)', 'Термостарт (spn3862)',
39
+ 'Разрешение запуска двигателя (spn3861)', 'Низкий уровень ОЖ (spn3860)',
40
+ 'Аварийная температура масла ГТР (spn3867)',
41
+ 'Необходимость сервисного обслуживания (spn3866)',
42
+ 'Подогрев топливного фильтра (spn3865)', 'Вода в топливе (spn3864)',
43
+ 'Холодный старт (spn3871)'], axis=1, inplace=True)
44
+
45
+ dataframe = dataframe.astype(str)
46
+
47
+ dataframe["Сост.пед.сцепл."] = dataframe["Сост.пед.сцепл."].astype(bool)
48
+
49
+ dataframe['Обор.двиг.,об/мин'] = dataframe['Обор.двиг.,об/мин'].str.replace(',', '.').astype(float)
50
+
51
+ dataframe['Значение счетчика моточасов, час:мин'] = dataframe['Значение счетчика моточасов, час:мин'].str.replace(
52
+ ':', '').astype(float)
53
+
54
+ dataframe['Сост.пед.сцепл.'] = dataframe['Сост.пед.сцепл.'].replace(',', '.').astype(float)
55
+ dataframe['Сост.пед.сцепл.'] = dataframe['Сост.пед.сцепл.'].astype(str)
56
+
57
+ dataframe['Полож.пед.акселер.,%'] = dataframe['Полож.пед.акселер.,%'].str.replace(',', '.').astype(float)
58
+
59
+ dataframe['Темп.масла двиг.,°С'] = dataframe['Темп.масла двиг.,°С'].str.replace(',', '.').astype(float)
60
+
61
+ dataframe['КПП. Температура масла'] = dataframe['КПП. Температура масла'].astype(float)
62
+
63
+ model = CatBoostClassifier()
64
+
65
+ model.load_model(Path().joinpath(*['forecasting', 'model.cbm']))
66
+
67
+ dataframe['predict'] = model.predict(dataframe)
68
+
69
+ dataframe['datetime'] = data_time
70
+
71
+ return dataframe
reqiurments.txt ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ streamlit
2
+ pandas
3
+ numpy
4
+
5
+ catboost