Часто используемые метрики оценки в машинном обучении

машинное обучение

1. Проблемы классификации

1.1 Матрица путаницы

  • Каждая строка в матрице представляет прогнозируемый класс экземпляра, а каждый столбец представляет истинный класс экземпляра.
    img
真正(True Positive , TP):被模型预测为正的正样本。
假正(False Positive , FP):被模型预测为正的负样本。
假负(False Negative , FN):被模型预测为负的正样本。
真负(True Negative , TN):被模型预测为负的负样本。

真正率(True Positive Rate,TPR):TPR=TP/(TP+FN),即被预测为正的正样本数 /正样本实际数。 召回率
假正率(False Positive Rate,FPR) :FPR=FP/(FP+TN),即被预测为正的负样本数 /负样本实际数。
假负率(False Negative Rate,FNR) :FNR=FN/(TP+FN),即被预测为负的正样本数 /正样本实际数。
真负率(True Negative Rate,TNR):TNR=TN/(TN+FP),即被预测为负的负样本数 /负样本实际数/2

1.1.1 sklearn соответствующий пакет

  • sklearn.metrics.confusion_matrix
from sklearn.metrics import confusion_matrix
# y_pred是预测标签
y_pred, y_true =[1,0,1,0], [0,0,1,0]
confusion_matrix(y_true=y_true, y_pred=y_pred)
# array([[2, 1],
#        [0, 1]], dtype=int64)

1.2 Точность

  • Доля правильно классифицированных выборок по отношению к общему количеству выборок.

1.2.1 соответствующий пакет sklearn

  • sklearn.metrics.accuracy_score
from sklearn.metrics import accuracy_score
# y_pred是预测标签
y_pred, y_true=[1,2,3,4], [2,2,3,4]
accuracy_score(y_true=y_true, y_pred=y_pred)
# 0.75

1.3 Точность: пропорция правильно предсказанных положительных образцов ко всем предсказанным положительным образцам.

  • Все правильные положительные образцы/все предсказанные положительные образцы.
    Precision = \frac{TP}{TP + FP}
  • Также называется точностью

1.3.1 соответствующий пакет sklearn

  • sklearn.metrics.precision_score
from sklearn.metrics import precision_score
# y_pred是预测标签
y_pred, y_true =[1,0,1,0], [0,0,1,0]
precision_score(y_true=y_true, y_pred=y_pred)
# 0.5

1.4 Коэффициент отзыва (Recall): доля правильных положительных образцов ко всем положительным образцам.

  • Все положительные образцы с правильными оценками/количество всех положительных образцов.
    Recall = \frac{TP}{TP + FN}
  • Также называется отзывом

1.4.1 sklearn

  • sklearn.metrics.recall_score
from sklearn.metrics import recall_score
# y_pred是预测标签
y_pred, y_true =[1,0,1,0], [0,0,1,0]
recall_score(y_true=y_true, y_pred=y_pred)
# 1.0

1.5 F1 score

  • Также известен как показатель баланса, определяемый как среднее гармоническое точности и отзыва.
    F_1 \ score = \frac{2*Precision*Recall}{Precision + Recall}

1.5.1 соответствующий пакет sklearn

  • sklearn.metrics.f1_score
from sklearn.metrics import f1_score
# y_pred是预测标签
y_pred, y_true =[1,0,1,0], [0,0,1,0]
f1_score(y_true=y_true, y_pred=y_pred)

# classification_report可以直接输出各个类的precision recall f1-score support
from sklearn.metrics import classification_report
# y_pred是预测标签
y_pred, y_true =[1,0,1,0], [0,0,1,0]
print(classification_report(y_true=y_true, y_pred=y_pred))

1.6 Диаграммы усиления и подъема

1.7 ROC-кривая

  • Горизонтальная ось: специфичность частоты отрицательных положительных результатов (частота ложных положительных результатов FPR=FP/(FP+TN)), доля всех отрицательных примеров в разделенном примере ко всем отрицательным примерам; (1-специфичность)
  • Вертикальная ось: истинная положительная частота (истинная положительная частота TPR = TP / (TP + FN)) чувствительность, чувствительность (положительный охват класса), то есть частота отзыва.

1.7.1 соответствующий пакет sklearn

  • sklearn.metrics.roc_curve, sklearn.metrics.auc
