Skip to content
Open
Changes from 1 commit
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
851bd8d
feat: add dimensionality reduction algorithms (PCA, LDA, LLE, MDS)
Sid101098 Oct 2, 2025
22306ef
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 2, 2025
92f8b06
Update dimensionality_reduction.py
Sid101098 Oct 2, 2025
a28b8a7
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 2, 2025
26e5871
Update dimensionality_reduction.py
Sid101098 Oct 2, 2025
8d63f1b
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 2, 2025
11661b9
Update dimensionality_reduction.py
Sid101098 Oct 2, 2025
bed9512
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 2, 2025
cf38241
Update dimensionality_reduction.py
Sid101098 Oct 2, 2025
772c88d
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 2, 2025
e6a1bb1
Update dimensionality_reduction.py
Sid101098 Oct 2, 2025
6c0c53f
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 2, 2025
1cfdbc6
Update dimensionality_reduction.py
Sid101098 Oct 2, 2025
46b0279
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 2, 2025
912eff1
Update dimensionality_reduction.py
Sid101098 Oct 2, 2025
cabed09
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 2, 2025
a3c070c
Update dimensionality_reduction.py
Sid101098 Oct 2, 2025
be5f8aa
Update dimensionality_reduction.py
Sid101098 Oct 2, 2025
5ce81ea
Update dimensionality_reduction.py
Sid101098 Oct 2, 2025
c6f488a
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 2, 2025
a3066d3
Update dimensionality_reduction.py
Sid101098 Oct 2, 2025
f205faf
Update dimensionality_reduction.py
Sid101098 Oct 2, 2025
cbd03e9
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 2, 2025
2df283d
Update dimensionality_reduction.py
Sid101098 Oct 2, 2025
45964b0
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 2, 2025
c972d1d
Update dimensionality_reduction.py
Sid101098 Oct 2, 2025
0238000
Update dimensionality_reduction.py
Sid101098 Oct 2, 2025
37e9aaf
Update dimensionality_reduction.py
Sid101098 Oct 3, 2025
0c68d24
Update dimensionality_reduction.py
Sid101098 Oct 3, 2025
8cd7bf4
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Oct 3, 2025
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
  • Loading branch information
pre-commit-ci[bot] committed Oct 2, 2025
commit cabed09656795674e03b38396748deff4fc2035c
13 changes: 6 additions & 7 deletions machine_learning/dimensionality_reduction.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
Notes:
- Each column of the features matrix corresponds to a class item
"""

"""
Implementation of dimensionality reduction algorithms.

Expand All @@ -15,13 +16,13 @@
- Locally Linear Embedding (LLE)
- Multidimensional Scaling (MDS)
"""
import doctest

Check failure on line 19 in machine_learning/dimensionality_reduction.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (E402)

machine_learning/dimensionality_reduction.py:19:1: E402 Module level import not at top of file
import logging

Check failure on line 20 in machine_learning/dimensionality_reduction.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (E402)

machine_learning/dimensionality_reduction.py:20:1: E402 Module level import not at top of file

import numpy as np

Check failure on line 22 in machine_learning/dimensionality_reduction.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (E402)

machine_learning/dimensionality_reduction.py:22:1: E402 Module level import not at top of file
from scipy.linalg import eigh

Check failure on line 23 in machine_learning/dimensionality_reduction.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (E402)

machine_learning/dimensionality_reduction.py:23:1: E402 Module level import not at top of file
from scipy.spatial.distance import cdist

Check failure on line 24 in machine_learning/dimensionality_reduction.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (E402)

machine_learning/dimensionality_reduction.py:24:1: E402 Module level import not at top of file
from sklearn.neighbors import NearestNeighbors

Check failure on line 25 in machine_learning/dimensionality_reduction.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (E402)

machine_learning/dimensionality_reduction.py:25:1: E402 Module level import not at top of file

logging.basicConfig(level=logging.INFO, format="%(message)s")

Expand Down Expand Up @@ -123,7 +124,7 @@
def principal_component_analysis(features: np.ndarray, dimensions: int) -> np.ndarray:
"""Principal Component Analysis (PCA).

For more details: https://en.wikipedia.org/wiki/Principal_component_analysis
For more details: https://en.wikipedia.org/wiki/Principal_component_analysis

Args:
features: Input features matrix (n_features x n_samples).
Expand Down Expand Up @@ -157,7 +158,7 @@
) -> np.ndarray:
"""Linear Discriminant Analysis (LDA).

For more details: https://en.wikipedia.org/wiki/Linear_discriminant_analysis
For more details: https://en.wikipedia.org/wiki/Linear_discriminant_analysis

Args:
features: Input features matrix (n_features x n_samples).
Expand Down Expand Up @@ -198,7 +199,7 @@
) -> np.ndarray:
"""Locally Linear Embedding (LLE).

For more details: https://en.wikipedia.org/wiki/Nonlinear_dimensionality_reduction
For more details: https://en.wikipedia.org/wiki/Nonlinear_dimensionality_reduction

Args:
features: Input features matrix (shape: [n_features, n_samples]).
Expand Down Expand Up @@ -283,7 +284,7 @@
) -> np.ndarray:
"""Multidimensional Scaling (MDS).

For more details: https://en.wikipedia.org/wiki/Multidimensional_scaling
For more details: https://en.wikipedia.org/wiki/Multidimensional_scaling

Args:
features: Input features matrix (shape: [n_features, n_samples]).
Expand Down Expand Up @@ -429,9 +430,7 @@
"""Test function for Principal Component Analysis."""
features = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
dimensions = 2
expected_output = np.array(
[[6.92820323, 8.66025404, 10.39230485], [3.0, 3.0, 3.0]]
)
expected_output = np.array([[6.92820323, 8.66025404, 10.39230485], [3.0, 3.0, 3.0]])

output = principal_component_analysis(features, dimensions)
if not np.allclose(expected_output, output):
Expand Down
Loading