-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.py
67 lines (51 loc) · 2.48 KB
/
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# źródło danych [https://www.kaggle.com/c/titanic/](https://www.kaggle.com/c/titanic)
from pathlib import Path
import pathlib
import streamlit as st
import pickle
from datetime import datetime
startTime = datetime.now()
# import znanych nam bibliotek
temp = pathlib.PosixPath
pathlib.PosixPath = pathlib.WindowsPath
filename = "model.sv"
model = pickle.load(open(filename, 'rb'))
# otwieramy wcześniej wytrenowany model
sex_d = {0: "Kobieta", 1: "Mężczyzna"}
pclass_d = {0: "Pierwsza", 1: "Druga", 2: "Trzecia"}
embarked_d = {0: "Cherbourg", 1: "Queenstown", 2: "Southampton"}
# o ile wcześniej kodowaliśmy nasze zmienne, to teraz wprowadzamy etykiety z ich nazewnictwem
def main():
st.set_page_config(page_title="Sprawdź czy przeżyłbyś katastrofę Titanica")
overview = st.container()
left, right = st.columns(2)
prediction = st.container()
st.image("https://gfx.antyradio.pl/var/antyradio/storage/images/news/titanic-ii-wyplynie-w-rejs-w-2022-roku-czy-tym-razem-podroz-zakonczy-sie-szczesliwie-26622/1837164-1-pol-PL/Titanic-II-wyplynie-w-rejs-w-2022-roku.-Czy-tym-razem-podroz-zakonczy-sie-szczesliwie_article.jpg")
with overview:
st.title("Sprawdź czy przeżyłbyś katastrofę Titanica")
with left:
sex_radio = st.radio("Płeć", list(sex_d.keys()),
format_func=lambda x: sex_d[x])
pclass_radio = st.radio("Klasa", list(
pclass_d.keys()), format_func=lambda x: pclass_d[x])
embarked_radio = st.radio("Port zaokrętowania", list(
embarked_d.keys()), index=2, format_func=lambda x: embarked_d[x])
with right:
age_slider = st.slider("Wiek", value=1, min_value=1, max_value=70)
sibsp_slider = st.slider(
"Liczba rodzeństwa i/lub partnera", min_value=0, max_value=8)
parch_slider = st.slider(
"Liczba rodziców i/lub dzieci", min_value=0, max_value=7)
fare_slider = st.slider(
"Cena biletu", min_value=0, max_value=300, step=1)
data = [[pclass_radio, sex_radio, age_slider, sibsp_slider,
parch_slider, fare_slider, embarked_radio]]
survival = model.predict(data)
s_confidence = model.predict_proba(data)
with prediction:
st.subheader("Czy taka osoba przeżyłaby katastrofę?")
st.subheader(("Tak" if survival[0] == 1 else "Nie"))
st.write("Pewność predykcji {0:.2f} %".format(
s_confidence[0][survival][0] * 100))
if __name__ == "__main__":
main()