import matplotlib.pyplot as plt 
from sklearn.metrics import roc_curve, auc
# y_test:实际的标签, dataset_pred:预测的概率值。
fpr, tpr, thresholds = roc_curve(y_test, dataset_pred)
roc_auc = auc(fpr, tpr)  
#画图,只需要plt.plot(fpr,tpr),变量roc_auc只是记录auc的值,通过auc()函数能计算出来  
plt.plot(fpr, tpr, lw=1, label='ROC(area = %0.2f)' % (roc_auc))
plt.xlabel("FPR (False Positive Rate)")
plt.ylabel("TPR (True Positive Rate)")
plt.title("Receiver Operating Characteristic, ROC(AUC = %0.2f)"% (roc_auc))
plt.show()

1,8 AUC (площадь под кривой)

  • AUC — это площадь под ROC-кривой (интеграл ROC), которая обычно больше 0,5 и меньше 1.
  • Чем больше значение AUC (площадь) классификатора, тем выше производительность.

1.8.1 соответствующий пакет sklearn

  • sklearn.metrics.roc_auc_score
from sklearn.metrics import roc_auc_score
# y_test:实际的标签, dataset_pred:预测的概率值。
roc_auc_score(y_test, dataset_pred)

1.9 Кривая PR

  • Абсцисса: точность P
  • Вертикальная координата: скорость отзыва R
  • Стандарт оценки тот же, что и ROC, сначала посмотрите на гладкость, а не на плавность (синяя линия явно лучше). Вообще говоря, верхняя линия лучше, чем нижняя в одном и том же наборе тестов.
  • Когда значения P и R близки, значение F1 является наибольшим.

1.10 Мультиклассификация

  • precision_recall_fscore_support: Рассчитать точность, отзыв, fscore и поддержку для каждой категории

2. Проблема регрессии

  • В sklearn обычно функции начинаются с_scoreВозвращает значение в конце для максимизации, чем выше, тем лучше; функция_errorили_lossВозвращает значение в конце для минимизации, чем меньше, тем лучше.

2.1 Средняя абсолютная ошибка (MAE)

  • Средняя абсолютная ошибка (MAE) также известна какl1
  • Средняя абсолютная ошибка является неотрицательной величиной, и чем лучше модель, тем ближе MAE к нулю.
  • формула
    MSE = \frac{1}{m}\sum_{i=0}^m|y_i - \hat{y}_i|^2

2.1.1 соответствующий пакет sklearn

  • sklearn.metrics.mean_absolute_error
from sklearn.metrics import mean_absolute_error

y_true, y_pred = [3, -0.5, 2, 7], [2.5, 0.0, 2, 8]
mean_absolute_error(y_true, y_pred)
# 0.5

2.2 Среднеквадратическая ошибка (MSE)

  • Среднеквадратическая ошибка (MSE) также известна какl2
  • Суть в том, чтобы разделить остаточную сумму квадратов (RSS) на общее количество выборок, чтобы получить среднюю ошибку для каждого размера выборки.
  • Среднеквадратическая ошибка неотрицательна, и чем лучше модель, тем ближе MSE к нулю.
  • формула
    MSE = \frac{1}{m}\sum_{i=0}^m(y_i - \hat{y}_i)^2

2.2.1 соответствующий пакет sklearn

  • sklearn.metrics.mean_squared_error
from sklearn.metrics import mean_squared_error

y_true, y_pred = [3, -0.5, 2, 7], [2.5, 0.0, 2, 8]
mse = mean_squared_error(y_true, y_pred)
# 0.375
rmse = np.sqrt(mse)
# 0.6123724356957945

2.3 Среднеквадратическая ошибка (RMSE)

  • Среднеквадратичная ошибка RMSE (Root Mean Squared Errort), то есть квадратный корень MSE.
  • формула
    RMSE = \sqrt{\frac{1}{m}\sum_{i=0}^m(y_i - \hat{y}_i)^2}

