केवल पायथन का उपयोग करके डेटा विज्ञान और मशीन लर्निंग परियोजनाओं के लिए इंटरैक्टिव वेब एप्लिकेशन बनाएं, स्ट्रीमलिट को धन्यवाद!

स्ट्रीमलिट डेटा विज्ञान और मशीन लर्निंग परियोजनाओं के लिए वेब एप्लिकेशन बनाने के लिए एक ओपन-सोर्स पायथन लाइब्रेरी है। इसे डेटा वैज्ञानिकों और मशीन लर्निंग इंजीनियरों द्वारा उपयोग करने के लिए डिज़ाइन किया गया है जिनके पास व्यापक फ्रंट-एंड विकास कौशल नहीं है। इसमें एक सरल सिंटैक्स है जो आपको कोड की कुछ पंक्तियों के साथ इंटरैक्टिव वेब ऐप्स बनाने की अनुमति देता है।

उपयोगकर्ता के अनुकूल इंटरफ़ेस के पीछे जटिल तकनीकी विवरणों को समाहित करके, स्ट्रीमलिट उपयोगकर्ताओं को वास्तविक समय में अपने डेटा, प्रोटोटाइप या मॉडल की खोज और प्रस्तुत करने पर ध्यान केंद्रित करने की अनुमति देता है। यह इसे त्वरित जानकारी साझा करने के लिए एक मूल्यवान उपकरण बनाता है।

स्ट्रीमलिट लाइब्रेरी स्थापित करना

एक नया आभासी वातावरण बनाएं. यह सुनिश्चित करेगा कि इंस्टॉल करने के बाद कोई पैकेज संस्करण विरोध न हो स्ट्रीमलाइट. तब स्थापित करने के लिए पिप का उपयोग करें निम्न आदेश चलाकर स्ट्रीमलाइट करें:

pip install streamlit
instagram viewer

फिर, सत्यापित करें कि इंस्टॉलेशन सही ढंग से स्थापित है।

streamlit --version

यदि इंस्टॉलेशन सफल होता है, तो इंस्टॉल किया गया स्ट्रीमलिट संस्करण प्रदर्शित होगा।

एक सरल डेटा सफ़ाई और विश्लेषण ऐप बनाना

स्ट्रीमलिट कैसे काम करता है और इसकी विशेषताएं जानने के लिए आप एक सरल वेब एप्लिकेशन बनाएंगे। यह एप्लिकेशन अपलोड किए गए डेटासेट को साफ़ करने, डेटा विश्लेषण करने और अंततः डेटा को विज़ुअलाइज़ करने में सक्षम होगा।

पूर्ण स्रोत कोड a में उपलब्ध है गिटहब रिपॉजिटरी.

आवश्यक पुस्तकालयों को स्थापित करना और आयात करना

पांडा, मैटप्लोटलिब और सीबॉर्न को उसी आभासी वातावरण में स्थापित करके प्रारंभ करें, जिसमें आपने निम्नलिखित कमांड का उपयोग करके स्ट्रीमलिट स्थापित किया था:

pip install pandas matplotlib seaborn

फिर एक नई पायथन स्क्रिप्ट बनाएं और सभी स्थापित लाइब्रेरी आयात करें।

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

यह आपको अपने कोड में उनकी कार्यक्षमताओं का उपयोग करने में सक्षम करेगा।

डेटासेट अपलोड करना और उसकी सामग्री प्रदर्शित करना

फिर एक फ़ंक्शन परिभाषित करें जो अपलोड किए गए डेटासेट को पढ़ेगा। यदि रीड ऑपरेशन सफल होता है तो यह एक डेटाफ़्रेम लौटाएगा। यदि नहीं, तो यह साइडबार में एक त्रुटि संदेश प्रदर्शित करेगा। त्रुटि तब होती है जब फ़ाइल मान्य CSV फ़ाइल नहीं होती है.

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)

डेटाफ़्रेम बनाने और कच्चा डेटा दिखाने के बाद, अब आपको डेटा साफ़ करना होगा, उसका विश्लेषण करना होगा और अंत में उसे विज़ुअलाइज़ करना होगा।

डेटा सफ़ाई करना

