{"id":3511,"date":"2023-08-31T11:12:58","date_gmt":"2023-08-31T11:12:58","guid":{"rendered":"https:\/\/neuraldesigner.com\/learning\/orbit-class\/"},"modified":"2026-08-06T15:45:16","modified_gmt":"2026-08-06T13:45:16","slug":"orbit-class","status":"publish","type":"learning","link":"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/","title":{"rendered":"Classify asteroid orbits using machine learning"},"content":{"rendered":"<style>\n.nds{width:100vw;margin-left:calc(50% - 50vw);padding:22px 24px 14px;background:#eee;color:#1b2635;font-family:\"Outfit\",\"Roboto\",Arial,sans-serif}\n.nds *{box-sizing:border-box}.nds-wrap{width:min(100%,1200px);margin:0 auto}.nds a{text-decoration:none;color:#2d799f}\n.nds-executive{margin:0 0 34px;padding:32px;border-radius:20px;background:linear-gradient(135deg,#12354b,#245e80);color:#fff}.nds-executive h2{margin:0 0 12px;color:#fff;font-size:30px}.nds-executive p{font-size:18px;line-height:1.55}\n.nds-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:22px}.nds-kpi{padding:18px;border:1px solid rgba(255,255,255,.18);border-radius:14px;background:rgba(255,255,255,.1)}.nds-kpi strong{display:block;font-size:25px}.nds-kpi span{font-size:13px}\n.nds-actions,.nds-audience,.nds-downloads{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:22px 0}.nds-actions a,.nds-downloads a{padding:12px 20px;border-radius:24px;background:#245e80;color:#fff;font-weight:700}.nds-executive .nds-actions a{background:#fff;color:#12354b}\n.nds-toc{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0 0 42px;padding:0;list-style:none}.nds-toc a,.nds-audience span{display:block;padding:9px 14px;border-radius:20px;background:#e9f2f8;color:#12354b;font-weight:600}\n.nds-card{margin:0 0 54px;scroll-margin-top:90px}.nds-card h2{margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid #dbe5ec;color:#001233;font-size:24px}.nds-card p,.nds-card li{font-size:16.5px;line-height:1.6}.nds-card img{display:block;width:auto;max-width:min(640px,100%);height:auto;margin:24px auto;border-radius:12px}.nds-card img.nds-architecture{width:min(1000px,100%);max-width:100%}\n.nds-value-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0}.nds-value{padding:20px;border:1px solid #dce8ef;border-radius:14px;background:#f8fbfd}.nds-note{margin:20px 0;padding:18px 20px;border-left:4px solid #56a1c8;border-radius:0 12px 12px 0;background:#f6fafc}.nds-note--warning{border-left-color:#d79a29;background:#fff9ed}\n.nds-table-scroll{max-width:100%;overflow-x:auto}.nds-card table{width:auto;max-width:100%;margin:24px auto;border-collapse:collapse;background:#fff}.nds-card th,.nds-card td{padding:11px 16px;border-bottom:1px solid #e2e9ee}.nds-card thead th{background:#12354b!important;color:#fff!important}.nds-card tbody th{background:#eaf2f6!important;color:#12354b!important;text-align:left}.nds-card tbody tr:nth-child(even) th{background:#f4f8fa!important}.nds-card tbody td{color:#33424f!important}\n.nds-figure-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.nds-figure-grid figure,.nds-architecture-figure{margin:0;padding:16px;border:1px solid #dce8ef;border-radius:15px;background:#f8fbfd}.nds-figure-grid img{width:100%;max-width:100%;margin:0 auto 12px}.nds-card figcaption{color:#405361;font-size:14px;line-height:1.45}\n@media(max-width:820px){.nds-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.nds-value-grid{grid-template-columns:1fr}}\n@media(max-width:620px){.nds{padding:12px 14px}.nds-kpis,.nds-figure-grid{grid-template-columns:1fr}.nds-executive{padding:24px 20px}.nds-card table{font-size:13px}.nds-card th,.nds-card td{padding:9px 8px}}\n<\/style>\n<style>\n.nds code{padding:2px 5px;border-radius:4px;background:#e8eef2;color:#12354b}\n.nds-card h3{margin:27px 0 12px;color:#12354b;font-size:20px}\n.nds-card pre{margin:22px auto;padding:20px 22px;max-width:760px;overflow-x:auto;border:1px solid #dce5eb;border-radius:14px;background:#f7fafc!important;color:#173246!important;font:13px\/1.55 Consolas,Menlo,monospace}\n.nds-card pre code{padding:0;background:transparent;color:inherit}\n.nds-centered-figure{width:min(760px,100%);margin:24px auto;padding:16px;border:1px solid #dce8ef;border-radius:15px;background:#f8fbfd}\n.nds-centered-figure img{width:100%;max-width:100%;margin:0 auto 12px}\n.nds-flow{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:24px 0}\n.nds-flow div{position:relative;display:flex;min-height:94px;align-items:center;justify-content:center;padding:15px 10px;border-radius:13px;background:#12354b;color:#fff;text-align:center;font-weight:700}\n.nds-flow div:not(:last-child):after{content:\"\u2192\";position:absolute;right:-15px;top:50%;z-index:2;transform:translateY(-50%);color:#56a1c8;font-size:21px}\n.nds-metrics td:nth-child(2),.nds-confusion td{text-align:right;font-variant-numeric:tabular-nums}\n.nds-deployment-grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(250px,1fr);gap:22px;align-items:center}\n.nds-result{padding:26px;border:1px solid #cfe1eb;border-radius:16px;background:#f7fbfd;text-align:center}\n.nds-result span,.nds-result strong{display:block}.nds-result strong{margin:8px 0;color:#12354b;font-size:34px}\n@media(max-width:1000px){.nds-flow{grid-template-columns:repeat(3,1fr)}.nds-flow div:after{display:none}}\n@media(max-width:760px){.nds-flow,.nds-deployment-grid{grid-template-columns:1fr}.nds-flow div:after{display:none}}<\/p>\n<p>.nds-calculator{margin:30px 0;padding:24px;border:1px solid #cfe1eb;border-radius:18px;background:#f7fbfd}\n.nds-calculator h3{margin-top:0}.nds-calculator-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}\n.nds-calculator label{display:flex;flex-direction:column;gap:6px;color:#12354b;font-size:13px;font-weight:700}\n.nds-calculator input,.nds-calculator select{width:100%;min-height:46px;padding:10px 12px;border:1px solid #b9cfdb;border-radius:9px;background:#fff;color:#173246;font:inherit}\n.nds-calculator input:focus,.nds-calculator select:focus{outline:3px solid rgba(86,161,200,.22);border-color:#2d799f}\n.nds-calculator .is-invalid{border-color:#c94747;background:#fff8f8}\n.nds-calculator small{color:#617482;font-size:11px;font-weight:400}\n.nds-calculator-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:20px 0}\n.nds-calculator button{padding:11px 19px;border:0;border-radius:24px;background:#245e80;color:#fff;font:inherit;font-weight:700;cursor:pointer}\n.nds-calculator button[type=reset]{background:#e1edf3;color:#12354b}\n.nds-calculator-error{min-height:24px;margin:0 0 10px;color:#a12828;text-align:center;font-weight:600}\n.nds-score-summary{margin:10px 0 18px;text-align:center}.nds-score-summary strong{display:block;color:#12354b;font-size:25px}\n.nds-score-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}\n.nds-score{padding:13px;border:1px solid #d6e4eb;border-radius:12px;background:#fff}\n.nds-score-head{display:flex;justify-content:space-between;gap:8px;margin-bottom:8px;color:#173246}.nds-score-head strong{font-size:14px}.nds-score-head span{font-variant-numeric:tabular-nums}\n.nds-score-track{height:8px;overflow:hidden;border-radius:8px;background:#e8eff3}.nds-score-fill{height:100%;background:#56a1c8}\n.nds-score.is-winner{border-color:#2d799f;box-shadow:0 0 0 2px rgba(45,121,159,.12)}.nds-score.is-winner .nds-score-fill{background:#245e80}\n@media(max-width:820px){.nds-calculator-grid,.nds-score-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}\n@media(max-width:560px){.nds-calculator-grid,.nds-score-grid{grid-template-columns:1fr}}\n<\/style>\n<div class=\"nds\" data-science-profile=\"physical-chemical\">\n<div class=\"nds-wrap\">\n<section class=\"nds-executive\">\n<h2>Check near-Earth asteroid orbit-group labels from orbital elements<\/h2>\n<p>This reproducible catalogue benchmark maps eleven orbital and photometric fields to the Amor, Apollo or Aten group. The fixed 11\u20133 softmax model classifies 317 of 344 held-out records correctly. Its 92.2% accuracy must be read alongside 67.9% balanced accuracy and 22.2% Aten recall.<\/p>\n<div class=\"nds-kpis\">\n<div class=\"nds-kpi\"><strong>92.2%<\/strong><span>held-out accuracy<\/span><\/div>\n<div class=\"nds-kpi\"><strong>0.715<\/strong><span>macro-F1<\/span><\/div>\n<div class=\"nds-kpi\"><strong>22.2%<\/strong><span>Aten recall<\/span><\/div>\n<div class=\"nds-kpi\"><strong>344<\/strong><span>held-out test records<\/span><\/div>\n<\/div>\n<div class=\"nds-actions\"><a href=\"#6-validation\">Review class-level results<\/a><a href=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2026\/08\/orbit_class.csv\">Download the data<\/a><\/div>\n<\/section>\n<ul class=\"nds-toc\">\n<li><a href=\"#1-scientific-objective\">Scientific objective<\/a><\/li>\n<li><a href=\"#2-data-provenance\">Data and provenance<\/a><\/li>\n<li><a href=\"#3-model\">Model<\/a><\/li>\n<li><a href=\"#4-training\">Training<\/a><\/li>\n<li><a href=\"#5-selection\">Selection<\/a><\/li>\n<li><a href=\"#6-validation\">Validation<\/a><\/li>\n<li><a href=\"#7-inference\">Inference<\/a><\/li>\n<li><a href=\"#8-validity\">Validity<\/a><\/li>\n<\/ul>\n<section id=\"1-scientific-objective\" class=\"nds-card\">\n<h2>1. Scientific objective<\/h2>\n<p>The objective is to reproduce an existing near-Earth-object orbit-group label from catalogue fields. The learned classifier is useful as a data-pipeline consistency check and as a compact multiclass benchmark. Because Amor, Apollo and Aten classes are defined by explicit orbital-element boundaries, the network does not replace the authoritative rule-based classification.<\/p>\n<div class=\"nds-value-grid\">\n<div class=\"nds-value\"><strong>Catalogue consistency<\/strong><\/p>\n<p>Flag records whose learned class disagrees with the stored label or with the deterministic orbital-element rule.<\/p>\n<\/div>\n<div class=\"nds-value\"><strong>Pipeline verification<\/strong><\/p>\n<p>Exercise schema validation, feature ordering, multiclass inference and class-level monitoring in a reproducible workflow.<\/p>\n<\/div>\n<div class=\"nds-value\"><strong>Boundary review<\/strong><\/p>\n<p>Identify low-margin cases near group boundaries for inspection instead of treating every softmax score as equally certain.<\/p>\n<\/div>\n<\/div>\n<div class=\"nds-audience\"><span>Planetary defence<\/span><span>NEO catalogue teams<\/span><span>Astronomical data science<\/span><span>Scientific software validation<\/span><\/div>\n<div class=\"nds-note\"><strong>Scope.<\/strong> This example classifies catalogue orbit groups. It does not propagate an orbit, estimate impact probability, determine potentially hazardous asteroid status or replace review of orbital uncertainty and observation quality.<\/div>\n<\/section>\n<section id=\"2-data-provenance\" class=\"nds-card\">\n<h2>2. Data and provenance<\/h2>\n<p>The downloadable <a href=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2026\/08\/orbit_class.csv\"><code>orbit_class.csv<\/code><\/a> contains 1,722 complete, non-duplicated records. The target is strongly imbalanced: 1,477 Apollo records (85.8%), 149 Aten records (8.7%) and 96 Amor records (5.6%).<\/p>\n<p>The field names below are the exact names used by the updated CSV and Python export.<\/p>\n<div class=\"nds-table-scroll\">\n<table>\n<thead>\n<tr>\n<th>CSV field<\/th>\n<th>Meaning<\/th>\n<th>Unit or scale<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th><code>semi_major_axis<\/code><\/th>\n<td>Semimajor axis, <em>a<\/em><\/td>\n<td>AU<\/td>\n<\/tr>\n<tr>\n<th><code>eccentricity<\/code><\/th>\n<td>Orbital eccentricity, <em>e<\/em><\/td>\n<td>dimensionless<\/td>\n<\/tr>\n<tr>\n<th><code>inclination<\/code><\/th>\n<td>Inclination to the reference plane, <em>i<\/em><\/td>\n<td>degrees<\/td>\n<\/tr>\n<tr>\n<th><code>argument_of_perihelion<\/code><\/th>\n<td>Argument of perihelion, <em>\u03c9<\/em><\/td>\n<td>degrees<\/td>\n<\/tr>\n<tr>\n<th><code>longitude_of_ascending_node<\/code><\/th>\n<td>Longitude of the ascending node, <em>\u03a9<\/em><\/td>\n<td>degrees<\/td>\n<\/tr>\n<tr>\n<th><code>mean_anomaly<\/code><\/th>\n<td>Mean anomaly at the catalogue epoch, <em>M<\/em><\/td>\n<td>degrees<\/td>\n<\/tr>\n<tr>\n<th><code>perihelion_distance<\/code><\/th>\n<td>Perihelion distance, <em>q<\/em><\/td>\n<td>AU<\/td>\n<\/tr>\n<tr>\n<th><code>aphelion_distance<\/code><\/th>\n<td>Aphelion distance, <em>Q<\/em><\/td>\n<td>AU<\/td>\n<\/tr>\n<tr>\n<th><code>orbital_period<\/code><\/th>\n<td>Orbital period<\/td>\n<td>Julian years<\/td>\n<\/tr>\n<tr>\n<th><code>absolute_magnitude<\/code><\/th>\n<td>Absolute magnitude, <em>H<\/em><\/td>\n<td>magnitude<\/td>\n<\/tr>\n<tr>\n<th><code>earth_moid<\/code><\/th>\n<td>Minimum orbit-intersection distance with Earth<\/td>\n<td>AU<\/td>\n<\/tr>\n<tr>\n<th><code>orbit_class<\/code><\/th>\n<td>Target group: <code>AMO<\/code>, <code>APO<\/code> or <code>ATE<\/code><\/td>\n<td>categorical<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3>Authoritative class boundaries<\/h3>\n<div class=\"nds-table-scroll\">\n<table>\n<thead>\n<tr>\n<th>Code<\/th>\n<th>Group<\/th>\n<th>JPL orbital-element definition<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th><code>AMO<\/code><\/th>\n<td>Amor<\/td>\n<td><em>a<\/em> &gt; 1.0 AU and 1.017 &lt; <em>q<\/em> &lt; 1.3 AU<\/td>\n<\/tr>\n<tr>\n<th><code>APO<\/code><\/th>\n<td>Apollo<\/td>\n<td><em>a<\/em> &gt; 1.0 AU and <em>q<\/em> &lt; 1.017 AU<\/td>\n<\/tr>\n<tr>\n<th><code>ATE<\/code><\/th>\n<td>Aten<\/td>\n<td><em>a<\/em> &lt; 1.0 AU and <em>Q<\/em> &gt; 0.983 AU<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"nds-table-scroll\">\n<table>\n<thead>\n<tr>\n<th>Subset<\/th>\n<th>Rows<\/th>\n<th>Purpose<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>Training<\/th>\n<td>1,034<\/td>\n<td>Estimate the 36 model parameters<\/td>\n<\/tr>\n<tr>\n<th>Selection<\/th>\n<td>344<\/td>\n<td>Monitor generalization during fixed-architecture training<\/td>\n<\/tr>\n<tr>\n<th>Testing<\/th>\n<td>344<\/td>\n<td>Report final performance once<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"nds-figure-grid\">\n<figure><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2026\/08\/asteroid-orbit-class-distribution-2026.png\" alt=\"Orbit-class distribution dominated by Apollo records\"><figcaption>The Apollo class represents 85.8% of the records. Class-level recall and macro metrics are therefore more informative than accuracy alone.<\/figcaption><\/figure>\n<figure><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2026\/08\/asteroid-orbit-class-correlations-2026.png\" alt=\"Pearson associations between orbital inputs and an encoded orbit-class target\"><figcaption>The chart uses a numerical encoding of a nominal three-class target. Its coefficients depend on that coding and should not be interpreted as physical importance or causality.<\/figcaption><\/figure>\n<\/div>\n<div class=\"nds-note nds-note--provenance\"><strong>Provenance.<\/strong> The working table is based on the <a href=\"https:\/\/www.kaggle.com\/brsdincer\/orbitclassification\">Orbit Classification For Prediction<\/a> data set. The article uses NASA\/JPL definitions for the scientific meaning of the three orbit groups. The downloaded table does not provide object identifiers, orbit epochs, covariance information or observation provenance, which limits independent catalogue verification.<\/div>\n<\/section>\n<section id=\"3-model\" class=\"nds-card\">\n<h2>3. Model<\/h2>\n<p>All eleven numeric inputs use mean-and-standard-deviation scaling. The fixed model connects them directly to three softmax outputs ordered as <code>AMO<\/code>, <code>APO<\/code> and <code>ATE<\/code>. It has no hidden layer and contains 36 trainable parameters, so it is a multiclass logistic model expressed in Neural Designer\u2019s neural-network framework.<\/p>\n<p>This is both the base and final architecture. No neuron-selection task is used in this example.<\/p>\n<div class=\"nds-note\"><strong>Output contract.<\/strong> The largest softmax score determines the predicted group. These scores have not been independently calibrated as probabilities; low-margin or rule-disagreeing records should be reviewed.<\/div>\n<figure class=\"nds-architecture-figure\" data-model-stage=\"initial\"><img decoding=\"async\" class=\"nds-architecture\" src=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2026\/08\/asteroid-orbit-network-architecture-2026.png\" alt=\"Fixed asteroid orbit classifier with eleven scaled inputs and three softmax class outputs\"><figcaption>Fixed 11\u20133 softmax architecture used as both the base and final model; there is no hidden layer or neuron-selection stage.<\/figcaption><\/figure>\n<\/section>\n<section id=\"4-training\" class=\"nds-card\">\n<h2>4. Training strategy<\/h2>\n<p>The model minimizes multiclass cross-entropy with the quasi-Newton method and no explicit regularization. Training stopped at the configured loss goal after 87 completed epochs (88 stored iterations): cross-entropy decreased from 1.1373 to 0.0008 on training data, while selection cross-entropy changed from 0.6998 to 0.1920.<\/p>\n<p>The selection error reached its lowest stored value, 0.0792, at epoch 59 and then increased while training error continued to fall. This divergence is evidence of overfitting after that point; production work should restore the best-selection checkpoint or apply early stopping.<\/p>\n<figure class=\"nds-centered-figure\"><img decoding=\"async\" src=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2026\/08\/asteroid-orbit-training-history-2026.png\" alt=\"Training and selection cross-entropy histories over 87 epochs\"><figcaption>The fixed architecture fits the training subset almost perfectly, but its selection error rises after epoch 59.<\/figcaption><\/figure>\n<\/section>\n<section id=\"5-selection\" class=\"nds-card\">\n<h2>5. Model selection and baseline<\/h2>\n<p><strong>No neuron selection was performed, and no architecture selection was performed.<\/strong> The direct 11\u20133 softmax architecture was fixed before training and retained as the final model. The selection subset was used only to monitor generalization.<\/p>\n<h3>Baselines that matter for this scientific task<\/h3>\n<div class=\"nds-table-scroll\">\n<table>\n<thead>\n<tr>\n<th>Method<\/th>\n<th>Testing accuracy<\/th>\n<th>Balanced accuracy<\/th>\n<th>Interpretation<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>Always predict Apollo<\/th>\n<td>87.2%<\/td>\n<td>33.3%<\/td>\n<td>High apparent accuracy caused by class imbalance<\/td>\n<\/tr>\n<tr>\n<th>Fixed neural model<\/th>\n<td>92.2%<\/td>\n<td>67.9%<\/td>\n<td>Improves aggregate classification but misses most Aten records<\/td>\n<\/tr>\n<tr>\n<th>NASA\/JPL boundary rules<\/th>\n<td>100.0%<\/td>\n<td>100.0%<\/td>\n<td>Expected benchmark because the target is defined from orbital elements<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"nds-note\"><strong>Why the rule baseline is essential.<\/strong> Applying the published Amor, Apollo and Aten boundaries reproduces all 344 testing labels. Across the full CSV it reproduces 1,721 of 1,722 labels; the sole exception has <em>q<\/em> exactly 1.017 AU, a boundary value excluded by the strict inequalities above.<\/div>\n<\/section>\n<section id=\"6-validation\" class=\"nds-card\">\n<h2>6. Scientific validation<\/h2>\n<p>The held-out subset contains 17 Amor, 300 Apollo and 27 Aten records. The model correctly classifies 317 of 344 records, but the confusion matrix shows that 21 of the 27 Aten records are assigned to Apollo.<\/p>\n<div class=\"nds-table-scroll\">\n<table class=\"nds-metrics\">\n<thead>\n<tr>\n<th>Metric<\/th>\n<th>Value<\/th>\n<th>Interpretation<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>Accuracy<\/th>\n<td>92.15%<\/td>\n<td>317 correct classifications from 344 testing records<\/td>\n<\/tr>\n<tr>\n<th>Macro precision<\/th>\n<td>91.63%<\/td>\n<td>Unweighted mean precision across the three groups<\/td>\n<\/tr>\n<tr>\n<th>Balanced accuracy \/ macro recall<\/th>\n<td>67.86%<\/td>\n<td>Unweighted mean recall; exposes weak Aten sensitivity<\/td>\n<\/tr>\n<tr>\n<th>Macro-F1<\/th>\n<td>71.46%<\/td>\n<td>Unweighted harmonic-mean performance across groups<\/td>\n<\/tr>\n<tr>\n<th>Weighted-F1<\/th>\n<td>90.34%<\/td>\n<td>F1 weighted by the imbalanced testing prevalence<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3>Confusion matrix<\/h3>\n<div class=\"nds-table-scroll\">\n<table class=\"nds-confusion\">\n<thead>\n<tr>\n<th>Actual \/ predicted<\/th>\n<th>Amor<\/th>\n<th>Apollo<\/th>\n<th>Aten<\/th>\n<th>Total<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>Amor<\/th>\n<td>14<\/td>\n<td>3<\/td>\n<td>0<\/td>\n<td>17<\/td>\n<\/tr>\n<tr>\n<th>Apollo<\/th>\n<td>3<\/td>\n<td>297<\/td>\n<td>0<\/td>\n<td>300<\/td>\n<\/tr>\n<tr>\n<th>Aten<\/th>\n<td>0<\/td>\n<td>21<\/td>\n<td>6<\/td>\n<td>27<\/td>\n<\/tr>\n<tr>\n<th>Total<\/th>\n<td>17<\/td>\n<td>321<\/td>\n<td>6<\/td>\n<td>344<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h3>Per-class performance<\/h3>\n<div class=\"nds-table-scroll\">\n<table>\n<thead>\n<tr>\n<th>Group<\/th>\n<th>Testing rows<\/th>\n<th>Precision<\/th>\n<th>Recall<\/th>\n<th>F1<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>Amor<\/th>\n<td>17<\/td>\n<td>82.35%<\/td>\n<td>82.35%<\/td>\n<td>82.35%<\/td>\n<\/tr>\n<tr>\n<th>Apollo<\/th>\n<td>300<\/td>\n<td>92.52%<\/td>\n<td>99.00%<\/td>\n<td>95.65%<\/td>\n<\/tr>\n<tr>\n<th>Aten<\/th>\n<td>27<\/td>\n<td>100.00%<\/td>\n<td>22.22%<\/td>\n<td>36.36%<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"nds-figure-grid\"><\/div>\n<div class=\"nds-note\"><strong>Scientific interpretation.<\/strong> The high overall accuracy is driven by the dominant Apollo class. For catalogue quality control, the 22.2% Aten recall is the limiting result. The deterministic boundary classifier is both simpler and more accurate for assigning these defined orbit groups.<\/div>\n<\/section>\n<section id=\"7-inference\" class=\"nds-card\">\n<h2>7. Inference and reproducibility<\/h2>\n<p>A professional workflow should validate the schema and units, calculate the deterministic NASA\/JPL group, optionally run the learned classifier as an independent consistency check, and route disagreements or low-score-margin cases to review. Hazard assessment is a separate workflow that requires more than an orbit-group label.<\/p>\n<div class=\"nds-flow\">\n<div>Orbit solution<\/div>\n<div>Schema and unit checks<\/div>\n<div>JPL boundary rule<\/div>\n<div>Model consistency score<\/div>\n<div>Disagreement review<\/div>\n<div>Catalogue record<\/div>\n<\/div>\n<h3>Representative catalogue-consistency case<\/h3>\n<p>This operating point is inside the training ranges and is stored in the Neural Designer project. Its <em>a<\/em> and <em>q<\/em> values satisfy the Apollo definition.<\/p>\n<div class=\"nds-deployment-grid\">\n<div class=\"nds-table-scroll\">\n<table>\n<thead>\n<tr>\n<th>Input<\/th>\n<th>Value<\/th>\n<th>Input<\/th>\n<th>Value<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<th>Semimajor axis<\/th>\n<td>1.52 AU<\/td>\n<th>Eccentricity<\/th>\n<td>0.34<\/td>\n<\/tr>\n<tr>\n<th>Inclination<\/th>\n<td>14.6\u00b0<\/td>\n<th>Argument of perihelion<\/th>\n<td>197\u00b0<\/td>\n<\/tr>\n<tr>\n<th>Ascending-node longitude<\/th>\n<td>200\u00b0<\/td>\n<th>Mean anomaly<\/th>\n<td>118\u00b0<\/td>\n<\/tr>\n<tr>\n<th>Perihelion distance<\/th>\n<td>1.00 AU<\/td>\n<th>Aphelion distance<\/th>\n<td>2.05 AU<\/td>\n<\/tr>\n<tr>\n<th>Orbital period<\/th>\n<td>1.88 years<\/td>\n<th>Absolute magnitude<\/th>\n<td>21.4<\/td>\n<\/tr>\n<tr>\n<th>Earth MOID<\/th>\n<td>0.016 AU<\/td>\n<th>Rule-based group<\/th>\n<td>Apollo<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div class=\"nds-result\"><span>Model result<\/span><strong>APO<\/strong><\/p>\n<p>Softmax scores: AMO 4.27%, APO 95.73%, Aten &lt;0.01%. The model and boundary rule agree.<\/p>\n<\/div>\n<\/div>\n<div class=\"nds-note nds-note--warning\"><strong>Do not infer hazard from this result.<\/strong> A small Earth MOID or an Apollo label alone is not an impact probability. Potentially hazardous asteroid screening additionally uses an absolute-magnitude threshold, and operational risk assessment requires an orbit solution with uncertainty and dedicated impact monitoring.<\/div>\n<div id=\"nds-orbit-calculator\" class=\"nds-calculator\">\n<h3>Try the exported orbit classifier<\/h3>\n<p>Enter an operating point using the same units and field order as the published CSV. Decimal commas and decimal points are accepted.<\/p>\n<div class=\"nds-note\"><strong>Research demonstration.<\/strong> The calculation runs locally with the exact exported weights and preprocessing. Values outside the validated domain are rejected. Scores are not calibrated probabilities, and this component does not assess impact risk.<\/div>\n<form novalidate>\n<div class=\"nds-calculator-grid\"><label for=\"nds-orbit-semi_major_axis\">Semimajor axis<input id=\"nds-orbit-semi_major_axis\" name=\"semi_major_axis\" type=\"text\" inputmode=\"decimal\" value=\"1.52\" autocomplete=\"off\"><small>0.637\u201317.819 AU<\/small><\/label><label for=\"nds-orbit-eccentricity\">Eccentricity<input id=\"nds-orbit-eccentricity\" name=\"eccentricity\" type=\"text\" inputmode=\"decimal\" value=\"0.34\" autocomplete=\"off\"><small>0.025\u20130.956<\/small><\/label><label for=\"nds-orbit-inclination\">Inclination<input id=\"nds-orbit-inclination\" name=\"inclination\" type=\"text\" inputmode=\"decimal\" value=\"14.6\" autocomplete=\"off\"><small>0.146\u201375.412 \u00b0<\/small><\/label><label for=\"nds-orbit-argument_of_perihelion\">Argument of perihelion<input id=\"nds-orbit-argument_of_perihelion\" name=\"argument_of_perihelion\" type=\"text\" inputmode=\"decimal\" value=\"197\" autocomplete=\"off\"><small>0.522\u2013359.663 \u00b0<\/small><\/label><label for=\"nds-orbit-longitude_of_ascending_node\">Ascending-node longitude<input id=\"nds-orbit-longitude_of_ascending_node\" name=\"longitude_of_ascending_node\" type=\"text\" inputmode=\"decimal\" value=\"200\" autocomplete=\"off\"><small>0.136\u2013359.855 \u00b0<\/small><\/label><label for=\"nds-orbit-mean_anomaly\">Mean anomaly<input id=\"nds-orbit-mean_anomaly\" name=\"mean_anomaly\" type=\"text\" inputmode=\"decimal\" value=\"118\" autocomplete=\"off\"><small>0.052\u2013359.825 \u00b0<\/small><\/label><label for=\"nds-orbit-perihelion_distance\">Perihelion distance<input id=\"nds-orbit-perihelion_distance\" name=\"perihelion_distance\" type=\"text\" inputmode=\"decimal\" value=\"1\" autocomplete=\"off\"><small>0.0928\u20131.0601 AU<\/small><\/label><label for=\"nds-orbit-aphelion_distance\">Aphelion distance<input id=\"nds-orbit-aphelion_distance\" name=\"aphelion_distance\" type=\"text\" inputmode=\"decimal\" value=\"2.05\" autocomplete=\"off\"><small>0.99\u201334.68 AU<\/small><\/label><label for=\"nds-orbit-orbital_period\">Orbital period<input id=\"nds-orbit-orbital_period\" name=\"orbital_period\" type=\"text\" inputmode=\"decimal\" value=\"1.88\" autocomplete=\"off\"><small>0.51\u201375.22 years<\/small><\/label><label for=\"nds-orbit-absolute_magnitude\">Absolute magnitude<input id=\"nds-orbit-absolute_magnitude\" name=\"absolute_magnitude\" type=\"text\" inputmode=\"decimal\" value=\"21.4\" autocomplete=\"off\"><small>14.1\u201322.0 H<\/small><\/label><label for=\"nds-orbit-earth_moid\">Earth MOID<input id=\"nds-orbit-earth_moid\" name=\"earth_moid\" type=\"text\" inputmode=\"decimal\" value=\"0.016\" autocomplete=\"off\"><small>0.00001\u20130.049987 AU<\/small><\/label><\/div>\n<div class=\"nds-calculator-actions\"><button type=\"submit\">Calculate class scores<\/button><button type=\"reset\">Reset example<\/button><\/div>\n<p class=\"nds-calculator-error\" role=\"alert\">\n<\/form>\n<div class=\"nds-score-summary\" aria-live=\"polite\"><\/div>\n<div class=\"nds-score-grid\"><\/div>\n<\/div>\n<h3>Reproduce the calculation<\/h3>\n<p>The Python package contains the exact exported model, ordered input schema, representative case and expected softmax scores. The Neural Designer package preserves the 1,034\/344\/344 split, trained parameters and regenerated analyses.<\/p>\n<pre><code>from model import NeuralNetwork\n\ninputs = [1.52, 0.34, 14.6, 197, 200, 118, 1.00, 2.05, 1.88, 21.4, 0.016]\namo, apo, ate = NeuralNetwork().calculate_outputs(inputs)<\/code><\/pre>\n<div class=\"nds-downloads\"><a href=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2026\/08\/asteroid-orbit-python-model-2026.zip\">Download Python model (ZIP)<\/a><br \/>\n<a href=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2026\/08\/asteroid-orbit-neural-designer-project-2026.zip\">Download Neural Designer project (ZIP)<\/a><br \/>\n<a href=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2026\/08\/orbit_class.csv\">Download orbit_class.csv<\/a><\/div>\n<\/section>\n<section id=\"8-validity\" class=\"nds-card\">\n<h2>8. Validity, uncertainty and limitations<\/h2>\n<ul>\n<li><strong>The label is rule-derived.<\/strong> Amor, Apollo and Aten groups are defined from orbital elements. A deterministic implementation is the appropriate production classifier; the learned model is a benchmark or consistency check.<\/li>\n<li><strong>Class imbalance is substantial.<\/strong> Apollo records are 85.8% of the data. Accuracy therefore overstates performance on the minority Aten class.<\/li>\n<li><strong>Training continued beyond the best selection epoch.<\/strong> Selection cross-entropy was lowest at epoch 59 and rose to 0.192 by epoch 87. The published export does not restore that earlier checkpoint.<\/li>\n<li><strong>Random row validation is limited.<\/strong> It measures interpolation within this curated table, not transfer to later catalogue epochs, newly discovered objects or lower-quality orbit solutions.<\/li>\n<li><strong>Uncertainty is absent.<\/strong> The CSV contains point estimates but no covariance matrices, observational arcs, condition codes or measurement uncertainties.<\/li>\n<li><strong>The source table lacks object identity.<\/strong> Without catalogue identifiers and epochs, records cannot be independently reconciled with the current JPL Small-Body Database.<\/li>\n<li><strong>Softmax scores are not calibrated probabilities.<\/strong> They should not be interpreted as scientific confidence or impact risk.<\/li>\n<\/ul>\n<\/section>\n<section id=\"references\" class=\"nds-card\">\n<h2>References<\/h2>\n<ul>\n<li>NASA\/JPL Center for Near-Earth Object Studies, <a href=\"https:\/\/cneos.jpl.nasa.gov\/about\/neo_groups.html\">Near-Earth Object Groups<\/a>.<\/li>\n<li>NASA\/JPL Solar System Dynamics, <a href=\"https:\/\/ssd-api.jpl.nasa.gov\/doc\/sbdb_filter.html\">Small-Body Database query filters and orbit-class definitions<\/a>.<\/li>\n<li>NASA\/JPL Solar System Dynamics, <a href=\"https:\/\/ssd-api.jpl.nasa.gov\/doc\/sbdb_query.html\">Small-Body Database Query API<\/a>.<\/li>\n<li>B. Dincer, <a href=\"https:\/\/www.kaggle.com\/brsdincer\/orbitclassification\">Orbit Classification For Prediction<\/a>, Kaggle.<\/li>\n<\/ul>\n<\/section>\n<\/div>\n<\/div>\n<p><script data-noptimize=\"1\"> (() => { const root = document.getElementById(\"nds-orbit-calculator\"); if (!root || root.dataset.ready === \"1\") return; root.dataset.ready = \"1\"; const config = {\"scalers\":[{\"kind\":\"standard\",\"mean\":1.753219962,\"scale\":0.6890029907},{\"kind\":\"standard\",\"mean\":0.5285159945,\"scale\":0.1797499955},{\"kind\":\"standard\",\"mean\":13.34829998,\"scale\":11.62609959},{\"kind\":\"standard\",\"mean\":180.4620056,\"scale\":99.31030273},{\"kind\":\"standard\",\"mean\":172.2480011,\"scale\":102.5220032},{\"kind\":\"standard\",\"mean\":180.7319946,\"scale\":107.1829987},{\"kind\":\"standard\",\"mean\":0.7584419847,\"scale\":0.2203850001},{\"kind\":\"standard\",\"mean\":2.748049974,\"scale\":1.344130039},{\"kind\":\"standard\",\"mean\":2.4375,\"scale\":2.096179962},{\"kind\":\"standard\",\"mean\":19.94149971,\"scale\":1.497640014},{\"kind\":\"standard\",\"mean\":0.02336990088,\"scale\":0.0143040996}],\"biases\":[-15.6049633,46.77602386,-31.16750145],\"weights\":[[10.39552784,-0.5115015507,0.1039378569,0.5992049575,1.372378826,-0.2030986995,37.31432343,3.216845036,6.198753357,0.1104126573,-0.5148343444],[4.739138126,3.15072298,0.5555933118,0.2326101065,0.1742975861,-0.1985383481,-13.01203632,7.779847145,3.526733875,-0.1533072144,-0.6520558596],[-15.06341553,-2.553064823,-0.6062455773,-0.9412111044,-1.643896341,0.6910393834,-24.18578529,-10.76107979,-9.714793205,0.122042276,0.9805012941]],\"classes\":[\"AMO\",\"APO\",\"ATE\"],\"fields\":[{\"name\":\"semi_major_axis\",\"label\":\"Semimajor axis\",\"kind\":\"number\",\"min\":0.63696488,\"max\":17.81867904,\"minLabel\":\"0.637\",\"maxLabel\":\"17.819\"},{\"name\":\"eccentricity\",\"label\":\"Eccentricity\",\"kind\":\"number\",\"min\":0.025424671,\"max\":0.95604169,\"minLabel\":\"0.025\",\"maxLabel\":\"0.956\"},{\"name\":\"inclination\",\"label\":\"Inclination\",\"kind\":\"number\",\"min\":0.1460839,\"max\":75.412403,\"minLabel\":\"0.146\",\"maxLabel\":\"75.412\"},{\"name\":\"argument_of_perihelion\",\"label\":\"Argument of perihelion\",\"kind\":\"number\",\"min\":0.5218376,\"max\":359.6626687,\"minLabel\":\"0.522\",\"maxLabel\":\"359.663\"},{\"name\":\"longitude_of_ascending_node\",\"label\":\"Ascending-node longitude\",\"kind\":\"number\",\"min\":0.1360416,\"max\":359.8546017,\"minLabel\":\"0.136\",\"maxLabel\":\"359.855\"},{\"name\":\"mean_anomaly\",\"label\":\"Mean anomaly\",\"kind\":\"number\",\"min\":0.0521652,\"max\":359.825201,\"minLabel\":\"0.052\",\"maxLabel\":\"359.825\"},{\"name\":\"perihelion_distance\",\"label\":\"Perihelion distance\",\"kind\":\"number\",\"min\":0.0928,\"max\":1.0601,\"minLabel\":\"0.0928\",\"maxLabel\":\"1.0601\"},{\"name\":\"aphelion_distance\",\"label\":\"Aphelion distance\",\"kind\":\"number\",\"min\":0.99,\"max\":34.68,\"minLabel\":\"0.99\",\"maxLabel\":\"34.68\"},{\"name\":\"orbital_period\",\"label\":\"Orbital period\",\"kind\":\"number\",\"min\":0.51,\"max\":75.22,\"minLabel\":\"0.51\",\"maxLabel\":\"75.22\"},{\"name\":\"absolute_magnitude\",\"label\":\"Absolute magnitude\",\"kind\":\"number\",\"min\":14.1,\"max\":22.0,\"minLabel\":\"14.1\",\"maxLabel\":\"22.0\"},{\"name\":\"earth_moid\",\"label\":\"Earth MOID\",\"kind\":\"number\",\"min\":1e-05,\"max\":0.049987,\"minLabel\":\"0.00001\",\"maxLabel\":\"0.049987\"}],\"encoder\":\"numeric\",\"predictionNoun\":\"Predicted group\"}; const form = root.querySelector(\"form\"); const error = root.querySelector(\".nds-calculator-error\"); const summary = root.querySelector(\".nds-score-summary\"); const scoreGrid = root.querySelector(\".nds-score-grid\");  const parseDecimal = value => { const normalized = String(value).trim().replace(\",\", \".\"); return normalized === \"\" ? NaN : Number(normalized); }; const softmax = logits => { const maximum = Math.max(...logits); const values = logits.map(value => Math.exp(value - maximum)); const total = values.reduce((sum, value) => sum + value, 0); return values.map(value => value \/ total); }; const modelScores = inputs => { const scaled = inputs.map((value, index) => { const scaler = config.scalers[index]; return scaler.kind === \"standard\" ? (value - scaler.mean) \/ scaler.scale : 2 * value - 1; }); const logits = config.biases.map((bias, row) => bias + config.weights[row].reduce( (sum, weight, column) => sum + weight * scaled[column], 0 ) ); return softmax(logits); }; const readValues = () => { root.querySelectorAll(\".is-invalid\").forEach( element => element.classList.remove(\"is-invalid\") ); const raw = {}; for (const field of config.fields) { const element = form.elements[field.name]; if (field.kind === \"select\") { raw[field.name] = element.value; continue; } const value = parseDecimal(element.value); if (!Number.isFinite(value) || value < field.min || value > field.max) { element.classList.add(\"is-invalid\"); throw new Error( `${field.label} must be between ${field.minLabel} and ${field.maxLabel}.` ); } raw[field.name] = value; } if (config.encoder === \"stars\") { const colors = [\"Blue\",\"Blue-White\",\"Orange\",\"Orange-Red\", \"Pale Yellow-Orange\",\"Red\",\"White\",\"Whitish\",\"Yellow-White\", \"Yellowish\",\"Yellowish-White\"]; const spectra = [\"A\",\"B\",\"F\",\"G\",\"K\",\"M\",\"O\"]; return [raw.temperature, raw.luminosity, raw.relative_radius, raw.absolute_magnitude, ...colors.map(value => Number(raw.color === value)), ...spectra.map(value => Number(raw.spectral_class === value))]; } return config.fields.map(field => raw[field.name]); }; const render = scores => { const winner = scores.indexOf(Math.max(...scores)); summary.innerHTML = `\\x3cspan>Highest model score\\x3c\/span>\\x3cstrong>${ config.predictionNoun}: ${config.classes[winner]}\\x3c\/strong>`; scoreGrid.innerHTML = scores.map((score, index) => ` \\x3cdiv class=\"nds-score ${index === winner ? \"is-winner\" : \"\"}\"> \\x3cdiv class=\"nds-score-head\">\\x3cstrong>${config.classes[index]}\\x3c\/strong> \\x3cspan>${(100 * score).toFixed(score < 0.0001 ? 4 : 2)}%\\x3c\/span>\\x3c\/div> \\x3cdiv class=\"nds-score-track\">\\x3cdiv class=\"nds-score-fill\" style=\"width:${Math.max(0.15, 100 * score)}%\">\\x3c\/div>\\x3c\/div> \\x3c\/div>`).join(\"\"); }; const calculate = () => { try { error.textContent = \"\"; render(modelScores(readValues())); } catch (exception) { error.textContent = exception.message; summary.innerHTML = \"\"; scoreGrid.innerHTML = \"\"; } }; form.addEventListener(\"submit\", event => { event.preventDefault(); calculate(); }); form.addEventListener(\"reset\", () => setTimeout(calculate, 0)); calculate(); })(); <\/script><\/p>\n","protected":false},"author":13,"featured_media":1778,"template":"","categories":[29],"tags":[],"class_list":["post-3511","learning","type-learning","status-publish","has-post-thumbnail","hentry","category-examples"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Classify asteroid orbits using machine learning<\/title>\n<meta name=\"description\" content=\"Build a machine learning model to classify asteroid orbits according to Amor, Apollo, and Aten (AMO, APO, and ATE) orbit classes.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Asteroid orbit machine learning example\" \/>\n<meta property=\"og:description\" content=\"In this example, we develop a classification method for predicting orbit class.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/\" \/>\n<meta property=\"og:site_name\" content=\"Neural Designer\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-06T13:45:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/orbit.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Asteroid orbit machine learning example\" \/>\n<meta name=\"twitter:description\" content=\"In this example, we develop a classification method for predicting orbit class.\" \/>\n<meta name=\"twitter:site\" content=\"@NeuralDesigner\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/\",\"url\":\"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/\",\"name\":\"Classify asteroid orbits using machine learning\",\"isPartOf\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/orbit.webp\",\"datePublished\":\"2023-08-31T11:12:58+00:00\",\"dateModified\":\"2026-08-06T13:45:16+00:00\",\"description\":\"Build a machine learning model to classify asteroid orbits according to Amor, Apollo, and Aten (AMO, APO, and ATE) orbit classes.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/#primaryimage\",\"url\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/orbit.webp\",\"contentUrl\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/orbit.webp\",\"width\":1200,\"height\":628,\"caption\":\"Orbit\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.neuraldesigner.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Learning\",\"item\":\"https:\/\/www.neuraldesigner.com\/learning\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Classify asteroid orbits using machine learning\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.neuraldesigner.com\/#website\",\"url\":\"https:\/\/www.neuraldesigner.com\/\",\"name\":\"Neural Designer\",\"description\":\"Explainable AI Platform\",\"publisher\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.neuraldesigner.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.neuraldesigner.com\/#organization\",\"name\":\"Neural Designer\",\"url\":\"https:\/\/www.neuraldesigner.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png\",\"contentUrl\":\"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png\",\"width\":1024,\"height\":223,\"caption\":\"Neural Designer\"},\"image\":{\"@id\":\"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/NeuralDesigner\",\"https:\/\/es.linkedin.com\/showcase\/neuraldesigner\/\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Classify asteroid orbits using machine learning","description":"Build a machine learning model to classify asteroid orbits according to Amor, Apollo, and Aten (AMO, APO, and ATE) orbit classes.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/","og_locale":"en_US","og_type":"article","og_title":"Asteroid orbit machine learning example","og_description":"In this example, we develop a classification method for predicting orbit class.","og_url":"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/","og_site_name":"Neural Designer","article_modified_time":"2026-08-06T13:45:16+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/orbit.webp","type":"image\/webp"}],"twitter_card":"summary_large_image","twitter_title":"Asteroid orbit machine learning example","twitter_description":"In this example, we develop a classification method for predicting orbit class.","twitter_site":"@NeuralDesigner","twitter_misc":{"Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/","url":"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/","name":"Classify asteroid orbits using machine learning","isPartOf":{"@id":"https:\/\/www.neuraldesigner.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/#primaryimage"},"image":{"@id":"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/#primaryimage"},"thumbnailUrl":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/orbit.webp","datePublished":"2023-08-31T11:12:58+00:00","dateModified":"2026-08-06T13:45:16+00:00","description":"Build a machine learning model to classify asteroid orbits according to Amor, Apollo, and Aten (AMO, APO, and ATE) orbit classes.","breadcrumb":{"@id":"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/#primaryimage","url":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/orbit.webp","contentUrl":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/06\/orbit.webp","width":1200,"height":628,"caption":"Orbit"},{"@type":"BreadcrumbList","@id":"https:\/\/www.neuraldesigner.com\/learning\/examples\/orbit-class\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.neuraldesigner.com\/"},{"@type":"ListItem","position":2,"name":"Learning","item":"https:\/\/www.neuraldesigner.com\/learning\/"},{"@type":"ListItem","position":3,"name":"Classify asteroid orbits using machine learning"}]},{"@type":"WebSite","@id":"https:\/\/www.neuraldesigner.com\/#website","url":"https:\/\/www.neuraldesigner.com\/","name":"Neural Designer","description":"Explainable AI Platform","publisher":{"@id":"https:\/\/www.neuraldesigner.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.neuraldesigner.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.neuraldesigner.com\/#organization","name":"Neural Designer","url":"https:\/\/www.neuraldesigner.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png","contentUrl":"https:\/\/www.neuraldesigner.com\/wp-content\/uploads\/2023\/05\/logo-neural-1.png","width":1024,"height":223,"caption":"Neural Designer"},"image":{"@id":"https:\/\/www.neuraldesigner.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/NeuralDesigner","https:\/\/es.linkedin.com\/showcase\/neuraldesigner\/"]}]}},"_links":{"self":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/learning\/3511","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/learning"}],"about":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/types\/learning"}],"author":[{"embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/users\/13"}],"version-history":[{"count":7,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/learning\/3511\/revisions"}],"predecessor-version":[{"id":23144,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/learning\/3511\/revisions\/23144"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/media\/1778"}],"wp:attachment":[{"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/media?parent=3511"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/categories?post=3511"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.neuraldesigner.com\/api\/wp\/v2\/tags?post=3511"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}