Saya harap pertanyaan ini adalah yang paling cocok di situs ini ...
Dalam Python, biasanya nama kelas didefinisikan menggunakan huruf kapital sebagai karakter pertama, misalnya
class Vehicle:
...
Namun, dalam bidang pembelajaran mesin, sering kali melatih dan menguji data didefinisikan sebagai X
dan Y
- bukan x
dan y
. Sebagai contoh, saya sekarang membaca tutorial ini di Keras , tetapi ia menggunakan X
dan Y
sebagai variabel-variabelnya:
from sklearn import datasets
mnist = datasets.load_digits()
X = mnist.data
Y = mnist.target
Mengapa ini didefinisikan sebagai huruf kapital? Apakah ada konvensi (setidaknya dalam Python) di antara bidang pembelajaran mesin bahwa lebih baik menggunakan huruf kapital untuk mendefinisikan variabel-variabel ini?
Atau mungkin orang membedakan variabel huruf besar dan kecil dalam pembelajaran mesin?
Bahkan tutorial yang sama kemudian membedakan variabel-variabel ini seperti yang berikut:
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)
Jawaban:
Variabel X (dan kadang-kadang Y) adalah matriks.
Dalam beberapa notasi matematika, adalah praktik umum untuk menulis nama variabel vektor sebagai huruf kecil dan nama variabel matriks sebagai huruf besar. Seringkali ini dicetak tebal atau memiliki anotasi lain, tetapi itu tidak diterjemahkan dengan baik ke kode. Either way, saya percaya bahwa latihan telah ditransfer dari notasi ini.
Anda juga dapat melihat dalam kode, ketika variabel target adalah satu kolom nilai, itu ditulis
y
, jadi Anda milikiX, y
Tentu saja, ini tidak memiliki makna semantik khusus dalam Python dan Anda bebas untuk mengabaikan konvensi. Namun, karena sudah menjadi konvensi, mungkin perlu dipertahankan jika Anda membagikan kode Anda.
sumber
Saya pikir ini tidak ada hubungannya dengan Python tetapi dengan matematika. X adalah matriks dan y adalah vektor (sebagian besar waktu). Biasanya huruf besar digunakan untuk matriks dan huruf kecil digunakan untuk vektor.
Itu sebabnya Anda sering melihat sesuatu seperti ini ( dari contoh sklearn ):
atau itu (dari contoh yang sama):
Di sini X_red adalah matriks mxn (huruf besar) dan x_min adalah vektor (huruf kecil) dengan panjang n.
sumber
Y
juga huruf besar meskipun vektor? (Y.shape
pengembalian(1797,)
, FYI)