{"id":18786428,"url":"https://github.com/kayoyin/signal-processing","last_synced_at":"2025-04-13T13:10:24.941Z","repository":{"id":79527656,"uuid":"220765257","full_name":"kayoyin/signal-processing","owner":"kayoyin","description":"Repository that gathers code for signal processing","archived":false,"fork":false,"pushed_at":"2019-12-06T11:57:34.000Z","size":4597,"stargazers_count":19,"open_issues_count":0,"forks_count":11,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-27T04:12:08.632Z","etag":null,"topics":["data-processing","dimensionality-reduction","ica","machine-learning","nmf","pca","signal-processing","source-separation"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kayoyin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-10T09:00:45.000Z","updated_at":"2024-02-26T05:28:52.000Z","dependencies_parsed_at":"2023-05-10T18:30:32.175Z","dependency_job_id":null,"html_url":"https://github.com/kayoyin/signal-processing","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kayoyin%2Fsignal-processing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kayoyin%2Fsignal-processing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kayoyin%2Fsignal-processing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kayoyin%2Fsignal-processing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kayoyin","download_url":"https://codeload.github.com/kayoyin/signal-processing/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248717241,"owners_count":21150389,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-processing","dimensionality-reduction","ica","machine-learning","nmf","pca","signal-processing","source-separation"],"created_at":"2024-11-07T20:51:32.515Z","updated_at":"2025-04-13T13:10:24.935Z","avatar_url":"https://github.com/kayoyin.png","language":"Python","readme":"# signal-processing\nThis repository gathers implementations of machine learning algorithms for signal processing using Python from scratch.\n\nComing next: isomap, and locally linear embedding (LLE) for dimensionality reduction with manifold learning.\n\n## Dimensionality Reduction\nThe following will run the PCA demo from the [first article](https://towardsdatascience.com/step-by-step-signal-processing-with-machine-learning-pca-ica-nmf-8de2f375c422):\n```\npython -c 'from dimensionality_reduction import demo; demo()'\n```\nThis performs PCA on the 982 MNIST images of the number 4, and saves a sample reconstruction from reduced images with 2, 16, 64 and 256 principal components.\n\nInput image: ![Original image](https://github.com/kayoyin/signal-processing/blob/master/four_dataset/four0.jpg)\n\nReconstruction with 2, 16, 64, 128 principal components: ![2 image](https://github.com/kayoyin/signal-processing/blob/master/output/pca_2.jpg) ![Original image](https://github.com/kayoyin/signal-processing/blob/master/output/pca_16.jpg) ![Original image](https://github.com/kayoyin/signal-processing/blob/master/output/pca_64.jpg) ![Original image](https://github.com/kayoyin/signal-processing/blob/master/output/pca_256.jpg)\n\n### Manifold learning\nIsomap and LLE are implemented for manifold learning.\nThe following will run the demo from the second article:\n```\npython dimensionality_reduction.py\n```\nThis performs PCA, Isomap and LLE on the 892 MNIST images of the number 5 and saves the 2D projection of the data points.\n\nPCA projection:\n![Original image](https://github.com/kayoyin/signal-processing/blob/master/output/pca_five.png)\n\nIsomap projection:\n![Original image](https://github.com/kayoyin/signal-processing/blob/master/output/isomap_five.png)\n\n\nLLE projection:\n![Original image](https://github.com/kayoyin/signal-processing/blob/master/output/lle_five.png)\n\n\n## Source Separation\nIndependent Components Analysis and Nonnegative Matrix Factorization are implemented for source separation.\nThe following will run the demo:\n```\npython source_separation.py\n```\nThis performs ICA and NMF on 1000 MNIST images of the numbers 0, 1, 4, 7 that have been mixed together with varying ratio, and saves the extracted source images.\n\nInput images: ![Mixed image](https://github.com/kayoyin/signal-processing/blob/master/mixture_dataset(0147)/img0.jpg) ![Mixed image 2](https://github.com/kayoyin/signal-processing/blob/master/mixture_dataset(0147)/img1.jpg) ![Mixed image 3](https://github.com/kayoyin/signal-processing/blob/master/mixture_dataset(0147)/img2.jpg) ![Mixed image 4](https://github.com/kayoyin/signal-processing/blob/master/mixture_dataset(0147)/img3.jpg)\n\nSource separation with ICA: ![ICA 1](https://github.com/kayoyin/signal-processing/blob/master/output/ica_0.jpg) ![Ica 2](https://github.com/kayoyin/signal-processing/blob/master/output/ica_1.jpg) ![ICA 3](https://github.com/kayoyin/signal-processing/blob/master/output/ica_2.jpg) ![Ica 4](https://github.com/kayoyin/signal-processing/blob/master/output/ica_3.jpg)\n\nSource separation with NMF: ![ICA 1](https://github.com/kayoyin/signal-processing/blob/master/output/nmf_0.jpg) ![Ica 2](https://github.com/kayoyin/signal-processing/blob/master/output/nmf_1.jpg) ![ICA 3](https://github.com/kayoyin/signal-processing/blob/master/output/nmf_2.jpg) ![Ica 4](https://github.com/kayoyin/signal-processing/blob/master/output/nmf_3.jpg)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkayoyin%2Fsignal-processing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkayoyin%2Fsignal-processing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkayoyin%2Fsignal-processing/lists"}