2017-07-22 9 views
0
ID Ethnicity MaritalStatus EmploymentStatus type 
1 10   5    3    1 3 
2 24   1    2    2 1 
3 30   1    1    3 4 
4 35   2    2    2 3 
5 40   5    1    3 4 
6 57   1    2    4 1 

これは私のサンプルデータです。テーブルにはほぼ94000の行があります。 私はrpart関数がオーバープロットしているか、目的のパーティションが達成されていません。

m1 <- rpart(type ~ Ethnicity, MaritalStatus, EmploymentStatus, 
     data = table2, method = "anova") 

私の目的は民族、MaritalStatusのとemplymentstatusに基づいて「タイプ」を予測することで、次のコマンドを試してみました。 すべての変数はas.factor() を使用して係数データ型に変換されましたが、パーティションはIDによって発生しましたが、Ethnicity、次にMaritalStatusおよびEmploymentStatusでパーティションを生成します。私はID列をデータフレームから削除しようとしましたが、同じ問題が存在します。
私が得た結果の画像とそれに対応するrpart.plot resultを添付しました。
私のデータ型やデータへの基本的なアプローチは間違っていますか?
私は機械学習の初心者です。また、IDのデータ型を数値に変更してみました。
パーティションの階層を設定する方法はありますか?
なぜグラフは単なる線ですか?

overplotted rpart plot

+0

例を[再現可能](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)にしてください。 – sebastianmm

答えて

1

数式にエラーがあります。予測変数は、,ではなく、+で区切る必要があります。あなたの呼び出しでは、最初に予測される変数(人種)以外のものはすべて無視されます。

m1 <- rpart(type ~ Ethnicity + MaritalStatus + EmploymentStatus, 
     data = table2, method = "anova") 
関連する問題