Python: Как мне проверить прогнозируемые строки в y_pred? - PullRequest
0 голосов
/ 04 мая 2020

Мой алгоритм регрессии c вернул y_pred в виде массива. Пример:

array([False, False, True, False, False, True, False, False, False,
       False, False, ...])

Я хотел бы видеть, какие строки в наборе данных были предсказаны как True. В качестве теста здравомыслия, так сказать, чтобы увидеть, были ли неверно предсказанные истины абсолютно неверными или, по крайней мере, близкими. Есть ли способ получить индекс для предсказанных строк? Или каким-либо другим способом, как это обычно делается?

Ответы [ 2 ]

1 голос
/ 04 мая 2020

Если ваш прогноз:

y = array([False, False, True, False, False, True, False, False, False, False, False, ...])

Тогда данные будут просто:

data[y]

при условии, что прогноз был сделан на data.

Пример :

from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import train_test_split

X, y = datasets.load_breast_cancer(return_X_y=True) # 2 classes - binary classification
knn = KNeighborsClassifier()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
knn.fit(X_train, y_train)
prediction = knn.predict(X_test).astype(bool)

На последнем шаге мы используем два факта:

  • X и y имеют одинаковый порядок последовательности. Выполнение predict сохраняет порядок
  • Выбор элементов массива с логическим условием
pred_tested_true = X_test[prediction]

pred_tested_true теперь содержит все строки, которые были предсказаны как True.

0 голосов
/ 04 мая 2020

Я бы порекомендовал сделать это, сравнив и разделив прогнозы и фактические значения как TP, FP (это то, что вы ищете, как я понимаю), TN, FN.

Вы можете сделать это с помощью -

y_pred = [True, False, True, False]
y_actual = [True, True, False, True]

#This gets you the indexes
FP = [i[0] for i in enumerate(zip(y_pred, y_actual)) if i[1]==(False, True)] 

#Change the tuple to what you need, for false positives, its y_pred, y_actual = False, True

#You can do a loc if you need after this
df.loc[FP,:]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...