Paper deep dive
polyview: A Python package for multi-view machine learning
Gwendal Debaussart-Joniec, Argyris Kalogeratos
Intelligence
Status: not_run | Model: - | Prompt: - | Confidence: 0%
Entities (0)
Relation Signals (0)
No relation signals yet.
Cypher Suggestions (0)
No Cypher suggestions yet.
Abstract
Abstract: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.
Tags
Links
- Source: https://arxiv.org/abs/2610.06491v1
- Canonical: https://arxiv.org/abs/2610.06491v1
Trouble viewing inline? Open PDF directly â
Full Text
35,517 characters extracted from source content.
Expand or collapse full text
polyview: A Python package for multi-view machine learning Gwendal Debaussart-Joniec 1 and Argyris Kalogeratos 1 1 ENS Paris-Saclay, Gif-sur-Yvette, France gwendal.debaussart, argyris.kalogeratos@ens-paris-saclay.fr Abstract Multi-view learning jointly exploits multiple comple- mentary representations of the same data and has be- come increasingly important in machine learning. How- ever, the Python ecosystem lacks actively maintained, unified tooling for end-to-end multi-view workflows. In this paper, we presentpolyview, 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 het- erogeneous 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 straight- forward 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.polyviewaims to be both a practical toolkit for benchmarking and prototyping multi-view methods and a foundation for future research and development in this area. Keywords: Multi-view learning, multi-modal, embed- ding, multi-view fusion, multi-view alignment, clus- tering, classification, incomplete views, open-source, Python 1 Introduction Advances in multimodal and distributed data acquisi- tion have made multi-view datasets increasingly com- mon. Each data object is described by several comple- mentary representations, such as different modalities (e.g. text, images, and sensor streams), acquisition instruments, or transformed versions of the same signal (e.g. projections and feature decompositions). Multi- view learning aims to exploit these representations to improve robustness, interpretability, and downstream performance. Applications of multi-view learning span many domains, including social network analysis, multi- omics data, audio-visual data, and remote sensing [2,4â 6, 16, 25, 34, 38]. Despite this growing demand, the Python ecosystem still lacks actively maintained, unified tooling for end- to-end multi-view workflows. The closest package in scope,mvlearn[33], has had no update released since April 2022 and can no longer be installed on current Python versions, whilemultiview[8] has not been up- dated since 2018. Actively maintained alternatives, such ascca-zoo[11] ormulti-view-AE[1], focus on spe- cific families of methods (embeddings based on canon- ical correlation analysis (CCA) and on autoencoders, respectively) and do not provide a unified interface for composing different multi-view strategies together, or with standard single-view preprocessing and learning methods. In addition, recent taxonomies of multi-view learning [25] are not fully reflected in available libraries, where support for fusion methods and more-than-two- view settings remains limited. For these reasons, we have developedpolyview, a Python package that brings the main multi-view strate- gies together behind the familiar scikit-learn (sklearn) API. It covers embedding, clustering, fusion, and view augmentation, and includes imputation tools for in- complete views. The package is designed to support practical composition in real workflows rather than iso- lated algorithm usage, with explicit support for bridging multi-view and single-view stages throughPolyPipeline. polyviewprioritizes methods that are broadly applica- ble across heterogeneous data settings and arbitrary numbers of views. The open-source package is publicly available 1 under the GNU General Public License v3 (GPLv3), and the documentation is available online 2 . 2 Related software Table 1 comparespolyviewwith the main Python pack- ages for multi-view learning; each package was in- stalled withpipand imported in a fresh environment on Python 3.13 and 3.14. Partial support denotes methods restricted to 2 views, early fusion only, per-view wrap- pers only (MV/SV pipelines), sklearn naming without itsfit/output signatures, or dependencies that must be installed manually. mvlearn [33] is the closest package in scope, covering embedding, decomposition, clustering, and co-training, and itscomposemodule provides per-view wrappers usable in sklearn pipelines. However, several of its methods are restricted to 2 views, its last release dates from 2022, and its pin ofmatplotlib(â€3.3.4) makes it uninstallable on current Python versions.multiview[8] provides multi-view multidimensional scaling (MDS), t-distributed stochastic neighbor embedding (t-SNE), and spectral clustering, but has had a single release 1 https://github.com/Gwendal-Debaussart/polyview 2 https://gwendal-debaussart.github.io/polyview/ 1 arXiv:2610.06491v1 [cs.AI] 5 Oct 2026 Table 1: Python packages for multi-view learning (September 2026). Colors:supported,partly supported,not supported. MV/SV pipelines: chaining multi-view and single-view stages. Works on:pipinstall and import in a fresh Python 3.13 / 3.14 environment. multiview is marked partial as it declares no dependencies and these must be installed manually. Package Latest Release Main scope >2 views Clust. Fusion View augm. MV/SV pipelines sklearn API Works on 3.13 / 3.14 mvlearn0.5.0 (2022) CCA variants, decomp.partialâearlyâpartialâĂ /Ă multiview1.0 (2018) MDS, t-SNE, spectral âĂpartialâ /â cca-zoo3.1.1 (2024) CCA variantspartialĂâ /â multi-view-AE 1.1.8 (2024) AutoencoderspartialĂpartialĂ /Ă polyview0.1.0 (2026) CCA, clustering, fusionâ early kernel late â /â (2018) and declares no dependencies.cca-zoo[11] is actively maintained and sklearn-compatible, but re- stricted to CCA-family embeddings.multi-view-AE[1] implements multi-view autoencoders, but its pinned pytorch-lightningversion fails at import time on cur- rent Python versions.polyviewis not intended to re- place these specialized packages, but to complement them with a maintained, general-purpose framework in which heterogeneous multi-view strategies can be composed. 3 The multi-view setting and strategy families This section outlines the multi-view setting, its chal- lenges, and the main algorithmic strategies used to address them. This framing motivates the design of polyviewand its task-oriented taxonomy. For a more de- tailed introduction to multi-view learning, we refer the reader to comprehensive surveys [2, 5, 12, 25, 34, 38]. Formally, the multi-view setting involves a dataset DwithMdifferent views (or modalities),D= X (1) ,X (2) , ...,X (M) , where eachX (m) âR NĂd m rep- resents the sameNdata objects in a potentially dif- ferent feature space of dimensiond m . Where the data objects fall into groups, we writeKfor their num- ber, that is the number of classes or, in a clustering task, the number of clusters to be found. This means that, for an indexi= 1, ..., N, the vectorsX (1) i ,X (2) i , ...,X (M) i correspond to the same underlying data ob- jectiacross different views. As mentioned, the views may be homogeneous or heterogeneous, possibly with radically different dimensionalities that make simple approaches (e.g. view concatenation) problematic. In some cases, the views may even be incomplete; in par- ticular, some data objects may be missing in one or more views.polyviewhandles this case through impu- tation or complete-case analysis (Section 4.2). The goal of multi-view learning is to use the complementarity of the views to improve performance on downstream tasks such as clustering, classification, regression, or representation learning. This setting poses several chal- lenges: â Shared latent structure. Multiple views encode complementary information about a shared under- lying phenomenon. The key challenge is formalizing and exploiting this shared structure while preserv- ing view-specific signals. â Heterogeneous feature spaces. Views may dif- fer in dimensionality and modality (e.g. continuous vs. discrete, dense vs. sparse), requiring learn- ing mechanisms that operate across incompatible representation spaces. â Cross-view relationships. Views exhibit corre- spondence or dependency structures (correlation, consistency, or conditional independence) that need to be discovered and leveraged. â Complementarity vs. redundancy trade-off. Methods must balance exploiting overlapping (re- dundant) information and discovering unique (com- plementary) view contributions. â View quality and informativeness. Although each view is often assumed to be sufficient on its own to provide learning results better than random guessing, views do not contribute equally when con- sidered together; some may be noisy, redundant, or even misleading, which motivates adaptive weight- ing and selective integration. The first point captures the core motivation for multi- view learning. However, this complementarity assump- tion does not always hold in practice, and view imbal- ance becomes the limiting factor. Depending on the task and assumptions about the data (i.e. native data or data augmentation), various multi-view approaches have been developed. In the rest of the paper, we use the term âworkflowâ to re- fer to an end-to-end multi-view learning pipeline that may include multiple stages of preprocessing, view aug- mentation, representation learning, and a downstream task objective. These steps can be organized into four strategy families. 1. Representation alignment (MVâMV). Cer- tain methods aim at finding one representation per view by using information from other views. 1 1 this is the weaker de- vel- oped case. add 1- 2 sen- tences and 1- 2 ref- er- ences. also in the pre- vi- ous ver- sion with the bul- lets (com- mented above), there was a dis- agree- ment in this first point be- tween the bul- let and the ex- pla- na- tion para- graph (which I think says the cor- rect point â plz check) 2. Fusion (MVâSV). Some methods merge views into a single shared representation that can then be used for downstream tasks. This family also includes late fusion approaches that combine per-view predictions. Both are often grouped under multi-view representa- 2 tion learning [25]. The boundary between them is not always clear-cut in practice: for example, canonical cor- relation analysis (CCA) produces shared latent spaces (alignment), and among its multi-view extensions [18], some do focus on learning shared representations (e.g. MCCA [32]), while others focus on fusing views into a single âwell-alignedâ representation (e.g. GCCA [35]). 3. Clustering (MVâlabels). Some methods infer latent groups directly from multi-view data without necessarily computing an explicit shared representation [9, 12, 21, 22, 28]. 4. View augmentation (SVâMV). Certain meth- ods generate additional views from single-view data through projections, subspaces, or kernels, enabling multi-view analysis even when only one input view is provided. This is valuable for benchmarking on stan- dard single-view datasets [13,26] and for enhancing robustness when the original view is noisy [7,19,31,38]. In practice, these four strategy families are often combined within a single workflow and integrated with standard single-view preprocessing and learning meth- ods (Section 4.3). This taxonomy guides the design ofpolyviewby organizing implemented methods into submodules that reflect these strategies, while ensuring that they can be combined in a single pipeline. 4 Package overview This section presents an overview ofpolyview: the design principles that guided its development, the im- plemented components, and representative applications, with a focus on how the API supports composition into end-to-end workflows. 4.1 Design principles polyviewis built to be a practical, extensible foundation for multi-view learning. To achieve this, the package is guided by four design principles: â Sklearn compatibility. Estimators follow familiar sklearn conventions (hyperparameters set in the constructor,fitreturning the estimator,transform/predict, fitted attributes with a trailing underscore) and inherit from sklearnâsBaseEstimator, so they supportget_params, set_params, andclone. Single-view sklearn estima- tors can be used directly inside PolyPipeline. â Flexibility. Multi-view and single-view compo- nents can be combined in a single pipeline via PolyPipeline, enabling complex compositions with- out custom glue code. â Clarity. Implementations prioritize readability and explicitness so that users can inspect, understand, and extend methods. â Applicability. Included methods are selected to be broadly usable across heterogeneous data and, where relevant, across arbitrary numbers of views. In practice, flexibility is ensured by clear base classes for multi-view methods, such asBaseMultiViewClusterer Table 2: Method-level overview of implementedpolyview components, with representative references. Submodule MethodReference embed GCCA[10, 18] MCCA[18, 20] MultiViewMDS[3] cluster MultiViewKMeans[9, 38] MultiViewCoRegSpectralClustering[22, 38] MultiViewCoTrainSpectralClustering[21, 38] MultiViewNMF[28] augmentation MultiKernel / multi_kernels[17] RandomProjectionViews / random_projection [7] RandomSubspaceViews / random_subspace[19] fusion ConcatFusion[2] WeightedFusion[2] NormalizedFusion[2] KernelFusion[17] MajorityVote[23] imputation SimpleViewImputer[27] KNNViewImputer[36] CrossViewRegressionImputer[27] DropIncompleteSamples / drop_missing_views [27] for clustering tasks,BaseMultiViewEmbedderfor embed- ding tasks, orBaseMultiViewTransformerfor general transformation tasks. This flexibility is further sup- ported by theMultiViewDatasetclass, which provides a unified interface for handling multi-view data, as well asPolyPipeline, which allows users to compose multi- view and single-view components in a single workflow. Clarity is achieved through explicit implementations that closely follow the mathematical descriptions of the original methods, with comprehensive documentation linking code to methodological references. The appli- cability criterion is especially important for practical adoption, as it avoids restricting the package to narrow, fixed-view use cases. Consequently, methods that are by design limited to 2 views are not the primary focus. 4.2Implemented components and limi- tations As of the initial release,polyviewincludes methods across the four strategy families outlined in Section 3. The package is organized into submodules that re- flect these strategies while supporting straightforward composition within a single pipeline. In addition, the imputationsubmodule provides tools for handling in- complete views. These components are summarized in Table 2. Data model. A multi-view dataset is passed either as a list of 2-D arrays with the same number of rows, or as aMultiViewDataset, which also stores view names and labels and supports subsetting, (stratified) train/test splitting, and saving. Any number of viewsM â„1 of arbitrary dimensionalities is accepted. Incomplete views. Real multi-view datasets are often incomplete, in the particular sense that some data objects are not observed in every view.polyview handles this setting through itsimputationsubmod- ule, in which a missing view is encoded as a row of NaN. Missing views can be imputed i) from per-view statistics (SimpleViewImputer), i) from the nearest sam- 3 3 parallel branches per-view labels (3 -> 3) late-fusion (3 -> 1) input scale: StandardScaler kmeans: KMeans vote: MajorityVote output Multi-view (MV) Multi-Labels LabelsOutput node (a) Late fusion workflow: parallel single- view steps followed by a multi-view fusion step. split 1 -> 3 branches merge 3 -> 1 input subspace: RandomSubspaceViews mvnmf: MultiViewNMF output Multi-view (MV) Single-view (SV) LabelsOutput node (b) Single-view to multi-view work- flow: single-view preprocessing followed by a multi-view clustering method. 3 parallel branches merge 3 -> 1 labels (1-D) input pca: PCA mcca: GCCA kmeans: KMeans output Multi-view (MV) Single-view (SV) LabelsOutput node (c) Multi-view embedding workflow: pre-processing steps followed by a multi- view embedding method and a clustering step. Figure 1: Visualization of examplePolyPipelineworkflows, showing the sequence of transformations and the data flow through multi-view and single-view stages. The diagrams are generated using thedrawmethod ofPolyPipeline, which provides a visual representation of the pipeline structure. These examples are run on a 3-view dataset or on a single-view dataset generating 3 views through random subspaces. ples that have the view, found using the views they share (KNNViewImputer), or i) through a regression from the other views (CrossViewRegressionImputer); alterna- tively, they can be discarded through complete-case analysis (DropIncompleteSamples). Since imputers al- ways return complete views, they can be placed as the first step of aPolyPipeline, after which any method of the package can be applied. Utilities to describe the missingness pattern and to simulate missing views, e.g. for benchmarking, are also provided. Model selection.PolyPipelineexposes the param- eters of its steps asstep__parameter, like sklearnâs Pipeline. Passing the views as a single concate- nated array, split back by a firstViewSplitterstep, makes anyPolyPipelineusable withGridSearchCVor cross_val_score. Limitations. The current release targets dense numer- ical features: sparse matrices and categorical variables must be handled by standard preprocessing beforehand. Incomplete views are only handled through imputation or complete-case analysis: none of the implemented methods learns directly from incomplete views, and such methods are planned for future releases. 4.3 Example workflows Multi-view methods can be combined within a single workflow and integrated with standard single-view pre- processing and learning methods. Accordingly, the API ofpolyviewsupports composition of different methods into end-to-end workflows. The library extends the principle of sklearnâsPipelineto multi-view settings through thePolyPipelineclass, which allows users to chain multi-view and single-view components in one workflow. This design enables users to experiment with method combinations and iterate on workflows without writing custom glue code. Below, we provide repre- sentative use cases that illustrate the flexibility and applicability ofpolyviewâs API. We usePolyPipelineto compose implemented methods into end-to-end work- flows and draw to visualize the resulting pipelines. Figure 1a illustrates a simple workflow that ap- plies multiple single-view steps in parallel to each view (StandardScalerandKMeans), and then combines their predictions through a multi-view fusion step (MajorityVote). Since cluster identifiers are arbitrary in each view,align_labels=Truefirst matches the per-view labels (Hungarian algorithm) before voting. Figure 1c illustrates a workflow that first applies a preprocessing PCA step to each view, then applies a multi-view em- bedding method (GCCA) that learns a shared latent space across views, and finally applies a single-view clustering method (KMeans) to the resulting shared representation. Additional detailed runnable examples are provided in the package documentation and are intended to serve both as quick-start recipes and as templates for custom pipelines. 5 Empirical validation We validatepolyviewagainst established libraries on real multi-view data, report runtimes, and compare representative workflows built with the package. Setup. We use 3 standard benchmarks: UCI Multiple 4 Table 3: CCA-based embeddings ofpolyview,cca-zoo, andmvlearn: median fit-and-transform time over 5 runs, and NMI ofk-means on the concatenated per-view projections (regularization 10 â3 ; std. below 0.012). The number of components is capped by the smallest view dimension (6, 7, and 8). â Python 3.9; no regularization for GCCA. mfeatCaltech101-7Outdoor Scene Method Library Time (s) NMI Time (s) NMI Time (s) NMI GCCA polyview0.040.7680.380.4810.230.510 cca-zoo0.530.7681.940.4801.470.507 mvlearn â 0.520.8003.200.4730.960.444 MCCA polyview0.020.7691.550.4770.090.486 cca-zoo0.130.7676.180.4790.480.491 mvlearn â 0.380.7702.760.4810.640.484 Table 4: Fit time (in seconds, single run) on synthetic data withM= 3 views of 50 features and 5 clusters, for an increasing number of samples N. MethodN = 500 1000 2000 4000 ConcatFusion + KMeans0.011 0.019 0.036 0.062 MultiViewKMeans0.17 0.24 0.64 1.12 MultiViewNMF0.48 0.87 1.57 2.93 MCCA0.002 0.003 0.004 0.004 GCCA0.016 0.023 0.023 0.037 MultiViewCoRegSpectralClustering0.053 0.17 0.83 4.10 MultiViewMDS0.90 3.72 15.8 65.1 Features (mfeat) [14], with 2000 handwritten digits, 10 classes, and 6 views of 6 to 240 features; Caltech101- 7 [15,24], with 1474 images, 7 classes, and 6 views of 40 to 1984 features; and Outdoor Scene [30], with 2688 images, 8 classes, and 4 views of 48 to 512 features. Views are standardized. Each embedding is evaluated by the NMI ofk-means (withKthe number of classes) on the concatenated per-view projections, averaged over 5 seeds, and by its median fit-and-transform time over 5 runs. The experiments were run on an Apple M3 Max laptop with Python 3.13;mvlearn, which cannot be installed on this version, was run with Python 3.9 and the library versions current at its last release. Comparison withcca-zooandmvlearn. We com- pare GCCA and MCCA with their counterparts using the same number of components, regularization, and downstreamk-means (Table 3).polyviewandcca-zoo reach the same NMI (differencesâ€0.005), as do the three MCCA implementations (â€0.007), which sup- ports the correctness of the implementations. The GCCA ofmvlearnrelies on an unregularized formula- tion, which helps on mfeat (0.800 against 0.768) but hurts on the other two datasets (0.473 against 0.481, and 0.444 against 0.510).polyviewis the fastest in all settings, by a factor of 4 to 13 againstcca-zooand 2 to 19 againstmvlearn(whose timings, obtained with older software, should be compared with caution). The small- est gain is MCCA on Caltech101-7, the dataset with by far the widest views, wherepolyviewtakes 1.55 s against 2.76 s for mvlearn. Scalability. Table 4 reports fit times on syn- thetic data (make_multiview_gaussian). Early fusion, MultiViewKMeans, andMultiViewNMFscale roughly lin- early withN, and GCCA and MCCA stay below 0.05 s up toN= 4000.MultiViewCoRegSpectralClustering andMultiViewMDSoperate on denseN Ă Nmatrices, so their time and memory grow at least quadratically; they are best suited to datasets of up to a few thousand samples. Workflow comparison. Table 5 reports clustering results for representativepolyviewworkflows, on the three datasets above and on two further benchmarks: MSRC-v5 [37], with 210 images, 7 classes, and 5 views of 24 to 576 features, and 100leaves [29], with 1600 plant leaves, 100 classes, and 3 views of 64 features (shape, margin, and texture). Views are standardized (minâmax scaled forMultiViewNMF, which requires non- negative inputs), and the number of clusters is set to the number of classes (k=K). Every workflow is expressed with the same API, either as a single multi- view estimator or as aPolyPipelinecombiningpolyview and sklearn components. Which is the most effective strategy in each case depends on the dataset: looking at the AMI index,MultiViewCoRegSpectralClustering is best on mfeat (0.90) and MSRC-v5 (0.72), MultiViewCoTrainSpectralClusteringon 100leaves (0.93), and early fusion and random-subspace views on Caltech101-7 and Outdoor Scene. This echoes the view-imbalance issue of Section 3 and motivates comparing strategies within a single interface. Late fusion also illustrates the importance of label matching, asalign_labels=Trueraises the AMI of majority voting from 0.22â0.46 to 0.38â0.75. The fastest workflows are consistently early fusion and the CCA-based embeddings. 6Software quality, availability, and extensibility Installation and testing.polyviewis a pure-Python package installed withpip install polyview. The pack- ageâs dependencies are NumPy, SciPy, and scikit-learn (matplotlib and NetworkX are optional, for visualiza- tions withdraw). The version described here is 0.1.0. Its 361 unit tests cover every estimator,MultiViewDataset, PolyPipeline, and the imputation tools, for 94% line coverage. The suite passes on Python 3.13 and 3.14. All stochastic components expose arandom_statepa- 5 Table 5: Clustering results ofpolyviewworkflows: AMI (mean±standard deviation over 5 seeds) and median wall-clock time (s) of the complete workflow. Best AMI and best time per dataset in bold. Best single view: selected a posteriori using the labels. View augmentation: 3 views generated from the concatenated views (random subspaces of half of the features or random projections to 50 dimensions). mfeat (N=2000, M=6, K=10) Caltech101-7 (N=1474, M=6, K=7) Outdoor Scene (N=2688, M=4, K=8) MSRC-v5 (N=210, M=5, K=7) 100leaves (N=1600, M=3, K=100) WorkflowAMITimeAMITimeAMITimeAMITimeAMITime Single view and fusion Best single view + KMeans0.748±0.0250.370.542±0.003 0.53 0.451±0.013 0.56 0.562±0.019 0.05 0.690±0.0050.54 ConcatFusion + KMeans0.812±0.0220.13 0.562±0.004 0.42 0.565±0.003 0.43 0.675±0.018 0.03 0.916±0.0110.20 Per-view KMeans + MajorityVote 0.440±0.0480.420.249±0.043 0.59 0.218±0.030 0.67 0.296±0.035 0.07 0.464±0.0060.53 with align_labels=True0.747±0.0370.420.439±0.016 0.58 0.383±0.012 0.62 0.408±0.028 0.06 0.619±0.0120.54 View augmentation + MultiViewKMeans RandomSubspaceViews0.829±0.0236.960.551±0.050 24.4 0.566±0.005 27.4 0.656±0.006 0.70 0.859±0.00722.0 RandomProjectionViews0.794±0.0301.340.533±0.031 0.92 0.532±0.013 2.23 0.638±0.024 0.11 0.860±0.00715.4 Multi-view clustering MultiViewKMeans0.680±0.0058.470.379±0.025 23.2 0.479±0.005 18.1 0.551±0.047 0.62 0.795±0.01316.0 MultiViewCoRegSpectralClustering 0.900±0.0012.720.511±0.002 1.31 0.545±0.001 3.59 0.715±0.013 0.06 0.890±0.00527.9 MultiViewCoTrainSpectralClustering 0.842±0.0004.090.451±0.006 1.84 0.407±0.030 2.21 0.671±0.005 0.16 0.930±0.0117.21 MultiViewNMF0.503±0.0306.350.469±0.031 30.7 0.362±0.017 19.9 0.525±0.031 1.57 0.477±0.0195.30 Multi-view embedding + KMeans GCCA0.761±0.0010.080.472±0.001 0.41 0.469±0.003 0.26 0.355±0.030 0.03 0.703±0.0080.19 MCCA0.767±0.001 0.060.473±0.001 1.55 0.483±0.012 0.16 0.378±0.012 0.22 0.759±0.0120.23 MultiViewMDS0.592±0.01420.90.336±0.008 11.5 0.349±0.001 33.5 0.423±0.028 0.30 0.576±0.00510.7 rameter, allowing for pipeline control. Documentation. The Sphinx documentation includes an API reference citing the original publication of each method and worked examples of each workflow type (MVâMV, MVâSV, SVâMV, and late fusion). Con- tribution guidelines describe the coding conventions and the API contract for new estimators, and GitHub Actions build the documentation and publish releases to PyPI. Extendingpolyview. A new method subclasses the base class of its task, which provides input validation and parameter handling, and tellsPolyPipelinehow the step changes the data. For instance, a minimal early-fusion method reads: class MyConcatFusion(BaseFusion): def fit(self, views, y=None): self._validate_views(views) return self def transform(self, views): views = self._validate_views( views, reset=False) return np.hstack(views) 7 Conclusion and future work In this paper, we introducedpolyview, which provides a unified multi-view learning framework that covers em- bedding, clustering, fusion, view augmentation, and incomplete views. ItsPolyPipelineclass explicitly bridges multi-view and single-view stages, so that multi- view methods can be combined with standard sklearn components. Our experiments on three real multi- view datasets show that the CCA-based components of polyviewreach a clustering quality comparable to that of cca-zoo and mvlearn, with lower runtimes. Future work will add methods that learn directly from incomplete views, improve the scalability of meth- ods relying on denseN Ă Nmatrices, expand the set of implemented methods and the documentation, and encourage contributions from the community. Acknowledgments This work was supported by the Industrial Data An- alytics and Machine Learning Chair hosted at ENS Paris-Saclay. References [1]Ana Lawry Aguila, Alejandra Jayme, Nina Montaña- Brown, Vincent Heuveline, and Andre Altmann. Multi- view-AE: A Python package for multi-view autoen- coder models. Journal of Open Source Software, 8(85): 5093, 2023. [2]Pradeep K. Atrey, M. Anwar Hossain, Abdulmotaleb El Saddik, and Mohan S. Kankanhalli. Multimodal fusion for multimedia analysis: A survey. Multimedia Systems, 16(6):345â379, 2010. [3]Song Bai, Xiang Bai, Longin Jan Latecki, and Qi Tian. Multidimensional scaling on multiple input distance matrices. Preprint arXiv:1605.00286, 2017. [4] Ana R BaiĂŁo, Zhaoxiang Cai, Rebecca C Poulos, Phillip J Robinson, Roger R Reddel, Qing Zhong, Susana Vinga, and Emanuel Gonçalves. A techni- cal review of multi-omics data integration methods: from classical statistical to deep generative approaches. Briefings in Bioinformatics, 2025. [5]Tadas Baltrusaitis, Chaitanya Ahuja, and Louis- Philippe Morency. Multimodal machine learning: A survey and taxonomy. IEEE Transactions on Pat- tern Analysis and Machine Intelligence, 41(2):423â443, 2019. [6] Baptiste Bauvin. Multi-view Machine Learning and its Applications to Multi-Omic Tasks. PhD thesis, 2023. [7]Ella Bingham and Heikki Mannila. Random projection in dimensionality reduction: applications to image and text data. In ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pages 245â 250, 2001. 6 [8] MarĂa Araceli Burgueño Caballero. multiview: Multi- view clustering and dimensionality reduction.https: //github.com/mariceli3/multiview, 2018. [9]Xiao Cai, Feiping Nie, Heng Huang, and Faramarz Kamangar. Multi-view k-means clustering on big data. IEEE Transactions on Knowledge and Data Engineer- ing, 25(9):1887â1899, 2013. [10]J. Douglas Carroll. Generalization of canonical cor- relation analysis to three or more sets of variables. Proceedings of the American Psychological Association, pages 227â228, 1968. [11] James Chapman, Hao-Ting Wang, Lennie Wells, and Johannes Wiesner. CCA-Zoo: A collection of regu- larized, deep learning based, kernel, and probabilistic CCA methods in a scikit-learn style framework. Jour- nal of Open Source Software, 6(68):3823, 2021. [12] Man-Sheng Chen, Jia-Qi Lin, Xiang-Long Li, Bao-Yu Liu, Chang-Dong Wang, Dong Huang, and Jian-Huang Lai. Representation learning in multi-view clustering: A literature review. Data Science and Engineering, 7 (3), 2022. [13]Gwendal Debaussart-Joniec and Argyris Kalogeratos. Multi-view diffusion geometry using intertwined diffu- sion trajectories. Preprint arXiv:2512.01484, 2025. [14]Robert Duin. Multiple features. UCI Machine Learning Repository, 1998. [15]Li Fei-Fei, Rob Fergus, and Pietro Perona. Learning generative visual models from few training examples: An incremental Bayesian approach tested on 101 object categories. In Conference on Computer Vision and Pattern Recognition Workshop, page 178, 2004. doi: 10.1109/CVPR.2004.383. [16]Pedram Ghamisi, Behnood Rasti, Naoto Yokoya, Qunming Wang, Bernhard Hofle, Lorenzo Bruzzone, Francesca Bovolo, Mingmin Chi, Katharina Anders, Richard Gloaguen, Peter M. Atkinson, and Jon Atli Benediktsson. Multisource and multitemporal data fusion in remote sensing: A comprehensive review of the state of the art. IEEE Geoscience and Remote Sensing Magazine, 2019. [17] Mehmet Gönen and Ethem Alpaydin. Multiple kernel learning algorithms. Journal of Machine Learning Research, 2011. [18]Chenfeng Guo and Dongrui Wu. Canonical correlation analysis (cca) based multi-view learning: An overview. Preprint arXiv:1907.01693, 2021. [19]Tin Kam Ho. The random subspace method for con- structing decision forests. IEEE Transactions on Pat- tern Analysis and Machine Intelligence, 20(8):832â844, 1998. [20] Jon R. Kettenring. Canonical analysis of several sets of variables. Biometrika, 58(3):433â451, 1971. [21] Abhishek Kumar and Hal Daume. A co-training ap- proach for multi-view spectral clustering. In Interna- tional Conference on Machine Learning, pages 393â400, 2011. [22]Abhishek Kumar, Piyush Rai, and Hal Daume. Co- regularized multi-view spectral clustering. In Advances in Neural Information Processing Systems, 2011. [23] Ludmila I. Kuncheva. Combining Pattern Classifiers: Methods and Algorithms. Wiley-Interscience, 2004. [24] Yeqing Li, Feiping Nie, Heng Huang, and Junzhou Huang. Large-scale multi-view spectral clustering via bipartite graph. In Proceedings of the AAAI Conference on Artificial Intelligence, volume 29, 2015. doi: 10. 1609/aaai.v29i1.9598. [25]Yingming Li, Ming Yang, and Zhongfei Zhang. A Survey of Multi-View Representation Learning . IEEE Transactions on Knowledge & Data Engineering, Octo- ber 2019. [26] Ofir Lindenbaum, Arie Yeredor, Moshe Salhov, and Amir Averbuch. Multi-view diffusion maps. In- formation Fusion, 55:127â149, 2020. ISSN 1566- 2535. URLhttps://w.sciencedirect.com/science/ article/pii/S1566253518303877. [27] Roderick J. A. Little and Donald B. Rubin. Statistical Analysis with Missing Data. John Wiley & Sons, 3 edition, 2019. [28] Jialu Liu, Chi Wang, Jing Gao, and Jiawei Han. Multi- view clustering via joint nonnegative matrix factoriza- tion. In Proceedings of the 2013 SIAM International Conference on Data Mining, pages 252â260, 2013. doi: 10.1137/1.9781611972832.28. [29] Charles Mallah, James Cope, and James Orwell. Plant leaf classification using probabilistic integration of shape, texture and margin features. In Signal Pro- cessing, Pattern Recognition and Applications, 2013. [30] Aude Oliva and Antonio Torralba. Modeling the shape of the scene: A holistic representation of the spatial envelope. International Journal of Computer Vision, 42(3):145â175, 2001. doi: 10.1023/A:1011139631724. [31]Evangelos E. Papalexakis, Leman Akoglu, and Dino Ience. Do more views of a graph help? community detection and clustering in multi-graphs. In Interna- tional Conference on Information Fusion, pages 899â 905, 2013. [32]Lucas C Parra. Multi-set canonical correlation analysis simply explained. Preprint arXiv:1802.03759, 2018. [33]Ronan Perry, Gavin Mischler, Richard Guo, Theodore Lee, Alexander Chang, Arman Koul, Cameron Franz, Hugo Richard, Iain Carmichael, Pierre Ablin, Alexan- dre Gramfort, and Joshua T. Vogelstein. mvlearn: Multiview machine learning in python. Journal of Machine Learning Research, 22(109):1â7, 2021. [34]Yalan Qin, Xinpeng Zhang, Shui Yu, and Guorui Feng. A survey on representation learning for multi-view data. Neural Networks, 181:106842, 2025. ISSN 0893-6080. [35]Arthur Tenenhaus and Michel Tenenhaus. Regularized generalized canonical correlation analysis. Psychome- trika, 2011. [36]Olga Troyanskaya, Michael Cantor, Gavin Sherlock, Pat Brown, Trevor Hastie, Robert Tibshirani, David Botstein, and Russ B. Altman. Missing value estima- tion methods for DNA microarrays. Bioinformatics, 17(6):520â525, 2001. doi: 10.1093/bioinformatics/17.6. 520. [37]John Winn and Nebojsa Jojic. LOCUS: Learning object classes with unsupervised segmentation. In Proceedings of the IEEE International Conference on Computer Vision (ICCV), volume 1, pages 756â763, 2005. [38]Chang Xu, Dacheng Tao, and Chao Xu. A survey on multi-view learning. Preprint arXiv:1304.5634, 2013. 7