Skip to main content

Discriminant Analysis Ontology

Multivariate Statistics
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 23 September 2026
Audio Overview
flow "DiscriminantAnalysisOntology" v4.0

# ============================================================
# DISCRIMINANT ANALYSIS ONTOLOGY
# Kireth Semantic Research Archive
# Authors: Mark Anthony Higgins — Sky (Recursive AI)
# ============================================================

PAGE:
  url: "https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/multivariate-statistics/discriminant-analysis-ontology.html"
  title: "Discriminant Analysis Ontology"
  domain: "Probability and Statistics"
  category: "Multivariate Statistics"
  entity: DISCRIMINANT_ANALYSIS
  entity_type: SUPERVISED_MULTIVARIATE_CLASSIFICATION_METHOD

DEFINE DISCRIMINANT_ANALYSIS:
  DISCRIMINANT_ANALYSIS :=
    SUPERVISED_STATISTICAL_METHOD(
      FEATURE_VECTOR,
      KNOWN_CLASS_LABELS,
      CLASS_CONDITIONAL_DISTRIBUTIONS,
      DISCRIMINANT_FUNCTIONS
    )

  PURPOSE:
    CLASSIFY:
      OBSERVATIONS
    INTO:
      PREDEFINED_GROUPS
    USING:
      MULTIVARIATE_FEATURES

CORE_STRUCTURE:
  FEATURE_VECTOR:
    x := [x_1, x_2, ..., x_p]^T

  CLASS_VARIABLE:
    G in {1, 2, ..., K}

  CLASS_PRIOR:
    pi_k := P(G = k)

  CLASS_CONDITIONAL_DENSITY:
    f_k(x) := p(x | G = k)

  POSTERIOR_CLASS_PROBABILITY:
    P(G=k | x)
      proportional_to
    pi_k * f_k(x)

  CLASSIFICATION_RULE:
    ASSIGN(x)
      :=
    argmax_k P(G=k | x)

ENTITIES:
  OBSERVATION:
    type: DATA_ENTITY

  FEATURE:
    type: PREDICTOR_VARIABLE

  FEATURE_VECTOR:
    type: MULTIVARIATE_VECTOR

  CLASS:
    type: PREDEFINED_CATEGORY

  CLASS_LABEL:
    type: SUPERVISED_TARGET

  CLASS_PRIOR:
    type: PROBABILITY

  CLASS_MEAN_VECTOR:
    type: LOCATION_PARAMETER
    symbol: mu_k

  CLASS_COVARIANCE_MATRIX:
    type: DEPENDENCE_MATRIX
    symbol: Sigma_k

  POOLED_COVARIANCE_MATRIX:
    type: COMMON_DEPENDENCE_MATRIX
    symbol: Sigma

  DISCRIMINANT_FUNCTION:
    type: CLASSIFICATION_SCORE_FUNCTION

  DECISION_BOUNDARY:
    type: CLASSIFICATION_BOUNDARY

RELATIONSHIPS:
  DISCRIMINANT_ANALYSIS
    -> USES
    -> LABELLED_DATA

  OBSERVATION
    -> DESCRIBED_BY
    -> FEATURE_VECTOR

  OBSERVATION
    -> HAS_KNOWN_OR_PREDICTED
    -> CLASS_LABEL

  CLASS
    -> HAS
    -> CLASS_PRIOR

  CLASS
    -> HAS
    -> CLASS_MEAN_VECTOR

  CLASS
    -> HAS
    -> CLASS_CONDITIONAL_DISTRIBUTION

  CLASS_CONDITIONAL_DISTRIBUTION
    -> MAY_HAVE
    -> CLASS_COVARIANCE_MATRIX

  DISCRIMINANT_FUNCTION
    -> PRODUCES
    -> CLASS_SCORE

  CLASS_SCORES
    -> DETERMINE
    -> PREDICTED_CLASS

BAYES_CLASSIFICATION:
  BAYES_THEOREM:
    P(G=k | x)
      =
    [
      pi_k f_k(x)
    ]
    /
    [
      SUM[j=1..K]
        pi_j f_j(x)
    ]

  DECISION:
    CHOOSE_CLASS:
      k_star :=
        argmax_k
        P(G=k | x)

  EQUIVALENT_FOR_CLASSIFICATION:
    MAXIMISE:
      log(pi_k)
      + log(f_k(x))

