Ανάλυση δεδομένων με χρήση Scala
Είναι πολύ σημαντικό να επιλέξετε το σωστό εργαλείο για την ανάλυση δεδομένων. Στα φόρουμ Kaggle, όπου διεξάγονται διεθνείς διαγωνισμοί Επιστήμης Δεδομένων, οι άνθρωποι συχνά ρωτούν ποιο εργαλείο είναι καλύτερο. Οι R και Python βρίσκονται στην κορυφή της λίστας. Σε αυτό το άρθρο θα σας πούμε για μια εναλλακτική στοίβα τεχνολογιών ανάλυσης δεδομένων, που βασίζεται στο Scala.
By Ρωμαίος Ζύκοφ, Ιδρυτής/Επιστήμονας Δεδομένων @ TopDataLab
Είναι πολύ σημαντικό να επιλέξετε το σωστό εργαλείο για την ανάλυση δεδομένων. Στο Kaggle.com φόρουμ, όπου διεξάγονται διεθνείς διαγωνισμοί Επιστήμης Δεδομένων, οι άνθρωποι συχνά ρωτούν ποιο εργαλείο είναι καλύτερο. Οι R και Python βρίσκονται στην κορυφή της λίστας. Σε αυτό το άρθρο θα σας πούμε για μια εναλλακτική στοίβα τεχνολογιών ανάλυσης δεδομένων, που βασίζονται στη γλώσσα προγραμματισμού Scala και Σπινθήρας κατανεμημένη υπολογιστική πλατφόρμα.
Πώς το καταλήξαμε; Στη Retail Rocket κάνουμε πολλή μηχανική εκμάθηση σε πολύ μεγάλα σύνολα δεδομένων. Χρησιμοποιούσαμε ένα σωρό IPython + Pyhs2 (πρόγραμμα οδήγησης κυψέλης για Python) + Pandas + Sklearn για να αναπτύξουμε πρωτότυπα. Στα τέλη του καλοκαιριού του 2014 πήραμε μια θεμελιώδη απόφαση να στραφούμε στο Spark, καθώς τα πειράματα έδειξαν ότι θα έχουμε 3-4 φορές μεγαλύτερη βελτίωση απόδοσης στο ίδιο πάρκο διακομιστών.
Ένα άλλο πλεονέκτημα είναι ότι μπορούμε να χρησιμοποιήσουμε μία γλώσσα προγραμματισμού για μοντελοποίηση και κώδικα που θα τρέχει σε διακομιστές παραγωγής. Αυτό ήταν ένα τεράστιο όφελος για εμάς, αφού πριν χρησιμοποιούσαμε 4 γλώσσες ταυτόχρονα: Hive, Pig, Java, Python. Είναι ένα πρόβλημα για μια μικρή ομάδα μηχανικών.
Το Spark υποστηρίζει καλά την εργασία με Python/Scala/Java μέσω API. Αποφασίσαμε να επιλέξουμε το Scala επειδή είναι η γλώσσα στην οποία γράφεται το Spark, πράγμα που σημαίνει ότι μπορούμε να αναλύσουμε τον πηγαίο κώδικα του και να διορθώσουμε σφάλματα αν χρειαστεί. Είναι επίσης το JVM στο οποίο τρέχει το Hadoop.
Πρέπει να πω ότι η επιλογή δεν ήταν εύκολη, αφού κανείς στην ομάδα δεν γνώριζε τότε τη Σκάλα.
Είναι γνωστό ότι για να μάθετε να επικοινωνείτε καλά σε μια γλώσσα, πρέπει να βυθιστείτε στη γλώσσα και να τη χρησιμοποιήσετε όσο το δυνατόν περισσότερο. Έτσι, εγκαταλείψαμε τη στοίβα Python υπέρ της Scala για μοντελοποίηση και γρήγορη ανάλυση δεδομένων.
Το πρώτο βήμα ήταν να βρεθεί ένας αντικαταστάτης για τους φορητούς υπολογιστές IPython. Οι επιλογές ήταν οι εξής:
- Zeppelin – ένα σημειωματάριο τύπου IPython για το Spark.
- ISpark;
- Σημειωματάριο Spark;
- Το Notebook Spark IPython της IBM.
- Απάτσι Τμετάλλευμα
Μέχρι στιγμής η επιλογή ήταν το ISpark γιατί είναι απλό – είναι το IPython για Scala/Spark. Ήταν σχετικά εύκολο να βιδωθεί σε γραφικά HighCharts και R. Και δεν είχαμε κανένα πρόβλημα να το συνδέσουμε με το σύμπλεγμα Yarn.
Έργο
Ας προσπαθήσουμε να απαντήσουμε στην ερώτηση: το μέσο ποσό αγοράς (AOV) στο ηλεκτρονικό σας κατάστημα εξαρτάται από στατικές παραμέτρους πελατών, οι οποίες περιλαμβάνουν τη διευθέτηση, τον τύπο προγράμματος περιήγησης (κινητό/επιτραπέζιος υπολογιστής), το λειτουργικό σύστημα και την έκδοση του προγράμματος περιήγησης; Μπορείτε να το κάνετε αυτό με Αμοιβαίες πληροφορίες.
Χρησιμοποιούμε πολύ την εντροπία για τους αλγόριθμους συστάσεων και την ανάλυσή μας: ο κλασικός τύπος Shannon, η απόκλιση Kullback-Leibler, η αμοιβαία πληροφόρηση. Υποβάλαμε ακόμη και μια εργασία για αυτό το θέμα. Υπάρχει μια ξεχωριστή, αν και μικρή, ενότητα αφιερωμένη σε αυτά τα μέτρα στο διάσημο εγχειρίδιο του Murphy για τη μηχανική μάθηση.
Ας το αναλύσουμε σε πραγματικά δεδομένα Retail Rocket. Προηγουμένως, αντέγραψα το δείγμα από το σύμπλεγμα μας στον υπολογιστή μου ως αρχείο csv.
ημερομηνία
Εδώ χρησιμοποιούμε το ISpark και το Spark που εκτελούνται σε τοπική λειτουργία, πράγμα που σημαίνει ότι όλοι οι υπολογισμοί εκτελούνται τοπικά και κατανέμονται μεταξύ των πυρήνων του επεξεργαστή. Όλα περιγράφονται στα σχόλια του κώδικα. Το πιο σημαντικό πράγμα είναι ότι στην έξοδο παίρνουμε RDD (Spark data structure), που είναι μια συλλογή από κατηγορίες case τύπου Row, που ορίζεται στον κώδικα. Αυτό θα σας επιτρέψει να ανατρέξετε σε πεδία μέσω "."", για παράδειγμα _.categoryId.
Πηγή: https://www.kdnuggets.com/2021/09/data-analysis-scala.html
- "
- &
- 100
- Πλεονέκτημα
- αλγόριθμοι
- Όλα
- Amazon
- μεταξύ των
- ανάλυση
- Apache
- APIs
- εφαρμογές
- άρθρο
- Bolt
- πρόγραμμα περιήγησης
- σφάλματα
- χτίζω
- τσαμπί
- αλλαγή
- Διαγράμματα
- κωδικός
- σχόλια
- Διαγωνισμοί
- χρήση υπολογιστή
- ημερομηνία
- ανάλυση δεδομένων
- επιστημονικά δεδομένα
- επιστήμονας δεδομένων
- μοιρασιά
- βαθιά μάθηση
- ανάπτυξη
- DID
- κατανεμημένων υπολογιστών
- οδηγός
- Μηχανική
- Μηχανικοί
- κ.λπ.
- Excel
- εμπειρία
- πείραμα
- εξερεύνηση
- Πρόσωπο
- οικογένεια
- FAST
- Χαρακτηριστικά
- Πεδία
- Όνομα
- σταθερός
- ιδρυτής
- Πλαίσιο
- GitHub
- Hadoop
- εδώ
- Κυψέλη
- Πως
- Πώς να
- HTTPS
- τεράστιος
- πληροφορίες
- διαδραστικό
- International
- IT
- Java
- Γλώσσα
- Γλώσσες
- large
- ΜΑΘΑΊΝΩ
- μάθηση
- Βιβλιοθήκη
- γραμμή
- Λίστα
- τοπικός
- τοπικά
- Μακριά
- μάθηση μηχανής
- μηχανήματα
- μαθηματικά
- Metrics
- Microsoft
- μοντελοποίηση
- Δημοφιλέστερα
- φορητούς υπολογιστές
- διαδικτυακά (online)
- ηλεκτρονικό κατάστημα
- ανοίξτε
- ανοικτού κώδικα
- λειτουργίας
- το λειτουργικό σύστημα
- Επιλογές
- τάξη
- Άλλα
- Χαρτί
- People
- επίδοση
- προοπτική
- Φυσική
- πλατφόρμες
- Δημοφιλής
- χαρτοφυλάκιο
- παραγωγή
- Προγραμματισμός
- σχέδιο
- αγορά
- Python
- λιανική πώληση
- τρέξιμο
- τρέξιμο
- Scala
- Επιστήμη
- επιστήμονες
- σειρά
- επίλυση
- Απλούς
- Μέγεθος
- δεξιότητες
- small
- So
- λογισμικό
- Χώρος
- κατάστημα
- ιστορίες
- υποβάλλονται
- καλοκαίρι
- υποστηριζόνται!
- Υποστηρίζει
- διακόπτης
- σύστημα
- Τεχνολογίες
- Δοκιμές
- Το γράφημα
- ώρα
- κορυφή
- Ενότητα
- URI
- us
- αξία
- ιστός
- Wikipedia
- παράθυρα
- Εργασία
- X
- χρόνια
- μηδέν