सभी चुनौतियाँ
आसान 0 हल किए गए 0% स्वीकृति

Z-स्कोर स्टैंडर्डाइज़ेशन

किसी फ़ीचर का औसत 0 और मानक विचलन 1 कर दें।

आप क्या सीखेंगे

  • माध्य और मानक विचलन निकालना
  • फ़ीचर को केंद्रित और स्केल करना
  • शून्य प्रसरण संभालना

समस्या

स्टैंडर्डाइज़ेशन किसी फ़ीचर को ऐसे स्केल करता है कि उसका औसत 0 और मानक विचलन 1 हो, जिससे कई मॉडल (और ग्रेडिएंट डिसेंट) सबसे अच्छा काम करते हैं:

z = (x - mean) / std

पॉपुलेशन मानक विचलन का इस्तेमाल करें: std = √(Σ(x - mean)² / n)। अगर std 0 हो (सभी मान बराबर), तो हर मान के लिए 0 लौटाएँ।

z_scores(values) लागू करें।

इनपुट

values: एक फ़ीचर के मान।

आउटपुट

हर मान का z-स्कोर उसी क्रम में लौटाएँ।

सीमाएँ

1 ≤ लंबाई ≤ 10,000

-1,000,000 ≤ हर मान ≤ 1,000,000

उदाहरण

उदाहरण 1
इनपुट:
values = [2.0, 4.0, 4.0, 4.0, 5.0, 5.0, 7.0, 9.0]

अपेक्षित आउटपुट:
expected = [-1.5, -0.5, -0.5, -0.5, 0.0, 0.0, 1.0, 2.0]
इनपुट:
std::vector<double> values = {2.0, 4.0, 4.0, 4.0, 5.0, 5.0, 7.0, 9.0};

अपेक्षित आउटपुट:
std::vector<double> expected = {-1.5, -0.5, -0.5, -0.5, 0.0, 0.0, 1.0, 2.0};
इनपुट:
double[] values = new double[] {2.0, 4.0, 4.0, 4.0, 5.0, 5.0, 7.0, 9.0};

अपेक्षित आउटपुट:
double[] expected = new double[] {-1.5, -0.5, -0.5, -0.5, 0.0, 0.0, 1.0, 2.0};

व्याख्या

औसत 40 / 8 = 5 है और पॉपुलेशन मानक विचलन √(32 / 8) = 2 है, इसलिए 2 → (2 - 5) / 2 = -1.5, 4 → -0.5, 5 → 0, 7 → 1 और 9 → 2। परिणाम: [-1.5, -0.5, -0.5, -0.5, 0, 0, 1, 2]।

उदाहरण 2
इनपुट:
values = [3.0, 3.0]

अपेक्षित आउटपुट:
expected = [0.0, 0.0]
इनपुट:
std::vector<double> values = {3.0, 3.0};

अपेक्षित आउटपुट:
std::vector<double> expected = {0.0, 0.0};
इनपुट:
double[] values = new double[] {3.0, 3.0};

अपेक्षित आउटपुट:
double[] expected = new double[] {0.0, 0.0};

व्याख्या

दोनों मान औसत के बराबर हैं, इसलिए मानक विचलन 0 है और दोनों z-स्कोर 0 हैं।

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।