Skip to main content

GaussianMixtureModelClusteringAnalysis

Versions

v1.0.0

Basic Information

Class Name: GaussianMixtureModelClusteringAnalysis

Title: Gaussian Mixture Model

Version: 1.0.0

Author: Christian Reyes Aviña

Organization: OneStream

Creation Date: 2026-01-15

Default Routine Memory Capacity: 2 GB

Tags

Pattern Recognition, Unsupervised, Clustering, Data Analysis

Description

Short Description

Probabilistic GMM clustering for overlapping segments and early shifts in OneStream finance and ops data.

Long Description

Gaussian Mixture Models (GMMs) learn clusters as weighted combinations of Gaussians, so each record can belong to multiple segments with different probabilities. This soft assignment captures overlap and gradual regime shifts—useful when OneStream customers want to see early signals rather than hard buckets. Finance and operations teams can group business units, customers, products, or channels using metrics like sales variance, margin, and utilization, then view cluster labels plus interpretability artifacts. Key settings are easy to tune: pick the number of components to control segment granularity, choose covariance type to match cluster shape flexibility, and increase max iterations if convergence warnings appear. The routine respects your chosen clustering dimensions and feature set, balancing expressiveness with stability for governed close, planning, and operational decision cycles.

Use Cases

1. Monthly Sales Variance Health Check

Cluster monthly sales variance patterns across entities to flag whether performance signals align to growth or recession regimes. OneStream FP&A teams can group business units with similar variance trajectories to spot emerging softening, prioritize interventions, and communicate outlook shifts early in the close cycle. A GMM’s soft clustering highlights entities that partially belong to a weakening segment, providing an early-warning tier before a hard downturn. Teams can compare probability-weighted assignments with classic thresholds to justify plan adjustments, re-forecast scenarios, or redeploy enablement. Use covariance choices to reflect whether volatility behaves similarly across entities (tied) or differs by unit (full), and tune component counts to balance coarse executive summaries with granular diagnostics. Artifacts expose cluster labels and dispersion stats, helping finance leaders explain why certain business units are drifting toward recession-like behavior while others remain resilient, supporting targeted cost controls, pricing moves, or investment protection.

2. Customer Segment Value Discovery

Identify latent customer micro-segments based on spend velocity, margin profile, retention indicators, renewal posture, and engagement signals. GMM soft membership lets OneStream go-to-market teams see which accounts straddle multiple behaviors—e.g., strategic buyers showing early churn risk or long-tail customers signaling expansion intent. Probabilistic assignments help sales prioritize outreach where the uplift is highest, while marketing can design nurture tracks that reflect mixed intent rather than forcing a single archetype. Analysts can experiment with component counts to expose coarse vs. fine segments, and covariance settings to capture correlations between financial health and engagement intensity. Cluster artifacts and dispersion statistics make it easier to explain why an account is tagged to a specific micro-segment, backing pricing, discount guardrails, and territory planning with transparent evidence.

3. Product and Channel Mix Optimization

Group products or channels by demand volatility, profitability, return rates, attach behavior, and seasonality to guide portfolio and allocation decisions. Because GMM clusters are probabilistic, OneStream teams can see when an item partially aligns with both a high-margin stable segment and an emerging volatile segment, informing stocking, hedging, and promotion choices. Planners can tune the number of components to reveal broad themes (e.g., resilient core, volatile bets) or finer niches (e.g., specific channel-region pairs). Covariance settings capture whether performance patterns move together across metrics or vary independently, improving how buffers, price corridors, and enablement investments are set. Interpretability artifacts give finance and operations leaders a defensible story for reallocating inventory, shifting channel focus, or staging pilots without overcommitting to brittle single-cluster labels.

Routine Methods

