From adbe33401e7f38d0dc9c278f8ea8e6ae3b1273ab Mon Sep 17 00:00:00 2001 From: Idan Morad Date: Wed, 20 May 2026 21:33:17 +0300 Subject: [PATCH 1/3] Update dependencies, add PCA explained variance plotting functionality, and enhance documentation - Updated `pyarrow`, `kaleido`, `ruff`, and `build` dependencies in `pyproject.toml`. - Introduced `plot_pca_explained_variance` function to visualize cumulative explained variance of PCA components, aiding in dimensionality reduction analysis. - Added usage examples and detailed documentation for the new PCA plotting function in `README.md` and `visualization.rst`. - Updated `SKILL.md` to include the new PCA function with parameters and common usage scenarios. - Bumped version to 1.10.0rc13 to reflect these changes. --- README.md | 14 ++++ docs/source/preprocess/visualization.rst | 36 +++++++++ ds_utils/__init__.py | 2 +- ds_utils/preprocess/visualization.py | 69 +++++++++++++++++- pyproject.toml | 16 ++-- skills/preprocess/SKILL.md | 27 +++++++ ...t_pca_explained_variance_custom_scaler.png | Bin 0 -> 47355 bytes ...st_plot_pca_explained_variance_default.png | Bin 0 -> 47623 bytes ...est_plot_pca_explained_variance_kwargs.png | Bin 0 -> 46425 bytes ...plot_pca_explained_variance_no_scaling.png | Bin 0 -> 47259 bytes .../test_plot_pca_explained_variance.py | 55 ++++++++++++++ tests/test_version.py | 2 +- 12 files changed, 210 insertions(+), 11 deletions(-) create mode 100644 tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_custom_scaler.png create mode 100644 tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_default.png create mode 100644 tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_kwargs.png create mode 100644 tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_no_scaling.png create mode 100644 tests/test_preprocess/test_plot_pca_explained_variance.py diff --git a/README.md b/README.md index 52f5458..eaf50a7 100644 --- a/README.md +++ b/README.md @@ -405,6 +405,20 @@ plot_features_interaction(data, "feature_1", "feature_2") | **Boolean** | ![](https://raw.githubusercontent.com/idanmoradarthas/DataScienceUtils/master/tests/baseline_images/test_preprocess/test_plot_relationship_between_features/test_plot_relationship_between_features_numeric_boolean.png) | ![](https://raw.githubusercontent.com/idanmoradarthas/DataScienceUtils/master/tests/baseline_images/test_preprocess/test_plot_relationship_between_features/test_plot_relationship_between_features_categorical_bool.png) | ![](https://raw.githubusercontent.com/idanmoradarthas/DataScienceUtils/master/tests/baseline_images/test_preprocess/test_plot_relationship_between_features/test_plot_relationship_between_features_both_bool.png) | | | **Datetime** | ![](https://raw.githubusercontent.com/idanmoradarthas/DataScienceUtils/master/tests/baseline_images/test_preprocess/test_plot_relationship_between_features/test_plot_relationship_between_features_datetime_numeric.png) | ![](https://raw.githubusercontent.com/idanmoradarthas/DataScienceUtils/master/tests/baseline_images/test_preprocess/test_plot_relationship_between_features/test_plot_relationship_between_features_datetime_categorical.png) | ![](https://raw.githubusercontent.com/idanmoradarthas/DataScienceUtils/master/tests/baseline_images/test_preprocess/test_plot_relationship_between_features/test_plot_relationship_between_features_datetime_bool_default.png) | ![](https://raw.githubusercontent.com/idanmoradarthas/DataScienceUtils/master/tests/baseline_images/test_preprocess/test_plot_relationship_between_features/test_plot_relationship_between_features_datetime_datetime.png) | +### Plot PCA Explained Variance + +This method plots the cumulative explained variance ratio of PCA components. It helps users quickly determine how many principal components are required to capture a desired proportion of variance in the data. +Horizontal reference lines are drawn at 70% and 80% variance. + +```python +from ds_utils.preprocess.visualization import plot_pca_explained_variance + +# Pass a dataframe containing only numerical features +plot_pca_explained_variance(data_numerical, use_scaling=True) +``` + +![Plot PCA Explained Variance](https://raw.githubusercontent.com/idanmoradarthas/DataScienceUtils/master/tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_default.png) + ### Extract Statistics DataFrame per Label This method calculates comprehensive statistical metrics for numerical features grouped by label values. Use this when diff --git a/docs/source/preprocess/visualization.rst b/docs/source/preprocess/visualization.rst index affb5a0..5cefd0d 100644 --- a/docs/source/preprocess/visualization.rst +++ b/docs/source/preprocess/visualization.rst @@ -296,5 +296,41 @@ Choosing the Right Visualization - Use `get_correlated_features` and `visualize_correlations` to understand relationships between multiple features. - Use `plot_correlation_dendrogram` for a hierarchical view of feature relationships, especially useful for high-dimensional data. - Use `plot_features_interaction` to deep dive into the relationship between specific feature pairs. +- Use `plot_pca_explained_variance` to determine how many principal components are required to capture a desired proportion of variance. By combining these visualizations, you can gain a comprehensive understanding of your dataset's structure, which is crucial for effective data preprocessing, feature engineering, and model selection. + +*************************** +Plot PCA Explained Variance +*************************** + +This method visualizes the cumulative explained variance ratio of PCA components. Use this when you want to: + +- Determine how many principal components are required to capture a desired proportion of the total variance in the data. +- Perform dimensionality reduction using PCA. +- Understand how variance is distributed across the components. + +.. autofunction:: ds_utils.preprocess.visualization.plot_pca_explained_variance + +Code Example +============ + +Here's how to use the code:: + + import pandas as pd + from matplotlib import pyplot as plt + from ds_utils.preprocess.visualization import plot_pca_explained_variance + + data = pd.read_csv('path/to/dataset') + # Use only numeric features + numeric_data = data.select_dtypes(include="number") + + plot_pca_explained_variance(numeric_data, use_scaling=True) + plt.show() + +The plot displays the cumulative variance ratio as a line graph, with horizontal reference lines at 70% and 80% variance. + +.. image:: ../../../tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_default.png + :align: center + :alt: Plot PCA Explained Variance + diff --git a/ds_utils/__init__.py b/ds_utils/__init__.py index f8aed37..e935881 100644 --- a/ds_utils/__init__.py +++ b/ds_utils/__init__.py @@ -1,3 +1,3 @@ """Data Science Utilities package.""" -__version__ = "1.10.0rc12" +__version__ = "1.10.0rc13" diff --git a/ds_utils/preprocess/visualization.py b/ds_utils/preprocess/visualization.py index c318ae9..52f702e 100644 --- a/ds_utils/preprocess/visualization.py +++ b/ds_utils/preprocess/visualization.py @@ -15,7 +15,9 @@ from scipy.cluster.hierarchy import dendrogram, linkage from scipy.spatial.distance import squareform import seaborn as sns - +from sklearn.base import TransformerMixin +from sklearn.decomposition import PCA +from sklearn.preprocessing import StandardScaler from ds_utils.preprocess._plot_categorical import ( _plot_categorical_feature1, _plot_categorical_vs_numeric, @@ -246,3 +248,68 @@ def plot_features_interaction( ax = _plot_numeric_features(feature_1, feature_2, plot_data, remove_na, ax, **kwargs) return ax + + +def plot_pca_explained_variance( + X: pd.DataFrame, + use_scaling: bool = True, + scaler: TransformerMixin = StandardScaler(), + legend_loc: str = "lower right", + ax: Optional[axes.Axes] = None, + *args, + **kwargs, +) -> axes.Axes: + """Plot the cumulative explained variance ratio of PCA components. + + This visualization helps determine how many principal components are needed + to capture a desired proportion of the total variance in the data. + Horizontal reference lines are drawn at 70% and 80% variance. + + :param X: Input data with numerical features (rows = samples, columns = features). + :param use_scaling: If True, scale the data using the provided scaler before fitting PCA. + :param scaler: Scaler instance to use when use_scaling is True. + :param legend_loc: Location of the legend. Default is "lower right". + :param ax: Matplotlib Axes to draw the plot on. If None, a new figure and Axes are created. + :param args: Additional arguments passed directly to sklearn.decomposition.PCA. + :param kwargs: Additional keyword arguments passed to axes.plot. + :return: The Axes object containing the plot. + :raises ValueError: If any column in X is non-numeric. + """ + if ax is None: + _, ax = plt.subplots(figsize=(8, 5)) + + if not np.all(X.dtypes.apply(pd.api.types.is_numeric_dtype)): + raise ValueError("All columns in X must be numeric.") + + X_array = X.to_numpy() + + if use_scaling: + X_array = scaler.fit_transform(X_array) + + pca = PCA(*args) + pca.fit(X_array) + + explained_variance_ratio = pca.explained_variance_ratio_ + cumulative_variance = np.cumsum(explained_variance_ratio) + + ax.plot( + range(1, len(cumulative_variance) + 1), + cumulative_variance, + marker="o", + linestyle="-", + color="b", + label="Cumulative explained variance", + **kwargs + ) + + # Reference lines for common variance thresholds + ax.axhline(0.70, color="gray", linestyle="--", linewidth=1, label="70% variance") + ax.axhline(0.80, color="gray", linestyle="--", linewidth=1, label="80% variance") + + ax.set_xlabel("Number of Principal Components") + ax.set_ylabel("Cumulative Explained Variance Ratio") + ax.set_title("PCA - Cumulative Explained Variance") + ax.grid(True) + ax.legend(loc=legend_loc) + + return ax diff --git a/pyproject.toml b/pyproject.toml index e4cd7a0..ba01857 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -56,17 +56,17 @@ path = "ds_utils/__init__.py" [project.optional-dependencies] test = [ - "pyarrow==23.0.1", + "pyarrow==24.0.0", "pytest==9.0.3", "pytest-mock==3.15.1", "pytest-cov==7.1.0", "pytest-xdist==3.8.0", "pytest-mpl==0.19.0", - "kaleido==1.2.0", - "ruff==0.15.11" + "kaleido==1.3.0", + "ruff==0.15.13" ] dev = [ - "build==1.4.3", + "build==1.5.0", "twine==6.2.0", ] nlp = [ @@ -76,15 +76,15 @@ nlp = [ [dependency-groups] dev = [ - "pyarrow==23.0.1", + "pyarrow==24.0.0", "pytest==9.0.3", "pytest-mock==3.15.1", "pytest-cov==7.1.0", "pytest-xdist==3.8.0", "pytest-mpl==0.19.0", - "kaleido==1.2.0", - "ruff==0.15.11", - "build==1.4.3", + "kaleido==1.3.0", + "ruff==0.15.13", + "build==1.5.0", "twine==6.2.0", ] diff --git a/skills/preprocess/SKILL.md b/skills/preprocess/SKILL.md index b267434..82041db 100644 --- a/skills/preprocess/SKILL.md +++ b/skills/preprocess/SKILL.md @@ -28,6 +28,7 @@ from ds_utils.preprocess.visualization import visualize_feature from ds_utils.preprocess.visualization import visualize_correlations from ds_utils.preprocess.visualization import plot_correlation_dendrogram from ds_utils.preprocess.visualization import plot_features_interaction +from ds_utils.preprocess.visualization import plot_pca_explained_variance from ds_utils.preprocess.statistics import get_correlated_features from ds_utils.preprocess.statistics import extract_statistics_dataframe_per_label from ds_utils.preprocess.statistics import compute_mutual_information @@ -150,6 +151,31 @@ plot_features_interaction(df, "feature1", "feature2", remove_na=False) --- +## plot_pca_explained_variance + +Plots the cumulative explained variance ratio of PCA components. + +```python +from ds_utils.preprocess.visualization import plot_pca_explained_variance + +# complete usage example +plot_pca_explained_variance(df, use_scaling=True) +``` + +**Parameters:** +- `X` — pd.DataFrame, The dataset with numerical features. +- `use_scaling` — bool, Whether to scale the data before fitting PCA. +- `scaler` — TransformerMixin, Scaler instance to use when `use_scaling` is True (default: StandardScaler). +- `legend_loc` — str, Location of the legend (default: "lower right"). +- `ax` — axes.Axes, Matplotlib Axes to draw the plot on. + +**Returns:** matplotlib Axes. + +**Common mistakes:** +- Passing a DataFrame with non-numeric columns. + +--- + ## get_correlated_features Extracts pairs of highly correlated features and their correlation to the target. @@ -243,4 +269,5 @@ visualize_feature(df["age"]) corr = df.corr() visualize_correlations(corr) results = get_correlated_features(corr, ["age", "income"], "is_churn") +plot_pca_explained_variance(df[["age", "income", "balance"]]) ``` diff --git a/tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_custom_scaler.png b/tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_custom_scaler.png new file mode 100644 index 0000000000000000000000000000000000000000..8005a489df9b39a1c248e72f082f24785d2884f6 GIT binary patch literal 47355 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⪼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 Hp7H+!s3!&J literal 0 HcmV?d00001 diff --git a/tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_default.png b/tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_default.png new file mode 100644 index 0000000000000000000000000000000000000000..dbc2920355f386243e44a5cd0958352e8c7dfcc3 GIT binary patch literal 47623 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 literal 0 HcmV?d00001 diff --git a/tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_kwargs.png b/tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_kwargs.png new file mode 100644 index 0000000000000000000000000000000000000000..5c36497cdd868bc0ff1936ed0942f6c9f6cc48c2 GIT binary patch literal 46425 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 X6z!o^J)~7}bnq}gWo=9}bdUc(Pu~jI literal 0 HcmV?d00001 diff --git a/tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_no_scaling.png b/tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_no_scaling.png new file mode 100644 index 0000000000000000000000000000000000000000..d91b4b5746379c856132844b18e3580ec379ad43 GIT binary patch literal 47259 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 Date: Wed, 20 May 2026 21:39:25 +0300 Subject: [PATCH 2/3] Linting --- ds_utils/preprocess/visualization.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ds_utils/preprocess/visualization.py b/ds_utils/preprocess/visualization.py index 52f702e..79fb648 100644 --- a/ds_utils/preprocess/visualization.py +++ b/ds_utils/preprocess/visualization.py @@ -299,7 +299,7 @@ def plot_pca_explained_variance( linestyle="-", color="b", label="Cumulative explained variance", - **kwargs + **kwargs, ) # Reference lines for common variance thresholds From 71a1ebbdf7ad3d764235d6fb95ce947320fc4ad8 Mon Sep 17 00:00:00 2001 From: Idan Morad Date: Wed, 20 May 2026 22:00:11 +0300 Subject: [PATCH 3/3] Enhance `plot_pca_explained_variance` function to support optional PCA parameters - Updated the `plot_pca_explained_variance` function to allow passing additional keyword arguments (`pca_kwargs`) directly to the PCA initialization, enhancing flexibility in PCA configuration. - Modified the scaler parameter to default to `None`, using `StandardScaler` if no scaler is provided. - Enhanced documentation to reflect the new parameter options and usage examples in `SKILL.md`. - Added tests to validate the new functionality, ensuring correct handling of PCA parameters and Axes object passing. --- ds_utils/preprocess/visualization.py | 18 +++++--- skills/preprocess/SKILL.md | 4 ++ ...pca_explained_variance_ax_pass_through.png | Bin 0 -> 52684 bytes .../test_plot_pca_explained_variance.py | 39 +++++++++++++++++- 4 files changed, 54 insertions(+), 7 deletions(-) create mode 100644 tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_ax_pass_through.png diff --git a/ds_utils/preprocess/visualization.py b/ds_utils/preprocess/visualization.py index 79fb648..c962ba6 100644 --- a/ds_utils/preprocess/visualization.py +++ b/ds_utils/preprocess/visualization.py @@ -253,10 +253,10 @@ def plot_features_interaction( def plot_pca_explained_variance( X: pd.DataFrame, use_scaling: bool = True, - scaler: TransformerMixin = StandardScaler(), + scaler: Optional[TransformerMixin] = None, legend_loc: str = "lower right", ax: Optional[axes.Axes] = None, - *args, + pca_kwargs: Optional[dict] = None, **kwargs, ) -> axes.Axes: """Plot the cumulative explained variance ratio of PCA components. @@ -267,10 +267,12 @@ def plot_pca_explained_variance( :param X: Input data with numerical features (rows = samples, columns = features). :param use_scaling: If True, scale the data using the provided scaler before fitting PCA. - :param scaler: Scaler instance to use when use_scaling is True. + :param scaler: Scaler instance to use when use_scaling is True. If None, StandardScaler is used. :param legend_loc: Location of the legend. Default is "lower right". :param ax: Matplotlib Axes to draw the plot on. If None, a new figure and Axes are created. - :param args: Additional arguments passed directly to sklearn.decomposition.PCA. + :param pca_kwargs: Additional keyword arguments passed directly to sklearn.decomposition.PCA + (e.g., ``pca_kwargs={"n_components": 5}``). If None, PCA is initialized + with its defaults. :param kwargs: Additional keyword arguments passed to axes.plot. :return: The Axes object containing the plot. :raises ValueError: If any column in X is non-numeric. @@ -284,9 +286,13 @@ def plot_pca_explained_variance( X_array = X.to_numpy() if use_scaling: - X_array = scaler.fit_transform(X_array) + _scaler = scaler if scaler is not None else StandardScaler() + X_array = _scaler.fit_transform(X_array) - pca = PCA(*args) + if pca_kwargs is None: + pca_kwargs = {} + + pca = PCA(**pca_kwargs) pca.fit(X_array) explained_variance_ratio = pca.explained_variance_ratio_ diff --git a/skills/preprocess/SKILL.md b/skills/preprocess/SKILL.md index 82041db..834495e 100644 --- a/skills/preprocess/SKILL.md +++ b/skills/preprocess/SKILL.md @@ -160,6 +160,9 @@ from ds_utils.preprocess.visualization import plot_pca_explained_variance # complete usage example plot_pca_explained_variance(df, use_scaling=True) + +# limit the number of components +plot_pca_explained_variance(df, pca_kwargs={"n_components": 5}) ``` **Parameters:** @@ -168,6 +171,7 @@ plot_pca_explained_variance(df, use_scaling=True) - `scaler` — TransformerMixin, Scaler instance to use when `use_scaling` is True (default: StandardScaler). - `legend_loc` — str, Location of the legend (default: "lower right"). - `ax` — axes.Axes, Matplotlib Axes to draw the plot on. +- `pca_kwargs` — dict, Additional keyword arguments passed directly to sklearn.decomposition.PCA. **Returns:** matplotlib Axes. diff --git a/tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_ax_pass_through.png b/tests/baseline_images/test_preprocess/test_plot_pca_explained_variance/test_plot_pca_explained_variance_ax_pass_through.png new file mode 100644 index 0000000000000000000000000000000000000000..4fbb37b9b87607511714d56f44da35ce510933ff GIT binary patch literal 52684 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�EJy< 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 literal 0 HcmV?d00001 diff --git a/tests/test_preprocess/test_plot_pca_explained_variance.py b/tests/test_preprocess/test_plot_pca_explained_variance.py index 8c4b323..6916a6c 100644 --- a/tests/test_preprocess/test_plot_pca_explained_variance.py +++ b/tests/test_preprocess/test_plot_pca_explained_variance.py @@ -10,12 +10,16 @@ from ds_utils.preprocess.visualization import plot_pca_explained_variance +# Directory to store and load pytest-mpl baseline images for this test file +# The path is constructed to mirror the package structure inside the tests folder. BASELINE_DIR = Path(__file__).parents[1] / "baseline_images" / Path(__file__).parent.name / Path(__file__).stem @pytest.fixture def sample_numeric_data(): """Return a simple numeric DataFrame for PCA.""" + # We use n_redundant=5 to ensure the PCA results in an "elbow" curve, + # making for a more realistic and visually meaningful test. X, _ = make_classification(n_samples=200, n_features=15, n_informative=5, n_redundant=5, random_state=42) return pd.DataFrame(X, columns=[f"feature_{i}" for i in range(15)]) @@ -44,10 +48,43 @@ def test_plot_pca_explained_variance_custom_scaler(sample_numeric_data): @pytest.mark.mpl_image_compare(baseline_dir=BASELINE_DIR) def test_plot_pca_explained_variance_kwargs(sample_numeric_data): """Test plot_pca_explained_variance with extra kwargs and specific legend location.""" - plot_pca_explained_variance(sample_numeric_data, legend_loc="upper left", linewidth=2, alpha=0.8) + ax = plot_pca_explained_variance(sample_numeric_data, legend_loc="upper left", linewidth=2, alpha=0.8) + + # "upper left" is mapped to location code 2 in matplotlib + assert ax.get_legend() is not None + assert ax.get_legend()._loc == 2 return plt.gcf() +@pytest.mark.mpl_image_compare(baseline_dir=BASELINE_DIR) +def test_plot_pca_explained_variance_ax_pass_through(sample_numeric_data): + """Test plot_pca_explained_variance with a passed ax parameter. + + Note: The figsize=(10, 6) here is intentional for testing ax pass-through, + meaning the baseline image will have different dimensions than the defaults. + """ + fig, ax = plt.subplots(figsize=(10, 6)) + ax.set_title("Custom Ax Title") + + result_ax = plot_pca_explained_variance(sample_numeric_data, ax=ax) + + # Assert that the returned ax is exactly the one we passed in + assert result_ax is ax + # The function intentionally overwrites the title, so we assert it changed + assert result_ax.get_title() == "PCA - Cumulative Explained Variance" + + return fig + + +def test_plot_pca_explained_variance_pca_kwargs(sample_numeric_data): + """Test that pca_kwargs are forwarded to PCA correctly.""" + ax = plot_pca_explained_variance(sample_numeric_data, pca_kwargs={"n_components": 5}) + # Index 0 is the cumulative variance line; axhlines are added after in the implementation + line = ax.get_lines()[0] + assert len(line.get_xdata()) == 5 + plt.close() + + def test_plot_pca_explained_variance_invalid_data(): """Test plot_pca_explained_variance raises ValueError with non-numeric data.""" df = pd.DataFrame({"A": [1, 2, 3], "B": ["x", "y", "z"]})