Dataset columns are as follows:

■ id - ID

■ battery_power - Total energy a battery can store in one time measured in mAh

■ blue - Has Bluetooth or not

■ clock_speed - The speed at which the microprocessor executes instructions

■ dual_sim - Has dual sim support or not

■ fc - Front Camera megapixels

■ four_g - Has 4G or not

■ int_memory - Internal Memory in Gigabytes

■ m_dep - Mobile Depth in cm

■ mobile_wt - Weight of mobile phone

■ n_cores - Number of cores of the processor

■ pc - Primary Camera megapixels

■ px_height - Pixel Resolution Height

■ px_width - Pixel Resolution Width

■ ram - Random Access Memory in Megabytes

■ sc_h - Screen Height of mobile in cm

■ sc_w - Screen Width of mobile in cm

■ talk_time - longest time that a single battery charge will last when you are

■ three_g - Has 3G or not

■ touch_screen - Has touch screen or not

■ wifi - Has wifi or not

■ price_range - This is the target variable with the value of:

● 0 (low cost)

● 1 (medium cost)

● 2 (high cost)

● 3 (very high cost)

Modeling Steps:

● Duild the ML model, to predict or classify the price for any device:

Data Preparing: ■ prepare the data very well, and do some engineering processing.

○ EDA.(Show 1-2 insights, add your comments)

■ Select and illustrate appropriate charts for the dataset to facilitate the discovery of patterns, insights, and correlations.

○ Train using an appropriate algorithm.

Evaluate the model:

■ Show some evaluation metrics.(confusion matrix, or any other metrics, Add your comments).

Optimize the model:

■ Choose an appropriate algorithm to make the result good enough.(Add your comments).

● Endpoints:

○ RESTful API to predict the price for any device:

■ Will take the specs for any device, and send it to the ML model, then return the predicted price.

SpringBoot Project Entities:

● Device: to describe every device in our system.

EndPoints: Implement RESTful endpoints to handle the following operations

● POST /api/devices/: Retrieve a list of all devices

● GET /api/devices/{id}: Retrieve details of a specific device by ID.

● POST /api/devices: Add a new device.

● POST /api/predict/{deviceId}

○ This will call the Python API to predict the price, and save the result in the device entity here.

○ Apply some best practices here, like transaction management.

Testing:

● Do prediction for 10 devices from the Test dataset above.