1. Init (Constructor)
  • Method: __init__
    • Type: Constructor

    • Memory Capacity: 2.0 GB

    • Allow In-Memory Execution: Yes

    • Read Only: No

    • Method Limits: N/A

    • Outputs Dynamic Artifacts: No

    • Short Description:

      • Initialize the GMM clustering routine with constructor parameters.
    • Detailed Description:

      • Sets deterministic behavior, component count, covariance structure, and iteration cap for the GMM model so subsequent fit and predict calls use these values.
    • Inputs:

      • Required Input
        • Deterministic Model Configuration: Whether or not to use deterministic clustering algorithm for this analysis.
          • Name: deterministic_model
          • Tooltip:
            • Detail:
              • Please define if the clustering algorithm is to be deterministic for this analysis.
            • Validation Constraints:
              • This input may be subject to other validation constraints at runtime.
          • Type: bool
        • GMM Hyperparameters: The number of mixture components.
          • Name: n_components
          • Tooltip:
            • Detail:
              • Number of mixture components.
            • Validation Constraints:
              • The input must be greater than or equal to 1.
              • The input must be less than or equal to 20.
              • This input may be subject to other validation constraints at runtime.
          • Type: int
        • GMM Hyperparameters: String describing the type of covariance parameters to use.
          • Name: covariance_type
          • Tooltip:
            • Detail:
              • Covariance type.
            • Validation Constraints:
              • This input may be subject to other validation constraints at runtime.
          • Type: Literal
        • GMM Hyperparameters: The maximum number of iterations to perform.
          • Name: max_iter
          • Tooltip:
            • Detail:
              • Maximum number of iterations.
            • Validation Constraints:
              • The input must be greater than or equal to 50.
              • The input must be less than or equal to 1000.
              • This input may be subject to other validation constraints at runtime.
          • Type: int
    • Artifacts: No artifacts are returned by this method

2. Fit (Method)
  • Method: fit
    • Type: Method

    • Memory Capacity: 2.0 GB

    • Allow In-Memory Execution: No

    • Read Only: No

    • Method Limits: During scale testing this method performed with datasets up to 900,000 rows and 5 feature columns without issues. Larger datasets may cause a timeout error depending on system resources and execution environment.

    • Outputs Dynamic Artifacts: No

    • Short Description:

      • Fits the clustering analysis model to the provided parameters.
    • Detailed Description:

      • This method will take the parameters provided by the user and fit the clustering analysis model to them. This will include clustering dimensions, feature dimensions, etc. The user can specify the number of clusters, the clustering algorithm, and the feature weighting method to use for the analysis.
    • Inputs:

      • Required Input
        • Clustering Data Input: The data input configuration for the clustering analysis.
          • Name: clustering_data_input
          • Tooltip:
            • Validation Constraints:
              • This input may be subject to other validation constraints at runtime.
          • Type: ClusteringDataInput
    • Artifacts:

      • Clustering Intersection Results: Parquet file containing data about the clustering intersections and which cluster they belong to.

        • Qualified Key Annotation: cluster_intersection
        • Aggregate Artifact: False
        • In-Memory Json Accessible: False
        • File Annotations:
          • artifacts_/@cluster_intersection/data_/data_<int>.parquet
            • A partitioned set of parquet files where each file will have no more than 1000000 rows.
      • Clustering Descriptions: Parquet file containing data about the clusters created by the clustering fit method.

        • Qualified Key Annotation: cluster_descriptions
        • Aggregate Artifact: False
        • In-Memory Json Accessible: False
        • File Annotations:
          • artifacts_/@cluster_descriptions/data_/data_<int>.parquet
            • A partitioned set of parquet files where each file will have no more than 1000000 rows.
      • Data Utilized: Parquet file containing the data utilized in the clustering fit method.

        • Qualified Key Annotation: data_utilized
        • Aggregate Artifact: False
        • In-Memory Json Accessible: False
        • File Annotations:
          • artifacts_/@data_utilized/data_/data_<int>.parquet
            • A partitioned set of parquet files where each file will have no more than 1000000 rows.
      • Evaluation Metric: Numeric evaluation metric produced during clustering model fitting. This may represent a cluster quality score or model selection criterion depending on the algorithm used (e.g., silhouette score for KMeans, BIC for Gaussian Mixture Models, DBCV for HDBSCAN).

        • Qualified Key Annotation: evaluation_metric
        • Aggregate Artifact: False
        • In-Memory Json Accessible: True
        • File Annotations:
          • artifacts_/@evaluation_metric/data_/float.txt
            • A text file holding float number.
