• 締切済み

pythonでエンコーディング

pythonで以下のようにエンコードするプログラムを開発しています。 保存したモデルをロードした後にfitを行うとエンコードモデルが初期化されている状況です。 動作させるたびに初期化されてしまうと保存している意味がないのではないと考えており、初期化が行われないようにしたいと考えております。 どのように対応すればよいかわかる方がいらっしゃいましたらご教授頂けないでしょうか。 お手数お掛けいたしますがよろしくお願いいたします。 #****************************************************************************** # encodeモデルのロード #****************************************************************************** if os.path.isfile('Hin_encod.sav'): print("encodeモデルロード") # ★encodeモデルが存在する場合はロード o_encoder = job.load('Hin_encod.sav') else: # ★encodeモデルが存在しない場合は新規作成 print("encodeモデル新規作成") # 未知の値が発生した場合は-1に置換 o_encoder = OrdinalEncoder(handle_unknown="use_encoded_value",unknown_value=-1,) # (1)変換対象ラベルの紐づけ o_encoder.fit(df_temp) # (2)変換(エンコーディング) df_temp = o_encoder.transform(df_temp) # エンコード結果の保存 job.dump(o_encoder, filename_HIN_enc)

みんなの回答

回答No.2

特定のデータに対してfitした結果を保存し、その結果を使って別のデータに対してtransformだけを実行する、ということでしょうか? そうであれば、fitに使用するデータが何なのかがわからないのと、毎回保存する必要はないので、コードの構成がかなり変わってくると思います。

回答No.1

「filename_HIN_enc」の値は何になりますか? それが「'Hin_encod.sav'」とは違うのであれば、前回保存したモデルを読み込んでいないのが原因じゃないでしょうか。

19820202
質問者

補足

ご説明が足りておらず申し訳ございません。 filename_HIN_enc = 'Hin_encod.sav' としていますので同じ値がセットされております。

関連するQ&A