Aidemy 2020/11/10
Hallo, es ist ja! Ich bin eine knusprige Literaturschule, aber ich war an den Möglichkeiten der KI interessiert, also ging ich zur AI-spezialisierten Schule "Aidemy", um zu studieren. Ich möchte das hier gewonnene Wissen mit Ihnen teilen und habe es in Qiita zusammengefasst. Ich freue mich sehr, dass viele Menschen den vorherigen zusammenfassenden Artikel gelesen haben. Vielen Dank! Dies ist der erste Beitrag der Einführung in die Erkennung. Freut mich, dich kennenzulernen.
Was diesmal zu lernen ・ Informationen zur Erkennung von Anomalien ・ Über die Hotelmethode und die Maharanobis-Entfernung ・ Über die einfache Bayes-Methode
-__ Abnormalitätserkennung ___ ist, wie der Name schon sagt, __abnormale Daten werden erfasst __. Insbesondere wird es häufig zur Erkennung von Anomalien bei Patienten im medizinischen Bereich und zur Erkennung von Systemfehlern verwendet. ・ In dieser Einheit wollen wir __ "Die Theorie der Anomalieerkennung verstehen" __ und __ "Implementierung eines einfachen Anomalieerkennungssystems" __.
・ Schauen wir uns die Muster von "Anomalien" an, die erkannt werden sollten.
-Der erste ist __ "Ausreißerwert" __. Obwohl es in der Vergangenheit mehrmals aufgetreten ist, sind Ausreißer __ "Werte, die weit von anderen Mengen entfernt sind" __. Es ist leicht zu verstehen, wenn es illustriert ist.
・ Abbildung![Screenshot 2020-11-02 17.27.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/2755124d-bcd2-2987- 4a35-ccbd77acea87.png)
-Das Problem der Erkennung von Ausreißern wird als __ "Ausreißererkennung" __ bezeichnet. Details werden in Kapitel 2 behandelt.
-Die zweite ist __ "Änderungspunkt" __. Der Änderungspunkt ist __ "Dinge, deren Werte sich anders verhalten" __. Wie in der folgenden Abbildung gezeigt, ist dieser Punkt der Änderungspunkt, wenn der __ -Wert von einem bestimmten Punkt aus stark ansteigt.
· Zahl
-Das Problem der Erkennung eines Änderungspunkts wird als __ "Änderungs- (Punkt-) Erkennung" __ oder __ "Erkennung abnormaler Teile" __ bezeichnet. Details werden in Kapitel 3 behandelt.
-__ "Abnormalität" __ ist ein quantitativer Hinweis darauf, wie abnormal der __- Wert ist. Grundsätzlich kann gesagt werden, dass der Wert umso abnormaler ist, je höher der Grad der Abnormalität ist. -Auch der Punkt __, der die Grenze zwischen __abnormal und normal darstellt, wird __ "Schwelle" __ genannt.
・ __ "(Anzahl der tatsächlich normalen Proben) / (Anzahl der tatsächlich normalen Proben)" __ "Richtige Antwortrate (normale Probengenauigkeit) ) ”__, und was durch “ 1-Normalrate ” dargestellt wird, ist __ falsche Berichtsrate __. Mit anderen Worten, die Fehlalarmrate ist __ "das Verhältnis von denen, die tatsächlich normal sind und denen, die als abnormal eingestuft wurden" __. -Diese Werte werden auch für die __genauigkeitsbewertung des Detektors verwendet.
・ Code zur Berechnung der Fehlalarmrate
-__ Hotelmethode __ ist eine der Methoden zur Erkennung von Ausreißern __. Wie oben erwähnt, sind der Grad der Anomalie und der Schwellenwert definiert. -Die zu verarbeitenden Daten werden nur dann effektiv angewendet, wenn die Bedingungen von __ "aus einer einzelnen Normalverteilung erzeugt" und "fast keine abnormalen Werte" __ erfüllt sind.
・ Der Ablauf der Hotelmethode ist wie folgt. ① Stellen Sie die .__ Falschberichtsrate __ selbst ein und berechnen Sie den __Threshold __ entsprechend. ② Berechnen Sie den Durchschnittswert __ und die Kovariationsmatrix __ der Werte, die als normal bezeichnet werden können. ③ Berechnen Sie die __Annormalität __ der Testdaten und beurteilen Sie sie als abnormal __, wenn sie den __Schwellenwert überschreitet.
・ Das Obige ist der Fluss, aber __ Daten werden als fast normal __ angesehen. Es kann auch gesagt werden, dass die Hotelmethode __ lehrerloses Lernen __ ist.
・ Im Ablauf der Hotelmethode ③ wird der Grad der Anomalie berechnet, der zu diesem Zeitpunkt verwendete Index ist jedoch __ "Maharanobis-Entfernung" __. Dieser Abstand ist __ "Abstand zwischen bestimmten Daten und dem Durchschnitt der gesamten Daten" __. -Wenn der normale Abstand berechnet wird, wird __ "Euklidischer Abstand" __ verwendet, jedoch für den Grad der Anomalie __ "Der Wert ändert sich stark in Abhängigkeit von der Größe der Dispersion (Skala)" "Die Korrelation zwischen Variablen kann nicht reflektiert werden" _ __ Kann wegen _ nicht verwendet werden. Andererseits ermöglicht der Maharanobis-Abstand die Berücksichtigung der __ Varianz durch __Normalisierung __ mit der __inversen Kovarianzmatrix __. Insbesondere wird die Dispersion berücksichtigt, indem der Einfluss der kleinen Dispersion verstärkt und der Einfluss der großen Dispersion geschwächt wird. -Auch können Sie die Korrelation zwischen jeder Merkmalsgröße durch Normalisierung __ korrigieren.
-Der Code lautet wie folgt (Details werden später beschrieben, um dasselbe in ② zu tun).
・ Von hier aus werden wir die Hotelmethode tatsächlich implementieren. __ Die Erkennung von Ausreißern durch die Hotelmethode __ wird als __ "T-Quadrat-Methode" __ bezeichnet. ・ Zuerst wird __der Schwellenwert berechnet __, aber Sie müssen die __ "Falschberichtsrate" einstellen, die für die Berechnung erforderlich ist. Wenn die Fehlalarmrate hoch eingestellt ist, können mehr Anomalien erkannt werden, und wenn sie niedrig eingestellt ist, können mehr normale Daten übrig bleiben. Auf diese Weise gibt es einen Kompromiss zwischen dem Eliminieren von __normalen Daten und dem Verlassen von normalen Daten __, daher ist es wichtig, den Wert entsprechend dem Fall festzulegen. Im Allgemeinen werden Werte wie 0,05 und 0,01 verwendet.
-Wenn falsche Informationen eingestellt werden und die Datenmenge ausreicht, wird der Schwellenwert mit der Methode __ "χ (Chi) Quadrat Test" __ eingestellt.
-Die Implementierung erfolgt mit __ "st.chi2.ppf ()" __. Übergeben Sie __ "1-False rate" __ im ersten Argument und __ Dimensionsnummer (Anzahl der Variablen) __ im zweiten Argument.
・ Code (Abnormalität a wird anhand der Maharanobis-Entfernung berechnet, diesmal jedoch weggelassen)
・ Um __outlier __ in ③ zu berechnen, ist es erforderlich, den oben genannten Maharanobis-Abstand zu erhalten, also __ "Durchschnittswert" __ und __ "Kovarianzmatrix" für diese Berechnung erforderlich. Nachfragen __. ・ Der Durchschnitt wird mit __np.mean (Daten, Achse = 0) __ berechnet. (Berechnet für jede Spalte mit Achse = 0) -Die Co-Verteilungsmatrix der Daten wird durch __np.cov (data.T) __ berechnet.
・ Code![Screenshot 2020-11-02 21.51.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/42a59e29-060e-420e- f9bf-a79bd4ffdcdf.png)
-Finally setzen Sie __data __ (x), __mean __ (Mittelwert) und inverse Kovarianzmatrix __ ( np.linalg.pinv (cov) __) in __distance.mahalanobis () __ Es kann durch Übergeben berechnet werden. ・ Vergleichen Sie dieses Ergebnis mit dem in ① berechneten __Threshold, um Anomalien zu erkennen.
・ Code![Screenshot 2020-11-02 22.07.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/4fec9fec-1ca8-52cb- 0fa2-01002f1a9729.png)
・ Führen Sie die obigen Schritte ① bis ③ aus. Der Code lautet wie folgt.
・ Ergebnis (Rot ist nicht in Ordnung (abnormal), Blau ist normal)
-Abnormalitätserkennungsmethoden einschließlich der Hotelmethode haben den Nachteil von __ "Wenn die Anzahl der Variablen zunimmt (die Anzahl der Dimensionen nimmt zu), nimmt der Rechenaufwand zu und es wird zu kompliziert" __. Um dies zu lösen, wird __ "Simple Bayes Method" __ verwendet, eine __ Methode, die das Problem mehrerer Variablen zu einem Problem einer Variablen (einer Dimension) macht. -Die Grundidee der einfachen Bayes-Methode lautet __ "Da keine Korrelation zwischen Variablen besteht, wird die Wahrscheinlichkeit, dass mehrere Ereignisse auftreten, durch das Produkt jeder Wahrscheinlichkeit ausgedrückt" __. Beispielsweise wird beim Problem des zweimaligen Werfens von Münzen die Wahrscheinlichkeit, dass die Tabelle beide Male angezeigt wird, als "1/2 * 1/2" ausgedrückt. Durch Anwenden dieser kann die Wahrscheinlichkeit, ob die Daten abnormal oder normal sind, durch das Produkt der Wahrscheinlichkeit (gewichtet) jeder Variablen erhalten werden, die abnormal ist. -Das heißt, bei der einfachen Bayes-Methode kann __Annormalität durch das innere Produkt aus Daten und Gewicht berechnet werden (während die Dimension auf 1 gesetzt wird). Außerdem wird der __Threshold nicht wie die __hotelling-Methode berechnet, sondern durch __optimieren unter Verwendung der Verifizierungsdaten. -Die Bedingung, dass die einfache Bayes-Methode verwendet werden kann, ist __ "Die Datenvariable muss eine Ganzzahl von 0 oder mehr sein" __. ・ Der Durchfluss ist wie folgt. ① Berechnen Sie das Gewicht aus den Trainingsdaten nach der Bayes-Methode __ ② Optimieren Sie den Schwellenwert aus den Bewertungsdaten __ ③ Berechnen Sie den Grad der Abnormalität und vergleichen Sie ihn mit dem Schwellenwert
-Für den obigen Ablauf werden wir uns in Kapitel 2 und höher mit dem Problem befassen, dass die einfache Bayes-Methode verwendet wird __ "Erkennung abnormaler Werte in Dokumenten" __.
-Nicht auf die Erkennung von Anomalien beschränkt, gibt es bei der Datenverarbeitung die Idee, dass __ "Wenn Daten als Vektor betrachtet werden, wenn das innere Produkt mit einem geeigneten Vektor genommen wird, ein numerischer Wert erhalten werden kann, der die Eigenschaften der Daten darstellt" __ .. Der zu diesem Zeitpunkt "geeignete Vektor" heißt __ "Gewichtsvektor" __.
・ In Bezug auf die diesmal durchgeführte "Erkennung abnormaler Werte von Dokumenten" wird unter Berücksichtigung von Spam-Bewertungen von E-Mails eine morphologische Analyse von E-Mails (Dokumenten) durchgeführt, die Anzahl der Datenerscheinungen, die zur Identifizierung verwendet werden können, wie z. B. die Nomenklatur, und dies und Spam Übergeben Sie das Etikett, ob das Gewicht erstellt werden soll oder nicht. (Das ist __ lehrreiches Lernen __)
Danach wird das neu übergebene Dokument auf die gleiche Weise morphologisch analysiert und der abnormale Wert durch Multiplikation der Anzahl der Vorkommen und des erstellten Gewichts berechnet.
Darüber hinaus geben die Daten zum Erkennen abnormaler Werte in einem Dokument die Häufigkeit des Auftretens als __ "Wort-Bagging-Ausdruck" __ an. Siehe insbesondere den folgenden Code. Dies bedeutet, dass "hoge" und "foo" nicht erschienen sind und "bar", "po" und "do" 3, 4 bzw. 1 Mal erschienen sind.
-__ Die Gewichtsberechnung __ ist __ "np", wenn das Gewicht der normalen Daten (X0) "w0" und das Gewicht der abnormalen Daten (X1) in den Trainingsdaten "X_train" "w1" ist. Es kann durch ".log (w1 / w0)" __ erhalten werden. -Daher ist es notwendig, __w0 bzw. w1 zu finden. __ "(Gesamtzahl der Erscheinungen jedes Wortes in allen normalen Daten) ÷ (Gesamtzahl der Erscheinungswörter in allen normalen Daten)" __, aber wenn der Logarithmus in np.log verwendet wird, sollte das Gewicht nicht 0 sein , __ Addiere "alpha = 1" __. Dies nennt man __ "Einsteigen" __. -Die Gesamtzahl der Vorkommen jedes Wortes wird mit __ "np.sum (X0, Achse = 0)" __ (für normale Daten) berechnet. Die Gesamtzahl der Wörter wird mit __ "np.sum (X0)" __ berechnet.
・ Code![Screenshot 2020-11-03 15.00.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/aaae2407-1169-6915- 8c1d-5e475662ef9e.png)
・ Ergebnis (nur Teil)![Screenshot 2020-11-03 15.01.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/d12ccefe -4b34-d290-260d-60cc82c2744e.png)
・ Die Gewichtsberechnung von ① wurde anhand der Trainingsdaten (X_train) durchgeführt, die Optimierung des Schwellenwerts erfolgt jedoch anhand der Bewertungsdaten __ "X_valid" . -Optimieren Sie den Schwellenwert mit __ "metrics.roc_curve () ". Die Bezeichnung der Bewertungsdaten __ "y_valid" __ kann an das erste Argument übergeben werden, und der Grad der Abnormalität der Bewertungsdaten __ kann an das zweite Argument übergeben werden.
・ Code![Screenshot 2020-11-03 16.14.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/83c470ec-7235-3cd6- a7f0-97573bd33d21.png)
-Finally, wie im vorherigen Abschnitt erwähnt, wird der Grad der Abnormalität durch __ "np.dot ()" __ berechnet und mit dem Schwellenwert verglichen. (Code weggelassen)
-Anormale Muster umfassen __ "Ausreißer" und "Änderungspunkte" __. Dies zu erkennen ist Abnormalitätserkennung. -Eine der Methoden zum Erkennen von Ausreißern ist __ "Hotelling-Methode" __. Bei der Hotelmethode wird zuerst der __Threshold __ bestimmt, der die Grenze zwischen "abnormal oder normal" darstellt, und dann wird der Grad der Anomalie aus dem __Mittelwert der Daten und der (inversen) Kovarianzmatrix __ berechnet. Durch Vergleichen dieser Schwelle mit dem Grad der Abnormalität wird festgestellt, ob sie abnormal oder normal ist.
Diese Zeit ist vorbei. Vielen Dank für das Lesen bis zum Ende.
Recommended Posts