3. Predict (Method)
  • Method: predict
    • Type: Method

    • Memory Capacity: 2.0 GB

    • Allow In-Memory Execution: No

    • Read Only: Yes

    • Method Limits: During scale testing this method performed with datasets up to 900,000 rows and 5 feature columns without issues. Larger datasets may cause a timeout error depending on system resources and execution environment.

    • Outputs Dynamic Artifacts: No

    • Short Description:

      • Makes predictions on the provided data using the fitted model
    • Detailed Description:

      • This method will take the parameters provided by the user and make predictions on the provided data using the fitted model. The user must provide a data source that contains the same clustering dimensions and feature dimensions as the data used to fit the model. The method will return a dataframe with the assigned clusters.
    • Inputs:

      • Required Input
        • Prediction Datasource: Select the datasource containing observations to assign to clusters.
          • Name: datasource
          • Tooltip:
            • Validation Constraints:
              • This input may be subject to other validation constraints at runtime.
          • Type: TabularConnection
    • Artifacts:

      • Clustering Intersection Results: Parquet file containing data about the clustering intersections and which cluster they belong to.

        • Qualified Key Annotation: cluster_intersection
        • Aggregate Artifact: False
        • In-Memory Json Accessible: False
        • File Annotations:
          • artifacts_/@cluster_intersection/data_/data_<int>.parquet
            • A partitioned set of parquet files where each file will have no more than 1000000 rows.
      • Data Utilized: Parquet file containing the data utilized in the clustering predict method.

        • Qualified Key Annotation: data_utilized
        • Aggregate Artifact: False
        • In-Memory Json Accessible: False
        • File Annotations:
          • artifacts_/@data_utilized/data_/data_<int>.parquet
            • A partitioned set of parquet files where each file will have no more than 1000000 rows.

Interface Definitions

1. Clustering Analysis Interface

An interface class requiring fit and predict methods to be implemented.

This BaseRoutineInterface class enforces a common interface for all clustering routines. The interface requires each clustering routine to implement a fit method and a predict method with the same input parameters. Each concrete class will have constructor methods where hyperparameters specific to the clustering algorithm may be set, however, this interface does not enforce any specific constructor method.

Interface Methods:

1. Fit

Method Name: fit

Short Description: Abstract Fit Method

Detailed Description: This specifies the necessary input and output parameters for the fit method on all anomaly detection routines. The input parameters contain a source data definition and time range to fit an anomaly detector to.

Inputs:

PropertyTypeRequiredDescription
clustering_data_input#/$defs/ClusteringDataInputYesThe data input configuration for the clustering analysis.

Input Schema (JSON):

