-
Notifications
You must be signed in to change notification settings - Fork 0
/
readme.txt
94 lines (64 loc) · 6.98 KB
/
readme.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/* readme.txt */
==========================================
(α) ΣΤΟΙΧΕΙΑ ΦΟΙΤΗΤΩΝ
==========================================
ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΣΙΚΟΥΡΗΣ | ΑΜ : 1115201800201
ΒΑΣΙΛΕΙΟΣ ΒΑΣΙΛΑΚΗΣ | ΑΜ : 1115201800018
==========================================
(β) ΤΙΤΛΟΣ ΚΑΙ ΠΕΡΙΓΡΑΦΗ ΠΡΟΓΡΑΜΜΑΤΟΣ
==========================================
Πρόγνωση τιμών μετοχών με χρήση αναδρομικού νευρωνικού δικτύου LSTM.
Ανίχνευση ανωμαλιών με χρήση autoencoding LSTM νευρωνικού δικτύου.
Convolutional autoencoder για απλούστευση αναπαράστασης των χρονοσειρών.
Αναζήτηση και συσταδοποίηση χρονοσειρών βάσει της νέας απλουστευμένης αναπαράστασης,
και σύγκριση με αποτελέσματα πριν την απλοποίηση, χρησιμοποιώντας αλγόριθμους
αναζήτησης και συσταδοποίησης προηγούμενης εργασίας.
==========================================
(γ) ΚΑΤΑΛΟΓΟΣ ΚΑΙ ΠΕΡΙΓΡΑΦΗ ΑΡΧΕΙΩΝ
==========================================
- forecast.py :
Η main για το (Α), για την πρόγνωση τιμών μετοχών με χρήση LSTM
- forecast_utils.py :
Βοηθητικές συναρτήσεις για την forecast.py, που ορίζουν το LSTM μοντέλο,
διασπούν το dataset σε training/validation set, που εκτελούν το training τόσο ανά
χρονοσειρά , όσο και στο σύνολο, και που τυπώνουν τις γραφικές παραστάσεις των αποτελεσμάτων.
- forecast.ipynb : Η λειτουργικότητα των παραπάνω 2 αρχείων, σε notebook του colab
- detect.py :
Η main για το (Β), για την ανίχνευση ανωμαλιών με χρήση LSTM autoencoder
- detect_utils.py :
Βοηθητικές συναρτήσεις για την detect.py, που ορίζουν το LSTM autoencoder μοντέλο,
διασπούν το dataset σε training/validation set, που εκτελούν το training στο σύνολο,
και που τυπώνουν τις γραφικές παραστάσεις των αποτελεσμάτων.
- detect.ipynb : H λειτουργικότητα των παραπάνω 2 αρχείων, σε notebook του colab
____________________________________________________________________________________________________________________________________________
ΣΤΟΝ ΦΑΚΕΛΟ content :
ΣΤΟΝ ΥΠΟΦΑΚΕΛΟ data: υπάρχει το αρχείο δεδομένων nasdaq2007_17.csv
ΣΤΟΝ ΥΠΟΦΑΚΕΛΟ models: υπάρχουν τα pre-trained μοντέλα για τα (Α),(Β),(Γ)
ΣΤΟΝ ΥΠΟΦΑΚΕΛΟ forecast : υπάρχουν τα pre-trained μοντέλα για το (Α)
ΣΤΟΝ ΥΠΟΦΑΚΕΛΟ detect : υπάρχει το pre-trained μοντέλο για το (B)
ΣΤΟΝ ΥΠΟΦΑΚΕΛΟ reduce : υπάρχει το pre-trained μοντέλο για το (Γ)
____________________________________________________________________________________________________________________________________________
=======================================
(δ) ΟΔΗΓΙΕΣ ΕΚΤΕΛΕΣΗΣ
=======================================
- Εντολή εκτέλεσης για το (Α) : python forecast.py –d <dataset> -n <number of time series selected>
- Εντολή εκτέλεσης για το (Β) : python detect.py –d <dataset> -n <number of time series selected> -mae <error value as double>
- Εντολή εκτέλεση για το (Γ) : python reduce.py –d <dataset> -q <queryset> -od <output_dataset_file> -oq <output_query_file>
για τα (Α), (Β) και (Γ) default συμπεριφορά είναι να χρησιμοποιούν pre-trained μοντέλα. Για εκπαίδευση, δίνεται μια επιπλέον προαιρετική παράμετρος -train.
============================================================================
(ε) ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ / ΣΧΕΔΙΑΣΤΙΚΕΣ ΕΠΙΛΟΓΕΣ-ΠΑΡΑΔΟΧΕΣ / ΕΠΙΛΟΓΕΣ ΠΑΡΑΜΕΤΡΩΝ
============================================================================
- Για τα (Α), (Β) το -n ουσιαστικά είναι για πόσες χρονοσειρές από την αρχή να γίνουν predictions/anomaly detections
- Για το (Α), λόγω χρόνου τα pre-trained μοντέλα είναι μόνο για τις πρώτες 20 χρονοσειρές, δηλαδή έχουμε ένα μοντέλο ανα χρονοσειρά
για κάθε μια εκ των πρώτων 20 χρονοσειρών, και ένα μοντέλο εκπαιδευμένο στο σύνολο των πρώτων 20 χρονοσειρών.
Άρα, και το -n θα πρέπει να είναι μέχρι και 20 για το (Α).
- Για το (Β), δεν υπάρχει περιορισμός στο -n, αφού το autoencoder μοντέλο είναι εκπαιδευμένο πάνω σε ολόκληρο το σύνολο.
- Για το (Β), καλές τιμές του mean absolute error threshold είναι γύρω στο 0.65.
- Στο (Γ) οι τιμές window_length kai latent_dimension (encoding dimension) είναι σταθερές και είναι 10 και 3 αντίστοιχα (ο χρήστης manually μπορεί να τις αλλάξει εύκολα)
Επίσης, στην εκτέλεση του κώδικα, η εκτύπωση της συμπιεσμένης χρονοσειράς με την αρχική χρονοσειρά εμφανίζει κάποιο πρόβλημα στον υπολογιστή αλλά στο colab εκτυπώνεται
κανονικά άρα δεν έγινε κάποια προσπάθεια διόρθωσης αυτού.
To dataset στο ερώτημα αυτό (-d) χρησιμοποιείται για το training και testing του μοντέλου. Έπειτα, αυτό το μοντέλο μετατρέπει τις χρονοσειρές του queryset
σε συμπιεσμένες εκδοχές τους. Έπειτα, σπάει το query set στο input dataset και query set όπου το input dataset θα περιέχει το 95% των χρονοσειρών του query set.
Ομοίως για το dataset που περιέχει τις encoded χρονοσειρές του query set (το query_dataset περιέχει 17 χρονοσειρές)
Αυτά τα datasets χρησιμοποιούνται στο ερώτημα (Γ)
-Για ΕΠΙΛΟΓΕΣ ΠΑΡΑΜΕΤΡΩΝ - ΠΕΙΡΑΜΑΤΑ - ΠΑΡΑΤΗΡΗΣΕΙΣ ΒΛΕΠΕ το report