Mất nhật ký, AKA mất logistic hoặc mất chéo.
Đây là chức năng mất mát được sử dụng trong hồi quy logistic [đa phương thức] và các phần mở rộng của nó như mạng thần kinh, được định nghĩa là khả năng nhật ký tiêu cực của mô hình logistic trả về xác suất y_pred
cho dữ liệu đào tạo của nó y_true
. Mất nhật ký chỉ được xác định cho hai hoặc nhiều nhãn. Đối với một mẫu duy nhất có nhãn true \ [y \ in \ {0,1 \} \] và ước tính xác suất \ [p = \ operatorName {pr} [y = 1] \], mất nhật ký là:\[y \in \{0,1\}\] and a probability estimate \[p = \operatorname{Pr}[y = 1]\], the log loss is:
\ [L _ {\ log} [y, p] = - [y \ log [p] + [1 - y] \ log [1 - p]] \]
Đọc thêm trong Hướng dẫn sử dụng.User Guide.
Các tham số: Ma trận chỉ báo giống như Y__TrueArray:y_truearray-like or label indicator matrixNhãn sự thật mặt đất [đúng] cho các mẫu N_Samples.
y_predarray giống như phao, hình dạng = [n_samples, n_ classes] hoặc [n_samples,]array-like of float, shape = [n_samples, n_classes] or [n_samples,]Xác suất dự đoán, được trả lại bởi phương thức phân loại dự đoán_proba. Nếu y_pred.shape = [n_samples,]
xác suất được cung cấp được coi là của lớp dương. Các nhãn trong y_pred
được cho là được đặt hàng theo thứ tự bảng chữ cái, như được thực hiện bởi
Principal terms age Gender weekend Bachelor HighSchoolerBelow college
0 1000 30 45 0 0 0 1 0
1 1000 30 33 1 0 1 0 0
2 1000 15 27 0 0 0 0 1
1.epsfloat, mặc định = 1e-15float, default=1e-15Mất nhật ký không được xác định cho p = 0 hoặc p = 1, do đó xác suất được cắt sang tối đa [EPS, MIN [1 - EPS, P]].
Nếu đúng, hãy trả lại tổn thất trung bình trên mỗi mẫu. Nếu không, trả lại tổng của tổn thất mỗi mẫu.
sample_weightarray giống như hình dạng [n_samples,], mặc định = không cóarray-like of shape [n_samples,], default=NoneTrọng lượng mẫu.
LabelsArray-like, default = nonearray-like, default=NoneNếu không được cung cấp, các nhãn sẽ được suy ra từ y_true. Nếu
Principal terms age Gender weekend Bachelor HighSchoolerBelow college
0 1000 30 45 0 0 0 1 0
1 1000 30 33 1 0 1 0 0
2 1000 15 27 0 0 0 0 1
2 là Principal terms age Gender weekend Bachelor HighSchoolerBelow college
0 1000 30 45 0 0 0 1 0
1 1000 30 33 1 0 1 0 0
2 1000 15 27 0 0 0 0 1
3 và y_pred
có hình dạng [n_samples,], các nhãn được coi là nhị phân và được suy ra từ y_true
.Mới trong phiên bản 0.18.
Returns:lossfloat:lossfloatMất nhật ký, AKA mất logistic hoặc mất chéo.
Ghi chú
Logarit được sử dụng là logarit tự nhiên [cơ sở-E].
Người giới thiệu
C.M. Giám mục [2006]. Nhận dạng mẫu và học máy. Springer, p. 209.
Ví dụ
>>> from sklearn.metrics import log_loss >>> log_loss[["spam", "ham", "ham", "spam"], ... [[.1, .9], [.9, .1], [.8, .2], [.35, .65]]] 0.21616...
Ví dụ sử dụng ________ 16¶
Tôi đã đào tạo một mô hình sử dụng hồi quy logistic và cần đánh giá độ chính xác của nó với tổn thất log. Dưới đây là một số chi tiết về dữ liệu:
Các tính năng/ x
Principal terms age Gender weekend Bachelor HighSchoolerBelow college
0 1000 30 45 0 0 0 1 0
1 1000 30 33 1 0 1 0 0
2 1000 15 27 0 0 0 0 1
Nhãn/ y
array[['PAIDOFF', 'PAIDOFF', 'PAIDOFF', 'PAIDOFF', 'COLLECTION'], dtype=object]
Mô hình hồi quy logistic:
from sklearn.linear_model import LogisticRegression
logreg = LogisticRegression[C=1e5, solver='lbfgs', multi_class='multinomial']
Feature = df[['Principal','terms','age','Gender','weekend']]
Feature = pd.concat[[Feature,pd.get_dummies[df['education']]], axis=1]
Feature.drop[['Master or Above'], axis = 1,inplace=True]
X = Feature
X= preprocessing.StandardScaler[].fit[X].transform[X]
y = df['loan_status'].values
X_train, X_test, y_train, lg_y_test = train_test_split[X, y, test_size=0.3, random_state=4]
# we create an instance of Neighbours Classifier and fit the data.
logreg.fit[X_train, y_train]
lg_loan_status = logreg.predict[X_test]
lg_loan_status
Bây giờ tôi cần tính toán
Principal terms age Gender weekend Bachelor HighSchoolerBelow college
0 1000 30 45 0 0 0 1 0
1 1000 30 33 1 0 1 0 0
2 1000 15 27 0 0 0 0 1
7 cho điều đó.Đây là bộ dữ liệu thử nghiệm riêng của tôi:
test_df['due_date'] = pd.to_datetime[test_df['due_date']]
test_df['effective_date'] = pd.to_datetime[test_df['effective_date']]
test_df['dayofweek'] = test_df['effective_date'].dt.dayofweek
test_df['weekend'] = test_df['dayofweek'].apply[lambda x: 1 if [x>3] else 0]
test_df.groupby[['Gender']]['loan_status'].value_counts[normalize=True]
# test_df['Gender'].replace[to_replace=['male','female'], value=[0,1],inplace=True]
Feature = test_df[['Principal','terms','age','Gender','weekend']]
Feature = pd.concat[[Feature,pd.get_dummies[df['education']]], axis=1]
Feature.drop[['Master or Above'], axis = 1,inplace=True]
Feature.head[]
X = Feature
Y = test_df['loan_status'].values
Feature.head[]
Principal terms age Gender weekend Bechalor HighSchoolorBelow college
0 1000.0 30.0 50.0 female 0.0 0 1 0
1 300.0 7.0 35.0 male 1.0 1 0 0
2 1000.0 30.0 43.0 female 1.0 0 0 1
Đây là những gì tôi đã thử:
# Evaluation for Logistic Regression
X_train, X_test, y_train, lg_y_test = train_test_split[X, y, test_size=0.3, random_state=3]
lg_jaccard = jaccard_similarity_score[lg_y_test, lg_loan_status, normalize=False]
lg_f1_score = f1_score[lg_y_test, lg_loan_status, average='micro']
lg_log_loss = log_loss[lg_y_test, lg_loan_status]
print['Jaccard is : {}'.format[lg_jaccard]]
print['F1-score is : {}'.format[lg_f1_score]]
print['Log Loss is : {}'.format[lg_log_loss]]
Nhưng nó trả về lỗi này:
ValueError: không thể chuyển đổi chuỗi thành float: 'bộ sưu tập'
Cập nhật: Đây là
8: Here's the Principal terms age Gender weekend Bachelor HighSchoolerBelow college
0 1000 30 45 0 0 0 1 0
1 1000 30 33 1 0 1 0 0
2 1000 15 27 0 0 0 0 1
Principal terms age Gender weekend Bachelor HighSchoolerBelow college
0 1000 30 45 0 0 0 1 0
1 1000 30 33 1 0 1 0 0
2 1000 15 27 0 0 0 0 1
8:['PAIDOFF' 'PAIDOFF' 'COLLECTION' 'COLLECTION' 'PAIDOFF' 'COLLECTION'
'PAIDOFF' 'COLLECTION' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF'
'COLLECTION' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'COLLECTION'
'PAIDOFF' 'COLLECTION' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF'
'COLLECTION' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'COLLECTION' 'PAIDOFF'
'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'COLLECTION' 'PAIDOFF' 'COLLECTION'
'COLLECTION' 'COLLECTION' 'PAIDOFF' 'PAIDOFF' 'COLLECTION' 'PAIDOFF'
'PAIDOFF' 'COLLECTION' 'PAIDOFF' 'PAIDOFF' 'COLLECTION' 'COLLECTION'
'PAIDOFF' 'COLLECTION' 'PAIDOFF' 'PAIDOFF' 'COLLECTION' 'COLLECTION'
'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF'
'COLLECTION' 'COLLECTION' 'PAIDOFF' 'COLLECTION' 'PAIDOFF' 'PAIDOFF'
'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF'
'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF'
'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF'
'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'COLLECTION'
'COLLECTION' 'PAIDOFF' 'PAIDOFF' 'PAIDOFF' 'COLLECTION' 'PAIDOFF'
'PAIDOFF' 'PAIDOFF' 'COLLECTION']