Scikit learn - Μηχανική εκμάθηση με χρήση του Python



Το Scikit Learn blog θα σας παρουσιάσει το Machine Learning στο python. Περιλαμβάνει μια περίπτωση χρήσης όπου θα εφαρμόσουμε λογιστική παλινδρόμηση χρησιμοποιώντας το scikit learn.

Σε αυτό το blog, θα συζητήσουμε τη Scikit να μάθει στο python. Πριν μιλήσουμε για το Scikit, πρέπει να καταλάβουμε την έννοια της μηχανικής μάθησηςκαι πρέπει να ξέρει πώς να το χρησιμοποιήσει . Με τη μηχανική εκμάθηση, δεν χρειάζεται να συγκεντρώσετε τις γνώσεις σας χειροκίνητα. Χρειάζεστε απλώς έναν αλγόριθμο και το μηχάνημα θα κάνει τα υπόλοιπα για εσάς! Δεν είναι συναρπαστικό; Το Scikit learning είναι ένα από τα αξιοθέατα όπου μπορούμε να εφαρμόσουμε μηχανική μάθηση χρησιμοποιώντας το Python. Τοείναι μια δωρεάν βιβλιοθήκη μηχανικής μάθησης που περιέχει απλά και αποτελεσματικά εργαλεία για την ανάλυση δεδομένων και την εξόρυξη.Θα σας καθοδηγήσω στα ακόλουθα θέματα, τα οποία θα χρησιμεύσουν ως βασικές αρχές για τα επερχόμενα ιστολόγια:

Τι είναι η μηχανική εκμάθηση;

Η μηχανική μάθηση είναι ένας τύπος τεχνητής νοημοσύνης που επιτρέπει στις εφαρμογές λογισμικού να μαθαίνουν από τα δεδομένα και να γίνονται πιο ακριβείς στην πρόβλεψη των αποτελεσμάτων χωρίς ανθρώπινη παρέμβαση. Αλλά πώς συμβαίνει αυτό; Για αυτό, το μηχάνημα πρέπει να εκπαιδευτεί σε ορισμένα δεδομένα και βάσει αυτού, θα εντοπίσει ένα μοτίβο για τη δημιουργία ενός μοντέλου.Αυτή η διαδικασία απόκτησης γνώσεων από τα δεδομένα και παροχής ισχυρών πληροφοριών αφορά την μηχανική μάθηση. Ανατρέξτε στην παρακάτω εικόνα για να κατανοήσετε καλύτερα τη λειτουργία της:





Machine Learning - Scikit Learn - Edureka

java πότε να το χρησιμοποιήσετε

Χρησιμοποιώντας τα δεδομένα, το σύστημα μαθαίνει έναν αλγόριθμο και στη συνέχεια τον χρησιμοποιεί για να δημιουργήσει ένα μοντέλο πρόβλεψης. Αργότερα, προσαρμόζουμε το μοντέλο ή βελτιώνουμε την ακρίβεια του μοντέλου χρησιμοποιώντας τα δεδομένα ανατροφοδότησης. Χρησιμοποιώντας αυτά τα δεδομένα σχολίων, συντονίζουμε το μοντέλο και προβλέπουμε δράση στο νέο σύνολο δεδομένων. Εμείς θασυζητάμε α θήκη χρήσης μιας από τις μεθόδους αλγορίθμου όπου θα εκπαιδεύσουμε και θα δοκιμάσουμε τα δεδομένα που θα σας βοηθήσουν να δώσετε μια καλύτερη αίσθηση για το αν θα ταιριάζει καλύτερα στο συγκεκριμένο σας πρόβλημα ή όχι.



