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

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

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

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

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

2回答

305閲覧

教師あり学習においての未知データの前処理

kentaman

総合スコア10

機械学習

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

Python

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

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

1クリップ

投稿2019/09/18 06:10

前提・実現したいこと

ロジスティック回帰を用いて、未知データのクラス分け分類を行おうとしています。
その中で、教師データと未知データの前処理をどう行うかわからず悩んでおります。
教師データで前処理、未知データで前処理を行うべきなのか、二つまとめたデータに対し前処理を行うべきなのかご教授願いたいと思います。
初めての質問なので、至らぬところもあると思いますが、どうかよろしくお願いいたします。

前処理コード

def standardization(data, num_element):

data.fillna(10 ** -10, inplace=True) data = data.replace(0, 10 ** -10) data = data.mask(data < 0, 10**-10) for n in range(num_element): data1, lmbda = stats.boxcox(data.iloc[:,n]) data.iloc[:,n] = data1 print('===================================================') print('Box-Cox is completed') print('===================================================') print(data) data = data.apply(stats.zscore, axis=0) print('===================================================') print('Z-score is completed') print('===================================================') print(data) return data

前処理① 教師データおよび未知データをまとめて前処理

all_data = pd.concat([train_data, analy_data])
all_data = standardization(all_data, num_dimention)

###前処理② 教師データおよび未知データを別々に前処理

train_data = standardization( train_data, num_element)
analy_data = standardization( analy_data, num_element)

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

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

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

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

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

guest

回答2

0

標準化操作を行う場合は、教師データの平均・分散に基づいて両方を処理する必要があります。とりあえず、別々に処理するのは論外です。

pandasでやる場合は結合して処理後に分割することでできなくはありませんが、これはこれで問題含みです。根本的には、機械学習ライブラリの枠組みの中でやることをおすすめします。

たとえばscikit-learnのStandardScalerであれば教師データはfit_transformで処理し、未知データはtransformで処理するなどです。
(実際にはPipelineを構築した方がスマートです)

sklearn.preprocessing.StandardScaler — scikit-learn 0.21.3 documentation

投稿2019/09/18 08:31

hayataka2049

総合スコア30933

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

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

0

まとめて前処理すると、また分割しなければいけないので、別々に処理すればよいのでは?
連続データなどで分割すると、欠損値の穴埋めがうまくいかないのであれば、後で分割することになるのかもしれませんが。

投稿2019/09/18 07:45

nandymak

総合スコア799

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問