Dieses Buch → Überarbeitete Version für maschinelles Lernen ab der Cloud <img src =" // ir-jp.amazon-adsystem.com/e/ir?t=kokkahasan-22&l=am2&o=9&a=4865941622 "width =" 1 "height =" 1 "border =" 0 "alt =" "style =" border: none! Wichtig; Rand: 0px! Wichtig; "/> Der Punkt ist, dass es einfach, aber nicht zu schwierig und ordentlich organisiert ist. Zusammenfassen.
Beispiel: Einzelhandelsumsatzprognose (prognostiziert zukünftige Umsätze durch Analyse anhand von Korrelationselementen wie Anzahl der Verkäufe im Vorjahr, Tag des Tages, Wetter, Treffer / Nicht-Treffer usw.
[Formel]
y: Anzahl der Verkäufe am Prognosedatum x1 ~ xm: Variablen wie Leistung, Kraftstoffart, Kraftstoffverbrauch, Radstand, Markenwert usw. w1 ~ wm: Partieller Regressionskoeffizient (Gewicht. Merkmalsgewicht) c: Konstante Laufzeit (Bias)
・ MAE (Mean Absolute Error) ・ ・ closer Je näher es an 0 liegt, desto besser Der Durchschnitt der Differenz zwischen dem vorhergesagten Wert und dem richtigen Antwortwert. ・ RMSE (Root Mean Squared Error):![Image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307441/f023e48a-386f -cb03-363a-b559a2c829a7.png) ・ Bestimmungskoeffizient Das Quadrat des Korrelationskoeffizienten zwischen dem vorhergesagten Wert und dem richtigen Antwortwert. Je näher es an 1 liegt, desto besser
・ Holdout-Methode Teilen Sie die Trainingsdaten für Training und Auswertung nach dem Zufallsprinzip auf ・ Kreuzvalidierung Teilen Sie die Trainingsdaten in k Teile. Und k mal Auswertung
· Regulierung
Fügen Sie einen Strafwert proportional zum Gewichtsparameter hinzu, um ein Übertraining aufgrund zu vieler Variablen und zu großer Gewichtsparameter zu vermeiden.
[Formel]
Addieren Sie die Summe der Quadrate der Gewichtungsparameter zur Summe der Quadrate des Fehlers zwischen dem vorhergesagten Wert und dem korrekten Antwortwert als Parameter.
Die Formel entspricht der linearen Regression. Ein Modell, bei dem der Gewichtungsparameter nicht konstant ist, sondern eine Wahrscheinlichkeitsverteilung.
In Anbetracht der Häufigkeit, mit der ein Ereignis aufgetreten ist, ist die Schätzung der maximalen Wahrscheinlichkeit (MLE: eine Methode zum Bestimmen des Gewichtsparameters, sodass der Fehler 0 wird) ungenau, wenn die Anzahl der Trainingsdaten nicht berücksichtigt wird. Werde es tun. (Vor- und Nachverteilung)
Beispiel: Prognostizieren Sie die Zahlungsfähigkeit, indem Sie Korrelationselemente wie Beruf, Jahreseinkommen, Einzahlungsbetrag und verspätete Zahlungsunfähigkeit bei der Kreditprüfung bei einer Bank analysieren.
Sagen Sie die Wahrscheinlichkeit voraus, mit der ein bestimmtes Ereignis eintreten wird.
[Formel]
x1 ~ xm: Variablen wie Alter, Tumorgröße, Malignität des Tumors, nicht in den Wechseljahren usw. w1 ~ wm: Partieller Regressionskoeffizient (Gewicht. Merkmalsgewicht) c: Konstante Laufzeit (Bias) P: Wahrscheinlichkeit Schätzen Sie positiv oder negativ, indem Sie den Wahrscheinlichkeitsschwellenwert beispielsweise auf 0,5 setzen
Wenn Klassen von A bis E erstellt werden, erstellen Sie für jede Klasse eine Unterscheidungsformel (die obige Formel) und weisen Sie die entsprechenden Daten der Klasse mit der höchsten Wahrscheinlichkeit zu.
Wenn Sie Klassen von A bis E machen, versuchen Sie alle Eins-zu-Eins-Kombinationen mit A-B, A-C, A-D ... Anzahl der Kombinationen k × (k-1) ÷ 2
mal. 10 mal für A ~ E. Die entsprechenden Daten werden der Klasse zugewiesen, die von den 10 Mal am meisten gewählt wurde.
・ Genauigkeitsrate ・ ・ ・ Je näher es an 100% liegt, desto besser Wenn 90% der Sonne scheint, beträgt die korrekte Antwortrate 90%, selbst wenn alle dummen Antworten korrekt sind.
・ True Positive Rate (TPR) ・ closer closer Je näher es an 100% liegt, desto besser Wie gut es nur für positive Daten passt
・ False Positive Rate (FPR) ・ closer closer Je näher es an 0% liegt, desto besser Wie viel wurde fälschlicherweise nur für negative Daten positiv gemacht
・ AUC (Fläche unter der Kurve) ・ ・ closer Je näher es an 1,0 liegt, desto besser Es gibt einen Kompromiss zwischen falsch positiver und wahrer positiver Rate. Daher werden die falsch-positive Rate und die wahr-positive Rate auf der ROC-Kurve grafisch dargestellt, und der Bereich unter der Kurve ist AUC.
・ Präzision: Je näher es an 100% liegt, desto besser Wie positiv sind die richtigen Antwortdaten für die Daten, bei denen die Vermutung positiv ist?
・ Rückruf: Je näher es an 100% liegt, desto besser Inwieweit konnte beurteilt werden, ob die Schätzdaten für das Positiv der richtigen Antwortdaten korrekt waren?
・ F-Wert (F1-Punktzahl) ・ ・ ・ Je näher er an 1,0 liegt, desto besser
Es gibt auch einen Kompromiss zwischen Rückruf und Präzision. Index, um dies umfassend zu beurteilen
Probieren Sie andere Methoden als die logistische Regression aus. Support Vector Machine (SVM), Entscheidungswald, verstärkter Entscheidungsbaum usw.
Beispiel: Wir klassifizieren die Kundenorientierung von Reisebüros in Gruppen wie Nahfeldorientierung, Überseeorientierung und Ausrichtung auf heiße Quellen und verteilen Verkaufsförderungsmaterialien basierend auf jeder Ausrichtung.
Wählen Sie Mittelpunktdaten einer beliebigen Anzahl von Clustern aus und klassifizieren Sie andere Daten anhand des euklidischen Abstands oder der Kosinusähnlichkeit in jeden Cluster.
Einfach. Der Abstand zwischen Punkt a und Punkt b in der Grafik.
Wenn es m Variablen gibt, [Formel]
Die Nähe der Richtung des Vektors. +1 für die gleiche Richtung, 0 für die Vertikale, -1 für die Gegenrichtung
[Formel]
Verbesserte k-means-Methode. Dies ist der Mainstream. Wählen Sie so weit wie möglich von der Mitte des Clusters. Außerdem ignoriert eine kleine Anzahl von Gruppen Daten, die weit voneinander entfernt sind.
Da es ohne Lehrer lernt, hat der Analytiker keine andere Wahl, als genau hinzuschauen.
·Normalisierung Skalieren Sie die Variable x mit einer großen Werteskala, sodass der Mittelwert 0 und die Standardabweichung 1 beträgt. Es heißt Z-Score (Z-Score).
Beispiel: Erkennen Sie Katastrophenvorläufer wie Kanonenwasser von stromaufwärts, mittel- und stromabwärts gelegenen Wasserstandssensoren von Flüssen.
One-Class SVM
Dichteschätzungsalgorithmus. Der normale Datenbereich wird durch einen Kreis dargestellt, und Daten, die nicht in diesen Kreis passen, werden als abnormal erkannt. Erfahren Sie, wie Sie den nach der folgenden Formel berechneten Wert minimieren.
[Formel]
R: Kreisradius
n: Anzahl der Daten
ζ: Die Länge der Daten außerhalb des Kreises
ν: Das Gewicht der vom Analysten angegebenen Strafe (je kleiner der Wert, desto mehr Trainingsdaten werden in den normalen Bereich aufgenommen. Wenn ν 0 ist, werden alle Trainingsdaten in einem Kreis enthalten).
Wenn die dichten Datenbereiche weit voneinander entfernt sind, ist der normale Bereich von einer verzerrten Kurve umgeben.
・ Präzision: Je größer der Wert, desto geringer die Erkennungsauslassung. Wie viele korrekte Daten sind auch "abnormal" für Daten, deren Anomalieerkennungsschätzung "abnormal" ist?
・ Rückruf: Je größer der Wert, desto geringer die Erkennungsauslassung. Wie viel wurden die Schätzdaten korrekt als "abnormal" für die "abnormal" der richtigen Antwortdaten beurteilt?
・ F-Wert (F1-Punktzahl) ・ ・ ・ Je näher er an 1,0 liegt, desto besser
Es gibt auch einen Kompromiss zwischen Rückruf und Präzision. Index, um dies umfassend zu beurteilen
Es gibt einen Kompromiss zwischen Präzision und Rückruf. Möchten Sie Auslassungen bei der Erkennung abnormaler Ereignisse reduzieren oder Fehlalarme reduzieren? Durch Erhöhen von ν wird der normale Bereich (z. B. 0,5) eingeengt. Im Gegenteil, wenn es auf 0,02 usw. eingestellt ist, liegt es im normalen Bereich. Stellen Sie in ML Studio η ein.
Kernelfunktion, die in Kernel-Tricks verwendet wird. RBF-Kernel (ML Studio Standard) ・ Polygonaler Kernel ・ Sigmaid-Kernel
・ Erkennung von Anomalien durch Hauptkomponentenanalyse (PCA-basierte Anomalieerkennung)
・ Erkennung von Zeitreihenanomalien (für Zeitreihendaten wie Temperaturänderungen und Aktienkursänderungen)
Beispiel: Amazon "Personen, die dieses Produkt gekauft haben, haben auch die folgenden Produkte gekauft"
Erraten Sie das empfohlene Produkt anhand der Bewertung, der von Ihnen angegebenen Präferenz und der Bewertung durch andere. Es gibt eine Artikelbasis und eine Benutzerbasis.
Wir empfehlen Produkte, die den Produkten, die der Benutzer mit einer hohen Punktzahl bewertet hat, sehr ähnlich sind.
Wählen Sie mehrere Benutzer mit hoher Ähnlichkeit zu Benutzern aus und empfehlen Sie jeweils Produkte mit hohen Punktzahlen
MatchBox
Durch die Betonungsfilterung werden Erstbenutzer und neue Produkte aus dem Moskito-Buch entfernt (Kaltstartproblem. Microsofts einzigartiger Algorithmus, der Informationen zu Produkt- und Benutzerattributen empfiehlt. Weitere schrittweise Anhäufung von Punktzahlen Wird auch zusammen verwendet.
【Formel】
κ ist die Anzahl der Attribute
Daher werden drei Arten von Lerndaten vorbereitet: Bewertungsdaten, Benutzerattributdaten und Produktattributdaten.
・ NDCG (Normarized Discounted Cumulative Gain) ・ closer closer Je näher es an 1,0 liegt, desto besser Standard ・ MAE (Mean Absolute Error) ・ ・ closer Je näher es an 0 liegt, desto besser Der Durchschnitt der Differenz zwischen dem vorhergesagten Wert und dem richtigen Antwortwert. ・ RMSE (Root Mean Squared Error):![Image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/307441/f023e48a-386f -cb03-363a-b559a2c829a7.png)
Passen Sie die Länge (κ) des Merkmalsvektors an. In MS Studio [Anzahl der Merkmale] von "Train Matchbox Recommender"
Wechseln Sie in den aktuellen Kampfmodus
Im aktuellen Kampfmodus
Klicken Sie unter [WEB-SERVICE EINRICHTEN] auf [Predictive Web Service].
Die Module [Webdienst-Eingabe] und [Webdienst-Ausgabe] werden hinzugefügt.
Entfernen Sie [Spalten im Datensatz auswählen] und setzen Sie [Webdienst-Eingabe] auf den Eingabeport von [Score Matchbox Recommender].
Klicken Sie auf Webdienst bereitstellen. Übergang zum folgenden Bildschirm. Ein API-Schlüssel wurde ausgegeben.
Klicken Sie auf ANFORDERN / ANTWORTEN, um ein weiteres Fenster mit Beispielcode am unteren Bildschirmrand zu öffnen.
Ändern Sie abc123 im Code api_key =" abc123 "
in Ihren eigenen. Ändern Sie die Werte im folgenden Code beispielsweise in die Benutzer-ID "U1048".
#Vorher ändern
data = {
"Inputs": {
"input1":
{
"ColumnNames": ["userID"],
"Values": [ [ "value" ], [ "value" ], ]
}, },
#Nach der veränderung
data = {
"Inputs": {
"input1":
{
"ColumnNames": ["userID"],
"Values": [ [ "U1048" ] ]
}, },
Speichern Sie es mit PythonApplication.py.
$ python PythonApplication.py
{"Results":{"output1":{"type":"table","value":{"ColumnNames":["User","Item 1","Item 2","Item 3","Item 4","Item 5"],"ColumnTypes":["String","String","String","String","String","String"],"Values":[["U1048","134986","135030","135052","135045","135025"]]}}}}
import urllib.request
# If you are using Python 3+, import urllib instead of urllib2
import json
data = {
"Inputs": {
"input1":
{
"ColumnNames": ["userID"],
"Values": [ [ "U1048" ] ]
}, },
"GlobalParameters": {
}
}
body = str.encode(json.dumps(data))
url = 'https://japaneast.services.azureml.net/workspaces/0e3c5988af4b43d7ac14fa55244b9f9d/services/53da3266168a4c8a8814e3adac2a6821/execute?api-version=2.0&details=true'
api_key = '<API-Schlüssel>' # Replace this with the API key for the web service
headers = {'Content-Type':'application/json', 'Authorization':('Bearer '+ api_key)}
req = urllib.Request(url, body, headers)
try:
response = urllib.urlopen(req)
# If you are using Python 3+, replace urllib2 with urllib.request in the above code:
# req = urllib.request.Request(url, body, headers)
# response = urllib.request.urlopen(req)
result = response.read()
print(result)
except urllib.request.HTTPError, error:
print("The request failed with status code: " + str(error.code))
# Print the headers - they include the requert ID and the timestamp, which are useful for debugging the failure
print(error.info())
print(json.loads(error.read()))
Ändern Sie einfach "urllib2" in "urllib.request".
das ist alles.
Recommended Posts