Κοινή χρήση τεχνολογίας

μοντέλο γραμμικής παλινδρόμησης

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

γραμμικής παλινδρόμησης

1. Θεωρητικό μέρος

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

Ευθείαγενική μορφή
y = w × x + κατά = w φορές x + βy=w×Χ+σι
Η κατάσταση ολόκληρης της ευθείας δίνεται από w και bw και bwκαισιΑποφασίζω, wwwκαθορίστε την ευθεία γραμμήκλίση(δηλαδή η γωνία κλίσης), ΒΒσιΠροσδιορίστε την ευθεία στον άξονα Υαναχαιτίζω(Έλεγχος της πάνω και κάτω μετάφρασης μιας ευθείας γραμμής, γνωστή και ωςπροκατάληψη ).Επομένως, χρειάζεται μόνο να υπολογίσουμε wwwκαι ΒΒσιΗ τιμή του μπορεί να καθορίσει μια συγκεκριμένη ευθεία Στη συνέχεια, θα μελετήσουμε πώς να βρούμε wwwκαι ΒΒσι

Εισαγάγετε την περιγραφή της εικόνας εδώ

Η επίδραση των w και b στο ευθύγραμμο σχήμα

κατάλληλο ουσιαστικό

ουσιαστικόΟρισμός
Σετ προπόνησηςΣύνολο δεδομένων που χρησιμοποιείται για την εκπαίδευση του μοντέλου
σετ δοκιμήςΣύνολο δεδομένων που χρησιμοποιείται για τον έλεγχο της ποιότητας του μοντέλου
Δείγμα εκπαίδευσης/Σημείο εκπαίδευσης (Δείγμα εκπαίδευσης)Κάθε στοιχείο δεδομένων στο σετ εκπαίδευσης
ΧαρακτηριστικάΤα δεδομένα που εισάγονται στο μοντέλο μπορεί να είναι αριθμητικές τιμές, ετικέτες κατηγορίας, τιμές εικονοστοιχείων εικόνας κ.λπ.
Επιγραφή Το μοντέλο πρέπει να προβλέψει την τιμή στόχο. Για προβλήματα ταξινόμησης, η ετικέτα είναι συνήθως το όνομα της κλάσης για προβλήματα παλινδρόμησης, η ετικέτα είναι μια συνεχής τιμή.

1. Μονομεταβλητή γραμμική παλινδρόμηση

1) Προεπεξεργασία δεδομένων

Ας μελετήσουμε πρώτα τη μονομεταβλητή γραμμική παλινδρόμηση Η λεγόμενη μονομεταβλητή γραμμική παλινδρόμηση αναφέρεται σε μια γραμμική συνάρτηση με μία μόνο ανεξάρτητη μεταβλητή, όπως: y = w ⋅ x + by = wcdot x +by=wΧ+σιΑυτό είναιΜονομεταβλητή ευθεία γραμμή, έχει μόνο μία μεταβλητή εισόδου xxΧ . Αυτή η ευθεία μπορεί να εκφραστεί σε ένα δισδιάστατο επίπεδο (ο οριζόντιος άξονας είναι Χ και ο κατακόρυφος άξονας είναι Υ).

Όταν λαμβάνουμε ένα σύνολο αδιαίρετων δεδομένων, συνήθως χωρίζουμε τα δεδομένα σε ένα σετ εκπαίδευσης και σε ένα σύνολο δοκιμής Μια απλή μέθοδος διαίρεσης είναι: πάρτε το πρώτο 80% των δειγμάτων ως σύνολο εκπαίδευσης και το υπόλοιπο 20% ως. το σετ δοκιμής.

2) Ορίστε τη συνάρτηση κόστους

Ας υποθέσουμε ότι το μάθαμε wwwκαι ΒΒσι, τότε έχουμε καθορίσει μια ευθεία γραμμή και μπορούμε να χρησιμοποιήσουμε αυτή την ευθεία για να κάνουμε προβλέψεις προκειμένου να διευκολύνουμε την κρίση της τιμής που προβλέπουμεεσυμε πραγματική αξίαyμεταξύλάθοςΠόσο, θέλουμε να ορίσουμε *"ένας χάρακας"*, που χρησιμοποιείται για τη μέτρηση της προβλεπόμενης τιμής εσυyμε αληθινή αξία εεεy σφάλμα μεταξύ.Εδώ χρησιμοποιούμεμέσο τετραγωνικό σφάλμανα ορίσεισυνάρτηση κόστους

J ( w , b ) = 1 2 m ∑ i = 1 m ( fw , b ( x ( i ) ) − y ( i ) ) 2 J(w,b) = frac{1}{2m}sumlimits_{i = 1}^m(f_{w,b}(x^{(i)}) - y^{(i)})^2J(w,σι)=2Μ1Εγώ=1Μ(φάw,σι(Χ(Εγώ))y(Εγώ))2
Αποσυναρμολόγηση φόρμουλας

fw , b ( x ( i ) ) − y ( i ) f_{w,b}(x^{(i)}) - y^{(i)}φάw,σι(Χ(Εγώ))y(Εγώ):σε fw , b ( x ( i ) ) f_{w,b}(x^{(i)})φάw,σι(Χ(Εγώ))αντιπροσωπεύει την τιμή που προβλέπεται χρησιμοποιώντας το εκπαιδευμένο μοντέλο, ενώ y (i ) y^{(i)}y(Εγώ)αντιπροσωπεύει το πραγματικό αποτέλεσμα κάθε δείγματος εκπαίδευσης και η διαφορά μεταξύ των δύο αντιπροσωπεύει το σφάλμα μεταξύ της τιμής που προβλέπεται από το μοντέλο και της πραγματικής τιμής.

