{"id":4777,"date":"2025-11-20T19:35:11","date_gmt":"2025-11-20T19:35:11","guid":{"rendered":"https:\/\/172-234-197-23.ip.linodeusercontent.com\/?p=4777"},"modified":"2025-11-20T19:35:11","modified_gmt":"2025-11-20T19:35:11","slug":"robustness-to-missing-samples-in-rf-classification-ensembles-nan-sanitation-strategies-compared","status":"publish","type":"post","link":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/?p=4777","title":{"rendered":"Robustness to Missing Samples in RF Classification Ensembles: NaN Sanitation Strategies Compared"},"content":{"rendered":"\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-spectrcyde wp-block-embed-spectrcyde\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"GtWtUksLC9\"><a href=\"https:\/\/172-234-197-23.ip.linodeusercontent.com\/?page_id=4773\">Robustness to Missing Samples in RF Classification Ensembles: NaN Sanitation Strategies Compared<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; visibility: hidden;\" title=\"&#8220;Robustness to Missing Samples in RF Classification Ensembles: NaN Sanitation Strategies Compared&#8221; &#8212; Spectrcyde\" src=\"https:\/\/172-234-197-23.ip.linodeusercontent.com\/?page_id=4773&#038;embed=true#?secret=xdFM9HL6NQ#?secret=GtWtUksLC9\" data-secret=\"GtWtUksLC9\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Explainable <em>and<\/em> Unbreakable RF Ensembles<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Vote Tracing + Missing-Sample Robustness<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Modern RF scenes are messy: bursts of dropouts, weird emitters you\u2019ve never trained on, and models that sometimes disagree for reasons that only show up under pressure. We fixed all three.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Explainability, for real:<\/strong> Every decision is auditable with <strong>exact Shapley (permutation) attributions on by default<\/strong>\u2014no sampling noise, no knobs. You get per-model probabilities, contribution scores, vote timelines, pairwise disagreement, OSR signals, and a paper-trail in <code>signal.metadata<\/code> for every classification.<\/li>\n\n\n\n<li><strong>Open-set that wins the bake-off:<\/strong> Our <strong>Energy + Disagreement<\/strong> OSR beats ODIN\/Mahalanobis\/MOS in RF while adding <strong>zero<\/strong> extra forwards, memory, or train-time fitting. Mahalanobis + EVT support is available for apples-to-apples baselines\u2014fitter + ROC generator included.<\/li>\n\n\n\n<li><strong>Robust to missing samples:<\/strong> When inputs go NaN, <strong>linear interpolation<\/strong> preserves accuracy at low\u2013moderate corruption, <strong>nan_to_num<\/strong> is the latency champ, and mask stats expose burstiness so you can choose policy by regime. This isn\u2019t theory; we wired the sanitation hooks into both temporal and spectral builders and measured error, p50\/p95 latency, PSD KL, and mask statistics across corruption\/SNR.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Why this matters<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ops trust:<\/strong> Exact per-model attributions and vote timelines turn \u201cbecause the net said so\u201d into an audit log your compliance folks can live with.<\/li>\n\n\n\n<li><strong>Field stability:<\/strong> Sensor dropout doesn\u2019t crater accuracy or crash inference; the sanitation path is explicit, measurable, and logged.<\/li>\n\n\n\n<li><strong>No deployment tax:<\/strong> You keep line-rate throughput. OSR and explainability ride the same trace you already collect.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Download the papers<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Vote Tracing (Rev3): [\/mnt\/data\/Vote Tracing Model-Level Explainability for RF Signal Classification Ensembles bgilbert1984 Rev3.pdf](\/mnt\/data\/Vote Tracing Model-Level Explainability for RF Signal Classification Ensembles bgilbert1984 Rev3.pdf)<\/li>\n\n\n\n<li>Missing-Sample Robustness: [\/mnt\/data\/Robustness to Missing Samples in RF Classification Ensembles NaN Sanitation Strategies Compared bgilbert1984.pdf](\/mnt\/data\/Robustness to Missing Samples in RF Classification Ensembles NaN Sanitation Strategies Compared bgilbert1984.pdf)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">One-minute quickstart (your existing repos\/targets)<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code># 1) Vote Tracing: figures + OSR baselines\ncd \/home\/bgilbert\/paper_Explainability_from_Vote_Traces\nmake xai-figs           # vote timeline (correct\/incorrect), Shapley bars, disagreement heatmap\nmake osr-all            # fit Mahalanobis(+EVT) + generate ROCs\nmake pdf                # camera-ready PDF\n\n# 2) Missing-Sample Robustness: full sweep + tables\/figs\ncd \/home\/bgilbert\/paper_NaN_Padding_Interpolation_Robustness\nmake dev-quick          # runs corruption sweep, renders tables, builds PDF\n# SNR-stratified variant:\npython3 scripts\/corruption_robustness.py --snr-bins \"-10,-5,0,5,10,15\" --pad-edges\npython3 scripts\/render_tables_mask_stats.py --global-json data\/robustness_metrics.json \\\n  --snr-json data\/robustness_metrics_snr.json --out tables\/robustness_mask_tables.tex --focal_ratio 0.2\nmake pdf\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">What to show in the blog post (visuals)<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Vote timeline<\/strong> (one correct 64QAM @ +15 dB, one wrong 8PSK\u219216QAM @ 0 dB).<\/li>\n\n\n\n<li><strong>Shapley bar triples<\/strong> for the three hardest cases (negative contributors pop in red).<\/li>\n\n\n\n<li><strong>Disagreement heatmap<\/strong> over 50k samples\u2014instantly reveals diversity vs. clones.<\/li>\n\n\n\n<li><strong>Error vs. corruption<\/strong> and <strong>latency vs. corruption<\/strong>; annotate the \u201cpolicy switch\u201d (\u226420% use <code>interp_lin<\/code> for accuracy, otherwise fall back to <code>nan_to_num<\/code> if you\u2019re latency-bound).<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Where this sells (and why now)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Defense &amp; spectrum regulators:<\/strong> auditability + OSR without extra compute is procurement catnip.<\/li>\n\n\n\n<li><strong>Industrial wireless &amp; telecom ops:<\/strong> drop-tolerant inference under maintenance windows or flaky links.<\/li>\n\n\n\n<li><strong>Vendors:<\/strong> license the explainability\/OSR SDK and the sanitation hooks as a <strong>compliance + reliability add-on<\/strong> to existing AMC stacks.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Repository: <a href=\"https:\/\/github.com\/bgilbert1984\/Robustness-to-Missing-Samples-in-RF-Classification-Ensembles-NaN-Sanitation-Strategies-Compared\/tree\/main\">bgilbert1984\/Robustness-to-Missing-Samples-in-RF-Classification-Ensembles-NaN-Sanitation-Strategies-Compared: We quantify the impact of input sanitation strategies\u2014nan_to_num, zero-padding, and linear interpolation\u2014on classification error and latency under controlled NaN corruption of IQ streams. We integrate sanitation hooks in temporal and spectral feature builders and systematically evaluate robustness across corruption ratios.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Explainable and Unbreakable RF Ensembles Vote Tracing + Missing-Sample Robustness Modern RF scenes are messy: bursts of dropouts, weird emitters you\u2019ve never trained on, and models that sometimes disagree for reasons that only show up under pressure. We fixed all three. Why this matters Download the papers One-minute quickstart (your existing repos\/targets) What to show&hellip;&nbsp;<\/p>\n","protected":false},"author":2,"featured_media":3380,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[10,11],"tags":[],"class_list":["post-4777","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-signal-science","category-signal_scythe"],"_links":{"self":[{"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/4777","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4777"}],"version-history":[{"count":0,"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/4777\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=\/wp\/v2\/media\/3380"}],"wp:attachment":[{"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4777"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4777"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/neurosphere-2.tail52f848.ts.net\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4777"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}