パイプラインは主に「前処理」「特徴量選択」「数理モデル」の3種類の関数で構成されます。
「前処理」「特徴量選択」「数理モデル」のすべての種類の関数が使われることもあれば、一部だけ使われることもあります。
パイプラインの処理内容を解読するために、ここでそれぞれの関数を一覧にしておきます。(2020.11.23時点最新)
最新の関数一覧は、以下のTPOTのGithubから確認できます。
Contents
分類のパイプラインに使われる関数一覧
分類の「前処理」関数一覧
関数名 | 概要 | |
sklearn.preprocessing.Binarizer | 閾値を超えた値を1、閾値以下を0と変換します。 | |
sklearn.decomposition.FastICA | 独立成分分析を行います。独立な成分に分解します。 | |
sklearn.cluster.FeatureAgglomeration | 階層的クラスタリングを用いて、特徴量の次元を削減します。 | |
sklearn.preprocessing.MaxAbsScaler | 値を各列の絶対値の最大値で割ることで標準化します。各列の最大値は1.0になります。 | |
sklearn.preprocessing.MinMaxScaler | 値を、各列の最大値と最小値を使って、次の数式で列ごとに特定の範囲で標準化します。特定の範囲とは、初期値では最大値(max)=1、最小値(min)=0の範囲です。pythonの数式で書くと次のようになります。
|
|
sklearn.preprocessing.Normalizer | L1、L2、最大値による正規化を行います。
|
|
sklearn.kernel_approximation.Nystroem | 学習データの部分集合を使って、特徴量を線形分離可能な形に近似的に変換します。カーネル法を計算機で取り扱いやすくしたものです。サポートベクターマシンのような線形分離を行う分類器を使う前によく利用されます。 | |
sklearn.decomposition.PCA | 主成分分析し、n_componentパラメータで指定した数の主成分を返します。 | |
sklearn.preprocessing.PolynomialFeatures | degreeパラメータで指定した次数以下のすべての多項式の組み合わせを返します。たとえば特徴量が[a,b](a,bは1次元のベクトル)で表されるとすると、[1,a,b,a^2,ab,b^2]が返ってきます。 | |
sklearn.kernel_approximation.RBFSampler | モンテカルロ近似により、特徴量を線形分離な形に近似的に変換します。カーネル法を計算機で取り扱いやすくしたものです。サポートベクターマシンのような線形分離を行う分類器を使う前によく利用されます。 | |
sklearn.preprocessing.RobustScaler | 列ごとに値から中央値を引き、四分位範囲で割って変換します。中央値を引くかどうか、どの範囲で割るかはパラメータで設定できます。 | |
sklearn.preprocessing.StandardScaler | 列ごとに値から平均値を引き、標準偏差で割って変換します。 | |
tpot.builtins.ZeroCount | 行ごとにゼロの数を数え、値がゼロである数とゼロでない数を特徴量として付け加えます。
実行例 |
|
tpot.builtins.OneHotEncoder | 値はゼロでない整数だけが許可されます。入力値をダミー変数に変換した行列を返します。 |
分類の「特徴量選択」関数一覧
関数名 | 概要 |
sklearn.feature_selection.SelectFwe | 多重検定エラー率により特徴量を選択します。 |
sklearn.feature_selection.SelectPercentile | score_funcパラメータで指定されるスコアを算出し、う上からpercentileパラメータで指定される割合の特徴量を残します。初期値ではscore_funcは分散分析(ANOVA)によるF値で、percentileは10%です。 |
sklearn.feature_selection.VarianceThreshold | 分散がthresholdパラメータで指定される値より小さい特徴量を削除します。初期値ではthreshold=0、つまりすべて同じ値が入っている列が削除されます。 |
sklearn.feature_selection.RFE | 再帰的特徴量削減です。まずすべての特徴量からestimatorパラメータで指定した分類器によりモデルを作り、最も重要度が低い特徴量を削除する。次に削除した残りの特徴量からモデルを作り、重要度の最も低い特徴量を削除する、ということを繰り返し最終的にn_features_to_selectパラメータで指定した数の特徴量を残します。 |
sklearn.feature_selection.SelectFromModel | estimatorパラメータで指定した分類器により特徴量の重要度を算出し、thresholdで指定した値以上の重要度を持つ特徴量のみを残します。 |
分類の「数理モデル」関数一覧
関数名 | 概要 |
sklearn.naive_bayes.GaussianNB | 入力が連続値のときのナイーブベイズ分類器です。 |
sklearn.naive_bayes.BernoulliNB | 入力がバイナリデータ(0か1)であらわされるときのナイーブベイズ分類器。 |
sklearn.naive_bayes.MultinomialNB | 多項分布モデルにもとづくナイーブベイズ分類器です。 |
sklearn.tree.DecisionTreeClassifier | 決定木による分類器です。初期値ではジニ係数による分類を行います。 |
sklearn.ensemble.RandomForestClassifier | ランダムフォレストによる分類器です。ランダムフォレストとはデータセットの一部を使って学習した小さな決定木を複数集め、その予測結果の平均を予測値とするアルゴリズムです。 |
sklearn.ensemble.ExtraTreesClassifier | ランダムフォレストと似ている分類器です。ランダムフォレストよりも予測のバイアスを犠牲にしてバリアンスが小さくなるように弱学習器を生成しています。バイアスとは予測値と真の値のずれのことで、バリアンスは予測値の広がりのことを指します。 |
sklearn.ensemble.GradientBoostingClassifier | アンサンブル学習のひとつであるブースティングを利用した分類器です。ブースティングとは、前の弱学習器が誤分類したデータを優先的に正しく分類できるよう、弱学習器を順番に学習して精度を上げていく手法のことです。 |
sklearn.neighbors.KNeighborsClassifier | k近傍法による分類器です。学習データをベクトル空間上にプロットします。予測データがきたときベクトル空間上の近くの学習データのクラスを取得し、多数決で属するクラスを決定します。 |
sklearn.svm.LinearSVC | 線形サポートベクターマシンです。線形分離可能なデータを分類する手法です。 |
sklearn.linear_model.LogisticRegression | ロジスティック回帰による分類です。 |
xgboost.XGBClassifier | アンサンブル学習のひとつであるブースティングを利用した分類器です。上述のGradientBoostingClassifierと原理はほぼ同じですが、高速に処理できるよう実装されています。 |
sklearn.linear_model.SGDClassifier | 線形の分類器に確率的勾配降下法を適用する分類器です。パラメータlossによって、損失関数を指定し、モデルを選択します。例えば、loss=’log’の場合はロジスティック回帰に確率的勾配降下法を適用して、分類を行います。確率的勾配降下法とは計算機で損失関数の最小値をもとめやすくした計算法です。 |
sklearn.neural_network.MLPClassifier | 多層パーセプトロンによる分類器です。多層パーセプトロンとは特徴量を重みづけして和を取ることを繰り返し、最後に活性化関数を通して分類結果を出す分類器です。 |
回帰のパイプラインに使われる関数一覧
回帰の「前処理」関数一覧
関数名 | 概要 | |
sklearn.preprocessing.Binarizer | 閾値を超えた値を1、閾値以下を0と変換します。 | |
sklearn.decomposition.FastICA | 独立成分分析を行います。独立な成分に分解します。 | |
sklearn.cluster.FeatureAgglomeration | 階層的クラスタリングを用いて、特徴量の次元を削減します。 | |
sklearn.preprocessing.MaxAbsScaler | 値を各列の絶対値の最大値で割ることで標準化します。各列の最大値は1.0になります。 | |
sklearn.preprocessing.MinMaxScaler | 値を、各列の最大値と最小値を使って、次の数式で列ごとに特定の範囲で標準化します。特定の範囲とは、初期値では最大値(max)=1、最小値(min)=0の範囲です。pythonの数式で書くと次のようになります。
|
|
sklearn.preprocessing.Normalizer | L1、L2、最大値による正規化を行います。
|
|
sklearn.kernel_approximation.Nystroem | 学習データの部分集合を使って、特徴量を線形分離可能な形に近似的に変換します。カーネル法を計算機で取り扱いやすくしたものです。サポートベクターマシンのような線形分離を行う分類器を使う前によく利用されます。 | |
sklearn.decomposition.PCA | 主成分分析し、n_componentパラメータで指定した数の主成分を返します。 | |
sklearn.preprocessing.PolynomialFeatures | degreeパラメータで指定した次数以下のすべての多項式の組み合わせを返します。たとえば特徴量が[a,b](a,bは1次元のベクトル)で表されるとすると、[1,a,b,a^2,ab,b^2]が返ってきます。 | |
sklearn.kernel_approximation.RBFSampler | モンテカルロ近似により、特徴量を線形分離な形に近似的に変換します。カーネル法を計算機で取り扱いやすくしたものです。サポートベクターマシンのような線形分離を行う分類器を使う前によく利用されます。 | |
sklearn.preprocessing.RobustScaler | 列ごとに値から中央値を引き、四分位範囲で割って変換します。中央値を引くかどうか、どの範囲で割るかはパラメータで設定できます。 | |
sklearn.preprocessing.StandardScaler | 列ごとに値から平均値を引き、標準偏差で割って変換します。 | |
tpot.builtins.ZeroCount | 列ごとに値から平均値を引き、標準偏差で割って変換します。 | |
tpot.builtins.OneHotEncoder | 値はゼロでない整数だけが許可されます。入力値をダミー変数に変換した行列を返します。 |
回帰の「特徴量選択」関数一覧
関数名 | 概要 |
sklearn.feature_selection.SelectFwe | 多重検定エラー率により特徴量を選択します。 |
sklearn.feature_selection.SelectPercentile | score_funcパラメータで指定されるスコアを算出し、う上からpercentileパラメータで指定される割合の特徴量を残します。初期値ではscore_funcは分散分析(ANOVA)によるF値で、percentileは10%です。 |
sklearn.feature_selection.VarianceThreshold | 分散がthresholdパラメータで指定される値より小さい特徴量を削除します。初期値ではthreshold=0、つまりすべて同じ値が入っている列が削除されます。 |
sklearn.feature_selection.SelectFromModel | estimatorパラメータで指定した分類器により特徴量の重要度を算出し、thresholdで指定した値以上の重要度を持つ特徴量のみを残します。 |
回帰の「数理モデル」関数一覧
関数名 | 概要 |
sklearn.linear_model.ElasticNetCV | クロスバリデーションでハイパーパラメータをチューニングする機能を搭載した、エラスティックネット回帰です。 |
sklearn.ensemble.RandomForestRegressor | ランダムフォレストによる回帰です。ランダムフォレストとはデータセットの一部を使って学習した小さな決定木を複数集め、その予測結果の平均を予測値とするアルゴリズムです。 |
sklearn.ensemble.ExtraTreesRegressor | ランダムフォレストと似ている分類器です。ランダムフォレストよりも予測のバイアスを犠牲にしてバリアンスが小さくなるように弱学習器を生成しています。バイアスとは予測値と真の値のずれのことで、バリアンスは予測値の広がりのことを指します。 |
sklearn.ensemble.GradientBoostingRegressor | アンサンブル学習のひとつであるブースティングを利用した回帰。ブースティングとは、前の弱学習器が誤分類したデータを優先的に正しく分類できるよう、弱学習器を順番に学習して精度を上げていく手法のことです。GradientBoostingRegressorでは損失関数を小さくするように弱学習器の学習を進めます。勾配降下法をブースティングに応用したものといえます。 |
sklearn.ensemble.AdaBoostRegressor | こちらもアンサンブル学習の一つであるブースティングを利用した回帰です。GradientBoostingRegressorと異なるのはサンプルデータの重みを更新しながら学習を進めていくところです。 |
sklearn.tree.DecisionTreeRegressor | 決定木を利用した回帰です。初期値ではmse(Mean Squared Error)で分割の良さを測ります。 |
sklearn.neighbors.KNeighborsRegressor | k近傍法による回帰です。予測する点に近いサンプル数の平均値を予測値とします。サンプルの数はn_neighborsパラメータで設定できます。 |
sklearn.linear_model.LassoLarsCV | クロスバリデーションを用いたラッソ回帰です。さらに、Least-angle regression(LARS)を使っています。LARSは特徴量がサンプル数よりはるかに多い場合に効率的に動作します。 |
sklearn.svm.LinearSVR | 線形サポートベクター回帰です。ε–不感損失関数が小さくなるようにモデルを推定します。不感損失関数とは、残差(予測値–実測値)が–εか~+εの間の範囲内では損失を0とみなす関数のことです。 |
sklearn.linear_model.RidgeCV | クロスバリデーションでハイパーパラメータをチューニングするリッジ回帰です。 |
xgboost.XGBRegressor | アンサンブル学習のひとつであるブースティングを利用した分類器です。上述のGradientBoostingRegressorと原理はほぼ同じですが、高速に処理できるよう実装されています。 |
sklearn.linear_model.SGDRegressor | 確率的勾配降下法により、回帰を行います。最小化する損失関数はlossパラメータで指定します。 |