UCPH marzipan multi-instrument spectroscopy. v2.0 standardized NIRS package: 6 spectral source(s), 2 declared target(s). Auto-generated from dataset_card.json (verify before publication).
| Intégrité | 0.00 |
|---|---|
| Artefacts locaux | 0.73 |
| Bruit | 0.01 |
| Outliers PCA | 0.59 |
| Distance à la référence | 0.60 |
| Répétabilité | 0.00 |
| Baseline / forme | 0.75 |
| Structure multi-régimes | 0.70 |
| Diagnostic | Score | Force | Signaux | Interprétation probable |
|---|---|---|---|---|
| Splice / raccord détecteursX5 | 0.72 | moyenne | SNR non dégradé 1.00, RMS/SAM référence 0.97, Spike rate 0.85 | Rupture aux jonctions de détecteurs, calibration locale ou sonde différente. |
| Erreur calibration / référence blancheX5 | 0.68 | moyenne | Baseline/mean/area 1.00, RMS/SAM référence 0.97, artefacts locaux 0.85 | Décalage systématique entre campagnes, instruments ou référence blanche. |
| Erreur interpolation / rééchantillonnageX1 | 0.64 | moyenne | PCA Q 1.00, Spike rate 1.00, SNR normal/élevé 1.00 | Artefacts numériques ou traitement spectral incorrect. |
| Fond différentX5 | 0.64 | moyenne | Baseline/mean/area 1.00, RMS/SAM référence 0.97, Mahalanobis / T2 0.43 | Effet systématique du support, blanc/noir, transflectance ou environnement de mesure. |
| Spectre hors domaine valideX4 | 0.61 | moyenne | artefacts faibles 0.96, Structure PCA 0.89, Mahalanobis / T2 0.49 | Variété, espèce, lot ou condition différente mais physiquement plausible. |
| Dataset multi-régimesX1 | 0.60 | moyenne | Structure PCA 1.00, PCA Q 1.00, RMS/SAM référence 0.78 | Mélange de campagnes, opérateurs, lots, setups ou sous-populations spectrales. |
| Signature VERA25-likeX1 | 0.60 | moyenne | PCA Q 1.00, Spike rate 1.00, RMS/SAM référence 0.78 | Combinaison possible changement de sonde + splice, amplifiée par géométrie, fond ou calibration. |
| Différence de sonde / géométrieX1 | 0.54 | moyenne | PCA Q 1.00, RMS/SAM référence 0.78, Mahalanobis / T2 0.55 | Modification de l'illumination, collecte, angle ou distance sonde-échantillon. |
| Wavelengths | 100 |
|---|---|
| Axis range | 850–1,048 nm |
| Mean spacing | 2 nm |
| Grid | uniform |
| Observations | 32 |
| Value range | 1.39 – 2.35 |
|---|---|
| Mean range | 1.52 – 1.82 |
| Mean level | 1.661 |
| Area | 328.9 |
| PTP | 0.3041 |
| Noise RMS | 0.00017995 |
| SNR | 9.2e+03 |
| SNR dB | 8e+01 dB |
| Dynamic range | 0.304 |
| Smoothness | 0.001911 |
| Saturated | 0.0% |
| X-outliers | 10 |
| NaN ratio | 0.00% |
|---|---|
| Inf count | 0 |
| Zero ratio | 0.00% |
| Spike count | 51 |
| Spike rate | 1.63% |
| Jump count | 0 |
| Jump rate | 0.00% |
| Clip fraction | 0.06% |
| Baseline slope | 0.30285 |
|---|---|
| Curvature RMS | 0.00082456 |
| D1 RMS | 0.0048986 |
| RMS to mean | 0.15475 |
| RMS p95 | 0.32426 |
| SAM to mean | 0.019896 |
| SAM p95 | 0.029254 |
| Affine offset p95 | 0.92909 |
| Affine gain p95 Δ | 0.74937 |
| Affine residual p95 | 0.020287 |
| Xcorr lag p95 | 0 |
| PCA Q p95/median | 11 |
|---|---|
| Hotelling T2 p95/median | 4.4 |
| Mahalanobis H p95/median | 2.1 |
| Repeat groups | 0 |
| Effective rank | 1 |
|---|---|
| PCs → 95% var | 1 |
| PCs → 99% var | 1 |
| Top-10 cum. var | 100.0% |
| Famille | Métrique calculée | Valeur | Score | Niveau | Interprétation dataset | Causes typiques | Calcul / scoring |
|---|---|---|---|---|---|---|---|
| Intégrité des données | NaN ratiointegrity.nan_ratio | 0% | 0.00 | faible | Spectre complet | Erreur acquisition/export | count(isnan(X)) / X.sizealert = min(1, nan_ratio / 0.05) |
| Intégrité des données | Inf countintegrity.inf_count | 0 | 0.00 | faible | Normal | Calculs invalides | count(isinf(X))alert = min(1, inf_count / 1) |
| Intégrité des données | Zero ratiointegrity.zero_ratio | 0% | 0.00 | faible | Normal | Export, saturation | count(X == 0) / count(finite X)alert = min(1, zero_ratio / 0.05) |
| Amplitude globale | Mean reflectanceamplitude.mean_reflectance | 1.6606 | 0.36 | faible | Trop sombre | Fond, géométrie | mean(X finite)alert reuses baseline/shape drift because absolute reflectance ranges are technology-dependent |
| Amplitude globale | Area under curveamplitude.area_under_curve | 328.89 | 0.36 | faible | Normal | Distance sonde | trapezoid(mean_spectrum, spectral_axis)alert reuses baseline/shape drift because area scale depends on axis and units |
| Amplitude globale | Peak-to-peak (PTP)amplitude.peak_to_peak | 0.30408 | 0.00 | faible | Variabilité forte | Saturation | max(mean_spectrum) - min(mean_spectrum)alert increases when dynamic range is abnormally flat |
| Amplitude globale | Varianceamplitude.variance | 0.043156 | 0.00 | faible | Normal ou hétérogène | Mauvais contact | var(X finite)alert increases when variance/dynamic range is abnormally flat |
| Bruit | Noise RMSnoise.noise_rms | 0.00017995 | 0.00 | faible | Stable | Lampe, détecteur | median MAD(second derivative) * 1.4826 / sqrt(6)alert = noise_rms / signal_scale, saturated at 5% |
| Bruit | SNRnoise.snr | 9228 | 0.00 | faible | Bon signal | Acquisition | mean(abs(X)) / noise_rmsalert decreases with SNR dB; >=40 dB is treated as low alert |
| Bruit | Bandwise SNRnoise.bandwise_snr_min | 956.47 | 0.00 | faible | Zone fiable | Détecteur | min(abs(mean_spectrum) / local second-derivative noise)alert decreases with worst-band SNR dB; >=35 dB is treated as low alert |
| Artefacts locaux | Spike countartefacts.spike_count | 51 | 1.00 | fort | Artefacts | Cosmic rays, splice | count robust outliers in second derivativealert follows spike_rate, saturated at 1% |
| Artefacts locaux | Spike rateartefacts.spike_rate | 1.63% | 1.00 | fort | Spectre suspect | Interpolation | spike_count / (n_samples * (n_features - 2))alert = min(1, spike_rate / 0.01) |
| Artefacts locaux | Jump countartefacts.jump_count | 0 | 0.00 | faible | Continu | Splice | count robust outliers in first derivativealert follows jump_rate, saturated at 1% |
| Artefacts locaux | Jump rateartefacts.jump_rate | 0% | 0.00 | faible | Normal | Calibration | jump_count / (n_samples * (n_features - 1))alert = min(1, jump_rate / 0.01) |
| Artefacts locaux | Clip fractionartefacts.clip_fraction | 0.0625% | 0.06 | faible | Normal | Détecteur saturé | fraction of finite cells equal to repeated min/max extremaalert = min(1, clip_fraction / 0.01) |
| Forme spectrale | Baseline slopeshape.baseline_slope | 0.30285 | 0.36 | faible | Stable | Éclairement | linear slope of mean_spectrum over normalized axisalert = abs(slope / signal_scale), saturated at 0.5 |
| Forme spectrale | Curvature RMSshape.curvature_rms | 0.00082456 | 0.05 | faible | Lisse | Fond, splice | median RMS(second derivative per spectrum)alert = curvature_rms / signal_scale, saturated at 1% |
| Forme spectrale | D1 RMSshape.d1_rms | 0.0048986 | 0.06 | faible | Plat | Biologie ou artefact | median RMS(first derivative per spectrum)alert = d1_rms / signal_scale, saturated at 5% |
| Outliers multivariés | PCA Q (SPE)outliers.pca_q_ratio | 10.794 | 1.00 | fort | Spectre atypique | Artefact, mélange | p95(Q/SPE residual) / median(Q/SPE residual)alert = min(1, pca_q_ratio / 8) |
| Outliers multivariés | Hotelling T²outliers.hotelling_t2_ratio | 4.396 | 0.55 | moyen | Extrême mais cohérent | Variabilité naturelle | p95(Hotelling T2) / median(Hotelling T2)alert = min(1, hotelling_t2_ratio / 8) |
| Outliers multivariés | Mahalanobis Houtliers.mahalanobis_h_ratio | 2.0965 | 0.52 | moyen | Outlier global | Domaine différent | p95(sqrt(T2)) / median(sqrt(T2))alert = min(1, mahalanobis_h_ratio / 4) |
| Comparaison à référence | RMS to mean spectrumreference.rms_to_mean_spectrum_p95 | 0.32426 | 0.78 | fort | Spectre différent | Domain shift | p95 RMS distance to dataset mean spectrumalert = RMS_p95 / signal_scale, saturated at 25% |
| Comparaison à référence | Spectral Angle Mapper (SAM)reference.sam_to_mean_spectrum_p95 | 0.029254 | 0.08 | faible | Similaire | Fond, géométrie | p95 spectral angle to dataset mean spectrumalert = min(1, SAM_p95 / 0.35 rad) |
| Répétabilité | RMS intra-IDrepeatability.rms_intra_id | — | 0.00 | faible | Stable | Positionnement | median RMS distance to repeated-sample centroidalert = RMS_intra_ID / signal_scale, saturated at 10% |
| Répétabilité | SAM intra-IDrepeatability.sam_intra_id | — | 0.00 | faible | Stable | Acquisition | median SAM to repeated-sample centroidalert = min(1, SAM_intra_ID / 0.15 rad) |
| Répétabilité | CV intra-IDrepeatability.cv_intra_id | — | 0.00 | faible | Stable | Opérateur | median within-ID band CValert = min(1, CV_intra_ID / 0.25) |
| Structure du dataset | PCA score densitystructure.pca_score_density | 3.3677 | 1.00 | fort | Sous-populations | Lots différents | 1 / median kNN distance in PCA score spacealert follows density_cv/profile structure complexity, not raw density alone |
| Structure du dataset | Local Outlier Factor (LOF)structure.local_outlier_factor_p95 | 3.5583 | 1.00 | fort | Spectre isolé | Cas rares | p95 approximate LOF from PCA-score kNN distancesalert = min(1, max(0, LOF_p95 - 1) / 2) |
| Structure du dataset | Isolation Forest scorestructure.isolation_forest_score_p95 | 0.61031 | 1.00 | fort | Spectre atypique | Diverses causes | p95 IsolationForest anomaly score on PCA scoresalert follows structure complexity; raw score is implementation-dependent |
| Target | max |r| | axis @ max | mean |r| | |r| ≥ .5 |
|---|---|---|---|---|
| ref_sugar | 0.979 | 982 | 0.969 | 100.0% |
| ref_moisture | 0.907 | 926 | 0.879 | 100.0% |
| Wavelengths | 1,000 |
|---|---|
| Axis range | 450–2,448 nm |
| Mean spacing | 2 nm |
| Grid | uniform |
| Observations | 32 |
| Value range | 0.223 – 2.02 |
|---|---|
| Mean range | 0.351 – 1.92 |
| Mean level | 1.162 |
| Area | 2322 |
| PTP | 1.565 |
| Noise RMS | 0.00017747 |
| SNR | 6.5e+03 |
| SNR dB | 8e+01 dB |
| Dynamic range | 1.57 |
| Smoothness | 0.001224 |
| Saturated | 0.0% |
| X-outliers | 10 |
| NaN ratio | 0.00% |
|---|---|
| Inf count | 0 |
| Zero ratio | 0.00% |
| Spike count | 181 |
| Spike rate | 0.57% |
| Jump count | 620 |
| Jump rate | 1.94% |
| Clip fraction | 0.01% |
| Baseline slope | 1.9165 |
|---|---|
| Curvature RMS | 0.0011971 |
| D1 RMS | 0.0057058 |
| RMS to mean | 0.10729 |
| RMS p95 | 0.19257 |
| SAM to mean | 0.04689 |
| SAM p95 | 0.10669 |
| Affine offset p95 | 0.20207 |
| Affine gain p95 Δ | 0.10668 |
| Affine residual p95 | 0.093652 |
| Xcorr lag p95 | 0 |
| PCA Q p95/median | 5.1 |
|---|---|
| Hotelling T2 p95/median | 3.2 |
| Mahalanobis H p95/median | 1.8 |
| Repeat groups | 0 |
| Effective rank | 2 |
|---|---|
| PCs → 95% var | 3 |
| PCs → 99% var | 4 |
| Top-10 cum. var | 100.0% |
| Famille | Métrique calculée | Valeur | Score | Niveau | Interprétation dataset | Causes typiques | Calcul / scoring |
|---|---|---|---|---|---|---|---|
| Intégrité des données | NaN ratiointegrity.nan_ratio | 0% | 0.00 | faible | Spectre complet | Erreur acquisition/export | count(isnan(X)) / X.sizealert = min(1, nan_ratio / 0.05) |
| Intégrité des données | Inf countintegrity.inf_count | 0 | 0.00 | faible | Normal | Calculs invalides | count(isinf(X))alert = min(1, inf_count / 1) |
| Intégrité des données | Zero ratiointegrity.zero_ratio | 0% | 0.00 | faible | Normal | Export, saturation | count(X == 0) / count(finite X)alert = min(1, zero_ratio / 0.05) |
| Amplitude globale | Mean reflectanceamplitude.mean_reflectance | 1.1622 | 1.00 | fort | Valeur atypique: Trop clair / fond visible ou Trop sombre | Fond, géométrie | mean(X finite)alert reuses baseline/shape drift because absolute reflectance ranges are technology-dependent |
| Amplitude globale | Area under curveamplitude.area_under_curve | 2321.6 | 1.00 | fort | Valeur atypique: Différence d'éclairement ou Normal | Distance sonde | trapezoid(mean_spectrum, spectral_axis)alert reuses baseline/shape drift because area scale depends on axis and units |
| Amplitude globale | Peak-to-peak (PTP)amplitude.peak_to_peak | 1.565 | 0.00 | faible | Variabilité forte | Saturation | max(mean_spectrum) - min(mean_spectrum)alert increases when dynamic range is abnormally flat |
| Amplitude globale | Varianceamplitude.variance | 0.37165 | 0.00 | faible | Normal ou hétérogène | Mauvais contact | var(X finite)alert increases when variance/dynamic range is abnormally flat |
| Bruit | Noise RMSnoise.noise_rms | 0.00017747 | 0.00 | faible | Stable | Lampe, détecteur | median MAD(second derivative) * 1.4826 / sqrt(6)alert = noise_rms / signal_scale, saturated at 5% |
| Bruit | SNRnoise.snr | 6548.7 | 0.00 | faible | Bon signal | Acquisition | mean(abs(X)) / noise_rmsalert decreases with SNR dB; >=40 dB is treated as low alert |
| Bruit | Bandwise SNRnoise.bandwise_snr_min | 500.69 | 0.00 | faible | Zone fiable | Détecteur | min(abs(mean_spectrum) / local second-derivative noise)alert decreases with worst-band SNR dB; >=35 dB is treated as low alert |
| Artefacts locaux | Spike countartefacts.spike_count | 181 | 0.57 | moyen | Artefacts | Cosmic rays, splice | count robust outliers in second derivativealert follows spike_rate, saturated at 1% |
| Artefacts locaux | Spike rateartefacts.spike_rate | 0.567% | 0.57 | moyen | Spectre suspect | Interpolation | spike_count / (n_samples * (n_features - 2))alert = min(1, spike_rate / 0.01) |
| Artefacts locaux | Jump countartefacts.jump_count | 620 | 1.00 | fort | Raccord détecteur | Splice | count robust outliers in first derivativealert follows jump_rate, saturated at 1% |
| Artefacts locaux | Jump rateartefacts.jump_rate | 1.94% | 1.00 | fort | Problème spectral | Calibration | jump_count / (n_samples * (n_features - 1))alert = min(1, jump_rate / 0.01) |
| Artefacts locaux | Clip fractionartefacts.clip_fraction | 0.00625% | 0.01 | faible | Normal | Détecteur saturé | fraction of finite cells equal to repeated min/max extremaalert = min(1, clip_fraction / 0.01) |
| Forme spectrale | Baseline slopeshape.baseline_slope | 1.9165 | 1.00 | fort | Dérive | Éclairement | linear slope of mean_spectrum over normalized axisalert = abs(slope / signal_scale), saturated at 0.5 |
| Forme spectrale | Curvature RMSshape.curvature_rms | 0.0011971 | 0.08 | faible | Lisse | Fond, splice | median RMS(second derivative per spectrum)alert = curvature_rms / signal_scale, saturated at 1% |
| Forme spectrale | D1 RMSshape.d1_rms | 0.0057058 | 0.07 | faible | Plat | Biologie ou artefact | median RMS(first derivative per spectrum)alert = d1_rms / signal_scale, saturated at 5% |
| Outliers multivariés | PCA Q (SPE)outliers.pca_q_ratio | 5.0785 | 0.63 | moyen | Spectre atypique | Artefact, mélange | p95(Q/SPE residual) / median(Q/SPE residual)alert = min(1, pca_q_ratio / 8) |
| Outliers multivariés | Hotelling T²outliers.hotelling_t2_ratio | 3.1984 | 0.40 | faible | Central | Variabilité naturelle | p95(Hotelling T2) / median(Hotelling T2)alert = min(1, hotelling_t2_ratio / 8) |
| Outliers multivariés | Mahalanobis Houtliers.mahalanobis_h_ratio | 1.7883 | 0.45 | moyen | Outlier global | Domaine différent | p95(sqrt(T2)) / median(sqrt(T2))alert = min(1, mahalanobis_h_ratio / 4) |
| Comparaison à référence | RMS to mean spectrumreference.rms_to_mean_spectrum_p95 | 0.19257 | 0.49 | moyen | Spectre différent | Domain shift | p95 RMS distance to dataset mean spectrumalert = RMS_p95 / signal_scale, saturated at 25% |
| Comparaison à référence | Spectral Angle Mapper (SAM)reference.sam_to_mean_spectrum_p95 | 0.10669 | 0.30 | faible | Similaire | Fond, géométrie | p95 spectral angle to dataset mean spectrumalert = min(1, SAM_p95 / 0.35 rad) |
| Répétabilité | RMS intra-IDrepeatability.rms_intra_id | — | 0.00 | faible | Stable | Positionnement | median RMS distance to repeated-sample centroidalert = RMS_intra_ID / signal_scale, saturated at 10% |
| Répétabilité | SAM intra-IDrepeatability.sam_intra_id | — | 0.00 | faible | Stable | Acquisition | median SAM to repeated-sample centroidalert = min(1, SAM_intra_ID / 0.15 rad) |
| Répétabilité | CV intra-IDrepeatability.cv_intra_id | — | 0.00 | faible | Stable | Opérateur | median within-ID band CValert = min(1, CV_intra_ID / 0.25) |
| Structure du dataset | PCA score densitystructure.pca_score_density | 0.60277 | 0.59 | moyen | Sous-populations | Lots différents | 1 / median kNN distance in PCA score spacealert follows density_cv/profile structure complexity, not raw density alone |
| Structure du dataset | Local Outlier Factor (LOF)structure.local_outlier_factor_p95 | 1.773 | 0.39 | faible | Population normale | Cas rares | p95 approximate LOF from PCA-score kNN distancesalert = min(1, max(0, LOF_p95 - 1) / 2) |
| Structure du dataset | Isolation Forest scorestructure.isolation_forest_score_p95 | 0.57903 | 0.59 | moyen | Spectre atypique | Diverses causes | p95 IsolationForest anomaly score on PCA scoresalert follows structure complexity; raw score is implementation-dependent |
| Target | max |r| | axis @ max | mean |r| | |r| ≥ .5 |
|---|---|---|---|---|
| ref_sugar | 0.952 | 1,854 | 0.734 | 77.0% |
| ref_moisture | 0.922 | 800 | 0.726 | 82.5% |
| Wavelengths | 600 |
|---|---|
| Axis range | 850–2,048 nm |
| Mean spacing | 2 nm |
| Grid | uniform |
| Observations | 32 |
| Value range | 0.285 – 1.27 |
|---|---|
| Mean range | 0.475 – 1.14 |
| Mean level | 0.8632 |
| Area | 1034 |
| PTP | 0.6688 |
| Noise RMS | 0.00011614 |
| SNR | 7.4e+03 |
| SNR dB | 8e+01 dB |
| Dynamic range | 0.669 |
| Smoothness | 0.0005434 |
| Saturated | 0.0% |
| X-outliers | 10 |
| NaN ratio | 0.00% |
|---|---|
| Inf count | 0 |
| Zero ratio | 0.00% |
| Spike count | 91 |
| Spike rate | 0.48% |
| Jump count | 13 |
| Jump rate | 0.07% |
| Clip fraction | 0.01% |
| Baseline slope | 0.73586 |
|---|---|
| Curvature RMS | 0.00050351 |
| D1 RMS | 0.0030987 |
| RMS to mean | 0.077231 |
| RMS p95 | 0.16142 |
| SAM to mean | 0.045676 |
| SAM p95 | 0.11439 |
| Affine offset p95 | 0.31286 |
| Affine gain p95 Δ | 0.25134 |
| Affine residual p95 | 0.038022 |
| Xcorr lag p95 | 0 |
| PCA Q p95/median | 2.2 |
|---|---|
| Hotelling T2 p95/median | 3.4 |
| Mahalanobis H p95/median | 1.8 |
| Repeat groups | 0 |
| Effective rank | 1.3 |
|---|---|
| PCs → 95% var | 2 |
| PCs → 99% var | 2 |
| Top-10 cum. var | 100.0% |
| Famille | Métrique calculée | Valeur | Score | Niveau | Interprétation dataset | Causes typiques | Calcul / scoring |
|---|---|---|---|---|---|---|---|
| Intégrité des données | NaN ratiointegrity.nan_ratio | 0% | 0.00 | faible | Spectre complet | Erreur acquisition/export | count(isnan(X)) / X.sizealert = min(1, nan_ratio / 0.05) |
| Intégrité des données | Inf countintegrity.inf_count | 0 | 0.00 | faible | Normal | Calculs invalides | count(isinf(X))alert = min(1, inf_count / 1) |
| Intégrité des données | Zero ratiointegrity.zero_ratio | 0% | 0.00 | faible | Normal | Export, saturation | count(X == 0) / count(finite X)alert = min(1, zero_ratio / 0.05) |
| Amplitude globale | Mean reflectanceamplitude.mean_reflectance | 0.86315 | 1.00 | fort | Valeur atypique: Trop clair / fond visible ou Trop sombre | Fond, géométrie | mean(X finite)alert reuses baseline/shape drift because absolute reflectance ranges are technology-dependent |
| Amplitude globale | Area under curveamplitude.area_under_curve | 1034.2 | 1.00 | fort | Valeur atypique: Différence d'éclairement ou Normal | Distance sonde | trapezoid(mean_spectrum, spectral_axis)alert reuses baseline/shape drift because area scale depends on axis and units |
| Amplitude globale | Peak-to-peak (PTP)amplitude.peak_to_peak | 0.66882 | 0.00 | faible | Variabilité forte | Saturation | max(mean_spectrum) - min(mean_spectrum)alert increases when dynamic range is abnormally flat |
| Amplitude globale | Varianceamplitude.variance | 0.062471 | 0.00 | faible | Normal ou hétérogène | Mauvais contact | var(X finite)alert increases when variance/dynamic range is abnormally flat |
| Bruit | Noise RMSnoise.noise_rms | 0.00011614 | 0.00 | faible | Stable | Lampe, détecteur | median MAD(second derivative) * 1.4826 / sqrt(6)alert = noise_rms / signal_scale, saturated at 5% |
| Bruit | SNRnoise.snr | 7432 | 0.00 | faible | Bon signal | Acquisition | mean(abs(X)) / noise_rmsalert decreases with SNR dB; >=40 dB is treated as low alert |
| Bruit | Bandwise SNRnoise.bandwise_snr_min | 785.23 | 0.00 | faible | Zone fiable | Détecteur | min(abs(mean_spectrum) / local second-derivative noise)alert decreases with worst-band SNR dB; >=35 dB is treated as low alert |
| Artefacts locaux | Spike countartefacts.spike_count | 91 | 0.48 | moyen | Artefacts | Cosmic rays, splice | count robust outliers in second derivativealert follows spike_rate, saturated at 1% |
| Artefacts locaux | Spike rateartefacts.spike_rate | 0.476% | 0.48 | moyen | Spectre suspect | Interpolation | spike_count / (n_samples * (n_features - 2))alert = min(1, spike_rate / 0.01) |
| Artefacts locaux | Jump countartefacts.jump_count | 13 | 0.07 | faible | Continu | Splice | count robust outliers in first derivativealert follows jump_rate, saturated at 1% |
| Artefacts locaux | Jump rateartefacts.jump_rate | 0.0678% | 0.07 | faible | Normal | Calibration | jump_count / (n_samples * (n_features - 1))alert = min(1, jump_rate / 0.01) |
| Artefacts locaux | Clip fractionartefacts.clip_fraction | 0.0104% | 0.01 | faible | Normal | Détecteur saturé | fraction of finite cells equal to repeated min/max extremaalert = min(1, clip_fraction / 0.01) |
| Forme spectrale | Baseline slopeshape.baseline_slope | 0.73586 | 1.00 | fort | Dérive | Éclairement | linear slope of mean_spectrum over normalized axisalert = abs(slope / signal_scale), saturated at 0.5 |
| Forme spectrale | Curvature RMSshape.curvature_rms | 0.00050351 | 0.06 | faible | Lisse | Fond, splice | median RMS(second derivative per spectrum)alert = curvature_rms / signal_scale, saturated at 1% |
| Forme spectrale | D1 RMSshape.d1_rms | 0.0030987 | 0.07 | faible | Plat | Biologie ou artefact | median RMS(first derivative per spectrum)alert = d1_rms / signal_scale, saturated at 5% |
| Outliers multivariés | PCA Q (SPE)outliers.pca_q_ratio | 2.1685 | 0.27 | faible | Conforme | Artefact, mélange | p95(Q/SPE residual) / median(Q/SPE residual)alert = min(1, pca_q_ratio / 8) |
| Outliers multivariés | Hotelling T²outliers.hotelling_t2_ratio | 3.4201 | 0.43 | moyen | Extrême mais cohérent | Variabilité naturelle | p95(Hotelling T2) / median(Hotelling T2)alert = min(1, hotelling_t2_ratio / 8) |
| Outliers multivariés | Mahalanobis Houtliers.mahalanobis_h_ratio | 1.8493 | 0.46 | moyen | Outlier global | Domaine différent | p95(sqrt(T2)) / median(sqrt(T2))alert = min(1, mahalanobis_h_ratio / 4) |
| Comparaison à référence | RMS to mean spectrumreference.rms_to_mean_spectrum_p95 | 0.16142 | 0.75 | fort | Spectre différent | Domain shift | p95 RMS distance to dataset mean spectrumalert = RMS_p95 / signal_scale, saturated at 25% |
| Comparaison à référence | Spectral Angle Mapper (SAM)reference.sam_to_mean_spectrum_p95 | 0.11439 | 0.33 | faible | Similaire | Fond, géométrie | p95 spectral angle to dataset mean spectrumalert = min(1, SAM_p95 / 0.35 rad) |
| Répétabilité | RMS intra-IDrepeatability.rms_intra_id | — | 0.00 | faible | Stable | Positionnement | median RMS distance to repeated-sample centroidalert = RMS_intra_ID / signal_scale, saturated at 10% |
| Répétabilité | SAM intra-IDrepeatability.sam_intra_id | — | 0.00 | faible | Stable | Acquisition | median SAM to repeated-sample centroidalert = min(1, SAM_intra_ID / 0.15 rad) |
| Répétabilité | CV intra-IDrepeatability.cv_intra_id | — | 0.00 | faible | Stable | Opérateur | median within-ID band CValert = min(1, CV_intra_ID / 0.25) |
| Structure du dataset | PCA score densitystructure.pca_score_density | 1.2874 | 0.64 | moyen | Sous-populations | Lots différents | 1 / median kNN distance in PCA score spacealert follows density_cv/profile structure complexity, not raw density alone |
| Structure du dataset | Local Outlier Factor (LOF)structure.local_outlier_factor_p95 | 1.9288 | 0.46 | moyen | Spectre isolé | Cas rares | p95 approximate LOF from PCA-score kNN distancesalert = min(1, max(0, LOF_p95 - 1) / 2) |
| Structure du dataset | Isolation Forest scorestructure.isolation_forest_score_p95 | 0.61634 | 0.64 | moyen | Spectre atypique | Diverses causes | p95 IsolationForest anomaly score on PCA scoresalert follows structure complexity; raw score is implementation-dependent |
| Target | max |r| | axis @ max | mean |r| | |r| ≥ .5 |
|---|---|---|---|---|
| ref_sugar | 0.931 | 1,210 | 0.789 | 88.3% |
| ref_moisture | 0.956 | 1,408 | 0.849 | 94.7% |
| Wavelengths | 406 |
|---|---|
| Axis range | 1051–2148 nm |
| Mean spacing | 2.71 nm |
| Grid | irregular |
| Observations | 32 |
| Value range | 0.524 – 0.966 |
|---|---|
| Mean range | 0.696 – 0.94 |
| Mean level | 0.8307 |
| Area | 944.8 |
| PTP | 0.2433 |
| Noise RMS | 0.00021694 |
| SNR | 3.8e+03 |
| SNR dB | 7e+01 dB |
| Dynamic range | 0.243 |
| Smoothness | 0.0006818 |
| Saturated | 0.0% |
| X-outliers | 10 |
| NaN ratio | 0.00% |
|---|---|
| Inf count | 0 |
| Zero ratio | 0.00% |
| Spike count | 5 |
| Spike rate | 0.04% |
| Jump count | 0 |
| Jump rate | 0.00% |
| Clip fraction | 0.02% |
| Baseline slope | 0.26991 |
|---|---|
| Curvature RMS | 0.00058439 |
| D1 RMS | 0.001255 |
| RMS to mean | 0.045331 |
| RMS p95 | 0.10081 |
| SAM to mean | 0.033626 |
| SAM p95 | 0.080962 |
| Affine offset p95 | 0.60416 |
| Affine gain p95 Δ | 0.63667 |
| Affine residual p95 | 0.011017 |
| Xcorr lag p95 | 0 |
| PCA Q p95/median | 3.1 |
|---|---|
| Hotelling T2 p95/median | 3.9 |
| Mahalanobis H p95/median | 2 |
| Repeat groups | 0 |
| Effective rank | 1.2 |
|---|---|
| PCs → 95% var | 2 |
| PCs → 99% var | 2 |
| Top-10 cum. var | 100.0% |
| Famille | Métrique calculée | Valeur | Score | Niveau | Interprétation dataset | Causes typiques | Calcul / scoring |
|---|---|---|---|---|---|---|---|
| Intégrité des données | NaN ratiointegrity.nan_ratio | 0% | 0.00 | faible | Spectre complet | Erreur acquisition/export | count(isnan(X)) / X.sizealert = min(1, nan_ratio / 0.05) |
| Intégrité des données | Inf countintegrity.inf_count | 0 | 0.00 | faible | Normal | Calculs invalides | count(isinf(X))alert = min(1, inf_count / 1) |
| Intégrité des données | Zero ratiointegrity.zero_ratio | 0% | 0.00 | faible | Normal | Export, saturation | count(X == 0) / count(finite X)alert = min(1, zero_ratio / 0.05) |
| Amplitude globale | Mean reflectanceamplitude.mean_reflectance | 0.83068 | 0.65 | moyen | Valeur atypique: Trop clair / fond visible ou Trop sombre | Fond, géométrie | mean(X finite)alert reuses baseline/shape drift because absolute reflectance ranges are technology-dependent |
| Amplitude globale | Area under curveamplitude.area_under_curve | 944.79 | 0.65 | moyen | Valeur atypique: Différence d'éclairement ou Normal | Distance sonde | trapezoid(mean_spectrum, spectral_axis)alert reuses baseline/shape drift because area scale depends on axis and units |
| Amplitude globale | Peak-to-peak (PTP)amplitude.peak_to_peak | 0.24334 | 0.00 | faible | Variabilité forte | Saturation | max(mean_spectrum) - min(mean_spectrum)alert increases when dynamic range is abnormally flat |
| Amplitude globale | Varianceamplitude.variance | 0.0099667 | 0.00 | faible | Normal ou hétérogène | Mauvais contact | var(X finite)alert increases when variance/dynamic range is abnormally flat |
| Bruit | Noise RMSnoise.noise_rms | 0.00021694 | 0.01 | faible | Stable | Lampe, détecteur | median MAD(second derivative) * 1.4826 / sqrt(6)alert = noise_rms / signal_scale, saturated at 5% |
| Bruit | SNRnoise.snr | 3829.1 | 0.00 | faible | Bon signal | Acquisition | mean(abs(X)) / noise_rmsalert decreases with SNR dB; >=40 dB is treated as low alert |
| Bruit | Bandwise SNRnoise.bandwise_snr_min | 1553.5 | 0.00 | faible | Zone fiable | Détecteur | min(abs(mean_spectrum) / local second-derivative noise)alert decreases with worst-band SNR dB; >=35 dB is treated as low alert |
| Artefacts locaux | Spike countartefacts.spike_count | 5 | 0.04 | faible | Spectre propre | Cosmic rays, splice | count robust outliers in second derivativealert follows spike_rate, saturated at 1% |
| Artefacts locaux | Spike rateartefacts.spike_rate | 0.0387% | 0.04 | faible | Normal | Interpolation | spike_count / (n_samples * (n_features - 2))alert = min(1, spike_rate / 0.01) |
| Artefacts locaux | Jump countartefacts.jump_count | 0 | 0.00 | faible | Continu | Splice | count robust outliers in first derivativealert follows jump_rate, saturated at 1% |
| Artefacts locaux | Jump rateartefacts.jump_rate | 0% | 0.00 | faible | Normal | Calibration | jump_count / (n_samples * (n_features - 1))alert = min(1, jump_rate / 0.01) |
| Artefacts locaux | Clip fractionartefacts.clip_fraction | 0.0154% | 0.02 | faible | Normal | Détecteur saturé | fraction of finite cells equal to repeated min/max extremaalert = min(1, clip_fraction / 0.01) |
| Forme spectrale | Baseline slopeshape.baseline_slope | 0.26991 | 0.65 | moyen | Dérive | Éclairement | linear slope of mean_spectrum over normalized axisalert = abs(slope / signal_scale), saturated at 0.5 |
| Forme spectrale | Curvature RMSshape.curvature_rms | 0.00058439 | 0.07 | faible | Lisse | Fond, splice | median RMS(second derivative per spectrum)alert = curvature_rms / signal_scale, saturated at 1% |
| Forme spectrale | D1 RMSshape.d1_rms | 0.001255 | 0.03 | faible | Plat | Biologie ou artefact | median RMS(first derivative per spectrum)alert = d1_rms / signal_scale, saturated at 5% |
| Outliers multivariés | PCA Q (SPE)outliers.pca_q_ratio | 3.053 | 0.38 | faible | Conforme | Artefact, mélange | p95(Q/SPE residual) / median(Q/SPE residual)alert = min(1, pca_q_ratio / 8) |
| Outliers multivariés | Hotelling T²outliers.hotelling_t2_ratio | 3.878 | 0.48 | moyen | Extrême mais cohérent | Variabilité naturelle | p95(Hotelling T2) / median(Hotelling T2)alert = min(1, hotelling_t2_ratio / 8) |
| Outliers multivariés | Mahalanobis Houtliers.mahalanobis_h_ratio | 1.9701 | 0.49 | moyen | Outlier global | Domaine différent | p95(sqrt(T2)) / median(sqrt(T2))alert = min(1, mahalanobis_h_ratio / 4) |
| Comparaison à référence | RMS to mean spectrumreference.rms_to_mean_spectrum_p95 | 0.10081 | 0.49 | moyen | Spectre différent | Domain shift | p95 RMS distance to dataset mean spectrumalert = RMS_p95 / signal_scale, saturated at 25% |
| Comparaison à référence | Spectral Angle Mapper (SAM)reference.sam_to_mean_spectrum_p95 | 0.080962 | 0.23 | faible | Similaire | Fond, géométrie | p95 spectral angle to dataset mean spectrumalert = min(1, SAM_p95 / 0.35 rad) |
| Répétabilité | RMS intra-IDrepeatability.rms_intra_id | — | 0.00 | faible | Stable | Positionnement | median RMS distance to repeated-sample centroidalert = RMS_intra_ID / signal_scale, saturated at 10% |
| Répétabilité | SAM intra-IDrepeatability.sam_intra_id | — | 0.00 | faible | Stable | Acquisition | median SAM to repeated-sample centroidalert = min(1, SAM_intra_ID / 0.15 rad) |
| Répétabilité | CV intra-IDrepeatability.cv_intra_id | — | 0.00 | faible | Stable | Opérateur | median within-ID band CValert = min(1, CV_intra_ID / 0.25) |
| Structure du dataset | PCA score densitystructure.pca_score_density | 3.2265 | 0.89 | fort | Sous-populations | Lots différents | 1 / median kNN distance in PCA score spacealert follows density_cv/profile structure complexity, not raw density alone |
| Structure du dataset | Local Outlier Factor (LOF)structure.local_outlier_factor_p95 | 2.682 | 0.84 | fort | Spectre isolé | Cas rares | p95 approximate LOF from PCA-score kNN distancesalert = min(1, max(0, LOF_p95 - 1) / 2) |
| Structure du dataset | Isolation Forest scorestructure.isolation_forest_score_p95 | 0.57702 | 0.89 | fort | Spectre atypique | Diverses causes | p95 IsolationForest anomaly score on PCA scoresalert follows structure complexity; raw score is implementation-dependent |
| Target | max |r| | axis @ max | mean |r| | |r| ≥ .5 |
|---|---|---|---|---|
| ref_sugar | 0.897 | 1.12e+03 | 0.597 | 61.1% |
| ref_moisture | 0.914 | 1.33e+03 | 0.668 | 70.7% |
| Wavelengths | 664 |
|---|---|
| Axis range | 850–2443 nm |
| Mean spacing | 2.4 nm |
| Grid | irregular |
| Observations | 32 |
| Value range | -0.295 – 1.25 |
|---|---|
| Mean range | -0.173 – 1.05 |
| Mean level | 0.3831 |
| Area | 927.4 |
| PTP | 1.22 |
| Noise RMS | 0.0012629 |
| SNR | 3.3e+02 |
| SNR dB | 5e+01 dB |
| Dynamic range | 1.22 |
| Smoothness | 0.005749 |
| Saturated | 0.0% |
| X-outliers | 10 |
| NaN ratio | 0.00% |
|---|---|
| Inf count | 0 |
| Zero ratio | 0.00% |
| Spike count | 180 |
| Spike rate | 0.85% |
| Jump count | 158 |
| Jump rate | 0.74% |
| Clip fraction | 0.01% |
| Baseline slope | 1.2411 |
|---|---|
| Curvature RMS | 0.0050735 |
| D1 RMS | 0.0089656 |
| RMS to mean | 0.09958 |
| RMS p95 | 0.2052 |
| SAM to mean | 0.10555 |
| SAM p95 | 0.33872 |
| Affine offset p95 | 0.15348 |
| Affine gain p95 Δ | 0.12015 |
| Affine residual p95 | 0.088313 |
| Xcorr lag p95 | 0 |
| PCA Q p95/median | 2.7 |
|---|---|
| Hotelling T2 p95/median | 3 |
| Mahalanobis H p95/median | 1.7 |
| Repeat groups | 0 |
| Effective rank | 1.3 |
|---|---|
| PCs → 95% var | 2 |
| PCs → 99% var | 3 |
| Top-10 cum. var | 100.0% |
| Famille | Métrique calculée | Valeur | Score | Niveau | Interprétation dataset | Causes typiques | Calcul / scoring |
|---|---|---|---|---|---|---|---|
| Intégrité des données | NaN ratiointegrity.nan_ratio | 0% | 0.00 | faible | Spectre complet | Erreur acquisition/export | count(isnan(X)) / X.sizealert = min(1, nan_ratio / 0.05) |
| Intégrité des données | Inf countintegrity.inf_count | 0 | 0.00 | faible | Normal | Calculs invalides | count(isinf(X))alert = min(1, inf_count / 1) |
| Intégrité des données | Zero ratiointegrity.zero_ratio | 0% | 0.00 | faible | Normal | Export, saturation | count(X == 0) / count(finite X)alert = min(1, zero_ratio / 0.05) |
| Amplitude globale | Mean reflectanceamplitude.mean_reflectance | 0.38312 | 1.00 | fort | Valeur atypique: Trop clair / fond visible ou Trop sombre | Fond, géométrie | mean(X finite)alert reuses baseline/shape drift because absolute reflectance ranges are technology-dependent |
| Amplitude globale | Area under curveamplitude.area_under_curve | 927.41 | 1.00 | fort | Valeur atypique: Différence d'éclairement ou Normal | Distance sonde | trapezoid(mean_spectrum, spectral_axis)alert reuses baseline/shape drift because area scale depends on axis and units |
| Amplitude globale | Peak-to-peak (PTP)amplitude.peak_to_peak | 1.2198 | 0.00 | faible | Variabilité forte | Saturation | max(mean_spectrum) - min(mean_spectrum)alert increases when dynamic range is abnormally flat |
| Amplitude globale | Varianceamplitude.variance | 0.17618 | 0.00 | faible | Normal ou hétérogène | Mauvais contact | var(X finite)alert increases when variance/dynamic range is abnormally flat |
| Bruit | Noise RMSnoise.noise_rms | 0.0012629 | 0.02 | faible | Stable | Lampe, détecteur | median MAD(second derivative) * 1.4826 / sqrt(6)alert = noise_rms / signal_scale, saturated at 5% |
| Bruit | SNRnoise.snr | 334.06 | 0.00 | faible | Bon signal | Acquisition | mean(abs(X)) / noise_rmsalert decreases with SNR dB; >=40 dB is treated as low alert |
| Bruit | Bandwise SNRnoise.bandwise_snr_min | 0.079264 | 1.00 | fort | Zone problématique | Détecteur | min(abs(mean_spectrum) / local second-derivative noise)alert decreases with worst-band SNR dB; >=35 dB is treated as low alert |
| Artefacts locaux | Spike countartefacts.spike_count | 180 | 0.85 | fort | Artefacts | Cosmic rays, splice | count robust outliers in second derivativealert follows spike_rate, saturated at 1% |
| Artefacts locaux | Spike rateartefacts.spike_rate | 0.85% | 0.85 | fort | Spectre suspect | Interpolation | spike_count / (n_samples * (n_features - 2))alert = min(1, spike_rate / 0.01) |
| Artefacts locaux | Jump countartefacts.jump_count | 158 | 0.74 | fort | Raccord détecteur | Splice | count robust outliers in first derivativealert follows jump_rate, saturated at 1% |
| Artefacts locaux | Jump rateartefacts.jump_rate | 0.745% | 0.74 | fort | Problème spectral | Calibration | jump_count / (n_samples * (n_features - 1))alert = min(1, jump_rate / 0.01) |
| Artefacts locaux | Clip fractionartefacts.clip_fraction | 0.00941% | 0.01 | faible | Normal | Détecteur saturé | fraction of finite cells equal to repeated min/max extremaalert = min(1, clip_fraction / 0.01) |
| Forme spectrale | Baseline slopeshape.baseline_slope | 1.2411 | 1.00 | fort | Dérive | Éclairement | linear slope of mean_spectrum over normalized axisalert = abs(slope / signal_scale), saturated at 0.5 |
| Forme spectrale | Curvature RMSshape.curvature_rms | 0.0050735 | 0.42 | faible | Lisse | Fond, splice | median RMS(second derivative per spectrum)alert = curvature_rms / signal_scale, saturated at 1% |
| Forme spectrale | D1 RMSshape.d1_rms | 0.0089656 | 0.15 | faible | Plat | Biologie ou artefact | median RMS(first derivative per spectrum)alert = d1_rms / signal_scale, saturated at 5% |
| Outliers multivariés | PCA Q (SPE)outliers.pca_q_ratio | 2.7459 | 0.34 | faible | Conforme | Artefact, mélange | p95(Q/SPE residual) / median(Q/SPE residual)alert = min(1, pca_q_ratio / 8) |
| Outliers multivariés | Hotelling T²outliers.hotelling_t2_ratio | 3.0067 | 0.38 | faible | Central | Variabilité naturelle | p95(Hotelling T2) / median(Hotelling T2)alert = min(1, hotelling_t2_ratio / 8) |
| Outliers multivariés | Mahalanobis Houtliers.mahalanobis_h_ratio | 1.7329 | 0.43 | moyen | Outlier global | Domaine différent | p95(sqrt(T2)) / median(sqrt(T2))alert = min(1, mahalanobis_h_ratio / 4) |
| Comparaison à référence | RMS to mean spectrumreference.rms_to_mean_spectrum_p95 | 0.2052 | 0.67 | moyen | Spectre différent | Domain shift | p95 RMS distance to dataset mean spectrumalert = RMS_p95 / signal_scale, saturated at 25% |
| Comparaison à référence | Spectral Angle Mapper (SAM)reference.sam_to_mean_spectrum_p95 | 0.33872 | 0.97 | fort | Forme différente | Fond, géométrie | p95 spectral angle to dataset mean spectrumalert = min(1, SAM_p95 / 0.35 rad) |
| Répétabilité | RMS intra-IDrepeatability.rms_intra_id | — | 0.00 | faible | Stable | Positionnement | median RMS distance to repeated-sample centroidalert = RMS_intra_ID / signal_scale, saturated at 10% |
| Répétabilité | SAM intra-IDrepeatability.sam_intra_id | — | 0.00 | faible | Stable | Acquisition | median SAM to repeated-sample centroidalert = min(1, SAM_intra_ID / 0.15 rad) |
| Répétabilité | CV intra-IDrepeatability.cv_intra_id | — | 0.00 | faible | Stable | Opérateur | median within-ID band CValert = min(1, CV_intra_ID / 0.25) |
| Structure du dataset | PCA score densitystructure.pca_score_density | 0.87479 | 0.62 | moyen | Sous-populations | Lots différents | 1 / median kNN distance in PCA score spacealert follows density_cv/profile structure complexity, not raw density alone |
| Structure du dataset | Local Outlier Factor (LOF)structure.local_outlier_factor_p95 | 1.8622 | 0.43 | moyen | Spectre isolé | Cas rares | p95 approximate LOF from PCA-score kNN distancesalert = min(1, max(0, LOF_p95 - 1) / 2) |
| Structure du dataset | Isolation Forest scorestructure.isolation_forest_score_p95 | 0.58465 | 0.62 | moyen | Spectre atypique | Diverses causes | p95 IsolationForest anomaly score on PCA scoresalert follows structure complexity; raw score is implementation-dependent |
| Target | max |r| | axis @ max | mean |r| | |r| ≥ .5 |
|---|---|---|---|---|
| ref_sugar | 0.954 | 1.86e+03 | 0.851 | 93.1% |
| ref_moisture | 0.921 | 851 | 0.809 | 91.4% |
| Wavelengths | 950 |
|---|---|
| Axis range | 651–3,799 cm-1 |
| Mean spacing | 3.32 cm-1 |
| Grid | irregular |
| Observations | 32 |
| Value range | 0.0251 – 2.53 |
|---|---|
| Mean range | 0.0296 – 2.29 |
| Mean level | 0.7209 |
| Area | 2079 |
| PTP | 2.256 |
| Noise RMS | 0.001611 |
| SNR | 4.5e+02 |
| SNR dB | 5e+01 dB |
| Dynamic range | 2.26 |
| Smoothness | 0.01152 |
| Saturated | 0.0% |
| X-outliers | 10 |
| NaN ratio | 0.00% |
|---|---|
| Inf count | 0 |
| Zero ratio | 0.00% |
| Spike count | 895 |
| Spike rate | 2.95% |
| Jump count | 204 |
| Jump rate | 0.67% |
| Clip fraction | 0.01% |
| Baseline slope | -0.55222 |
|---|---|
| Curvature RMS | 0.01154 |
| D1 RMS | 0.027924 |
| RMS to mean | 0.030789 |
| RMS p95 | 0.052762 |
| SAM to mean | 0.029553 |
| SAM p95 | 0.039962 |
| Affine offset p95 | 0.016317 |
| Affine gain p95 Δ | 0.054719 |
| Affine residual p95 | 0.037258 |
| Xcorr lag p95 | 0 |
| PCA Q p95/median | 2.8 |
|---|---|
| Hotelling T2 p95/median | 3.8 |
| Mahalanobis H p95/median | 2 |
| Repeat groups | 0 |
| Effective rank | 3.3 |
|---|---|
| PCs → 95% var | 4 |
| PCs → 99% var | 7 |
| Top-10 cum. var | 99.8% |
| Famille | Métrique calculée | Valeur | Score | Niveau | Interprétation dataset | Causes typiques | Calcul / scoring |
|---|---|---|---|---|---|---|---|
| Intégrité des données | NaN ratiointegrity.nan_ratio | 0% | 0.00 | faible | Spectre complet | Erreur acquisition/export | count(isnan(X)) / X.sizealert = min(1, nan_ratio / 0.05) |
| Intégrité des données | Inf countintegrity.inf_count | 0 | 0.00 | faible | Normal | Calculs invalides | count(isinf(X))alert = min(1, inf_count / 1) |
| Intégrité des données | Zero ratiointegrity.zero_ratio | 0% | 0.00 | faible | Normal | Export, saturation | count(X == 0) / count(finite X)alert = min(1, zero_ratio / 0.05) |
| Amplitude globale | Mean reflectanceamplitude.mean_reflectance | 0.72093 | 0.49 | moyen | Valeur atypique: Trop clair / fond visible ou Trop sombre | Fond, géométrie | mean(X finite)alert reuses baseline/shape drift because absolute reflectance ranges are technology-dependent |
| Amplitude globale | Area under curveamplitude.area_under_curve | 2079 | 0.49 | moyen | Valeur atypique: Différence d'éclairement ou Normal | Distance sonde | trapezoid(mean_spectrum, spectral_axis)alert reuses baseline/shape drift because area scale depends on axis and units |
| Amplitude globale | Peak-to-peak (PTP)amplitude.peak_to_peak | 2.2556 | 0.00 | faible | Variabilité forte | Saturation | max(mean_spectrum) - min(mean_spectrum)alert increases when dynamic range is abnormally flat |
| Amplitude globale | Varianceamplitude.variance | 0.34179 | 0.00 | faible | Normal ou hétérogène | Mauvais contact | var(X finite)alert increases when variance/dynamic range is abnormally flat |
| Bruit | Noise RMSnoise.noise_rms | 0.001611 | 0.01 | faible | Stable | Lampe, détecteur | median MAD(second derivative) * 1.4826 / sqrt(6)alert = noise_rms / signal_scale, saturated at 5% |
| Bruit | SNRnoise.snr | 447.51 | 0.00 | faible | Bon signal | Acquisition | mean(abs(X)) / noise_rmsalert decreases with SNR dB; >=40 dB is treated as low alert |
| Bruit | Bandwise SNRnoise.bandwise_snr_min | 87.489 | 0.00 | faible | Zone fiable | Détecteur | min(abs(mean_spectrum) / local second-derivative noise)alert decreases with worst-band SNR dB; >=35 dB is treated as low alert |
| Artefacts locaux | Spike countartefacts.spike_count | 895 | 1.00 | fort | Artefacts | Cosmic rays, splice | count robust outliers in second derivativealert follows spike_rate, saturated at 1% |
| Artefacts locaux | Spike rateartefacts.spike_rate | 2.95% | 1.00 | fort | Spectre suspect | Interpolation | spike_count / (n_samples * (n_features - 2))alert = min(1, spike_rate / 0.01) |
| Artefacts locaux | Jump countartefacts.jump_count | 204 | 0.67 | moyen | Raccord détecteur | Splice | count robust outliers in first derivativealert follows jump_rate, saturated at 1% |
| Artefacts locaux | Jump rateartefacts.jump_rate | 0.672% | 0.67 | moyen | Problème spectral | Calibration | jump_count / (n_samples * (n_features - 1))alert = min(1, jump_rate / 0.01) |
| Artefacts locaux | Clip fractionartefacts.clip_fraction | 0.00658% | 0.01 | faible | Normal | Détecteur saturé | fraction of finite cells equal to repeated min/max extremaalert = min(1, clip_fraction / 0.01) |
| Forme spectrale | Baseline slopeshape.baseline_slope | -0.55222 | 0.49 | moyen | Dérive | Éclairement | linear slope of mean_spectrum over normalized axisalert = abs(slope / signal_scale), saturated at 0.5 |
| Forme spectrale | Curvature RMSshape.curvature_rms | 0.01154 | 0.51 | moyen | Forme inhabituelle | Fond, splice | median RMS(second derivative per spectrum)alert = curvature_rms / signal_scale, saturated at 1% |
| Forme spectrale | D1 RMSshape.d1_rms | 0.027924 | 0.25 | faible | Plat | Biologie ou artefact | median RMS(first derivative per spectrum)alert = d1_rms / signal_scale, saturated at 5% |
| Outliers multivariés | PCA Q (SPE)outliers.pca_q_ratio | 2.7951 | 0.35 | faible | Conforme | Artefact, mélange | p95(Q/SPE residual) / median(Q/SPE residual)alert = min(1, pca_q_ratio / 8) |
| Outliers multivariés | Hotelling T²outliers.hotelling_t2_ratio | 3.8275 | 0.48 | moyen | Extrême mais cohérent | Variabilité naturelle | p95(Hotelling T2) / median(Hotelling T2)alert = min(1, hotelling_t2_ratio / 8) |
| Outliers multivariés | Mahalanobis Houtliers.mahalanobis_h_ratio | 1.9586 | 0.49 | moyen | Outlier global | Domaine différent | p95(sqrt(T2)) / median(sqrt(T2))alert = min(1, mahalanobis_h_ratio / 4) |
| Comparaison à référence | RMS to mean spectrumreference.rms_to_mean_spectrum_p95 | 0.052762 | 0.09 | faible | Typique | Domain shift | p95 RMS distance to dataset mean spectrumalert = RMS_p95 / signal_scale, saturated at 25% |
| Comparaison à référence | Spectral Angle Mapper (SAM)reference.sam_to_mean_spectrum_p95 | 0.039962 | 0.11 | faible | Similaire | Fond, géométrie | p95 spectral angle to dataset mean spectrumalert = min(1, SAM_p95 / 0.35 rad) |
| Répétabilité | RMS intra-IDrepeatability.rms_intra_id | — | 0.00 | faible | Stable | Positionnement | median RMS distance to repeated-sample centroidalert = RMS_intra_ID / signal_scale, saturated at 10% |
| Répétabilité | SAM intra-IDrepeatability.sam_intra_id | — | 0.00 | faible | Stable | Acquisition | median SAM to repeated-sample centroidalert = min(1, SAM_intra_ID / 0.15 rad) |
| Répétabilité | CV intra-IDrepeatability.cv_intra_id | — | 0.00 | faible | Stable | Opérateur | median within-ID band CValert = min(1, CV_intra_ID / 0.25) |
| Structure du dataset | PCA score densitystructure.pca_score_density | 1.2889 | 0.48 | moyen | Sous-populations | Lots différents | 1 / median kNN distance in PCA score spacealert follows density_cv/profile structure complexity, not raw density alone |
| Structure du dataset | Local Outlier Factor (LOF)structure.local_outlier_factor_p95 | 1.427 | 0.21 | faible | Population normale | Cas rares | p95 approximate LOF from PCA-score kNN distancesalert = min(1, max(0, LOF_p95 - 1) / 2) |
| Structure du dataset | Isolation Forest scorestructure.isolation_forest_score_p95 | 0.59057 | 0.48 | moyen | Spectre atypique | Diverses causes | p95 IsolationForest anomaly score on PCA scoresalert follows structure complexity; raw score is implementation-dependent |
| Target | max |r| | axis @ max | mean |r| | |r| ≥ .5 |
|---|---|---|---|---|
| ref_sugar | 0.965 | 903 | 0.346 | 34.7% |
| ref_moisture | 0.893 | 1,236 | 0.418 | 45.1% |
| Famille | Métrique | Ce qu’elle détecte | Forte valeur = | Faible valeur = | Causes typiques | Calcul / score |
|---|---|---|---|---|---|---|
| Intégrité des données | NaN ratio | Données manquantes | Spectre corrompu | Spectre complet | Erreur acquisition/export | count(isnan(X)) / X.sizealert = min(1, nan_ratio / 0.05) |
| Intégrité des données | Inf count | Valeurs infinies | Corruption | Normal | Calculs invalides | count(isinf(X))alert = min(1, inf_count / 1) |
| Intégrité des données | Zero ratio | Colonnes ou cellules nulles | Spectre tronqué | Normal | Export, saturation | count(X == 0) / count(finite X)alert = min(1, zero_ratio / 0.05) |
| Amplitude globale | Mean reflectance | Niveau moyen | Trop clair / fond visible | Trop sombre | Fond, géométrie | mean(X finite)alert reuses baseline/shape drift because absolute reflectance ranges are technology-dependent |
| Amplitude globale | Area under curve | Intensité globale | Différence d'éclairement | Normal | Distance sonde | trapezoid(mean_spectrum, spectral_axis)alert reuses baseline/shape drift because area scale depends on axis and units |
| Amplitude globale | Peak-to-peak (PTP) | Dynamique | Variabilité forte | Spectre plat | Saturation | max(mean_spectrum) - min(mean_spectrum)alert increases when dynamic range is abnormally flat |
| Amplitude globale | Variance | Variabilité spectrale | Normal ou hétérogène | Spectre plat | Mauvais contact | var(X finite)alert increases when variance/dynamic range is abnormally flat |
| Bruit | Noise RMS | Bruit haute fréquence | Bruité | Stable | Lampe, détecteur | median MAD(second derivative) * 1.4826 / sqrt(6)alert = noise_rms / signal_scale, saturated at 5% |
| Bruit | SNR | Qualité signal | Bon signal | Mauvais signal | Acquisition | mean(abs(X)) / noise_rmsalert decreases with SNR dB; >=40 dB is treated as low alert |
| Bruit | Bandwise SNR | Bruit localisé | Zone fiable | Zone problématique | Détecteur | min(abs(mean_spectrum) / local second-derivative noise)alert decreases with worst-band SNR dB; >=35 dB is treated as low alert |
| Artefacts locaux | Spike count | Pics étroits | Artefacts | Spectre propre | Cosmic rays, splice | count robust outliers in second derivativealert follows spike_rate, saturated at 1% |
| Artefacts locaux | Spike rate | Densité de pics | Spectre suspect | Normal | Interpolation | spike_count / (n_samples * (n_features - 2))alert = min(1, spike_rate / 0.01) |
| Artefacts locaux | Jump count | Discontinuités | Raccord détecteur | Continu | Splice | count robust outliers in first derivativealert follows jump_rate, saturated at 1% |
| Artefacts locaux | Jump rate | Fréquence de sauts | Problème spectral | Normal | Calibration | jump_count / (n_samples * (n_features - 1))alert = min(1, jump_rate / 0.01) |
| Artefacts locaux | Clip fraction | Saturation | Clipping | Normal | Détecteur saturé | fraction of finite cells equal to repeated min/max extremaalert = min(1, clip_fraction / 0.01) |
| Forme spectrale | Baseline slope | Pente globale | Dérive | Stable | Éclairement | linear slope of mean_spectrum over normalized axisalert = abs(slope / signal_scale), saturated at 0.5 |
| Forme spectrale | Curvature RMS | Courbure | Forme inhabituelle | Lisse | Fond, splice | median RMS(second derivative per spectrum)alert = curvature_rms / signal_scale, saturated at 1% |
| Forme spectrale | D1 RMS | Variabilité locale | Spectre structuré | Plat | Biologie ou artefact | median RMS(first derivative per spectrum)alert = d1_rms / signal_scale, saturated at 5% |
| Outliers multivariés | PCA Q (SPE) | Non expliqué par PCA | Spectre atypique | Conforme | Artefact, mélange | p95(Q/SPE residual) / median(Q/SPE residual)alert = min(1, pca_q_ratio / 8) |
| Outliers multivariés | Hotelling T² | Extrême dans PCA | Extrême mais cohérent | Central | Variabilité naturelle | p95(Hotelling T2) / median(Hotelling T2)alert = min(1, hotelling_t2_ratio / 8) |
| Outliers multivariés | Mahalanobis H | Distance au nuage | Outlier global | Population normale | Domaine différent | p95(sqrt(T2)) / median(sqrt(T2))alert = min(1, mahalanobis_h_ratio / 4) |
| Comparaison à référence | RMS to mean spectrum | Distance moyenne | Spectre différent | Typique | Domain shift | p95 RMS distance to dataset mean spectrumalert = RMS_p95 / signal_scale, saturated at 25% |
| Comparaison à référence | Spectral Angle Mapper (SAM) | Différence de forme | Forme différente | Similaire | Fond, géométrie | p95 spectral angle to dataset mean spectrumalert = min(1, SAM_p95 / 0.35 rad) |
| Répétabilité | RMS intra-ID | Reproductibilité | Mauvaise répétabilité | Stable | Positionnement | median RMS distance to repeated-sample centroidalert = RMS_intra_ID / signal_scale, saturated at 10% |
| Répétabilité | SAM intra-ID | Variation de forme | Instable | Stable | Acquisition | median SAM to repeated-sample centroidalert = min(1, SAM_intra_ID / 0.15 rad) |
| Répétabilité | CV intra-ID | Variabilité interne | Mauvais contrôle | Stable | Opérateur | median within-ID band CValert = min(1, CV_intra_ID / 0.25) |
| Structure du dataset | PCA score density | Clusters | Sous-populations | Homogène | Lots différents | 1 / median kNN distance in PCA score spacealert follows density_cv/profile structure complexity, not raw density alone |
| Structure du dataset | Local Outlier Factor (LOF) | Anomalie locale | Spectre isolé | Population normale | Cas rares | p95 approximate LOF from PCA-score kNN distancesalert = min(1, max(0, LOF_p95 - 1) / 2) |
| Structure du dataset | Isolation Forest score | Anomalie globale | Spectre atypique | Normal | Diverses causes | p95 IsolationForest anomaly score on PCA scoresalert follows structure complexity; raw score is implementation-dependent |
| Technologie | Adaptations / métriques | Anomalies ciblées | Commentaire pratique |
|---|---|---|---|
| UV-Vis 300-1000 nm | Baseline, pente globale, dérive aux bords 300-350 et 900-1000; métriques par zones | Lumière parasite, mauvais blanc, saturation, faible signal aux extrémités | Les bords sont souvent instables; calculer aussi des scores edge/middle. |
| UV-Vis 300-1000 nm | Saturation / clipping proche absorbance max ou réflectance max | Signal écrêté | Très important si absorption forte. |
| UV-Vis 300-1000 nm | Red-edge, position de maximum, ratios de bandes si végétal | Décalage biologique ou artefact optique | Aide à distinguer changement réel et problème d'acquisition. |
| UV-Vis 300-1000 nm | Smoothness / roughness index | Bruit haute fréquence | Souvent plus informatif que le SNR seul. |
| MIR / ATR-FTIR | ATR contact quality index: intensité globale, aire totale, profondeur des bandes clés | Mauvais contact cristal-échantillon | Crucial: beaucoup d'anomalies viennent du contact ATR. |
| MIR / ATR-FTIR | CO2 / H2O atmospheric bands | Mauvaise correction atmosphérique | Pics parasites fréquents. |
| MIR / ATR-FTIR | Baseline curvature / rubber-band residual | Diffusion, contact, dérive baseline | Très utile avant PCA. |
| MIR / ATR-FTIR | Peak position shift | Mauvais alignement spectral / calibration | Important en FTIR car de petits shifts comptent. |
| MIR / ATR-FTIR | Band area ratios sur bandes connues | Spectre chimiquement incohérent | À adapter par matrice: polysaccharides, protéines, lipides, etc. |
| HS-MS | Total Ion Current (TIC), Base Peak Intensity (BPI) | Injection faible, ionisation instable | Équivalent MS du niveau global spectral. |
| HS-MS | Nombre de pics détectés | Spectre pauvre ou trop bruité | Trop peu = mauvais signal; trop = bruit/contamination. |
| HS-MS | Mass accuracy / m/z drift | Problème calibration masse | Fondamental en HRMS. |
| HS-MS | Retention time drift si LC/GC-MS | Dérive chromatographique | À suivre sur standards/QC pools. |
| HS-MS | Blank contamination score | Contaminants / carry-over | Comparer échantillons vs blancs. |
| HS-MS | Internal standard CV | Variabilité instrumentale | Très robuste si standards disponibles. |
| HS-MS | Missingness par feature | Instabilité de détection | Crucial pour filtrer les variables. |
| Avec répétitions | RMS intra-échantillon | Répétabilité globale | Applicable à toutes les technologies. |
| Avec répétitions | SAM / corrélation intra-échantillon | Répétabilité de forme | Très utile pour spectres. |
| Avec répétitions | CV intra-échantillon par bande / feature | Répétabilité locale | Détecte les zones instables. |
| Avec répétitions | ICC ou variance components | Part variance échantillon vs technique | Très utile si plusieurs répétitions par sample. |
| Avec répétitions | Distance au centroïde intra-ID | Répétition aberrante | Permet de flagger la mauvaise répétition plutôt que le sample entier. |
| Famille de bug potentiel | Méthodes à ajouter | Ce que ça détecte | État dans l’explorateur |
|---|---|---|---|
| Shift spectral global | Corrélation spectre moyen inter-dataset, DTW, cross-correlation, comparaison positions de pics | Décalage en longueur d'onde, mauvais alignement, interpolation différente | Partiellement calculé: cross-correlation lag et dispersion des positions de pics vs spectre moyen. |
| Baseline / offset / gain | Régression chaque spectre vs spectre moyen: x = a + b ref + residual; suivi de a, b, RMS résiduel | Offset additif, effet multiplicatif, dérive de baseline | Calculé dans reference.affine_*. |
| Mélange de lignes / mauvais appariement X-M-Y | Vérification index, hash des lignes, duplication ID, distance spectrale intra-ID, labels incohérents | Lignes mélangées, metadata mal alignées, Y attribué au mauvais spectre | Partiellement couvert par répétabilité intra-ID; checks index/hash à ajouter au pipeline canonical. |
| Fuite d'information / répétitions mal splitées | GroupKFold par sample_id vs StratifiedKFold random; audit des partitions par sample_id | Performance artificiellement bonne due aux répétitions | Nécessite splits et benchmark modèle; non calculé par la carte descriptive. |
| Label bugs | Échantillons proches en X mais Y différents, confident learning, erreurs systématiques FP/FN | Y inversés, erreurs de saisie, classes ambiguës | Nécessite Y et/ou modèle; recommandé pour l'explorateur supervisé. |
| Sous-domaines cachés | PCA/UMAP/t-SNE + clustering non supervisé + association avec dataset/Y/date/operator | Lots, campagnes, sondes, backgrounds non renseignés | Partiellement calculé par structure PCA/LOF; UMAP/t-SNE hors carte statique. |
| Artefacts localisés inconnus | Carte wavelength x dataset: différence moyenne, différence variance, KS par longueur d'onde | Régions spectrales anormales non anticipées | À calculer au niveau banque quand plusieurs datasets partagent un axe spectral. |
| Ruptures instrumentales | Discontinuités dans dérivées, changepoint detection | Splice, raccord détecteur, saut local non prévu | Calculé par jump/spike rates; changepoint plus avancé à ajouter. |
| Mélange / contamination spectrale | NMF / unmixing / reconstruction par convex hull | Composante externe: fond, plastique, sol | Non calculé automatiquement; nécessite hypothèses de composants ou grande bibliothèque. |
| Features instables mais prédictives | Importance modèle vs instabilité QC par variable | Modèle qui apprend un artefact plutôt qu'un signal biologique | Nécessite modèle supervisé; recommandé pour rapports de benchmark. |
| n / missing | 32 / 0 |
|---|---|
| Mean ± SD | 46.25 ± 12.9 |
| Median | 42.65 |
| Range | 32.7 – 68.7 |
| CV | 0.279 |
| Skew / kurtosis | 0.66 / -1.1 |
| Normal? | no |
| n / missing | 32 / 0 |
|---|---|
| Mean ± SD | 13.57 ± 3.66 |
| Median | 14.9 |
| Range | 6.8 – 18.6 |
| CV | 0.27 |
| Skew / kurtosis | -0.86 / -0.66 |
| Normal? | yes |
| Alignment level | sample |
|---|---|
| Sample id available | yes |
| Samples | 32 |
| Observations (total) | 192 |
| Reps per sample | min 1 · mean 1 · max 1 |
| Contributor | Data sets for multi-variate data analysis - Marzipan |
|---|---|
| Origin · url [open] | https://sid.erda.dk/share_redirect/AY8wS3D8Kn/Marzipan.zip |
| Origin · url [manual] | https://ucphchemometrics.com/datasets/ |
| Origin · script [manual] | source_to_standard.py — standardization script (maintainer-only) |
| Tier | private |
|---|---|
| License | LicenseRef-not-cleared |
| Permitted use | Research and benchmarking; private use only. |
| Access policy | Manual download / private-use-only per source. |
| Redistribution | No explicit redistribution license found on checked UCPH/ERDA source. |
| Content version | 1.0.0 |
| Schema / protocol | 2.0 |
| Content hash | bc87d194f274c7a3… |
| Processing hash | 41b845dcc03f5249… |
| Metadata hash | ec2a55c7e3289c24… |
# pip install nirs4all-datasets from nirs4all_datasets import get # private dataset — export requires a Dataverse token ds = get("ucph_marzipan_multi_instrument_spectroscopy", token="…") X, y = ds.x(), ds.y() print(X.shape, y.shape)
Metadata downloads are available for public datasets only. The dataset bytes are never served here — fetch them from the origin / DOI above.