Kaggleで使用されているコードの中でわからないものがあったので質問いたします。
def plot_confusion_matrix(y_true, y_pred, classes, normalize=True, title=None, cmap=plt.cm.Blues): """ This function prints and plots the confusion matrix. Normalization can be applied by setting `normalize=True`. """ if not title: if normalize: title = 'Normalized confusion matrix' else: title = 'Confusion matrix, without normalization'
※定義文は途中で区切られたものです
これは混同行列を表示しプロットする目的があり、後に2値判定のモデルで青色の混同行列を表示するために使われています。
if文に関しての疑問です。
if notは条件式の結果が真であれば偽、偽の場合は真を返すのですよね。
しかし、if not title: のtitleの部分は条件式になっているようには見えないのですが、これはどのような意味を持つのでしょうか。
そして、if normalize:というのも条件式になっていないように見えます。そしてその条件の先に、
title = 'Normalized confusion matrix'、というのが存在するのも、どのような処理を行いたいのかよく理解できませんでした。
plot_confusion_matrix(y_test, y_pred, classes=["loyal", "churn"], title='Confusion matrix, with normalization', normalize=True)
実際にはこのように定義が利用されています。title = の部分で既に定義が行われているので、わざわざif文で定義しなおすように作るというのもよくわかりません。
初歩的な質問かもしれませんが、お答えいただけると幸いです。
よろしくお願いいたします。
kaggle: telecom-customer
https://www.kaggle.com/abhinav89/telecom-customer
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/31 17:26
2021/12/31 17:38 編集
2022/01/07 11:11
2022/01/07 11:17