

SVMのregressoarを用いて、金融市場の評価分析を行おうとしています。  
テキストを参考にコーディングしたところ、最終行の `plot_confusion_matrix`, `plot_roc_curve`
でエラーとなってしまい、先に進めません（メッセージ内容は、タイトル通り）。

エラーメッセージをgoogleで検索し、PIPやsciket-
learnのupdateを行い、kernelのRESTARTも掛けたのですが、状況は変わりません。

ちなみに、pipは(22.3.1)、sciket-learnは (1.2.0)です。

どなたかお知恵を授けて頂けないでしょうか？  
ちなみに、コーディング内容は下記記載の通りです。

よろしくお願いします。

[code]

    # Base Libraries
    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    plt.style.use('fivethirtyeight')
    
    # Preprocessing
    from sklearn.preprocessing import MinMaxScaler, RobustScaler
    from sklearn.pipeline import Pipeline
    from sklearn.model_selection import train_test_split, TimeSeriesSplit, GridSearchCV
    
    # SVM
    from sklearn.svm import SVR
    
    # Metrics
    from sklearn.metrics import  r2_score, mean_squared_error, mean_absolute_error, accuracy_score
    from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
    from sklearn.metrics import plot_confusion_matrix, auc, roc_curve, plot_roc_curve**
    
[/code]


CC BY-SA 4.0
2022-12-19T15:06:03.980
92904
2022-12-19T16:36:05.310
2022-12-19T16:26:44.200
3060
56105
question
python scikit-learn
scikit-learnのErrorメッセージ”cannot import name 'plot_confusion_matrix' from 'sklearn.metrics' の解消方法につき、どなたかご教示ください。


`plot_confusion_matrix`はscikit-learn
1.0.0版で破棄予定(deprecated)になり、1.2.0版で実際に削除された(removed)ようです。  
それを使わないように変更するか、使いたいなら1.2.0より前の版にダウングレードしてみてください。1.1.3版以前でしょうか。  
[リリース履歴 scikit-learn - PyPI](https://pypi.org/project/scikit-learn/#history)

[Version 1.0.0](https://scikit-
learn.org/stable/whats_new/v1.0.html#version-1-0-0)  
[sklearn.metrics](https://scikit-learn.org/stable/whats_new/v1.0.html#id17)

>   * API Change [metrics.ConfusionMatrixDisplay](https://scikit-
> learn.org/stable/modules/generated/sklearn.metrics.ConfusionMatrixDisplay.html#sklearn.metrics.ConfusionMatrixDisplay)
> exposes two class methods [from_estimator](https://scikit-
> learn.org/stable/modules/generated/sklearn.metrics.ConfusionMatrixDisplay.html#sklearn.metrics.ConfusionMatrixDisplay.from_estimator)
> and [from_predictions](https://scikit-
> learn.org/stable/modules/generated/sklearn.metrics.ConfusionMatrixDisplay.html#sklearn.metrics.ConfusionMatrixDisplay.from_predictions)
> allowing to create a confusion matrix plot using an estimator or the
> predictions. `metrics.plot_confusion_matrix` is deprecated in favor of these
> two class methods and will be removed in 1.2.
> [#18543](https://github.com/scikit-learn/scikit-learn/pull/18543) by
> Guillaume Lemaitre.
>

なお質問のソースから`plot_confusion_matrix`を削除すると今度は`plot_roc_curve`の方で同様にimport出来ないというエラーが発生します。こちらはドキュメントにそうした記述はありませんが、1.2.0版の[API
Reference](https://scikit-
learn.org/stable/modules/classes.html)に名前が載っていない事と、上記記述の後に似た名前の`metrics.plot_det_curve`もdeprecated,removedの記述があるので、ドキュメント化されていないながらも同様に削除されたのではないでしょうか？

* * *

1.1.3版の[API Reference](https://scikit-
learn.org/1.1/modules/classes.html)には記述が残っているようですね。  
[Plotting](https://scikit-learn.org/1.1/modules/classes.html#id5)


CC BY-SA 4.0
2022-12-19T15:33:24.057
92905
2022-12-19T16:36:05.310
2022-12-19T16:36:05.310
26370
26370
92904
answer