Γιατί τετράγωνο το σφάλμα;

Σε όλα τα δείγματα, κάθε σφάλμα μπορεί να είναι θετικό ή αρνητικό και θα υπάρχει μια ορισμένη πιθανότητα μετατόπισης κατά τη διαδικασία άθροισης. Αυτό θα οδηγήσει όταν το σφάλμα κάθε στοιχείου είναι πολύ μεγάλο (όπως: -100, + 90, -25, +30), μετά την άθροιση, προκύπτει μια μικρή τιμή (-5) και τελικά προκύπτει μια λανθασμένη κρίση.

1 2 m frac{1}{2m}2Μ1: Αντιπροσωπεύει τον μέσο όρο του αθροίσματος όλων των σφαλμάτων δεδομένων (αυτός ο μέσος όρος μπορεί να αντιπροσωπεύει το σφάλμα ολόκληρου του μοντέλου κατά μία έννοια) και λαμβάνει το μέσο τετραγωνικό σφάλμα.

Γιατί διαιρέστε με 2

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

Γνωρίζοντας τη συνάρτηση κόστους, χρειάζεται μόνο να βρούμε τρόπους για να μειώσουμε το κόστος, τόσο πιο κοντά είναι η προβλεπόμενη αξία μας στην πραγματική αξία.

Παρατηρώντας τη συνάρτηση κόστους σφάλματος, μπορούμε να δούμε ότι η συνάρτηση κόστους σφάλματος είναι μια τετραγωνική συνάρτηση, δηλαδή μιακυρτή συνάρτηση, μια ιδιότητα της κυρτής συνάρτησης είναι:Το ακραίο σημείο είναι το μέγιστο σημείο , δεδομένου ότι η συνάρτηση κόστους είναι μια τετραγωνική συνάρτηση που ανοίγει προς τα πάνω (ο τύπος μπορεί να επεκταθεί και μπορείτε διαισθητικά να αισθανθείτε ότι ο συντελεστής του τετραγωνικού όρου είναι μεγαλύτερος από 0), επομένως η κυρτή συνάρτηση έχει μόνο μια ελάχιστη τιμή, και εμείς μόνο πρέπει να βρείτε το Η ελάχιστη τιμή είναι η ελάχιστη τιμή.Για τη συνάρτηση κόστους σφάλματος J ( w , b ) J(w,b)J(w,σι) , η επέκταση του τύπου του μπορεί να γραφτεί ως:
J ( w , b ) = 1 2 m ∑ i = 1 m ( ( wx ( i ) + b ) − y ( i ) ) 2 J(w,b) = frac{1}{2m}sumlimits_{i = 1 }^m((wx^{(i)}+b) - y^{(i)})^2J(w,σι)=2Μ1Εγώ=1Μ((wΧ(Εγώ)+σι)y(Εγώ))2
JJJΤο μέγεθος εξαρτάται από τις παραμέτρους wwwκαι ΒΒσιΤο σχήμα της συνάρτησης κόστους είναι περίπου το εξής:

Εισαγάγετε την περιγραφή της εικόνας εδώ

3) Κλίση κατάβασης

Η ιδέα της κλίσης κατάβασης τρέχει κυρίωςΒρείτε τη μερική παράγωγομέθοδος, η οποία σχετίζεται με τη βιολογικήμεταβλητές ελέγχουΗ μέθοδος είναι πολύ παρόμοια, όπως: στον έλεγχο ΒΒσιΕνημέρωση χωρίς αλλαγή www(Ορατός ΒΒσιείναι σταθερά), τύπος: w ′ = w − α ∂ J ( w ) ∂ ww' = w - άλφα frac{μερικό J(w)}{μερικό w}w=wαwJ(w) Υποδεικνύει ότι έχει ενημερωθεί διαδοχικά www,σε α άλφαα αντιπροσωπεύειποσοστό μάθησης Χρησιμοποιείται για να αντιπροσωπεύει το μέγεθος του βήματος, το οποίο μπορεί επίσης να γίνει κατανοητό ως η ταχύτητα καθόδου, ∂ J ( w ) ∂ w frac{μερικό J(w)}{μερικό w}wJ(w) εκφράζει δίκιο wwwΑναζητώντας τη μερική παράγωγο, παίρνουμε W − JW - JWJ(ΒάρηWκαι τιμήJσυνάρτηση) Μια εφαπτομένη σε μια κυρτή συνάρτηση, που χρησιμοποιείται για να αναπαραστήσει την ταχύτερα φθίνουσα τιμή συνάρτησηςκατεύθυνση, το γινόμενο των δύο αντιπροσωπεύειΜετακινηθείτε ένα βήμα προς την κατεύθυνση όπου η τιμή της συνάρτησης μειώνεται ταχύτερα .Αυτή η απόσταση πρέπει να ρυθμιστεί σύμφωνα με το σύνολο δεδομένων If α άλφααΕάν είναι πολύ μεγάλο (το μέγεθος του βήματος είναι πολύ μεγάλο), θα οδηγήσει σε wwwπηγαίνει απευθείας πάνω από το χαμηλότερο σημείο στο υψηλό σημείο στην άλλη πλευρά, έτσι ώστε να μην πλησιάσει ποτέ στο ελάχιστο, εάν α άλφααΕάν είναι πολύ μικρό (το μέγεθος του βήματος είναι πολύ μικρό), θα οδηγήσει σε wwwΓίνεται όλο και πιο αργό καθώς πλησιάζει το ελάχιστο, καταναλώνοντας υπολογιστικό κόστος.