Στη συνέχεια, υπάρχουν τρεις τύποι μηχανικής μάθησης:

    • Εποπτευόμενη μάθηση : Αυτή είναι μια διαδικασία ενός αλγορίθμου που μαθαίνει από το σύνολο δεδομένων εκπαίδευσης. Η εποπτευόμενη εκμάθηση είναι όπου δημιουργείτε μια λειτουργία χαρτογράφησης μεταξύ της μεταβλητής εισόδου (X) και μιας μεταβλητής εξόδου (Y) και χρησιμοποιείτε έναν αλγόριθμο για να δημιουργήσετε μια συνάρτηση μεταξύ τους. Είναι επίσης γνωστό ως προγνωστική μοντελοποίηση που αναφέρεται σε μια διαδικασία δημιουργίας προβλέψεων χρησιμοποιώντας τα δεδομένα. Μερικοί από τους αλγόριθμους περιλαμβάνουν Linear Regression, Logistic Regression, Decision tree, Random forest και Naive Bayes classifier. Θα συζητήσουμε περαιτέρω μια περίπτωση χρήσης της εποπτευόμενης μάθησης όπου εκπαιδεύουμε τη μηχανή που χρησιμοποιεί λογιστική παλινδρόμηση .
    • Μη εποπτευόμενη μάθηση : Αυτή είναι μια διαδικασία όπου ένα μοντέλο εκπαιδεύεται χρησιμοποιώντας πληροφορίες που δεν φέρουν ετικέτα. Αυτή η διαδικασία μπορεί να χρησιμοποιηθεί για την ομαδοποίηση των δεδομένων εισαγωγής σε τάξεις με βάση τις στατιστικές τους ιδιότητες. Η μη επιτηρούμενη μάθηση ονομάζεται επίσης γανάλυση λάμψης που σημαίνει την ομαδοποίηση αντικειμένων με βάση τις πληροφορίες που βρίσκονται στα δεδομένα που περιγράφουν τα αντικείμενα ή τη σχέση τους. Ο στόχος είναι ότι τα αντικείμενα σε μια ομάδα πρέπει να είναι παρόμοια μεταξύ τους αλλά διαφορετικά από αντικείμενα σε μια άλλη ομάδα. Μερικοί από τους αλγόριθμους περιλαμβάνουν την ομαδοποίηση Κ-μέσων, την ιεραρχική ομαδοποίηση κ.λπ.
    • Μάθηση ενίσχυσης: Η ενίσχυση της μάθησης μαθαίνει αλληλεπιδρώντας με έναν χώρο ή ένα περιβάλλον.Ένας πράκτορας RL μαθαίνει από τις συνέπειες των ενεργειών του, παρά από το να διδάσκεται ρητά. Επιλέγει τις δράσεις του με βάση τις προηγούμενες εμπειρίες του (εκμετάλλευση) και επίσης από νέες επιλογές (εξερεύνηση).

Επισκόπηση του Scikit Learn

Το Scikit Learn είναι μια βιβλιοθήκη που χρησιμοποιείται για την εκτέλεση μηχανικής μάθησης στο Python. Το Scikit Learn είναι μια βιβλιοθήκη ανοιχτού κώδικα που διαθέτει άδεια BSD και είναι επαναχρησιμοποιήσιμη σε διάφορα περιβάλλοντα, ενθαρρύνοντας την ακαδημαϊκή και εμπορική χρήση. Παρέχει μια σειρά εποπτευόμενων και μη εποπτευόμενων αλγορίθμων μάθησης στο Python.Το Scikit Learn αποτελείται από δημοφιλείς αλγόριθμους και βιβλιοθήκες. Εκτός από αυτό, περιέχει επίσης τα ακόλουθα πακέτα:



  • NumPy
  • Matplotlib
  • SciPy (Επιστημονικό Python)

Για να εφαρμόσουμε το Scikit learning, πρέπει πρώτα να εισαγάγουμε τα παραπάνω πακέτα. Εάν δεν είστε εξοικειωμένοι με αυτές τις βιβλιοθήκες, μπορείτε να ρίξετε μια ματιά στα προηγούμενα ιστολόγιά μου και . Μπορείτε να κατεβάσετε αυτά τα δύο πακέτα χρησιμοποιώντας τη γραμμή εντολών ή εάν χρησιμοποιείτε το PΥΓοητευτικό, μπορείτε να το εγκαταστήσετε απευθείας μεταβαίνοντας στις ρυθμίσεις σας με τον ίδιο τρόπο που το κάνετε και για άλλα πακέτα.