{
"$defs": {
"ClusteringDataInput": {
"properties": {
"source_data_definition": {
"$ref": "#/$defs/TabularConnection",
"description": "Source Data Definition",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": null,
"options_callback_kwargs": null,
"state_name": "SourceDataDefinition",
"title": "Source Data Definition",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime."
},
"clustering_dimensions": {
"description": "The unique combination of column values that define the \u201centity\u201d that you are trying to compare to others.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"items": {
"type": "string"
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.store.clustering_analysis.clustering.pbm.clustering_pbms:ClusteringDataInput.get_dimension_options",
"options_callback_kwargs": null,
"state_name": "ClusteringDimensions",
"title": "Clustering Dimensions",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime.",
"type": "array"
},
"clustering_scope": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "The clustering dimension that cannot be compared across. Any unique entry in this column will run it's own clustering model.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.store.clustering_analysis.clustering.pbm.clustering_pbms:ClusteringDataInput.get_scope_options",
"options_callback_kwargs": null,
"state_name": "ClusteringScope",
"title": "Clustering Scope",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime."
},
"feature_columns": {
"description": "Columns that you want to use to calculate the cluster segments",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"items": {
"type": "string"
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.store.clustering_analysis.clustering.pbm.clustering_pbms:ClusteringDataInput.get_feature_options",
"options_callback_kwargs": null,
"state_name": "FeatureColumns",
"title": "Feature Columns",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime.",
"type": "array"
},
"measure_columns": {
"default": [],
"description": "Columns that you want to use to evaluate the quality of the clusters",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"items": {
"type": "string"
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.store.clustering_analysis.clustering.pbm.clustering_pbms:ClusteringDataInput.get_measure_options",
"options_callback_kwargs": null,
"state_name": "ClusteringMeasures",
"title": "Clustering Measures",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime.",
"type": "array"
},
"email_column": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Optional string column containing entity email addresses for utilization workflows.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": null,
"options_callback_kwargs": null,
"state_name": "ClusteringMeasures",
"title": "Email Column",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime."
}
},
"required": [
"source_data_definition",
"clustering_dimensions",
"feature_columns"
],
"title": "ClusteringDataInput",
"type": "object"
},
"CubeViewTabularConnection": {
"description": "Tabular connection backed by an OneStream cube view.\n\nStores only the cube view name. At materialize time the cube view is\nextracted fresh via the DataFlow XBR endpoint and the result is loaded\nthrough DuckDB into a DataFrame.\n\nAnalogous to SqlTabularConnection (pick a table) or FileTabularConnection\n(pick a file): the user selects a pre-configured artifact, not raw config.\n\nThe OneStream application is taken from the SessionInfo (``si.app_name``) -- the single source\nof truth stamped at the request boundary / derived from the job's IAM entrypoint -- so the\nconnection no longer collects an application name from the user.\n\nExample:\n >>> conn = CubeViewTabularConnection(cube_view_name=\"Retail Source Data\")\n >>> df = conn.materialize_tabular_pandas_dataframe()",
"properties": {
"cube_view_name": {
"description": "The name of the OneStream cube view to use as the data source.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.pbm.store.conn.cubeviewtable:CubeViewTabularConnection.get_cube_view_bound_options",
"options_callback_kwargs": null,
"state_name": "cube_view_name",
"title": "Cube View",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime.",
"type": "string"
}
},
"required": [
"cube_view_name"
],
"title": "CubeViewTabularConnection",
"type": "object"
},
"FileExtensions_": {
"description": "File Extensions.",
"enum": [
".csv",
".tsv",
".psv",
".parquet",
".xlsx"
],
"title": "FileExtensions_",
"type": "string"
},
"FileTabularConnection": {
"properties": {
"connection_key": {
"$ref": "#/$defs/MetaFileSystemConnectionKey",
"description": "The MetaFileSystem connection key.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": null,
"options_callback_kwargs": null,
"state_name": "connection_key",
"title": "Connection Key",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime."
},
"file_path": {
"description": "The full file path to the file to ingest.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.pbm.store.conn.filetable:FileTabularConnection.get_file_path_bound_options",
"options_callback_kwargs": null,
"state_name": "file_path",
"title": "File Path",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime.",
"type": "string"
}
},
"required": [
"connection_key",
"file_path"
],
"title": "FileTabularConnection",
"type": "object"
},
"MetaFileSystemConnectionKey": {
"enum": [
"sql-server-routine",
"sql-server-shared"
],
"title": "MetaFileSystemConnectionKey",
"type": "string"
},
"PartitionedFileTabularConnection": {
"properties": {
"connection_key": {
"$ref": "#/$defs/MetaFileSystemConnectionKey",
"description": "The MetaFileSystem connection key.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": null,
"options_callback_kwargs": null,
"state_name": "connection_key",
"title": "Connection Key",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime."
},
"file_type": {
"$ref": "#/$defs/FileExtensions_",
"description": "The type of files to read from the directory.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": null,
"options_callback_kwargs": null,
"state_name": "file_info",
"title": "File Type",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime."
},
"directory_path": {
"description": "The full directory path containing partitioned tabular files.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.pbm.store.conn.partitionedfiletable:PartitionedFileTabularConnection.get_directory_path_bound_options",
"options_callback_kwargs": null,
"state_name": "file_info",
"title": "Directory Path",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime.",
"type": "string"
}
},
"required": [
"connection_key",
"file_type",
"directory_path"
],
"title": "PartitionedFileTabularConnection",
"type": "object"
},
"SqlTabularConnection": {
"properties": {
"database_resource": {
"description": "The name of the database resource to connect to.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.pbm.store.conn.sqltable:SqlTabularConnection.get_database_resources",
"options_callback_kwargs": null,
"state_name": "database_resource",
"title": "Database Resource",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime.",
"type": "string"
},
"database_name": {
"description": "The name of the database to connect to.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.pbm.store.conn.sqltable:SqlTabularConnection.get_database_schemas",
"options_callback_kwargs": null,
"state_name": "database_name",
"title": "Database Name",
"tooltip": "Detail:\nNote: If you don\u2019t see the database name that you are looking for in this list, it is recommended that you first move the data to be used within a database that is available within this list.\n\nValidation Constraints:\nThis input may be subject to other validation constraints at runtime.",
"type": "string"
},
"table_name": {
"description": "The name of the table to use.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.pbm.store.conn.sqltable:SqlTabularConnection.get_tables",
"options_callback_kwargs": null,
"state_name": "table_name",
"title": "Table Name",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime.",
"type": "string"
}
},
"required": [
"database_resource",
"database_name",
"table_name"
],
"title": "SqlTabularConnection",
"type": "object"
},
"TabularConnection": {
"description": "A shared parameter base model dedication to tabular connections.",
"properties": {
"tabular_connection": {
"anyOf": [
{
"$ref": "#/$defs/SqlTabularConnection"
},
{
"$ref": "#/$defs/FileTabularConnection"
},
{
"$ref": "#/$defs/PartitionedFileTabularConnection"
},
{
"$ref": "#/$defs/CubeViewTabularConnection"
}
],
"description": "The connection type to use to access the source data.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": null,
"options_callback_kwargs": null,
"state_name": "connection",
"title": "Connection",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime."
}
},
"required": [
"tabular_connection"
],
"title": "TabularConnection",
"type": "object"
}
},
"properties": {
"clustering_data_input": {
"$ref": "#/$defs/ClusteringDataInput",
"description": "The data input configuration for the clustering analysis.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": null,
"options_callback_kwargs": null,
"state_name": "ClusteringDataInput",
"title": "Clustering Data Input",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime."
}
},
"required": [
"clustering_data_input"
],
"title": "ClusteringFitParams",
"type": "object"
}

