आसान 0 हल किए गए 0% स्वीकृति

Logistic Regression Prediction

Classify samples as 0 or 1 by passing a weighted sum through the sigmoid and comparing it to a threshold.

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

  • Turn a weighted sum into a probability
  • Classify with a decision threshold
  • Understand binary classifiers

समस्या

अनुवाद दिखाएँ

Logistic regression is a linear model for yes/no questions. For each sample it computes a probability and turns it into a class:

  1. z = x₁×w₁ + … + xₙ×wₙ + bias
  2. p = 1 / (1 + e^(-z))
  3. class = 1 if p ≥ threshold, otherwise 0

Implement logistic_predict(samples, weights, bias, threshold).

Input

samples: One row of n features per sample.

weights: n weights.

bias: The bias.

threshold: The probability needed to predict class 1 (strictly between 0 and 1).

Output

Return the predicted class (0 or 1) of each sample, in order.

सीमाएँ

1 ≤ samples ≤ 1,000, 1 ≤ n ≤ 50

-100 ≤ each feature, weight and bias ≤ 100

0 < threshold < 1

उदाहरण

उदाहरण 1
इनपुट:
bias = -1.0
samples = [
    [2.0, 1.0],
    [0.0, 0.0],
    [-1.0, -3.0]
]
weights = [1.5, -0.5]
threshold = 0.5

अपेक्षित आउटपुट:
expected = [1, 0, 0]
इनपुट:
double bias = -1.0;
std::vector<std::vector<double>> samples = {
    {2.0, 1.0},
    {0.0, 0.0},
    {-1.0, -3.0}
};
std::vector<double> weights = {1.5, -0.5};
double threshold = 0.5;

अपेक्षित आउटपुट:
std::vector<long long> expected = {1, 0, 0};
इनपुट:
double bias = -1.0;
double[][] samples = new double[][] {
    new double[] {2.0, 1.0},
    new double[] {0.0, 0.0},
    new double[] {-1.0, -3.0}
};
double[] weights = new double[] {1.5, -0.5};
double threshold = 0.5;

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

व्याख्या

Sample 1: z = 3 - 0.5 - 1 = 1.5, p ≈ 0.818 → 1. Sample 2: z = -1, p ≈ 0.269 → 0. Sample 3: z = -1.5 + 1.5 - 1 = -1, p ≈ 0.269 → 0. Result: [1, 0, 0].

उदाहरण 2
इनपुट:
bias = -2.0
samples = [
    [1.0],
    [2.0],
    [3.0]
]
weights = [1.0]
threshold = 0.7

अपेक्षित आउटपुट:
expected = [0, 0, 1]
इनपुट:
double bias = -2.0;
std::vector<std::vector<double>> samples = {
    {1.0},
    {2.0},
    {3.0}
};
std::vector<double> weights = {1.0};
double threshold = 0.7;

अपेक्षित आउटपुट:
std::vector<long long> expected = {0, 0, 1};
इनपुट:
double bias = -2.0;
double[][] samples = new double[][] {
    new double[] {1.0},
    new double[] {2.0},
    new double[] {3.0}
};
double[] weights = new double[] {1.0};
double threshold = 0.7;

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

व्याख्या

The probabilities are σ(-1) ≈ 0.269, σ(0) = 0.5 and σ(1) ≈ 0.731. Only the last one reaches the 0.7 threshold, so the result is [0, 0, 1].

संदर्भ

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

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

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

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