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, так что кто-то в этом может наткнуться.
Подписывайтесь на меня :
Facebook → https://www.facebook.com/vivek.mudgal.71
Linkedin → www.linkedin.com/in/vivek-mudgal-7696a77a
Twitter → https://twitter.com/vivekmudgal4