|
4 weeks ago | |
---|---|---|
.. | ||
README.md | 4 weeks ago | |
assignment.md | 4 weeks ago |
README.md
वितरणांचे दृश्यरूप
![]() |
---|
वितरणांचे दृश्यरूप - Sketchnote by @nitya |
मागील धड्यात, तुम्ही मिनेसोटाच्या पक्ष्यांबद्दलच्या डेटासेटमधील काही मनोरंजक तथ्ये शिकलीत. तुम्ही बाहेरच्या मूल्यांचे (outliers) दृश्यरूप पाहून चुकीची डेटा ओळखलीत आणि पक्ष्यांच्या श्रेणींमधील जास्तीत जास्त लांबीच्या फरकांचा अभ्यास केला.
पूर्व-व्याख्यान क्विझ
पक्ष्यांच्या डेटासेटचा अभ्यास करा
डेटामध्ये खोलवर जाण्याचा आणखी एक मार्ग म्हणजे त्याच्या वितरणाचा अभ्यास करणे, म्हणजे डेटा अक्षावर कसा आयोजित केला आहे हे पाहणे. उदाहरणार्थ, तुम्हाला कदाचित मिनेसोटाच्या पक्ष्यांसाठी जास्तीत जास्त पंखांचा विस्तार किंवा जास्तीत जास्त शरीराच्या वजनाचे सामान्य वितरण जाणून घ्यायचे असेल.
या डेटासेटमधील वितरणांबद्दल काही तथ्ये शोधूया. तुमच्या R कन्सोलमध्ये ggplot2
आणि डेटाबेस आयात करा. मागील विषयाप्रमाणे डेटाबेसमधून बाहेरच्या मूल्यांना काढून टाका.
library(ggplot2)
birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM")
birds_filtered <- subset(birds, MaxWingspan < 500)
head(birds_filtered)
नाव | शास्त्रीय नाव | श्रेणी | ऑर्डर | कुटुंब | वंश | संवर्धन स्थिती | किमान लांबी | जास्तीत जास्त लांबी | किमान शरीर वजन | जास्तीत जास्त शरीर वजन | किमान पंखांचा विस्तार | जास्तीत जास्त पंखांचा विस्तार | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | ब्लॅक-बेलिड व्हिसलिंग-डक | Dendrocygna autumnalis | बदके/हंस/पाणपक्षी | Anseriformes | Anatidae | Dendrocygna | LC | 47 | 56 | 652 | 1020 | 76 | 94 |
1 | फुल्व्हस व्हिसलिंग-डक | Dendrocygna bicolor | बदके/हंस/पाणपक्षी | Anseriformes | Anatidae | Dendrocygna | LC | 45 | 53 | 712 | 1050 | 85 | 93 |
2 | स्नो गूज | Anser caerulescens | बदके/हंस/पाणपक्षी | Anseriformes | Anatidae | Anser | LC | 64 | 79 | 2050 | 4050 | 135 | 165 |
3 | रॉसचा गूज | Anser rossii | बदके/हंस/पाणपक्षी | Anseriformes | Anatidae | Anser | LC | 57.3 | 64 | 1066 | 1567 | 113 | 116 |
4 | ग्रेटर व्हाइट-फ्रंटेड गूज | Anser albifrons | बदके/हंस/पाणपक्षी | Anseriformes | Anatidae | Anser | LC | 64 | 81 | 1930 | 3310 | 130 | 165 |
सामान्यतः, डेटा कसा वितरित केला आहे हे पटकन पाहण्यासाठी तुम्ही मागील धड्यात केल्याप्रमाणे स्कॅटर प्लॉट वापरू शकता:
ggplot(data=birds_filtered, aes(x=Order, y=MaxLength,group=1)) +
geom_point() +
ggtitle("Max Length per order") + coord_flip()
हे प्रत्येक पक्ष्याच्या ऑर्डरनुसार शरीराच्या लांबीचे सामान्य वितरण दर्शवते, परंतु खऱ्या वितरणाचे प्रदर्शन करण्यासाठी हा सर्वोत्तम मार्ग नाही. ही जबाबदारी सहसा हिस्टोग्राम तयार करून हाताळली जाते.
हिस्टोग्रामसह काम करणे
ggplot2
हिस्टोग्राम वापरून डेटा वितरणाचे उत्कृष्ट दृश्यरूप प्रदान करते. हा प्रकार बार चार्टसारखा असतो जिथे बारच्या चढ-उतारांद्वारे वितरण पाहता येते. हिस्टोग्राम तयार करण्यासाठी तुम्हाला संख्यात्मक डेटा आवश्यक आहे. हिस्टोग्राम तयार करण्यासाठी, तुम्ही चार्टचा प्रकार 'hist' म्हणून परिभाषित करू शकता. हा चार्ट संपूर्ण डेटासेटच्या श्रेणीतील जास्तीत जास्त शरीर वजनाचे वितरण दर्शवतो. डेटाच्या अॅरेला लहान बिन्समध्ये विभागून, तो डेटाच्या मूल्यांचे वितरण प्रदर्शित करू शकतो:
ggplot(data = birds_filtered, aes(x = MaxBodyMass)) +
geom_histogram(bins=10)+ylab('Frequency')
जसे तुम्ही पाहू शकता, या डेटासेटमधील 400+ पक्ष्यांपैकी बहुतेक पक्षी त्यांच्या जास्तीत जास्त शरीर वजनासाठी 2000 च्या श्रेणीत येतात. bins
पॅरामीटरचा आकडा जास्त, जसे की 30, करून डेटाबद्दल अधिक अंतर्दृष्टी मिळवा:
ggplot(data = birds_filtered, aes(x = MaxBodyMass)) + geom_histogram(bins=30)+ylab('Frequency')
हा चार्ट वितरण थोड्या अधिक तपशीलवार पद्धतीने दर्शवतो. डावीकडे कमी झुकलेला चार्ट तयार केला जाऊ शकतो जर तुम्ही फक्त दिलेल्या श्रेणीतील डेटा निवडला:
तुमचा डेटा फिल्टर करा आणि फक्त अशा पक्ष्यांचा डेटा मिळवा ज्यांचे शरीर वजन 60 च्या खाली आहे आणि 30 bins
दर्शवा:
birds_filtered_1 <- subset(birds_filtered, MaxBodyMass > 1 & MaxBodyMass < 60)
ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) +
geom_histogram(bins=30)+ylab('Frequency')
✅ इतर फिल्टर्स आणि डेटा पॉइंट्स वापरून पहा. डेटाचे पूर्ण वितरण पाहण्यासाठी, ['MaxBodyMass']
फिल्टर काढून टाका आणि लेबल केलेले वितरण दर्शवा.
हिस्टोग्राममध्ये काही छान रंग आणि लेबलिंग सुधारणा देखील आहेत:
दोन वितरणांमधील संबंधांची तुलना करण्यासाठी 2D हिस्टोग्राम तयार करा. MaxBodyMass
आणि MaxLength
ची तुलना करूया. ggplot2
उजळ रंग वापरून अभिसरण दर्शविण्याचा अंगभूत मार्ग प्रदान करते:
ggplot(data=birds_filtered_1, aes(x=MaxBodyMass, y=MaxLength) ) +
geom_bin2d() +scale_fill_continuous(type = "viridis")
या दोन घटकांमध्ये अपेक्षित अक्षावर एक अपेक्षित संबंध दिसतो, ज्यामध्ये अभिसरणाचा एक विशेषतः मजबूत बिंदू आहे:
हिस्टोग्राम संख्यात्मक डेटासाठी चांगले कार्य करतात. जर तुम्हाला मजकूर डेटानुसार वितरण पाहायचे असेल तर काय कराल?
मजकूर डेटाचा वापर करून वितरणांचा अभ्यास करा
या डेटासेटमध्ये पक्ष्यांच्या श्रेणी, वंश, प्रजाती, कुटुंब तसेच त्यांची संवर्धन स्थिती याबद्दल चांगली माहिती देखील समाविष्ट आहे. या संवर्धन माहितीत खोलवर जाऊया. पक्ष्यांचे संवर्धन स्थितीनुसार वितरण काय आहे?
✅ या डेटासेटमध्ये संवर्धन स्थितीचे वर्णन करण्यासाठी अनेक संक्षेप वापरले जातात. हे संक्षेप IUCN रेड लिस्ट श्रेणी कडून आले आहेत, जी प्रजातींच्या स्थितीचे वर्गीकरण करणारी संस्था आहे.
- CR: गंभीरपणे संकटग्रस्त
- EN: संकटग्रस्त
- EX: नामशेष
- LC: कमी चिंता
- NT: जवळपास संकटग्रस्त
- VU: असुरक्षित
हे मजकूर-आधारित मूल्ये असल्याने तुम्हाला हिस्टोग्राम तयार करण्यासाठी रूपांतरण करावे लागेल. filteredBirds
डेटा फ्रेम वापरून, त्याची संवर्धन स्थिती आणि किमान पंखांचा विस्तार दर्शवा. तुम्हाला काय दिसते?
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EX'] <- 'x1'
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'CR'] <- 'x2'
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'EN'] <- 'x3'
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'NT'] <- 'x4'
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'VU'] <- 'x5'
birds_filtered_1$ConservationStatus[birds_filtered_1$ConservationStatus == 'LC'] <- 'x6'
ggplot(data=birds_filtered_1, aes(x = MinWingspan, fill = ConservationStatus)) +
geom_histogram(position = "identity", alpha = 0.4, bins = 20) +
scale_fill_manual(name="Conservation Status",values=c("red","green","blue","pink"),labels=c("Endangered","Near Threathened","Vulnerable","Least Concern"))
किमान पंखांचा विस्तार आणि संवर्धन स्थिती यामध्ये चांगला संबंध दिसत नाही. या पद्धतीचा वापर करून डेटासेटमधील इतर घटकांची चाचणी घ्या. तुम्ही वेगवेगळे फिल्टर्स देखील वापरू शकता. तुम्हाला काही संबंध सापडतो का?
घनता प्लॉट्स
तुम्ही लक्षात घेतले असेल की आतापर्यंत पाहिलेले हिस्टोग्राम 'स्टेप्ड' आहेत आणि ते गुळगुळीत वक्रात प्रवाहित होत नाहीत. गुळगुळीत घनता चार्ट दर्शविण्यासाठी, तुम्ही घनता प्लॉट वापरून पाहू शकता.
आता घनता प्लॉट्ससह काम करूया!
ggplot(data = birds_filtered_1, aes(x = MinWingspan)) +
geom_density()
तुम्ही पाहू शकता की हा प्लॉट किमान पंखांचा विस्तार डेटा दर्शवणाऱ्या मागील प्लॉटसारखाच आहे; तो फक्त थोडा गुळगुळीत आहे. जर तुम्हाला दुसऱ्या चार्टमधील जास्तीत जास्त शरीर वजनाच्या खडबडीत रेषेला गुळगुळीत करायचे असेल, तर तुम्ही ही पद्धत वापरून ती खूप चांगल्या प्रकारे गुळगुळीत करू शकता:
ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) +
geom_density()
जर तुम्हाला गुळगुळीत, पण खूप गुळगुळीत नसलेली रेषा हवी असेल, तर adjust
पॅरामीटर संपादित करा:
ggplot(data = birds_filtered_1, aes(x = MaxBodyMass)) +
geom_density(adjust = 1/5)
✅ या प्रकारच्या प्लॉटसाठी उपलब्ध पॅरामीटर्सबद्दल वाचा आणि प्रयोग करा!
हा प्रकारचा चार्ट सुंदर स्पष्टीकरणात्मक दृश्ये प्रदान करतो. उदाहरणार्थ, काही ओळींच्या कोडसह, तुम्ही प्रत्येक पक्ष्याच्या ऑर्डरनुसार जास्तीत जास्त शरीर वजनाची घनता दर्शवू शकता:
ggplot(data=birds_filtered_1,aes(x = MaxBodyMass, fill = Order)) +
geom_density(alpha=0.5)
🚀 आव्हान
हिस्टोग्राम हे मूलभूत स्कॅटरप्लॉट्स, बार चार्ट्स किंवा लाइन चार्ट्सपेक्षा अधिक प्रगत प्रकारचे चार्ट आहेत. इंटरनेटवर शोधा आणि हिस्टोग्रामच्या चांगल्या उदाहरणांचा अभ्यास करा. ते कसे वापरले जातात, ते काय दर्शवतात, आणि कोणत्या क्षेत्रांमध्ये किंवा चौकशीच्या कोणत्या भागांमध्ये त्यांचा वापर होतो?
व्याख्यानानंतरचा क्विझ
पुनरावलोकन आणि स्व-अभ्यास
या धड्यात, तुम्ही ggplot2
वापरले आणि अधिक प्रगत चार्ट्स तयार करण्यास सुरुवात केली. geom_density_2d()
या "एक किंवा अधिक परिमाणांमध्ये सतत संभाव्यता घनता वक्र" बद्दल संशोधन करा. डॉक्युमेंटेशन वाचा आणि ते कसे कार्य करते ते समजून घ्या.
असाइनमेंट
अस्वीकरण:
हा दस्तऐवज AI भाषांतर सेवा Co-op Translator वापरून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी कृपया लक्षात ठेवा की स्वयंचलित भाषांतरे त्रुटी किंवा अचूकतेच्या अभावाने युक्त असू शकतात. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून उद्भवलेल्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही.