Espero que esta pregunta sea la más adecuada en este sitio ...
En Python, por lo general, el nombre de la clase se define utilizando la letra mayúscula como primer carácter, por ejemplo
class Vehicle:
...
Sin embargo, en el campo del aprendizaje automático, a menudo los datos de entrenamiento y prueba se definen como X
y Y
- no x
y y
. Por ejemplo, ahora estoy leyendo este tutorial sobre Keras , pero usa el X
y Y
como sus variables:
from sklearn import datasets
mnist = datasets.load_digits()
X = mnist.data
Y = mnist.target
¿Por qué se definen como letras mayúsculas? ¿Existe alguna convención (al menos en Python) entre el campo de aprendizaje automático de que es mejor usar la letra mayúscula para definir estas variables?
¿O tal vez las personas distinguen las variables mayúsculas y minúsculas en el aprendizaje automático?
De hecho, el mismo tutorial luego distingue estas variables como las siguientes:
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)
Respuestas:
Las variables X (y a veces Y) son matrices.
En alguna notación matemática, es una práctica común escribir nombres de variables vectoriales como minúsculas y nombres de variables matriciales como mayúsculas. A menudo, estos están en negrita o tienen otra anotación, pero eso no se traduce bien en código. De cualquier manera, creo que la práctica se ha transferido de esta notación.
También puede observar en el código, cuando la variable de destino es una sola columna de valores, se escribe
y
, por lo que tieneX, y
Por supuesto, esto no tiene un significado semántico especial en Python y eres libre de ignorar la convención. Sin embargo, debido a que se ha convertido en una convención, puede valer la pena mantenerlo si comparte su código.
fuente
Creo que esto no tiene nada que ver con Python sino con las matemáticas. X es una matriz e y es un vector (la mayoría de las veces). Por lo general, las letras mayúsculas se usan para matrices y las letras minúsculas se usan para vectores.
Es por eso que a menudo ves algo como esto ( de ejemplos de sklearn ):
o eso (del mismo ejemplo):
Aquí X_red es una matriz mxn (mayúscula) y x_min es un vector (minúscula) de longitud n.
fuente
Y
también es mayúscula a pesar de que es un vector? (Y.shape
vuelve(1797,)
, para su información)