Я надеюсь, что этот вопрос является наиболее подходящим на этом сайте ...
В Python обычно имя класса определяется с использованием заглавной буквы в качестве первого символа, например
class Vehicle:
...
Однако в области машинного обучения часто данные обучения и испытаний определяются как X
и Y
- не x
и y
. Например, я сейчас читаю это руководство по Keras , но оно использует переменные X
and и Y
:
from sklearn import datasets
mnist = datasets.load_digits()
X = mnist.data
Y = mnist.target
Почему они определены как заглавные буквы? Есть ли какое-либо соглашение (по крайней мере, в Python) среди машинного обучения, что для определения этих переменных лучше использовать заглавную букву?
Или, может быть, люди делают различие верхний против низких переменных в случае машинного обучения?
На самом деле тот же учебник позже различает эти переменные, как показано ниже:
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)
Ответы:
Переменные X (а иногда и Y) являются матрицами.
В некоторых математических обозначениях принято записывать имена векторных переменных в нижнем регистре и имена матричных переменных в верхнем регистре. Часто они выделены жирным шрифтом или имеют другие аннотации, но это плохо переводится в код. В любом случае, я считаю, что практика перешла из этой записи.
Вы также можете заметить , в коде, когда целевая переменная один столбец значений, написано
y
, так что у вас естьX, y
Конечно, это не имеет особого семантического значения в Python, и вы можете игнорировать конвенции. Однако, поскольку это стало соглашением, возможно, стоит сохранить его, если вы поделитесь своим кодом.
источник
Я думаю, что это не имеет ничего общего с Python, но с математикой. X представляет собой матрицу и у вектора (большая часть времени). Обычно заглавные буквы используются для матриц и строчные буквы используются для векторов.
Вот почему вы часто видите что - то вроде этого ( из примеров sklearn ):
или что (из того же примера):
Здесь X_red является тхп матрицы (верхний регистр) и x_min является вектором (в нижнем регистре) длины п.
источник
Y
прописные буквы, несмотря на то, что это вектор? (Y.shape
возвращается(1797,)
, к вашему сведению)