Source-linked AI summary

polyview: A Python package for multi-view machine learning

Gwendal Debaussart-Joniec, Argyris Kalogeratos

arXiv:2610.06491v1cs.AI

TL;DR

The Python ecosystem lacks maintained, unified tooling for composing end-to-end multi-view workflows. polyview provides a scikit-learn-compatible framework spanning key multi-view strategies and incomplete views; its CCA-based components achieve comparable clustering quality to established libraries with lower runtimes.

  • Problem

    The Python ecosystem lacks actively maintained, unified tooling for composing multi-view strategies with standard single-view methods, while existing libraries have limited scope or support.

    Source: §1 · p. 1
  • Method

    polyview provides scikit-learn-compatible tools for embedding, clustering, fusion, view augmentation, incomplete views, and composition of multi-view and single-view stages.

    Source: §1 · p. 1, §4.2 · p. 3
  • Results

    Across three real multiview datasets, polyview's CCA-based components match cca-zoo in NMI within differences of 0.005 and are fastest in all settings, by factors of 4 to 13 against cca-zoo.

    Source: §5 · p. 5, §7 · p. 6
  • Takeaways & Limitations

    polyview serves as a practical framework for composing multi-view strategies within workflows that also use standard scikit-learn components.

    Source: §1 · p. 1

    The current release targets dense numerical features, and incomplete views are handled only by imputation or complete-case analysis, not by methods that learn directly from incomplete views.

    Source: §4.2 · p. 4

Abstract

from arXiv · show

Multi-view learning jointly exploits multiple complementary representations of the same data and has become increasingly important in machine learning. However, the Python ecosystem lacks actively maintained, unified tooling for end-to-end multi-view workflows. In this paper, we present polyview, a Python package that provides tools for multi-view embedding, clustering, fusion, and view augmentation, as well as for handling incomplete views, all compatible with scikit-learn. The library offers a unified interface for composing heterogeneous multi-view workflows, including seamless transitions between multi-view and single-view stages. It is built around a core set of classes and utilities that enable composition of different methods and straightforward implementation of new ones. We illustrate the package on five real multi-view datasets and compare its components based on canonical correlation analysis with those of two established libraries. polyview aims to be both a practical toolkit for benchmarking and prototyping multi-view methods and a foundation for future research and development in this area.

1 Introduction

Multi-view learning uses complementary representations of the same data, but the Python ecosystem lacks maintained, unified tools for end-to-end workflows. polyview brings key multi-view strategies into a scikit-learn-compatible package designed for composing them with single-view stages.

1 Introduction

  • Multi-view datasets represent each data object through complementary forms such as modalities, acquisition instruments, or transformed signals.Examples include text, images, sensor streams, projections, and feature decompositions.Source: §1 · p. 1
  • The Python ecosystem lacks actively maintained, unified tooling for end-to-end multi-view workflows, despite growing demand for multi-view learning.Existing packages are either outdated or focus on specific method families and do not provide unified composition across multi-view strategies and standard single-view methods.Source: §1 · p. 1
  • polyview provides embedding, clustering, fusion, view augmentation, and incomplete-view imputation through a scikit-learn-compatible interface.PolyPipeline explicitly bridges multi-view and single-view stages, and the package prioritizes methods applicable to heterogeneous data and arbitrary numbers of views.Source: §1 · p. 1

2 Related software

The compared packages differ in method coverage, workflow composition, and installation support. polyview is positioned as a maintained, general-purpose framework that complements specialized tools.

2 Related software

  • Table 1 compares package support, including partial support for restricted view counts, early fusion, per-view wrappers, incomplete scikit-learn signatures, or manual dependencies.Installation and import were tested in fresh Python 3.13 and 3.14 environments.Source: §2 · p. 1, Table 1 · p. 2
  • mvlearn covers several strategy types and offers per-view wrappers, but some methods are limited to two views and its old matplotlib pin prevents installation on current Python versions.Its last release dates from 2022; multiview offers MDS, t-SNE, and spectral clustering but has had a single release and declares no dependencies.Source: §2 · p. 1
  • cca-zoo is maintained and scikit-learn-compatible but focuses on CCA-family embeddings, while multi-view-AE implements autoencoders but fails to import with its pinned dependency.polyview is intended to complement, rather than replace, these specialized packages with a maintained framework for composing heterogeneous strategies.Source: §2 · p. 2

