ホームページ  >  記事  >  バックエンド開発  >  分類評価指標と回帰評価指標とPythonコードの実装について詳しく解説

分類評価指標と回帰評価指標とPythonコードの実装について詳しく解説

零到壹度
零到壹度オリジナル
2018-04-16 11:11:1711443ブラウズ

この記事の内容は、分類評価指標と回帰評価指標の詳細な説明と、Python コードの実装です。必要な友人に参照してください。

1. 概念

パフォーマンス測定 (評価) 指標は主に 2 つのカテゴリに分類されます:
1) 分類評価指標 (分類)、主に分析、離散、整数。具体的な指標としては、アキュラシー(精度)、プレシジョン(精度)、リコール(再現率)、F値、P-Rカーブ、ROCカーブ、AUCなどが挙げられます。
2) 回帰評価指標(回帰)は、主に整数と実数の関係を分析します。その特定の指標には、説明分散スコア (explianed_variance_score)、平均絶対誤差 MAE (mean_absolute_error)、平均二乗誤差 MSE (mean-squared_error)、二乗平均平方根差 RMSE、クロス エントロピー損失 (対数損失、クロスエントロピー損失)、R 二乗が含まれます。値(決定係数、r2_score)。

1.1. 前提

通常、関心のあるカテゴリはポジティブなカテゴリであり、他のカテゴリはネガティブなカテゴリであると仮定します (したがって、複数クラスの問題も 2 つに要約できます)。カテゴリー)
混同行列は次のとおりです

実際のカテゴリ 予測カテゴリ

ポジティブ ネガティブ 概要
ポジティブ TP FN 表内の P (実際は正)
FP TN N (実際は負)

表内のモード: 最初のものは、予測結果が正しいか間違っているか、2 番目は予測されたカテゴリを表します。たとえば、TP は True Positive (正しい予測が陽性クラスであること) を意味し、FN は False Negative (誤った予測が陰性クラスであること) を意味します。

2. 評価指標 (性能測定)

2.1. 分類評価指標
2.1.1 価値指標 - Accuracy、Precision、Recall、F 値
Measurement Accuracy (精度) Precision (精度) 再現率(リコール) F値
定義 サンプル総数に対する正しく分類されたサンプル数の比率(スパムであると予測される実際のスパムテキストメッセージの割合) 決定as 陽性例の数に対する真陽性例の数の比率 (正しく分類され、検出されたすべての実際のスパム テキスト メッセージの割合) 陽性例の総数に対する真陽性例の数の比率 正解率調和平均F-スコア
、再現率付き 精度=

精度=

リコール =

F - スコア =

1. 適合率は適合率とも呼ばれ、再現率は再現率とも呼ばれます
2. より一般的に使用されるのは F1、

python3.6 コード実装:

#调用sklearn库中的指标求解from sklearn import metricsfrom sklearn.metrics import precision_recall_curvefrom sklearn.metrics import average_precision_scorefrom sklearn.metrics import accuracy_score#给出分类结果y_pred = [0, 1, 0, 0]
y_true = [0, 1, 1, 1]
print("accuracy_score:", accuracy_score(y_true, y_pred))
print("precision_score:", metrics.precision_score(y_true, y_pred))
print("recall_score:", metrics.recall_score(y_true, y_pred))
print("f1_score:", metrics.f1_score(y_true, y_pred))
print("f0.5_score:", metrics.fbeta_score(y_true, y_pred, beta=0.5))
print("f2_score:", metrics.fbeta_score(y_true, y_pred, beta=2.0))
2.1.2 相関曲線-P-R 曲線、ROC 曲線、AUC 値

1) P-R曲線
手順:
1. 「スコア」値を高いものから低いものまで並べ替え、それらをしきい値として順番に使用します。
2. 各しきい値について、このしきい値以上の「スコア」値を持つサンプルをテストします。はポジティブな例であり、その他はネガティブな例です。したがって、一連の予測数値が形成されます。
例: 0.9を閾値として設定すると、最初のテストサンプルが陽性例となり、2、3、4、5が陰性例となります
分類評価指標と回帰評価指標とPythonコードの実装について詳しく解説

が陽性であると予測されます。例0.9 0.2+0.3+0.3+0.35 = 1.15しきい値を下回る部分は負の例として扱われ、予測された負の例の値が正しい予測値になります。つまり、それが正の例の場合は TP が取得され、負の例の場合は TP が取得されます。 TN が取られますが、どちらも予測スコアです。 Python は疑似コードを実装します

陰性であると予測される例
合計 陽性の場合(スコアが閾値より大きい)
0.1 1 陰性の場合(スコアが閾値より小さい)
0.8+0.7+0.7+0.65 = 2.85 4 精度=

再現率=

#precision和recall的求法如上
#主要介绍一下python画图的库
import matplotlib.pyplot ad plt
#主要用于矩阵运算的库
import numpy as np#导入iris数据及训练见前一博文
...
#加入800个噪声特征,增加图像的复杂度
#将150*800的噪声特征矩阵与150*4的鸢尾花数据集列合并
X = np.c_[X, np.random.RandomState(0).randn(n_samples, 200*n_features)]
#计算precision,recall得到数组
for i in range(n_classes):
    #计算三类鸢尾花的评价指标, _作为临时的名称使用
    precision[i], recall[i], _ = precision_recall_curve(y_test[:, i], y_score[:,i])#plot作图plt.clf()
for i in range(n_classes):
    plt.plot(recall[i], precision[i])
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel("Recall")
plt.ylabel("Precision")
plt.show()

上記のコードを完了すると、アヤメの花データセットの P-R 曲線が得られます

2) ROC 曲線

横軸: 偽陽性率 fp rate = FP/N
縦軸: True陽性率 tp rate = TP / N 分類評価指標と回帰評価指標とPythonコードの実装について詳しく解説手順:
1. 「スコア」値を高いものから低いものまで並べ替え、それらを順番にしきい値として使用します
2. 各しきい値について、より大きい「スコア」値を持つサンプルをテストします。このしきい値以上は正の例とみなされ、それ以外は負の例とみなされます。したがって、一連の予測数値が形成されます。


P-R曲線の計算と似ているので詳細は割愛します
アイリスの花データセットの ROC 画像は

AUC (Area Under Curve) は、ROC 曲線の下の面積として定義されます
AUC 値は、分類器の全体的な数値を提供します。通常、AUC が大きいほど優れた分類器であり、その値は [0, 1]
分類評価指標と回帰評価指標とPythonコードの実装について詳しく解説
2.2. 回帰評価指標

1) 解釈可能な分散スコア
2) 平均絶対誤差 MAE (Mean Absolute error)


分類評価指標と回帰評価指標とPythonコードの実装について詳しく解説3) MSE (平均二乗誤差)

分類評価指標と回帰評価指標とPythonコードの実装について詳しく解説

4) ロジスティック回帰損失 分類評価指標と回帰評価指標とPythonコードの実装について詳しく解説
分類評価指標と回帰評価指標とPythonコードの実装について詳しく解説5) 一貫性評価 - ピアソン相関係数法

分類評価指標と回帰評価指標とPythonコードの実装について詳しく解説Python コード実装

from sklearn.metrics import log_loss
log_loss(y_true, y_pred)from scipy.stats import pearsonr
pearsonr(rater1, rater2)from sklearn.metrics import cohen_kappa_score
cohen_kappa_score(rater1, rater2)

以上が分類評価指標と回帰評価指標とPythonコードの実装について詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。