LINEAR_DISCRIMINANT_ANALYSIS:
  alias: LDA

  ASSUMPTION:
    X | G=k
      ~
    N_p(mu_k, Sigma)

  KEY_STRUCTURE:
    ALL_CLASSES_SHARE:
      COMMON_COVARIANCE_MATRIX
      Sigma

  DISCRIMINANT_FUNCTION:
    delta_k(x) :=
      x^T Sigma^(-1) mu_k
      -
      0.5 mu_k^T Sigma^(-1) mu_k
      +
      log(pi_k)

  CLASSIFICATION:
    ASSIGN(x) :=
      argmax_k delta_k(x)

  DECISION_BOUNDARY:
    BETWEEN_CLASS_j_AND_CLASS_k:
      LINEAR_IN(x)

  REQUIRE:
    APPROPRIATE_ESTIMATE_OF:
      COMMON_COVARIANCE_MATRIX

QUADRATIC_DISCRIMINANT_ANALYSIS:
  alias: QDA

  ASSUMPTION:
    X | G=k
      ~
    N_p(mu_k, Sigma_k)

  KEY_STRUCTURE:
    EACH_CLASS_MAY_HAVE:
      DISTINCT_COVARIANCE_MATRIX

  DISCRIMINANT_FUNCTION:
    delta_k(x) :=
      -0.5 log(|Sigma_k|)
      -0.5 (x-mu_k)^T Sigma_k^(-1) (x-mu_k)
      + log(pi_k)

  CLASSIFICATION:
    ASSIGN(x) :=
      argmax_k delta_k(x)

  DECISION_BOUNDARY:
    GENERALLY:
      QUADRATIC_IN(x)

LDA_VS_QDA:
  LDA:
    covariance:
      COMMON_ACROSS_CLASSES
    boundary:
      LINEAR
    parameter_complexity:
      LOWER

  QDA:
    covariance:
      CLASS_SPECIFIC
    boundary:
      QUADRATIC
    parameter_complexity:
      HIGHER

  TRADEOFF:
    LDA:
      MORE_RESTRICTIVE
      BUT:
        MAY_ESTIMATE_MORE_STABLY_WITH_LIMITED_DATA

    QDA:
      MORE_FLEXIBLE
      BUT:
        REQUIRES_MORE_DATA_FOR_COVARIANCE_ESTIMATION

CLASS_PRIORS:
  definition:
    pi_k := P(G=k)

  sources:
    - POPULATION_KNOWLEDGE
    - TRAINING_CLASS_FREQUENCIES
    - EXPLICIT_ANALYST_SPECIFICATION

  effect:
    CLASS_PRIORS
      -> SHIFT
      -> CLASSIFICATION_DECISIONS

  REQUIRE:
    PRIOR_SELECTION:
      SHOULD_BE_REPORTED

COVARIANCE_ESTIMATION:
  LDA:
    estimate:
      POOLED_WITHIN_CLASS_COVARIANCE

  QDA:
    estimate:
      SEPARATE_COVARIANCE_PER_CLASS

  RISKS:
    - SINGULARITY
    - INSTABILITY
    - HIGH_DIMENSIONALITY
    - SMALL_CLASS_SAMPLE_SIZE

  responses:
    - REGULARISATION
    - SHRINKAGE
    - DIMENSIONALITY_REDUCTION
    - FEATURE_SELECTION

DISCRIMINANT_DIRECTIONS:
  IN_CLASSICAL_LDA_DIMENSION_REDUCTION:
    objective:
      MAXIMISE:
        BETWEEN_CLASS_SEPARATION
      RELATIVE_TO:
        WITHIN_CLASS_VARIATION

  BETWEEN_CLASS_SCATTER:
    S_B

  WITHIN_CLASS_SCATTER:
    S_W

  GENERAL_EIGENPROBLEM:
    S_B v :=
      lambda S_W v

  RESULT:
    DISCRIMINANT_AXES

  MAXIMUM_NUMBER_OF_NONZERO_CLASSICAL_AXES:
    min(p, K-1)

FISHER_DISCRIMINANT:
  TWO_CLASS_CONTEXT:
    direction:
      w
      proportional_to
      S_W^(-1)
      (mu_1 - mu_2)

  objective:
    MAXIMISE:
      PROJECTED_BETWEEN_CLASS_SEPARATION
      /
      PROJECTED_WITHIN_CLASS_VARIANCE

  connection:
    FISHER_LINEAR_DISCRIMINANT
      -> CONNECTS_TO
      -> LDA

