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

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

新規登録して質問してみよう
ただいま回答率
85.30%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

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

Q&A

解決済

1回答

551閲覧

ビニングした特徴量を予測で使うには

sorathi

総合スコア2

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

機械学習

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

0グッド

0クリップ

投稿2022/08/27 14:43

前提

ビニング処理を行った特徴量を機械学習の学習に利用し、予測する新たなデータに対してもビニング処理して適切に予測を行いたい。

実現したいこと

モデルに学習させるための特徴量にビニング処理を行いたいと考えております。(one-hot-encodingは行わずそのまま学習に使う)
その場合、予測する新たなデータに対しても同様のビニング処理を施す必要があると理解しています。

ただ、新たなデータが学習時のビニングのどの区分に該当するのか、以下コードのCategoriesには記載がありますが、どのように処理して予測に使える状態にできるのでしょうか。
良い方法があればお教えいただければ幸いです。

発生している問題・エラーメッセージ

python

1binned = pd.cut(df['abc'],100) 2print(binned) 3 4timestamp 52018-09-07 17:15:00+00:00 (-0.00178, -0.00145] 62018-09-07 17:30:00+00:00 (0.000553, 0.000887] 72018-09-07 20:45:00+00:00 (0.000553, 0.000887] 82018-09-07 22:15:00+00:00 (0.00255, 0.00289] 92018-09-07 22:30:00+00:00 (0.00122, 0.00155] 10 ... 112022-07-31 22:45:00+00:00 (0.0102, 0.0106] 122022-07-31 23:00:00+00:00 (0.0106, 0.0109] 132022-07-31 23:15:00+00:00 (0.00989, 0.0102] 142022-07-31 23:30:00+00:00 (0.00756, 0.00789] 152022-07-31 23:45:00+00:00 (0.00622, 0.00656] 16Name: abc, Length: 133461, dtype: category 17Categories (100, interval[float64, right]): [(-0.0162, -0.0158] < (-0.0158, -0.0155] < (-0.0155, -0.0151] < (-0.0151, -0.0148] ... (0.0159, 0.0162] < (0.0162, 0.0166] < (0.0166, 0.0169] < (0.0169, 0.0172]]

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

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

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

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

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

jbpb0

2022/08/28 02:40 編集

> 予測する新たなデータに対しても同様のビニング処理を施す必要がある 「ビニング処理」が「sklearn.preprocessing.KBinsDiscretizer」でできること https://emotionexplorer.blog.fc2.com/blog-entry-372.html と同じなら、 https://teratail.com/questions/218412 の回答に書かれてる、「sklearn.preprocessing.StandardScaler」をファイル保存して、推論時にファイルから読み込む方法と同じことができるかも
sorathi

2022/08/28 07:47

ご回答ありがとうございます。 KBinsDiscretizerを初めて知りました。これを使うことで特徴量をfitとtransformで学習・変換して学習し、新たなデータに対してもtransformで変換して利用することができそうです。ご指導ありがとうございました。
guest

回答1

0

ベストアンサー

予測する新たなデータに対しても同様のビニング処理を施す必要がある

「ビニング処理」が
Scikit-Learnの前処理 KBinsDiscretizerによる離散化
に書かれてるような「sklearn.preprocessing.KBinsDiscretizer」でできることと同じなら、
標準化した学習済モデルでは、1件の予測はできない?
の回答に書かれてる、「sklearn.preprocessing.StandardScaler」をファイル保存して、推論時にファイルから読み込む方法と同じことができそうです

投稿2022/08/29 05:37

jbpb0

総合スコア7658

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問