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

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

新規登録して質問してみよう
ただいま回答率
85.48%
JupyterLab

JupyterLabは、Jupyter notebookの後継の対話型開発環境(IDE)です。データの可視化がインタラクティブで、プラグイン作成により新しいコンポーネントの追加および既存のコンポーネントも統合可能。サーバに閉じているため、データ分析に向いています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

1回答

451閲覧

Pythonのimblearnについて

XoVhs

総合スコア1

JupyterLab

JupyterLabは、Jupyter notebookの後継の対話型開発環境(IDE)です。データの可視化がインタラクティブで、プラグイン作成により新しいコンポーネントの追加および既存のコンポーネントも統合可能。サーバに閉じているため、データ分析に向いています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/07/10 15:45

pythonで以下の記述を行うとimportエラーが出てしまいます。
対処法を教えていただきたいです。

記述:
from imblearn.under_sampling import RandomUnderSampler

エラー:
ImportError: cannot import name 'DistanceMetric' from 'sklearn.metrics'

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

usekay

2022/07/10 21:55 編集

import sklearnは同じようなエラーになりますか? なる場合はsklearnがインストールされていないためまずそちらをインストールしてください。
jbpb0

2022/07/10 22:12

インストールしてる「imbalanced-learn」と「scikit-learn」のバージョンは、それぞれいくつでしょうか? もし「imbalanced-learn」の最新バージョンをインストールしてるなら、インストールしてる「scikit-learn」のバージョンが https://pypi.org/project/imbalanced-learn/ の「Dependencies」に書かれてる条件を満たしてるか確認してください
XoVhs

2022/07/11 02:26

お二人とも回答ありがとうございます。 バージョンはそれぞれ scikit-learn 1.1.0 imbalanced-learn 0.9.1 で、上記要件を満たしていると思うのですが、エラーが出てしまいます。
jbpb0

2022/07/11 03:46 編集

> scikit-learn 1.1.0 pythonで下記を実行して、表示されるバージョンが上記と合ってるか確認してみてください import sklearn print(sklearn.__version__) 表示されるバージョンが合ってる場合は、以下に進んでください (合ってない場合は、以下に進んでも意味はありません) pythonで、下記は実行できますでしょうか? from sklearn import metrics print(metrics.__file__) 上記が実行できたら、 /どこか/site-packages/sklearn/metrics/__init__.py のような「__init__.py」というファイルのパスが表示されるはずなので、そのファイルをテキストエディタで開いてください > scikit-learn 1.1.0 ならば、テキストエディタで開いた「__init__.py」の内容は、 https://github.com/scikit-learn/scikit-learn/blob/1.1.0/sklearn/metrics/__init__.py と同じはずですが、それの39行目の from ._dist_metrics import DistanceMetric は、テキストエディタで開いた「__init__.py」にありますでしょうか?
usekay

2022/07/11 03:58

sklearn.metricsを直接インポートできますか?
XoVhs

2022/07/11 04:21

回答ありがとうございます。 > import sklearn print(sklearn.__version__) 上記を実行したところ、0.24.2と表示され、バージョンが異なりました。 pip install --upgrade scikit-learn を実行したのですが、 pip listで確認した場合は1.1.0となっており、printで見た場合は変化がありませんでした。
jbpb0

2022/07/11 05:58 編集

> pip listで確認 と同じ状態で pip show scikit-learn を実行してください いろいろ表示される中に「Location:」で始まる行がありますので、そこに書かれてるパスを記録してください そこに1.1.0が入ってます 次に、 pythonで下記を実行してください import sklearn print(sklearn.__file__) そうしたら、 /どこか/site-packages/sklearn/__init__.py みたいなパスが表示されます そのあたりに0.24.2が入ってます それの「/sklearn/__init__.py」よりも左の部分は、「pip show...」で記録したパスと違いますよね?
XoVhs

2022/07/11 12:58

何度もすみません。回答していただきありがとうございます。 確認してみたのですが、「/sklearn/__init__.py」よりも左の部分は同じパスになっていました・・・ しかし、再度バージョンを確認しても変化はありませんでした。
jbpb0

2022/07/12 12:33 編集

pythonで from sklearn import metrics print(metrics.__file__) を実行したら、 /どこか/site-packages/sklearn/metrics/__init__.py のような「__init__.py」というファイルのパスが表示されますが、それの「/sklearn/metrics/__init__.py」よりも左の部分は、先に調べた「pip show...」で記録したパスと同じでしょうか? また、上記で表示されたパス /どこか/site-packages/sklearn/metrics/__init__.py の「__init__.py」というファイルをテキストエディタで開いて、内容を調べてください > scikit-learn 1.1.0 ならば、テキストエディタで開いた「__init__.py」の内容は https://github.com/scikit-learn/scikit-learn/blob/1.1.0/sklearn/metrics/__init__.py と同じはずですが、それの39行目の from ._dist_metrics import DistanceMetric は、テキストエディタで開いた「__init__.py」にありますでしょうか? もし「__init__.py」にその行が無いなら、そこにあるのは1.1.0ではありませんが、 pip show scikit-learn ではそこに1.1.0が有るように表示されるのなら、pipが管理してる情報が壊れてるように思います (「pip install --upgrade scikit-learn」がうまくいってない)
guest

回答1

0

cannot import name 'DistanceMetric' from 'sklearn.metrics'

「imbalanced-learn」の最新バージョンを使ってるなら、使ってる「scikit-learn」のバージョンが
imbalanced-learn
の「Dependencies」に書かれてる条件を満たしてるか、pythonで下記を実行して確認してみてください

python

1import sklearn 2print(sklearn.__version__)

投稿2022/07/29 01:38

編集2022/07/29 01:40
jbpb0

総合スコア7651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問