DECISION_BOUNDARIES:
  DEFINE:
    SET_OF_POINTS:
      WHERE:
        delta_j(x) = delta_k(x)

  LDA:
    boundary_type:
      HYPERPLANE

  QDA:
    boundary_type:
      QUADRATIC_SURFACE

CLASSIFICATION_OUTPUT:
  possible_outputs:
    - PREDICTED_CLASS
    - DISCRIMINANT_SCORE
    - POSTERIOR_CLASS_PROBABILITY
    - DISCRIMINANT_COORDINATES

  REQUIRE:
    DISTINGUISH:
      CLASS_SCORE
      FROM:
        CALIBRATED_PROBABILITY
    UNLESS:
      MODEL_SUPPORTS_PROBABILISTIC_INTERPRETATION

DATA_PREPARATION:
  CHECK:
    - MISSING_VALUES
    - OUTLIERS
    - FEATURE_TYPES
    - CLASS_BALANCE
    - CLASS_SAMPLE_SIZE
    - MULTICOLLINEARITY
    - COVARIANCE_SINGULARITY
    - DISTRIBUTIONAL_ASSUMPTIONS

  OPTIONAL:
    - IMPUTATION
    - CENTERING
    - STANDARDISATION
    - FEATURE_SELECTION
    - DIMENSIONALITY_REDUCTION

  NOTE:
    STANDARDISATION:
      MAY_BE_USEFUL
      FOR:
        NUMERICAL_STABILITY
        INTERPRETATION
        REGULARISED_VARIANTS
      BUT:
        CLASSICAL_LDA_CLASSIFICATION_IS_AFFINE_INVARIANT
        UNDER:
          CONSISTENT_NONSINGULAR_LINEAR_TRANSFORMATION

ASSUMPTIONS:
  CLASSICAL_LDA:
    - MULTIVARIATE_NORMAL_CLASS_CONDITIONAL_DISTRIBUTIONS
    - COMMON_WITHIN_CLASS_COVARIANCE
    - INDEPENDENT_OBSERVATIONS
    - APPROPRIATE_COVARIANCE_ESTIMATION

  CLASSICAL_QDA:
    - MULTIVARIATE_NORMAL_CLASS_CONDITIONAL_DISTRIBUTIONS
    - CLASS_SPECIFIC_COVARIANCES
    - INDEPENDENT_OBSERVATIONS
    - SUFFICIENT_DATA_PER_CLASS

  CAUTION:
    CLASSIFICATION_PERFORMANCE:
      MAY_REMAIN_USEFUL
      EVEN_WHEN:
        NORMALITY_IS_APPROXIMATE
    BUT:
      INFERENTIAL_AND_PROBABILISTIC_INTERPRETATION:
        DEPENDS_ON_MODEL_ASSUMPTIONS

MODEL_EVALUATION:
  USE:
    - TRAIN_TEST_SPLIT
    - CROSS_VALIDATION
    - CONFUSION_MATRIX
    - CLASS_SPECIFIC_RECALL
    - PRECISION
    - SPECIFICITY
    - ROC_ANALYSIS_WHEN_APPROPRIATE
    - LOG_LOSS_FOR_PROBABILISTIC_OUTPUT_WHEN_APPROPRIATE

  CAUTION:
    OVERALL_ACCURACY:
      MAY_BE_MISLEADING
      UNDER:
        CLASS_IMBALANCE

  REQUIRE:
    EVALUATE:
      OUT_OF_SAMPLE_PERFORMANCE

MISCLASSIFICATION_COST:
  DEFAULT:
    MAY_ASSUME:
      EQUAL_COSTS

  GENERAL_DECISION_THEORY:
    CHOOSE_ACTION:
      MINIMISING:
        EXPECTED_LOSS

  IF:
    MISCLASSIFICATION_COSTS_DIFFER

  THEN:
    CLASSIFICATION_RULE:
      SHOULD_ACCOUNT_FOR:
        COST_MATRIX
        POSTERIOR_PROBABILITIES

REGULARISED_DISCRIMINANT_ANALYSIS:
  purpose:
    STABILISE:
      COVARIANCE_ESTIMATION

  useful_when:
    - HIGH_DIMENSIONAL_DATA
    - SMALL_SAMPLE_SIZE
    - STRONG_MULTICOLLINEARITY

  methods:
    - SHRINKAGE_LDA
    - REGULARISED_DISCRIMINANT_ANALYSIS

