# InterDim
[![Docs and Tests](https://github.com/MShinkle/interdim/actions/workflows/docs.yml/badge.svg?branch=main&label=tests)](https://github.com/MShinkle/interdim/actions)
![Python Versions](https://img.shields.io/pypi/pyversions/interdim.svg)
[![License](https://img.shields.io/badge/license-BSD--3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
[![Docs](https://img.shields.io/badge/docs-GitHub%20Pages-blue.svg)](https://MShinkle.github.io/interdim)
### Interactive Dimensionality Reduction, Clustering, and Visualization
InterDim is a Python package for interactive exploration of latent data dimensions. It wraps existing tools for dimensionality reduction, clustering, and data visualization in a streamlined interface, allowing for quick and intuitive analysis of high-dimensional data.
## Features
- Easy-to-use pipeline for dimensionality reduction, clustering, and visualization
- Interactive 3D scatter plots for exploring reduced data
- Support for various dimensionality reduction techniques (PCA, t-SNE, UMAP, etc.)
- Multiple clustering algorithms (K-means, DBSCAN, etc.)
- Customizable point visualizations for detailed data exploration
## Installation
You can install from [PyPI](https://pypi.org/project/interdim/) via `pip` (recommended):
```bash
pip install interdim
```
Or from source:
```bash
git clone https://github.com/MShinkle/interdim.git
cd interdim
pip install .
```
## Quick Start
Here's a basic example using the Iris dataset:
```python
from sklearn.datasets import load_iris
from interdim import InterDimAnalysis
iris = load_iris()
analysis = InterDimAnalysis(iris.data, true_labels=iris.target)
analysis.reduce(method='tsne', n_components=3)
analysis.cluster(method='kmeans', n_clusters=3)
analysis.show(n_components=3, point_visualization='bar')
```
![3D Scatter Plot with Interactive Bar Charts](https://raw.githubusercontent.com/MShinkle/interdim/refs/heads/main/docs/images/iris_plot.png)
This will reduce the Iris dataset to 3 dimensions using t-SNE, clusters the data using K-means, and displays an interactive 3D scatter plot with bar charts for each data point as you hover over them.
However, this is just a small example of what you can do with InterDim. You can use it to explore all sorts of data, including high-dimensional data like language model embeddings!
## Demo Notebooks
For more in-depth examples and use cases, check out our demo notebooks:
1. [Iris Species Analysis](https://github.com/MShinkle/interdim/blob/main/notebooks/IRIS_visualization.ipynb): Basic usage with the classic Iris dataset.
![Iris Species Analysis](https://raw.githubusercontent.com/MShinkle/interdim/refs/heads/main/docs/images/iris_plot_pretty.png)
2. [DNN Latent Space Exploration](https://github.com/MShinkle/interdim/blob/main/notebooks/DNN_latents.ipynb): Visualizing deep neural network activations.
![DNN Latent Space Exploration](https://raw.githubusercontent.com/MShinkle/interdim/refs/heads/main/docs/images/fashion_plot.png)
3. [LLM Token Analysis](https://github.com/MShinkle/interdim/blob/main/notebooks/LLM_token_embeddings.ipynb): Exploring language model token embeddings and layer activations.
![LLM Token Analysis](https://raw.githubusercontent.com/MShinkle/interdim/refs/heads/main/docs/images/llm_weevil.png)
## Documentation
For detailed API documentation and advanced usage, visit our [GitHub Pages](https://MShinkle.github.io/interdim).
## Contributing
We welcome discussion and contributions!
## License
InterDim is released under the BSD 3-Clause License. See the [LICENSE](https://github.com/MShinkle/interdim/blob/main/LICENSE) file for details.
## Contact
For questions and feedback, please [open an issue](https://github.com/MShinkle/interdim/issues) on GitHub.
Raw data
{
"_id": null,
"home_page": null,
"name": "interdim",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "dimensionality reduction, clustering, visualization, machine learning, data analysis",
"author": null,
"author_email": "Matthew Shinkle <matthewshinkle@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/f5/df/ba86d68e63ec0a6dbf04c4bb100c793fb978eab9509d0f04c0f5c59a78a6/interdim-1.0.2.tar.gz",
"platform": null,
"description": "# InterDim\n[![Docs and Tests](https://github.com/MShinkle/interdim/actions/workflows/docs.yml/badge.svg?branch=main&label=tests)](https://github.com/MShinkle/interdim/actions)\n![Python Versions](https://img.shields.io/pypi/pyversions/interdim.svg)\n[![License](https://img.shields.io/badge/license-BSD--3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)\n[![Docs](https://img.shields.io/badge/docs-GitHub%20Pages-blue.svg)](https://MShinkle.github.io/interdim)\n\n### Interactive Dimensionality Reduction, Clustering, and Visualization\n\nInterDim is a Python package for interactive exploration of latent data dimensions. It wraps existing tools for dimensionality reduction, clustering, and data visualization in a streamlined interface, allowing for quick and intuitive analysis of high-dimensional data.\n\n## Features\n\n- Easy-to-use pipeline for dimensionality reduction, clustering, and visualization\n- Interactive 3D scatter plots for exploring reduced data\n- Support for various dimensionality reduction techniques (PCA, t-SNE, UMAP, etc.)\n- Multiple clustering algorithms (K-means, DBSCAN, etc.)\n- Customizable point visualizations for detailed data exploration\n\n## Installation\n\nYou can install from [PyPI](https://pypi.org/project/interdim/) via `pip` (recommended):\n\n```bash\npip install interdim\n```\n\nOr from source:\n\n```bash\ngit clone https://github.com/MShinkle/interdim.git\ncd interdim\npip install .\n```\n\n## Quick Start\n\nHere's a basic example using the Iris dataset:\n\n```python\nfrom sklearn.datasets import load_iris\nfrom interdim import InterDimAnalysis\n\niris = load_iris()\nanalysis = InterDimAnalysis(iris.data, true_labels=iris.target)\nanalysis.reduce(method='tsne', n_components=3)\nanalysis.cluster(method='kmeans', n_clusters=3)\nanalysis.show(n_components=3, point_visualization='bar')\n```\n\n![3D Scatter Plot with Interactive Bar Charts](https://raw.githubusercontent.com/MShinkle/interdim/refs/heads/main/docs/images/iris_plot.png)\n\nThis will reduce the Iris dataset to 3 dimensions using t-SNE, clusters the data using K-means, and displays an interactive 3D scatter plot with bar charts for each data point as you hover over them.\n\nHowever, this is just a small example of what you can do with InterDim. You can use it to explore all sorts of data, including high-dimensional data like language model embeddings!\n\n## Demo Notebooks\n\nFor more in-depth examples and use cases, check out our demo notebooks:\n\n1. [Iris Species Analysis](https://github.com/MShinkle/interdim/blob/main/notebooks/IRIS_visualization.ipynb): Basic usage with the classic Iris dataset.\n![Iris Species Analysis](https://raw.githubusercontent.com/MShinkle/interdim/refs/heads/main/docs/images/iris_plot_pretty.png)\n\n2. [DNN Latent Space Exploration](https://github.com/MShinkle/interdim/blob/main/notebooks/DNN_latents.ipynb): Visualizing deep neural network activations.\n![DNN Latent Space Exploration](https://raw.githubusercontent.com/MShinkle/interdim/refs/heads/main/docs/images/fashion_plot.png)\n\n3. [LLM Token Analysis](https://github.com/MShinkle/interdim/blob/main/notebooks/LLM_token_embeddings.ipynb): Exploring language model token embeddings and layer activations.\n![LLM Token Analysis](https://raw.githubusercontent.com/MShinkle/interdim/refs/heads/main/docs/images/llm_weevil.png)\n\n## Documentation\n\nFor detailed API documentation and advanced usage, visit our [GitHub Pages](https://MShinkle.github.io/interdim).\n\n## Contributing\n\nWe welcome discussion and contributions!\n\n## License\n\nInterDim is released under the BSD 3-Clause License. See the [LICENSE](https://github.com/MShinkle/interdim/blob/main/LICENSE) file for details.\n\n## Contact\n\nFor questions and feedback, please [open an issue](https://github.com/MShinkle/interdim/issues) on GitHub.\n",
"bugtrack_url": null,
"license": "BSD-3-Clause",
"summary": "Interactive Dimensionality Reduction, Clustering, and Visualization",
"version": "1.0.2",
"project_urls": {
"Bug Tracker": "https://github.com/MShinkle/interdim/issues",
"Homepage": "https://github.com/MShinkle/interdim"
},
"split_keywords": [
"dimensionality reduction",
" clustering",
" visualization",
" machine learning",
" data analysis"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "da8fde0fca95559f7a3bf377bdd6fdb580ddeb5e290b5d338e2c2a6f56952a3e",
"md5": "79dc7dc49e5df542566fdc3014284604",
"sha256": "b71309b19f34e17508cb40d714bf6326f2166689faa625d00b04a2e4f1456283"
},
"downloads": -1,
"filename": "interdim-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "79dc7dc49e5df542566fdc3014284604",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 13436,
"upload_time": "2024-10-16T17:40:05",
"upload_time_iso_8601": "2024-10-16T17:40:05.510606Z",
"url": "https://files.pythonhosted.org/packages/da/8f/de0fca95559f7a3bf377bdd6fdb580ddeb5e290b5d338e2c2a6f56952a3e/interdim-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f5dfba86d68e63ec0a6dbf04c4bb100c793fb978eab9509d0f04c0f5c59a78a6",
"md5": "2ec49670464be6513844154dff56b47f",
"sha256": "cfa03001bfcc8dcf6e3cc251f3f471b873d2f41dc1d7cb7063c529605377792f"
},
"downloads": -1,
"filename": "interdim-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "2ec49670464be6513844154dff56b47f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 14379,
"upload_time": "2024-10-16T17:40:06",
"upload_time_iso_8601": "2024-10-16T17:40:06.573576Z",
"url": "https://files.pythonhosted.org/packages/f5/df/ba86d68e63ec0a6dbf04c4bb100c793fb978eab9509d0f04c0f5c59a78a6/interdim-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-16 17:40:06",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MShinkle",
"github_project": "interdim",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "interdim"
}