This guide walks you through setting up ExoProfiler from a clean environment, downloading the source dataset from the NASA Exoplanet Archive, running each pipeline stage in order, and launching the interactive Streamlit application to explore the discovered planetary families.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/LauraSilRu/exoplanet-profiler/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
ExoProfiler requires Python 3.9 or later. All dependencies are listed inrequirements.txt and can be installed in a single step. Jupyter Notebook or JupyterLab is required to execute the pipeline notebooks (it is not in requirements.txt but is available via pip or your preferred environment manager).
Installation
Install dependencies
| Package | Purpose |
|---|---|
| Pandas | Tabular data loading and feature engineering |
| NumPy | Numerical array operations and transformations |
| Matplotlib | Static plots: scree charts, loading heatmaps, distributions |
| Seaborn | Statistical visualization and correlation matrices |
| Scikit-learn | Preprocessing pipeline, PCA, K-Means, Silhouette, DBSCAN |
| Plotly | Interactive 2D/3D PCA scatter plots colored by cluster |
| Streamlit | Interactive web app for exploring planetary families |
Download the Dataset
ExoProfiler uses the NASA Exoplanet Archive — Planetary Systems (PS) table, filtered to confirmed TESS discoveries with a single default flag per planet. Navigate to the archive URL and export the result as a CSV file namedexoplanets.csv, then place it in the data/raw/ directory:
Feature Configuration
The pipeline operates on exactly 12 feature columns — 7 planetary and 5 stellar variables. These are defined indata/processed/preprocessing_metadata.json and must be present in the downloaded CSV.
log1p transformation before scaling:
RobustScaler and imputed with KNNImputer(n_neighbors=5, weights="distance").
Running the Pipeline
Open each notebook in order inside Jupyter Notebook or JupyterLab and run all cells. Each notebook serializes its outputs todata/processed/ for the next stage to consume.
| Step | Notebook | Key output |
|---|---|---|
| 1 | 01_data_understanding.ipynb | Variable audit, null-rate report |
| 2 | 02_eda.ipynb | Distribution and correlation analysis |
| 3 | 03_preprocessing.ipynb | exoplanets_preprocessed.csv, preprocessing_pipeline.joblib |
| 4 | 04_pca_and_cluster_profiling.ipynb | pca/pca_model.joblib, pca/pca_scores.csv, cluster profiles |
| 5 | 05_clustering_and_evaluation.ipynb | clustered_exoplanets.csv, evaluation metrics |
Notebooks 4 and 5 are interdependent. Notebook 4 runs PCA and produces the component scores; notebook 5 applies K-Means clustering on those scores and evaluates the result. Run them in order.
Preprocessing Notebook
Log transforms, RobustScaler, KNNImputer, and completeness filtering that retains 731 of 910 planets.
PCA Notebook
Dimensionality reduction to 4 principal components capturing 90.35% of total variance.
Artifact Outputs
After running all five notebooks, the following files are written todata/processed/:
| File | Path | Description |
|---|---|---|
| Preprocessed feature matrix | data/processed/exoplanets_preprocessed.csv | 731 × 12 scaled and imputed feature matrix |
| Preprocessing pipeline | data/processed/preprocessing_pipeline.joblib | Fitted log1p + RobustScaler + KNNImputer pipeline for reuse on new data |
| PCA model | data/processed/pca/pca_model.joblib | Fitted 4-component PCA model (90.35% retained variance) |
| PCA scores | data/processed/pca/pca_scores.csv | 731 × 4 principal component scores for each planet |
| Clustered planets | data/processed/clustered_exoplanets.csv | 731 planets with Cluster_K2 label and Familia_Planeta family name |
Applying the Pipeline to New Data
The fitted preprocessing pipeline can be loaded and applied to new planet records without re-running the notebooks:Launch the Streamlit App
Once the pipeline has been run andclustered_exoplanets.csv exists, launch the interactive exploration app:
http://localhost:8501 and lets you explore the two discovered planetary families, view cluster profiles, and inspect individual exoplanet records.