2.4 Среднеквадратическая логарифмическая ошибка (MSLE)

  • MSLE (среднеквадратичная логарифмическая ошибка)
  • Среднеквадратическая логарифмическая ошибка неотрицательна, и чем лучше модель, тем ближе MSLE к нулю.
  • формула
    MSLE = \frac{1}{m}\sum_{i=1}^m(log(y_i + 1) - log(\hat{y_i + 1})^2

2.4.1 соответствующий пакет sklearn

  • sklearn.metrics.mean_squared_log_error

2.5 Средняя абсолютная ошибка (MedAE)

  • Медианная абсолютная ошибка MedAE (медианная абсолютная ошибка)
  • Средняя абсолютная ошибка неотрицательна, и чем лучше модель, тем ближе MSE к нулю.
  • формула
    MedAE = median(|y_i - \hat{y}_i|, \cdots, |y_m - \hat{y}_m|)

2.5.1 соответствующий пакет sklearn

  • sklearn.metrics.mean_squared_log_error

2.5 Показатель объяснимой дисперсии (EVS)

  • Объясненная дисперсия вычисляется из дисперсии ошибок.
  • У лучшей модели показатель объяснимой дисперсии равен 1, и чем хуже модель, тем меньше значение.
  • формула:
    EVS = 1 - \frac{var(y_i - \hat{y_i})}{var(y_i)}

2.5.1 пакеты, связанные со sklearn

  • sklearn.metrics.explained_variance_score

2.6 Коэффициент детерминации

  • Коэффициент детерминации R2 (r2_score) определяет, насколько хорошо подходит уравнение регрессии.
  • Значение коэффициента R^{2} оценки детерминации лучшей модели равно 1, значение константной модели равно 0, и чем хуже модель, тем меньше значение.
  • формула
    R^2 = 1 - \frac{\sum_{i=0}^m(y_i - \hat{y}_i)^2}{\sum_{i=0}^m(y_i - \bar{y}_i)^2} = 1 - \frac{RSS}{\sum_{i=0}^m(y_i - \bar{y}_i)^2}

2.6.1 пакеты, связанные со sklearn

  • sklearn.metrics.r2_score
from sklearn.metrics import r2_score
y_true, y_pred = [3, -0.5, 2, 7], [2.5, 0.0, 2, 8]
r2_score(y_true, y_pred)

3. Проблема кластеризации

  • Результаты кластеризации, стремление к «внутрикластерному сходству» (внутрикластерному сходству) высокое, а «межкластерное сходство» (межкластерное сходство) низкое.
  • Существует примерно две категории показателей производительности кластеризации:
    • Результаты кластеризации сравниваются с «эталонной моделью», называемой «внешним индексом».
    • Непосредственно обращайтесь к результатам кластеризации без использования какой-либо эталонной модели, которая называется «внутренним индексом».

3.1 Внешние показатели

  • в наборе данныхD = \{x_1, x_2, \cdots, x_m\}, предполагая, что кластеры, заданные кластеризацией, делятся наC = \{C_1, C_2, \cdots, C_k \}, кластеры, заданные эталонной моделью, делятся наC^* = \{C_1^*, C_2^*, \cdots, C_s^*\}, соответственно, пусть\lambdaи\lambda^*соответственно представляют иCиC^*Соответствующий вектор маркера кластера, рассматривая выборки попарно, определяет
    a = |SS|, SS = \{(x_i,x_j) | \lambda_i = \lambda_j, \lambda_i^* = \lambda_j^*, i < j \} \\ b = |SD|, SD = \{(x_i,x_j) | \lambda_i = \lambda_j, \lambda_i^* \ne \lambda_j^*, i < j \} \\ c = |DS|, DS = \{(x_i,x_j) | \lambda_i \ne \lambda_j, \lambda_i^* = \lambda_j^*, i < j \} \\ d = |DD|, DD = \{(x_i,x_j) | \lambda_i \ne \lambda_j, \lambda_i^* \ne \lambda_j^*, i < j \}
  • в
    • Коллекция СС: Входит вCотносятся к одному кластеру вC^*пары выборок, которые также принадлежат одному и тому же кластеру в
    • Коллекция SD: включена вCотносятся к одному кластеру вC^*пары выборок, принадлежащих к разным кластерам в
    • Коллекция DS: включена вCотносятся к разным кластерамC^*пары выборок, принадлежащих к одному кластеру в
    • Коллекция DD: содержит вCотносятся к разным кластерамC^*пары выборок, принадлежащих к разным кластерам в
  • Поскольку каждая пара выборок(x_i, x_j) (i < j)может появиться только в одном наборе, поэтому естьa + b + c + d = m(m - 1)/2

3.1.1 Обычно используемые внешние индикаторы

  • Коэффициент Жаккара (коэффициент Жаккара, обозначаемый как JC)
    JC = \frac{a}{a + b + c}
  • Индекс FM (индекс Фаулкса и Маллоуса, именуемый FMI)
    FMI = \sqrt{\frac{a}{a + b} \cdot \frac{a}{a + c}}
  • Индекс Рэнда (Rand Index, сокращенно RI)
    RI = \frac{2(a + d)}{m(m-1)}
  • Все результаты вышеуказанных показателей производительности находятся в[0, 1]интервал, чем больше значение, тем лучше.

3.1.2 Взаимная информация

  • Взаимная информация (MI) или информация о переносе (transinformation) двух случайных величин является мерой взаимозависимости между переменными.

3.1.3 соответствующий пакет sklearn

  • FMI: fowlkes_mallows_score
  • RI: sklearn.metrics.adjusted_rand_score
  • MI: sklearn.metrics.adjusted_mutual_info_score

3.2 Внутренние индикаторы

  • Разделение кластера с учетом результатов кластеризацииC = {C_1, C_2, \cdots, C_k}, имеет следующее определение
    • avg(C)для кластераCСреднее расстояние между образцами в пределах
    • diam(C)Наибольшее расстояние между выборками в соответствующем кластере
    • d_{min}(C_i, C_j)соответствует кластеруC_iс кластерамиC_jрасстояние между ближайшими образцами
    • d_{cen(C_i, C_j)}Соответствующий кластерC_iс кластерамиC_jрасстояние от центра

3.2.1 Общие внутренние индикаторы

  • Индекс DB (индекс Дэвиса-Булдина, сокращенно DBI)
    DBI = \frac{1}{k}\sum_{i=1}^k\max_{ j\ne i}(\frac{avg(C_i) + avg(C_j)}{d_{cen}(C_i, C_j)})
    Возможное минимальное значение для DBI равно 0, чем меньше, тем лучше.
  • Индекс Данна (индекс Данна, сокращенно DI)
    DI = \min_{1 \le i \le k}\{\min_{j \ne i}(\frac{d_{min}(C_i,C_j)}{\max_{1 \le l \le k} diam(C_l)})\}
    Чем больше значение DI, тем лучше

3.2.2 Коэффициент силуэта

  • Сплоченность кластеризации и разделение объединяются для оценки эффекта кластеризации. Значение находится в диапазоне (-1,1).
  • Чем ближе значение к 1, тем больше сходство выборки с выборкой в ​​своем кластере и несходство с выборками из других кластеров; когда точка выборки больше похожа на выборку вне кластера, коэффициент силуэта равен отрицательный; когда коэффициент силуэта отрицательный Когда он равен 0, это означает, что образцы в двух кластерах имеют одинаковое сходство, и два кластера должны быть одним кластером.
  • формула
    s(i) = \frac{b(i) - a(i)}{max\{a(i) , b(i)\}}
    a(i) — среднее расстояние между образцом i и другими образцами в кластере, b(i) — среднее расстояние между образцом i и другими образцами в определенном кластере, а b(i) в нескольких кластерах — наименьшее.

3.2.3 соответствующий пакет sklearn

  • DBI: sklearn.metrics.davies_bouldin_score
  • sklearn.metrics.silhouette_score, возврат представляет собой среднее значение коэффициентов силуэта всех выборок в наборе данных.
  • sklearn.metrics.silhouette_score_samples, который принимает те же параметры, что и коэффициенты силуэта, но возвращает собственные коэффициенты силуэта каждой выборки в наборе данных.

4. Проблемы ассоциации

4.1 Поддержка

  • Представляет вероятность того, что элементы X и Y появляются одновременно в общем наборе данных, и формула его расчета
    support(X => Y) = \frac{T(X \cup Y)}{N}
    Он относится к доле записей транзакций, в которых X и Y появляются одновременно, среди N записей транзакций.

4.2 Уверенность

  • Это относится к вероятности того, что последующий элемент Y также произойдет, когда ведущий элемент X уже возник, то есть доля записей транзакций, которые также содержат Y, в записях транзакций, содержащих X. Формула расчета:
    confidence(X => Y) = \frac{support(X \cup Y)}{support(X)}

4.3 Лифт

  • Указывает отношение вероятности содержания Y одновременно при условии содержания X, и вероятности содержания Y независимо от того, содержится ли X, формула расчета
    confidence(X => Y) /support(Y)
    В случае покупки X вероятность покупки Y больше, чем вероятность покупки Y, что имеет эффект продвижения.

5. Ссылка

6. Еще

  • Следите за блогомPatrick