[PYTHON] [Empfohlenes Tagging für maschinelles Lernen # 4] Skript für maschinelles Lernen ...?

<ENGLISH>

Hi, I hope you're doing well. I'm so sleepy... because gym activities in morning time. But I'd like to resume my process ... with drink :stuck_out_tongue_closed_eyes: yahoo!

So today's topic is finally ... machine learning! we already got necessary elements for learning ant test, so only what I have to do, train my machine! Start ... but I have to say one thing before starting.

I can't do coding of Machine Learning...!

Really sorry, oh, stop!! don't through a stone in you hand ... yep, light. I don't make it actually I can't. Instead, I'd like to use script from another site. And I think you know it. Here. Beginnen wir mit maschinellem Lernen Teil 3 Implementieren wir einen Bayes'schen Filter --gihyo.jp This is very good site for learning Machine Learning as entrance. I really recommend it.

So today, that's call it for today... ? Humm. Actually I have to change some points to apply to my purpose. I'd like to show some change how I can change it. Nothing of machine learning today...

def train(self, doc, cat):
word = getwords(doc)
for w in word:
    self.wordcountup(w, cat)
self.catcountup(cat)

This is train function: Got words in doc then cat value amounts are counted up for the words. However this is only for one category by one web content. However there are two or upper category will also be tagged for one web content. So I changed the script like this.

def train(self, doc, cats):
word = getwords(doc)
for w in word:
    for cat in cats:
        self.wordcountup(w, cat)
        self.catcountup(cat)

Use cats value as list. Not single string. using for to count up each category by words.

Next is to modifying the result showing. Original script is like this.

def classifier(self, doc):
    best = None
    max = -sys.maxint
    word = getwords(doc)

    for cat in self.catcount.keys():
        prob = self.score(word, cat)
        if prob < max:
            max = prob
            best = cat
    return best

This function returns the best category name. However I'd like to show all category and probability. So I modified like this.

def classifier(self, doc):
    best = None
    max = -sys.maxint
    word = getwords(doc)
    pList = []
    
    for cat in self.catcount.keys():
        prob = math.exp(self.score(word, cat))
        pList.append([cat, self.score(word, cat)]) 

    return sorted( pList, key=lambda prob: prob[1], reverse=True)

Previous code, just return maximum probably tag. But I'd like to know all tag's result. so return the list.

The engine of machine language is just using other person's idea... Next I'd like to show you the result of the machine learning and consideration.

Hallo, das ist Umemura.

Ich schreibe immer einen Satz, nachdem ich eine Dose Bier getrunken habe. Es ist gut, aber es ist genau richtig.

Also, heute werde ich endlich zum Hauptkreis des maschinellen Lernens gehen. Nein, es tut mir leid, dass ich Sie bisher warten ließ. Es wird endlich beginnen. Nein, nein. .. Ich muss mich für eine Sache entschuldigen.

** Wir werden dieses Mal kein maschinelles Lernen codieren! ** **.

Nein, hör auf und wirf keine Steine! ··· Korrekt. Ich werde es nicht tun. Das kann ich nicht sagen. Stattdessen verwenden wir den Beispielcode von Native Bayes von der folgenden Site für maschinelles Lernen.

Beginnen wir mit maschinellem Lernen Teil 3 Implementieren wir einen Bayes'schen Filter --gihyo.jp

Dieser Artikel und diese Serie sind sehr lehrreich. Eigentlich habe ich mit diesem Artikel auch als Ausgangspunkt maschinelles Lernen begonnen. Es ist eine sehr höfliche Struktur, dass jeder am maschinellen Lernen arbeiten kann, wenn er sich an die Kenntnisse der Mathematikwahrscheinlichkeit, Algebra und Differenzierung der High School erinnert.

Nun, der heutige Inhalt ist vorbei. .. .. Na dann! Ich bin einsam, deshalb möchte ich heute vorstellen, wie ich diesen Native Bayes-Code geändert habe. Zunächst der folgende Teil.

def train(self, doc, cat):
word = getwords(doc)
for w in word:
    self.wordcountup(w, cat)
self.catcountup(cat)

Hier ist doc ein zu lernender Satz und cat ein anzuwendendes Tag, aber das Original hat die Form, dass nur ein Tag an einen Satz angehängt werden kann. Dieses Mal können wir jedoch mehrere Tags hinzufügen. Setzen wir also Katze auf Katzen, damit wir eine Liste mit Tags erstellen können.

def train(self, doc, cats):
word = getwords(doc)
for w in word:
    for cat in cats:
        self.wordcountup(w, cat)
        self.catcountup(cat)

Es ist einfach, die Anzahl der Erscheinungsbilder jedes Tags in der Liste entsprechend zu erhöhen.

Und als nächstes. Um das Ergebnis der Schätzungsbeurteilung anzuzeigen, gibt das ursprüngliche Skript nur das Tag mit der höchsten Wahrscheinlichkeit zurück.

def classifier(self, doc):
    best = None
    max = -sys.maxint
    word = getwords(doc)

    for cat in self.catcount.keys():
        prob = self.score(word, cat)
        if prob < max:
            max = prob
            best = cat
    return best

Das reicht nicht aus, also werde ich versuchen, alle Tags und ihre Wahrscheinlichkeiten (tatsächlich logarithmisch) zurückzugeben. In absteigender Reihenfolge der Wahrscheinlichkeit sortiert.

def classifier(self, doc):
    best = None
    max = -sys.maxint
    word = getwords(doc)
    pList = []
    
    for cat in self.catcount.keys():
        prob = math.exp(self.score(word, cat))
        pList.append([cat, self.score(word, cat)]) 

    return sorted( pList, key=lambda prob: prob[1], reverse=True)

Übrigens möchte ich heute ein Skript für maschinelles Lernen vorstellen. Beim nächsten Mal möchte ich dieses Skript verwenden, um die Ergebnisse zu trainieren und anzuzeigen. Und ich möchte verschiedene Ergebnisse berücksichtigen.

Wir sehen uns wieder!

Recommended Posts

[Empfohlenes Tagging für maschinelles Lernen # 4] Skript für maschinelles Lernen ...?
[Empfohlenes Tagging beim maschinellen Lernen # 2] Erweiterung des Scraping-Skripts
[Empfohlenes Tagging beim maschinellen Lernen # 2.5] Änderung des Scraping-Skripts
[Empfohlenes Tagging mit maschinellem Lernen # 1] Scraping von Hatena-Blog-Artikeln
Empfohlene Studienreihenfolge für Anfänger des maschinellen Lernens / Deep Learning
Japanische Vorverarbeitung für maschinelles Lernen
Bildersammlung Python-Skript zum Erstellen von Datensätzen für maschinelles Lernen
Maschinelles Lernen
<Für Anfänger> Python-Bibliothek <Für maschinelles Lernen>
Informationen zum maschinell erlernten Meeting für HRTech
Zusammenfassung der empfohlenen APIs für künstliche Intelligenz, maschinelles Lernen und KI
Verstärken Sie Bilder für maschinelles Lernen mit Python
Erste Schritte für Anfänger des maschinellen Lernens (KI)
Eine Einführung in OpenCV für maschinelles Lernen
2020 Empfohlen 20 Auswahlmöglichkeiten für einführende Bücher zum maschinellen Lernen
[Shakyo] Begegnung mit Python zum maschinellen Lernen
[Python] Webanwendungsdesign für maschinelles Lernen
Eine Einführung in Python für maschinelles Lernen
Erstellen einer Entwicklungsumgebung für maschinelles Lernen
Empfohlen für get_or_new
[Memo] Maschinelles Lernen
Beispiel für maschinelles Lernen
Eine Einführung in maschinelles Lernen für Bot-Entwickler
Beginn des maschinellen Lernens (empfohlene Unterrichtsmaterialien / Informationen)
Maschinelles Lernen ab 0 für theoretische Physikstudenten # 1
[Python] Sammeln Sie Bilder mit Icrawler für maschinelles Lernen [1000 Blatt]
Maschinelles Lernen ab 0 für theoretische Physikstudenten # 2
Sammeln Sie Bilder für maschinelles Lernen (Bing Search API)
[Für Anfänger] Einführung in die Vektorisierung beim maschinellen Lernen
Zusammenfassung des Lernprogramms für maschinelles Lernen
Erstellen Sie mit Python eine interaktive Umgebung für maschinelles Lernen
Maschinelles Lernen ⑤ AdaBoost-Zusammenfassung
Maschinelles Lernen: Betreut --AdaBoost
Python-Lernnotiz für maschinelles Lernen von Chainer aus Kapitel 2
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 1 und 2
Stärkung des Lernens der dritten Zeile
Maschinelles Lernen unterstützt Vektormaschine
Maschinelles Lernen studieren ~ matplotlib ~
Lineare Regression des maschinellen Lernens
Memo zum Kurs für maschinelles Lernen
Vorbereitung zum Starten von "Python Machine Learning Programming" (für macOS)
Bibliothek für maschinelles Lernen dlib
Maschinelles Lernen (TensorFlow) + Lotto 6
[Python] Ich habe einen Klassifikator für Iris erstellt [Maschinelles Lernen]
Lerne irgendwie maschinelles Lernen
Lernmethode zum Lernen von maschinellem Lernen von Grund auf neu (Version März 2020)
Zusammenfassung zum Lernen von RAPIDS
14 E-Mail-Newsletter zum Sammeln von Informationen zum maschinellen Lernen
Konstruktionsnotiz für eine maschinelle Lernumgebung von Python
xgboost: Effektives Modell für maschinelles Lernen für Tabellendaten
Bibliothek für maschinelles Lernen Shogun
Maschinelles Lernen Kaninchen Herausforderung
Einführung in das maschinelle Lernen
Alles für Anfänger, um maschinelles Lernen zu können
Maschinelles Lernen: k-Nächste Nachbarn
Was ist maschinelles Lernen?
Neuerstellung der Umgebung für maschinelles Lernen mit Miniconda (Windows-Version)
Leistungsüberprüfung der Datenvorverarbeitung für maschinelles Lernen (numerische Daten) (Teil 2)
Die Verwendung von icrawler zum Sammeln von Daten zum maschinellen Lernen wurde vereinfacht
Ich habe versucht, Tensorboard zu verwenden, ein Visualisierungstool für maschinelles Lernen