J'espère que cette question est la plus appropriée sur ce site ...
En Python, le nom de classe est généralement défini en utilisant la majuscule comme premier caractère, par exemple
class Vehicle:
...
Cependant, dans le domaine de l'apprentissage automatique, les données d'entraînement et de test sont souvent définies comme X
et Y
- pas x
et y
. Par exemple, je lis maintenant ce tutoriel sur Keras , mais il utilise le X
et Y
ses variables:
from sklearn import datasets
mnist = datasets.load_digits()
X = mnist.data
Y = mnist.target
Pourquoi sont-ils définis comme des majuscules? Existe-t-il une convention (au moins en Python) dans le domaine de l'apprentissage automatique selon laquelle il est préférable d'utiliser la lettre majuscule pour définir ces variables?
Ou peut-être que les gens distinguent les variables majuscules des minuscules dans l'apprentissage automatique?
En fait, le même didacticiel distingue plus tard ces variables comme suit:
from sklearn.cross_validation import train_test_split
train_X, test_X, train_y, test_y = train_test_split(X, Y, train_size=0.7, random_state=0)
Réponses:
Les variables X (et parfois Y) sont des matrices.
Dans certaines notations mathématiques, il est courant d'écrire les noms de variables vectorielles en minuscules et les noms de variables matricielles en majuscules. Souvent, ceux-ci sont en gras ou ont d'autres annotations, mais cela ne se traduit pas bien en code. Quoi qu'il en soit, je pense que la pratique est passée de cette notation.
Vous pouvez également remarquer dans le code, lorsque la variable cible est une seule colonne de valeurs, elle est écrite
y
, vous avez doncX, y
Bien sûr, cela n'a pas de signification sémantique particulière en Python et vous êtes libre d'ignorer la convention. Cependant, comme c'est devenu une convention, il peut être utile de la conserver si vous partagez votre code.
la source
Je pense que cela n'a rien à voir avec Python mais avec les mathématiques. X est une matrice et y est un vecteur (la plupart du temps). Habituellement, les lettres majuscules sont utilisées pour les matrices et les lettres minuscules pour les vecteurs.
C'est pourquoi vous voyez souvent quelque chose comme ça (à partir d'exemples sklearn ):
ou que (du même exemple):
Ici X_red est une matrice mxn (majuscule) et x_min est un vecteur (minuscule) de longueur n.
la source
Y
également en majuscules alors qu'il s'agit d'un vecteur? (Y.shape
retourne(1797,)
, pour