ML之sklearn:sklearn.metrics中常用的函数参数(比如confusion_matrix等 )解释及其用法说明之详细攻略
ML之sklearn:sklearn.metrics中常用的函數參數(比如confusion_matrix等 )解釋及其用法說明之詳細攻略
?
?
?
目錄
sklearn.metrics中常用的函數參數
confusion_matrix
?
?
推薦文章
ML:分類預測問題中評價指標(ER/混淆矩陣P-R-F1/ROC-AUC/RP/mAP)簡介、使用方法、代碼實現、案例應用之詳細攻略
CNN之性能指標:卷積神經網絡中常用的性能指標(IOU/AP/mAP、混淆矩陣)簡介、使用方法之詳細攻略
sklearn.metrics中常用的函數參數
confusion_matrix函數解釋
返回值:混淆矩陣,其第i行和第j列條目表示真實標簽為第i類、預測標簽為第j類的樣本數。
| ? | ? | ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?預測 | |
| ? | ? | ? ? ? ? ? ? ?? ? ? 0 | ? ? ? ? ? ? ? ? ? ? 1 |
| 真實 | ? ? 0 | ? | ? |
| ? ? 1 | ? | ? | |
?
| def confusion_matrix Found at: sklearn.metrics._classification @_deprecate_positional_args | 在:sklear. metrics._classification找到的def confusion_matrix @_deprecate_positional_args |
| ? Examples ? ? -------- ? ? >>> from sklearn.metrics import confusion_matrix ? ? >>> y_true = [2, 0, 2, 2, 0, 1] ? ? >>> y_pred = [0, 0, 2, 2, 0, 2] ? ? >>> confusion_matrix(y_true, y_pred) ? ? array([[2, 0, 0], ? ? [0, 0, 1], ? ? [1, 0, 2]]) ? ?? ? ? >>> y_true = ["cat", "ant", "cat", "cat", "ant", "bird"] ? ? >>> y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"] ? ? >>> confusion_matrix(y_true, y_pred, labels=["ant", "bird", "cat"]) ? ? array([[2, 0, 0], ? ? [0, 0, 1], ? ? [1, 0, 2]]) ? ?? ? ? In the binary case, we can extract true positives, etc as follows: ? ?? ? ? >>> tn, fp, fn, tp = confusion_matrix([0, 1, 0, 1], [1, 1, 1, 0]).ravel() ? ? >>> (tn, fp, fn, tp) ? ? (0, 2, 1, 1) | ? |
| ? ? """ ? ? y_type, y_true, y_pred = _check_targets(y_true, y_pred) ? ? if y_type not in ("binary", "multiclass"): ? ? ? ? raise ValueError("%s is not supported" % y_type) ? ? if labels is None: ? ? ? ? labels = unique_labels(y_true, y_pred) ? ? else: ? ? ? ? labels = np.asarray(labels) ? ? ? ? n_labels = labels.size ? ? ? ? if n_labels == 0: ? ? ? ? ? ? raise ValueError("'labels' should contains at least one label.") ? ? ? ? elif y_true.size == 0: ? ? ? ? ? ? return np.zeros((n_labels, n_labels), dtype=np.int) ? ? ? ? elif np.all([l not in y_true for l in labels]): ? ? ? ? ? ? raise ValueError("At least one label specified must be in y_true") ? ? if sample_weight is None: ? ? ? ? sample_weight = np.ones(y_true.shape[0], dtype=np.int64) ? ? else: ? ? ? ? sample_weight = np.asarray(sample_weight) ? ? check_consistent_length(y_true, y_pred, sample_weight) ? ? if normalize not in ['true', 'pred', 'all', None]: ? ? ? ? raise ValueError("normalize must be one of {'true', 'pred', " ? ? ? ? ? ? "'all', None}") ? ? n_labels = labels.size ? ? label_to_ind = {y:x for x, y in enumerate(labels)} ? ? # convert yt, yp into index ? ? y_pred = np.array([label_to_ind.get(x, n_labels + 1) for x in y_pred]) ? ? y_true = np.array([label_to_ind.get(x, n_labels + 1) for x in y_true]) ? ? # intersect y_pred, y_true with labels, eliminate items not in labels ? ? ind = np.logical_and(y_pred < n_labels, y_true < n_labels) ? ? y_pred = y_pred[ind] ? ? y_true = y_true[ind] # also eliminate weights of eliminated items ? ? sample_weight = sample_weight[ind] ? ? # Choose the accumulator dtype to always have high precision ? ? if sample_weight.dtype.kind in {'i', 'u', 'b'}: ? ? ? ? dtype = np.int64 ? ? else: ? ? ? ? dtype = np.float64 ? ? cm = coo_matrix((sample_weight, (y_true, y_pred)), shape=(n_labels,? ? ? ?n_labels), dtype=dtype).toarray() ? ? with np.errstate(all='ignore'): ? ? ? ? if normalize == 'true': ? ? ? ? ? ? cm = cm / cm.sum(axis=1, keepdims=True) ? ? ? ? elif normalize == 'pred': ? ? ? ? ? ? cm = cm / cm.sum(axis=0, keepdims=True) ? ? ? ? elif normalize == 'all': ? ? ? ? ? ? cm = cm / cm.sum() ? ? ? ? cm = np.nan_to_num(cm) ? ? return cm | ? |
?
?
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的ML之sklearn:sklearn.metrics中常用的函数参数(比如confusion_matrix等 )解释及其用法说明之详细攻略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 成功解决sys:1: DtypeWarn
- 下一篇: 成功解决label_error >= 0