ρυθμός μάθησης ( α άλφαα) μέθοδος προσαρμογής

  1. Ορίστε πρώτα ένα μικρότερο α άλφαα Όπως: 0,001.

  2. Στη συνέχεια, αυξάνεται κατά 10 φορές κάθε φορά, έως 1 το πολύ.

  3. Μετά τον προσδιορισμό μιας ορισμένης τιμής, όπως: 0,01.

  4. Στη συνέχεια, εκτελέστε 3 φορές την επεξεργασία, όπως: 0,01 × 3 = 0,03, 0,03 × 3 = 0,09 0,01 φορές 3 = 0,03, 0,03 φορές 3 = 0,090.01×3=0.03,0.03×3=0.09 (Σκοπός αυτού είναι να γίνει πιο γρήγορη η σύγκλιση).


Η διαδικασία επίλυσης μερικών παραγώγων (εύρεση της κατεύθυνσης καθόδου της κλίσης):

  • ικετεύω ∂ J ( w ) ∂ w frac{μερικό J(w)}{μερικό w}wJ(w) :

    ∂ J ( w ) ∂ w frac{μερικό J(w)}{μερικό w}wJ(w) = ∂ ∂ w 1 2 m ∑ i = 1 m ( fw , b ( x ( i ) ) − y ( i ) ) 2 frac{partial}{partial w}frac{1}{2m}sumlimits_{i = 1}^ {m}(f_{w,b}(x^{(i)}) - y^{(i)})^2w2Μ1Εγώ=1Μ(φάw,σι(Χ(Εγώ))y(Εγώ))2

    ​ = ∂ ∂ w 1 2 m ∑ i = 1 mwx ( i ) − y ( i ) ) 2 frac{partial}{partial w}frac{1}{2m}sumlimits_{i = 1}^{m}wx^{( i)} - y^{(i)})^2w2Μ1Εγώ=1ΜwΧ(Εγώ)y(Εγώ))2

    ​ = 1 2 m ∑ i = 1 m ( fw , b ( x ( i ) ) − y ( i ) ) ⋅ 2 x ( i ) frac{1}{2m}sumlimits_{i = 1}^{m}(f_{ w,b}(x^{(i)}) - y^{(i)})cdot2x^{(i)}2Μ1Εγώ=1Μ(φάw,σι(Χ(Εγώ))y(Εγώ))2Χ(Εγώ)

    ​ = 1 m ∑ i = 1 m ( fw , b ( x ( i ) ) − y ( i ) ) x ( i ) frac{1}{m}sumlimits_{i = 1}^{m}(f_{w,b }(x^{(i)}) - y^{(i)})x^{(i)}Μ1Εγώ=1Μ(φάw,σι(Χ(Εγώ))y(Εγώ))Χ(Εγώ)

  • ικετεύω ∂ J ( w ) ∂ b frac{μερικό J(w)}{μερικό b}σιJ(w) :

    ∂ J ( w ) ∂ b frac{μερικό J(w)}{μερικό b}σιJ(w) = ∂ ∂ b 1 2 m ∑ i = 1 m ( fw , b ( x ( i ) ) − y ( i ) ) 2 frac{partial}{partial b}frac{1}{2m}sumlimits_{i = 1}^ {m}(f_{w,b}(x^{(i)}) - y^{(i)})^2σι2Μ1Εγώ=1Μ(φάw,σι(Χ(Εγώ))y(Εγώ))2

    ​ = ∂ ∂ b 1 2 m ∑ i = 1 mwx ( i ) − y ( i ) ) 2 frac{partial}{partial b}frac{1}{2m}sumlimits_{i = 1}^{m}wx^{( i)} - y^{(i)})^2σι2Μ1Εγώ=1ΜwΧ(Εγώ)y(Εγώ))2

    = 1 2 m ∑ i = 1 m ( fw , b ( x ( i ) ) − y ( i ) ) ⋅ 2 frac{1}{2m}sumlimits_{i = 1}^{m}(f_{w,b} (x^{(i)}) - y^{(i)})cdot22Μ1Εγώ=1Μ(φάw,σι(Χ(Εγώ))y(Εγώ))2

    ​ = 1 m ∑ i = 1 m ( fw , b ( x ( i ) ) − y ( i ) ) frac{1}{m}sumlimits_{i = 1}^{m}(f_{w,b}(x^ {(i)}) - y^{(i)})Μ1Εγώ=1Μ(φάw,σι(Χ(Εγώ))y(Εγώ))

Βρείτε συγκεκριμένα μέσα από επανάληψη βρόχου wwwαξία με ΒΒσιαξία:

while ( ) : while():wγειαμεγάλομι():

w ∗ = w − α ∂ ∂ w J ( w , b ) w^* = w - άλφα frac{partial}{partial w}J(w,b)w=wαwJ(w,σι)

b ∗ = b − α ∂ ∂ b J ( w , b ) b^* = b - alpha frac{partial}{partial b}J(w,b)σι=σιασιJ(w,σι)

w = w ∗ w = w^*w=w

b = b ∗ b = b^*σι=σι

