[PYTHON] [Balisage recommandé pour l'apprentissage automatique # 4] Script d'apprentissage automatique ...?

<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. Commençons par l'apprentissage automatique Partie 3 Implémentons un filtre bayésien --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.

Salut, c'est Umemura.

J'écris toujours une phrase après avoir bu une canette de bière. C'est bien, mais c'est juste.

Donc, aujourd'hui, je vais enfin passer au cercle principal de l'apprentissage automatique. Non, je suis désolé de vous avoir fait attendre si loin. Ça va enfin commencer. Non non. .. Je dois m'excuser pour une chose.

** Nous ne coderons pas l'apprentissage automatique cette fois! ** **

Non, arrêtez-vous et ne jetez pas de pierres! ··· C'est vrai. Je ne le ferai pas. Je ne peux pas dire ça. Au lieu de cela, nous utiliserons l'exemple de code de Native Bayes du site suivant pour l'apprentissage automatique.

Commençons par l'apprentissage automatique Partie 3 Implémentons un filtre bayésien --gihyo.jp

Cet article et cette série sont très instructifs. En fait, j'ai également commencé l'apprentissage automatique avec cet article comme point de départ. C'est une structure très polie que n'importe qui peut travailler sur l'apprentissage automatique une fois qu'il se souvient de la connaissance de la probabilité, de l'algèbre et de la différenciation en mathématiques au secondaire.

Eh bien, le contenu d'aujourd'hui est terminé. .. .. Eh bien! Je suis seul, alors aujourd'hui, je voudrais vous présenter comment j'ai modifié ce code Native Bayes. Tout d'abord, la partie suivante.

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

Ici, doc est une phrase à apprendre et cat est une balise à appliquer, mais l'original est sous une forme où une seule balise peut être attachée à une phrase. Cependant, cette fois, nous pouvons ajouter plusieurs balises, alors définissons cat sur chats afin que nous puissions mettre une liste de balises.

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

Il est facile d'augmenter le nombre d'apparences de chaque balise de la liste en conséquence.

Et ensuite. Quant à la manière d'afficher le résultat du jugement d'estimation, le script d'origine renvoie simplement la balise avec la probabilité la plus élevée.

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

Cela ne suffit pas à prendre en compte, donc je vais essayer de renvoyer toutes les balises et leurs probabilités (en fait logarithmiques). Trié par ordre décroissant de probabilité.

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)

En passant, je voudrais aujourd'hui vous présenter un script d'apprentissage automatique. La prochaine fois, j'aimerais utiliser ce script pour m'entraîner et montrer les résultats. Et je voudrais examiner divers résultats.

À la prochaine!

Recommended Posts

[Balisage recommandé pour l'apprentissage automatique # 4] Script d'apprentissage automatique ...?
[Balisage recommandé dans le machine learning # 2] Extension du script de scraping
[Balisage recommandé dans le machine learning # 2.5] Modification du script de scraping
[Balisage recommandé avec le machine learning # 1] Scraping d'articles de blog Hatena
Ordre d'étude recommandé pour les débutants en apprentissage automatique / apprentissage en profondeur
Prétraitement japonais pour l'apprentissage automatique
Script Python de collection d'images pour créer des ensembles de données pour l'apprentissage automatique
Apprentissage automatique
<Pour les débutants> bibliothèque python <Pour l'apprentissage automatique>
Informations sur les réunions d'apprentissage automatique pour HRTech
Résumé des API recommandées pour l'intelligence artificielle, l'apprentissage automatique et l'IA
Amplifiez les images pour l'apprentissage automatique avec Python
Premiers pas pour les débutants en apprentissage automatique (IA)
Une introduction à OpenCV pour l'apprentissage automatique
20 sélections recommandées en 2020 de livres d'introduction à l'apprentissage automatique
[Shakyo] Rencontre avec Python pour l'apprentissage automatique
[Python] Conception d'applications Web pour l'apprentissage automatique
Une introduction à Python pour l'apprentissage automatique
Créer un environnement de développement pour l'apprentissage automatique
Recommandé pour get_or_new
[Memo] Apprentissage automatique
Exemple d'apprentissage automatique
Une introduction à l'apprentissage automatique pour les développeurs de robots
Début de l'apprentissage automatique (matériel didactique / informations recommandés)
Apprentissage automatique à partir de 0 pour les étudiants en physique théorique # 1
[Python] Collectez des images avec Icrawler pour l'apprentissage automatique [1000 feuilles]
Apprentissage automatique à partir de 0 pour les étudiants en physique théorique # 2
Collecter des images pour l'apprentissage automatique (API Bing Search)
[Pour les débutants] Introduction à la vectorisation dans l'apprentissage automatique
Résumé du didacticiel d'apprentissage automatique
Créez un environnement interactif pour l'apprentissage automatique avec Python
Apprentissage automatique ⑤ Résumé AdaBoost
Apprentissage automatique: supervisé - AdaBoost
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer du chapitre 2
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer chapitres 1 et 2
Renforcer l'apprentissage de la troisième ligne
Machine de vecteur de support d'apprentissage automatique
Étudier l'apprentissage automatique ~ matplotlib ~
Régression linéaire d'apprentissage automatique
Mémo du cours d'apprentissage automatique
Préparation au démarrage de «Python Machine Learning Programming» (pour macOS)
Bibliothèque d'apprentissage automatique dlib
Apprentissage automatique (TensorFlow) + Lotto 6
[Python] J'ai créé un classificateur pour les iris [Machine learning]
Apprenez en quelque sorte le machine learning
Méthode d'étude pour apprendre le machine learning à partir de zéro (version mars 2020)
Résumé de l'apprentissage RAPIDS
14 newsletters par e-mail utiles pour collecter des informations sur l'apprentissage automatique
Mémo de construction d'environnement d'apprentissage automatique par Python
xgboost: modèle d'apprentissage automatique efficace pour les données de table
Bibliothèque d'apprentissage automatique Shogun
Défi de lapin d'apprentissage automatique
Introduction à l'apprentissage automatique
Tout pour que les débutants puissent faire du machine learning
Apprentissage automatique: k-voisins les plus proches
Qu'est-ce que l'apprentissage automatique?
Reconstruction de l'environnement pour l'apprentissage automatique avec Miniconda (version Windows)
Vérification des performances du prétraitement des données pour l'apprentissage automatique (données numériques) (partie 2)
Utilisation d'icrawler plus simple pour la collecte de données d'apprentissage automatique
J'ai essayé d'utiliser Tensorboard, un outil de visualisation pour l'apprentissage automatique