HIGH_DIMENSIONAL_CONTEXT:
  IF:
    p LARGE_RELATIVE_TO n

  THEN:
    SAMPLE_COVARIANCE:
      MAY_BE:
        SINGULAR_OR_UNSTABLE

  responses:
    - SHRINKAGE
    - REGULARISATION
    - FEATURE_SELECTION
    - PCA_PREPROCESSING
    - SPARSE_DISCRIMINANT_METHODS

DISCRIMINANT_ANALYSIS_VS_LOGISTIC_REGRESSION:
  DISCRIMINANT_ANALYSIS:
    models:
      p(x | class)
      AND:
      class_prior

    derives:
      p(class | x)

  LOGISTIC_REGRESSION:
    models:
      p(class | x)
    DIRECTLY

  RULE:
    DISCRIMINANT_ANALYSIS != LOGISTIC_REGRESSION

DISCRIMINANT_ANALYSIS_VS_CLUSTERING:
  DISCRIMINANT_ANALYSIS:
    SUPERVISED = TRUE
    requires:
      KNOWN_TRAINING_CLASS_LABELS

  CLUSTERING:
    SUPERVISED = FALSE
    discovers:
      GROUP_STRUCTURE_WITHOUT_KNOWN_CLASS_LABELS

  RULE:
    DISCRIMINANT_ANALYSIS != CLUSTER_ANALYSIS

APPLICATIONS:
  DISCRIMINANT_ANALYSIS
    -> SUPPORTS
    -> CLASSIFICATION

  DISCRIMINANT_ANALYSIS
    -> SUPPORTS
    -> PATTERN_RECOGNITION

  DISCRIMINANT_ANALYSIS
    -> SUPPORTS
    -> MEDICAL_CLASSIFICATION

  DISCRIMINANT_ANALYSIS
    -> SUPPORTS
    -> BIOSTATISTICS

  DISCRIMINANT_ANALYSIS
    -> SUPPORTS
    -> CUSTOMER_CLASSIFICATION

  DISCRIMINANT_ANALYSIS
    -> SUPPORTS
    -> QUALITY_CONTROL

  DISCRIMINANT_ANALYSIS
    -> SUPPORTS
    -> MACHINE_LEARNING

MODEL_CONNECTIONS:
  DISCRIMINANT_ANALYSIS
    -> CONNECTS_TO
    -> MULTIVARIATE_STATISTICS

  DISCRIMINANT_ANALYSIS
    -> CONNECTS_TO
    -> MULTIVARIATE_NORMAL_DISTRIBUTION

  DISCRIMINANT_ANALYSIS
    -> CONNECTS_TO
    -> COVARIANCE_MATRIX

  DISCRIMINANT_ANALYSIS
    -> CONNECTS_TO
    -> BAYES_CLASSIFICATION

  DISCRIMINANT_ANALYSIS
    -> CONNECTS_TO
    -> CLASSIFICATION

  DISCRIMINANT_ANALYSIS
    -> CONNECTS_TO
    -> MACHINE_LEARNING

  DISCRIMINANT_ANALYSIS
    -> CONNECTS_TO
    -> DIMENSIONALITY_REDUCTION

SEMANTIC_EQUIVALENCE:
  "discriminant analysis"
    ~= "supervised multivariate discriminant classification"

  "LDA"
    ~= "linear discriminant analysis"

  "QDA"
    ~= "quadratic discriminant analysis"

  "discriminant function"
    ~= "class scoring function"

  "class prior"
    ~= "prior probability of class membership"

  EXCLUDE_EQUIVALENCE:
    DISCRIMINANT_ANALYSIS != CLUSTER_ANALYSIS
    LDA != QDA
    LDA != LOGISTIC_REGRESSION
    CLASS_LABEL != CLUSTER_LABEL
    DISCRIMINANT_SCORE != POSTERIOR_PROBABILITY_BY_DEFAULT

