{"id":24953369,"url":"https://github.com/iamfarrokhnejad/wine-quality-classification","last_synced_at":"2026-05-06T07:32:12.784Z","repository":{"id":260846937,"uuid":"882515800","full_name":"IAmFarrokhnejad/Wine-Quality-Classification","owner":"IAmFarrokhnejad","description":"Wine Quality Classification Using Deep Learning","archived":false,"fork":false,"pushed_at":"2024-12-05T21:40:32.000Z","size":106,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T19:49:17.844Z","etag":null,"topics":["algorithm-optimization","autoencoder","autoencoders","classification","cnn","deep-learning","deep-neural-networks","deeplearning","lstm","optimization","python","pytorch","recurrent-neural-network","recurrent-neural-networks","rnn"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/IAmFarrokhnejad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-11-03T01:25:33.000Z","updated_at":"2025-01-02T01:40:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"ac7928ca-278f-4fd3-ae06-e0c71a2133ad","html_url":"https://github.com/IAmFarrokhnejad/Wine-Quality-Classification","commit_stats":null,"previous_names":["iamfarrokhnejad/wine-quality-classification"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/IAmFarrokhnejad/Wine-Quality-Classification","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IAmFarrokhnejad%2FWine-Quality-Classification","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IAmFarrokhnejad%2FWine-Quality-Classification/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IAmFarrokhnejad%2FWine-Quality-Classification/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IAmFarrokhnejad%2FWine-Quality-Classification/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IAmFarrokhnejad","download_url":"https://codeload.github.com/IAmFarrokhnejad/Wine-Quality-Classification/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IAmFarrokhnejad%2FWine-Quality-Classification/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32683764,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T02:33:58.958Z","status":"ssl_error","status_checked_at":"2026-05-06T02:33:39.611Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["algorithm-optimization","autoencoder","autoencoders","classification","cnn","deep-learning","deep-neural-networks","deeplearning","lstm","optimization","python","pytorch","recurrent-neural-network","recurrent-neural-networks","rnn"],"created_at":"2025-02-03T03:35:27.814Z","updated_at":"2026-05-06T07:32:12.768Z","avatar_url":"https://github.com/IAmFarrokhnejad.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wine-Quality-Classification\n Wine Quality Classification Using Deep Learning\n\n\nThis repository implements a comparative study of three deep learning architectures for wine quality classification: **Convolutional Neural Networks (CNNs)**, **Long Short-Term Memory Networks (LSTMs)**, and **Autoencoders**. Using physicochemical attributes from red and white wine datasets, the models are evaluated based on their performance metrics such as precision, recall, F1-score, and accuracy.\n\n## Datasets\n\nThe models utilize the Wine Quality datasets from the [UCI Machine Learning Repository](https://archive.ics.uci.edu/dataset/186/wine+quality). The datasets, `winequality-red.csv` and `winequality-white.csv`, must be placed in the `Data/` directory for the scripts to work.\n\n## Features\n\n- **CNN:** Leverages convolutional layers to capture spatial patterns in the data.\n- **LSTM:** Explores temporal relationships in the physicochemical attributes.\n- **Autoencoder:** Utilizes dimensionality reduction for feature extraction and classification.\n\n## Requirements\n\n- Python 3.7+\n- Libraries: `pandas`, `numpy`, `torch`, `sklearn`, `seaborn`, `matplotlib`, `imblearn`\n\nInstall the required Python packages using:\n\n```bash\npip install -r requirements.txt\n```\n\n## Scripts\n1. CNN.py: Implements a CNN for wine quality classification.\n2. LSTM.py: Implements an LSTM for classification tasks.\n3. Autoencoders.py: Uses an Autoencoder for feature extraction and a secondary classifier for prediction.\n\n### Each script includes:\n\n- Data preprocessing, including class balancing with SMOTE.\n- K-fold cross-validation for robust performance evaluation.\n- Model training and evaluation.\n\n\n### Usage \n1. Make sure the dataset paths are valid (First section of the code).\n2.  Run any of the scripts:\n\n```bash\npython 1_CNN.py\npython 2_LSTM.py\npython 3_Autoencoders.py\n```\n\n## Observations\nCNNs outperformed other models, achieving the highest accuracy, precision, recall, and F1-scores.\nLSTMs demonstrated competitive performance, showcasing their utility in classification tasks.\nAutoencoders struggled due to feature compression, leading to a loss of variance between classes.\n\n## Conclusion\nThis study highlights the effectiveness of deep learning models for wine quality classification:\n\nCNNs are most suitable for structured tabular data.\nLSTMs offer adaptability and robust results.\nAutoencoders, while useful for dimensionality reduction, may compromise classification accuracy.\nFuture work could address challenges like class imbalance and limited dataset size by exploring advanced oversampling techniques and data augmentation.\n\n####\nDeveloped by Morteza Farrokhnejad.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamfarrokhnejad%2Fwine-quality-classification","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fiamfarrokhnejad%2Fwine-quality-classification","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fiamfarrokhnejad%2Fwine-quality-classification/lists"}