Artifacts:

PropertyTypeRequiredDescription
cluster_intersectionunknownYesParquet file containing data about the clustering intersections and which cluster they belong to.
cluster_descriptionsunknownYesParquet file containing data about the clusters created by the clustering fit method.
data_utilizedDataFrameYesParquet file containing the data utilized in the clustering fit method.
evaluation_metricnumberYesNumeric evaluation metric produced during clustering model fitting. This may represent a cluster quality score or model selection criterion depending on the algorithm used (e.g., silhouette score for KMeans, BIC for Gaussian Mixture Models, DBCV for HDBSCAN).

Artifact Schema (JSON):

{
"additionalProperties": true,
"properties": {
"cluster_intersection": {
"description": "Parquet file containing data about the clustering intersections and which cluster they belong to.",
"io_factory_kwargs": {},
"preview_factory_kwargs": null,
"preview_factory_type": null,
"statistic_factory_kwargs": null,
"statistic_factory_type": null,
"title": "Clustering Intersection Results"
},
"cluster_descriptions": {
"description": "Parquet file containing data about the clusters created by the clustering fit method.",
"io_factory_kwargs": {},
"preview_factory_kwargs": null,
"preview_factory_type": null,
"statistic_factory_kwargs": null,
"statistic_factory_type": null,
"title": "Clustering Descriptions"
},
"data_utilized": {
"description": "Parquet file containing the data utilized in the clustering fit method.",
"io_factory_kwargs": {},
"preview_factory_kwargs": null,
"preview_factory_type": null,
"statistic_factory_kwargs": null,
"statistic_factory_type": null,
"title": "Data Utilized",
"type": "DataFrame"
},
"evaluation_metric": {
"description": "Numeric evaluation metric produced during clustering model fitting. This may represent a cluster quality score or model selection criterion depending on the algorithm used (e.g., silhouette score for KMeans, BIC for Gaussian Mixture Models, DBCV for HDBSCAN).",
"io_factory_kwargs": {},
"preview_factory_kwargs": null,
"preview_factory_type": null,
"statistic_factory_kwargs": null,
"statistic_factory_type": null,
"title": "Evaluation Metric",
"type": "number"
}
},
"required": [
"cluster_intersection",
"cluster_descriptions",
"data_utilized",
"evaluation_metric"
],
"title": "ClusteringFitArtifacts",
"type": "object"
}
2. Predict