Στη συνέχεια, με παρόμοιο τρόπο, πρέπει να εισαγάγετε το Sklearn.Το Scikit Learn βασίζεται στο SciPy (Scientific Python) που πρέπει να εγκατασταθεί για να μπορέσετε να χρησιμοποιήσετε το Scikit-learn. Μπορείτε να ανατρέξετε σε αυτό δικτυακός τόπος να κατεβάσετε το ίδιο. Επίσης, εγκαταστήστε το πακέτο Scipy και wheel εάν δεν υπάρχει, μπορείτε να πληκτρολογήσετε την παρακάτω εντολή:

εγκατάσταση pip scipy

Έχω ήδη κατεβάσει και εγκαταστήσει, μπορείτε να ανατρέξετε στο παρακάτω στιγμιότυπο οθόνης για οποιαδήποτε σύγχυση.

Αφού εισαγάγετε τις παραπάνω βιβλιοθήκες, ας σκάψουμε βαθύτερα και να κατανοήσουμε πώς ακριβώς χρησιμοποιείται το Scikit learning.

Το Scikit Learn συνοδεύεται από δείγματα συνόλων δεδομένων, όπως Ίρις και ψηφία . Μπορείτε να εισαγάγετε τα σύνολα δεδομένων και να τα παίξετε μαζί τους. Μετά από αυτό, πρέπει να εισαγάγετε SVM που σημαίνει Υποστήριξη Vector Machine. Το SVM είναι μια μορφή μηχανικής μάθησης που χρησιμοποιείται για την ανάλυση δεδομένων.

Ας πάρουμε ένα παράδειγμα που θα πάμε ψηφία σύνολο δεδομένων και θα κατηγοριοποιήσει τους αριθμούς για εμάς, για παράδειγμα- 0 1 2 3 4 5 6 7 8 9. Ανατρέξτε στον παρακάτω κώδικα:

εισαγωγή matplotlib.pyplot ως plt από sklearn εισαγωγικά σύνολα δεδομένων από sklearn εισαγωγή svm digit = datasets.load_digits () print (digits.data)

Έξοδος -

[[0. 0. 5. ..., 0. 0. 0.] [0. 0. 0. ..., 10. 0. 0.] [0. 0. 0. ..., 16. 9. 0.] ..., [0. 0. 1. ..., 6. 0. 0.] [0. 0. 2. ..., 12. 0. 0.] [0. 0. 10. ..., 12. 1. 0.]]

Εδώ μόλις εισαγάγαμε τις βιβλιοθήκες, SVM, σύνολα δεδομένων και εκτυπώσαμε τα δεδομένα. Είναι μια μεγάλη σειρά δεδομένων ψηφίων όπου αποθηκεύονται τα δεδομένα. Δίνει την πρόσβαση στις δυνατότητες που μπορούν να χρησιμοποιηθούν για την ταξινόμηση του ψηφία δείγματα. Στη συνέχεια, μπορείτε επίσης να δοκιμάσετε κάποιες άλλες λειτουργίες όπως στόχος, εικόνες κ.λπ. Εξετάστε το παρακάτω παράδειγμα:

εισαγωγή matplotlib.pyplot ως plt από sklearn εισαγωγή δεδομένων από sklearn εισαγωγή svm digit = datasets.load_digits () print (digits.target) print (digits.images [0])

Παραγωγή -

[0 1 2 ..., 8 9 8] // στόχος των δεδομένων [[0. 0. 5. 13. 9. 1. 0. 0.] // εικόνα των δεδομένων [0. 0. 13. 15. 10. 15. 5. 0.] [0. 3. 15. 2. 0. 11. 8. 0.] [0. 4. 12. 0. 0. 8. 8. 0.] [0. 5. 8. 0. 0. 9. 8. 0.] [0. 4. 11. 0. 1. 12. 7. 0.] [0. 2. 14. 5. 10. 12. 0. 0. ] [0. 0. 6. 13. 10. 0. 0. 0.]]

Όπως μπορείτε να δείτε παραπάνω, εκτυπώνονται τα ψηφία στόχοι και η εικόνα των ψηφίων. digits.target δίνει τη θεμελιώδη αλήθεια για το ψηφίο σύνολο δεδομένων, δηλαδή ο αριθμός που αντιστοιχεί σε κάθε ψηφίο εικόνας. Στη συνέχεια, τα δεδομένα είναι πάντα ένας πίνακας 2D που έχει σχήμα (n_samples, n_features), αν και τα αρχικά δεδομένα ενδέχεται να είχαν διαφορετικό σχήμα. Όμως, στην περίπτωση των ψηφίων, κάθε πρωτότυπο δείγμα είναι μια εικόνα σχήματος (8,8) και μπορεί να προσεγγιστεί χρησιμοποιώντας ψηφία . εικόνα.