3 The multi-view setting and strategy families

Multi-view learning addresses shared structure across potentially heterogeneous and incomplete views, while balancing overlapping information against view-specific contributions. The paper organizes workflows into four strategy families that can be composed with single-view methods.

3 The multi-view setting and strategy families

  • Views may differ in dimensionality and modality, be incomplete, and contain shared structure alongside view-specific signals; simple concatenation can be problematic.The challenges also include discovering cross-view relationships and balancing complementary with redundant information, since some views may be noisy, redundant, or misleading.Source: §3 · p. 2
  • A workflow is an end-to-end multi-view pipeline that may combine preprocessing, augmentation, representation learning, and a downstream objective.The four strategy families guide polyview's submodules and are designed to compose with standard single-view preprocessing and learning methods.Source: §3 · pp. 2–3
  • Representation alignment uses information from other views to find a representation for each view.CCA methods can produce shared latent spaces, while extensions such as MCCA focus on shared representations and GCCA on a fused, well-aligned representation.Source: §3 · pp. 2–3
  • Fusion merges views into one shared representation or combines per-view predictions for downstream tasks.The boundary between alignment and fusion is not always clear-cut, as illustrated by CCA extensions.Source: §3 · pp. 2–3
  • Clustering infers latent groups directly from multi-view data without necessarily computing an explicit shared representation..Source: §3 · p. 3
  • View augmentation generates additional views from single-view data through projections, subspaces, or kernels.It supports analysis of standard single-view datasets and can enhance robustness when the original view is noisy.Source: §3 · p. 3

4 Package overview

polyview provides a practical, extensible framework for composing multi-view methods with standard single-view stages. Its design principles, implemented components, and example workflows support end-to-end use while retaining explicit limits on supported data and incomplete-view handling.

4.1 Design principles

  • The design emphasizes sklearn conventions, pipeline flexibility, readable implementations, and applicability across heterogeneous data and, where relevant, arbitrary numbers of views.Single-view sklearn estimators can be used inside PolyPipeline.Source: §4.1 · p. 3
  • Base classes for clustering, embedding, and transformation, together with MultiViewDataset and PolyPipeline, support reusable components and workflows; methods limited by design to two views are not the primary focus.MultiViewDataset supplies a unified interface for multi-view data, while PolyPipeline composes multi-view and single-view components.Source: §4.1 · p. 3

4.2 Implemented components and limitations

  • The initial release organizes methods across four strategy families and includes tools for imputing incomplete views.Table 2 provides a method-level overview of implemented components and representative references.Source: §4.2 · p. 3, Table 2 · p. 3
  • Multi-view data can be supplied as same-row-count arrays or MultiViewDataset, which supports view names, labels, subsetting, splitting, and saving.The data model accepts any number of views with arbitrary dimensionalities.Source: §4.2 · p. 3
  • Incomplete views can be imputed using per-view statistics, shared-view neighbors, or regression from other views, or removed through complete-case analysis.Imputers return complete views and can be placed first in a PolyPipeline; utilities also describe and simulate missingness.Source: §4.2 · pp. 3–4
  • PolyPipeline exposes step parameters for model selection, and a ViewSplitter can split concatenated input so pipelines work with GridSearchCV or cross_val_score.The splitter is the first step in this setup.Source: §4.2 · p. 4
  • The current release targets dense numerical features and handles incomplete views only through imputation or complete-case analysis, not methods that learn directly from missing views.Sparse matrices and categorical variables require standard preprocessing beforehand; direct incomplete-view methods are planned for future releases.Source: §4.2 · p. 4

