Mam nadzieję, że to pytanie jest najbardziej odpowiednie na tej stronie ...
W Pythonie zwykle nazwa klasy jest definiowana na przykład za pomocą dużej litery
class Vehicle:
...
Jednak w dziedzinie uczenia maszynowego dane treningowe i testowe często są definiowane jako X
i Y
- nie x
i y
. Na przykład teraz czytam ten samouczek na temat Keras , ale używa on X
i Y
jako jego zmiennych:
from sklearn import datasets
mnist = datasets.load_digits()
X = mnist.data
Y = mnist.target
Dlaczego są one zdefiniowane jako wielkie litery? Czy istnieje jakaś konwencja (przynajmniej w Pythonie) w dziedzinie uczenia maszynowego, że lepiej jest używać dużej litery do definiowania tych zmiennych?
A może ludzie uczą się rozróżniać duże i małe litery w uczeniu maszynowym?
W rzeczywistości ten sam poradnik rozróżnia te zmienne w następujący sposób:
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)
Odpowiedzi:
Zmienne X (a czasem Y) są macierzami.
W niektórych notacjach matematycznych powszechną praktyką jest pisanie nazw zmiennych wektorowych małymi literami, a nazw zmiennych macierzowych dużymi literami. Często są one pogrubione lub mają inne adnotacje, ale nie przekładają się one dobrze na kod. Tak czy inaczej, uważam, że praktyka przeszła z tego zapisu.
Możesz również zauważyć w kodzie, że zmienna docelowa jest pojedynczą kolumną wartości, jest zapisana
y
, więc maszX, y
Oczywiście nie ma to specjalnego znaczenia semantycznego w Pythonie i możesz zignorować konwencję. Ponieważ jednak stał się konwencją, warto go zachować, jeśli udostępniasz swój kod.
źródło
Myślę, że nie ma to nic wspólnego z Pythonem, ale z matematyką. X jest macierzą, a y jest wektorem (przez większość czasu). Zwykle wielkie litery są używane w macierzach, a małe litery są używane w wektorach.
Dlatego często widzisz coś takiego ( z przykładów sklearn ):
lub że (z tego samego przykładu):
Tutaj X_red jest macierzą mxn (wielkie litery), a x_min jest wektorem (małe litery) o długości n.
źródło
Y
także wielka, mimo że jest wektorem? (Y.shape
zwraca(1797,)
, FYI)