データ前処理こんにちは
データセットに、決定木、ランダム フォレスト、ナイーブ ベイズ、SVM、ニューラル ネットワーク、ブースト ツリーなどのノンパラメトリック手法を適用したいと考えています。これらのモデルを適用する前に、どのような前処理手順を実行する必要がありますか?
基本的なデータ分析とモデリング予測モデリングと機械学習データ前処理についてこんにちは@maryam_nourmand 、
K 分割交差検証法で検証列の作成を使用する場合、層別列パネルですべての予測変数 (X 変数) を使用し (X 変数の分布に関して層が均一になるようにするため)、Y パネルで応答を使用できます。JMP は、応答値に基づいて層間の行を順序付けして配分し、層が応答に関して均一になるようにして、交差検証中の偏った学習と評価を回避します。 検証列の作成プラットフォームを起動します (jmp.com)
同じ ID/グループに対応する行が複数ある場合は、「グループ化列」パネルでこの ID/グループ列を使用してこのデータ構造を維持します。
これであなたの質問への答えが見つかるといいのですが、
データ前処理についてこんにちは
ご回答有難うございます
(K分割交差検証)を使用したい場合、応答タイプはカテゴリ型です
列を y に選択する場合、すべての予測変数と応答変数をそこに入力する必要がありますか、それとも応答変数だけでしょうか?
データ前処理についてこんにちは@maryam_nourmand さん
前処理について言えば、分析のためにデータを準備するには通常いくつかのステップがあります。
0.データの分割: データをトレーニング セット、検証セット、テスト セットに分割するか、検証 (K 分割クロス検証、Leave-One-Out など) とテスト戦略を計画します。これは、後で実行するデータ変換によってデータ漏洩が発生しないようにするために最初に行う必要があります。つまり、前処理手順の検証セットとテスト セットの情報の一部が、モデルのトレーニング中に見つかる可能性があります (データ範囲、分布、代入手法など)。この手順では、検証列の作成 (jmp.com)を使用できます。
- データクリーニング:データ セット内のエラーや不整合を特定して修正し、データの品質が高く、分析やモデルのトレーニングに適していることを確認します。
- 欠損値: 行を除外するか、データ補完を行うか、何もしないかを選択できます。欠損値をExplore Missing Values (jmp.com)プラットフォームで分析し、欠損値が MAR (ランダム欠損)、MCAR (完全にランダム欠損)、または MNAR (ランダム欠損ではない) であるかどうかを確認してください。欠損値のタイプやパターンによっては、他のオプションよりも適しているオプションがあります。
- ツリーベースのモデルは、あなたが言及した他のアルゴリズムと比較して欠損値に対してはるかに柔軟であり、欠損値を有益なものとして扱うことができます: Informative Missing (jmp.com) 。
- ニューラル ネットワーク プラットフォームの場合、プラットフォームの起動時に「有益な欠損」オプションをオンにして、欠損値の補完とコーディングを有効にすることができます。このオプションをオンにしないと、行は分析から除外されます。
- ナイーブベイズでは、欠損値が少数の場合、欠損データの問題は発生しません。
- SVM はデフォルトで、少なくとも 1 つの欠損値がある行を除外します。
- 外れ値: 除外したり、バランス/重み付けしたり (頻度または変換によって)、何もしないこともできます。Explore Outliers (jmp.com)プラットフォームでは、さまざまな方法を使用して外れ値を検出できます。
- 重複: 除外するか、頻度を減らすか、何もしないかを選択できます。 パターン探索 (jmp.com)プラットフォームを使用して、重複 (およびその他のパターン) を検出できます。
- 重複は、他のポイントと比較して重複ポイントで見つかった特定のパターンを優先または強制することで学習に影響を与えるため、すべてのアルゴリズムに影響を与える可能性があります。また、トレーニング、検証、テスト セットへのデータ分割中に重複が考慮されない場合、過剰適合やモデル パフォーマンスの誤った評価につながる可能性があります。機械学習の方法論は、重複を使用して分散と不確実性を評価する統計モデリングとは大きく異なります。
- 変数のスケーリング/正規化: 値の範囲の違いを歪めることなく、すべての機能/変数の値を同様の範囲に収め、範囲の広い機能が範囲の狭い機能/変動を支配しないようにします。
これは、SVM、KNN、ニューラル ネットワーク、(線形およびロジスティック) 回帰などの距離や類似性に基づくアルゴリズムに役立ち、JMP ではすでにデフォルトで実行されています (KNN の例: https://community.jmp.com/t5/India-JMP-Users-Group-Library/Predictive-modelling-with-machine-learning-in-JMP-K-Nearest/ta-p/720639 )
ツリーベースのモデルや、Naive Bayes のような確率ベースのアルゴリズムでは、スケーリングが不要な場合があります。
- カテゴリデータの処理: コーディング時には、ラベルエンコーディング、ワンホットエンコーディング、ダミーエンコーディングなどを使用してカテゴリデータをエンコードする必要があります。幸いなことに、JMP ではこれがすでに実行され準備されているため、自分で行う必要はありません (回帰モデルの例):
名目効果コーディングの統計詳細 (jmp.com)
順序因子 (jmp.com)
Stackexchange からの同様の質問と回答:
機械学習 - SVM 以外に特徴スケーリングが必要なアルゴリズムは何ですか? - Cross Validated (stackexchange.com)
外れ値と欠損値はこれらの分類器にどのような影響を与えるのでしょうか? - Data Science Stack Exchange
すでに別のトピック(および LinkedIn)で書いたように、ML アルゴリズムの最初の簡単なテストを実行したい場合は、ランダム フォレストを使用してみてください。
- 外れ値に対して堅牢
- ノイズに対する感度が低い(バギングは分散を減らすのに役立ちます)
- ブートストラップと「Out-Of-Bag」(各ブートストラップ サンプルで使用されていないサンプル)パフォーマンス検証により、過剰適合が発生しにくくなります。
- 優れた一般化性能
- 「if-else」ルールで非線形境界を処理できる決定木のアンサンブルにより、非線形状況を簡単に処理できます。
- 各ノードでランダムな特徴サブセットを選択して変数間の多重共線性を制御する
- チューニング可能性が低い: パフォーマンスはハイパーパラメータのチューニングにあまり影響されません (DoE を使用したランダム フォレスト ハイパーパラメータのチューニングに関する最新の投稿を参照してください)
- スパースデータを処理する能力
- 他のアルゴリズムと比較して解釈が容易(「組み込み」の特徴重要度を使用)
- 比較的高速かつ効率的な計算 (使用されるツリーの数と深さによって異なります)。個々のツリーは互いに独立しているため、トレーニング プロセスを並列化できます。
したがって、データセットの分析に過剰適合の傾向が低く、正確で堅牢、多用途、スケーラブルなアルゴリズムを探している場合、ランダム フォレストは良い出発点およびベンチマークになります。ニューラル ネットワークなどの複雑なアルゴリズムに進む前に、常に単純なアルゴリズムと適切な検証戦略から始めて、モデルを評価および比較してください。ニューラル ネットワークでは、複数の検証レイヤー (構築および微調整のため) が必要になる場合があります。
この長い回答がお役に立てば幸いです。