| # AI-Based Diamond Price Prediction and Classification |
|
|
| This project utilizes **machine learning and AI techniques** to predict **diamond grading prices** (GIA-certified prices, grading prices, and bygrading prices) based on various diamond attributes. Additionally, it provides classification-based recommendations for changes in diamond parameters. The system is built using **Flask**, **scikit-learn**, and **XGBoost**, and it is deployed as a web application with a user-friendly interface. |
|
|
| --- |
|
|
| ## π Project Overview |
|
|
| ### Problem Statement |
| Manually evaluating diamond prices and certification costs is a **time-consuming and error-prone** task. This project automates the process by leveraging AI models to analyze historical data and provide **accurate predictions and recommendations** based on diamond attributes. |
|
|
| ### Key Features |
| β
**Diamond Price Prediction**: Predicts GIA, grading, and bygrading prices using AI. |
| β
**Parameter Change Analysis**: Identifies and suggests modifications in diamond attributes. |
| β
**Automated Data Processing**: Cleans and preprocesses input data for better model accuracy. |
| β
**Web-Based Interface**: Flask-based UI for easy file uploads and result visualization. |
| β
**Downloadable Reports**: Users can download CSV reports for predictions and analysis. |
|
|
| --- |
|
|
| ## βοΈ Tech Stack |
|
|
| | Component | Tools/Technologies Used | |
| |---------------|----------------------| |
| | **Backend** | Flask, scikit-learn, XGBoost, NumPy, Pandas | |
| | **Frontend** | HTML, CSS, Jinja Templates | |
| | **Database** | CSV/Excel file-based input | |
| | **Deployment** | Docker, Gunicorn | |
| | **Machine Learning** | Linear Regression, Decision Trees, Random Forest, K-Nearest Neighbors, XGBoost | |
|
|
| --- |
|
|
| ## π Project Workflow |
|
|
| ### πΉ Input: |
| - Users upload a CSV/Excel file containing **diamond attributes** (Tag, Carat, Shape, Quality, Color, Cut, Polish, Symmetry, Fluorescence, etc.). |
| |
| ### πΉ Processing: |
| - **Prediction Models** estimate GIA prices, grading prices, and bygrading prices. |
| - **Classification Models** analyze changes in diamond parameters (e.g., carat, color, cut). |
|
|
| ### πΉ Output: |
| - Users receive **predicted values** and **recommendations** based on AI models. |
| - Results are displayed in a structured table. |
| - Users can **download reports** as CSV files. |
|
|
| --- |
|
|
| ## π οΈ Setup Instructions |
|
|
| ### 1οΈβ£ Clone the Repository |
| ```bash |
| git clone https://huggingface.co/spaces/WebashalarForML/DiamRapo |
| cd diamond-price-prediction |
| ``` |
|
|
| ### 2οΈβ£ Create a Virtual Environment (Optional) |
| ```bash |
| python -m venv venv |
| source venv/bin/activate # On Windows: venv\Scripts\activate |
| ``` |
|
|
| ### 3οΈβ£ Install Dependencies |
| ```bash |
| pip install -r requirements.txt |
| ``` |
|
|
| ### 4οΈβ£ Run the Application |
| ```bash |
| python app.py |
| ``` |
| Visit `http://127.0.0.1:5000` in your browser. |
|
|
| --- |
|
|
| ## π¦ Running with Docker |
|
|
| ### 1οΈβ£ Build the Docker Image |
| ```bash |
| docker build -t diamond-prediction . |
| ``` |
|
|
| ### 2οΈβ£ Run the Container |
| ```bash |
| docker run -p 7860:7860 diamond-prediction |
| ``` |
| Now, visit `http://localhost:7860` to use the app. |
|
|
| --- |
|
|
| ## π API Endpoints |
|
|
| | Endpoint | Method | Description | |
| |----------|--------|-------------| |
| | `/` | GET | Home page | |
| | `/predict` | POST | Uploads a CSV/Excel file and predicts diamond prices | |
| | `/download_pred` | GET | Downloads prediction results as CSV | |
| | `/download_class` | GET | Downloads classification analysis as CSV | |
|
|
| --- |
|
|
| ## π Project Structure |
|
|
| ``` |
| . |
| βββ app.py # Flask application |
| βββ templates/ |
| β βββ index.html # Home page template |
| β βββ output.html # Output display template |
| βββ static/ # CSS and static files |
| βββ Model/ # Trained ML models (.joblib) |
| βββ Label_encoders/ # Pretrained label encoders |
| βββ uploads/ # Uploaded files storage |
| βββ data/ # Processed data files |
| βββ requirements.txt # Dependencies list |
| βββ Dockerfile # Docker setup |
| βββ README.md # Documentation |
| ``` |
|
|
| --- |
|
|
| ## π Example Use Cases |
|
|
| ### 1οΈβ£ Predicting Diamond Prices |
| - Upload a **diamond dataset (CSV/Excel)**. |
| - The AI model predicts **GIA price, grading price, and bygrading price**. |
| - Download the results as a structured report. |
|
|
| ### 2οΈβ£ Identifying Diamond Parameter Changes |
| - AI analyzes changes in **carat, cut, color, and other attributes**. |
| - Alerts users to potential modifications in the diamond properties. |
|
|
| --- |
|
|
| ## π Future Enhancements |
| - β
Improve model accuracy with deep learning. |
| - β
Add support for **real-time API integration** with diamond pricing databases. |
| - β
Extend the system to predict **market trends** using time-series forecasting. |
|
|
| --- |
|
|
| ## π‘ Credits |
| Developed by **Webashlar**, a leading IT company specializing in AI, data science, and software solutions. |
|
|
| Happy predicting! πβ¨ |
|
|
| --- |
|
|
|
|