├── Procfile ├── static ├── co2.jpg ├── co2_score.png ├── co2_emission.gif └── C02_Arch_Diagram.png ├── finalized_model.pkl ├── wsgi.py ├── requirements.txt ├── .gitignore ├── README.md ├── templates └── index.html └── app.py /Procfile: -------------------------------------------------------------------------------- 1 | web: gunicorn app:app 2 | -------------------------------------------------------------------------------- /static/co2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d0r1h/CO2-Emission-by-Cars/HEAD/static/co2.jpg -------------------------------------------------------------------------------- /finalized_model.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d0r1h/CO2-Emission-by-Cars/HEAD/finalized_model.pkl -------------------------------------------------------------------------------- /static/co2_score.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d0r1h/CO2-Emission-by-Cars/HEAD/static/co2_score.png -------------------------------------------------------------------------------- /static/co2_emission.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d0r1h/CO2-Emission-by-Cars/HEAD/static/co2_emission.gif -------------------------------------------------------------------------------- /static/C02_Arch_Diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d0r1h/CO2-Emission-by-Cars/HEAD/static/C02_Arch_Diagram.png -------------------------------------------------------------------------------- /wsgi.py: -------------------------------------------------------------------------------- 1 | from main import app 2 | 3 | if __name__=="__main__": 4 | app.run() 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | certifi==2020.12.5 2 | chardet==4.0.0 3 | click==7.1.2 4 | Flask==1.1.2 5 | gunicorn 6 | idna==2.10 7 | itsdangerous==1.1.0 8 | Jinja2==2.11.3 9 | joblib==1.0.1 10 | jsonify==0.5 11 | MarkupSafe==1.1.1 12 | numpy==1.19.5 13 | pandas==1.1.5 14 | patsy==0.5.1 15 | python-dateutil==2.8.1 16 | pytz==2021.1 17 | requests==2.25.1 18 | scikit-learn==0.24.2 19 | scipy==1.5.4 20 | six==1.16.0 21 | sklearn==0.0 22 | statsmodels==0.12.2 23 | threadpoolctl==2.1.0 24 | urllib3==1.26.4 25 | Werkzeug==1.0.1 26 | wincertstore==0.2 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # CO2 Emission by Cars 2 | A reliable End to End Machine Learning Model to predict CO2 Emissions in different type of Cars. 3 | 4 | ### Description 5 | 6 | The task is to build a machine learning model to predict CO2 emissions by different types of cars based on features such as: 7 | 8 | * Model of car 9 | * Engine Size (in Litre) 10 | * Number of cylinders 11 | * Class of vehicle 12 | * Fuel consumption (on highways, in city roads) 13 | 14 | Project also aims at testing the influence of different independent features on the emission of CO2 using statistical methods. 15 | 16 | 17 | 18 | ### DataSet: 19 | 20 | * The dataset has been taken from the Canada Government official open data website and is available in [kaggle](https://www.kaggle.com/datasets/debajyotipodder/co2-emission-by-vehicles) 21 | * Cleaned and processed version of the data can be accessed from [here](https://raw.githubusercontent.com/d0r1h/CO2-Emission-by-Cars/main/final_co2.csv) 22 | * Dataset contains 7385 datapoints and 12 columns. 23 | 24 | 25 | ### Notebook: 26 | 27 | Notebook contains the EDA, data processing, and model building ideas. 28 | 29 | | Notebook | Colab | Kaggle | 30 | | ------ | ------ | ------ | 31 | | CO2 Emission | [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/d0r1h/CO2-Emission-by-Cars/blob/main/notebook/co2-emission-by-cars.ipynb) | [![Kaggle](https://kaggle.com/static/images/open-in-kaggle.svg)](https://www.kaggle.com/code/undersc0re/co2-emission-by-cars) | 32 | 33 | ### Models 34 | We experimented with different methods for model building 35 | 36 | * OLS Regression 37 | * Ridge Regression 38 | * Lasso Regression 39 | * Elastic Net Regression 40 | 41 | ## Project Pipeline 42 | 43 | 44 | 45 | 46 | 47 | ### Techstack 48 | 49 | **Python version** : 3.7
50 | **Packages**: pandas, numpy, seaborn, sklearn, mlxtend, statsmodels
51 | **Cloud**: heroku 52 | 53 | ### Usage [running locally]: 54 | 55 | ```python 56 | conda create -n envname python=3.7 57 | activate envname 58 | git clone https://github.com/d0r1h/CO2-Emission-by-Cars.git 59 | cd CO2-Emission-by-Cars 60 | pip install -r requirements.txt 61 | python app.py 62 | ``` 63 | 64 | ## Results 65 | 66 | 67 | * Ridge Regression (with alpha = 0.5) has been the most effective in reducing RMSE. 68 | * The exact combination of features responsible for high CO2 emissions cannot be predicted Since all the features are highly correlated. 69 | * Following image shows score table for different models 70 | 71 | 72 | 73 | 74 | 75 | ### Inference Demo: 76 | 77 | Application is deployed on heroku and can be accessed at https://coemission.herokuapp.com/ and following data can be used to test the application. 78 | 79 | |Engine Size|Cylinders|Fuel Consumption City|Fuel Consumption Hwy|Fuel Consumption Comb| Fuel Consumption Comb (mpg) | Fuel Types | Transmission type | Make | Vechicle Class | CO2 Emissions | 80 | | ------------- | ------------- | -------- | -------- |-------- |------- |------- | ------ | ------- | ------- | ------- | 81 | | 3.5 | 6 | 11.9 | 7.7 | 10 | 28 | z | AS6 | Luxury | Sedan | 230 | 82 | | 3.5 | 6 | 11.8 | 8.1 | 10.1 | 28 | z | AS6 | Luxury | Sedan | 232 | 83 | -------------------------------------------------------------------------------- /templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | C02 8 | 9 | 10 | 11 | 12 | 13 |
14 |
15 |

