Как мне интерпретировать два "=" и все это выражение? - PullRequest
1 голос
/ 26 сентября 2019
train_acc = np.mean(y_train == y_train_pred)

Как работает назначение и оценка этого выражения?

Ответы [ 2 ]

1 голос
/ 26 сентября 2019

Простой, давайте предположим, что у вас есть эти два пустых массива:

y_train = np.array([1, 2, 3, 4])
y_train_pred = np.array([1, 2, 3, 5])

Как мы видим, эти два массива отличаются только последним элементом.Итак, когда мы применяем y_train == y_train_pred, мы получим:

>>> y_train == y_train_pred
array([ True,  True,  True, False])
# same as array([ 1,  1,  1, 0])

Теперь, когда мы применим np.mean, мы получим среднее значение, которое будет 3/4:

>>> np.mean(y_train == y_train_pred)
0.75

Итак, чтобы ответить на ваш вопрос: что означает == в предыдущем синтаксисе?Это просто означает итерацию по массиву numpy и проверку, равен ли каждый элемент в y_train противоположный элемент y_train_pred, и возвращает либо True, если они совпадают, либо False, если они не совпадают.

Надеюсь, что это отвечает на ваш вопрос !!

0 голосов
/ 26 сентября 2019

y_train == y_train_pred оценивается поэлементно, и в результате получается логический массив с тем же числом элементов, что и в y_train и y_train_pred.Когда два соответствующих элемента в обоих массивах совпадают, результирующий элемент имеет значение True.В противном случае это Неверно.Затем np.mean() вычисляет количество элементов True и делит его на длину массива.Результат присваивается train_acc.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...