Method Name: predict

Short Description: Abstract Predict Method

Detailed Description: This specifies the necessary input and output parameters for the predict method on all anomaly detection routines. The input parameters contain a source data definition and a time range to detect anomalies.

Inputs:

PropertyTypeRequiredDescription
datasource#/$defs/TabularConnectionYesSelect the datasource containing observations to assign to clusters.

Input Schema (JSON):

{
"$defs": {
"CubeViewTabularConnection": {
"description": "Tabular connection backed by an OneStream cube view.\n\nStores only the cube view name. At materialize time the cube view is\nextracted fresh via the DataFlow XBR endpoint and the result is loaded\nthrough DuckDB into a DataFrame.\n\nAnalogous to SqlTabularConnection (pick a table) or FileTabularConnection\n(pick a file): the user selects a pre-configured artifact, not raw config.\n\nThe OneStream application is taken from the SessionInfo (``si.app_name``) -- the single source\nof truth stamped at the request boundary / derived from the job's IAM entrypoint -- so the\nconnection no longer collects an application name from the user.\n\nExample:\n >>> conn = CubeViewTabularConnection(cube_view_name=\"Retail Source Data\")\n >>> df = conn.materialize_tabular_pandas_dataframe()",
"properties": {
"cube_view_name": {
"description": "The name of the OneStream cube view to use as the data source.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.pbm.store.conn.cubeviewtable:CubeViewTabularConnection.get_cube_view_bound_options",
"options_callback_kwargs": null,
"state_name": "cube_view_name",
"title": "Cube View",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime.",
"type": "string"
}
},
"required": [
"cube_view_name"
],
"title": "CubeViewTabularConnection",
"type": "object"
},
"FileExtensions_": {
"description": "File Extensions.",
"enum": [
".csv",
".tsv",
".psv",
".parquet",
".xlsx"
],
"title": "FileExtensions_",
"type": "string"
},
"FileTabularConnection": {
"properties": {
"connection_key": {
"$ref": "#/$defs/MetaFileSystemConnectionKey",
"description": "The MetaFileSystem connection key.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": null,
"options_callback_kwargs": null,
"state_name": "connection_key",
"title": "Connection Key",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime."
},
"file_path": {
"description": "The full file path to the file to ingest.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.pbm.store.conn.filetable:FileTabularConnection.get_file_path_bound_options",
"options_callback_kwargs": null,
"state_name": "file_path",
"title": "File Path",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime.",
"type": "string"
}
},
"required": [
"connection_key",
"file_path"
],
"title": "FileTabularConnection",
"type": "object"
},
"MetaFileSystemConnectionKey": {
"enum": [
"sql-server-routine",
"sql-server-shared"
],
"title": "MetaFileSystemConnectionKey",
"type": "string"
},
"PartitionedFileTabularConnection": {
"properties": {
"connection_key": {
"$ref": "#/$defs/MetaFileSystemConnectionKey",
"description": "The MetaFileSystem connection key.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": null,
"options_callback_kwargs": null,
"state_name": "connection_key",
"title": "Connection Key",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime."
},
"file_type": {
"$ref": "#/$defs/FileExtensions_",
"description": "The type of files to read from the directory.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": null,
"options_callback_kwargs": null,
"state_name": "file_info",
"title": "File Type",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime."
},
"directory_path": {
"description": "The full directory path containing partitioned tabular files.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.pbm.store.conn.partitionedfiletable:PartitionedFileTabularConnection.get_directory_path_bound_options",
"options_callback_kwargs": null,
"state_name": "file_info",
"title": "Directory Path",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime.",
"type": "string"
}
},
"required": [
"connection_key",
"file_type",
"directory_path"
],
"title": "PartitionedFileTabularConnection",
"type": "object"
},
"SqlTabularConnection": {
"properties": {
"database_resource": {
"description": "The name of the database resource to connect to.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.pbm.store.conn.sqltable:SqlTabularConnection.get_database_resources",
"options_callback_kwargs": null,
"state_name": "database_resource",
"title": "Database Resource",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime.",
"type": "string"
},
"database_name": {
"description": "The name of the database to connect to.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.pbm.store.conn.sqltable:SqlTabularConnection.get_database_schemas",
"options_callback_kwargs": null,
"state_name": "database_name",
"title": "Database Name",
"tooltip": "Detail:\nNote: If you don\u2019t see the database name that you are looking for in this list, it is recommended that you first move the data to be used within a database that is available within this list.\n\nValidation Constraints:\nThis input may be subject to other validation constraints at runtime.",
"type": "string"
},
"table_name": {
"description": "The name of the table to use.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": "xperiflow.source.app.routines.pbm.store.conn.sqltable:SqlTabularConnection.get_tables",
"options_callback_kwargs": null,
"state_name": "table_name",
"title": "Table Name",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime.",
"type": "string"
}
},
"required": [
"database_resource",
"database_name",
"table_name"
],
"title": "SqlTabularConnection",
"type": "object"
},
"TabularConnection": {
"description": "A shared parameter base model dedication to tabular connections.",
"properties": {
"tabular_connection": {
"anyOf": [
{
"$ref": "#/$defs/SqlTabularConnection"
},
{
"$ref": "#/$defs/FileTabularConnection"
},
{
"$ref": "#/$defs/PartitionedFileTabularConnection"
},
{
"$ref": "#/$defs/CubeViewTabularConnection"
}
],
"description": "The connection type to use to access the source data.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": null,
"options_callback_kwargs": null,
"state_name": "connection",
"title": "Connection",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime."
}
},
"required": [
"tabular_connection"
],
"title": "TabularConnection",
"type": "object"
}
},
"properties": {
"datasource": {
"$ref": "#/$defs/TabularConnection",
"description": "Select the datasource containing observations to assign to clusters.",
"field_type": "input",
"input_component": {
"component_type": "combobox",
"show_search": true
},
"list_render_mode": null,
"long_description": null,
"options_callback": null,
"options_callback_kwargs": null,
"state_name": "PredictDataSelection",
"title": "Prediction Datasource",
"tooltip": "Validation Constraints:\nThis input may be subject to other validation constraints at runtime."
}
},
"required": [
"datasource"
],
"title": "ClusteringAnalysisPredictParameters",
"type": "object"
}