Στην αρχή, υπολογίζουμε τυχαία τα w και b και μετά κάνουμε επανάληψη wwwάθροισμα αξίας ΒΒσιαξία.

2. Πολυμεταβλητή γραμμική παλινδρόμηση

Η πολυμεταβλητή γραμμική παλινδρόμηση επεκτείνει τις διαστάσεις σε τρεις διαστάσεις και ακόμη και σε πολυδιάστατες καταστάσεις, όπως π.χ. y = w 1 x 1 + w 2 x 2 + κατά = w_1 x_1 + w_2 x_2 + by=w1Χ1+w2Χ2+σι μπορεί να γίνει κατανοητό ωςΧΆξονας καιΥΤα τσεκούρια είναι x 1 και x 2 x_1 και x_2Χ1καιΧ2 ΖΟ άξονας είναι εεεy, αυτή είναι μια τρισδιάστατη κατάσταση Κάθε δείγμα προπόνησης είναι ένα σημείο στον τρισδιάστατο χώρο.

Μέθοδος: Για κάθε μεταβλητή ξεχωριστά ( w 1 , w 2 , … , wn , b w_1,w_2,dots,w_n,bw1,w2,,wn,σι) για επεξεργασία gradient descent

Κύρια σημεία: Για πολυμεταβλητή γραμμική παλινδρόμηση, τα εύρη τιμών των διαφορετικών τιμών χαρακτηριστικών είναι διαφορετικά, όπως: το εύρος τιμών του χαρακτηριστικού ηλικίας: 0 0 0 ~ 100 100 100, που καλύπτει περιοχή: 0 m 2 0m^20Μ2 ~ 10000 m 2 10000 m^210000Μ2 , μπορεί επίσης να υπάρχειΠαράξενο δείγμα, η ύπαρξη μεμονωμένων δειγμάτων δεδομένων θα προκαλέσει την αύξηση του χρόνου εκπαίδευσης και μπορεί επίσης να οδηγήσει σε αποτυχία σύγκλισης. Επομένως, όταν υπάρχουν δεδομένα μεμονωμένου δείγματος, είναι απαραίτητο να γίνει προεπεξεργασία των δεδομένων πριν από την εκπαίδευση.Κανονικοποιήθηκε Αντίθετα, όταν δεν υπάρχουν μοναδικά δεδομένα δείγματος, δεν χρειάζεται να γίνει κανονικοποίηση.Για να αντιμετωπίσουμε αυτό το πρόβλημα, πρέπει να εκτελέσουμεΤα χαρακτηριστικά είναι κλιμακωμένα (κανονικοποιημένα)

1) Προεπεξεργασία δεδομένων

Επεξεργασία κανονικοποίησης δεδομένων

ολοκληρώσειΚανονικοποίηση δεδομένωνΥπάρχουν τρεις μέθοδοι:

  1. Ίδιο με τη διαίρεση με τη μέγιστη τιμή:

    Όλες οι τιμές σε κάθε χαρακτηριστικό διαιρούνται με τη μέγιστη τιμή σε αυτό το χαρακτηριστικό.

  2. Μέση κανονικοποίηση:

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

  3. Ομαλοποίηση βαθμολογίας Z:

    Υπολογίστε κάθε χαρακτηριστικότυπική απόκλισηκαισημαίνω

    Αφαιρέστε την τιμή κάθε χαρακτηριστικού από όλες τις τιμές αυτού του χαρακτηριστικούμέση αξίακαι μετά διαιρείται με τα χαρακτηριστικάσημαίνω

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

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

Οφέλη από την κανονικοποίηση δεδομένων:

  1. Μετά την κανονικοποίησηΕπιταχύνει την κλίση κατάβασης για να βρεθεί η βέλτιστη λύση, δηλαδή επιτάχυνση της σύγκλισης του εκπαιδευτικού δικτύου.
  2. Η κανονικοποίηση έχει τη δυνατότητα να βελτιώσει την ακρίβεια.
2) Συνάρτηση κόστους (ίδια με τη συνάρτηση κόστους της μονομεταβλητής γραμμικής παλινδρόμησης)

J ( w , b ) = 1 2 m ∑ i = 1 m ( fw , b ( x ( i ) ) − y ( i ) ) 2 J(w,b) = frac{1}{2m}sumlimits_{i = 1}^m(f_{w,b}(x^{(i)}) - y^{(i)})^2J(w,σι)=2Μ1Εγώ=1Μ(φάw,σι(Χ(Εγώ))y(Εγώ))2

3) Κλίση κατάβασης

Κάθοδος κλίσης για πολλαπλή γραμμική παλινδρόμηση

w 1 = W 1 − α 1 m ∑ i = 1 m ( fw ⃗ , bx ⃗ ( i ) − y ( i ) ) x 1 ( i ) w_1 = W_1 - alpha frac{1}{m}sumlimits_{i = 1}^{m}(f_{vec{w},b}vec{x}^{(i)} - y^{(i)})x_1^{(i)}w1=W1αΜ1Εγώ=1Μ(φάw ,σιΧ (Εγώ)y(Εγώ))Χ1(Εγώ)

⋮ vdots

wn = W n − α 1 m ∑ i = 1 m ( fw ⃗ , bx ⃗ ( i ) − y ( i ) ) xn ( i ) w_n = W_n - alpha frac{1}{m}sumlimits_{i = 1} ^{m}(f_{vec{w},b}vec{x}^{(i)} - y^{(i)})x_n^{(i)}wn=WnαΜ1Εγώ=1Μ(φάw ,σιΧ (Εγώ)y(Εγώ))Χn(Εγώ)

