Μετά την προσπάθεια για την πρόβλεψη των 20 αριθμών με την τεχνική seq2seq (γραμμές), θα αλλάξουμε τεχνική και θα δούμε τα δεδομένα απο άλλη οπτική γωνία και θα τα εξετάσουμε ως στήλες δηλαδή τα ιδια δεδομένα θα τα διαβάζουμε κατακόρυφα και έχουμε 20 στήλες που κάθε μία περιέχει 10 αριθμούς.
After attempting to predict the 20 numbers using the seq2seq technique (rows), we will change our approach and look at the data from a different perspective, examining them as columns. This means we will read the same data vertically, with 20 columns, each containing 10 numbers: translation.
[66, 14, 30, 32, 8, 15, 7, 11, 33, 17, 9, 64, 74, 59, 35, 56, 52, 24, 51, 23],
[66, 36, 20, 44, 38, 52, 28, 80, 72, 21, 16, 63, 74, 33, 41, 34, 29, 77, 71, 37],
[11, 68, 64, 69, 13, 42, 62, 50, 30, 75, 2, 43, 29, 55, 39, 23, 74, 27, 22, 71],
[44, 3, 59, 26, 12, 53, 30, 6, 58, 41, 17, 1, 60, 19, 13, 34, 21, 31, 45, 8],
[56, 66, 10, 30, 5, 13, 31, 55, 63, 11, 14, 37, 17, 51, 24, 9, 29, 21, 2, 80],
[41, 34, 59, 51, 80, 50, 71, 68, 79, 12, 24, 49, 76, 10, 73, 23, 37, 56, 60, 21],
[36, 68, 23, 38, 28, 1, 73, 9, 63, 47, 11, 74, 50, 39, 26, 17, 7, 13, 77, 75],
[47, 11, 24, 43, 76, 8, 44, 51, 30, 2, 58, 34, 1, 32, 72, 28, 60, 38, 20, 64],
[76, 51, 55, 34, 23, 27, 61, 48, 4, 29, 74, 70, 3, 35, 21, 56, 60, 19, 38, 14],
[10, 35, 17, 15, 9, 80, 48, 32, 26, 14, 60, 29, 55, 61, 40, 76, 70, 24, 13, 77],θα μετατρέψουμε τα δεδομένα απο γραμμές σε στήλες.
We will convert the data from rows to columns.
We will convert the data from rows to columns.
import numpy as np
numbers = [
[66, 14, 30, 32, 8, 15, 7, 11, 33, 17, 9, 64, 74, 59, 35, 56, 52, 24, 51, 23],
[66, 36, 20, 44, 38, 52, 28, 80, 72, 21, 16, 63, 74, 33, 41, 34, 29, 77, 71, 37],
[11, 68, 64, 69, 13, 42, 62, 50, 30, 75, 2, 43, 29, 55, 39, 23, 74, 27, 22, 71],
[44, 3, 59, 26, 12, 53, 30, 6, 58, 41, 17, 1, 60, 19, 13, 34, 21, 31, 45, 8],
[56, 66, 10, 30, 5, 13, 31, 55, 63, 11, 14, 37, 17, 51, 24, 9, 29, 21, 2, 80],
[41, 34, 59, 51, 80, 50, 71, 68, 79, 12, 24, 49, 76, 10, 73, 23, 37, 56, 60, 21],
[36, 68, 23, 38, 28, 1, 73, 9, 63, 47, 11, 74, 50, 39, 26, 17, 7, 13, 77, 75],
[47, 11, 24, 43, 76, 8, 44, 51, 30, 2, 58, 34, 1, 32, 72, 28, 60, 38, 20, 64],
[76, 51, 55, 34, 23, 27, 61, 48, 4, 29, 74, 70, 3, 35, 21, 56, 60, 19, 38, 14],
[10, 35, 17, 15, 9, 80, 48, 32, 26, 14, 60, 29, 55, 61, 40, 76, 70, 24, 13, 77],
]
transposed = np.array(list(zip(*numbers)))
for i, column in enumerate(transposed):
globals()[f"dataset_{i}"] = np.array(column)
print(f"dataset_{i} = np.array({globals()[f'dataset_{i}'].tolist()})")Αποτελέσματα:
Results:
Results:
dataset_0 = np.array([66, 66, 11, 44, 56, 41, 36, 47, 76, 10])
dataset_1 = np.array([14, 36, 68, 3, 66, 34, 68, 11, 51, 35])
dataset_2 = np.array([30, 20, 64, 59, 10, 59, 23, 24, 55, 17])
dataset_3 = np.array([32, 44, 69, 26, 30, 51, 38, 43, 34, 15])
dataset_4 = np.array([8, 38, 13, 12, 5, 80, 28, 76, 23, 9])
dataset_5 = np.array([15, 52, 42, 53, 13, 50, 1, 8, 27, 80])
dataset_6 = np.array([7, 28, 62, 30, 31, 71, 73, 44, 61, 48])
dataset_7 = np.array([11, 80, 50, 6, 55, 68, 9, 51, 48, 32])
dataset_8 = np.array([33, 72, 30, 58, 63, 79, 63, 30, 4, 26])
dataset_9 = np.array([17, 21, 75, 41, 11, 12, 47, 2, 29, 14])
dataset_10 = np.array([9, 16, 2, 17, 14, 24, 11, 58, 74, 60])
dataset_11 = np.array([64, 63, 43, 1, 37, 49, 74, 34, 70, 29])
dataset_12 = np.array([74, 74, 29, 60, 17, 76, 50, 1, 3, 55])
dataset_13 = np.array([59, 33, 55, 19, 51, 10, 39, 32, 35, 61])
dataset_14 = np.array([35, 41, 39, 13, 24, 73, 26, 72, 21, 40])
dataset_15 = np.array([56, 34, 23, 34, 9, 23, 17, 28, 56, 76])
dataset_16 = np.array([52, 29, 74, 21, 29, 37, 7, 60, 60, 70])
dataset_17 = np.array([24, 77, 27, 31, 21, 56, 13, 38, 19, 24])
dataset_18 = np.array([51, 71, 22, 45, 2, 60, 77, 20, 38, 13])
dataset_19 = np.array([23, 37, 71, 8, 80, 21, 75, 64, 14, 77])Δίλημμα: να βάλουμε τα δεδομένα σε αύξουσα σειρά? αν τα βάλουμε θα αλλάξουμε την στήλη στην οποία αντιστοιχεί ο αριθμός, αλλά θα βοηθήσουμε τον αλγόριθμο να επεξεργαστεί τα δεδομένα καλύτερα.
Dilemma: Should we sort the data in ascending order? If we do, it will change the column to which each number corresponds, but it will help the algorithm process the data better.
θα το δοκιμάσουμε και ας κρατήσουμε επιφυλάξεις για τα αποτελέσματα.
We will try it and remain cautious about the results
Dilemma: Should we sort the data in ascending order? If we do, it will change the column to which each number corresponds, but it will help the algorithm process the data better.
θα το δοκιμάσουμε και ας κρατήσουμε επιφυλάξεις για τα αποτελέσματα.
We will try it and remain cautious about the results
data = [
[66, 14, 30, 32, 8, 15, 7, 11, 33, 17, 9, 64, 74, 59, 35, 56, 52, 24, 51, 23],
[66, 36, 20, 44, 38, 52, 28, 80, 72, 21, 16, 63, 74, 33, 41, 34, 29, 77, 71, 37],
[11, 68, 64, 69, 13, 42, 62, 50, 30, 75, 2, 43, 29, 55, 39, 23, 74, 27, 22, 71],
[44, 3, 59, 26, 12, 53, 30, 6, 58, 41, 17, 1, 60, 19, 13, 34, 21, 31, 45, 8],
[56, 66, 10, 30, 5, 13, 31, 55, 63, 11, 14, 37, 17, 51, 24, 9, 29, 21, 2, 80],
[41, 34, 59, 51, 80, 50, 71, 68, 79, 12, 24, 49, 76, 10, 73, 23, 37, 56, 60, 21],
[36, 68, 23, 38, 28, 1, 73, 9, 63, 47, 11, 74, 50, 39, 26, 17, 7, 13, 77, 75],
[47, 11, 24, 43, 76, 8, 44, 51, 30, 2, 58, 34, 1, 32, 72, 28, 60, 38, 20, 64],
[76, 51, 55, 34, 23, 27, 61, 48, 4, 29, 74, 70, 3, 35, 21, 56, 60, 19, 38, 14],
[10, 35, 17, 15, 9, 80, 48, 32, 26, 14, 60, 29, 55, 61, 40, 76, 70, 24, 13, 77],
]
# Ταξινόμηση κάθε λίστας στο data
sorted_data = [sorted(sublist) for sublist in data]
# Εκτύπωση των ταξινομημένων λιστών
for sublist in sorted_data:
print(str(sublist) + ",")Αποτέλεσμα:
Results:
Results:
[7, 8, 9, 11, 14, 15, 17, 23, 24, 30, 32, 33, 35, 51, 52, 56, 59, 64, 66, 74],
[16, 20, 21, 28, 29, 33, 34, 36, 37, 38, 41, 44, 52, 63, 66, 71, 72, 74, 77, 80],
[2, 11, 13, 22, 23, 27, 29, 30, 39, 42, 43, 50, 55, 62, 64, 68, 69, 71, 74, 75],
[1, 3, 6, 8, 12, 13, 17, 19, 21, 26, 30, 31, 34, 41, 44, 45, 53, 58, 59, 60],
[2, 5, 9, 10, 11, 13, 14, 17, 21, 24, 29, 30, 31, 37, 51, 55, 56, 63, 66, 80],
[10, 12, 21, 23, 24, 34, 37, 41, 49, 50, 51, 56, 59, 60, 68, 71, 73, 76, 79, 80],
[1, 7, 9, 11, 13, 17, 23, 26, 28, 36, 38, 39, 47, 50, 63, 68, 73, 74, 75, 77],
[1, 2, 8, 11, 20, 24, 28, 30, 32, 34, 38, 43, 44, 47, 51, 58, 60, 64, 72, 76],
[3, 4, 14, 19, 21, 23, 27, 29, 34, 35, 38, 48, 51, 55, 56, 60, 61, 70, 74, 76],
[9, 10, 13, 14, 15, 17, 24, 26, 29, 32, 35, 40, 48, 55, 60, 61, 70, 76, 77, 80],
import numpy as np
numbers = [[7, 8, 9, 11, 14, 15, 17, 23, 24, 30, 32, 33, 35, 51, 52, 56, 59, 64, 66, 74],
[16, 20, 21, 28, 29, 33, 34, 36, 37, 38, 41, 44, 52, 63, 66, 71, 72, 74, 77, 80],
[2, 11, 13, 22, 23, 27, 29, 30, 39, 42, 43, 50, 55, 62, 64, 68, 69, 71, 74, 75],
[1, 3, 6, 8, 12, 13, 17, 19, 21, 26, 30, 31, 34, 41, 44, 45, 53, 58, 59, 60],
[2, 5, 9, 10, 11, 13, 14, 17, 21, 24, 29, 30, 31, 37, 51, 55, 56, 63, 66, 80],
[10, 12, 21, 23, 24, 34, 37, 41, 49, 50, 51, 56, 59, 60, 68, 71, 73, 76, 79, 80],
[1, 7, 9, 11, 13, 17, 23, 26, 28, 36, 38, 39, 47, 50, 63, 68, 73, 74, 75, 77],
[1, 2, 8, 11, 20, 24, 28, 30, 32, 34, 38, 43, 44, 47, 51, 58, 60, 64, 72, 76],
[3, 4, 14, 19, 21, 23, 27, 29, 34, 35, 38, 48, 51, 55, 56, 60, 61, 70, 74, 76],
[9, 10, 13, 14, 15, 17, 24, 26, 29, 32, 35, 40, 48, 55, 60, 61, 70, 76, 77, 80],
]
# Μετατροπή γραμμών σε στήλες
transposed = np.array(list(zip(*numbers)))
# Δημιουργία μεταβλητών dataset_0 έως dataset_19 και εκτύπωση τους.
for i, column in enumerate(transposed):
globals()[f"dataset_{i}"] = np.array(column)
print(f"dataset_{i} = np.array({globals()[f'dataset_{i}'].tolist()})")Αποτελέσματα:
Μετά την προσπάθεια πρόβλεψης με την τεχνική seq2seq, η νέα προσέγγιση επικεντρώνεται στην εξέταση των δεδομένων ως στήλες αντί για γραμμές. Αυτό σημαίνει ότι τα ίδια δεδομένα θα αναλυθούν κατακόρυφα, με κάθε στήλη να περιέχει 10 αριθμούς. Σε αυτή τη νέα δομή, οι αριθμοί αναδιατάσσονται από γραμμές σε στήλες, και κάθε στήλη αποτελείται από δεδομένα που προέρχονται από διαφορετικές γραμμές του αρχικού σετ δεδομένων. Η στοχευμένη ανάλυση στις στήλες μπορεί να αποκαλύψει νέες διαστάσεις και σχέσεις μεταξύ των αριθμών, αυξάνοντας τις πιθανότητες επιτυχημένης πρόβλεψης.
dataset_0 = np.array([7, 16, 2, 1, 2, 10, 1, 1, 3, 9])
dataset_1 = np.array([8, 20, 11, 3, 5, 12, 7, 2, 4, 10])
dataset_2 = np.array([9, 21, 13, 6, 9, 21, 9, 8, 14, 13])
dataset_3 = np.array([11, 28, 22, 8, 10, 23, 11, 11, 19, 14])
dataset_4 = np.array([14, 29, 23, 12, 11, 24, 13, 20, 21, 15])
dataset_5 = np.array([15, 33, 27, 13, 13, 34, 17, 24, 23, 17])
dataset_6 = np.array([17, 34, 29, 17, 14, 37, 23, 28, 27, 24])
dataset_7 = np.array([23, 36, 30, 19, 17, 41, 26, 30, 29, 26])
dataset_8 = np.array([24, 37, 39, 21, 21, 49, 28, 32, 34, 29])
dataset_9 = np.array([30, 38, 42, 26, 24, 50, 36, 34, 35, 32])
dataset_10 = np.array([32, 41, 43, 30, 29, 51, 38, 38, 38, 35])
dataset_11 = np.array([33, 44, 50, 31, 30, 56, 39, 43, 48, 40])
dataset_12 = np.array([35, 52, 55, 34, 31, 59, 47, 44, 51, 48])
dataset_13 = np.array([51, 63, 62, 41, 37, 60, 50, 47, 55, 55])
dataset_14 = np.array([52, 66, 64, 44, 51, 68, 63, 51, 56, 60])
dataset_15 = np.array([56, 71, 68, 45, 55, 71, 68, 58, 60, 61])
dataset_16 = np.array([59, 72, 69, 53, 56, 73, 73, 60, 61, 70])
dataset_17 = np.array([64, 74, 71, 58, 63, 76, 74, 64, 70, 76])
dataset_18 = np.array([66, 77, 74, 59, 66, 79, 75, 72, 74, 77])
dataset_19 = np.array([74, 80, 75, 60, 80, 80, 77, 76, 76, 80])
