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
Update dimensionality_reduction.py
  • Loading branch information
Sid101098 authored Oct 2, 2025
commit 2df283d5db3d371e9033f6583ba427899d98824c
8 changes: 5 additions & 3 deletions machine_learning/dimensionality_reduction.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,14 +183,17 @@
sb = covariance_between_classes(features, labels, classes)
sw = covariance_within_classes(features, labels, classes)

# Add regularization to Sw to avoid singular matrix
sw_reg = sw + 1e-6 * np.eye(sw.shape[0])

Check failure on line 188 in machine_learning/dimensionality_reduction.py

View workflow job for this annotation

GitHub Actions / ruff

Ruff (W293)

machine_learning/dimensionality_reduction.py:188:1: W293 Blank line contains whitespace
# Solve the generalized eigenvalue problem: Sb v = λ Sw v
eigenvalues, eigenvectors = eigh(sb, sw)
eigenvalues, eigenvectors = eigh(sb, sw_reg)

# Sort eigenvectors by eigenvalues (descending)
idx = np.argsort(eigenvalues)[::-1]
eigenvectors = eigenvectors[:, idx]

# Take top "dimensions"
# Take top "dimensions" eigenvectors
filtered_eigenvectors = eigenvectors[:, :dimensions]

projected_data = np.dot(filtered_eigenvectors.T, features)
Expand All @@ -200,7 +203,6 @@
logging.error("Dataset empty")
raise AssertionError


def locally_linear_embedding(
features: np.ndarray, dimensions: int, n_neighbors: int = 12, reg: float = 1e-3
) -> np.ndarray:
Expand Down
Loading