पहला स्ट्र
एक कंप्यूटर वैज्ञानिक और इंजीनियर से ज्यादा मैं एक इंसान हूं। और एक इंसान के रूप में, देखना सबसे महत्वपूर्ण और पुरस्कृत संवेदी अनुभव है जो हमारे पास हो सकता है। इसलिए, एक शुरुआत के रूप में, मैं स्ट्रीमलिट फ्रेमवर्क (अजगर, पांडा और अल्टेयर की मदद से) पर निर्मित अपना पहला डैशबोर्ड प्रदर्शित करने जा रहा हूं।
परिचय
डैशबोर्ड? झांकी? पावरबीआई? क्यों न सिर्फ कुछ एक्सेल शीट्स का इस्तेमाल किया जाए?
शब्द "डैशबोर्ड" निश्चित रूप से डेटा साइंस, डेटा इंजीनियरिंग, बिजनेस इंटेलिजेंस और इसी तरह के क्षेत्र में एक प्रचलित मूलमंत्र है। लेकिन डैशबोर्ड क्या है? और मैं इसके साथ क्या कर सकता हूँ?
सबसे पहले, जब हम डैशबोर्ड शब्द सुनते हैं, तो फिल्मों में चार्ट से भरे कंप्यूटर सिस्टम के बजाय पुलिस कारों को तेजी से खींचती है। "क्या आपने कार के डैशबोर्ड पर ओवर स्पीडिंग नहीं देखी?" अच्छा... एक डैशबोर्ड केवल एक दृश्य फ़्रेम है जिसमें कुछ प्रमुख-प्रदर्शन संकेतक, चार्ट और आँकड़े होते हैं। वे वास्तविक समय में उत्तरदायी, इंटरैक्टिव और अपडेट हो सकते हैं। एक अलग दृष्टिकोण का उपयोग करते हुए, वे एक विशिष्ट केस परिदृश्य के सापेक्ष क्यूरेट की गई जानकारी के विज़ुअलाइज़ेशन के लिए टूल हैं। क्यू क्यूरेटेड? क्योंकि सिस्टम का अक्सर उपयोग किया जाता है और एप्लिकेशन के ओवरफीडिंग से बचने के लिए डेटा को आवश्यक स्तर पर रखने की आवश्यकता होती है। समय महत्वपूर्ण है और जितनी जल्दी जानकारी पच जाती है, उतना ही अच्छा है।
तो… झांकी और पावर बीआई डैशबोर्ड और कहानियां बनाने के लिए सिर्फ रूपरेखा हैं। साथ ही, डैशबोर्ड बनाने के लिए एक्सेल का उपयोग किया जा सकता है। वास्तव में, एक्सेल डैशबोर्ड्स का ग्रैंडड है ... अंत में, यह शब्द केवल एक फैंसी शब्द है जिसका उपयोग आंकड़ों वाली सूचना प्रणाली का वर्णन करने के लिए किया जाता है।
जैसा कि कुछ कहते हैं, एक छवि एक हजार शब्दों से बेहतर है, इसलिए हम व्यावहारिक भाग की ओर बढ़ते हैं। हम यहां परिचय समाप्त करते हैं और उपकरणों का चयन करने और ईडीए करने के लिए एक यादृच्छिक डेटासेट चुनने के लिए आगे बढ़ते हैं, फिर तनाव बिंदुओं को ढूंढते हैं जिन्हें हल किया जा सकता है, या विश्लेषण किया जा सकता है, हमारे डैशबोर्ड का उपयोग करके उनका उत्तर देने का प्रयास करें। सभी, समानांतर में डैशबोर्डिंग करते हुए।
ढेर
बड़ी मात्रा में चट्टानों को कुशलतापूर्वक तोड़ने के लिए, संभवतः शक्तिशाली और समर्पित उपकरणों के एक सेट की आवश्यकता होती है। अगली सूची मिनी प्रोजेक्ट में उपयोग किए जाने वाले कई उपकरणों का वर्णन करती है।
स्ट्रीमलिट । ओपन-सोर्स फ्रेमवर्क जो तीन मुख्य सिद्धांतों का पालन करता है: दृश्यों के रूप में स्क्रिप्टिंग, चर के रूप में घटकों का उपयोग करके बातचीत और तेजी से तैनाती। दूसरे शब्दों में, स्ट्रीमलिट के साथ फ्रंट-एंड और स्टाइलिंग फ्रेमवर्क का उपयोग करने के तरीके को जानने की आवश्यकता के बिना विज़ुअल आकर्षक डैशबोर्ड बनाना संभव है। यह प्रतिमान सिस्टम को स्टाइल की बारीकियों को अनदेखा करने और KPI को परिभाषित करने और उनका प्रतिनिधित्व करने के लिए कौन से तरीके बेहतर हैं, इस पर ध्यान केंद्रित करने की अनुमति देता है।
अल्टेयर। डेटा विज़ुअलाइज़ेशन टूल। Altair का Matplotlib के समान उद्देश्य है, लेकिन यह सिद्धांतों के एक अलग सेट पर बनाया गया था। कोडिंग शैली एक घोषणात्मक प्रतिमान का अनुसरण करती है, और इसका सिंटैक्स JSON प्रारूप जैसा दिखता है।
पांडा । लाइब्रेरी जिसका उपयोग सारणीबद्ध डेटा की खोज, सफाई और हेरफेर के लिए किया जा सकता है। एकाधिक तालिकाओं में शामिल होने की अनुमति देता है, लापता मान भरें, कनवर्ट करें, साफ़ करें, फ़िल्टर करें और क्वेरी करें।
स्किकिट-सीखें । पुस्तकालय डेटा विश्लेषण के लिए कई उपकरण प्रदान करता है। मशीन लर्निंग और स्टैटिस्टिकल मॉडल, ट्रेनिंग शेड्यूल, एरर क्वांटिफिकेशन के लिए मेट्रिक्स और डेटा प्रेडिक्शन से। इस स्किकिट-लर्न का उपयोग करके, डेटा का तेजी से और आसानी से विश्लेषण करना संभव है। लेकिन ध्यान रखें कि लागू किए गए मॉडल अत्याधुनिक नहीं हैं।
गूंगा । पायथन पारिस्थितिकी तंत्र के भीतर संख्यात्मक संगणना के लिए आवश्यक समय में सुधार करता है। Numpy के मूल डेटा में एन-डायमेंशनल सरणियाँ होती हैं।
अचार । इस टूल का उपयोग Python ऑब्जेक्ट्स के क्रमांकन और डिसेरिएलाइज़ेशन के लिए किया जाता है।
डेटासेट
प्रोजेक्ट स्ट्रीमलिट की पेशकश की खोज पर ध्यान केंद्रित करता है, न कि एंड-टू-एंड क्यूरेटेड डेटा साइंस प्रोजेक्ट करने के लिए। इसलिए हम जिस डेटासेट को चुनने जा रहे हैं, वह लगभग भाग्य पर चुना गया है।
हमारे निष्कर्षों में सिएटल (यूएसए) हाउसिंग मार्केट डेटासेट शामिल है। उदाहरण मई'14 और मई'15 के बीच एकत्र किए गए थे।
अवयव
अब, अंतिम डैशबोर्ड में जोड़ने वाले कई घटकों की जाँच करने का समय आ गया है। मेरे जीथब के पृष्ठ पर पूर्ण कार्यान्वयन की जाँच करें (https://github.com/LOCLuisPereira/streamlit_house_market).
प्रारंभिक KPI मेट्रिक्स
यह KPI मेट्रिक्स पहली चीज है जो उपयोगकर्ता देखता है। उन्हें महत्वपूर्ण जानकारी संक्षेप में देनी चाहिए। स्ट्रीमलिट एक कार्ड-समान घटक (streamlit.metric) प्रदान करता है, जहां कोई KPI शीर्षक, मान और डेल्टा को परिभाषित कर सकता है। उनका उपयोग पहचान, परिमाणीकरण और मूल्य में उतार-चढ़ाव को मापने के लिए किया जाता है।
हमारे मामले में, हमारे पास सिएटल हाउसिंग मार्केट के बारे में घरों की कुल संख्या और कुछ अन्य औसत हैं (जैसे औसत घर की कीमत, फर्श की स्थिति संख्या, और इसी तरह)।
सिएटल नक्शा और हाउस वितरण
स्ट्रीमलिट में एक नक्शा घटक होता है जो डेवलपर को जल्दी से एक शब्द या शहर का नक्शा (streamlit.map) बनाने में सक्षम बनाता है। यह घटक काफी सरल है और आवश्यकताओं को जटिल नहीं करता है, क्योंकि इसकी अनुकूलन डिग्री कम है।
एक उदाहरण के रूप में लें, किसी दिए गए शहर पर उदाहरण वितरण की जाँच के लिए घटक पर्याप्त है। लेकिन क्लस्टर वितरण और उनके संबंधित रंग की कल्पना करने के लिए एक अन्य उपकरण की आवश्यकता होती है।
क्लस्टरिंग विज़ुअलाइज़ेशन के लिए अल्टेयर मैप ग्राफ़ का उपयोग करना
स्ट्रीमलिट का मूल नक्शा घटक हुड के नीचे अल्टेयर का उपयोग करता है। इतना सरल है। हमने पहले कहा था कि यह घटक प्लग-एंड-प्ले है, लेकिन किसी प्रकार का अनुकूलन प्रदान नहीं करता है। मूल कार्यान्वयन का एक विकल्प अल्टेयर चार्ट का उपयोग करना और इसे स्ट्रीमलिट-अल्टेयर चार्ट घटक के साथ जोड़ना है।
स्थान प्रमुख है। खासकर, हाउसिंग मार्केट बिजनेस पर। समुद्र के पास स्थित होने या किसी बड़े शहर के अंदर होने से एक ही घर का मूल्य 20 गुना गुणा हो सकता है।
यह सुनिश्चित करने के लिए कि यह वास्तव में सत्य है, हमने एक प्रयोग चलाया। स्किकिट-लर्न और इसके के-मीन्स कार्यान्वयन का उपयोग करके, हम एल्गोरिथम को अलग-अलग संख्या में क्लस्टर (2 से 10 तक) के साथ चलाते हैं। देशांतर और अक्षांश का उपयोग सुविधाओं के रूप में किया गया था। प्रत्येक भाग से, हम आवास की औसत कीमत की जाँच करते हैं।
अंतिम चरण, विज़ुअलाइज़ेशन, तीन घटकों को मिलाकर बनाया गया था। वांछित संख्या में क्लस्टर चुनने के लिए एक स्लाइडर। उदाहरणों और उनके मानचित्र के स्थान को दिखाने के लिए एक अल्टेयर मानचित्र। और एक डेटाफ्रेम, प्रत्येक क्लस्टर के लिए औसत मूल्य दिखाने के लिए।
अंत में, स्थान वास्तव में मायने रखता है। जैसे-जैसे हम दक्षिण से उत्तर की ओर जाते हैं, घरों की कीमतें बढ़ती जाती हैं। सिएटल के बाईं ओर मकान कम खर्चीले होते हैं। आवास बाजार में, कई कारक कीमत को प्रभावित कर सकते हैं। उदाहरण के लिए, दाईं ओर के घर मुख्य भूमि के करीब हैं, और सिएटल या करीबी शहरों के अन्य हिस्सों में नेविगेट करना आसान है। यह कारण महत्वपूर्ण नहीं है, लेकिन घर की अंतिम कीमत पर भार पड़ सकता है।
ग्रेड और हालत
यह घटक सरल और छोटा है। दो बार चार्ट, `streamlit.bar_chart` का उपयोग करके, हमने ग्रेड और स्थिति वितरण प्लॉट किया। ग्राफ़िक की कल्पना करके, हम यह निष्कर्ष निकालते हैं कि अधिकांश उदाहरण बीच में हैं (दोनों ग्राफ़ के लिए)।
हमने इन दोनों विशेषताओं को एक दूसरे के विरुद्ध प्लॉट किया। यदि हम औसत स्कोर को तटस्थ मानते हैं, तो अधिकांश घरों में स्कोर के तटस्थ पक्ष पर झूठ बोलने की प्रवृत्ति होती है। यदि तटस्थ नहीं हैं, तो वे डरपोक सकारात्मक स्कोर तक गिर जाते हैं।
हाउस रेनोवेशन के बारे में कैसे? KPI का एक और सेट
streamlit.metric का उपयोग करते हुए, हमने घर की मरम्मत से संबंधित डेटा का त्वरित विश्लेषण करने के लिए तीन इनलाइन-KPI मेट्रिक्स लागू किए। हमने पुनर्निर्मित घरों की संख्या, बाकी के मुकाबले उनका प्रतिनिधित्व, और निर्माण और नवीनीकरण वर्ष के बीच का समय क्या है, दिखाया।
डैशबोर्ड को देखने पर पता चला कि 914 घरों को रेनोवेट किया गया है। और उनके निर्माण के 56 साल बाद घरों का जीर्णोद्धार किया जाता है।
लाइन चार्ट के बिना डैशबोर्ड? असंभव…
लाइन चार्ट काफी सामान्य होते हैं। स्ट्रीमलिट उन्हें तेजी से और आसान तरीके से प्लॉट करने के लिए एक रैप घटक प्रदान करता है। अपने डैशबोर्ड पर, हम उनका उपयोग प्रति माह घरों की बिक्री देखने के लिए करते हैं।
एक नज़र डालें... सर्वाधिक बिकने वाले महीने जुलाई 2014 और अप्रैल 2015 थे।
शयनकक्ष और स्नानघर? ढेर या उन्हें संतुलित करें?
कभी-कभी, अधिक बेहतर से निकटता से संबंधित नहीं होता है। इसकी पुष्टि या पर्दाफाश करने के लिए, हम एक हीट मैप चार्ट लागू करते हैं जो बेडरूम, बाथरूम की संख्या और प्रत्येक बेडरूम-बाथरूम संयोजन के लिए औसत मूल्य से संबंधित है।
नए ग्राफ को देखने पर, हम देख सकते हैं कि शयनकक्षों और स्नानघरों की संख्या को संतुलित करना मौलिक है। उद्योग 1:1 अनुपात और शयनकक्षों की तुलना में अधिक बाथरूम का समर्थन करता है।
बेडरूम को ढेर करते समय, कीमत समान सीमा में होती है। लेकिन बाथरूम जोड़ने पर, कीमत हमेशा बढ़ जाती है।
यह शायद एक साधारण तर्क का पालन करके समझाया जा सकता है। लोग प्रतीक्षा करना पसंद नहीं करते हैं, और लोग अत्यंत गोपनीयता स्थान साझा करना पसंद नहीं करते हैं। संक्षेप में, निवासियों और मेहमानों को उच्च स्तर की गोपनीयता के लिए सक्षम करने से संपत्तियों में उच्च मूल्य प्राप्त होते हैं।
मेरे पास सिएटल में एक संपत्ति है... क्या आप बिक्री के लिए उचित मूल्य खोजने में मेरी मदद कर सकते हैं?
हम इस प्रश्न को दो छोटी समस्याओं में विखंडित कर सकते हैं। उपयोगकर्ता से हमारी सूचना प्रणाली में सूचना प्रवाह को पाटने के लिए हम क्या कर सकते हैं। और क्या हम डेटा को डाइजेस्ट करने के लिए किसी मशीन लर्निंग एल्गोरिथम का उपयोग कर सकते हैं और इनपुट जानकारी को देखते हुए संभावित मूल्य का श्रेय दे सकते हैं।
स्ट्रीमलिट कई घटक प्रदान करता है जो उपयोगकर्ता और सिस्टम संचार को स्वचालित रूप से पुल करता है। इस विशिष्ट मामले में, हम प्रपत्र घटकों का उपयोग करने जा रहे हैं। ये घटक अंतिम बटन की एकमात्र आवश्यकता के साथ अन्य घटकों के विलय की अनुमति देता है, जो डेटा सबमिशन को ट्रिगर करता है।
फॉर्म कंपोनेंट से जानकारी दो पूर्व-प्रशिक्षित मॉडल में फीड की जाती है। अनुमान के बाद, डेटा डैशबोर्ड में भेजा जाता है और उपयोगकर्ता दो संभावित मूल्य अनुमान देख सकते हैं।
चूंकि परियोजना का मिशन एक डैशबोर्ड बनाना और अधिकांश स्ट्रीमलिट घटकों का पता लगाना है, इसलिए हमने दो बुनियादी मशीन लर्निंग मॉडल एल्गोरिदम का उपयोग किया, जिन्हें स्किकिट-लर्न पर लागू किया गया है। अंत में, हमारे पास पूरे डेटा पर 0.54 और 0.87 R2 स्कोर के साथ बायेसियन रिज और रैंडम फ़ॉरेस्ट है।
कोई सवाल कर सकता है कि 0.54 स्कोर वाला मॉडल क्यों रखा जाए? हमने मजाक के तौर पर रखा है। मॉडल कभी-कभी नकारात्मक मान आउटपुट करता है। क्रम शब्दों में, मॉडल हमें बताता है कि हम एक घर खरीद सकते हैं ... और इसे रखने के लिए धन प्राप्त कर सकते हैं।
डेटाफ़्रेम के अंदर क्या है?
इस कार्य के लिए, स्ट्रीमलिट तीन अलग-अलग विकल्प प्रदान करता है। एक स्टैटिक टेबल के लिए, एक डेटाफ्रेम के लिए और दूसरा JSON के लिए। यहां, हम अंतिम दो पर ध्यान केन्द्रित करेंगे।
डेटाफ़्रेम का फ़ंक्शन एक तालिका को आउटपुट करता है जो डेटासेट की संरचना को सारणीबद्ध तरीके से देखने की अनुमति देता है। आरोही या अवरोही स्तंभों को क्रमबद्ध करना संभव है, जो विज़ुअलाइज़ेशन और डेटा सिमेंटिक्स में सुधार करता है।
JSON का आउटपुट डंपिंग फ़ंक्शन जैसा दिखता है, इंडेंटेशन के साथ, जो कि पायथन के JSON लाइब्रेरी से मूल है।
दोनों घटकों का उपयोग मामला है। डेटाफ़्रेम घटक का उपयोग सूचनाओं का त्वरित विश्लेषण करने के लिए किया जा सकता है और उदाहरण के लिए, अधिकतम, न्यूनतम, लापता या अशक्त मानों की जाँच करें और इसी तरह। डेटा संरचना की जाँच के लिए JSON एक उत्कृष्ट है और डेटासेट पर प्रत्येक फ़ील्ड को छोड़कर किस प्रकार का है।
अंतिम लेता है
यह इस परियोजना के लिए सड़क का अंत है। हमने किसी नाजुक या अत्याधुनिक एल्गोरिदम का पता नहीं लगाया। वे सिद्धांत और कार्यान्वयन में सरल थे। लेकिन इस कार्यान्वयन के साथ, हम ध्यान लगाने और इस बारे में सवालों के जवाब देने की स्थिति में हैं कि ढांचा कितना अच्छा है और क्या यह हमारे स्टैक के अनुकूल है।
अंत में, स्ट्रीमलिट वह प्रस्ताव देने में सक्षम है जो वह प्रस्तावित करता है। डैशबोर्ड बनाना स्क्रिप्ट लिखने जितना ही आसान है। डेटा एक इंटरैक्टिव और संगठित तरीके से दिखाया गया है। भले ही हमने इसे प्रदर्शित नहीं किया, प्रोटोटाइप को तैनात करना तेज़ और आसान है।
इस समय, हम केवल दो संभावित डाउनसाइड्स देख सकते हैं। रूटिंग और स्टाइलिंग। मल्टीपेज डैशबोर्ड के लिए रूटिंग। मौजूदा स्टाइल तंत्र का विस्तार करने के लिए स्टाइलिंग और उच्च स्तर के अनुकूलन की अनुमति देता है।
स्ट्रीमलिट पर मेरा व्यक्तिगत विचार सरल है। मैं अपनी अन्य परियोजनाओं में उपयोग करने के लिए काफी उत्साहित हूं। प्रोटोटाइप या इन-हाउस डैशबोर्ड बनाना तेज़ है, परिणाम सौंदर्यपूर्ण रूप से मनभावन हैं और EDA और भी अधिक रोमांचकारी हो जाता है ... क्योंकि हम कितने सरल रूप से डेटा को दृश्यपटल पर देख सकते हैं।
बक्शीश। रीयल-टाइम डैशबोर्ड के बारे में क्या?
हमारे प्रोजेक्ट में हमें रियल टाइम डेटा अपडेट करने की जरूरत नहीं पड़ी। लेकिन स्ट्रीमलिट रीयल-टाइम डेटा विज़ुअलाइज़ेशन को लागू करने के तरीके प्रदान करता है। तंत्र सरल है। एक खाली घटक बनाएँ, एक लूप सेट करें, डेटा प्राप्त करें और फीड करें... Voilà! निरंतर और रीयल-टाइम डेटा स्ट्रीम। फ़्रेमवर्क क्षमताओं के प्रमाण के रूप में नीचे दी गई छवियों को देखें।
बस यही है! फिर मिलते हैं।

![क्या एक लिंक्ड सूची है, वैसे भी? [भाग 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































