3

ノードで日付カットオフを使用する rpart ツリーを作成すると、使用する出力方法 ( と の両方rpart.plot) でfancyRpartPlot日付が科学表記法で出力されるため、結果の解釈が難しくなります。は次のfancyRpartPlotとおりです。

ここに画像の説明を入力

このツリーをより解釈可能な日付値で印刷する方法はありますか? これらの日付はすべて同じように見えるため、このツリー プロットは無意味です。

ツリーを作成し、2 つの方法でプロットするコードは次のとおりです。

library(rpart) ; library(rpart.plot) ; library(rattle)
my_tree <- rpart(a ~ ., data = dat)
rpart.plot(my_tree)
fancyRpartPlot(my_tree)

このデータの使用:

# define a random date/time selection function
generate_days <- function(N, st="2012/01/01", et="2012/12/31") {
  st = as.POSIXct(as.Date(st))
  et = as.POSIXct(as.Date(et))
  dt = as.numeric(difftime(et,st,unit="sec"))
  ev = runif(N, 0, dt)
  rt = st + ev
  rt
}

set.seed(1)
dat <- data.frame(
  a = runif(1:100),
  b = rpois(100, 5),
  c = sample(c("hi","med","lo"), 100, TRUE),
  d = generate_days(100)
)
4

3 に答える 3

4

実用的な観点から、おそらくデータの開始からの日数を使用したいでしょう:

dat$d <- dat$d-as.POSIXct(as.Date("2012/01/01"))
my_tree <- rpart(a ~ ., data = dat)
rpart.plot(my_tree,branch=1,extra=101,type=1,nn=TRUE)

ここに画像の説明を入力

これにより、数が管理しやすく意味のあるものに減ります (ただし、特定の日付ほど意味のあるものではないかもしれません)。最も近い日または週に丸めることもできます。(自分のコンピューターに GTK+ をインストールできないので、使用できませんfancyRpartPlot。)

于 2016-01-08T20:01:15.557 に答える
0

あなたの分類において特定の年代順の日付がどれほど重要かはわかりませんが、別の方法として、特徴によって日付を分類することをお勧めします。つまり、「年」(2012,2013,2014...) を [1,0] としてビンを作成します。[1,0] としての「曜日」 (月、火、水、木、金...)。[1,0] のように「月の日」(1,2,3,4,5...31) と同じかもしれません。これにより、分類するカテゴリがさらに追加されますが、完全にフォーマットされた日付を扱う際の問題は解消されます。

于 2016-11-28T16:19:16.330 に答える