How anuragsingz/diamond-price-prediction-main works
This repository is a diamond-price regression application with a Flask prediction interface and a separate model-training workflow. A user submits diamond attributes through the form; the app converts them to a dataframe, loads saved preprocessing and model artifacts, predicts a price, and renders the result. Training ingests and splits gemstone data, transforms features, trains candidate regressors, and evaluates the model with MLflow tracking. The source shows these component calls, but there are artifact path/name inconsistencies, so the graph does not assume training artifacts successfully feed evaluation or inference. The MLflow capability is also documented in the README; unsampled integrations are not inferred.
Main entry points: Model_trainer.py Model trainer · app.py Flask routes · Data_transformation.py Feature transformation · Prediction_Pipeline.py Prediction pipeline
Components 17
Prediction web app
- Flask routes
app.py - Input form
templates/form.html - Price result
templates/result.html - Input dataframe
src/DiamondPricePrediction/pipelines/Prediction_Pipeline.py - Prediction pipeline
src/DiamondPricePrediction/pipelines/Prediction_Pipeline.py
Model training
- Data ingestion
src/DiamondPricePrediction/components/Data_ingestion.py - Gemstone dataset
Notebook_Experiments/Data/gemstone.csv - Train/test CSVs
Artifacts - Feature transformation
src/DiamondPricePrediction/components/Data_transformation.py - Model trainer
src/DiamondPricePrediction/components/Model_trainer.py - Model evaluation
src/DiamondPricePrediction/components/Model_evaluation.py
Model artifacts
- Model artifacts
Artifacts
Shared internals
- Serialization and scoring
src/DiamondPricePrediction/utils/utils.py - Application logging
src/DiamondPricePrediction/logger.py - Custom exceptions
src/DiamondPricePrediction/exception.py
Other components
- Browser user
- MLflow tracking
Connections 25
- Browser user → Flask routes: submits attributes
app.py - Flask routes → Input form: renders form
app.py - Flask routes → Input dataframe: creates input
app.py - Input dataframe → Prediction pipeline: provides dataframe
app.py - Flask routes → Prediction pipeline: requests prediction
app.py - Flask routes → Price result: renders price
app.py - Browser user → Price result: views result
- Data ingestion → Gemstone dataset: reads dataset
src/DiamondPricePrediction/components/Data_ingestion.py - Data ingestion → Train/test CSVs: writes splits
src/DiamondPricePrediction/components/Data_ingestion.py - Data ingestion → Feature transformation: returns split paths
src/DiamondPricePrediction/pipelines/Training_pipeline.py - Feature transformation → Train/test CSVs: reads splits
src/DiamondPricePrediction/components/Data_transformation.py - Feature transformation → Serialization and scoring: saves preprocessor
src/DiamondPricePrediction/components/Data_transformation.py - Feature transformation → Model trainer: provides arrays
src/DiamondPricePrediction/pipelines/Training_pipeline.py - Model trainer → Serialization and scoring: evaluates candidates
src/DiamondPricePrediction/components/Model_trainer.py - Model trainer → Serialization and scoring: saves selected model
src/DiamondPricePrediction/components/Model_trainer.py - Model trainer → Model artifacts: writes model
src/DiamondPricePrediction/components/Model_trainer.py - Model trainer → Model evaluation: starts evaluation
src/DiamondPricePrediction/pipelines/Training_pipeline.py - Model evaluation → Serialization and scoring: loads model
src/DiamondPricePrediction/components/Model_evaluation.py - Model evaluation → MLflow tracking: logs metrics and model
src/DiamondPricePrediction/components/Model_evaluation.py - Prediction pipeline → Serialization and scoring: loads artifacts
src/DiamondPricePrediction/pipelines/Prediction_Pipeline.py - Prediction pipeline → Model artifacts: reads model and preprocessor
src/DiamondPricePrediction/pipelines/Prediction_Pipeline.py - Data ingestion → Application logging: logs progress
src/DiamondPricePrediction/components/Data_ingestion.py - Feature transformation → Custom exceptions: raises errors
src/DiamondPricePrediction/components/Data_transformation.py - Model trainer → Custom exceptions: raises errors
src/DiamondPricePrediction/components/Model_trainer.py - Prediction pipeline → Custom exceptions: raises errors
src/DiamondPricePrediction/pipelines/Prediction_Pipeline.py