ML.NET : CODE EXECUTION PATH
🎨 Visual Journey
The Student's Path Through the System
┌────────────┐
│ INPUT │
│ Request │
│ ┌────────┐ │
│ │ 95 │ │
│ │ 90 │ │
│ │ 92 │ │
│ └────────┘ │
└────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────┐
│ STUDENT OBJECT CREATION │
│ │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ StudentData │ │
│ │ ┌──────────────────────────────────────────────────┐ │ │
│ │ │ Attendance: 95 │ │ │
│ │ │ InternalMarks: 90 │ │ │
│ │ │ AssignmentMarks: 92 │ │ │
│ │ │ Result: null (to be predicted) │ │ │
│ │ └──────────────────────────────────────────────────┘ │ │
│ └────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────┐
│ ML PIPELINE PROCESSING │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ STEP 1: Copy Column │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ Result → Label (copy for ML processing) │ │ │
│ │ │ Label = null (will be predicted) │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ STEP 2: Feature Concatenation │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ Features = [95, 90, 92] │ │ │
│ │ │ │ │ │ │ │ │
│ │ │ └─────┼─────┘ │ │ │
│ │ │ ▼ │ │ │
│ │ │ ┌────────────┐ │ │ │
│ │ │ │ Feature │ │ │ │
│ │ │ │ Vector │ │ │ │
│ │ │ │ [95,90,92] │ │ │ │
│ │ │ └────────────┘ │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ STEP 3: SDCA Logistic Regression │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ Calculate: │ │ │
│ │ │ Score = (95×0.042)+(90×0.038)+(92×0.035)-5.2│ │ │
│ │ │ Score = 5.43 │ │ │
│ │ │ │ │ │
│ │ │ Probability = 1/(1+e^(-5.43)) │ │ │
│ │ │ Probability = 0.98 │ │ │
│ │ │ │ │ │
│ │ │ Decision: Score > 0 → PASS │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────┐
│ PREDICTION RESULT │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ StudentPrediction │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ Prediction: true ✅ PASS │ │ │
│ │ │ Probability: 0.98 🔥 98% Confident │ │ │
│ │ │ Score: 5.43 📈 Strong Positive │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────┐
│ RESPONSE TO CLIENT │
│ │
│ HTTP 200 OK │
│ { │
│ "prediction": true, │
│ "probability": 0.98, │
│ "score": 5.43 │
│ } │
└──────────────────────────────────────────────────────────────────────┘
┌────────────┐
│ INPUT │
│ Request │
│ ┌────────┐ │
│ │ 95 │ │
│ │ 90 │ │
│ │ 92 │ │
│ └────────┘ │
└────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────┐
│ STUDENT OBJECT CREATION │
│ │
│ ┌────────────────────────────────────────────────────────┐ │
│ │ StudentData │ │
│ │ ┌──────────────────────────────────────────────────┐ │ │
│ │ │ Attendance: 95 │ │ │
│ │ │ InternalMarks: 90 │ │ │
│ │ │ AssignmentMarks: 92 │ │ │
│ │ │ Result: null (to be predicted) │ │ │
│ │ └──────────────────────────────────────────────────┘ │ │
│ └────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────┐
│ ML PIPELINE PROCESSING │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ STEP 1: Copy Column │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ Result → Label (copy for ML processing) │ │ │
│ │ │ Label = null (will be predicted) │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ STEP 2: Feature Concatenation │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ Features = [95, 90, 92] │ │ │
│ │ │ │ │ │ │ │ │
│ │ │ └─────┼─────┘ │ │ │
│ │ │ ▼ │ │ │
│ │ │ ┌────────────┐ │ │ │
│ │ │ │ Feature │ │ │ │
│ │ │ │ Vector │ │ │ │
│ │ │ │ [95,90,92] │ │ │ │
│ │ │ └────────────┘ │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ STEP 3: SDCA Logistic Regression │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ Calculate: │ │ │
│ │ │ Score = (95×0.042)+(90×0.038)+(92×0.035)-5.2│ │ │
│ │ │ Score = 5.43 │ │ │
│ │ │ │ │ │
│ │ │ Probability = 1/(1+e^(-5.43)) │ │ │
│ │ │ Probability = 0.98 │ │ │
│ │ │ │ │ │
│ │ │ Decision: Score > 0 → PASS │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────┐
│ PREDICTION RESULT │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ StudentPrediction │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ Prediction: true ✅ PASS │ │ │
│ │ │ Probability: 0.98 🔥 98% Confident │ │ │
│ │ │ Score: 5.43 📈 Strong Positive │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ └──────────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────────┐
│ RESPONSE TO CLIENT │
│ │
│ HTTP 200 OK │
│ { │
│ "prediction": true, │
│ "probability": 0.98, │
│ "score": 5.43 │
│ } │
└──────────────────────────────────────────────────────────────────────┘🎯 Decision Visualization
Where the Student Falls on the Decision Map
┌─────────────────────────────────────────────────────────────────────┐
│ DECISION SPACE │
│ │
│ Assignment Marks │
│ ▲ │
│ │ │
│ 100 ┼──────────────────────────────────────────────────────────┐ │
│ │ FAIL ZONE │ PASS ZONE │ │
│ 80 │ │ ● (Your Student) │ │
│ │ │ Attendance: 95 │ │
│ 60 │ │ Internal: 90 │ │
│ │ │ Assignment: 92 │ │
│ 40 │ │ │ │
│ │ │ │ │
│ 20 │ │ │ │
│ │ │ │ │
│ 0 └─────────────────────────────────────────────────────────┘ │
│ 0 20 40 60 80 100 │
│ │
│ Internal Marks → │
│ │
│ ● Your student is DEEP in the PASS ZONE │
│ • Far from the decision boundary │
│ • High confidence prediction (98%) │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐ │ DECISION SPACE │ │ │ │ Assignment Marks │ │ ▲ │ │ │ │ │ 100 ┼──────────────────────────────────────────────────────────┐ │ │ │ FAIL ZONE │ PASS ZONE │ │ │ 80 │ │ ● (Your Student) │ │ │ │ │ Attendance: 95 │ │ │ 60 │ │ Internal: 90 │ │ │ │ │ Assignment: 92 │ │ │ 40 │ │ │ │ │ │ │ │ │ │ 20 │ │ │ │ │ │ │ │ │ │ 0 └─────────────────────────────────────────────────────────┘ │ │ 0 20 40 60 80 100 │ │ │ │ Internal Marks → │ │ │ │ ● Your student is DEEP in the PASS ZONE │ │ • Far from the decision boundary │ │ • High confidence prediction (98%) │ └─────────────────────────────────────────────────────────────────────┘
📊 Comparison with Other Test Cases
┌────────────────────────────────────────────────────────────────────────────┐
│ MULTIPLE TEST CASES COMPARISON │
│ │
│ Test Case 1: EXCELLENT STUDENT │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Input: [95, 90, 92] │ │
│ │ Score: 5.43 → Position: ▲▲▲▲▲▲▲▲▲▲ │ │
│ │ Prob: 0.98 → Confidence: ██████████ 98% │ │
│ │ Result: PASS ✅ → Decision: CLEAR PASS │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ Test Case 2: GOOD STUDENT │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Input: [85, 80, 82] │ │
│ │ Score: 3.21 → Position: ▲▲▲▲▲▲▲▲ │ │
│ │ Prob: 0.89 → Confidence: █████████░ 89% │ │
│ │ Result: PASS ✅ → Decision: STRONG PASS │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ Test Case 3: BORDERLINE STUDENT │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Input: [60, 55, 58] │ │
│ │ Score: 0.85 → Position: ████░ │ │
│ │ Prob: 0.65 → Confidence: ██████░░░░ 65% │ │
│ │ Result: PASS? ⚠️ → Decision: UNCERTAIN │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ Test Case 4: POOR STUDENT │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Input: [30, 25, 20] │ │
│ │ Score: -4.12 → Position: ▼▼▼▼▼▼▼▼▼▼ │ │
│ │ Prob: 0.03 → Confidence: ██████████ 97% (Fail) │ │
│ │ Result: FAIL ❌ → Decision: CLEAR FAIL │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ Decision Boundary: Score = 0, Probability = 0.5 │
└────────────────────────────────────────────────────────────────────────────┘
┌────────────────────────────────────────────────────────────────────────────┐ │ MULTIPLE TEST CASES COMPARISON │ │ │ │ Test Case 1: EXCELLENT STUDENT │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ Input: [95, 90, 92] │ │ │ │ Score: 5.43 → Position: ▲▲▲▲▲▲▲▲▲▲ │ │ │ │ Prob: 0.98 → Confidence: ██████████ 98% │ │ │ │ Result: PASS ✅ → Decision: CLEAR PASS │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ │ Test Case 2: GOOD STUDENT │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ Input: [85, 80, 82] │ │ │ │ Score: 3.21 → Position: ▲▲▲▲▲▲▲▲ │ │ │ │ Prob: 0.89 → Confidence: █████████░ 89% │ │ │ │ Result: PASS ✅ → Decision: STRONG PASS │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ │ Test Case 3: BORDERLINE STUDENT │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ Input: [60, 55, 58] │ │ │ │ Score: 0.85 → Position: ████░ │ │ │ │ Prob: 0.65 → Confidence: ██████░░░░ 65% │ │ │ │ Result: PASS? ⚠️ → Decision: UNCERTAIN │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ │ Test Case 4: POOR STUDENT │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ Input: [30, 25, 20] │ │ │ │ Score: -4.12 → Position: ▼▼▼▼▼▼▼▼▼▼ │ │ │ │ Prob: 0.03 → Confidence: ██████████ 97% (Fail) │ │ │ │ Result: FAIL ❌ → Decision: CLEAR FAIL │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ │ Decision Boundary: Score = 0, Probability = 0.5 │ └────────────────────────────────────────────────────────────────────────────┘
🔍 Code Execution Path
// 1. USER INPUT var request = new StudentRequest { Attendance = 95, InternalMarks = 90, AssignmentMarks = 92 }; // 2. CONTROLLER [HttpPost] public IActionResult Predict(StudentRequest request) { // Request received with values: 95, 90, 92 var result = _service.Predict(request); // Calls service to process return Ok(result); } // 3. SERVICE public StudentPrediction Predict(StudentRequest request) { // Convert to ML model format var student = new StudentData { Attendance = request.Attendance, // 95 InternalMarks = request.InternalMarks, // 90 AssignmentMarks = request.AssignmentMarks // 92 // Result is not set - will be predicted }; // Send through prediction engine return _predictionEngine.Predict(student); // Engine processes through ML pipeline } // 4. ML PIPELINE (Internal Processing) public StudentPrediction Predict(StudentData input) { // STEP 1: Feature Extraction float[] features = new float[] { input.Attendance, // 95 input.InternalMarks, // 90 input.AssignmentMarks // 92 }; // STEP 2: Score Calculation float score = 0; for (int i = 0; i < features.Length; i++) { score += features[i] * weights[i]; // 95*0.042 + 90*0.038 + 92*0.035 } score += bias; // 10.63 - 5.2 = 5.43 // STEP 3: Probability (Sigmoid) float probability = 1 / (1 + Math.Exp(-score)); // 1 / (1 + e^-5.43) = 0.98 // STEP 4: Decision bool prediction = probability >= 0.5; // 0.98 >= 0.5 = true return new StudentPrediction { Prediction = prediction, // true (PASS) Probability = probability, // 0.98 Score = score // 5.43 }; } // 5. RESPONSE var response = new StudentPrediction { Prediction = true, // "Will pass" Probability = 0.98f, // 98% confident Score = 5.43f // Strongly positive }; // Returns to user
📈 Summary:
USER REQUEST (95, 90, 92)
│
▼
CONTROLLER (Validation)
│
▼
SERVICE (Convert to StudentData)
│
▼
PREDICTION ENGINE
│
├─── CopyColumns (Result → Label)
│
├─── Concatenate [95, 90, 92]
│
├─── SDCA Logistic Regression
│ ├── Calculate Score = 5.43
│ ├── Calculate Probability = 0.98
│ └── Decision: 0.98 >= 0.5 → PASS
│
▼
RESULT
{
prediction: true, // PASS
probability: 0.98, // 98% confident
score: 5.43 // Strong positive
}
│
▼
HTTP RESPONSE (200 OK)Notes:
Input: Three numbers (95, 90, 92)
Processing: Feature vector → Score → Probability → Decision
Output: PASS with 98% confidence
Why High Confidence: All values are extremely high, far from the fail zone
Decision Path: Each step transforms the data until a final prediction is made
The model predicted PASS because:
✅ All values are above 90
✅ Far from failing threshold
✅ Matches "excellent student" pattern from training data
✅ High confidence (98%)
Comments
Post a Comment