एक फ़ंक्शन को परिभाषित करके प्रारंभ करें जो डेटा सफ़ाई करेगा। यह फ़ंक्शन डेटाफ़्रेम और डुप्लिकेट पंक्तियों में गुम मानों को संभालेगा। साफ़ किया गया डेटाफ़्रेम फिर उपयोग करने वाले उपयोगकर्ता को दिखाया जाता है st.डेटाफ़्रेम यदि वे जाँच करते हैं तो कार्य करें साफ़ किया गया डेटा दिखाएँ चेकबॉक्स.

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)

फ़ंक्शन हटाई गई डुप्लिकेट पंक्तियों की संख्या भी दिखाता है।

डेटा विश्लेषण करना

डेटा विश्लेषण फ़ंक्शन को परिभाषित करें। यह फ़ंक्शन डेटाफ़्रेम के वर्णनात्मक आँकड़े दिखाएगा और सहसंबंध मैट्रिक्स हीटमैप प्रदर्शित करेगा। इसका उपयोग करेगा st.pyplot उपयोगकर्ता इंटरफ़ेस पर हीटमैप प्रदर्शित करने का कार्य।

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)

अधिक डेटा विश्लेषण करने के लिए आप उपरोक्त फ़ंक्शन को संशोधित कर सकते हैं। इससे आपको अपने डेटा से अधिक जानकारी प्राप्त करने में मदद मिलेगी।

डेटा विज़ुअलाइज़ेशन निष्पादित करना

डेटा विज़ुअलाइज़ेशन एप्लिकेशन की महत्वपूर्ण कार्यक्षमताओं में से एक है। ऐसा इसलिए है क्योंकि यह मानव-अनुकूल तरीके से डेटा में अंतर्दृष्टि प्रदान करता है। इसलिए इस कार्यक्षमता से उपयोगकर्ताओं को प्लॉट का स्वरूप बदलने की अनुमति मिलनी चाहिए।

इसे पूरा करने के लिए, एक फ़ंक्शन बनाएं जो उपयोगकर्ताओं को एक कॉलम चुनने, डिब्बे की संख्या निर्धारित करने और हिस्टोग्राम के लिए एक रंग चुनने की अनुमति देगा। इसके बाद यह एक हिस्टोग्राम और एक बॉक्स प्लॉट तैयार करेगा और उनका उपयोग करके प्रदर्शित करेगा st.pyplot समारोह।

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__' का उपयोग करके: निर्माण करें.

if __name__ == '__main__':
main()

टर्मिनल पर आगे बढ़ें और उस पथ पर नेविगेट करें जिसमें आपका प्रोजेक्ट स्थित है। फिर ऐप शुरू करने के लिए निम्न कमांड चलाएँ:

streamlit run main.py

प्रतिस्थापित करें main.py आपकी स्क्रिप्ट के वास्तविक नाम के साथ. कमांड चलाने के बाद स्ट्रीमलिट एक स्थानीय यूआरएल और एक नेटवर्क यूआरएल उत्पन्न करेगा। आप अपने ऐप के साथ इंटरैक्ट करने के लिए इनमें से किसी भी यूआरएल का उपयोग कर सकते हैं।

प्रोग्राम का आउटपुट इस प्रकार है:

डेटा विज्ञान के लिए इंटरैक्टिव वेब ऐप्स बनाना इतना आसान कभी नहीं रहा। आपको अपने एप्लिकेशन के लिए उपयोगकर्ता इंटरफ़ेस बनाने के लिए उन्नत वेब विकास कौशल की आवश्यकता नहीं है।

क्या आपको अब भी वेब डेवलपमेंट सीखना चाहिए?

यह आपके विशिष्ट लक्ष्यों पर निर्भर करता है। यदि आप जटिल, सुविधा संपन्न वेब अनुप्रयोगों के निर्माण की आशा करते हैं जिनके लिए व्यापक उपयोगकर्ता की आवश्यकता होती है इंटरफ़ेस डिज़ाइन और उन्नत कार्यक्षमताएँ, फिर वेब विकास तकनीकों को सीखना संभव हो सकता है फायदेमंद। ऐसा इसलिए है क्योंकि स्ट्रीमलिट में आपके ऐप के स्वरूप और व्यवहार के सूक्ष्म अनुकूलन पर आपका सीमित नियंत्रण होता है।