{"id":17206529,"url":"https://github.com/sylvaincom/anomaly-detection-pca","last_synced_at":"2025-10-06T11:52:32.848Z","repository":{"id":101200613,"uuid":"240921506","full_name":"sylvaincom/anomaly-detection-PCA","owner":"sylvaincom","description":"Anomaly detection on a production line using principal component analysis (PCA) and kernel principal component analysis (KPCA) *from scratch*.","archived":false,"fork":false,"pushed_at":"2020-11-16T12:18:58.000Z","size":441,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-06T11:52:30.735Z","etag":null,"topics":["anomaly-detection","kernel-methods","kpca","pca","principal-component-analysis"],"latest_commit_sha":null,"homepage":"","language":"MATLAB","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/sylvaincom.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":"2020-02-16T16:08:21.000Z","updated_at":"2025-03-18T11:09:30.000Z","dependencies_parsed_at":"2023-09-19T05:17:32.538Z","dependency_job_id":null,"html_url":"https://github.com/sylvaincom/anomaly-detection-PCA","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sylvaincom/anomaly-detection-PCA","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sylvaincom%2Fanomaly-detection-PCA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sylvaincom%2Fanomaly-detection-PCA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sylvaincom%2Fanomaly-detection-PCA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sylvaincom%2Fanomaly-detection-PCA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sylvaincom","download_url":"https://codeload.github.com/sylvaincom/anomaly-detection-PCA/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sylvaincom%2Fanomaly-detection-PCA/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278606354,"owners_count":26014616,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["anomaly-detection","kernel-methods","kpca","pca","principal-component-analysis"],"created_at":"2024-10-15T02:28:55.041Z","updated_at":"2025-10-06T11:52:32.843Z","avatar_url":"https://github.com/sylvaincom.png","language":"MATLAB","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Anomaly detection\n\nAnomaly detection on a production line using principal component analysis (PCA) and kernel principal component analysis (KPCA) **from scratch**.\n\n## Quick preview\n\n- _Authors_: Sylvain Combettes, Houssam L'Ghoul\n- _Date_: Oct. 2018 - June 2019\n- _Context_: For our penultimate-year project at Mines Nancy (half a day per week), we did research for the French company [Saint-Gobain](https://www.saint-gobain.com/en), the European or worldwide leader in all of its businesses (mainly construction materials). In 2018, Saint-Gobain had a €41.8 billion turnover, operated in 67 countries and had more than 180,000 employees.\n- _Topic_: Detection of sensor failure in a production line.\n- _Methods_: Principal component analysis (PCA) and kernel principal component analysis (KPCA).\n- _Programming_: MATLAB.\n- _Result_: the algorithm can detect 100% of the failure days observed by Saint-Gobain.\n- _Links_: [report incoming]\n\n## How to use this repository\n\n- `datav3.mat` is a file containing data without anomalies\n- `dataDefautv3.mat` is a file containing data with anomalies\n- `ACP_lineaire_cstr.m` is a MATLAB script detecting anomalies in `dataDefautv3.mat` with comparison to `datav3.mat` using a (linear) PCA (principal component analysis)\n- `ACP_non_lineaire_cstr.m` is a MATLAB script detecting anomalies in `dataDefautv3.mat` with comparison to `datav3.mat` using a (non-linear) KPCA (kernel principal component analysis)\n\n`ACP_lineaire_cstr.m` and `ACP_non_lineaire_cstr.m` can be used independently: there are two methods with the same goal.\n\n## To note\n\n- I was only able to publish one fourth of the total project, the rest being confidential.\n- The MATLAB scripts `ACP_lineaire_cstr.m` and `ACP_non_lineaire_cstr.m` are commented in French. \n- The report (uploaded soon) is in French.\n- The data `datav3.mat` and `dataDefautv3.mat` is from \"Seongkyu Yoon and John MacGregor. Fault diagnosis with multivariate statistical models part i : using steady state fault signatures. Journal of Process Control, 11(4) :387 – 400, 2001\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsylvaincom%2Fanomaly-detection-pca","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsylvaincom%2Fanomaly-detection-pca","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsylvaincom%2Fanomaly-detection-pca/lists"}