Измерение классификатора с помощью перекрестной проверки с метриками ROC - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь выполнить перекрестную проверку с помощью метрики ROC для оценки классификатора, и я наткнулся на следующий код из Scikit learn:

# Import some data to play with
iris = datasets.load_iris()
X = iris.data
y = iris.target
X, y = X[y != 2], y[y != 2]
n_samples, n_features = X.shape

У меня проблемы с пониманием строки X,y = X[y!=2],y[y!=2]Какова цель этой линии?

Кроме того, может кто-нибудь помочь мне прояснить использование подчеркивания n_samples, n_features?

Спасибо!

1 Ответ

0 голосов
/ 22 февраля 2019

В наборе данных Iris есть три класса с метками 0, 1, 2. Когда вы видите X, y = X[y != 2], y[y != 2], это просто означает, что новые значения X и y не будут содержать записи для класса с меткой 2.

Вот каконо работает.y != 2 возвращает логический вектор, равный длине y, который содержит True, если y было 0 или 1, и False, где y был 2, в соответствии с заданным условием y! = 2. Т.е. [True, False, False, ...].Его также иногда называют маской.

y[y != 2] - это логическое индексирование, оно возвращает новый массив, состоящий из таких элементов y, где y не равен 2. Т.е. результирующий массив не будет содержать 2s.

Наконец, X[y != 2] возвращает новый массив X с элементами, которые соответствуют истинным значениям маски.

Поскольку X и y одинаковой длины, применение к ней одной и той же маски работает отличнои в этом случае фактически удаляются все записи с меткой класса 2.

Теперь с целью удаления всего класса из набора данных - это то, что вы должны искать в учебном пособии, которое вы читали.

X.shape возвращает кортеж с количеством строк и количеством столбцов в кадре данных.Это то, что ученые называют образцами и функциями.

...