質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

解決済

ValueError: continuous format is not supportedの対処方法

kouji_39
kouji_39

総合スコア130

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

2回答

0リアクション

0クリップ

355閲覧

投稿2022/08/09 11:06

編集2022/08/10 08:04

1.前提・実現したいこと
不均衡問題を異常検知問題として扱う方法(https://qiita.com/tk-tatsuro/items/10e9dbb3f2cf030e2119)を読み、コードを動かしています。
ValueError: continuous format is not supportedというエラーが出ます。
対処方法をお願いします。

2.発生している問題・エラーメッセージ
3.のソースコード実行(最終行のコード)で下記のエラーメッセージが発生
-> ValueError Traceback (most recent call last)
<ipython-input-8-8f5107fe8148> in <module>()
89
90 # ROC曲線_エラー発生
---> 91 plot_roc_curve(y_pred,y_test)
92
93 # Precision-Recall曲線

2 frames
/usr/local/lib/python3.7/dist-packages/sklearn/metrics/_ranking.py in _binary_clf_curve(y_true, y_score, pos_label, sample_weight)
729 y_type = type_of_target(y_true)
730 if not (y_type == "binary" or (y_type == "multiclass" and pos_label is not None)):
--> 731 raise ValueError("{0} format is not supported".format(y_type))
732
733 check_consistent_length(y_true, y_score, sample_weight)

ValueError: continuous format is not supported

3.該当のソースコード

python3

import pandas as pd import seaborn as sns import matplotlib.pyplot as plt %matplotlib inline # データ取得 creditcard = pd.read_csv("×××(内部ディレクトリ名)/creditcard.csv", sep=',') import numpy as np from sklearn import metrics from sklearn.metrics import accuracy_score from sklearn.metrics import precision_score from sklearn.metrics import recall_score from sklearn.metrics import f1_score from sklearn.model_selection import train_test_split from sklearn.linear_model import LogisticRegression from sklearn.metrics import confusion_matrix from sklearn.metrics import plot_confusion_matrix from sklearn.metrics import roc_auc_score # ROC曲線 # アンダーサンプリング from imblearn.under_sampling import RandomUnderSampler target = 'Class' rs = RandomUnderSampler(random_state=42) under_sampling ,_ = rs.fit_resample(creditcard, creditcard[target]) print('*'*20) print('<元のデータ>') print('0の件数:%d'%len(creditcard.query(f'{target}==0'))) print('1の件数:%d'%len(creditcard.query(f'{target}==1'))) print('*'*20) print('<アンダーサンプリング後のデータ>') print('0の件数:%d'%len(under_sampling.query(f'{target}==0'))) print('1の件数:%d'%len(under_sampling.query(f'{target}==1'))); def show_confusion_matrix(y_test, y_pred): print("\n", confusion_matrix(y_test, y_pred)) def modeling(data): X = data.drop('Class',axis=1) y = data['Class'] # データ分割 X_train,X_test,y_train,y_test = train_test_split(X, y, test_size=0.1, random_state=42) # ロジスティック回帰 lr = LogisticRegression(max_iter=1000) lr.fit(X_train, y_train) y_pred = lr.predict(X_test) # 混同行列 matrix = show_confusion_matrix(y_test, y_pred) print(matrix) # 評価 print('Accuracy = ', accuracy_score(y_true=y_test, y_pred=y_pred).round(decimals=3)) print('Precision = ', precision_score(y_true=y_test, y_pred=y_pred).round(decimals=3)) print('Recall = ', recall_score(y_true=y_test, y_pred=y_pred).round(decimals=3)) print('F1 score = ', f1_score(y_true=y_test, y_pred=y_pred).round(decimals=3)) return lr, y_pred, X_train, X_test, y_train, y_test # ROC曲線 def plot_roc_curve(pred, y_test): pred = np.where(pred > 0.5, 1, 0.5) fpr, tpr, thresholds = metrics.roc_curve(pred, y_test) plt.figure(figsize=[15, 5]) plt.plot(fpr, tpr, label=f'roc_curve') plt.xlabel('FPR') plt.ylabel('TPR') plt.legend() plt.grid() plt.show() auc = metrics.auc(fpr, tpr) print('auc: {:.3f}'.format(auc)) # PR(Precision-Recall)曲線 def plot_precision_recall_curve(y_test, y_pred): precision, recall, thresholds = metrics.precision_recall_curve(y_test, y_pred) auc = metrics.auc(recall, precision) print(f'AUC: {round(auc,3)}%') plt.figure(figsize=[15, 5]) plt.plot(recall, precision, label='PR curve (area = %.2f)'%auc) plt.legend() plt.title('PR curve') plt.xlabel('Recall') plt.ylabel('Precision') plt.grid() plt.show(); # アンダーサンプリング lr, y_pred, X_train, X_test, y_train, y_test = modeling(under_sampling) # ROC曲線_エラー発生 plot_roc_curve(y_pred,y_test) # Precision-Recall曲線 plot_precision_recall_curve(y_test, y_pred)

4.自分で調べたことや試したこと
Google検索では、有用な情報なし。

5.使っているツールのバージョンなど補足情報
開発環境:Google Colaboratory
プログラム言語:python3
OS:windows10 Home
CPU:Intel(R) Core(TM) i7-7500U CPU@2.70GHz 2.90GHz

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/08/09 11:29依頼された後にこの質問は修正されています

こちらの質問が他のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。