Εκμάθηση και πρόβλεψη

Στη συνέχεια, στο Scikit Learn, χρησιμοποιήσαμε ένα σύνολο δεδομένων (δείγμα 10 πιθανών τάξεων, ψηφία από μηδέν έως εννέα) και πρέπει να προβλέψουμε τα ψηφία όταν δίνεται μια εικόνα. Για να προβλέψουμε την τάξη, χρειαζόμαστε ένα εκτιμητής που βοηθά στην πρόβλεψη των τάξεων στις οποίες ανήκουν αόρατα δείγματα. Στην εκμάθηση Scikit, έχουμε έναν εκτιμητή για την ταξινόμηση που είναι ένα αντικείμενο python που εφαρμόζει τις μεθόδους ταιριάζει (x, y) και προβλέψτε (Τ). Ας δούμε το παρακάτω παράδειγμα:

τι είναι ένα συμβάν σε javascript
import matplotlib.pyplot as plt from sklearn import datasets from sklearn import svm digits = datasets.load_digits () // dataset clf = svm.SVC (gamma = 0.001, C = 100) print (len (digits.data)) x, y = digits.data [: - 1], digits.target [: - 1] // εκπαιδεύστε την εκτύπωση δεδομένων clf.fit (x, y) ('Prediction:', clf.predict (digits.data [-1]) ) // προβλέψτε τα δεδομένα plt.imshow (digits.images [-1], cmap = plt.cm.gray_r, interpolation = 'πλησιέστερο') plt.show ()

Έξοδος -

1796
Πρόβλεψη: [8]


Στο παραπάνω παράδειγμα, βρήκαμε αρχικά το μήκος και φορτώσαμε 1796 παραδείγματα. Στη συνέχεια, χρησιμοποιήσαμε αυτά τα δεδομένα ως δεδομένα μάθησης, όπου πρέπει να δοκιμάσουμε το τελευταίο στοιχείο και το πρώτο αρνητικό στοιχείο. Επίσης, πρέπει να ελέγξουμε εάν η μηχανή έχει προβλέψει τα σωστά δεδομένα ή όχι. Για αυτό, χρησιμοποιήσαμε το Matplotlib όπου είχαμε εμφανίσει την εικόνα των ψηφίων.Για να ολοκληρώσω, έχετε δεδομένα ψηφίων, έχετε τον στόχο, ταιριάζετε και το προβλέπετε και ως εκ τούτου είστε καλοί να πάτε! Είναι πραγματικά γρήγορο και εύκολο, έτσι δεν είναι;

Μπορείτε επίσης να οπτικοποιήσετε τις ετικέτες προορισμού με μια εικόνα, απλώς ανατρέξτε στον παρακάτω κώδικα:

import matplotlib.pyplot as plt from sklearn import datasets from sklearn import svm digitits = datasets.load_digits () # Join the images and target labels in a list images_and_labels = list (zip (digits.images, digits.target)) # για κάθε στοιχείο στη λίστα για ευρετήριο, (εικόνα, ετικέτα) σε απαρίθμηση (images_and_labels [: 8]): # αρχικοποίηση υποπεριοχής 2X4 στη θέση i + 1-th plt.subplot (2, 4, index + 1) # Εμφάνιση εικόνων σε όλα τα υποδιαγράμματα plt.imshow (εικόνα, cmap = plt.cm.gray_r, interpolation = 'πλησιέστερο') # Προσθέστε έναν τίτλο σε κάθε υποπεριοχή plt.title ('Εκπαίδευση:' + str (ετικέτα)) # Εμφάνιση της πλοκής plt. προβολή()

Παραγωγή-


