2022-12-23

Developing Data Products - Shiny Application and Reproducible Pitch

Overview

For the developing Data Products course project I have created a Shiny Application which will predict diamond price on the basis of chosen parameters. Diamond dataset which I have collected from the website http://www.pricescope.com/. Diamond price determined by several factors, such as carat, Clarity, Cut etc. In my dataset I have choosen 6 predictors - Shape, Carat,Cut, Color, Clarity, Depth.

Data Preparation

Read the dataset Diamond_price.csv which is in the current directory.

## 'data.frame':    1000 obs. of  10 variables:
##  $ Shape       : chr  "Heart" "Heart" "Heart" "Heart" ...
##  $ Carat       : num  3.13 1.03 1.02 1.63 1.2 1.5 1.71 2.04 2.04 1.67 ...
##  $ Cut         : chr  "Good" "Good" "Good" "Good" ...
##  $ Color       : chr  "D" "H" "G" "K" ...
##  $ Clarity     : chr  "SI2" "I1" "SI2" "SI2" ...
##  $ Table       : num  54 51 56 63 48.4 52 51.4 52 64.9 54.5 ...
##  $ Depth       : num  56.9 57.5 51.3 43 57.9 53 61.4 50.2 39.3 41.6 ...
##  $ Cert        : chr  "AGS" "AGS" "AGS" "AGS" ...
##  $ Measurements: chr  "9.32 x 10.61 x 6.03" "6.22 x 7.03 x 4.04" "6.36 x 7.07 x 3.64" "7.83 x 8.28 x 3.56" ...
##  $ Price       : chr  "$27,616" "$3,188" "$3,158" "$4,009" ...
##   Shape Carat   Cut Color Clarity Depth Price
## 2 Heart  1.03  Good     H      I1  57.5  3188
## 3 Heart  1.02  Good     G     SI2  51.3  3158
## 4 Heart  1.63  Good     K     SI2  43.0  4009
## 5 Heart  1.20 Ideal     E     SI2  57.9  5256
## 6 Heart  1.50 Ideal     E     SI2  53.0  7860
## 7 Heart  1.71 Ideal     H     SI2  61.4  8557

Build Model

## Loading required package: ggplot2
## Loading required package: lattice
## randomForest 4.7-1.1
## Type rfNews() to see new features/changes/bug fixes.
## 
## Attaching package: 'randomForest'
## The following object is masked from 'package:ggplot2':
## 
##     margin

The shiny appication I developed has been published in shiny server at https://te7dfh-karan0reddy-kota.shinyapps.io/assignment-shiny-app/.
To reproduce the shiny application on your local system, you need to install the relevent packages (caret and randomForest) and download diamond dataset, server.R and ui.R from github repository.

How to Run the Application

After downloading the above mentioned files you have to keep all the files in a folder and run runApp() function. Instantly application will be open locally in default browser. In the html page you will see at left side there are severel input parameters you have to select by drop down or by increasing/decreasing the values. After selection you have to press the Submit button, the diamond price will be shown at right side.
The predictors are :
1. Shape - Diamond shapes are Heart ,Round, Princess, Cushion,Pear,Marquise, Emerald, Radiant, Oval, Asscher
2. Carat - The weight or size of the diamond ( in this project diamond weight can be from .32 carat to 4.0 carat)
3. Cut - The proportions and relative angles of the facets. 3 type of cuts : Good ,Ideal, Very Good
4. Color - Color has several values, such as D, E, F, G, H, I, J, K, L
5. Clarity - The absence of internal imperfections. Clarity has following values: ‘I1’, ‘I2’, ‘IF’, ‘SI1’, ‘SI2’, ‘VS1’, ‘VS2’, ‘VVS1’, ‘VVS2’
6. Depth - Diamond depth can be very from 40 to 80

Note that the echo = FALSE parameter was added to the code chunk to prevent printing of the R code that generated the plot.

Thank you for your time, Have a great Day