b = b − α 1 m ∑ i = 1 m ( fw ⃗ , bx ⃗ ( i ) − y ( i ) ) b = b - alpha frac{1}{m}sumlimits_{i = 1}^{m}( f_{vec{w},b}vec{x}^{(i)} - y^{(i)})σι=σιαΜ1Εγώ=1Μ(φάw ,σιΧ (Εγώ)y(Εγώ))

εξηγώ: w 1 ⋯ wn w_1cdots w_nw1wn αντιπροσωπεύει τον συντελεστή κάθε μεταβλητής και το b αντιπροσωπεύει τον σταθερό όρο της γραμμικής συνάρτησης.

3.Κανονική εξίσωση

1) Προεπεξεργασία δεδομένων

Παραλείπω...

2) Συνάρτηση κόστους

Μαθηματική παραγωγή:

J = 1 2 m ∑ i = 1 m ( θ ⃗ ix ⃗ i − yi ) 2 J = frac{1}{2m}sumlimits_{i = 1}^{m}(vec{theta}_i vec{x}_i - y_i)^2J=2Μ1Εγώ=1Μ(θ ΕγώΧ ΕγώyΕγώ)2

​ = 1 2 m ∣ ∣ θ ⃗ x ⃗ − y ∣ ∣ 2 frac{1}{2m}||vec{theta} vec{x} - y||^22Μ1∣∣θ Χ y2

​ = 1 2 m ( θ ⃗ x ⃗ − y ) T ( θ ⃗ x ⃗ − y ) frac{1}{2m}(vec{theta} vec{x} - y)^T(vec{theta} vec{x} - y)2Μ1(θ Χ y)Τ(θ Χ y)

​ = 1 2 m ( θ ⃗ T x ⃗ T − y T ) ( θ ⃗ x ⃗ − y ) frac{1}{2m}(vec{θήτα}^T vec{x}^T - y^T)(vec{ θήτα} vec{x} - y)2Μ1(θ ΤΧ ΤyΤ)(θ Χ y)

​ = 1 2 m ( θ ⃗ T x ⃗ T x ⃗ θ ⃗ − y T x ⃗ θ ⃗ − θ ⃗ T x ⃗ T y + y T y ) frac{1}{2m}(vec{theta}^T vec{ x}^Tvec{x}vec{theta} - y^Tvec{x}vec{theta} -vec{theta}^Tvec{x}^Ty +y^Ty )2Μ1(θ ΤΧ ΤΧ θ yΤΧ θ θ ΤΧ Τy+yΤy)

3) Κλίση κατάβασης

σωστά θ θήταθΒρείτε τη μερική παράγωγο: Δ = ∂ J ∂ θ = 1 2 m ( ∂ θ ⃗ T x ⃗ T x ⃗ θ ⃗ ∂ θ − ∂ y T x ⃗ θ ⃗ ∂ θ − ∂ θ ⃗ T x ⃗ T θ∂ y ⃗ θ ) Delta =frac{μερική J}{μερική θήτα}= frac{1}{2m}(frac{μερική vec{theta}^T vec{x}^Tvec{x}vec{theta}}{μερική θήτα} - frac{μερική y^Tvec{x}vec{θήτα}}{μερική θήτα} - frac{μερική vec{θήτα}^Tvec{x}^Ty}{μερική θήτα} + frac{y^Ty}{μερική θήτα})Δ=θJ=2Μ1(θθ ΤΧ ΤΧ θ θyΤΧ θ θθ ΤΧ Τy+θyΤy)

Κανόνας παραγωγής πίνακα:

  1. ∂ θ TA θ ∂ θ = ( A + AT ) θ frac{μερική θήτα^{T}Atheta}{μερική θήτα} = (A + A^T)θήταθθΤΕΝΑθ=(ΕΝΑ+ΕΝΑΤ)θ

  2. ∂ XTA ∂ X = A frac{μερικό X^{T}A}{μερικό X} = AΧΧΤΕΝΑ=ΕΝΑ

  3. ∂ AX ∂ X = AT frac{μερικό AX}{μερικό X} = A^TΧΕΝΑΧ=ΕΝΑΤ

  4. ∂ A ∂ X = 0 frac{μερικό A}{μερικό X} = 0ΧΕΝΑ=0

Διαθέσιμος Δ = 1 2 m ( ∂ θ ⃗ T x ⃗ T x ⃗ θ ⃗ ∂ θ − ∂ y T x ⃗ θ ⃗ ∂ θ − ∂ θ ⃗ T x ⃗ T y ∂ θ + y T y ) = 1 m ⋅ ( 2 x T x θ − 2 x T y ) = 1 m ⋅ ( x T x θ − x T y ) Δέλτα = frac{1}{2m}(frac{μερικό vec{θήτα}^T vec{x }^Tvec{x}vec{theta}}{μερική θήτα} - frac{μερική y^Tvec{x}vec{theta}}{μερική θήτα} - frac{μερική vec{theta}^Tvec{x}^Ty} {partial theta} + frac{y^Ty}{partial theta}) = frac{1}{2m}cdot (2x^Txtheta - 2x^Ty) = frac{1}{m} cdot (x^Txtheta - x^ Ty)Δ=2Μ1(θθ ΤΧ ΤΧ θ θyΤΧ θ θθ ΤΧ Τy+θyΤy)=2Μ1(2ΧΤΧθ2ΧΤy)=Μ1(ΧΤΧθΧΤy)
πότε Δ = 0 Δέλτα = 0Δ=0 ώρα: x T x θ = x T yx^Tx θήτα = x^TyΧΤΧθ=ΧΤy , θ = ( x T x ) − 1 x T y θήτα = (x^Tx)^{-1}x^Tyθ=(ΧΤΧ)1ΧΤy μπορεί να υπολογιστεί θ θήταθ αξία.

