import React from 'react'; import { formatNumber, getProgressBarStyle } from '../utils/formatters'; const MlModelCard = ({ riskAssessment, modelMeta, onRefresh, onShowHelp, loading }) => { const mlScore = riskAssessment?.evidence?.onnxScore; const heuristicScore = riskAssessment?.evidence?.heuristicRisk; // Calculate model confidence based on agreement between ML and heuristic scores const calculateConfidence = () => { if (mlScore === null || mlScore === undefined || heuristicScore === null || heuristicScore === undefined) { return 0; } const difference = Math.abs(mlScore - heuristicScore); if (difference < 0.2) return 0.9; // High confidence if scores agree if (difference < 0.4) return 0.6; // Medium confidence return 0.3; // Low confidence }; const confidence = calculateConfidence(); // Determine model status const getModelStatus = () => { if (!modelMeta) return 'Loading...'; if (modelMeta.modelPresent && modelMeta.oneClassSvmPresent) { return 'Level 2 Active (Isolation Forest + One-Class SVM)'; } else if (modelMeta.modelPresent) { return 'Level 2 Partial (Isolation Forest only)'; } else { return 'Level 1 Only (Heuristics)'; } }; return (