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

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

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

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

Python

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

Q&A

解決済

1回答

833閲覧

python機械学習の標準化について

watasihadarena

総合スコア4

機械学習

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

Python

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

0グッド

0クリップ

投稿2022/01/01 05:58

前提・実現したいこと

pythonで機械学習をしていて標準化をしようとしています。そこで疑問に思ったのですが、データをtest用と学習用の二つに分けていてそれらを標準化しようとしたときfitに渡すデータは一つのまま標準化してmodelにデータを渡していいのでしょうか。それとも別にインスタンスを生成してそれそれで標準化した方がいいのでしょうか?

from sklearn.preprocessing import StandardScaler
scaler=StandardScaler()
scaler.fit(x_train)
x_train_std=scaler.transform(x_train)
x_test=scaler.transform(x_test)

print(x_train_std)

x_testとx_trainは分割したデータです。

試したこと

fitの部分では引数で渡したデータの平均と標準偏差が保存されているのでその値によって標準化されているということを知りました。

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

標準化するための平均と標準偏差を計算するためにtest用のデータも使うのかという質問でしたら、当然ダメです。

学習を行って、その結果得られたモデルを使ってさまざまな入力を推論するのが機械学習です。
どういう質問(入力)が来るかはわかっていません。
それのいくつかの例を検証するのがtest用データです。
test用データとして何が来るかを知っていてそれを学習時に使うのでは実用的に意味がありません。

投稿2022/01/01 07:54

ppaul

総合スコア24666

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

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

watasihadarena

2022/01/01 08:29

ご回答ありがとうございます。 自分は標準化の認識としてそのデータ群における散らばりの情報を保持したまま、無次元化することを標準化と思っていました。そのためこのソースのようにx_trainによるfit(x_trainのデータ群の散らばり具合と平均)でx_testの標準化を行っていいか疑問です。標準化はあくまでデータの整形を行っているだけなのでx_testの標準化はおこなっていいわけではないのですか??
kokoa_spcgg

2022/01/01 10:41

私も勉強中なので確実とは言えないのですが、こちらのサイトでは訓練データでfitしたものでテストデータもtransformしなければならないとありましたので参考までに載せておきます。 https://mathwords.net/fittransform
watasihadarena

2022/01/01 14:07

お二人方こたえていただきありがとうございます。 kokoa_spcggさんの載せていただいたサイトを見てその後いろいろ調べたら納得できました。 つまり訓練用データとテスト用データに分けたとき、比較的少なくなるテスト用データだと訓練用データとは違うばらつき具合になってしまうからということでした。訓練用データで学習をしているので訓練用データでのばらつき具合に対してテスト用データがどれほどの値を示すのかが重要であるということで自分なりに言語化してみました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問