[PYTHON] Apprentissage supervisé 2 Hyper paramètres et réglage (1)

Aidemy 2020/9/25

introduction

Bonjour, c'est Yope! Je suis une école littéraire croustillante, mais j'étais intéressé par les possibilités de l'IA, alors je suis allé à l'école spécialisée en IA "Aidemy" pour étudier. Je voudrais partager les connaissances acquises ici avec vous, et je les ai résumées dans Qiita. Je suis très heureux que de nombreuses personnes aient lu l'article de synthèse précédent. Je vous remercie! Ceci est le deuxième poste de l'apprentissage supervisé. Ravi de vous rencontrer.

Quoi apprendre cette fois ・ À propos des hyper paramètres -Régression logistique, SVM linéaire, hyperparamètres SVM non linéaires

Hyper paramètres

Qu'est-ce qu'un hyper paramètre?

-Les paramètres d'hyper sont __ "zones (paramètres) que les gens doivent ajuster" __ dans le modèle d'apprentissage automatique. Les paramètres diffèrent selon le type de modèle. (Examiné individuellement dans les sections suivantes) -Ajuster artificiellement les paramètres hyper est appelé tuning. -Les paramètres peuvent être réglés lors de la construction d'un modèle. (La méthode sera décrite plus tard)

Hyperparamètres de régression logistique

Paramètre C

-Un des hyper paramètres de la régression logistique est C. (Valeur initiale 1.0) ・ C est un indice de __ "avec quelle fidélité la frontière est tracée sur les données de l'enseignant" __. Autrement dit, si la valeur de C est élevée, une ligne de démarcation est tracée afin que toutes les données de l'enseignant puissent être classées, mais on peut dire qu'un surentraînement est susceptible de se produire. -Spécifier comme __model = LogisticRegression (C = 1.0) __.

Pénalité de paramètre

-Le paramètre penalty est __ "lorsque le modèle devient trop compliqué, le montant de la caractéristique (L1) ou le poids global (L2) est réduit afin qu'il puisse être généralisé de manière appropriée" __. -Spécifiez comme penalty = L1 dans l'argument de LogisticRegression.

Paramètre multi_class

-Le paramètre multi_class indique __ "comportement lors de l'exécution de plusieurs classifications de classes" __. -Dans la régression logistique, dans la classification binaire, il est spécifié comme ovr, qui est le comportement «appartenant / n'appartenant pas à la classe». Dans la classification à plusieurs termes, il est spécifié comme multinomial, qui est le comportement de "à quel point il peut appartenir".

Paramètre random_state

-__ Random_state__ est __ "graine de nombres aléatoires qui déterminent l'ordre de traitement des données" __, et en corrigeant cela, l'ordre de traitement des données (= résultat d'apprentissage) est également fixé.

Hyperparamètres SVM linéaires

Chaque paramètre

-__ C__: Le contenu et l'utilisation sont les mêmes. Cependant, la modification de la valeur de C a un effet plus important sur le taux de précision que la régression logistique. -__ Pénalité : Identique à la régression logistique. - Multi_class__: Dans SVM linéaire, ovr et crammer_singer peuvent être spécifiés. Fondamentalement, ovr donne de meilleurs résultats. De plus, il n'est pas nécessaire de définir ce paramètre au moment de la classification binomiale. -__ Random_state__: Dans SVM linéaire, cette valeur affecte également lors de la détermination du vecteur de support, et le résultat peut changer légèrement.

Hyperparamètres SVM non linéaires

Paramètre C

-__ C__: Le contenu et l'utilisation sont les mêmes. Cependant, la pénalité se fait en ajustant la valeur de C.

Noyau de paramètre

-__ Kernel__ est un paramètre __ qui spécifie la fonction du noyau utilisée pour l'opération __ "convertir la classification non linéaire en classification linéaire", qui est la clé du traitement SVM non linéaire. Vous pouvez spécifier "rbf", "poly", "linear", "sigmoid" et "precalculé", mais "rbf", qui est la valeur par défaut et a un taux de précision élevé, est souvent utilisé. ・ «Rbf» et «poly» sont une projection stéréoscopique, «linéaire» est la même opération que SVM linéaire (il est donc rarement utilisé), «sigmoïde» est la même opération que le modèle de régression logistique et «précalculé» est déjà formaté. Utilisé à l'époque.

Paramètre decision_function_shape

-__ Decision_function_shape__ montre le comportement lors du choix de la classe à laquelle les données appartiennent, comme multi_class. Vous pouvez spécifier "ovo" et "ovr". -Ovo est une méthode dans laquelle deux classes sont combinées en une seule et chaque donnée est binomialisée pour tous les cas. ovr classe (directement) si les données appartiennent à cette classe. Étant donné qu'ovo a une plus grande quantité de calcul, l'opération a tendance à être lourde.

Paramètre random_state

-__ Random_state__: Pour les SVC non linéaires, un générateur de nombres aléatoires doit être créé séparément.

import numpy as np
from sklearn.svm import SVC
#Créer un générateur de nombres aléatoires
a = np.random.RandomState()
model = SVC(random_state = a)

Résumé

-Les paramètres qui doivent être ajustés artificiellement dans le modèle sont appelés hyperparameters, et les hyperparamètres qui doivent être définis varient en fonction du type de modèle. -Régression logistique, les hyper paramètres de SVM linéaire incluent __ "C" "pénalité" "multi_class" "random_state" __. -Les paramètres d'hyper de SVM non linéaire incluent __ "C" "noyau" "desicion_function_shape" "random_state" __.

Cette fois, c'est fini. Merci d'avoir lu jusqu'ici.

Recommended Posts

Apprentissage supervisé 3 hyper paramètres et réglage (2)
Apprentissage supervisé 2 Hyper paramètres et réglage (1)
Python: Apprentissage supervisé: Hyper Paramètres Partie 1
Apprentissage automatique: supervisé - AdaBoost
Python: réglage du Deep Learning
Apprendre avec un enseignant (retour) 1 Bases
Python: apprentissage supervisé (retour)
Python: apprentissage supervisé (classification)
Hyper réglage des paramètres avec LightGBM Tuner
Apprentissage d'ensemble et analyse de paniers
Machine Learning: Supervision - Régression linéaire
Deep running 2 Réglage de l'apprentissage profond
Apprendre avec l'enseignant 1 Principes de base de l'apprentissage avec l'enseignant (classification)
Machine Learning: Supervisé - Support Vector Machine
Machine learning supervisé (classification / régression)
Création, apprentissage et raisonnement de modèles d'apprentissage
Machine Learning: Supervisé - Arbre de décision
Importance de l'apprentissage automatique et de l'apprentissage par mini-lots
Forêt aléatoire (classification) et réglage des hyperparamètres
Organisez des plateformes d'apprentissage automatique et d'apprentissage en profondeur
Apprentissage automatique: analyse discriminante linéaire supervisée