Sklearnのpreprocessingの全メソッドを解説

概要 Pythonで機械学習をするときに使うscikit-learn(恐らく、サイキットラーンと呼びます)には前処理用のライブラリであるpreprocessingが組み込まれています。前処理とは、データの欠損保管や正規化、カテゴリデータの数値化等のことです。このpreprocessingの全メソッドの効果を検証したのが今回の記事です。irisのデータを題材にして説明していきます。 メソッド一覧 コンソール上でdir(sp)と入力すると、メンバの一覧が取得できます。その中でメソッドを抽出すると以下23メソッドがあることが分かります。以降の項目で各メソッドについて説明していきます。 add_dummy_feature binarize Binarizer data FunctionTransformer imputation Imputer KernelCenterer label LabelBinarizer LabelEncoder maxabs_scale MaxAbsScaler minmax_scale MinMaxScaler MultiLabelBinarizer normalize Normalizer OneHotEncoder PolynomialFeatures robust_scale scale StandardScaler add_dummy_feature 項目を1つ追加したいときに使う。 以下のように直接渡せば機能する。 左の列にダミー配列が追加された。 binarize 閾値を設けてそれより大きい値を1に、小さい値を0にする(二値化)。 以下のように直接渡せば機能する。 平均値以下の値は0に、それ以上の値は1に変換された。 Binarizer 基本的な機能はbinarizeと同様だが、パラメータ設定と適用を分けて実施することができるため、一度覚えさせたパラメータをほかのデータにも適用したいときに有効。 結果はbinarizeと同様になる。 data 調査中。 FunctionTransformer 全要素にsin関数等の関数処理を一括適用したいときに使う。 ①関数を渡す。②適用する。という2段階で使う。 全ての値をsin関数に通した結果が得られた。 imputation 使わないメソッドと思われる。 Imputer 欠損値の穴埋め。平均か中央値か最頻値かで選ぶ。 ①欠損方法を指定する。②学習する。③適用する。という3段階で使う。 まずdfをtempにコピーし、1つ目のデータを欠損値にしておく。 確かに1つ目が欠損になっている。 次に欠損値にNaNを指定し、穴埋め方法として平均処理するように設定。 欠損値が平均値で埋められた。 KernelCenterer 写像関数。何のために使うものなのかは調査中。 ①インスタンスを作る。②学習する。③適用する。という3段階で使う。 学習と適用を同じデータにすると全て同じ値になる模様。 fitするデータを変えてみた場合。 さっきとは少し違う結果になった。 グラフにしてみる。よく分からないが非線形に写像されているようだ。 label 使わないメソッドと思われる。 label_binarize 要素ごとに一致する値があるかどうかの列を作る。オブジェクト型の説明変数を機械学習にかけたいときによく使う前処理手法。 データと項目を渡すことで動作する。 ['Iris-setosa',...
2016年11月23日0 DownloadsDownload