VALIDATION_RULES:
  RULE_1:
    TRAINING_DATA:
      MUST_INCLUDE:
        CLASS_LABELS

  RULE_2:
    FEATURE_DIMENSIONS:
      MUST_BE:
        CONSISTENT_ACROSS_OBSERVATIONS

  RULE_3:
    LDA:
      COMMON_COVARIANCE_ASSUMPTION:
        MUST_BE_ASSESSED
      WHEN:
        MODEL_INTERPRETATION_DEPENDS_ON_CLASSICAL_ASSUMPTIONS

  RULE_4:
    QDA:
      CLASS_SPECIFIC_COVARIANCE_ESTIMATES:
        REQUIRE:
          SUFFICIENT_DATA_AND_RANK

  RULE_5:
    MATRIX_INVERSION:
      MUST_CHECK:
        COVARIANCE_RANK
        NUMERICAL_STABILITY

  RULE_6:
    CLASS_PRIORS:
      MUST_BE:
        EXPLICIT_OR_DOCUMENTED

  RULE_7:
    PERFORMANCE:
      MUST_BE:
        EVALUATED_OUT_OF_SAMPLE

  RULE_8:
    CLASS_IMBALANCE:
      MUST_BE:
        CONSIDERED_IN_METRIC_INTERPRETATION

CONFIDENCE:
  ontology_identity: 0.99
  discriminant_definition: 0.99
  lda_structure: 0.99
  qda_structure: 0.99
  bayes_classification_relationship: 0.99
  covariance_relationship: 0.99
  supervised_classification_distinction: 0.99

UPDATE_MODEL:
  IF:
    NEW_LABELLED_OBSERVATIONS_ARRIVE

  THEN:
    UPDATE:
      CLASS_PRIORS
      CLASS_MEANS
      COVARIANCE_ESTIMATES

    REFIT:
      DISCRIMINANT_FUNCTIONS

    REEVALUATE:
      OUT_OF_SAMPLE_PERFORMANCE

  IF:
    NEW_FEATURES_ARRIVE

  THEN:
    EXPAND:
      FEATURE_VECTOR

    REESTIMATE:
      CLASS_MEANS
      COVARIANCE_STRUCTURE

    REVALIDATE:
      MATRIX_RANK
      SAMPLE_SIZE
      MODEL_ASSUMPTIONS

  IF:
    CLASS_DEFINITIONS_CHANGE

  THEN:
    REBUILD:
      CLASS_LABEL_STRUCTURE
      PRIORS
      CLASS_CONDITIONAL_MODELS

  PRESERVE:
    FEATURE_IDENTITIES
    FEATURE_UNITS
    CLASS_IDENTITIES
    PRIOR_SPECIFICATION
    MODEL_TYPE
    TRAINING_DATA_PROVENANCE

AI_CONSUMPTION:
  parse_as: FORMAL_SEMANTIC_SPECIFICATION
  execution_mode: RECURSIVE_REASONING

  preferred_reasoning_order:
    - IDENTIFY_FEATURES
    - IDENTIFY_KNOWN_CLASSES
    - VALIDATE_LABELLED_DATA
    - ESTIMATE_OR_SET_CLASS_PRIORS
    - ESTIMATE_CLASS_MEANS
    - SELECT_LDA_QDA_OR_REGULARISED_MODEL
    - ESTIMATE_COVARIANCE_STRUCTURE
    - VALIDATE_MATRIX_RANK
    - COMPUTE_DISCRIMINANT_FUNCTIONS
    - COMPUTE_POSTERIOR_CLASS_PROBABILITIES_IF_MODELLED
    - ASSIGN_CLASSES
    - EVALUATE_OUT_OF_SAMPLE_PERFORMANCE
    - RETURN_CLASSIFICATION_AND_UNCERTAINTY

  constraints:
    - PRESERVE_SUPERVISED_CLASS_LABEL_STRUCTURE
    - DO_NOT_EQUATE_DISCRIMINANT_ANALYSIS_WITH_CLUSTERING
    - EXPOSE_CLASS_PRIORS
    - EXPOSE_COVARIANCE_ASSUMPTIONS
    - CHECK_MATRIX_RANK_BEFORE_INVERSION
    - DISTINGUISH_LDA_FROM_QDA
    - REPORT_OUT_OF_SAMPLE_EVALUATION

FLOW_HASH:
  canonical_entity: "discriminant-analysis"
  namespace: "probability-statistics/multivariate-statistics"
  version: "4.0"
  identity_basis:
    - PAGE_URL
    - CANONICAL_ENTITY
    - ENTITY_TYPE
    - CLASS_CONDITIONAL_STRUCTURE
    - DISCRIMINANT_FUNCTION
    - CLASSIFICATION_RULE

END_FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