Δημιουργία του πρώτου σας Classifier Class Machine Machine στο Python



Αυτό το άρθρο θα σας βοηθήσει να δημιουργήσετε έναν Classifier Class Machine Machine στο Python από το Scratch. Θα σας παρέχει επίσης μια λεπτομερή γνώση της Ταξινόμησης.

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

Επισκόπηση της μηχανικής μάθησης

Η Μηχανική Εκμάθηση είναι μια έννοια που επιτρέπει στο μηχάνημα να μάθει από παραδείγματα και εμπειρίες, και αυτό επίσης χωρίς να έχει προγραμματιστεί ρητά. Έτσι, αντί να γράφετε τον κώδικα, αυτό που κάνετε είναι να τροφοδοτείτε δεδομένα στον γενικό αλγόριθμο και ο αλγόριθμος / μηχανή δημιουργεί τη λογική με βάση τα δεδομένα δεδομένα.





Ταξινομητής μηχανικής μάθησης

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



Η μαθησιακή διαδικασία πραγματοποιείται με τρεις βασικούς τρόπους

  • Εποπτευόμενη μάθηση
  • Μη εποπτευόμενη μάθηση
  • Μάθηση Ενίσχυσης

Ένα πρότυπο για ταξινομητές μηχανικής μάθησης

Τα εργαλεία μηχανικής μάθησης παρέχονται αρκετά βολικά σε μια βιβλιοθήκη Python που ονομάζεται scikit-learning, τα οποία είναι πολύ απλά στην πρόσβαση και την εφαρμογή τους.



Εγκαταστήστε το scikit-learn μέσω της γραμμής εντολών χρησιμοποιώντας:

εγκατάσταση pip -U scikit-learn

Εάν είστε χρήστης του anaconda, στη γραμμή εντολών του anaconda μπορείτε να χρησιμοποιήσετε:

conda εγκαταστήστε scikit-learn

Η εγκατάσταση απαιτεί προηγούμενη εγκατάσταση των πακέτων NumPy και SciPy στο σύστημά σας.

τι κάνει το math.abs στην Ιάβα

Προεπεξεργασία: Το πρώτο και πιο απαραίτητο βήμα σε οποιαδήποτε ανάλυση δεδομένων που βασίζεται στη μηχανική μάθηση είναι το προεπεξεργαστικό μέρος. Η σωστή αναπαράσταση και ο καθαρισμός των δεδομένων είναι απολύτως απαραίτητο για το μοντέλο ML να εκπαιδεύεται καλά και να αποδίδει στο δυναμικό του.

Βήμα 1 - Εισαγάγετε τις απαραίτητες βιβλιοθήκες

εισαγωγή numpy ως np εισαγωγή pandas ως pd import matplotlib.pyplot as plt

Βήμα 2 - Εισαγάγετε το σύνολο δεδομένων

σύνολο δεδομένων = pd.read_csv ()

Στη συνέχεια χωρίσαμε το σύνολο δεδομένων σε ανεξάρτητες και εξαρτημένες μεταβλητές. Οι ανεξάρτητες μεταβλητές θα είναι τα δεδομένα εισόδου και η εξαρτημένη μεταβλητή είναι τα δεδομένα εξόδου.

X = dataset.iloc []. Τιμές y = dataset.iloc []. Τιμές

Βήμα 3 - Χειριστείτε τα δεδομένα που λείπουν

Το σύνολο δεδομένων μπορεί να περιέχει κενές ή μηδενικές τιμές, οι οποίες μπορούν να προκαλέσουν σφάλματα στα αποτελέσματά μας. Ως εκ τούτου, πρέπει να αντιμετωπίσουμε τέτοιες εγγραφές. Μια συνήθης πρακτική είναι να αντικαταστήσετε τις μηδενικές τιμές με μια κοινή τιμή, όπως η μέση ή η πιο συχνή τιμή σε αυτήν τη στήλη.

από sklearn.preprocessing import Imputer imputer = Imputer (lost_values ​​= 'NaN', strategy = 'mean', axis = 0) imputer = imputer.fit (X []) X [] = imputer.transform (X [])

Βήμα 4 - Μετατροπή κατηγορηματικών μεταβλητών σε αριθμητικές μεταβλητές

από sklearn.preprocessing εισαγωγή LabelEncoder le_X = LabelEncoder () X [] = le_X.fit_transform (X []) labelencoder_y = LabelEncoder () y = labelencoder_y.fit_transform (y)

Τώρα, μετά την κωδικοποίηση, ενδέχεται το μηχάνημα να λάβει τα αριθμητικά δεδομένα ως κατάταξη για τις κωδικοποιημένες στήλες. Έτσι, για να παρέχουμε ίσο βάρος, πρέπει να μετατρέψουμε τους αριθμούς σε διανύσματα one-hot, χρησιμοποιώντας την κλάση OneHotEncoder.

από sklearn.preprocessing εισαγωγή OneHotEncoder oneHE = OneHotEncoder (ategorical_features = []) X = oneHE.fit_transform (X) .toarray ()