Artifacts:

PropertyTypeRequiredDescription
cluster_intersectionunknownYesParquet file containing data about the clustering intersections and which cluster they belong to.
data_utilizedDataFrameYesParquet file containing the data utilized in the clustering predict method.

Artifact Schema (JSON):

{
"additionalProperties": true,
"properties": {
"cluster_intersection": {
"description": "Parquet file containing data about the clustering intersections and which cluster they belong to.",
"io_factory_kwargs": {},
"preview_factory_kwargs": null,
"preview_factory_type": null,
"statistic_factory_kwargs": null,
"statistic_factory_type": null,
"title": "Clustering Intersection Results"
},
"data_utilized": {
"description": "Parquet file containing the data utilized in the clustering predict method.",
"io_factory_kwargs": {},
"preview_factory_kwargs": null,
"preview_factory_type": null,
"statistic_factory_kwargs": null,
"statistic_factory_type": null,
"title": "Data Utilized",
"type": "DataFrame"
}
},
"required": [
"cluster_intersection",
"data_utilized"
],
"title": "ClusteringPredictArtifacts",
"type": "object"
}

Developer Docs

Routine Typename: GaussianMixtureModelClusteringAnalysis

Method NameArtifact Keys
__init__N/A
fitcluster_intersection, cluster_descriptions, data_utilized, evaluation_metric
predictcluster_intersection, data_utilized

Was this page helpful?