Predictive Co2

16 | 17 | 18 | 19 | 20 |

Engine Size


21 |

Cylinders

22 |

Fuel Consumption City (L/100 km)


23 |

Fuel Consumption Hwy (L/100 km)


24 |

Fuel Consumption Comb (L/100 km)


25 |

Fuel Consumption Comb (mpg)


26 | 27 | 28 | 29 |

Fuel Types


34 | 35 | 36 | 37 |

Transmission type


65 | 66 | 67 | 68 | 69 |

Make


74 | 75 | 76 | 77 |

Vechicle Class


82 | 83 |

84 |
85 | 86 |
87 | 88 | 89 | 90 |

{{ prediction_text }}

91 |

92 | 93 | 94 | 95 | 96 | 195 | 196 | 197 | 198 | -------------------------------------------------------------------------------- /app.py: -------------------------------------------------------------------------------- 1 | import pickle 2 | import jsonify 3 | import requests 4 | import numpy as np 5 | import pandas as pd 6 | from sklearn.linear_model import LinearRegression 7 | from flask import Flask, render_template, request 8 | from sklearn.model_selection import train_test_split 9 | 10 | 11 | 12 | 13 | data=pd.read_csv('final_co2.csv',index_col=0) 14 | 15 | X=data.drop(['CO2_Emissions'],axis=1) 16 | y=data['CO2_Emissions'] 17 | X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=42) 18 | 19 | reg=LinearRegression() 20 | reg.fit(X_train,y_train) 21 | 22 | 23 | filename = 'finalized_model.pkl' 24 | pickle.dump(reg, open(filename, 'wb')) 25 | 26 | 27 | app = Flask(__name__) 28 | model = pickle.load(open('finalized_model.pkl', 'rb')) 29 | 30 | 31 | @app.route('/',methods=['GET']) 32 | def Home(): 33 | return render_template('index.html') 34 | 35 | 36 | @app.route("/predict", methods=['POST']) 37 | def predict(): 38 | 39 | if request.method == 'POST': 40 | 41 | Engine_Size=float(request.form['Engine_Size']) 42 | Cylinders=float(request.form['Cylinders']) 43 | Fuel_Consumption_City=float(request.form['Fuel_Consumption_City']) 44 | Fuel_Consumption_Hwy=float(request.form['Fuel_Consumption_Hwy']) 45 | Fuel_Consumption_Comb=float(request.form['Fuel_Consumption_Comb']) 46 | Fuel_Consumption_Comb_mpg=float(request.form['Fuel_Consumption_Comb_mpg']) 47 | 48 | 49 | Make=request.form['Make'] 50 | if(Make=='Luxury'): 51 | Make_Type_Luxury=1 52 | Make_Type_Premium=0 53 | Make_Type_Sports=0 54 | 55 | elif(Make=='Premium'): 56 | Make_Type_Luxury=0 57 | Make_Type_Premium=1 58 | Make_Type_Sports=0 59 | 60 | elif(Make=='Sports'): 61 | Make_Type_Luxury=0 62 | Make_Type_Premium=0 63 | Make_Type_Sports=1 64 | 65 | else: 66 | Make_Type_Luxury=0 67 | Make_Type_Premium=0 68 | Make_Type_Sports=0 69 | 70 | 71 | Vehicle_Class=request.form['Vehicle_Class'] 72 | if(Vehicle_Class=='SUV'): 73 | Vehicle_Class_Type_SUV=1 74 | Vehicle_Class_Type_Sedan=0 75 | Vehicle_Class_Type_Truck=0 76 | 77 | elif(Vehicle_Class=='Sedan'): 78 | Vehicle_Class_Type_SUV=0 79 | Vehicle_Class_Type_Sedan=1 80 | Vehicle_Class_Type_Truck=0 81 | 82 | elif(Vehicle_Class=='Truck'): 83 | Vehicle_Class_Type_SUV=0 84 | Vehicle_Class_Type_Sedan=0 85 | Vehicle_Class_Type_Truck=1 86 | 87 | else: 88 | Vehicle_Class_Type_SUV=0 89 | Vehicle_Class_Type_Sedan=0 90 | Vehicle_Class_Type_Truck=0 91 | 92 | 93 | 94 | Transmission=request.form['Transmission'] 95 | if(Transmission=='A4'): 96 | Transmission_A4=1 97 | Transmission_A5=0 98 | Transmission_A6=0 99 | Transmission_A7=0 100 | Transmission_A8=0 101 | Transmission_A9=0 102 | Transmission_AM5=0 103 | Transmission_AM6=0 104 | Transmission_AM7=0 105 | Transmission_AM8=0 106 | Transmission_AM9=0 107 | Transmission_AS10=0 108 | Transmission_AS4=0 109 | Transmission_AS5=0 110 | Transmission_AS6=0 111 | Transmission_AS7=0 112 | Transmission_AS8=0 113 | Transmission_AS9=0 114 | Transmission_AV=0 115 | Transmission_AV10=0 116 | Transmission_AV6=0 117 | Transmission_AV7=0 118 | Transmission_AV8=0 119 | Transmission_M5=0 120 | Transmission_M6=0 121 | Transmission_M7=0 122 | elif(Transmission=='A5'): 123 | Transmission_A4=0 124 | Transmission_A5=1 125 | Transmission_A6=0 126 | Transmission_A7=0 127 | Transmission_A8=0 128 | Transmission_A9=0 129 | Transmission_AM5=0 130 | Transmission_AM6=0 131 | Transmission_AM7=0 132 | Transmission_AM8=0 133 | Transmission_AM9=0 134 | Transmission_AS10=0 135 | Transmission_AS4=0 136 | Transmission_AS5=0 137 | Transmission_AS6=0 138 | Transmission_AS7=0 139 | Transmission_AS8=0 140 | Transmission_AS9=0 141 | Transmission_AV=0 142 | Transmission_AV10=0 143 | Transmission_AV6=0 144 | Transmission_AV7=0 145 | Transmission_AV8=0 146 | Transmission_M5=0 147 | Transmission_M6=0 148 | Transmission_M7=0 149 | 150 | elif(Transmission=='A6'): 151 | Transmission_A4=0 152 | Transmission_A5=0 153 | Transmission_A6=1 154 | Transmission_A7=0 155 | Transmission_A8=0 156 | Transmission_A9=0 157 | Transmission_AM5=0 158 | Transmission_AM6=0 159 | Transmission_AM7=0 160 | Transmission_AM8=0 161 | Transmission_AM9=0 162 | Transmission_AS10=0 163 | Transmission_AS4=0 164 | Transmission_AS5=0 165 | Transmission_AS6=0 166 | Transmission_AS7=0 167 | Transmission_AS8=0 168 | Transmission_AS9=0 169 | Transmission_AV=0 170 | Transmission_AV10=0 171 | Transmission_AV6=0 172 | Transmission_AV7=0 173 | Transmission_AV8=0 174 | Transmission_M5=0 175 | Transmission_M6=0 176 | Transmission_M7=0 177 | 178 | elif(Transmission=='A7'): 179 | Transmission_A4=0 180 | Transmission_A5=0 181 | Transmission_A6=0 182 | Transmission_A7=1 183 | Transmission_A8=0 184 | Transmission_A9=0 185 | Transmission_AM5=0 186 | Transmission_AM6=0 187 | Transmission_AM7=0 188 | Transmission_AM8=0 189 | Transmission_AM9=0 190 | Transmission_AS10=0 191 | Transmission_AS4=0 192 | Transmission_AS5=0 193 | Transmission_AS6=0 194 | Transmission_AS7=0 195 | Transmission_AS8=0 196 | Transmission_AS9=0 197 | Transmission_AV=0 198 | Transmission_AV10=0 199 | Transmission_AV6=0 200 | Transmission_AV7=0 201 | Transmission_AV8=0 202 | Transmission_M5=0 203 | Transmission_M6=0 204 | Transmission_M7=0 205 | 206 | elif(Transmission=='A8'): 207 | Transmission_A4=0 208 | Transmission_A5=0 209 | Transmission_A6=0 210 | Transmission_A7=0 211 | Transmission_A8=1 212 | Transmission_A9=0 213 | Transmission_AM5=0 214 | Transmission_AM6=0 215 | Transmission_AM7=0 216 | Transmission_AM8=0 217 | Transmission_AM9=0 218 | Transmission_AS10=0 219 | Transmission_AS4=0 220 | Transmission_AS5=0 221 | Transmission_AS6=0 222 | Transmission_AS7=0 223 | Transmission_AS8=0 224 | Transmission_AS9=0 225 | Transmission_AV=0 226 | Transmission_AV10=0 227 | Transmission_AV6=0 228 | Transmission_AV7=0 229 | Transmission_AV8=0 230 | Transmission_M5=0 231 | Transmission_M6=0 232 | Transmission_M7=0 233 | 234 | elif(Transmission=='A9'): 235 | Transmission_A4=0 236 | Transmission_A5=0 237 | Transmission_A6=0 238 | Transmission_A7=0 239 | Transmission_A8=0 240 | Transmission_A9=1 241 | Transmission_AM5=0 242 | Transmission_AM6=0 243 | Transmission_AM7=0 244 | Transmission_AM8=0 245 | Transmission_AM9=0 246 | Transmission_AS10=0 247 | Transmission_AS4=0 248 | Transmission_AS5=0 249 | Transmission_AS6=0 250 | Transmission_AS7=0 251 | Transmission_AS8=0 252 | Transmission_AS9=0 253 | Transmission_AV=0 254 | Transmission_AV10=0 255 | Transmission_AV6=0 256 | Transmission_AV7=0 257 | Transmission_AV8=0 258 | Transmission_M5=0 259 | Transmission_M6=0 260 | Transmission_M7=0 261 | 262 | elif(Transmission=='AM5'): 263 | Transmission_A4=0 264 | Transmission_A5=0 265 | Transmission_A6=0 266 | Transmission_A7=0 267 | Transmission_A8=0 268 | Transmission_A9=0 269 | Transmission_AM5=1 270 | Transmission_AM6=0 271 | Transmission_AM7=0 272 | Transmission_AM8=0 273 | Transmission_AM9=0 274 | Transmission_AS10=0 275 | Transmission_AS4=0 276 | Transmission_AS5=0 277 | Transmission_AS6=0 278 | Transmission_AS7=0 279 | Transmission_AS8=0 280 | Transmission_AS9=0 281 | Transmission_AV=0 282 | Transmission_AV10=0 283 | Transmission_AV6=0 284 | Transmission_AV7=0 285 | Transmission_AV8=0 286 | Transmission_M5=0 287 | Transmission_M6=0 288 | Transmission_M7=0 289 | 290 | elif(Transmission=='AM6'): 291 | Transmission_A4=0 292 | Transmission_A5=0 293 | Transmission_A6=0 294 | Transmission_A7=0 295 | Transmission_A8=0 296 | Transmission_A9=0 297 | Transmission_AM5=0 298 | Transmission_AM6=1 299 | Transmission_AM7=0 300 | Transmission_AM8=0 301 | Transmission_AM9=0 302 | Transmission_AS10=0 303 | Transmission_AS4=0 304 | Transmission_AS5=0 305 | Transmission_AS6=0 306 | Transmission_AS7=0 307 | Transmission_AS8=0 308 | Transmission_AS9=0 309 | Transmission_AV=0 310 | Transmission_AV10=0 311 | Transmission_AV6=0 312 | Transmission_AV7=0 313 | Transmission_AV8=0 314 | Transmission_M5=0 315 | Transmission_M6=0 316 | Transmission_M7=0 317 | 318 | elif(Transmission=='AM7'): 319 | Transmission_A4=0 320 | Transmission_A5=0 321 | Transmission_A6=0 322 | Transmission_A7=0 323 | Transmission_A8=0 324 | Transmission_A9=0 325 | Transmission_AM5=0 326 | Transmission_AM6=0 327 | Transmission_AM7=1 328 | Transmission_AM8=0 329 | Transmission_AM9=0 330 | Transmission_AS10=0 331 | Transmission_AS4=0 332 | Transmission_AS5=0 333 | Transmission_AS6=0 334 | Transmission_AS7=0 335 | Transmission_AS8=0 336 | Transmission_AS9=0 337 | Transmission_AV=0 338 | Transmission_AV10=0 339 | Transmission_AV6=0 340 | Transmission_AV7=0 341 | Transmission_AV8=0 342 | Transmission_M5=0 343 | Transmission_M6=0 344 | Transmission_M7=0 345 | 346 | elif(Transmission=='AM8'): 347 | Transmission_A4=0 348 | Transmission_A5=0 349 | Transmission_A6=0 350 | Transmission_A7=0 351 | Transmission_A8=0 352 | Transmission_A9=0 353 | Transmission_AM5=0 354 | Transmission_AM6=0 355 | Transmission_AM7=0 356 | Transmission_AM8=1 357 | Transmission_AM9=0 358 | Transmission_AS10=0 359 | Transmission_AS4=0 360 | Transmission_AS5=0 361 | Transmission_AS6=0 362 | Transmission_AS7=0 363 | Transmission_AS8=0 364 | Transmission_AS9=0 365 | Transmission_AV=0 366 | Transmission_AV10=0 367 | Transmission_AV6=0 368 | Transmission_AV7=0 369 | Transmission_AV8=0 370 | Transmission_M5=0 371 | Transmission_M6=0 372 | Transmission_M7=0 373 | 374 | elif(Transmission=='AM9'): 375 | Transmission_A4=0 376 | Transmission_A5=0 377 | Transmission_A6=0 378 | Transmission_A7=0 379 | Transmission_A8=0 380 | Transmission_A9=0 381 | Transmission_AM5=0 382 | Transmission_AM6=0 383 | Transmission_AM7=0 384 | Transmission_AM8=0 385 | Transmission_AM9=1 386 | Transmission_AS10=0 387 | Transmission_AS4=0 388 | Transmission_AS5=0 389 | Transmission_AS6=0 390 | Transmission_AS7=0 391 | Transmission_AS8=0 392 | Transmission_AS9=0 393 | Transmission_AV=0 394 | Transmission_AV10=0 395 | Transmission_AV6=0 396 | Transmission_AV7=0 397 | Transmission_AV8=0 398 | Transmission_M5=0 399 | Transmission_M6=0 400 | Transmission_M7=0 401 | 402 | elif(Transmission=='AS4'): 403 | Transmission_A4=0 404 | Transmission_A5=0 405 | Transmission_A6=0 406 | Transmission_A7=0 407 | Transmission_A8=0 408 | Transmission_A9=0 409 | Transmission_AM5=0 410 | Transmission_AM6=0 411 | Transmission_AM7=0 412 | Transmission_AM8=0 413 | Transmission_AM9=0 414 | Transmission_AS10=0 415 | Transmission_AS4=1 416 | Transmission_AS5=0 417 | Transmission_AS6=0 418 | Transmission_AS7=0 419 | Transmission_AS8=0 420 | Transmission_AS9=0 421 | Transmission_AV=0 422 | Transmission_AV10=0 423 | Transmission_AV6=0 424 | Transmission_AV7=0 425 | Transmission_AV8=0 426 | Transmission_M5=0 427 | Transmission_M6=0 428 | Transmission_M7=0 429 | 430 | elif(Transmission=='AS5'): 431 | Transmission_A4=0 432 | Transmission_A5=0 433 | Transmission_A6=0 434 | Transmission_A7=0 435 | Transmission_A8=0 436 | Transmission_A9=0 437 | Transmission_AM5=0 438 | Transmission_AM6=0 439 | Transmission_AM7=0 440 | Transmission_AM8=0 441 | Transmission_AM9=0 442 | Transmission_AS10=0 443 | Transmission_AS4=0 444 | Transmission_AS5=1 445 | Transmission_AS6=0 446 | Transmission_AS7=0 447 | Transmission_AS8=0 448 | Transmission_AS9=0 449 | Transmission_AV=0 450 | Transmission_AV10=0 451 | Transmission_AV6=0 452 | Transmission_AV7=0 453 | Transmission_AV8=0 454 | Transmission_M5=0 455 | Transmission_M6=0 456 | Transmission_M7=0 457 | 458 | elif(Transmission=='AS6'): 459 | Transmission_A4=0 460 | Transmission_A5=0 461 | Transmission_A6=0 462 | Transmission_A7=0 463 | Transmission_A8=0 464 | Transmission_A9=0 465 | Transmission_AM5=0 466 | Transmission_AM6=0 467 | Transmission_AM7=0 468 | Transmission_AM8=0 469 | Transmission_AM9=0 470 | Transmission_AS10=0 471 | Transmission_AS4=0 472 | Transmission_AS5=0 473 | Transmission_AS6=1 474 | Transmission_AS7=0 475 | Transmission_AS8=0 476 | Transmission_AS9=0 477 | Transmission_AV=0 478 | Transmission_AV10=0 479 | Transmission_AV6=0 480 | Transmission_AV7=0 481 | Transmission_AV8=0 482 | Transmission_M5=0 483 | Transmission_M6=0 484 | Transmission_M7=0 485 | 486 | elif(Transmission=='AS7'): 487 | Transmission_A4=0 488 | Transmission_A5=0 489 | Transmission_A6=0 490 | Transmission_A7=0 491 | Transmission_A8=0 492 | Transmission_A9=0 493 | Transmission_AM5=0 494 | Transmission_AM6=0 495 | Transmission_AM7=0 496 | Transmission_AM8=0 497 | Transmission_AM9=0 498 | Transmission_AS10=0 499 | Transmission_AS4=0 500 | Transmission_AS5=0 501 | Transmission_AS6=0 502 | Transmission_AS7=1 503 | Transmission_AS8=0 504 | Transmission_AS9=0 505 | Transmission_AV=0 506 | Transmission_AV10=0 507 | Transmission_AV6=0 508 | Transmission_AV7=0 509 | Transmission_AV8=0 510 | Transmission_M5=0 511 | Transmission_M6=0 512 | Transmission_M7=0 513 | 514 | elif(Transmission=='AS8'): 515 | Transmission_A4=0 516 | Transmission_A5=0 517 | Transmission_A6=0 518 | Transmission_A7=0 519 | Transmission_A8=0 520 | Transmission_A9=0 521 | Transmission_AM5=0 522 | Transmission_AM6=0 523 | Transmission_AM7=0 524 | Transmission_AM8=0 525 | Transmission_AM9=0 526 | Transmission_AS10=0 527 | Transmission_AS4=0 528 | Transmission_AS5=0 529 | Transmission_AS6=0 530 | Transmission_AS7=0 531 | Transmission_AS8=0 532 | Transmission_AS9=0 533 | Transmission_AV=0 534 | Transmission_AV10=0 535 | Transmission_AV6=0 536 | Transmission_AV7=0 537 | Transmission_AV8=1 538 | Transmission_M5=0 539 | Transmission_M6=0 540 | Transmission_M7=0 541 | 542 | elif(Transmission=='AS9'): 543 | Transmission_A4=0 544 | Transmission_A5=0 545 | Transmission_A6=0 546 | Transmission_A7=0 547 | Transmission_A8=0 548 | Transmission_A9=0 549 | Transmission_AM5=0 550 | Transmission_AM6=0 551 | Transmission_AM7=0 552 | Transmission_AM8=0 553 | Transmission_AM9=0 554 | Transmission_AS10=0 555 | Transmission_AS4=0 556 | Transmission_AS5=0 557 | Transmission_AS6=0 558 | Transmission_AS7=0 559 | Transmission_AS8=0 560 | Transmission_AS9=1 561 | Transmission_AV=0 562 | Transmission_AV10=0 563 | Transmission_AV6=0 564 | Transmission_AV7=0 565 | Transmission_AV8=0 566 | Transmission_M5=0 567 | Transmission_M6=0 568 | Transmission_M7=0 569 | 570 | elif(Transmission=='AS10'): 571 | Transmission_A4=0 572 | Transmission_A5=0 573 | Transmission_A6=0 574 | Transmission_A7=0 575 | Transmission_A8=0 576 | Transmission_A9=0 577 | Transmission_AM5=0 578 | Transmission_AM6=0 579 | Transmission_AM7=0 580 | Transmission_AM8=0 581 | Transmission_AM9=0 582 | Transmission_AS10=1 583 | Transmission_AS4=0 584 | Transmission_AS5=0 585 | Transmission_AS6=0 586 | Transmission_AS7=0 587 | Transmission_AS8=0 588 | Transmission_AS9=0 589 | Transmission_AV=0 590 | Transmission_AV10=0 591 | Transmission_AV6=0 592 | Transmission_AV7=0 593 | Transmission_AV8=0 594 | Transmission_M5=0 595 | Transmission_M6=0 596 | Transmission_M7=0 597 | 598 | elif(Transmission=='AV'): 599 | Transmission_A4=0 600 | Transmission_A5=0 601 | Transmission_A6=0 602 | Transmission_A7=0 603 | Transmission_A8=0 604 | Transmission_A9=0 605 | Transmission_AM5=0 606 | Transmission_AM6=0 607 | Transmission_AM7=0 608 | Transmission_AM8=0 609 | Transmission_AM9=0 610 | Transmission_AS10=0 611 | Transmission_AS4=0 612 | Transmission_AS5=0 613 | Transmission_AS6=0 614 | Transmission_AS7=0 615 | Transmission_AS8=0 616 | Transmission_AS9=0 617 | Transmission_AV=1 618 | Transmission_AV10=0 619 | Transmission_AV6=0 620 | Transmission_AV7=0 621 | Transmission_AV8=0 622 | Transmission_M5=0 623 | Transmission_M6=0 624 | Transmission_M7=0 625 | 626 | elif(Transmission=='AV6'): 627 | Transmission_A4=0 628 | Transmission_A5=0 629 | Transmission_A6=0 630 | Transmission_A7=0 631 | Transmission_A8=0 632 | Transmission_A9=0 633 | Transmission_AM5=0 634 | Transmission_AM6=0 635 | Transmission_AM7=0 636 | Transmission_AM8=0 637 | Transmission_AM9=0 638 | Transmission_AS10=0 639 | Transmission_AS4=0 640 | Transmission_AS5=0 641 | Transmission_AS6=0 642 | Transmission_AS7=0 643 | Transmission_AS8=0 644 | Transmission_AS9=0 645 | Transmission_AV=0 646 | Transmission_AV10=0 647 | Transmission_AV6=1 648 | Transmission_AV7=0 649 | Transmission_AV8=0 650 | Transmission_M5=0 651 | Transmission_M6=0 652 | Transmission_M7=0 653 | 654 | elif(Transmission=='AV8'): 655 | Transmission_A4=0 656 | Transmission_A5=0 657 | Transmission_A6=0 658 | Transmission_A7=0 659 | Transmission_A8=0 660 | Transmission_A9=0 661 | Transmission_AM5=0 662 | Transmission_AM6=0 663 | Transmission_AM7=0 664 | Transmission_AM8=0 665 | Transmission_AM9=0 666 | Transmission_AS10=0 667 | Transmission_AS4=0 668 | Transmission_AS5=0 669 | Transmission_AS6=0 670 | Transmission_AS7=0 671 | Transmission_AS8=0 672 | Transmission_AS9=0 673 | Transmission_AV=0 674 | Transmission_AV10=0 675 | Transmission_AV6=0 676 | Transmission_AV7=0 677 | Transmission_AV8=1 678 | Transmission_M5=0 679 | Transmission_M6=0 680 | Transmission_M7=0 681 | 682 | elif(Transmission=='AV10'): 683 | Transmission_A4=0 684 | Transmission_A5=0 685 | Transmission_A6=0 686 | Transmission_A7=0 687 | Transmission_A8=0 688 | Transmission_A9=0 689 | Transmission_AM5=0 690 | Transmission_AM6=0 691 | Transmission_AM7=0 692 | Transmission_AM8=0 693 | Transmission_AM9=0 694 | Transmission_AS10=0 695 | Transmission_AS4=0 696 | Transmission_AS5=0 697 | Transmission_AS6=0 698 | Transmission_AS7=0 699 | Transmission_AS8=0 700 | Transmission_AS9=0 701 | Transmission_AV=0 702 | Transmission_AV10=1 703 | Transmission_AV6=0 704 | Transmission_AV7=0 705 | Transmission_AV8=0 706 | Transmission_M5=0 707 | Transmission_M6=0 708 | Transmission_M7=0 709 | 710 | elif(Transmission=='M5'): 711 | Transmission_A4=0 712 | Transmission_A5=0 713 | Transmission_A6=0 714 | Transmission_A7=0 715 | Transmission_A8=0 716 | Transmission_A9=0 717 | Transmission_AM5=0 718 | Transmission_AM6=0 719 | Transmission_AM7=0 720 | Transmission_AM8=0 721 | Transmission_AM9=0 722 | Transmission_AS10=0 723 | Transmission_AS4=0 724 | Transmission_AS5=0 725 | Transmission_AS6=0 726 | Transmission_AS7=0 727 | Transmission_AS8=0 728 | Transmission_AS9=0 729 | Transmission_AV=0 730 | Transmission_AV10=0 731 | Transmission_AV6=0 732 | Transmission_AV7=0 733 | Transmission_AV8=0 734 | Transmission_M5=1 735 | Transmission_M6=0 736 | Transmission_M7=0 737 | 738 | elif(Transmission=='M6'): 739 | Transmission_A4=0 740 | Transmission_A5=0 741 | Transmission_A6=0 742 | Transmission_A7=0 743 | Transmission_A8=0 744 | Transmission_A9=0 745 | Transmission_AM5=0 746 | Transmission_AM6=0 747 | Transmission_AM7=0 748 | Transmission_AM8=0 749 | Transmission_AM9=0 750 | Transmission_AS10=0 751 | Transmission_AS4=0 752 | Transmission_AS5=0 753 | Transmission_AS6=0 754 | Transmission_AS7=0 755 | Transmission_AS8=0 756 | Transmission_AS9=0 757 | Transmission_AV=0 758 | Transmission_AV10=0 759 | Transmission_AV6=0 760 | Transmission_AV7=0 761 | Transmission_AV8=0 762 | Transmission_M5=0 763 | Transmission_M6=1 764 | Transmission_M7=0 765 | 766 | else: 767 | Transmission_A4=0 768 | Transmission_A5=0 769 | Transmission_A6=0 770 | Transmission_A7=0 771 | Transmission_A8=0 772 | Transmission_A9=0 773 | Transmission_AM5=0 774 | Transmission_AM6=0 775 | Transmission_AM7=0 776 | Transmission_AM8=0 777 | Transmission_AM9=0 778 | Transmission_AS10=0 779 | Transmission_AS4=0 780 | Transmission_AS5=0 781 | Transmission_AS6=0 782 | Transmission_AS7=0 783 | Transmission_AS8=0 784 | Transmission_AS9=0 785 | Transmission_AV=0 786 | Transmission_AV10=0 787 | Transmission_AV6=0 788 | Transmission_AV7=0 789 | Transmission_AV8=0 790 | Transmission_M5=0 791 | Transmission_M6=0 792 | Transmission_M7=1 793 | 794 | 795 | Fuel_Type=request.form['Fuel_Type'] 796 | if(Fuel_Type=='Type_E'): 797 | Fuel_Type_E=1 798 | Fuel_Type_X=0 799 | Fuel_Type_Z=0 800 | 801 | elif(Fuel_Type=='Type_X'): 802 | Fuel_Type_E=0 803 | Fuel_Type_X=1 804 | Fuel_Type_Z=0 805 | 806 | elif(Fuel_Type=='Type_Z'): 807 | Fuel_Type_E=0 808 | Fuel_Type_X=0 809 | Fuel_Type_Z=1 810 | 811 | else: 812 | Fuel_Type_E=0 813 | Fuel_Type_X=0 814 | Fuel_Type_Z=0 815 | 816 | 817 | def lr(Engine_Size, Cylinders, Fuel_Consumption_City,Fuel_Consumption_Hwy, Fuel_Consumption_Comb,Fuel_Consumption_Comb_mpg,Fuel_Type_E, Fuel_Type_X,Fuel_Type_Z, Transmission_A4, Transmission_A5, Transmission_A6,Transmission_A7, Transmission_A8, Transmission_A9,Transmission_AM5, Transmission_AM6, Transmission_AM7,Transmission_AM8, Transmission_AM9, Transmission_AS10,Transmission_AS4, Transmission_AS5, Transmission_AS6,Transmission_AS7, Transmission_AS8, Transmission_AS9,Transmission_AV, Transmission_AV10, Transmission_AV6,Transmission_AV7, Transmission_AV8, Transmission_M5,Transmission_M6, Transmission_M7, Make_Type_Luxury,Make_Type_Premium, Make_Type_Sports, Vehicle_Class_Type_SUV,Vehicle_Class_Type_Sedan, Vehicle_Class_Type_Truck): 818 | c=pd.DataFrame([Engine_Size, Cylinders, Fuel_Consumption_City,Fuel_Consumption_Hwy, Fuel_Consumption_Comb,Fuel_Consumption_Comb_mpg,Fuel_Type_E, Fuel_Type_X,Fuel_Type_Z, Transmission_A4, Transmission_A5, Transmission_A6,Transmission_A7, Transmission_A8, Transmission_A9,Transmission_AM5, Transmission_AM6, Transmission_AM7,Transmission_AM8, Transmission_AM9, Transmission_AS10,Transmission_AS4, Transmission_AS5, Transmission_AS6,Transmission_AS7, Transmission_AS8, Transmission_AS9,Transmission_AV, Transmission_AV10, Transmission_AV6,Transmission_AV7, Transmission_AV8, Transmission_M5,Transmission_M6, Transmission_M7, Make_Type_Luxury,Make_Type_Premium, Make_Type_Sports, Vehicle_Class_Type_SUV,Vehicle_Class_Type_Sedan, Vehicle_Class_Type_Truck]).T 819 | return model.predict(c) 820 | 821 | 822 | prediction=lr(Engine_Size, Cylinders, Fuel_Consumption_City,Fuel_Consumption_Hwy, Fuel_Consumption_Comb,Fuel_Consumption_Comb_mpg,Fuel_Type_E, Fuel_Type_X,Fuel_Type_Z, Transmission_A4, Transmission_A5, Transmission_A6,Transmission_A7, Transmission_A8, Transmission_A9,Transmission_AM5, Transmission_AM6, Transmission_AM7,Transmission_AM8, Transmission_AM9, Transmission_AS10,Transmission_AS4, Transmission_AS5, Transmission_AS6,Transmission_AS7, Transmission_AS8, Transmission_AS9,Transmission_AV, Transmission_AV10, Transmission_AV6,Transmission_AV7, Transmission_AV8, Transmission_M5,Transmission_M6, Transmission_M7, Make_Type_Luxury,Make_Type_Premium, Make_Type_Sports, Vehicle_Class_Type_SUV,Vehicle_Class_Type_Sedan, Vehicle_Class_Type_Truck) 823 | return render_template('index.html',prediction_text="Co2 Emissions by car is {}".format(np.round(prediction,2))) 824 | 825 | 826 | if __name__=="__main__": 827 | app.run(debug=True) 828 | 829 | --------------------------------------------------------------------------------