2017-11-03 30 views
-1

私は機械学習の初心者で、私が愚かであれば私を許してください。 22の属性と30000のデータポイントを持つtraindata.csvファイルがあります。機械学習(バイナリ分類)で自分のデータを処理するのに最適なトリックですか?

訓練を受けたモデルで予測を行う必要があるtestdata.csvファイルの20000個のデータポイントを予測し、モデルを訓練する必要があります(特定のアルゴリズムではありません)。

traindata.csvでは、 '0'と '1'のクラスラベルの比率は5:1です。 私のモデルでこの列車全体のデータを訓練すると、私のモデルは1よりも0を予測する傾向があることを示しています。

私のテストデータの実際の値は1:1の比率で0と1です。

私のテストデータを予測しながら0に偏っていないような列車データを前処理するには何らかの方法(ある種のノイズキャンセル)を提案できますか?

答えて

1

これは私がバランスバギング分類子を示唆している「不均衡分類」

と呼ばれるクラシカルな問題です。あなたがPythonを好きなら、私はthisをお勧めします。私は本当にあなたが何をバッグにするかは問題ではありませんが、木は始めるのに適しています。このパッケージには多くのドキュメントやその他のメソッドがあります。

もう少しお見事になりたい場合は、Hellinger distanceを任意の種類のツリー方法で使用できます。標準的なツリーは、クラスサイズの比(すなわちスキュー)に敏感な分割点を選択します。 Hellingerの距離はそうではありません。私はPythonでオープンソースの実装を知りません。

+0

ありがとうございますが、[リンク](http://contrib.scikit-learn.org/imbalanced-learn/stable/generated/imblearn.ensemble.BalancedBaggingClassifier)のリンクのように、 'BalancedBaggingRegressor'に類似したものをお勧めしますか? .html)を回帰モデルを使用してimとして使用しますか? – RAM

+0

あなたはクラスラベルについて話したので、あなたは分類をしています。あなたが十分なクラスを持っていて、それが序数であれば、それは回帰と同じです。これが当てはまる場合は、私があなたに提供できるものは何もありません。私は、目標次元における訓練事象の密度に関する研究を知らない。私はあなたの質問に言い直すことをお勧めします。より正式なものにして、技術的な用語を試してみてください。既存のコードも役に立ちます。どのようなモデルを使っていますか? – Keith

+0

私は "XGBRegressor"を使用しています。クラスラベルは「0」と「1」の2つしかありません。私のトレーニングデータは私が上記のように悪いです。私はclass_weight = "balance"のようなものを与えたいので、Imは 'BalancedBaggingRegressor'を求めています – RAM

関連する問題