Βήμα 5 - Εκτελέστε κλιμάκωση

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

από sklearn.preprocessing εισαγωγή StandardScaler sc_X = StandardScaler () X = sc_X.fit_transform (X)

Βήμα 6 - Διαχωρίστε το σύνολο δεδομένων σε δεδομένα εκπαίδευσης και δοκιμών

Ως το τελευταίο βήμα της προεπεξεργασίας, το σύνολο δεδομένων πρέπει να χωριστεί σε ένα σετ προπόνησης και σετ δοκιμών. Η τυπική αναλογία της διαίρεσης δοκιμής αμαξοστοιχίας είναι 75% -25%. Μπορούμε να τροποποιήσουμε σύμφωνα με τις απαιτήσεις. Η συνάρτηση train_test_split () μπορεί να το κάνει αυτό για εμάς.

μετατροπή δεκαδικού σε δυαδικό πύθωνα
από sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

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

από το sklearn. εισαγωγή classifier = () classifier.fit (X_train, y_train)

Το μοντέλο είναι πλέον εκπαιδευμένο και έτοιμο. Μπορούμε τώρα να εφαρμόσουμε το μοντέλο μας στο σύνολο δοκιμών και να βρούμε προβλεπόμενη έξοδο.

y_pred = classifier.predict (δοκιμή__)

Προβολή αποτελεσμάτων: Η απόδοση ενός ταξινομητή μπορεί να εκτιμηθεί από τις παραμέτρους της ακρίβειας, της ακρίβειας, της ανάκλησης και της βαθμολογίας f1. Αυτές οι τιμές φαίνονται χρησιμοποιώντας μια μέθοδο γνωστή ως classification_report (). Μπορεί επίσης να θεωρηθεί ως πίνακας σύγχυσης που μας βοηθά να γνωρίζουμε πόσες από τις κατηγορίες δεδομένων έχουν ταξινομηθεί σωστά.

από sklearn.metrics import confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm) από sklearn.metrics import classification_report target_names = [] print (classification_report (y_test, y_pred, target_names = target_names))

Πρόβλημα ταξινόμησης μηχανικής εκμάθησης

Θα χρησιμοποιήσουμε το πολύ δημοφιλές και απλό σύνολο δεδομένων Iris, το οποίο περιέχει διαστάσεις λουλουδιών σε 3 κατηγορίες - Iris-setosa, Iris-versicolor και Iris-virginica. Υπάρχουν 150 καταχωρίσεις στο σύνολο δεδομένων.

πώς να χρησιμοποιήσετε το substring στο java
# Εισαγωγή βιβλιοθηκών εισαγωγή numpy ως np import matplotlib.pyplot as plt import pandas as pd # Importing the dataset dataset = pd.read_csv ('iris.csv')

Ας δούμε το σύνολο δεδομένων τώρα.

dataset.head ()

Έχουμε 4 ανεξάρτητες μεταβλητές (με εξαίρεση το Id), δηλαδή τους αριθμούς στηλών 1-4 και η στήλη 5 είναι η εξαρτημένη μεταβλητή. Έτσι μπορούμε να τους χωρίσουμε.

X = dataset.iloc [:, 1: 5] .values ​​y = dataset.iloc [:, 5] .values

Τώρα μπορούμε να χωρίσουμε το σύνολο δεδομένων σε Εκπαίδευση και Δοκιμή.

# Διαχωρισμός του συνόλου δεδομένων στο σύνολο προπόνησης και σετ δοκιμών από το sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split (X, y, test_size = 0.25)

Τώρα θα εφαρμόσουμε έναν ταξινομητή Logistic Regression στο σύνολο δεδομένων.

# Δημιουργία και εκπαίδευση του μοντέλου από το sklearn.linear_model import LogisticRegression classifier = LogisticRegression () classifier.fit (X_train, y_train) # Πρόβλεψη των αποτελεσμάτων του σετ δοκιμών y_pred = classifier.predict (X_test)

Το τελευταίο βήμα θα είναι η ανάλυση της απόδοσης του εκπαιδευμένου μοντέλου.

# Δημιουργία του Confusion Matrix από το sklearn.metrics εισαγωγή confusion_matrix cm = confusion_matrix (y_test, y_pred) print (cm)

Αυτό μας δείχνει ότι 13 καταχωρήσεις της πρώτης κατηγορίας, 11 της δεύτερης και 9 της τρίτης κατηγορίας προβλέπονται σωστά από το μοντέλο.

# Δημιουργία ακρίβειας, ακρίβειας, ανάκλησης και βαθμολογίας f1 από το sklearn.metrics import classification_report target_names = ['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'] print (classification_report (y_test, y_pred, target_names = target_names) )

Η αναφορά δείχνει τις τιμές ακρίβειας, ανάκλησης, βαθμολογίας f1 και ακρίβειας του μοντέλου στο σύνολο δοκιμών μας, το οποίο αποτελείται από 38 καταχωρήσεις (25% του συνόλου δεδομένων).

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