Hướng dẫn how is f1 calculated in python? - f1 được tính như thế nào trong python?

sklearn.metrics.f1_score (y_true, y_pred, *, nhãn = none, pos_label = 1, trung bình = 'nhị phân', sample_weight = nonef1_score(y_true, y_pred, *, labels=None, pos_label=1, average='binary', sample_weight=None, zero_division='warn')[source]

Tính điểm F1, còn được gọi là điểm F hoặc F-SEALURE cân bằng.

Điểm F1 có thể được hiểu là trung bình hài hòa của độ chính xác và thu hồi, trong đó điểm F1 đạt giá trị tốt nhất của nó ở mức 1 và điểm tệ nhất ở mức 0. Đóng góp tương đối của độ chính xác và thu hồi điểm F1 bằng nhau. Công thức cho điểm F1 là:

F1 = 2 * (precision * recall) / (precision + recall)

Trong trường hợp đa lớp và đa nhãn, đây là mức trung bình của điểm F1 của mỗi lớp với trọng số tùy thuộc vào tham số average.

Đọc thêm trong Hướng dẫn sử dụng.User Guide.

Các tham số: Y_TRUE1D giống như mảng hoặc mảng chỉ báo nhãn / ma trận thưa thớt:y_true1d array-like, or label indicator array / sparse matrix

Sự thật mặt đất (đúng) giá trị mục tiêu.

Y_PRED1D giống như mảng, hoặc mảng chỉ báo nhãn / ma trận thưa thớt1d array-like, or label indicator array / sparse matrix

Các mục tiêu ước tính được trả lại bởi một phân loại.

LabelsArray-like, default = nonearray-like, default=None

Tập hợp các nhãn bao gồm khi average != 'binary' và thứ tự của chúng nếu average is None. Các nhãn có trong dữ liệu có thể được loại trừ, ví dụ để tính toán mức trung bình đa lớp bỏ qua một lớp âm tính đa số, trong khi các nhãn không có trong dữ liệu sẽ dẫn đến 0 thành phần ở mức trung bình vĩ mô. Đối với các mục tiêu đa nhãn, nhãn là các chỉ số cột. Theo mặc định, tất cả các nhãn trong y_truey_pred được sử dụng theo thứ tự được sắp xếp.

Đã thay đổi trong phiên bản 0.17: Tham số labels được cải thiện cho vấn đề đa lớp.Parameter labels improved for multiclass problem.

pos_labelstr hoặc int, mặc định = 1str or int, default=1

Lớp để báo cáo nếu average='binary' và dữ liệu là nhị phân. Nếu dữ liệu là đa nhãn hoặc đa nhãn, điều này sẽ bị bỏ qua; Cài đặt labels=[pos_label]average != 'binary' sẽ chỉ báo cáo điểm cho nhãn đó.

Trung bình {‘micro,’ macro, ‘mẫu,’ có trọng số, ‘nhị phân} hoặc không, mặc định ={‘micro’, ‘macro’, ‘samples’, ‘weighted’, ‘binary’} or None, default=’binary’

Tham số này được yêu cầu cho các mục tiêu đa nhãn/đa nhãn. Nếu

>>> from sklearn.metrics import f1_score
>>> y_true = [0, 1, 2, 0, 1, 2]
>>> y_pred = [0, 2, 1, 0, 0, 1]
>>> f1_score(y_true, y_pred, average='macro')
0.26...
>>> f1_score(y_true, y_pred, average='micro')
0.33...
>>> f1_score(y_true, y_pred, average='weighted')
0.26...
>>> f1_score(y_true, y_pred, average=None)
array([0.8, 0. , 0. ])
>>> y_true = [0, 0, 0, 0, 0, 0]
>>> y_pred = [0, 0, 0, 0, 0, 0]
>>> f1_score(y_true, y_pred, zero_division=1)
1.0...
>>> # multilabel classification
>>> y_true = [[0, 0, 0], [1, 1, 1], [0, 1, 1]]
>>> y_pred = [[0, 0, 0], [1, 1, 1], [1, 1, 0]]
>>> f1_score(y_true, y_pred, average=None)
array([0.66666667, 1.        , 0.66666667])
1, điểm số cho mỗi lớp được trả về. Mặt khác, điều này xác định loại trung bình được thực hiện trên dữ liệu:

>>> from sklearn.metrics import f1_score
>>> y_true = [0, 1, 2, 0, 1, 2]
>>> y_pred = [0, 2, 1, 0, 0, 1]
>>> f1_score(y_true, y_pred, average='macro')
0.26...
>>> f1_score(y_true, y_pred, average='micro')
0.33...
>>> f1_score(y_true, y_pred, average='weighted')
0.26...
>>> f1_score(y_true, y_pred, average=None)
array([0.8, 0. , 0. ])
>>> y_true = [0, 0, 0, 0, 0, 0]
>>> y_pred = [0, 0, 0, 0, 0, 0]
>>> f1_score(y_true, y_pred, zero_division=1)
1.0...
>>> # multilabel classification
>>> y_true = [[0, 0, 0], [1, 1, 1], [0, 1, 1]]
>>> y_pred = [[0, 0, 0], [1, 1, 1], [1, 1, 0]]
>>> f1_score(y_true, y_pred, average=None)
array([0.66666667, 1.        , 0.66666667])
2:

Chỉ báo cáo kết quả cho lớp được chỉ định bởi

>>> from sklearn.metrics import f1_score
>>> y_true = [0, 1, 2, 0, 1, 2]
>>> y_pred = [0, 2, 1, 0, 0, 1]
>>> f1_score(y_true, y_pred, average='macro')
0.26...
>>> f1_score(y_true, y_pred, average='micro')
0.33...
>>> f1_score(y_true, y_pred, average='weighted')
0.26...
>>> f1_score(y_true, y_pred, average=None)
array([0.8, 0. , 0. ])
>>> y_true = [0, 0, 0, 0, 0, 0]
>>> y_pred = [0, 0, 0, 0, 0, 0]
>>> f1_score(y_true, y_pred, zero_division=1)
1.0...
>>> # multilabel classification
>>> y_true = [[0, 0, 0], [1, 1, 1], [0, 1, 1]]
>>> y_pred = [[0, 0, 0], [1, 1, 1], [1, 1, 0]]
>>> f1_score(y_true, y_pred, average=None)
array([0.66666667, 1.        , 0.66666667])
3. Điều này chỉ áp dụng nếu các mục tiêu (
>>> from sklearn.metrics import f1_score
>>> y_true = [0, 1, 2, 0, 1, 2]
>>> y_pred = [0, 2, 1, 0, 0, 1]
>>> f1_score(y_true, y_pred, average='macro')
0.26...
>>> f1_score(y_true, y_pred, average='micro')
0.33...
>>> f1_score(y_true, y_pred, average='weighted')
0.26...
>>> f1_score(y_true, y_pred, average=None)
array([0.8, 0. , 0. ])
>>> y_true = [0, 0, 0, 0, 0, 0]
>>> y_pred = [0, 0, 0, 0, 0, 0]
>>> f1_score(y_true, y_pred, zero_division=1)
1.0...
>>> # multilabel classification
>>> y_true = [[0, 0, 0], [1, 1, 1], [0, 1, 1]]
>>> y_pred = [[0, 0, 0], [1, 1, 1], [1, 1, 0]]
>>> f1_score(y_true, y_pred, average=None)
array([0.66666667, 1.        , 0.66666667])
4) là nhị phân.

>>> from sklearn.metrics import f1_score
>>> y_true = [0, 1, 2, 0, 1, 2]
>>> y_pred = [0, 2, 1, 0, 0, 1]
>>> f1_score(y_true, y_pred, average='macro')
0.26...
>>> f1_score(y_true, y_pred, average='micro')
0.33...
>>> f1_score(y_true, y_pred, average='weighted')
0.26...
>>> f1_score(y_true, y_pred, average=None)
array([0.8, 0. , 0. ])
>>> y_true = [0, 0, 0, 0, 0, 0]
>>> y_pred = [0, 0, 0, 0, 0, 0]
>>> f1_score(y_true, y_pred, zero_division=1)
1.0...
>>> # multilabel classification
>>> y_true = [[0, 0, 0], [1, 1, 1], [0, 1, 1]]
>>> y_pred = [[0, 0, 0], [1, 1, 1], [1, 1, 0]]
>>> f1_score(y_true, y_pred, average=None)
array([0.66666667, 1.        , 0.66666667])
5:

Tính toán số liệu trên toàn cầu bằng cách đếm tổng số tích cực thực sự, tiêu cực sai và dương tính sai.

>>> from sklearn.metrics import f1_score
>>> y_true = [0, 1, 2, 0, 1, 2]
>>> y_pred = [0, 2, 1, 0, 0, 1]
>>> f1_score(y_true, y_pred, average='macro')
0.26...
>>> f1_score(y_true, y_pred, average='micro')
0.33...
>>> f1_score(y_true, y_pred, average='weighted')
0.26...
>>> f1_score(y_true, y_pred, average=None)
array([0.8, 0. , 0. ])
>>> y_true = [0, 0, 0, 0, 0, 0]
>>> y_pred = [0, 0, 0, 0, 0, 0]
>>> f1_score(y_true, y_pred, zero_division=1)
1.0...
>>> # multilabel classification
>>> y_true = [[0, 0, 0], [1, 1, 1], [0, 1, 1]]
>>> y_pred = [[0, 0, 0], [1, 1, 1], [1, 1, 0]]
>>> f1_score(y_true, y_pred, average=None)
array([0.66666667, 1.        , 0.66666667])
6:

Tính toán số liệu cho mỗi nhãn và tìm ý nghĩa không trọng số của chúng. Điều này không tính đến sự mất cân bằng nhãn.

>>> from sklearn.metrics import f1_score
>>> y_true = [0, 1, 2, 0, 1, 2]
>>> y_pred = [0, 2, 1, 0, 0, 1]
>>> f1_score(y_true, y_pred, average='macro')
0.26...
>>> f1_score(y_true, y_pred, average='micro')
0.33...
>>> f1_score(y_true, y_pred, average='weighted')
0.26...
>>> f1_score(y_true, y_pred, average=None)
array([0.8, 0. , 0. ])
>>> y_true = [0, 0, 0, 0, 0, 0]
>>> y_pred = [0, 0, 0, 0, 0, 0]
>>> f1_score(y_true, y_pred, zero_division=1)
1.0...
>>> # multilabel classification
>>> y_true = [[0, 0, 0], [1, 1, 1], [0, 1, 1]]
>>> y_pred = [[0, 0, 0], [1, 1, 1], [1, 1, 0]]
>>> f1_score(y_true, y_pred, average=None)
array([0.66666667, 1.        , 0.66666667])
7:

Tính toán số liệu cho mỗi nhãn và tìm trọng số trung bình của chúng được hỗ trợ (số lượng phiên bản thực cho mỗi nhãn). Điều này thay đổi ‘macro, để giải thích sự mất cân bằng nhãn; Nó có thể dẫn đến một điểm F không nằm giữa độ chính xác và thu hồi.

>>> from sklearn.metrics import f1_score
>>> y_true = [0, 1, 2, 0, 1, 2]
>>> y_pred = [0, 2, 1, 0, 0, 1]
>>> f1_score(y_true, y_pred, average='macro')
0.26...
>>> f1_score(y_true, y_pred, average='micro')
0.33...
>>> f1_score(y_true, y_pred, average='weighted')
0.26...
>>> f1_score(y_true, y_pred, average=None)
array([0.8, 0. , 0. ])
>>> y_true = [0, 0, 0, 0, 0, 0]
>>> y_pred = [0, 0, 0, 0, 0, 0]
>>> f1_score(y_true, y_pred, zero_division=1)
1.0...
>>> # multilabel classification
>>> y_true = [[0, 0, 0], [1, 1, 1], [0, 1, 1]]
>>> y_pred = [[0, 0, 0], [1, 1, 1], [1, 1, 0]]
>>> f1_score(y_true, y_pred, average=None)
array([0.66666667, 1.        , 0.66666667])
8:

Tính toán số liệu cho từng trường hợp và tìm mức trung bình của chúng (chỉ có ý nghĩa đối với phân loại đa nhãn trong đó điều này khác với

>>> from sklearn.metrics import f1_score
>>> y_true = [0, 1, 2, 0, 1, 2]
>>> y_pred = [0, 2, 1, 0, 0, 1]
>>> f1_score(y_true, y_pred, average='macro')
0.26...
>>> f1_score(y_true, y_pred, average='micro')
0.33...
>>> f1_score(y_true, y_pred, average='weighted')
0.26...
>>> f1_score(y_true, y_pred, average=None)
array([0.8, 0. , 0. ])
>>> y_true = [0, 0, 0, 0, 0, 0]
>>> y_pred = [0, 0, 0, 0, 0, 0]
>>> f1_score(y_true, y_pred, zero_division=1)
1.0...
>>> # multilabel classification
>>> y_true = [[0, 0, 0], [1, 1, 1], [0, 1, 1]]
>>> y_pred = [[0, 0, 0], [1, 1, 1], [1, 1, 0]]
>>> f1_score(y_true, y_pred, average=None)
array([0.66666667, 1.        , 0.66666667])
9).

sample_weightarray giống như hình dạng (n_samples,), mặc định = không cóarray-like of shape (n_samples,), default=None

Trọng lượng mẫu.

zero_division ”cảnh báo, 0 hoặc 1, mặc định =" cảnh báo "“warn”, 0 or 1, default=”warn”

Đặt giá trị để trả về khi có một phân chia bằng không, tức là khi tất cả các dự đoán và nhãn là âm. Nếu được đặt thành cảnh báo cảnh báo, thì điều này hoạt động như 0, nhưng cảnh báo cũng được nêu ra.

Trả về: f1_scorefloat hoặc mảng float, hình dạng = [n_unique_labels]:f1_scorefloat or array of float, shape = [n_unique_labels]

Điểm F1 của lớp dương tính trong phân loại nhị phân hoặc trung bình có trọng số của điểm F1 của mỗi lớp cho nhiệm vụ đa lớp.

Ghi chú

Khi average0, độ chính xác là không xác định. Khi average1, thu hồi là không xác định. Trong các trường hợp như vậy, theo mặc định, số liệu sẽ được đặt thành 0, cũng như điểm F và average2 sẽ được nâng lên. Hành vi này có thể được sửa đổi với average3.

Người giới thiệu

Ví dụ

>>> from sklearn.metrics import f1_score
>>> y_true = [0, 1, 2, 0, 1, 2]
>>> y_pred = [0, 2, 1, 0, 0, 1]
>>> f1_score(y_true, y_pred, average='macro')
0.26...
>>> f1_score(y_true, y_pred, average='micro')
0.33...
>>> f1_score(y_true, y_pred, average='weighted')
0.26...
>>> f1_score(y_true, y_pred, average=None)
array([0.8, 0. , 0. ])
>>> y_true = [0, 0, 0, 0, 0, 0]
>>> y_pred = [0, 0, 0, 0, 0, 0]
>>> f1_score(y_true, y_pred, zero_division=1)
1.0...
>>> # multilabel classification
>>> y_true = [[0, 0, 0], [1, 1, 1], [0, 1, 1]]
>>> y_pred = [[0, 0, 0], [1, 1, 1], [1, 1, 0]]
>>> f1_score(y_true, y_pred, average=None)
array([0.66666667, 1.        , 0.66666667])

Ví dụ sử dụng ________ 24¶

Điểm F1 được tính toán như thế nào?

Điểm F1.Điểm F1 là 2*((độ chính xác*thu hồi)/(độ chính xác+thu hồi)).Nó cũng được gọi là điểm F hoặc đo F.Nói cách khác, điểm F1 truyền tải sự cân bằng giữa độ chính xác và thu hồi.2*((precision*recall)/(precision+recall)). It is also called the F Score or the F Measure. Put another way, the F1 score conveys the balance between the precision and the recall.

Điểm F1 trong Python là gì?

Trong Python, hàm F1_Score của sklearn.Gói Metrics tính toán điểm F1 cho một bộ nhãn dự đoán.Điểm F1 có thể nằm trong khoảng từ 0-1 0-1 0−1, với 0 là điểm tệ nhất và 1 là tốt nhất.calculates the F1 score for a set of predicted labels. An F1 score can range between 0 − 1 0-1 0−1, with 0 being the worst score and 1 being the best.

Làm thế nào để bạn tính toán độ chính xác của F1 và nhớ lại trong Python?

Ví dụ: điểm chính xác và thu hồi hoàn hảo sẽ dẫn đến điểm F-measure hoàn hảo: f-measure = (2 * độ chính xác * nhớ lại) / (độ chính xác + thu hồi) f-measure = (2 * 1.0 * 1.0) / (1.0+ 1.0) f-đo = (2 * 1.0) / 2.0.F-Measure = (2 * Precision * Recall) / (Precision + Recall) F-Measure = (2 * 1.0 * 1.0) / (1.0 + 1.0) F-Measure = (2 * 1.0) / 2.0.

Làm thế nào F1 và điểm chính xác được tính toán?

Điểm F1 = 2 * (độ chính xác * nhớ lại) / (độ chính xác + thu hồi).
Điểm F1 = 2 * (0,63 * 0,75) / (0,63 + 0,75).
Điểm F1 = 0,685 ..