Espero que esta pergunta seja a mais adequada neste site ...
Em Python, geralmente o nome da classe é definido usando a letra maiúscula como seu primeiro caractere, por exemplo
class Vehicle:
...
No entanto, no campo de aprendizado de máquina, muitas vezes os dados de treinamento e teste são definidos como X
e Y
- não x
e y
. Por exemplo, agora estou lendo este tutorial no Keras , mas ele usa as X
e Y
como suas variáveis:
from sklearn import datasets
mnist = datasets.load_digits()
X = mnist.data
Y = mnist.target
Por que estes são definidos como letras maiúsculas? Existe alguma convenção (pelo menos em Python) no campo de aprendizado de máquina de que é melhor usar a letra maiúscula para definir essas variáveis?
Ou talvez as pessoas distinguam as variáveis maiúsculas e minúsculas no aprendizado de máquina?
De fato, o mesmo tutorial posteriormente distingue essas variáveis da seguinte maneira:
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)
Respostas:
As variáveis X (e algumas vezes Y) são matrizes.
Em algumas notações matemáticas, é prática comum escrever nomes de variáveis de vetor como minúsculas e nomes de variáveis de matriz como maiúsculas. Geralmente, eles estão em negrito ou têm outras anotações, mas isso não se traduz bem no código. De qualquer maneira, acredito que a prática foi transferida dessa notação.
Você também pode observar no código, quando a variável de destino é uma única coluna de valores, ela é gravada
y
, então você temX, y
Obviamente, isso não tem significado semântico especial no Python e você é livre para ignorar a convenção. No entanto, como se tornou uma convenção, pode valer a pena mantê-lo se você compartilhar seu código.
fonte
Eu acho que isso não tem nada a ver com Python, mas com matemática. X é uma matriz e y é um vetor (na maioria das vezes). Normalmente, letras maiúsculas são usadas para matrizes e letras minúsculas são usadas para vetores.
É por isso que você costuma ver algo assim ( nos exemplos do sklearn ):
ou que (do mesmo exemplo):
Aqui X_red é uma matriz mxn (maiúscula) e x_min é um vetor (minúscula) de comprimento n.
fonte
Y
também é maiúsculo, apesar de ser um vetor? (Y.shape
retornos(1797,)
, FYI)