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

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

新規登録して質問してみよう
ただいま回答率
85.46%
機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

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

Q&A

解決済

1回答

1982閲覧

Nanやinfinityが無いのにValueErrorが出る

a18.

総合スコア13

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

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

0グッド

0クリップ

投稿2021/10/07 05:23

前提・実現したいこと

回帰モデルに対して、評価指標のMAEを使用しようと思ったらエラーが出ました。
Nanやとても大きい値などは無いと思うのですが、原因と解決法を教えていただきたいです。

該当のソースコードと結果

python

1#xとyの概要 2print(x) 3print(y)

0 1519.0
1 1370.0
2 1516.0
3 1377.0
4 1487.0
...
6798 1493.0
6799 1226.0
6800 1027.0
6801 906.0
6802 1016.0
Length: 6803, dtype: float64

0 1434.50
1 1448.06
2 1457.60
3 1447.14
4 1309.52
...
6798 1353.32
6799 1024.42
6800 949.82
6801 975.78
6802 991.02
Length: 6803, dtype: float64

python

1#Nanが無いことを確認 2print(x[x==np.nan]) 3print(y[y==np.nan])

Series([], dtype: float64)
Series([], dtype: float64)

python

1#maxとminを調べてみる 2print(max(x),'---',min(x)) 3print(max(y),'---',min(y))

2710.0 --- 0.0
2609.2400000000002 --- 2.3

python

1import sklearn.metrics as sk 2sk.mean_absolute_error(x,y)

ValueError: Input contains NaN, infinity or a value too large for dtype('float64').

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

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

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

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

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

guest

回答1

0

ベストアンサー

NaNの判定はx==np.nanではなくnp.isnan(x)を使ってください。
また、別の値に置換または削除したい場合はNumPyの配列ndarrayの欠損値np.nanを他の値に置換などを参照してください。

Python

1import numpy as np 2 3x = np.array([1.0,np.nan,2.0]) 4print(x[x==np.nan]) # [] 5print(x[np.isnan(x)]) # [nan] 6print(max(x),'---',min(x)) # 2.0 --- 1.0

投稿2021/10/07 06:22

can110

総合スコア38278

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

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

a18.

2021/10/07 06:45

解決しました。 誠にありがとうごさいます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問