Σύγκριση βαθμίδας καθόδου και κανονικών εξισώσεων

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

  • κανονική εξίσωση: Δεν χρειάζεται να επιλέξετε το ποσοστό εκμάθησης α Υπολογίζεται μία φορά και πρέπει να υπολογιστεί. ( x T x ) − 1 (x^Tx)^{-1}(ΧΤΧ)1 , εάν ο αριθμός των χαρακτηριστικών nnnΕάν είναι μεγαλύτερο, το κόστος λειτουργίας θα είναι υψηλότερο, επειδή η χρονική πολυπλοκότητα υπολογισμού της αντίστροφης μήτρας είναι O ( n 3 ) O(n^3)Ο(n3) , συνήθως όταν nnnΕίναι ακόμα αποδεκτό όταν είναι λιγότερο από 10.000.Διατίθεται μόνο για γραμμικά μοντέλα, δεν είναι κατάλληλο για άλλα μοντέλα, όπως μοντέλα λογιστικής παλινδρόμησης.

4.Πολυωνυμική παλινδρόμηση

Δεδομένου ότι σε ορισμένες περιπτώσεις, είναι δύσκολο για τις ευθείες γραμμές να χωρέσουν όλα τα δεδομένα, χρειάζονται καμπύλες για να χωρέσουν τα δεδομένα, όπως τετραγωνικά μοντέλα, κυβικά μοντέλα κ.λπ.

Γενικά, η συνάρτηση παλινδρόμησης των δεδομένων είναι άγνωστη, ακόμη και αν είναι γνωστή, είναι δύσκολο να μετατραπεί σε γραμμικό μοντέλο με απλό μετασχηματισμό συνάρτησης, επομένως η κοινή προσέγγιση είναι.πολυωνυμική παλινδρόμηση(Πολυωνυμική παλινδρόμηση), δηλαδή χρήση πολυωνυμικής συνάρτησης για την προσαρμογή των δεδομένων.

Πώς να επιλέξετε το βαθμό ενός πολυωνύμου

Υπάρχουν πολλοί τύποι πολυωνυμικών συναρτήσεων Γενικά, πρέπει πρώτα να παρατηρήσετε το σχήμα των δεδομένων και μετά να αποφασίσετε ποια μορφή πολυωνυμικής συνάρτησης θα χρησιμοποιήσετε για να λύσετε το πρόβλημα. Για παράδειγμα, από το διάγραμμα διασποράς των δεδομένων, εάν υπάρχει "στροφή ", μπορείτε να εξετάσετε το ενδεχόμενο να χρησιμοποιήσετε ένα τετραγωνικό πολυώνυμο (δηλαδή, να τετραγωνίσετε τα χαρακτηριστικά), υπάρχουν δύο "στροφή ", μπορείτε να εξετάσετε το ενδεχόμενο να χρησιμοποιήσετε ένα κυβικό πολυώνυμο (λαμβάνοντας την κυβική ισχύ του χαρακτηριστικού), υπάρχουν τρία "στροφή ”, στη συνέχεια σκεφτείτε να χρησιμοποιήσετε ένα πολυώνυμο τέταρτης τάξης (λαμβάνοντας την τέταρτη δύναμη του χαρακτηριστικού) και ούτω καθεξής.

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

2. Πειραματικό μέρος

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

1. Μονομεταβλητή γραμμική παλινδρόμηση

1) Φόρτωση δεδομένων
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
path = "ex1data1.txt"
data = pd.read_csv(path,header = None,names=['Population','Profit'])
data.head()   # 预览数据
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Εισαγάγετε την περιγραφή της εικόνας εδώ

2) Προβολή δεδομένων
data.describe()    # 更加详细的数据描述
  • 1

Εισαγάγετε την περιγραφή της εικόνας εδώ

# 可视化训练数据
data.plot(kind = 'scatter',x = 'Population',y = 'Profit',figsize = (12,8))
plt.show()
  • 1
  • 2
  • 3

Εισαγάγετε την περιγραφή της εικόνας εδώ

3) Ορίστε τη συνάρτηση κόστους
def computerCost(X,y,theta):    # 定义代价函数
    inner = np.power(((X*theta.T)-y),2)   # theta.T表示theta的转置
    return np.sum(inner)/(2*len(X))
  • 1
  • 2
  • 3
data.insert(0,"One",1)  # 表示在第0列前面插入一列数,其表头为One,其值为1
  • 1

Εισαγάγετε στην πρώτη στήλη του συνόλου δεδομένων 1 1 1Η λειτουργία είναι ναΔιευκολύνει τους υπολογισμούς μήτρας, όταν πολλαπλασιάζονται οι πίνακες, εμπλέκονται βάρη wwwκαι προκατάληψη ΒΒσι,επειδή ΒΒσιδεν πολλαπλασιάζεται με τη μεταβλητή, οπότε α 1 1 1, χρησιμοποιείται με ΒΒσιΠολλαπλασιάζω.

