{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "b6598ac9", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns" ] }, { "cell_type": "code", "execution_count": 2, "id": "423de540", "metadata": {}, "outputs": [], "source": [ "df = pd.read_csv('BMW_Cars_Pakistan.csv')\n", "# df_2 = pd.read_csv('Pakistan_Used_Cars.csv')\n", "\n", "# df_1.columns" ] }, { "cell_type": "code", "execution_count": 3, "id": "459e4b56", "metadata": {}, "outputs": [], "source": [ "# df_2.columns" ] }, { "cell_type": "code", "execution_count": 4, "id": "1a280897", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | Car Name | \n", "Auction Rating | \n", "Model Year | \n", "Mileage | \n", "Fuel Type | \n", "Engine Capacity | \n", "Transmission | \n", "Engine Unit | \n", "Price (PKR) | \n", "
|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "BMW 7 Series 5th (F01) Generation 2013 ActiveH... | \n", "NaN | \n", "2013 | \n", "52000 | \n", "Hybrid | \n", "3000.0 | \n", "Automatic | \n", "cc | \n", "NaN | \n", "
| 1 | \n", "BMW X5 2012 xDrive50i for Sale | \n", "8.0 | \n", "2012 | \n", "102148 | \n", "Petrol | \n", "4400.0 | \n", "Automatic | \n", "cc | \n", "16000000.0 | \n", "
| 2 | \n", "BMW 7 Series 2017 740 Le xDrive for Sale | \n", "NaN | \n", "2017 | \n", "48000 | \n", "Hybrid | \n", "2000.0 | \n", "Automatic | \n", "cc | \n", "34500000.0 | \n", "
| 3 | \n", "BMW 2 Series 2021 218i Gran Coupe for Sale | \n", "9.3 | \n", "2021 | \n", "68064 | \n", "Petrol | \n", "1500.0 | \n", "Manual | \n", "cc | \n", "13500000.0 | \n", "
| 4 | \n", "BMW X1 2017 sDrive18i A/T for Sale | \n", "8.6 | \n", "2017 | \n", "138928 | \n", "Petrol | \n", "1500.0 | \n", "Automatic | \n", "cc | \n", "8200000.0 | \n", "
| \n", " | Car Name | \n", "Model Year | \n", "Mileage | \n", "Fuel Type | \n", "Engine Capacity | \n", "Transmission | \n", "Engine Unit | \n", "Price (PKR) | \n", "
|---|---|---|---|---|---|---|---|---|
| 1 | \n", "BMW X5 2012 xDrive50i for Sale | \n", "2012 | \n", "102148 | \n", "Petrol | \n", "4400.0 | \n", "Automatic | \n", "cc | \n", "16000000.0 | \n", "
| 2 | \n", "BMW 7 Series 2017 740 Le xDrive for Sale | \n", "2017 | \n", "48000 | \n", "Hybrid | \n", "2000.0 | \n", "Automatic | \n", "cc | \n", "34500000.0 | \n", "
| 3 | \n", "BMW 2 Series 2021 218i Gran Coupe for Sale | \n", "2021 | \n", "68064 | \n", "Petrol | \n", "1500.0 | \n", "Manual | \n", "cc | \n", "13500000.0 | \n", "
| 4 | \n", "BMW X1 2017 sDrive18i A/T for Sale | \n", "2017 | \n", "138928 | \n", "Petrol | \n", "1500.0 | \n", "Automatic | \n", "cc | \n", "8200000.0 | \n", "
| 5 | \n", "BMW X1 2017 sDrive18i A/T for Sale | \n", "2017 | \n", "32877 | \n", "Petrol | \n", "1500.0 | \n", "Automatic | \n", "cc | \n", "8200000.0 | \n", "
| \n", " | Car Name | \n", "Model Year | \n", "Mileage | \n", "Fuel Type | \n", "Engine Capacity | \n", "Transmission | \n", "Engine Unit | \n", "Price (PKR) | \n", "
|---|---|---|---|---|---|---|---|---|
| 1 | \n", "BMW X5 2012 xDrive50i for Sale | \n", "2012 | \n", "102148 | \n", "Petrol | \n", "4400.0 | \n", "Automatic | \n", "cc | \n", "16000000.0 | \n", "
| 2 | \n", "BMW 7 Series 2017 740 Le xDrive for Sale | \n", "2017 | \n", "48000 | \n", "Hybrid | \n", "2000.0 | \n", "Automatic | \n", "cc | \n", "34500000.0 | \n", "
| 3 | \n", "BMW 2 Series 2021 218i Gran Coupe for Sale | \n", "2021 | \n", "68064 | \n", "Petrol | \n", "1500.0 | \n", "Manual | \n", "cc | \n", "13500000.0 | \n", "
| 4 | \n", "BMW X1 2017 sDrive18i A/T for Sale | \n", "2017 | \n", "138928 | \n", "Petrol | \n", "1500.0 | \n", "Automatic | \n", "cc | \n", "8200000.0 | \n", "
| 5 | \n", "BMW X1 2017 sDrive18i A/T for Sale | \n", "2017 | \n", "32877 | \n", "Petrol | \n", "1500.0 | \n", "Automatic | \n", "cc | \n", "8200000.0 | \n", "
| \n", " | Car Name | \n", "Model Year | \n", "Mileage | \n", "Fuel Type | \n", "Engine Capacity | \n", "Transmission | \n", "Engine Unit | \n", "Price (PKR) | \n", "
|---|---|---|---|---|---|---|---|---|
| 1 | \n", "BMW X5 | \n", "2012 | \n", "102148 | \n", "Petrol | \n", "4400.0 | \n", "Automatic | \n", "cc | \n", "16000000.0 | \n", "
| 2 | \n", "BMW 7 | \n", "2017 | \n", "48000 | \n", "Hybrid | \n", "2000.0 | \n", "Automatic | \n", "cc | \n", "34500000.0 | \n", "
| 3 | \n", "BMW 2 | \n", "2021 | \n", "68064 | \n", "Petrol | \n", "1500.0 | \n", "Manual | \n", "cc | \n", "13500000.0 | \n", "
| 4 | \n", "BMW X1 | \n", "2017 | \n", "138928 | \n", "Petrol | \n", "1500.0 | \n", "Automatic | \n", "cc | \n", "8200000.0 | \n", "
| 5 | \n", "BMW X1 | \n", "2017 | \n", "32877 | \n", "Petrol | \n", "1500.0 | \n", "Automatic | \n", "cc | \n", "8200000.0 | \n", "
| \n", " | Car Name | \n", "Model Year | \n", "Mileage | \n", "Fuel Type | \n", "Engine Capacity | \n", "Transmission | \n", "Engine Unit | \n", "Price (PKR) | \n", "
|---|---|---|---|---|---|---|---|---|
| 1 | \n", "BMW X5 | \n", "2012 | \n", "102148 | \n", "Petrol | \n", "4400.0 | \n", "Automatic | \n", "cc | \n", "16000000.0 | \n", "
| 2 | \n", "BMW 7 | \n", "2017 | \n", "48000 | \n", "Hybrid | \n", "2000.0 | \n", "Automatic | \n", "cc | \n", "34500000.0 | \n", "
| 3 | \n", "BMW 2 | \n", "2021 | \n", "68064 | \n", "Petrol | \n", "1500.0 | \n", "Manual | \n", "cc | \n", "13500000.0 | \n", "
| 4 | \n", "BMW X1 | \n", "2017 | \n", "138928 | \n", "Petrol | \n", "1500.0 | \n", "Automatic | \n", "cc | \n", "8200000.0 | \n", "
| 5 | \n", "BMW X1 | \n", "2017 | \n", "32877 | \n", "Petrol | \n", "1500.0 | \n", "Automatic | \n", "cc | \n", "8200000.0 | \n", "
ColumnTransformer(transformers=[('num',\n",
" Pipeline(steps=[('imputer',\n",
" SimpleImputer(strategy='median')),\n",
" ('skew', PowerTransformer()),\n",
" ('scaler', StandardScaler())]),\n",
" ['Model Year', 'Mileage', 'Engine Capacity']),\n",
" ('cat',\n",
" Pipeline(steps=[('one',\n",
" OneHotEncoder(handle_unknown='ignore'))]),\n",
" ['Fuel Type', 'Transmission', 'Engine Unit'])])In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. ['Model Year', 'Mileage', 'Engine Capacity']
| \n", " | \n",
" \n",
" method\n",
" method: {'yeo-johnson', 'box-cox'}, default='yeo-johnson' The power transform method. Available methods are: - 'yeo-johnson' [1]_, works with positive and negative values - 'box-cox' [2]_, only works with strictly positive values\n", " \n", " | \n",
" 'yeo-johnson' | \n", "
| \n", " | \n",
" \n",
" standardize\n",
" standardize: bool, default=True Set to True to apply zero-mean, unit-variance normalization to the transformed output.\n", " \n", " | \n",
" True | \n", "
| \n", " | \n",
" \n",
" copy\n",
" copy: bool, default=True Set to False to perform inplace computation during transformation.\n", " \n", " | \n",
" True | \n", "
| \n", " | \n",
" \n",
" copy\n",
" copy: bool, default=True If False, try to avoid a copy and do inplace scaling instead. This is not guaranteed to always work inplace; e.g. if the data is not a NumPy array or scipy.sparse CSR matrix, a copy may still be returned.\n", " \n", " | \n",
" True | \n", "
| \n", " | \n",
" \n",
" with_mean\n",
" with_mean: bool, default=True If True, center the data before scaling. This does not work (and will raise an exception) when attempted on sparse matrices, because centering them entails building a dense matrix which in common use cases is likely to be too large to fit in memory.\n", " \n", " | \n",
" True | \n", "
| \n", " | \n",
" \n",
" with_std\n",
" with_std: bool, default=True If True, scale the data to unit variance (or equivalently, unit standard deviation).\n", " \n", " | \n",
" True | \n", "
['Fuel Type', 'Transmission', 'Engine Unit']
| \n", " | Name | \n", "R2_score | \n", "MSE | \n", "MAE | \n", "RMSE | \n", "
|---|---|---|---|---|---|
| 0 | \n", "Linear Regression | \n", "0.633844 | \n", "1.115574e+14 | \n", "7.326226e+06 | \n", "1.056207e+07 | \n", "
| 1 | \n", "Ridge Regression | \n", "0.637113 | \n", "1.105614e+14 | \n", "7.358608e+06 | \n", "1.051482e+07 | \n", "
| 2 | \n", "Lasso Regression | \n", "0.633844 | \n", "1.115574e+14 | \n", "7.326226e+06 | \n", "1.056207e+07 | \n", "
| 3 | \n", "ElasticNet | \n", "0.645937 | \n", "1.078729e+14 | \n", "7.885882e+06 | \n", "1.038619e+07 | \n", "
| 4 | \n", "Decision Tree | \n", "0.921837 | \n", "2.381397e+13 | \n", "2.435056e+06 | \n", "4.879955e+06 | \n", "
| 5 | \n", "Random Forest | \n", "0.933883 | \n", "2.014404e+13 | \n", "2.550051e+06 | \n", "4.488211e+06 | \n", "
| 6 | \n", "Extra Trees | \n", "0.871264 | \n", "3.922225e+13 | \n", "2.848568e+06 | \n", "6.262767e+06 | \n", "
| 7 | \n", "Gradient Boosting | \n", "0.913179 | \n", "2.645202e+13 | \n", "2.950997e+06 | \n", "5.143153e+06 | \n", "
| 8 | \n", "K-Neighbors | \n", "0.753490 | \n", "7.510466e+13 | \n", "5.118833e+06 | \n", "8.666294e+06 | \n", "
| 9 | \n", "Support Vector Regressor | \n", "-0.148005 | \n", "3.497644e+14 | \n", "1.153472e+07 | \n", "1.870199e+07 | \n", "
| 10 | \n", "XGBoost | \n", "0.911903 | \n", "2.684065e+13 | \n", "2.550636e+06 | \n", "5.180796e+06 | \n", "
| 11 | \n", "AdaBoost | \n", "0.835121 | \n", "5.023407e+13 | \n", "5.668587e+06 | \n", "7.087600e+06 | \n", "
| \n", " | Model Year | \n", "Mileage | \n", "Engine Capacity | \n", "Price (PKR) | \n", "
|---|---|---|---|---|
| count | \n", "297.000000 | \n", "297.000000 | \n", "297.000000 | \n", "2.970000e+02 | \n", "
| mean | \n", "2014.319865 | \n", "84225.114478 | \n", "1947.538721 | \n", "1.987818e+07 | \n", "
| std | \n", "8.028373 | \n", "81370.451033 | \n", "1541.596478 | \n", "1.968977e+07 | \n", "
| min | \n", "1992.000000 | \n", "15.000000 | \n", "64.000000 | \n", "1.850000e+06 | \n", "
| 25% | \n", "2006.000000 | \n", "19800.000000 | \n", "105.000000 | \n", "5.500000e+06 | \n", "
| 50% | \n", "2017.000000 | \n", "75000.000000 | \n", "1600.000000 | \n", "9.500000e+06 | \n", "
| 75% | \n", "2022.000000 | \n", "125000.000000 | \n", "3000.000000 | \n", "2.770000e+07 | \n", "
| max | \n", "2026.000000 | \n", "750000.000000 | \n", "8120.000000 | \n", "7.300000e+07 | \n", "