Closed ShotaArima closed 3 months ago
https://github.com/ShotaArima/demo-lowprofool/blob/33cb6b62deecc5e0b85aae13cbb43c6bd087ce54/src/Playground.ipynb#L191-L268 について以下のようなエラーが発生した https://github.com/ShotaArima/demo-lowprofool/blob/33cb6b62deecc5e0b85aae13cbb43c6bd087ce54/src/Playground.ipynb#L507-L530
このエラーは、normalize 関数内で bounds が期待される形式ではないことを示しています。具体的には、bounds が配列やリストではなく、おそらく辞書形式になっているようです。この問題を解決するには、以下の手順を踏む必要があります:
# 1. boundsの形式を確認 print("Current bounds format:", bounds) # 2. normalize関数を修正して辞書形式のboundsを扱えるようにする def normalize(df, target, feature_names, bounds): # ... (既存のコード) # boundsが辞書形式の場合の処理 if isinstance(bounds, dict): lower_bounds = [] upper_bounds = [] for feature in feature_names: if bounds[feature]['type'] == 'numeric': lower_bounds.append(bounds[feature]['min']) upper_bounds.append(bounds[feature]['max']) else: # カテゴリカル変数の場合は、適切な処理を追加 # 例: 最小値と最大値を0と1にするなど lower_bounds.append(0) upper_bounds.append(1) lower_bounds = scaler.transform([lower_bounds]) upper_bounds = scaler.transform([upper_bounds]) else: # 既存の処理(配列やリストの場合) lower_bounds = scaler.transform([bounds[0]]) upper_bounds = scaler.transform([bounds[1]]) # ... (残りのコード) # 3. 修正したnormalize関数を呼び出す scaler, df, bounds = normalize(df, target, feature_names, bounds)
事象
https://github.com/ShotaArima/demo-lowprofool/blob/33cb6b62deecc5e0b85aae13cbb43c6bd087ce54/src/Playground.ipynb#L191-L268 について以下のようなエラーが発生した https://github.com/ShotaArima/demo-lowprofool/blob/33cb6b62deecc5e0b85aae13cbb43c6bd087ce54/src/Playground.ipynb#L507-L530
変更内容