4) Διαχωρίστε τα δεδομένα
cols = data.shape[1]
X = data.iloc[:,0:cols - 1]  #“,”前只有“:”,表示所有的行,“,”后表示抽取数据中第[0列~第cols-1列)(左闭右开),去掉最后一列,最后一列为预测值

y = data.iloc[:,cols - 1:cols]  #只取最后一列的值,表示预测值

  • 1
  • 2
  • 3
  • 4
  • 5
X.head()
  • 1

Εισαγάγετε την περιγραφή της εικόνας εδώ

y.head()
  • 1

Εισαγάγετε την περιγραφή της εικόνας εδώ

X = np.matrix(X.values)
y = np.matrix(y.values)  #只将表格中的值装换为矩阵而不是包括序号与标题

#初始化theta
theta = np.matrix(np.array([0,0]))  #先是一个一维的数据,然后在转换为一个二维的矩阵
  • 1
  • 2
  • 3
  • 4
  • 5
5) Παράμετροι αρχικοποίησης
theta  
# => matrix([[0, 0]])
  • 1
  • 2
X.shape,theta.shape,y.shape  # 此时theta为一行列,需要进行转置
# => ((97, 2), (1, 2), (97, 1))
  • 1
  • 2
computerCost(X,y,theta)
# => 32.072733877455676
  • 1
  • 2
6) Ορίστε τη συνάρτηση gradient descent
def gradientDecent(X,y,theta,alpha,iters):   #iters为迭代次数
    temp = np.matrix(np.zeros(theta.shape))   #构造一个与theta大小一样的零矩阵,用于存储更新后的theta
    parmaters = int (theta.ravel().shape[1])    #.ravel()的功能是将多维数组降至一维,用于求需要求的参数个数
    cost = np.zeros(iters)   #构建iters个0的数组,相当于对每次迭代的cost进行记录
    
    for i in range(iters):
        error = (X * theta.T - y)     #记录误差值,结果为一个数组
        for j in range(parmaters):    #对每一个参数进行更新,j用于表示每一个参数
            term = np.multiply(error,X[:,j])   #.multiply 是对矩阵当中的数对应相乘,这里表示与X矩阵的第j列相乘。
            temp[0,j] = theta[0,j] - ((alpha/len(X))*np.sum(term))  #存储更行后的theta的值,.sum()表示将矩阵中的数进行求和
        
        theta = temp      #更新theta
        cost[i] = computerCost(X,y,theta)  #计算此时的代价,并记录在cost中。
    return theta,cost
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
7) Αρχικοποίηση υπερπαραμέτρων
alpha  = 0.01		# 学习率
iters = 1000		# 迭代次数
  • 1
  • 2
8) Κλίση κατάβασης
g,cost = gradientDecent(X,y,theta,alpha,iters)
g
# => matrix([[-3.24140214,  1.1272942 ]])
  • 1
  • 2
  • 3
9) Υπολογίστε το κόστος
computerCost(X,y,g)
# => 4.515955503078914
  • 1
  • 2
10) Σχεδιάστε γραμμικό μοντέλο
x = np.linspace(data.Population.min(),data.Population.max(),100) #抽取100个样本  (从data数据集中的最小值到最大值之间抽取100个样本)
f = g[0,0] + (g[0,1] * x)  #f = ax + b

fig,ax = plt.subplots(figsize = (12,8))    #figsize表示图的大小
ax.plot(x,f,'r',label = "Prediction")    #绘制直线,横坐标,纵坐标,直线名称
ax.scatter(data.Population,data.Profit,label = 'Training data')   #绘制点,横坐标,纵坐标,点的名称
ax.legend(loc = 4)  #显示图例位置
ax.set_xlabel('Population')  #设置x轴的名称
ax.set_ylabel('Profit')   #设置y轴的名称
ax.set_title('Predicted Profit vs. Population Size')  #设置标题的名称
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

Εισαγάγετε την περιγραφή της εικόνας εδώ

11) Σχεδιάστε την καμπύλη αλλαγής κόστους
fig,ax = plt.subplots(figsize = (12,8))
ax.plot(np.arange(iters),cost,'r')
ax.set_xlabel('Interations')
ax.set_ylabel('Cost')
ax.set_title("Error vs. Training Epoc")
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Εισαγάγετε την περιγραφή της εικόνας εδώ

2. Πολυμεταβλητή γραμμική παλινδρόμηση

1) Φόρτωση δεδομένων
path = "ex1data2.txt"
data2 = pd.read_csv(path,header = None,names=["Size","Bedroom","Price"])
data2.head()
  • 1
  • 2
  • 3

Εισαγάγετε την περιγραφή της εικόνας εδώ

2) Επεξεργασία κανονικοποίησης δεδομένων
data2 = (data2 - data2.mean())/data2.std()
data2.head()
  • 1
  • 2

Εισαγάγετε την περιγραφή της εικόνας εδώ

3) Διαχωρίστε τα δεδομένα
data2.insert(0,'Ones',1)  #在x的第一列插入1

clos = data2.shape[1]   #存储第二维(列)的数据量
X2 = data2.iloc[:,0:clos-1]  #对X2进行赋值
y2 = data2.iloc[:,clos-1:clos]  #对y2进行赋值

