hanzo-client 8.5.156

Generated client for the Hanzo API — every service, one crate.
Documentation
/*
 * Hanzo Cloud API
 *
 * The Hanzo Cloud API as a customer calls it: every operation under /v1/ except the operator's admin product, relay routes, legacy spellings and capabilities still reached by flag. Tagged by product: the first path segment after /v1/.
 *
 * The version of the OpenAPI document: v1
 * 
 * Generated by: https://openapi-generator.tech
 */

use crate::models;
use serde::{Deserialize, Serialize};

#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct RiskSplitCounts {
    /// Judged is how many rows carry a disposition. It is zero until a label plane writes one, and reporting it plainly is what lets a model plane refuse to rank rather than name a winner it cannot justify.
    #[serde(rename = "judged", skip_serializing_if = "Option::is_none")]
    pub judged: Option<i32>,
    /// Productive is how many judged rows carry the one disposition.
    #[serde(rename = "productive", skip_serializing_if = "Option::is_none")]
    pub productive: Option<i32>,
    /// Rows is how many rows the version holds across every split. It is the size of the version, not of the source window — the horizon, the cuts and the row cap all bind before this number.
    #[serde(rename = "rows", skip_serializing_if = "Option::is_none")]
    pub rows: Option<i32>,
    /// Subjects is how many distinct subjects the rows belong to. Every row of one subject is in ONE split, so this is the real sample size — the row count flatters it whenever a subject is active.
    #[serde(rename = "subjects", skip_serializing_if = "Option::is_none")]
    pub subjects: Option<i32>,
    /// Test is how many fall after the second cut — the LATEST slice, and the only one a score is honest about, since the split is temporal.
    #[serde(rename = "test", skip_serializing_if = "Option::is_none")]
    pub test: Option<i32>,
    /// Train is how many rows fall before the first cut — the EARLIEST slice of the window, which is what a model is fitted on.
    #[serde(rename = "train", skip_serializing_if = "Option::is_none")]
    pub train: Option<i32>,
    /// Unproductive is how many carry the other. With Productive it accounts for Judged, so the class imbalance is visible before anyone trains on it; both stay 0 while Judged is 0.
    #[serde(rename = "unproductive", skip_serializing_if = "Option::is_none")]
    pub unproductive: Option<i32>,
    /// Val is how many fall between the two cuts, held out for tuning.
    #[serde(rename = "val", skip_serializing_if = "Option::is_none")]
    pub val: Option<i32>,
}

impl RiskSplitCounts {
    pub fn new() -> RiskSplitCounts {
        RiskSplitCounts {
            judged: None,
            productive: None,
            rows: None,
            subjects: None,
            test: None,
            train: None,
            unproductive: None,
            val: None,
        }
    }
}