4.3 Example workflows

  • PolyPipeline chains multi-view and single-view components; examples combine per-view clustering with majority voting or apply GCCA before single-view KMeans.The examples illustrate different compositions, including label alignment before voting and a shared latent space before clustering.Source: §4.3 · p. 4

5 Empirical validation

The empirical evaluation compares polyview’s CCA-based embeddings with established libraries, examines scalability, and reports dataset-dependent clustering outcomes. Results cover five real multi-view datasets and synthetic data, with workflows expressed through a shared API.

Comparison with cca-zoo and mvlearn

  • Polyview and cca-zoo have matching GCCA NMI (differences ≤0.005), and their MCCA implementations differ by ≤0.007; polyview is 4–13× faster than cca-zoo and 2–19× faster than mvlearn.The mvlearn timing comparison warrants caution because it uses older software; its GCCA is unregularized.Source: Table 3 · p. 5, §5 · p. 5

Setup

  • The evaluation covers five real datasets, standardizes views, and evaluates embeddings using k-means NMI and median fit-and-transform time; workflows share a single-estimator or PolyPipeline API.The three embedding benchmarks are mfeat, Caltech101-7, and Outdoor Scene; two further workflow benchmarks are MSRC-v5 and 100leaves.Source: §5 · p. 5

Scalability

  • Early fusion, MultiViewKMeans, and MultiViewNMF scale roughly linearly with N, while GCCA and MCCA stay below 0.05 s up to N = 4000.MultiViewCoRegSpectralClustering and MultiViewMDS use dense N × N matrices, so time and memory grow at least quadratically; they suit datasets of up to a few thousand samples.Source: §5 · p. 5

Workflow comparison

  • MultiViewCoRegSpectralClustering has the highest AMI on mfeat (0.90) and MSRC-v5 (0.72), MultiViewCoTrainSpectralClustering on 100leaves (0.93), while early fusion and random-subspace views lead on Caltech101-7 and Outdoor Scene.Aligning labels raises majority-voting AMI from 0.22–0.46 to 0.38–0.75; early fusion and CCA-based embeddings are consistently fastest.Source: §5 · p. 5

6 Software quality, availability, and extensibility

The package is installable through pip, tested across Python versions, and supported by documentation and contribution guidance. Its task-specific base classes provide validation and parameter handling for new methods and communicate data changes to PolyPipeline.

Installation and testing

  • The package installs with pip and depends on NumPy, SciPy, and scikit-learn, with matplotlib and NetworkX optional for visualization.The described version is 0.1.0.Source: §6 · p. 5
  • Version 0.1.0 has 361 unit tests, 94% line coverage, and a test suite that passes on Python 3.13 and 3.14.All stochastic components expose a random_state parameter for pipeline control.Source: §6 · pp. 5–6

Documentation and extensibility

  • Sphinx documentation provides an API reference and worked examples, while contribution guidelines specify coding conventions and the estimator API contract for extensions.GitHub Actions builds the documentation and publishes releases to PyPI.Source: §6 · p. 6

Extending polyview

  • New methods subclass the base class for their task, which supplies input validation and parameter handling and informs PolyPipeline how each step changes the data.The paper illustrates this extension pattern with a minimal early-fusion method.Source: §6 · p. 6

7 Conclusion and future work

polyview unifies multi-view learning tools, and its CCA-based components achieve clustering quality comparable to cca-zoo and mvlearn with lower runtimes on three real datasets. Future work targets direct learning from incomplete views, scalability, broader method coverage, improved documentation, and community contributions.

7 Conclusion and future work

  • On three real multiview datasets, polyview’s CCA-based components achieved clustering quality comparable to cca-zoo and mvlearn, with lower runtimes.Source: §7 · p. 6
  • Future work will add methods that learn directly from incomplete views and improve the scalability of methods relying on dense N × N matrices.Source: §7 · p. 6
  • Future work will expand the implemented methods and documentation and encourage community contributions.Source: §7 · p. 6
Loading 2610.06491v1…