Amazing-Python-Scripts
/
PowerPlantEnergyPrediction.ipynb
544 строки · 20.2 Кб
1{
2"nbformat": 4,
3"nbformat_minor": 0,
4"metadata": {
5"colab": {
6"provenance": []
7},
8"kernelspec": {
9"name": "python3",
10"display_name": "Python 3"
11},
12"language_info": {
13"name": "python"
14}
15},
16"cells": [
17{
18"cell_type": "markdown",
19"source": [
20"Libraries"
21],
22"metadata": {
23"id": "9We4CppNzzH4"
24}
25},
26{
27"cell_type": "code",
28"source": [
29"!pip install openpyxl\n"
30],
31"metadata": {
32"colab": {
33"base_uri": "https://localhost:8080/"
34},
35"id": "Md5F_0AJ01LG",
36"outputId": "c55fb766-ac02-4a9c-85c2-66a5b9a2067f"
37},
38"execution_count": 61,
39"outputs": [
40{
41"output_type": "stream",
42"name": "stdout",
43"text": [
44"Requirement already satisfied: openpyxl in /usr/local/lib/python3.10/dist-packages (3.0.10)\n",
45"Requirement already satisfied: et-xmlfile in /usr/local/lib/python3.10/dist-packages (from openpyxl) (1.1.0)\n"
46]
47}
48]
49},
50{
51"cell_type": "code",
52"execution_count": 62,
53"metadata": {
54"id": "qEjhMr3YlJx2"
55},
56"outputs": [],
57"source": [
58"import numpy as np\n",
59"import pandas as pd\n",
60"import tensorflow\n",
61"from sklearn.model_selection import train_test_split\n",
62"from sklearn.metrics import mean_squared_error, r2_score\n",
63"from sklearn.metrics import mean_absolute_error, mean_squared_error\n",
64"from sklearn.metrics import classification_report"
65]
66},
67{
68"cell_type": "markdown",
69"source": [
70"Dataset"
71],
72"metadata": {
73"id": "6Bbk5ptk1m3A"
74}
75},
76{
77"cell_type": "code",
78"source": [
79"df = pd.read_csv(\"df.csv\")"
80],
81"metadata": {
82"id": "pcHYjPgi0Y9x"
83},
84"execution_count": 78,
85"outputs": []
86},
87{
88"cell_type": "code",
89"source": [
90"x=df.iloc[:,:-1].values"
91],
92"metadata": {
93"id": "Auy4aHR11pWd"
94},
95"execution_count": 64,
96"outputs": []
97},
98{
99"cell_type": "code",
100"source": [
101"y=df.iloc[:,-1].values"
102],
103"metadata": {
104"id": "ZjrgV-f-2GF-"
105},
106"execution_count": 65,
107"outputs": []
108},
109{
110"cell_type": "code",
111"source": [
112"x_train,x_test,y_train,y_test=train_test_split(x,y,test_size=0.2,random_state=0)"
113],
114"metadata": {
115"id": "y8MjUB4c2p9N"
116},
117"execution_count": 66,
118"outputs": []
119},
120{
121"cell_type": "markdown",
122"source": [
123"neural network"
124],
125"metadata": {
126"id": "7IR4M2EW3Qeu"
127}
128},
129{
130"cell_type": "code",
131"source": [
132"model=tensorflow.keras.models.Sequential()"
133],
134"metadata": {
135"id": "Y1YH5r_j3S7N"
136},
137"execution_count": 67,
138"outputs": []
139},
140{
141"cell_type": "code",
142"source": [
143"model.add(tensorflow.keras.layers.Dense(units=6,activation=\"relu\"))"
144],
145"metadata": {
146"id": "ppzTk0TI4Cfs"
147},
148"execution_count": 68,
149"outputs": []
150},
151{
152"cell_type": "code",
153"source": [
154"model.add(tensorflow.keras.layers.Dense(units=6,activation=\"relu\"))"
155],
156"metadata": {
157"id": "HFNa7nRr45m5"
158},
159"execution_count": 69,
160"outputs": []
161},
162{
163"cell_type": "code",
164"source": [
165"model.add(tensorflow.keras.layers.Dense(units=1))"
166],
167"metadata": {
168"id": "tmRWa-0_4-nz"
169},
170"execution_count": 70,
171"outputs": []
172},
173{
174"cell_type": "code",
175"source": [
176"model.compile(optimizer=\"adam\",loss=\"mean_squared_error\")"
177],
178"metadata": {
179"id": "8IjKMsQb5fGJ"
180},
181"execution_count": 71,
182"outputs": []
183},
184{
185"cell_type": "code",
186"source": [
187"model.fit(x_train,y_train,epochs=100,batch_size=32)"
188],
189"metadata": {
190"colab": {
191"base_uri": "https://localhost:8080/"
192},
193"id": "I9biMFH66IlQ",
194"outputId": "04829f7e-2b1d-4646-a43b-8434644d187c"
195},
196"execution_count": 72,
197"outputs": [
198{
199"output_type": "stream",
200"name": "stdout",
201"text": [
202"Epoch 1/100\n",
203"240/240 [==============================] - 2s 3ms/step - loss: 18891.9082\n",
204"Epoch 2/100\n",
205"240/240 [==============================] - 1s 3ms/step - loss: 372.1061\n",
206"Epoch 3/100\n",
207"240/240 [==============================] - 1s 3ms/step - loss: 363.0872\n",
208"Epoch 4/100\n",
209"240/240 [==============================] - 0s 2ms/step - loss: 351.6482\n",
210"Epoch 5/100\n",
211"240/240 [==============================] - 0s 2ms/step - loss: 338.2985\n",
212"Epoch 6/100\n",
213"240/240 [==============================] - 0s 2ms/step - loss: 322.5121\n",
214"Epoch 7/100\n",
215"240/240 [==============================] - 1s 2ms/step - loss: 305.7658\n",
216"Epoch 8/100\n",
217"240/240 [==============================] - 0s 2ms/step - loss: 286.8841\n",
218"Epoch 9/100\n",
219"240/240 [==============================] - 1s 2ms/step - loss: 267.0470\n",
220"Epoch 10/100\n",
221"240/240 [==============================] - 0s 2ms/step - loss: 246.2165\n",
222"Epoch 11/100\n",
223"240/240 [==============================] - 0s 2ms/step - loss: 224.3856\n",
224"Epoch 12/100\n",
225"240/240 [==============================] - 0s 2ms/step - loss: 201.9735\n",
226"Epoch 13/100\n",
227"240/240 [==============================] - 0s 2ms/step - loss: 179.4520\n",
228"Epoch 14/100\n",
229"240/240 [==============================] - 0s 2ms/step - loss: 157.1615\n",
230"Epoch 15/100\n",
231"240/240 [==============================] - 1s 2ms/step - loss: 135.9446\n",
232"Epoch 16/100\n",
233"240/240 [==============================] - 0s 2ms/step - loss: 115.7659\n",
234"Epoch 17/100\n",
235"240/240 [==============================] - 0s 2ms/step - loss: 97.5440\n",
236"Epoch 18/100\n",
237"240/240 [==============================] - 0s 2ms/step - loss: 81.3519\n",
238"Epoch 19/100\n",
239"240/240 [==============================] - 1s 2ms/step - loss: 68.9832\n",
240"Epoch 20/100\n",
241"240/240 [==============================] - 0s 2ms/step - loss: 58.9876\n",
242"Epoch 21/100\n",
243"240/240 [==============================] - 0s 2ms/step - loss: 50.7086\n",
244"Epoch 22/100\n",
245"240/240 [==============================] - 0s 2ms/step - loss: 44.7322\n",
246"Epoch 23/100\n",
247"240/240 [==============================] - 0s 2ms/step - loss: 39.6667\n",
248"Epoch 24/100\n",
249"240/240 [==============================] - 1s 3ms/step - loss: 35.7800\n",
250"Epoch 25/100\n",
251"240/240 [==============================] - 1s 3ms/step - loss: 33.4343\n",
252"Epoch 26/100\n",
253"240/240 [==============================] - 1s 3ms/step - loss: 31.3399\n",
254"Epoch 27/100\n",
255"240/240 [==============================] - 1s 3ms/step - loss: 30.3849\n",
256"Epoch 28/100\n",
257"240/240 [==============================] - 1s 3ms/step - loss: 29.8996\n",
258"Epoch 29/100\n",
259"240/240 [==============================] - 0s 2ms/step - loss: 28.8913\n",
260"Epoch 30/100\n",
261"240/240 [==============================] - 0s 2ms/step - loss: 28.5701\n",
262"Epoch 31/100\n",
263"240/240 [==============================] - 0s 2ms/step - loss: 28.9188\n",
264"Epoch 32/100\n",
265"240/240 [==============================] - 0s 2ms/step - loss: 28.1954\n",
266"Epoch 33/100\n",
267"240/240 [==============================] - 0s 2ms/step - loss: 28.7027\n",
268"Epoch 34/100\n",
269"240/240 [==============================] - 0s 2ms/step - loss: 27.7077\n",
270"Epoch 35/100\n",
271"240/240 [==============================] - 0s 2ms/step - loss: 27.7196\n",
272"Epoch 36/100\n",
273"240/240 [==============================] - 0s 2ms/step - loss: 27.7813\n",
274"Epoch 37/100\n",
275"240/240 [==============================] - 0s 2ms/step - loss: 27.8028\n",
276"Epoch 38/100\n",
277"240/240 [==============================] - 0s 2ms/step - loss: 27.7371\n",
278"Epoch 39/100\n",
279"240/240 [==============================] - 0s 2ms/step - loss: 27.1614\n",
280"Epoch 40/100\n",
281"240/240 [==============================] - 0s 2ms/step - loss: 27.6717\n",
282"Epoch 41/100\n",
283"240/240 [==============================] - 0s 2ms/step - loss: 27.4455\n",
284"Epoch 42/100\n",
285"240/240 [==============================] - 0s 2ms/step - loss: 27.3662\n",
286"Epoch 43/100\n",
287"240/240 [==============================] - 0s 2ms/step - loss: 27.1483\n",
288"Epoch 44/100\n",
289"240/240 [==============================] - 0s 2ms/step - loss: 27.0365\n",
290"Epoch 45/100\n",
291"240/240 [==============================] - 0s 2ms/step - loss: 27.3801\n",
292"Epoch 46/100\n",
293"240/240 [==============================] - 1s 2ms/step - loss: 26.6723\n",
294"Epoch 47/100\n",
295"240/240 [==============================] - 1s 2ms/step - loss: 28.1486\n",
296"Epoch 48/100\n",
297"240/240 [==============================] - 1s 2ms/step - loss: 27.1633\n",
298"Epoch 49/100\n",
299"240/240 [==============================] - 1s 3ms/step - loss: 26.8588\n",
300"Epoch 50/100\n",
301"240/240 [==============================] - 1s 3ms/step - loss: 27.7017\n",
302"Epoch 51/100\n",
303"240/240 [==============================] - 1s 3ms/step - loss: 26.8519\n",
304"Epoch 52/100\n",
305"240/240 [==============================] - 1s 3ms/step - loss: 27.2500\n",
306"Epoch 53/100\n",
307"240/240 [==============================] - 1s 2ms/step - loss: 28.3920\n",
308"Epoch 54/100\n",
309"240/240 [==============================] - 0s 2ms/step - loss: 27.5960\n",
310"Epoch 55/100\n",
311"240/240 [==============================] - 0s 2ms/step - loss: 27.4172\n",
312"Epoch 56/100\n",
313"240/240 [==============================] - 0s 2ms/step - loss: 26.9658\n",
314"Epoch 57/100\n",
315"240/240 [==============================] - 0s 2ms/step - loss: 26.9705\n",
316"Epoch 58/100\n",
317"240/240 [==============================] - 0s 2ms/step - loss: 27.2041\n",
318"Epoch 59/100\n",
319"240/240 [==============================] - 0s 2ms/step - loss: 26.9342\n",
320"Epoch 60/100\n",
321"240/240 [==============================] - 0s 2ms/step - loss: 27.3654\n",
322"Epoch 61/100\n",
323"240/240 [==============================] - 0s 2ms/step - loss: 26.9761\n",
324"Epoch 62/100\n",
325"240/240 [==============================] - 0s 2ms/step - loss: 26.4546\n",
326"Epoch 63/100\n",
327"240/240 [==============================] - 0s 2ms/step - loss: 26.6626\n",
328"Epoch 64/100\n",
329"240/240 [==============================] - 0s 2ms/step - loss: 27.4862\n",
330"Epoch 65/100\n",
331"240/240 [==============================] - 0s 2ms/step - loss: 27.1455\n",
332"Epoch 66/100\n",
333"240/240 [==============================] - 0s 2ms/step - loss: 26.9684\n",
334"Epoch 67/100\n",
335"240/240 [==============================] - 0s 2ms/step - loss: 26.8070\n",
336"Epoch 68/100\n",
337"240/240 [==============================] - 1s 3ms/step - loss: 27.2543\n",
338"Epoch 69/100\n",
339"240/240 [==============================] - 1s 2ms/step - loss: 26.6273\n",
340"Epoch 70/100\n",
341"240/240 [==============================] - 1s 2ms/step - loss: 26.7146\n",
342"Epoch 71/100\n",
343"240/240 [==============================] - 0s 2ms/step - loss: 26.9732\n",
344"Epoch 72/100\n",
345"240/240 [==============================] - 1s 2ms/step - loss: 26.9019\n",
346"Epoch 73/100\n",
347"240/240 [==============================] - 1s 3ms/step - loss: 27.0174\n",
348"Epoch 74/100\n",
349"240/240 [==============================] - 1s 3ms/step - loss: 26.8273\n",
350"Epoch 75/100\n",
351"240/240 [==============================] - 1s 3ms/step - loss: 27.4103\n",
352"Epoch 76/100\n",
353"240/240 [==============================] - 1s 3ms/step - loss: 27.5924\n",
354"Epoch 77/100\n",
355"240/240 [==============================] - 1s 3ms/step - loss: 26.7646\n",
356"Epoch 78/100\n",
357"240/240 [==============================] - 0s 2ms/step - loss: 27.6109\n",
358"Epoch 79/100\n",
359"240/240 [==============================] - 0s 2ms/step - loss: 27.3981\n",
360"Epoch 80/100\n",
361"240/240 [==============================] - 1s 2ms/step - loss: 26.7007\n",
362"Epoch 81/100\n",
363"240/240 [==============================] - 0s 2ms/step - loss: 27.2811\n",
364"Epoch 82/100\n",
365"240/240 [==============================] - 0s 2ms/step - loss: 27.1437\n",
366"Epoch 83/100\n",
367"240/240 [==============================] - 0s 2ms/step - loss: 27.5796\n",
368"Epoch 84/100\n",
369"240/240 [==============================] - 0s 2ms/step - loss: 27.1708\n",
370"Epoch 85/100\n",
371"240/240 [==============================] - 1s 2ms/step - loss: 26.5357\n",
372"Epoch 86/100\n",
373"240/240 [==============================] - 1s 2ms/step - loss: 26.7545\n",
374"Epoch 87/100\n",
375"240/240 [==============================] - 1s 2ms/step - loss: 27.4954\n",
376"Epoch 88/100\n",
377"240/240 [==============================] - 0s 2ms/step - loss: 26.8839\n",
378"Epoch 89/100\n",
379"240/240 [==============================] - 1s 2ms/step - loss: 27.7122\n",
380"Epoch 90/100\n",
381"240/240 [==============================] - 0s 2ms/step - loss: 27.2991\n",
382"Epoch 91/100\n",
383"240/240 [==============================] - 0s 2ms/step - loss: 26.5668\n",
384"Epoch 92/100\n",
385"240/240 [==============================] - 0s 2ms/step - loss: 27.3938\n",
386"Epoch 93/100\n",
387"240/240 [==============================] - 1s 2ms/step - loss: 26.4718\n",
388"Epoch 94/100\n",
389"240/240 [==============================] - 0s 2ms/step - loss: 26.8271\n",
390"Epoch 95/100\n",
391"240/240 [==============================] - 0s 2ms/step - loss: 27.4552\n",
392"Epoch 96/100\n",
393"240/240 [==============================] - 0s 2ms/step - loss: 27.3914\n",
394"Epoch 97/100\n",
395"240/240 [==============================] - 1s 3ms/step - loss: 26.8037\n",
396"Epoch 98/100\n",
397"240/240 [==============================] - 1s 3ms/step - loss: 27.6068\n",
398"Epoch 99/100\n",
399"240/240 [==============================] - 1s 3ms/step - loss: 26.8178\n",
400"Epoch 100/100\n",
401"240/240 [==============================] - 1s 3ms/step - loss: 27.0809\n"
402]
403},
404{
405"output_type": "execute_result",
406"data": {
407"text/plain": [
408"<keras.callbacks.History at 0x7d2bcab69060>"
409]
410},
411"metadata": {},
412"execution_count": 72
413}
414]
415},
416{
417"cell_type": "code",
418"source": [
419"model.summary()"
420],
421"metadata": {
422"colab": {
423"base_uri": "https://localhost:8080/"
424},
425"id": "6BEkt3xN_Fgx",
426"outputId": "3ed39ad9-8cbd-4c2c-d322-f67824363224"
427},
428"execution_count": 77,
429"outputs": [
430{
431"output_type": "stream",
432"name": "stdout",
433"text": [
434"Model: \"sequential_3\"\n",
435"_________________________________________________________________\n",
436" Layer (type) Output Shape Param # \n",
437"=================================================================\n",
438" dense_6 (Dense) (None, 6) 30 \n",
439" \n",
440" dense_7 (Dense) (None, 6) 42 \n",
441" \n",
442" dense_8 (Dense) (None, 1) 7 \n",
443" \n",
444"=================================================================\n",
445"Total params: 79\n",
446"Trainable params: 79\n",
447"Non-trainable params: 0\n",
448"_________________________________________________________________\n"
449]
450}
451]
452},
453{
454"cell_type": "code",
455"source": [
456"y_pred=model.predict(x_test)"
457],
458"metadata": {
459"colab": {
460"base_uri": "https://localhost:8080/"
461},
462"id": "GRDj7P4B7H4X",
463"outputId": "eb6df03b-52c8-4a28-f150-8d081ca85544"
464},
465"execution_count": 73,
466"outputs": [
467{
468"output_type": "stream",
469"name": "stdout",
470"text": [
471"60/60 [==============================] - 0s 1ms/step\n"
472]
473}
474]
475},
476{
477"cell_type": "code",
478"source": [
479"np.set_printoptions(precision=4)\n",
480"print(np.concatenate((y_pred.reshape(len(y_pred),1), y_test.reshape(len(y_test),1)),1))"
481],
482"metadata": {
483"colab": {
484"base_uri": "https://localhost:8080/"
485},
486"id": "0OpwE4h_9Q2i",
487"outputId": "23f712f9-9db3-46e5-96a6-9d95b030121a"
488},
489"execution_count": 74,
490"outputs": [
491{
492"output_type": "stream",
493"name": "stdout",
494"text": [
495"[[432.1042 431.23 ]\n",
496" [463.1646 460.01 ]\n",
497" [466.6829 461.14 ]\n",
498" ...\n",
499" [473.9019 473.26 ]\n",
500" [440.6333 438. ]\n",
501" [459.8633 463.28 ]]\n"
502]
503}
504]
505},
506{
507"cell_type": "code",
508"source": [
509"\n",
510"mse = mean_squared_error(y_test, y_pred)\n",
511"\n",
512"rmse = mean_squared_error(y_test, y_pred, squared=False)\n",
513"\n",
514"\n",
515"r2 = r2_score(y_test, y_pred)\n",
516"\n",
517"print(\"Mean Absolute Error (MAE):\", mean_absolute_error(y_test, y_pred))\n",
518"print(\"Mean Squared Error (MSE):\", mse)\n",
519"print(\"Root Mean Squared Error (RMSE):\", rmse)\n",
520"print(\"R-squared (R2) score:\", r2)\n"
521],
522"metadata": {
523"colab": {
524"base_uri": "https://localhost:8080/"
525},
526"id": "c2gZnKLO9oJr",
527"outputId": "4bb6cf56-d275-4f01-8cd7-3c46d3e9b958"
528},
529"execution_count": 75,
530"outputs": [
531{
532"output_type": "stream",
533"name": "stdout",
534"text": [
535"Mean Absolute Error (MAE): 4.022176704366877\n",
536"Mean Squared Error (MSE): 25.210623634126183\n",
537"Root Mean Squared Error (RMSE): 5.021018186994166\n",
538"R-squared (R2) score: 0.9138062491015191\n"
539]
540}
541]
542}
543]
544}