Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@
- Example: 10.2.1.4 is the 5th version that supports khiops 10.2.1.
- Internals: Changes in *Internals* sections are unlikely to be of interest for data scientists.

## Unreleased

### Changed
- (`core`) Rename `variable_part_dimensions` to `inner_variable_dimensions` in Coclustering results.

## 11.0.0.3 - 2026-03-06

### Added
Expand Down
34 changes: 19 additions & 15 deletions khiops/core/coclustering_results.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@
|- cells -> list of CoclusteringCell

CoclusteringDimension
|- parts -> list of CoclusteringDimensionPart
|- variable_part_dimensions -> list of CoclusteringDimension
|- clusters -> list of CoclusteringCluster
|- root_cluster -> CoclusteringCluster
|- parts -> list of CoclusteringDimensionPart
|- inner_variable_dimensions -> list of CoclusteringDimension
|- clusters -> list of CoclusteringCluster
|- root_cluster -> CoclusteringCluster

CoclusteringDimensionPartValueGroup
|- values -> list of CoclusteringDimensionPartValue
Expand Down Expand Up @@ -785,9 +785,13 @@ class CoclusteringDimension:
Maximum value of a numerical dimension/variable.
parts : list of `CoclusteringDimensionPart`
Partition of this dimension.
variable_part_dimensions : list of `CoclusteringDimension`
inner_variable_dimensions : list of `CoclusteringDimension`
Variable part instance-variable coclustering dimensions. ``None`` for
variable-variable clustering.
Contains the dimensions of the variables involved in the
instances x variables coclustering model.
This model includes two dimensions: one for instances and one for variable
parts (`isVarPart` set to ``True`` for this dimension).
clusters : list of `CoclusteringCluster`
Clusters of this dimension's hierarchy. Note that includes intermediary
clusters.
Expand Down Expand Up @@ -827,8 +831,8 @@ def __init__(self):
# Clusters internal dictionary
self._clusters_by_name = {}

# Variable part dimensions
self.variable_part_dimensions = None
# Inner variable dimensions
self.inner_variable_dimensions = None

def init_summary(self, json_data=None):
"""Initializes the summary attributes from a Python JSON object
Expand Down Expand Up @@ -954,7 +958,7 @@ def init_partition(self, json_data=None):
# Create inner variables dimensions (subpartition)
if "innerVariables" not in json_data:
raise KhiopsJSONError("'innerVariables' key not found")
self.variable_part_dimensions = []
self.inner_variable_dimensions = []
json_inner_variables = json_data["innerVariables"]
if "dimensionSummaries" in json_inner_variables:
for json_dimension_summary in json_inner_variables[
Expand All @@ -963,25 +967,25 @@ def init_partition(self, json_data=None):
dimension = CoclusteringDimension().init_summary(
json_dimension_summary
)
self.variable_part_dimensions.append(dimension)
self.inner_variable_dimensions.append(dimension)

# Initialize inner variables dimensions' partitions
if "dimensionPartitions" in json_inner_variables:
json_dimension_partitions = json_inner_variables[
"dimensionPartitions"
]
if len(self.variable_part_dimensions) != len(
if len(self.inner_variable_dimensions) != len(
json_dimension_partitions
):
raise KhiopsJSONError(
"'ineerVariables/dimensionPartitions' list has length "
"'innerVariables/dimensionPartitions' list has length "
f"{len(json_dimension_partitions)} instead of "
f"{len(self.variable_part_dimensions)}"
f"{len(self.inner_variable_dimensions)}"
)
for i, json_dimension_partition in enumerate(
json_dimension_partitions
):
dimension = self.variable_part_dimensions[i]
dimension = self.inner_variable_dimensions[i]
dimension.init_partition(json_dimension_partition)

return self
Expand Down Expand Up @@ -1137,11 +1141,11 @@ def to_dict(self, report_type):
report["innerVariables"] = {
"dimensionSummaries": [
dimension.to_dict(report_type="summary")
for dimension in self.variable_part_dimensions
for dimension in self.inner_variable_dimensions
],
"dimensionPartitions": [
dimension.to_dict(report_type="partition")
for dimension in self.variable_part_dimensions
for dimension in self.inner_variable_dimensions
],
}
return report
Expand Down
Loading