X2 = np.matrix(X2.values)  #将X2转为矩阵
y2 = np.matrix(y2.values)  #将y2转为矩阵
theta2 = np.matrix(np.array([0,0,0]))  #初始化theta2为0矩阵
computerCost(X2, y2, theta2)
# => 0.48936170212765967
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
4) Κλίση κατάβασης
g2,cost2 = gradientDecent(X2,y2,theta2,alpha,iters)   #记录放回值g2(theta2)和cost2
g2
# => matrix([[-1.10868761e-16,  8.78503652e-01, -4.69166570e-02]])
  • 1
  • 2
  • 3
5) Υπολογίστε το κόστος
computerCost(X2,y2,g2)
# => 0.13070336960771892
  • 1
  • 2
6) Σχεδιάστε την καμπύλη αλλαγής κόστους
fig,ax = plt.subplots(figsize = (12,8))
ax.plot(np.arange(iters),cost2,'x')
ax.set_xlabel('Iterations')
ax.set_ylabel('Cost')
ax.set_title('Error vs. Training Epoch')
plt.show()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

Προσθέστε περιγραφή εικόνας

3. Κανονική εξίσωση

#正规方程
def normalEqn(X,y):
    theta = np.linalg.inv(X.T@X)@X.T@y   #.linalg中包含线性代数中的函数,求矩阵的逆(inv)、特征值等。@表示矩阵相乘
    return theta
  • 1
  • 2
  • 3
  • 4
final_theta2 = normalEqn(X,y)
final_theta2
# => matrix([[-3.89578088], [ 1.19303364]])
  • 1
  • 2
  • 3

3. Περίληψη

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

  1. Προεπεξεργασία δεδομένων.
  2. Επιλέξτε ένα μοντέλο με βάση το συγκεκριμένο πρόβλημά σας.
  3. Ορίστε τη συνάρτηση κόστους.
  4. Χρησιμοποιήστε τον αλγόριθμο gradient descent για να βρείτε τις βέλτιστες παραμέτρους.
  5. Αξιολογήστε το μοντέλο και προσαρμόστε τις υπερπαραμέτρους.
  6. Χρησιμοποιήστε μοντέλα για να κάνετε προβλέψεις.

4. Παράρτημα

1. ex1data1.txt

6.1101,17.592
5.5277,9.1302
8.5186,13.662
7.0032,11.854
5.8598,6.8233
8.3829,11.886
7.4764,4.3483
8.5781,12
6.4862,6.5987
5.0546,3.8166
5.7107,3.2522
14.164,15.505
5.734,3.1551
8.4084,7.2258
5.6407,0.71618
5.3794,3.5129
6.3654,5.3048
5.1301,0.56077
6.4296,3.6518
7.0708,5.3893
6.1891,3.1386
20.27,21.767
5.4901,4.263
6.3261,5.1875
5.5649,3.0825
18.945,22.638
12.828,13.501
10.957,7.0467
13.176,14.692
22.203,24.147
5.2524,-1.22
6.5894,5.9966
9.2482,12.134
5.8918,1.8495
8.2111,6.5426
7.9334,4.5623
8.0959,4.1164
5.6063,3.3928
12.836,10.117
6.3534,5.4974
5.4069,0.55657
6.8825,3.9115
11.708,5.3854
5.7737,2.4406
7.8247,6.7318
7.0931,1.0463
5.0702,5.1337
5.8014,1.844
11.7,8.0043
5.5416,1.0179
7.5402,6.7504
5.3077,1.8396
7.4239,4.2885
7.6031,4.9981
6.3328,1.4233
6.3589,-1.4211
6.2742,2.4756
5.6397,4.6042
9.3102,3.9624
9.4536,5.4141
8.8254,5.1694
5.1793,-0.74279
21.279,17.929
14.908,12.054
18.959,17.054
7.2182,4.8852
8.2951,5.7442
10.236,7.7754
5.4994,1.0173
20.341,20.992
10.136,6.6799
7.3345,4.0259
6.0062,1.2784
7.2259,3.3411
5.0269,-2.6807
6.5479,0.29678
7.5386,3.8845
5.0365,5.7014
10.274,6.7526
5.1077,2.0576
5.7292,0.47953
5.1884,0.20421
6.3557,0.67861
9.7687,7.5435
6.5159,5.3436
8.5172,4.2415
9.1802,6.7981
6.002,0.92695
5.5204,0.152
5.0594,2.8214
5.7077,1.8451
7.6366,4.2959
5.8707,7.2029
5.3054,1.9869
8.2934,0.14454
13.394,9.0551
5.4369,0.61705
  • 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
  • 95
  • 96
  • 97

2. ex1data2.txt

2104,3,399900
1600,3,329900
2400,3,369000
1416,2,232000
3000,4,539900
1985,4,299900
1534,3,314900
1427,3,198999
1380,3,212000
1494,3,242500
1940,4,239999
2000,3,347000
1890,3,329999
4478,5,699900
1268,3,259900
2300,4,449900
1320,2,299900
1236,3,199900
2609,4,499998
3031,4,599000
1767,3,252900
1888,2,255000
1604,3,242900
1962,4,259900
3890,3,573900
1100,3,249900
1458,3,464500
2526,3,469000
2200,3,475000
2637,3,299900
1839,2,349900
1000,1,169900
2040,4,314900
3137,3,579900
1811,4,285900
1437,3,249900
1239,3,229900
2132,4,345000
4215,4,549000
2162,4,287000
1664,2,368500
2238,3,329900
2567,4,314000
1200,3,299000
852,2,179900
1852,4,299900
1203,3,239500
  • 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