Hozzon létre interaktív webes alkalmazásokat adattudományi és gépi tanulási projektekhez kizárólag Python használatával, mindezt a Streamlitnek köszönhetően!

A Streamlit egy nyílt forráskódú Python-könyvtár webes alkalmazások létrehozására adattudományi és gépi tanulási projektekhez. Úgy tervezték, hogy olyan adattudósok és gépi tanulási mérnökök használják, akik nem rendelkeznek kiterjedt front-end fejlesztési készségekkel. Egyszerű szintaxisa lehetővé teszi interaktív webalkalmazások létrehozását néhány soros kóddal.

Azáltal, hogy összetett műszaki részleteket foglal egy felhasználóbarát felület mögé, a Streamlit lehetővé teszi a felhasználók számára, hogy adataik, prototípusaik vagy modelljeik valós időben történő felfedezésére és bemutatására összpontosítsanak. Ez értékes eszközzé teszi a betekintések gyors megosztásához.

A Streamlit Library telepítése

Hozzon létre egy új virtuális környezetet. Ez biztosítja, hogy a telepítés után ne legyen csomagverzió-ütközés Áramlatos. Akkor a telepítéshez használja a pip-t Egyszerűsítse a következő parancs futtatásával:

instagram viewer
pip install streamlit

Ezután ellenőrizze, hogy a telepítés megfelelően van-e telepítve.

streamlit --version

Ha a telepítés sikeres, megjelenik a telepített Streamlit verzió.

Egyszerű adattisztító és elemző alkalmazás létrehozása

Létrehoz egy egyszerű webalkalmazást, hogy megismerje a Streamlit működését és funkcióit. Ez az alkalmazás képes lesz megtisztítani a feltöltött adatkészletet, adatelemzést végezni, és végül megjeleníteni az adatokat.

A teljes forráskód elérhető a GitHub adattár.

A szükséges könyvtárak telepítése és importálása

Kezdje a Pandas, a Matplotlib és a Seaborn telepítésével ugyanabba a virtuális környezetbe, ahol telepítette a Streamlitet a következő paranccsal:

pip install pandas matplotlib seaborn

Ezután hozzon létre egy új Python-szkriptet, és importálja az összes telepített könyvtárat.

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

Ez lehetővé teszi a funkcióik használatát a kódban.

Adatkészlet feltöltése és tartalmának megjelenítése

Ezután határozzon meg egy függvényt, amely beolvassa a feltöltött adatkészletet. Ezután egy DataFrame-et ad vissza, ha az olvasási művelet sikeres volt. Ha nem, akkor hibaüzenet jelenik meg az oldalsávon. A hiba akkor fordul elő, ha a fájl nem érvényes CSV-fájl.

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

Határozzon meg egy másik függvényt, amely a Steamlit segítségével megjeleníti a DataFrame-et táblázatos formátumban. Ezt csak akkor teszi meg, ha a felhasználó ellenőrzi a Nyers adatok megjelenítése jelölőnégyzetet. A Streamlit-t fogja használni jelölőnégyzetet, adatkeret, és alfejléc funkciókat.

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

A DataFrame létrehozása és a nyers adatok megjelenítése után most meg kell tisztítania, elemeznie kell az adatokat, és végül vizualizálnia kell.

Adattisztítás végrehajtása

Kezdje egy olyan funkció meghatározásával, amely elvégzi az adatok tisztítását. Ez a funkció kezeli a DataFrame hiányzó értékeit és a duplikált sorokat. A megtisztított DataFrame ezután megjelenik a felhasználó számára st.dataframe funkciót, ha ellenőrzik a Megtisztított adatok megjelenítése jelölőnégyzetet.

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)

A függvény az eltávolított ismétlődő sorok számát is mutatja.

Adatelemzés végrehajtása

Határozzon meg egy adatelemző függvényt. Ez a funkció megjeleníti a DataFrame leíró statisztikáit, és megjeleníti a korrelációs mátrix hőtérképét. Ki fogja használni a st.pyplot funkció a hőtérkép megjelenítéséhez a felhasználói felületen.

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)

A fenti funkció módosításával több adatelemzést végezhet. Ez segít abban, hogy több betekintést nyerjen adataiból.

Adatvizualizáció végrehajtása

Az adatvizualizáció az alkalmazás egyik kulcsfontosságú funkciója. Ennek az az oka, hogy vizuálisan, emberbarát módon betekintést enged az adatokba. Ennek a funkciónak ezért lehetővé kell tennie a felhasználók számára, hogy módosítsák a telkek kinézetét.

Ennek eléréséhez hozzon létre egy funkciót, amely lehetővé teszi a felhasználók számára, hogy kiválasszanak egy oszlopot, beállítsák a tálcák számát, és válasszon színt a hisztogramhoz. Ezután létrehoz egy hisztogramot és egy doboz diagramot, és megjeleníti azokat st.pyplot funkció.

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)

Mostanra az alkalmazás összes alapvető funkciójával rendelkezik.

Felhasználói visszajelzések gyűjtése

Előfordulhat, hogy egy funkció nem a várt módon működik. Ezután módra van szüksége, hogy a felhasználók visszajelzést küldhessenek. Az egyik módja az, hogy a felhasználók e-mailben érik el Önt. A Streamlit biztosítja a felhasználói visszajelzések gyűjtésére szolgáló felületet, de nem biztosít beépített funkciókat az e-mailek közvetlen küldéséhez. Azonban integrálhat külső könyvtárakat vagy szolgáltatásokat, hogy e-maileket küldjön az alkalmazásból.

A felhasználói visszajelzések összegyűjtéséhez definiáljon egy függvényt, amely űrlapot mutat be a felhasználónak.

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!")

Ez az űrlap összegyűjti a felhasználó e-mailjeit és visszajelzéseit, és e-mailben elküldi Önnek.

A program folyamatának vezérlése és az alkalmazás futtatása

Végül szükség van egy fő funkcióra, amely ezeket a funkciókat egyesíti, és szabályozza a program folyamatát. Ez a funkció azt is biztosítja, hogy a felhasználók elfogadják az adatvédelmi feltételeket, mielőtt az alkalmazás feldolgozná a feltöltött adatkészletüket.

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()

A programot futtathatja önállóan, vagy importálhatja modulként az if __name__ == '__main__': konstrukció használatával.

if __name__ == '__main__':
main()

Lépjen tovább a terminálhoz, és navigáljon arra az útvonalra, amelyen a projekt található. Ezután futtassa a következő parancsot az alkalmazás elindításához:

streamlit run main.py

Cserélje ki main.py a szkriptjének tényleges nevével. A parancs futtatása után a Streamlit létrehoz egy helyi URL-t és egy hálózati URL-t. Ezen URL-ek bármelyikét használhatja az alkalmazással való interakcióhoz.

A program kimenete a következő:

Interaktív webalkalmazások létrehozása az adattudományhoz még soha nem volt ilyen egyszerű. Nincs szükség haladó webfejlesztési ismeretekre ahhoz, hogy felhasználói felületet hozzon létre az alkalmazáshoz.

Még mindig tanulnia kell a webfejlesztést?

Ez az Ön konkrét céljaitól függ. Ha azt tervezi, hogy összetett, funkciókban gazdag webalkalmazásokat hoz létre, amelyek széles körű felhasználót igényelnek felülettervezés és fejlett funkcionalitás, akkor a webfejlesztési technológiák tanulása lehet előnyös. Ennek az az oka, hogy a Streamlitben korlátozott mértékben szabhatja meg az alkalmazás megjelenésének és viselkedésének finom testreszabását.