Креирајте интерактивне веб апликације за науку о подацима и пројекте машинског учења користећи само Питхон, све захваљујући Стреамлит-у!

Стреамлит је Питхон библиотека отвореног кода за креирање веб апликација за науку о подацима и пројекте машинског учења. Дизајниран је да га користе научници података и инжењери машинског учења који немају опсежне вештине фронт-енд развоја. Има једноставну синтаксу која вам омогућава да креирате интерактивне веб апликације са неколико линија кода.

Инкапсулацијом сложених техничких детаља иза корисничког интерфејса, Стреамлит омогућава корисницима да се фокусирају на истраживање и представљање својих података, прототипова или модела у реалном времену. То га чини вредним алатом за брзо дељење увида.

Инсталирање Стреамлит библиотеке

Креирајте ново виртуелно окружење. Ово ће осигурати да нема сукоба верзије пакета након инсталирања Стреамлит. Онда користите пип за инсталацију Стреамлит покретањем следеће команде:

pip install streamlit

Затим проверите да ли је инсталација исправно инсталирана.

instagram viewer
streamlit --version

Ако је инсталација успешна, приказаће се инсталирана Стреамлит верзија.

Прављење једноставне апликације за чишћење и анализу података

Направићете једноставну веб апликацију да научите како Стреамлит функционише и његове карактеристике. Ова апликација ће моћи да очисти отпремљени скуп података, изврши анализу података и коначно визуализује податке.

Комплетан изворни код је доступан у а ГитХуб спремиште.

Инсталирање и увоз потребних библиотека

Почните тако што ћете инсталирати Пандас, Матплотлиб и Сеаборн у истом виртуелном окружењу у којем сте инсталирали Стреамлит користећи следећу команду:

pip install pandas matplotlib seaborn

Затим креирајте нову Питхон скрипту и увезите све инсталиране библиотеке.

import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

Ово ће вам омогућити да користите њихове функције у свом коду.

Отпремање скупа података и приказивање његовог садржаја

Затим дефинишите функцију која ће читати учитани скуп података. Затим ће вратити ДатаФраме ако је операција читања успешна. Ако није, приказаће поруку о грешци на бочној траци. Грешка се јавља када датотека није важећа ЦСВ датотека.

defload_data(uploaded_file):
try:
df = pd.read_csv(uploaded_file)
return df
except Exception as e:
st.sidebar.error('Error occurred while loading the file.'
' Please make sure it is a valid CSV file.')
returnNone

Дефинишите другу функцију која ће користити Стеамлит да прикаже ДатаФраме у табеларном формату. То ће учинити само када корисник провери Прикажи необрађене податке поље за потврду. Користиће Стреамлит поље за потврду, оквир података, и подзаглавље функције.

defexplore_raw_data(df):
st.subheader('Raw Data')
if st.checkbox('Show Raw Data'):
st.dataframe(df)

Након што сте креирали ДатаФраме и приказали необрађене податке, сада морате да очистите податке, анализирате их и на крају визуализујете.

Извођење чишћења података

Почните тако што ћете дефинисати функцију која ће извршити чишћење података. Ова функција ће руковати недостајућим вредностима у ДатаФраме-у и дуплираним редовима. Очишћени оквир података се затим приказује кориснику помоћу ст.датафраме функционишу ако провере Прикажи очишћене податке поље за потврду.

defdata_cleaning(df):
st.header('Data Cleaning')

# Remove Missing Values
st.subheader('Handling Missing Values')
df.dropna(inplace=True)
st.write("Missing values removed from the dataset.")

# Remove Duplicate Rows
st.subheader('Removing Duplicate Rows')
initial_rows = len(df)
df.drop_duplicates(inplace=True)
final_rows = len(df)
st.write(f"Removed {initial_rows - final_rows} duplicate rows.")

if st.checkbox('Show Cleaned Data'):
st.dataframe(df)

Функција такође приказује број уклоњених дупликата редова.

Извођење анализе података

Дефинишите функцију анализе података. Ова функција ће приказати дескриптивну статистику ДатаФраме-а и приказати топлотну мапу корелационе матрице. Користиће се ст.пиплот функција за приказ топлотне карте на корисничком интерфејсу.

defdata_analysis(df):
st.header('Data Analysis')

# Descriptive Statistics
st.subheader('Descriptive Statistics')
st.write(df.describe())

# Correlation Matrix
st.subheader('Correlation Matrix')
corr_matrix = df.corr()
fig, ax = plt.subplots(figsize=(10, 8))
sns.heatmap(corr_matrix, annot=True, cmap='coolwarm',
center=0, ax=ax)
st.pyplot(fig)

