कई बार हम डेटा को सांख्यिकीय विश्लेषण के लिए उचित और गुणात्मक बनाने के लिए डेटा स्मूथिंग नामक विधि का उपयोग करते हैं। स्मूथिंग प्रक्रिया के दौरान हम एक रेंज भी परिभाषित करते हैं जिसे बिन भी कहा जाता है और रेंज के भीतर कोई भी डेटा मान बिन में फिट हो जाता है। इसे बिनिंग विधि कहा जाता है। नीचे बिनिंग का एक उदाहरण है। फिर हम देखेंगे कि Python प्रोग्राम का उपयोग करके बिनिंग विधि कैसे प्राप्त की जा सकती है।
बिनिंग उदाहरण
आइए संख्याओं की एक श्रृंखला लें। अधिकतम और न्यूनतम मान ढूंढें। विश्लेषण के लिए कितने डेटा पॉइंट्स की आवश्यकता है, इस पर निर्भर करते हुए हमें कितने बिन चाहिए, यह तय करें। ये समूह बनाएं और इनमें से प्रत्येक संख्या को इन समूहों को असाइन करें। ऊपरी मान को बाहर रखा गया है और यह अगले समूह से संबंधित है।
उदाहरण
दिए गए नंबर: 12, 32, 10, 17, 19, 28, 22, 26, 29, 16 समूहों की संख्या: 4 यहां अधिकतम मान: 32 न्यूनतम मान: 10 इसलिए समूह हैं - (10-15), (15-21), (21-27), (27-32)
आउटपुट
संख्याओं को बिन में डालने पर, हमें निम्न परिणाम मिलता है -
12 -> (10-15) 32 -> (27-32) 10 -> (10-15) 17 -> (15-21) 19 -> (15-21) 28 -> (27-32) 22 -> (21-27) 26 -> (21-27) 29 -> (27-32) 16 -> (15-21)
बिनिंग प्रोग्राम
इस प्रोग्राम के लिए हम दो फ़ंक्शन परिभाषित करते हैं। एक ऊपरी और निचली सीमा को परिभाषित करके बिन बनाने के लिए। दूसरा फ़ंक्शन इनपुट मानों को प्रत्येक बिन को असाइन करने के लिए। प्रत्येक बिन को एक सूचकांक भी मिलता है। हम देखते हैं कि प्रत्येक इनपुट मान को बिन को कैसे असाइन किया जाता है और ट्रैक रखते हैं कि कितने मान एक विशिष्ट बिन में जाते हैं।
उदाहरण
from collections import Counter
def Binning_method(lower_bound, width, quantity):
binning = []
for low in range(lower_bound, lower_bound + quantity * width + 1, width):
binning.append((low, low + width))
return binning
def bin_assign(v, b):
for i in range(0, len(b)):
if b[i][0] <= v < b[i][1]:
return i
the_bins = Binning_method(lower_bound=50,
width=4,
quantity=10)
print("बिन: \n", the_bins)
weights_of_objects = [89.2, 57.2, 63.4, 84.6, 90.2, 60.3, 88.7, 65.2, 79.8, 80.2, 93.5, 79.3, 72.5, 59.2, 77.2, 67.0, 88.2, 73.5]
print("\nबिन्ड मान:\n")
binned_weight = []
for val in weights_of_objects:
index = bin_assign(val, the_bins)
print(val, "-सूचकांक के साथ-", index, ":", the_bins[index])
binned_weight.append(index)
freq = Counter(binned_weight)
print("\nप्रत्येक सूचकांक में मानों की संख्या: ")
print(freq)
आउटपुट
उपरोक्त कोड चलाने पर हमें निम्न परिणाम मिलता है -
बिन: [(50, 54), (54, 58), (58, 62), (62, 66), (66, 70), (70, 74), (74, 78), (78, 82), (82, 86), (86, 90), (90, 94)]
बिन्ड मान:
89.2 -सूचकांक के साथ- 9 : (86, 90)
57.2 -सूचकांक के साथ- 1 : (54, 58)
63.4 -सूचकांक के साथ- 3 : (62, 66)
84.6 -सूचकांक के साथ- 8 : (82, 86)
90.2 -सूचकांक के साथ- 10 : (90, 94)
60.3 -सूचकांक के साथ- 2 : (58, 62)
88.7 -सूचकांक के साथ- 9 : (86, 90)
65.2 -सूचकांक के साथ- 3 : (62, 66)
79.8 -सूचकांक के साथ- 7 : (78, 82)
80.2 -सूचकांक के साथ- 7 : (78, 82)
93.5 -सूचकांक के साथ- 10 : (90, 94)
79.3 -सूचकांक के साथ- 7 : (78, 82)
72.5 -सूचकांक के साथ- 5 : (70, 74)
59.2 -सूचकांक के साथ- 2 : (58, 62)
77.2 -सूचकांक के साथ- 6 : (74, 78)
67.0 -सूचकांक के साथ- 4 : (66, 70)
88.2 -सूचकांक के साथ- 9 : (86, 90)
73.5 -सूचकांक के साथ- 5 : (70, 74)
प्रत्येक सूचकांक में मानों की संख्या: Counter({9: 3, 7: 3, 3: 2, 10: 2, 2: 2, 5: 2, 1: 1, 8: 1, 6: 1, 4: 1})