Precision , Recall -- это компоненты , которые в основном используются для поиска информации . Как и в случае с поиском Google, мы вводим любое утверждение, поэтому данные отображаются в поиске Google с большей точностью.

В распознавании образов, информационном поиске и классификации точность — это доля релевантных экземпляров среди извлеченных экземпляров, а полнота — это доля от общего количества релевантных экземпляров, которые были фактически извлечены.

Точность — это процент фактического положительного значения от прогнозируемого положительного значения.

Полнота — это процент прогнозируемого положительного значения для фактического положительного значения.

Это может сбить с толку, пожалуйста, обратитесь к изображению ниже:

поэтому для +ve :
Recall = TP/(TP+FN)
Precision = TP/(TP+FP)
поэтому для -ve :
Recall = TN/(TN +FP)
Точность = TN/(TN+FN)

F1-Оценка:

F1 оценка – это среднее гармоническое между точностью и полнотой, при которой F1 оценка достигает своего максимума. значение равно 1 (идеальная точность и полнота). F1 оценка также известна как коэффициент Соренсена-Дайса или коэффициент подобия Дайса (DSC).

f1-Score = 2 * (Точность * Отзыв)/(Точность + Отзыв)

In [1]:

from sklearn.metrics import classification_report
from sklearn.datasets import load_iris

In [2]:

data = load_iris()
data.keys()

Выход[2]:

dict_keys(['data', 'target', 'target_names', 'DESCR', 'feature_names', 'filename'])

In [3]:

import pandas as pd
x = pd.DataFrame(data['data'],columns=data['feature_names'])
x.head()

Выход[3]:

длина чашелистика (см) ширина чашелистика (см) длина лепестка (см) ширина лепестка (см)

In [4]:

y = data['target']
y

Выход[4]:

array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
       2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])

In [5]:

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
x=sc.fit_transform(x)
x_train,x_test,y_train,y_test = train_test_split(x,y,train_size=0.8,random_state=43)

In [6]:

from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier(n_neighbors=5)
knn.fit(x_train,y_train)
y_pred = knn.predict(x_test)

In [7]:

from sklearn.metrics import confusion_matrix
confusion_matrix(y_test,y_pred)

Выход[7]:

array([[13,  0,  0],
       [ 0,  8,  0],
       [ 0,  2,  7]], dtype=int64)

In [9]:

print(classification_report(y_test,y_pred))

Выход [9]:

precision    recall  f1-score   support
0       1.00      1.00      1.00        13
1       0.80      1.00      0.89         8
2       1.00      0.78      0.88         9
micro avg       0.93      0.93      0.93        30
   macro avg       0.93      0.93      0.92        30
weighted avg       0.95      0.93      0.93        30

Спасибо за прочтение.
Надеюсь, я дал вам некоторое представление о том, что такое Precision, Recall и F1-Score. Если вам понравился этот пост, немного дополнительной мотивации будет полезно, если вы похлопаете этому посту 👏. Я всегда открыт для ваших вопросов и предложений. Вы можете поделиться этим на Facebook, Twitter, Linkedin, так что кто-то в этом может наткнуться.

Подписывайтесь на меня :

Facebookhttps://www.facebook.com/vivek.mudgal.71
Linkedinwww.linkedin.com/in/vivek-mudgal-7696a77a
Twitter https://twitter.com/vivekmudgal4