bluesky / bluesky-adaptive

Reference implementation for tightly integrated adaptive scans.
https://blueskyproject.io/bluesky-adaptive
BSD 3-Clause "New" or "Revised" License
4 stars 10 forks source link

Assumption of sorting data for sklearn agents is too strong. #31

Open maffettone opened 9 months ago

maffettone commented 9 months ago

Decomposition general preforms stronger and appears more intuitive if the data is sorted. The current assumptions for DecompositionAgentBase and [for ClusterAgentBase] will also only work for 1-d independent data.

Expected Behavior

Current Behavior

Sorting higher dims causes value errors.

Possible Solution

partial solution for 2D that needs extension:

try:
    sorted_independents, sorted_observables = zip(
        *sorted(zip(self.independent_cache, self.observable_cache))
    )
except ValueError:
    # Multidimensional case
    sorted_independents, sorted_observables = zip(
        *sorted(zip(self.independent_cache, self.observable_cache), key=lambda x: (x[0][0], x[0][1]))
    )