Professional Documents
Culture Documents
Loadalgarve MLP
Loadalgarve MLP
Loadalgarve MLP
[ ]: import numpy as np
import pandas as pd
from scipy.io import loadmat
data_set = loadmat("LCAlgarve.mat")
mat = {k: v for k, v in data_set.items() if k[0] != '_'}
data = pd.DataFrame({k: pd.Series(v[:, 0]) for k, v in mat.items()})
data.to_csv("example.csv")
[ ]: df = pd.read_csv('example.csv')
df.dtypes
[ ]: Unnamed: 0 int64
DayCode1 float64
DayCode2 float64
Occupation1 float64
Occupation2 int64
Power1 float64
Power2 float64
dtype: object
[ ]: df.shape
[ ]: (1751, 7)
[ ]: df.isnull().any()
[ ]: Unnamed: 0 False
DayCode1 True
DayCode2 False
Occupation1 True
Occupation2 False
Power1 True
Power2 False
dtype: bool
1
[ ]: df.head()
Power2
0 0.747135
1 1.370311
2 0.759630
3 1.125687
4 1.910926
[ ]: df.isnull().any()
[ ]: Unnamed: 0 False
DayCode1 True
DayCode2 False
Occupation1 True
Occupation2 False
Power1 True
Power2 False
dtype: bool
[ ]: df.duplicated()
[ ]: 0 False
1 False
2 False
3 False
4 False
…
1746 False
1747 False
1748 False
1749 False
1750 False
Length: 1751, dtype: bool
DayCode1 float64
DayCode2 float64
Occupation1 float64
2
Occupation2 int64
Power1 float64
Power2 float64
dtype: object
[ ]: import sklearn
from sklearn import preprocessing
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import classification_report, confusion_matrix
[ ]: # https://gist.githubusercontent.com/rupak-roy/edd1afa3d07bb928f70df5a344a08c6a/
↪raw/20dfe5f218815ad28e60db1d065e009045f3e0fa/
↪Multi-Layer%20Perception%20(MLP)%20for%20time%20series%20forecasting
dataset = data2.values
data = dataset.flatten()
raw_seq = data.tolist()
3
seq_x, seq_y = sequence[i:end_ix], sequence[end_ix]
X.append(seq_x)
y.append(seq_y)
return array(X), array(y)
# define model
model = Sequential()
model.add(Dense(150, activation='relu', input_dim=n_steps))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse', metrics =['accuracy'])
C:\Users\iamro\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n
2kfra8p0\LocalCache\local-packages\Python311\site-
packages\keras\src\layers\core\dense.py:88: UserWarning: Do not pass an
`input_shape`/`input_dim` argument to a layer. When using Sequential models,
prefer using an `Input(shape)` object as the first layer in the model instead.
super().__init__(activity_regularizer=activity_regularizer, **kwargs)
[ ]: # fit model
Epoch 1/40
165/165 �������������������� 1s 943us/step -
accuracy: 0.0552 - loss: 0.9641
Epoch 2/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0526 - loss: 0.1490
Epoch 3/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0535 - loss: 0.1530
Epoch 4/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0500 - loss: 0.1494
Epoch 5/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0551 - loss: 0.1623
Epoch 6/40
4
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0558 - loss: 0.1314
Epoch 7/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0516 - loss: 0.1423
Epoch 8/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0514 - loss: 0.1502
Epoch 9/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0533 - loss: 0.1519
Epoch 10/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0502 - loss: 0.1419
Epoch 11/40
165/165 �������������������� 0s 964us/step -
accuracy: 0.0518 - loss: 0.1426
Epoch 12/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0503 - loss: 0.1524
Epoch 13/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0518 - loss: 0.1734
Epoch 14/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0537 - loss: 0.1584
Epoch 15/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0563 - loss: 0.1523
Epoch 16/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0548 - loss: 0.1581
Epoch 17/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0540 - loss: 0.1571
Epoch 18/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0594 - loss: 0.1407
Epoch 19/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0548 - loss: 0.1636
Epoch 20/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0634 - loss: 0.1570
Epoch 21/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0587 - loss: 0.1582
Epoch 22/40
5
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0467 - loss: 0.1653
Epoch 23/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0564 - loss: 0.1517
Epoch 24/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0584 - loss: 0.1477
Epoch 25/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0610 - loss: 0.1595
Epoch 26/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0521 - loss: 0.1462
Epoch 27/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0508 - loss: 0.1465
Epoch 28/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0550 - loss: 0.1374
Epoch 29/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0515 - loss: 0.1387
Epoch 30/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0588 - loss: 0.1497
Epoch 31/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0568 - loss: 0.1446
Epoch 32/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0557 - loss: 0.1574
Epoch 33/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0518 - loss: 0.1488
Epoch 34/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0504 - loss: 0.1515
Epoch 35/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0552 - loss: 0.1662
Epoch 36/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0524 - loss: 0.1371
Epoch 37/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0539 - loss: 0.1671
Epoch 38/40
6
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0544 - loss: 0.1384
Epoch 39/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0488 - loss: 0.1528
Epoch 40/40
165/165 �������������������� 0s 1ms/step -
accuracy: 0.0518 - loss: 0.1438