Можете да измените горњу функцију да бисте извршили више анализе података. Ово ће вам помоћи да извучете више увида из ваших података.

Извођење визуелизације података

Визуелизација података је једна од кључних функционалности апликације. То је зато што даје увид у податке визуелно на начин прилагођен људима. Ова функционалност би стога требало да омогући корисницима да промене изглед парцела.

Да бисте то постигли, креирајте функцију која ће омогућити корисницима да изаберу колону, подесе број канти и изаберу боју за хистограм. Затим ће генерисати хистограм и дијаграм оквира и приказати их користећи ст.пиплот функција.

defdata_visualization(df):
st.header('Data Visualization')

# Histogram
st.subheader('Histogram')
selected_column = st.selectbox("Select a column to visualize:",
df.columns)
num_bins = st.slider("Select number of bins:",
min_value=5, max_value=50, value=20)
plot_color = st.color_picker("Select histogram color", "#1f77b4")
plt.figure(figsize=(8, 6))
plt.hist(df[selected_column], bins=num_bins, edgecolor='black',
color=plot_color, alpha=0.7)
plt.xlabel(selected_column)
plt.ylabel('Frequency')
st.pyplot(plt)

# Box Plot
st.subheader('Box Plot')
selected_column = st.selectbox("Select a column for box plot:",
df.columns)
plot_color = st.color_picker("Select box plot color", "#1f77b4")
plt.figure(figsize=(8, 6))
sns.boxplot(x=df[selected_column], color=plot_color)
plt.xlabel(selected_column)
plt.ylabel('Value')
st.pyplot(plt)

До сада имате све основне функције апликације.

Прикупљање повратних информација корисника

Понекад функција можда неће радити како се очекује. Тада вам је потребан начин да корисници пошаљу своје повратне информације. Један од начина је да вас корисници контактирају путем е-поште. Стреамлит обезбеђује интерфејс за прикупљање повратних информација корисника, али не пружа уграђену функционалност за директно слање е-поште. Међутим, можете да интегришете екстерне библиотеке или услуге за слање е-поште из ваше апликације.

Да бисте прикупили повратне информације корисника, дефинишите функцију која ће кориснику представити образац.

deffeedback_form():
st.header('Feedback')
with st.form('Feedback Form'):
email = st.text_input("Your Email")
feedback = st.text_area("Feedback")
submitted = st.form_submit_button("Submit Feedback")
if submitted:
# Here, you can send the feedback to the developer's
# email using external services/APIs
st.success("Thank you for your feedback!")

Овај образац ће прикупити е-пошту корисника и повратне информације и послати вам их путем е-поште.

Контролисање тока вашег програма и покретање апликације

На крају, потребна вам је главна функција која ће спојити све ове функције и контролисати ток програма. Ова функција ће такође осигурати да се корисници слажу са вашим условима приватности података пре него што апликација обради њихов отпремљени скуп података.

defmain():
st.title('Data Cleaning, Analysis, and Visualization App')

st.sidebar.header('Upload Dataset')
uploaded_file = st.sidebar.file_uploader('Upload a CSV file', type=['csv'])

agree_terms = st.sidebar.checkbox("I agree to the terms")

if uploaded_file isnotNoneand agree_terms:
df = load_data(uploaded_file)

if df isnotNone:
explore_raw_data(df)
data_cleaning(df)
data_analysis(df)
data_visualization(df)

feedback_form()

Можете покренути свој програм који се покреће независно или га увести као модул користећи иф __наме__ == '__маин__': конструкцију.

if __name__ == '__main__':
main()

Наставите до терминала и идите до путање на којој се налази ваш пројекат. Затим покрените следећу команду да бисте покренули апликацију:

streamlit run main.py

Заменити маин.пи са стварним именом вашег сценарија. Након покретања команде Стреамлит ће генерисати локални УРЛ и мрежни УРЛ. Можете да користите било коју од ових УРЛ адреса за интеракцију са апликацијом.

Излаз програма је следећи:

Прављење интерактивних веб апликација за науку о подацима никада није било лакше. Не требају вам напредне вештине веб развоја да бисте креирали кориснички интерфејс за своју апликацију.

Да ли још увек треба да научите веб развој?

Зависи од ваших специфичних циљева. Ако очекујете да градите сложене веб апликације богате функцијама које захтевају широке кориснике дизајн интерфејса и напредне функционалности, онда би учење технологија за развој веба могло бити благотворан. То је зато што у Стреамлит-у имате ограничену контролу над финим прилагођавањем изгледа и понашања ваше апликације.