Όπως μπορείτε να δείτε στον παραπάνω κώδικα, χρησιμοποιήσαμε τη λειτουργία «zip» για να ενώσουμε τις εικόνες και τις ετικέτες στόχευσης σε μια λίστα και στη συνέχεια να την αποθηκεύσουμε σε μια μεταβλητή, ας πούμε images_and_labels. Μετά από αυτό, έχουμε δείξει τα πρώτα οκτώ στοιχεία σε ένα πλέγμα από 2 έως 4 σε κάθε θέση. Μετά από αυτό, μόλις εμφανίσαμε τις εικόνες με τη βοήθεια του Matplotlib και προσθέσαμε τον τίτλο ως «εκπαίδευση».

Χρήση θήκης - Πρόβλεψη με χρήση Logistic Regression

Δήλωση προβλήματος - Μια εταιρεία αυτοκινήτων κυκλοφόρησε ένα νέο SUV στην αγορά. Χρησιμοποιώντας τα προηγούμενα δεδομένα σχετικά με τις πωλήσεις των SUV τους, θέλουν να προβλέψουν την κατηγορία των ατόμων που μπορεί να ενδιαφέρονται να το αγοράσουν.

Για αυτό, ας δούμε ένα σύνολο δεδομένων όπου έχω UserId, φύλο, ηλικία, εκτιμώμενος μισθός και αγοράστηκε ως στήλες. Αυτό είναι απλώς ένα δείγμα συνόλου δεδομένων, από το οποίο μπορείτε να πραγματοποιήσετε λήψη ολόκληρου του συνόλου δεδομένων εδώ . Μόλις εισαγάγουμε τα δεδομένα στο pyCharm, μοιάζει κάπως έτσι.

Τώρα ας κατανοήσουμε αυτά τα δεδομένα. Όπως μπορείτε να δείτε στο παραπάνω σύνολο δεδομένων, έχουμε κατηγορίες όπως αναγνωριστικό, φύλο, ηλικία κ.λπ. Με βάση αυτές τις κατηγορίες, πρόκειται να εκπαιδεύσουμε το μηχάνημά μας και να προβλέψουμε το όχι. αγορών. Εδώ λοιπόν ανεξάρτητες μεταβλητές ως «ηλικία», «αναμενόμενος μισθός» και εξαρτημένη μεταβλητή ως «αγοράστηκε». Τώρα θα εφαρμόσουμε την εποπτευόμενη μάθηση, δηλαδή αλγόριθμος λογιστικής παλινδρόμησης για να μάθετε τον αριθμό αγοράς χρησιμοποιώντας τα υπάρχοντα δεδομένα.

Αρχικά, ας ρίξουμε μια επισκόπηση της λογιστικής παλινδρόμησης.

Λογιστική παλινδρόμηση - Το Logistic Regression παράγει αποτελέσματα σε δυαδική μορφή που χρησιμοποιείται για την πρόβλεψη του αποτελέσματος μιας εξαρτημένης εξαρτημένης μεταβλητής. Χρησιμοποιείται ευρύτερα όταν η εξαρτημένη μεταβλητή είναι δυαδική, δηλαδή ο αριθμός των διαθέσιμων κατηγοριών είναι δύο όπως, οι συνήθεις έξοδοι της λογιστικής παλινδρόμησης είναι -

  • Ναι και ΟΧΙ
  • Σωστό και λάθος
  • Ψηλα και χαμηλα
  • Περάστε και αποτύχετε

Τώρα για να ξεκινήσουμε με τον κώδικα, θα εισαγάγουμε πρώτα αυτές τις βιβλιοθήκες - Numpy, Matplotlib και Pandas. Είναι πολύ εύκολο να εισαγάγετε pandas στο Pycharm ακολουθώντας τα παρακάτω βήματα:

Ρυθμίσεις -> Προσθήκη πακέτου -> Πάντες -> Εγκατάσταση

Μετά από αυτό, θα εισαγάγουμε το σύνολο δεδομένων και την ξεχωριστή εξαρτημένη μεταβλητή (αγοράστηκε) και την ανεξάρτητη μεταβλητή (ηλικία, μισθός) από:

dataset = pd.read_csv ('Social_Network_Ads.csv') X = dataset.iloc [:, [2, 3]]. τιμές y = dataset.iloc [:, 4]. εκτύπωση τιμών (X) εκτύπωση (y)

