2017-10-22 13 views
-1

私は50の予測変数と1つの目標変数を持っています。私のすべての予測変数とターゲット変数は、2進数の0と1だけです。私はRを使って分析を行っています。機械学習2進数のみの分類

私は4つのアルゴリズムを実装します。 1. RF 2.ログインレッグ 3. SVM 4. LDA

私は、次の質問がある:
私は要因にそれらのすべてを変換します。変数を事前に処理してから、他のアルゴリズムに渡す必要があります。

モデルをトレーニングするためにキャレットパッケージを使用しましたが、時間がかかります。私はMLを定期的に練習しますが、すべての変数をバイナリで処理する方法はわかりません。
共線形変数を削除するにはどうすればよいですか?

+1

[分類タスクでのすべてのバイナリ予測子]の可能な複製(https://stackoverflow.com/questions/46844180/all-binary-predictors-in-a-classification-task) – Suren

+0

@Headpoint、これに答えることができますか – Shivam

+1

質問をより狭くしようとするべきです - より多くの分類子とデータを扱う方法があります。変数が実際にカテゴリ変数になっている場合、それらを係数に変換して数値変数として扱わないようにする必要があります。カテゴリデータをどのように処理するかわからない場合は、イントロ記事を読むのが最適です。私はこのタイプのデータの機械学習アルゴリズムがたくさんあると思います。 – Suren

答えて

1

私は主にRユーザーではなく、Pythonです。ベットには一般的な方法があります。 1.列を確認します。ゼロまたは1の数が総量の> 95%の場合は列を削除します(2.5%または1%後でも試すことができます)。 2.既定で単純なランダムフォレストを実行し、機能の重要性を確認します。不必要な列は、LDAで処理できます。 3.ターゲット列を確認します。高度にアンバランスな場合は、オーバーサンプリングまたはダウンサンプリングを試みます。または、不均衡なターゲット列(XGBoostなど)を処理できる分類方法を使用します。

線形回帰では、相関行列を計算し、相関列を削除する必要があります。他の方法はそれなしで生きることができます。

すべての機能がブール値であるかどうかをSVM(またはSVC)で確認してください。しかし、通常、バイナリ分類では非常にうまく動作します。

また、ニューラルネットワークを試してみると助かります。

PS同一行変数について。私は私のプロジェクトのためにPythonでコードを書いた。 - プロット相関行列 - ある閾値を超えて相関関係を持つペアを見つける - が低い列を削除するターゲット変数との相関関係(削除する列が重要でないことを確認することもできます他の方法、おそらくユニオン列を試してみてください)

私のコードでは、このアルゴリズムをさまざまなしきい値(0.99から0.9まで)で繰り返し実行しました。良い仕事。