En apprentissage supervisé (retour, classement), la réponse est connue Il s'agit de former l'IA à l'aide de données (un ensemble de valeurs d'entrée et de valeurs de sortie correspondantes).
Pour les ensembles de données sans réponse, par opposition à l'apprentissage supervisé Il y a un apprentissage non supervisé dans lequel l'IA décide elle-même de la réponse.
Vous en apprendrez davantage sur le «clustering» et «l'analyse des composants principaux», qui sont un apprentissage non supervisé.
Il existe une technique appelée «clustering» en tant que représentative de l'apprentissage non supervisé. Une opération qui divise les données en "clusters" En japonais, la division des données est parfois appelée «clustering».
Ce qui suit montre comment les données sont manipulées en utilisant la "méthode k-means" comme exemple de clustering.
Les points noirs sont l'état avant le regroupement. Le point violet est un paramètre appelé «centre de gravité» des données. La méthode k-means apprend la position optimale de ce centre de gravité à partir des données. Regroupez les données en utilisant le centre de gravité appris.
Il existe deux types de clustering: une estimation automatique du nombre de clusters et une méthode déterminée par l'homme.
k-La méthode des moyens est l'une des méthodes que les êtres humains utilisent pour décider du nombre de grappes.
Le but de l'apprentissage non supervisé est de capturer et d'analyser mécaniquement les caractéristiques des données que vous souhaitez analyser. Pour cette raison, il y a aussi l'idée qu'il vaut mieux que les gens ne déterminent pas le nombre de grappes.
Une technique dite «hiérarchique» est une technique qui estime automatiquement le nombre de clusters. Cependant, la méthode hiérarchique nécessite une quantité relativement importante de calculs. Si vous avez beaucoup de données, une approche non hiérarchique peut être appropriée.
«L'analyse des composants primaires» est une technique souvent utilisée pour «réduire les dimensions» des données sous forme de graphiques.
La réduction de dimension consiste à abaisser la dimension qui représente les données. Par exemple, vous pouvez créer un graphique à deux dimensions en réduisant un axe de coordonnées à partir de données en trois dimensions.
Prenons un exemple concret. Supposons que vous ayez beaucoup de données sur vos élèves, telles que les résultats des tests, les questions en classe, les arrivées tardives et le temps de sommeil. Comment pouvez-vous représenter graphiquement les caractéristiques des élèves à partir de ces données?
Vous pourrez peut-être créer un graphique pour chaque donnée. Cependant, il est difficile d'analyser la tendance de centaines ou de milliers d'élèves à partir de plusieurs graphiques. Avec l'analyse des composants principaux, vous pouvez combiner différents types de données pour créer un seul graphique, tel que 2D ou 3D, tout en préservant autant que possible les informations de chaque donnée.
Comme dans l'exemple ci-dessus, vous pouvez le convertir en données à l'aide de l'analyse des composants principaux. Tout d'abord, la machine apprend les axes (composants principaux) qui indiquent spécifiquement les caractéristiques des données. Si vous recréez le graphique avec les axes appris, vous pouvez facilement voir toutes les données dans un graphique comme indiqué ci-dessus, tout en conservant les informations autant que possible. La méthode de détermination de cet axe est le contour de l'analyse en composantes principales.
Étant donné les coordonnées x (x1, x2), y (y1, y2) des deux points La distance entre deux points peut être calculée à partir du théorème de Pitagolas.
Plus généralement, une extension de celle-ci entre deux points dans un espace à n dimensions
C'est ce qu'on appelle la distance euclidienne.
La «distance» dans un espace de n = 4 ou plus ne peut plus être imaginée par la reconnaissance spatiale intuitive humaine, mais dans la formule mathématique, la formule simplement étendue comme ci-dessus est définie comme la distance. .. La distance euclidienne est aussi parfois appelée la norme.
Vous pouvez également utiliser numpy pour trouver la distance euclidienne.
import numpy as np
vec_a = np.array([1, 2, 3])
vec_b = np.array([2, 3, 4])
print(np.linalg.norm(vec_a - vec_b))
Lorsque le vecteur bidimensionnel a → = (a1, a2), b → = (b1, b2) est donné Je voudrais évaluer la similitude de ces deux vecteurs (en fait une sorte de données bidimensionnelles).
Les propriétés qui représentent un vecteur sont «longueur» et «direction». Ici, nous nous concentrons sur la «direction». Quelle est la similitude des «directions» auxquelles les deux vecteurs font face? Vous pouvez le considérer simplement comme correspondant à l'angle entre ces deux vecteurs.
Si l'angle entre les deux vecteurs est θ, plus θ est petit, plus les deux données seront similaires. Ici, la formule pour calculer le produit interne des vecteurs
Si vous calculez un peu
Ce sera. Plus le θ est petit, plus le cos θ est grand.
D'après ce qui précède, il a été constaté que cosθ représente la similitude entre les deux données. Le cos de l'angle ainsi formé est utilisé comme indice de la similitude des données.
C'est ce qu'on appelle la "similitude cosinus".
Étendez la "similarité cosinus" afin qu'elle puisse être utilisée pour des données à n dimensions ainsi que pour la distance euclidienne. Lorsque deux vecteurs à n dimensions a → = (a1, a2, ⋯, an), b → = (b1, b2, ⋯, bn) sont donnés La "similarité cosinus" est exprimée par la formule suivante.
De plus, la similitude cosinus peut être calculée avec le code suivant.
import numpy as np
vec_a = np.array([1, 2, 3])
vec_b = np.array([2, 3, 4])
print(np.dot(vec_a, vec_b) / (np.linalg.norm(vec_a) * np.linalg.norm(vec_b)))
Recommended Posts