├── 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 | [](https://colab.research.google.com/github/d0r1h/CO2-Emission-by-Cars/blob/main/notebook/co2-emission-by-cars.ipynb) | [](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 |
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 |
--------------------------------------------------------------------------------