Scikit-μάθε
Το SKTet, πλήρες όνομα scikit-learn, είναι μια βιβλιοθήκη μηχανικής μάθησης στην Python, χτισμένη με βάση πακέτα επιστήμης δεδομένων όπως το numpy, το scipy και το matplotlib, που καλύπτει σχεδόν όλες τις πτυχές της μηχανικής μάθησης, όπως δείγματα δεδομένων, προεπεξεργασία δεδομένων, επαλήθευση μοντέλου, επιλογή χαρακτηριστικών, ταξινόμηση, παλινδρόμηση, ομαδοποίηση και μείωση διαστάσεων. Σε αντίθεση με το απόθεμα βαθιάς μάθησης που διατίθεται σε διάφορα πλαίσια όπως το pytorch και το TensorFlow, το sklearn είναι η προτιμώμενη βιβλιοθήκη για την παραδοσιακή μηχανική μάθηση στην python και δεν υπάρχουν άλλοι ανταγωνιστές.
Επίσημη ιστοσελίδα:Η σύνδεση με υπερσύνδεσμο είναι ορατή. Πηγή:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Επέκταση για το Scikit-learn
Ως κλασικό πλαίσιο μηχανικής μάθησης, το scikit-learn αναπτύσσεται για περισσότερα από δέκα χρόνια από τη γέννησή του, αλλά η υπολογιστική του ταχύτητα έχει επικριθεί ευρέως από τους χρήστες. Το Extension for Scikit-learn είναι ένας δωρεάν επιταχυντής λογισμικού AI που έχει σχεδιαστεί για να σας βοηθήσειΟ υπάρχων κώδικας Scikit-learn παρέχει 10 έως 100 φορές μεγαλύτερες επιταχύνσεις。 Η επιτάχυνση λογισμικού επιτυγχάνεται μέσω διανυσματικών οδηγιών, βελτιστοποίησης μνήμης για υλικό AI, νημάτων και βελτιστοποίησης.
Με την επέκταση Scikit-learn, μπορείτε:
- Η εκπαίδευση και η εξαγωγή συμπερασμάτων είναι 100 φορές πιο γρήγορα με την ίδια μαθηματική ακρίβεια
- Επωφεληθείτε από τις βελτιώσεις απόδοσης σε διαφορετικές διαμορφώσεις υλικού CPU, συμπεριλαμβανομένων των διαμορφώσεων GPU και πολλαπλών GPU
- Ενσωματώστε επεκτάσεις στις υπάρχουσες εφαρμογές Scikit-learn χωρίς να τροποποιήσετε τον κώδικα
- Συνεχίστε να χρησιμοποιείτε το API scikit-learn ανοιχτού κώδικα
- Χρησιμοποιήστε μερικές γραμμές κώδικα ή ενεργοποιήστε και απενεργοποιήστε τις επεκτάσεις στη γραμμή εντολών
Πηγή:Η σύνδεση με υπερσύνδεσμο είναι ορατή. Τεκμηρίωση:Η σύνδεση με υπερσύνδεσμο είναι ορατή.
Δοκιμή
Αρχικά, χρησιμοποιήστε το conda για να προετοιμάσετε το περιβάλλον και να εγκαταστήσετε τα απαραίτητα πακέτα με την ακόλουθη εντολή:
Ο νέος κώδικας δοκιμής Python έχει ως εξής:
Ο επιταχυνόμενος κώδικας έχει ως εξής:
Ερμηνεία πηγαίου κώδικα:
1.X, y = make_regression(n_samples=2000000, n_features=100, θόρυβος=1, random_state=42) make_regression είναι μια συνάρτηση στο scikit-learn που δημιουργεί ένα σύνολο δεδομένων για προβλήματα γραμμικής παλινδρόμησης. n_samples=2000000: Καθορίζει τον αριθμό των δειγμάτων στο σύνολο δεδομένων που δημιουργείται των 2.000.000. n_features=100: Καθορίζει ότι κάθε δείγμα έχει 100 χαρακτηριστικά (δηλαδή, μεταβλητές εισόδου). noise=1: Η τυπική απόκλιση της προσθήκης θορύβου στην τιμή στόχο y είναι 1. Αυτό σημαίνει ότι η τιμή-στόχος θα έχει κάποιες τυχαίες διαταραχές. random_state=42: Ορίστε τον τυχαίο σπόρο σε 42, διασφαλίζοντας ότι τα δεδομένα που δημιουργούνται είναι τα ίδια κάθε φορά που εκτελείται ο κώδικας (επαναληψιμότητα). Αποτελέσματα: Το X είναι ένας πίνακας σχήματος NumPy (2000000, 100) που αντιπροσωπεύει 2,000,000 δείγματα με 100 χαρακτηριστικά το καθένα. Το y είναι ένας μονοδιάστατος πίνακας μήκους 2.000.000 που αντιπροσωπεύει την τιμή στόχο.
2. X_train, _, y_train, _ = train_test_split(X, y, test_size=0,33, random_state=42) train_test_split είναι μια συνάρτηση στο scikit-learn που χωρίζει το σύνολο δεδομένων σε σύνολα εκπαίδευσης και δοκιμής. test_size=0,33: Υποδεικνύει ότι το 33% του συνόλου δεδομένων εκχωρείται στο σύνολο δοκιμής και το υπόλοιπο 67% κατανέμεται στο σύνολο εκπαίδευσης. random_state=42: Ορίστε τον τυχαίο σπόρο σε 42, διασφαλίζοντας ότι το αποτέλεσμα του διαχωρισμού δεδομένων είναι το ίδιο κάθε φορά που εκτελείτε τον κώδικα. : Χρησιμοποιήστε έναν χαρακτήρα υπογράμμισης για να αγνοήσετε την τιμή που επιστρέφεται. Εδώ μας ενδιαφέρει μόνο το μέρος του σετ προπόνησης (X_train και y_train) και αγνοούμε το μέρος του σετ δοκιμής. Έκβαση: X_train: Ο πίνακας χαρακτηριστικών του συνόλου εκπαίδευσης, σε σχήμα (1340000, 100) (περίπου το 67% των δεδομένων). y_train: Η τιμή στόχος του σετ προπόνησης με μήκος 1.340.000.
3. μοντέλο = ΓραμμικήΠαλινδρόμηση() Το LinearRegression είναι μια κλάση στο scikit-learn που υλοποιεί μοντέλα γραμμικής παλινδρόμησης. Αυτή η γραμμή κώδικα δημιουργεί μια παρουσία ενός μοντέλου γραμμικής παλινδρόμησης και εκχωρεί τιμές στο μοντέλο μεταβλητής. Από προεπιλογή, το LinearRegression δεν κανονικοποιεί τα δεδομένα (δηλαδή, δεν υπάρχει κανονικοποίηση L1 ή L2).
4. model.fit(X_train, y_train) Το Fit είναι μια μέθοδος στο μοντέλο scikit-learn που χρησιμοποιείται για την εκπαίδευση του μοντέλου. Εδώ η μέθοδος προσαρμογής καλείται να προσαρμόσει το μοντέλο γραμμικής παλινδρόμησης χρησιμοποιώντας την X_train δεδομένων του συνόλου εκπαίδευσης και την τιμή στόχο y_train. Το μοντέλο υπολογίζει ένα βέλτιστο σύνολο βαρών (συντελεστών) και τομών για να ελαχιστοποιήσει το σφάλμα μεταξύ των προβλεπόμενων και των πραγματικών τιμών (συνήθως ελαχίστων τετραγώνων). Μόλις ολοκληρωθεί η εκπαίδευση, οι παράμετροι του μοντέλου αποθηκεύονται σε model.coef_ (το βάρος του χαρακτηριστικού) και model.intercept_ (αναχαίτιση).
Ο χρόνος εκτέλεσης έχει ως εξής:
Μπορείτε να δείτε ότι το αποτέλεσμα είναι πολύ εμφανές τόσο χωρίς επιτάχυνση όσο και μετά την επιτάχυνση,Χρειάζονται περίπου 16 δευτερόλεπτα χωρίς επιτάχυνση και μόνο 0,1 δευτερόλεπτα μετά την επιτάχυνση!!!! |