# go_evomap **Repository Path**: zhongjack/go_evomap ## Basic Information - **Project Name**: go_evomap - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-16 - **Last Updated**: 2026-04-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # evomap - A Toolbox for Dynamic Mapping in Go `evomap` is a comprehensive Go toolbox for creating, exploring, and analyzing spatial representations ('maps') from complex data, including high-dimensional feature vectors and pairwise relationship matrices. Such spatial representations find frequent applications in Marketing (e.g., market structure or positioning analysis), Network Analysis (e.g., social, economic, bibliographic, or biological networks), Political Science (e.g., ideological scaling), and High-Dimensional Data Analysis. A key use case of `evomap` is creating such maps from time-evolving data by processing longitudinal sequences of relationship matrices or high-dimensional feature vectors. The resultant maps allow users to track changes in complex systems, such as evolving markets or networks, and visualize their underlying evolution. `evomap` offers an all-in-one solution by integrating several essential steps into an easy-to-use API, including: - preprocessing - mapping (static/dynamic) - evaluation - plotting ## Installation To install `evomap`, use `go get`: ```bash go get github.com/evomap/evomap ``` ## Usage ### Static Mapping ```go import "github.com/evomap/evomap/pkg/evomap/mapping" // Create an MDS instance mds := mapping.NewMDS( mapping.WithNDims(2), mapping.WithNIter(2000), mapping.WithInputType("distance"), ) // Fit the model X := [][]float64{...} // Distance matrix y, err := mds.FitTransform(X) if err != nil { log.Fatal(err) } // Use the transformed coordinates fmt.Println(y) ``` ### Dynamic Mapping ```go import "github.com/evomap/evomap/pkg/evomap/mapping" // Create an EvoMDS instance evoMDS := mapping.NewEvoMDS( mapping.WithAlpha(0.1), mapping.WithP(1), mapping.WithNDims(2), mapping.WithNIter(2000), mapping.WithInputType("distance"), ) // Fit the model to time-series data Xs := [][][]float64{...} // List of distance matrices for each period ys, err := evoMDS.FitTransform(Xs, nil) if err != nil { log.Fatal(err) } // Use the transformed coordinates for each period for t, y := range ys { fmt.Printf("Period %d: %v\n", t, y) } ``` ## Mapping Methods As of now, `evomap` provides implementations of the following mapping methods: - MDS (Multidimensional Scaling) - Sammon Mapping (non-linear MDS) - t-SNE (t-distributed Stochastic Neighbor Embedding) You can apply all methods statically and dynamically. ## References This package is based on the authors' work in ``` [1] Matthe, M., Ringel, D. M., Skiera, B. (2023), Mapping Market Structure Evolution. Marketing Science, Vol. 42, Issue 3, 589-613. ``` Read the full paper here (open access): https://doi.org/10.1287/mksc.2022.1385 ## License `evomap` is licensed under the terms of the MIT license. It is free to use, however, please cite our work.