Το επόμενο βήμα θα ήταν η εκπαίδευση και η δοκιμή των δεδομένων. Μια κοινή στρατηγική είναι να ληφθούν όλα τα επισημασμένα δεδομένα και να χωριστούν σε υποσύνολα εκπαίδευσης και δοκιμών, τα οποία λαμβάνονται συνήθως με αναλογία 70-80% για το υποσύνολο εκπαίδευσης και 20-30% για το υποσύνολο δοκιμών. Ως εκ τούτου, έχουμε δημιουργήσει σύνολα κατάρτισης και δοκιμών χρησιμοποιώντας cross_validation.

από sklearn.cross_validation import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25, random_state = 0)

Μπορούμε επίσης να κλιμακώσουμε τις τιμές εισόδου για καλύτερη απόδοση χρησιμοποιώντας το StandarScaler όπως φαίνεται παρακάτω:

από sklearn.preprocessing εισαγωγή StandardScaler sc = StandardScaler () X_train = sc.fit_transform (X_train) X_test = sc.transform (X_test)

Τώρα θα δημιουργήσουμε το μοντέλο Logistic Regression.

από sklearn.linear_model εισαγωγή LogisticRegression classifier = LogisticRegression (random_state = 0) classifier.fit (X_train, y_train)

Μπορούμε να το χρησιμοποιήσουμε και να προβλέψουμε τα αποτελέσματα του σετ δοκιμών μας.

y_pred = classifier.predict (X_test)

Τώρα, μπορούμε να ελέγξουμε πόσες προβλέψεις ήταν ακριβείς και πόσες δεν χρησιμοποιούσαν μήτρα σύγχυσης . Ας ορίσουμε το Υ ως θετικές περιπτώσεις και το Ν ως αρνητικές περιπτώσεις. Τα τέσσερα αποτελέσματα διατυπώνονται σε μήτρα σύγχυσης 2 * 2, όπως φαίνεται παρακάτω:

από sklearn.metrics εισαγωγή confusion_matrix cm = confusion_matrix (y_test, y_pred) εκτύπωση (cm)

Παραγωγή-

τι είναι τα διακριτικά στην Java
[[65 3] [8 24]]

Στη συνέχεια, με βάση τον πίνακα σύγχυσης, μπορούμε να υπολογίσουμε την ακρίβεια. Έτσι, στο παραπάνω παράδειγμα, η ακρίβεια θα ήταν:

= TP + TN / FN + FP

= 65 + 24/65 +3+ 8 + 24

= 89%

Το κάναμε χειροκίνητα! Τώρα ας δούμε πώς το μηχάνημα υπολογίζει το ίδιο για εμάς, γι 'αυτό έχουμε μια ενσωματωμένη συνάρτηση «correct_score» που υπολογίζει την ακρίβεια και την εκτυπώνει, όπως φαίνεται παρακάτω:

από το sklearn.metrics import correct_score // εισαγάγετε τη συνάρτηση

Έξοδος -

89.0

Χέρεϊ! Έχουμε εφαρμόσει με επιτυχία τη λογιστική παλινδρόμηση χρησιμοποιώντας το Scikit Learn με ακρίβεια 89%.

Κάντε κλικ ΕΔΩ για να λάβετε την πλήρη πλήρη πηγή της παραπάνω πρόβλεψης χρησιμοποιώντας τη βιβλιοθήκη εκμάθησης Python Scikit.

Με αυτό, έχουμε καλύψει έναν από τους πολλούς δημοφιλείς αλγόριθμους που έχει να προσφέρει ο python.Έχουμε καλύψει όλα τα βασικά του Scikit να μάθουν τη βιβλιοθήκη,ώστε να μπορείτε να αρχίσετε να ασκείστε τώρα. Όσο περισσότερο ασκείστε τόσο περισσότερο θα μάθετε. Μείνετε συντονισμένοι για περαιτέρω ιστολόγια εκπαιδευτικών python!

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του ιστολογίου 'Scikit Learn' και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό. Για να μάθετε σε βάθος την Python μαζί με τις διάφορες εφαρμογές της, μπορείτε για ζωντανή διαδικτυακή εκπαίδευση με 24ωρη υποστήριξη και πρόσβαση σε όλη τη διάρκεια ζωής.