質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

2211閲覧

[R]rpartによる回帰木分析結果のprintcp(),plotcp()の見方を教えてください。よろしくお願いします。

Kkeguri

総合スコア6

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

コードレビュー

コードレビューは、ソフトウェア開発の一工程で、 ソースコードの検査を行い、開発工程で見過ごされた誤りを検出する事で、 ソフトウェア品質を高めるためのものです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/08/25 23:27

編集2020/08/26 00:02

前提・実現したいこと

Rのrpart関数で分析した回帰木について、
printcp()、plotcp()で出力される
nsplit、xerror、x-val Relative Errorの三種類について、どのように見ればよいかアドバイスをいただけないでしょうか。

printcpで下記の結果が得られています。

Regression tree:
rpart(formula = dis ~ A + B + C + D + E + F + G + H + I + s, data = df, control = rpart.control(minsplit = 3, cp = 0.02))
Variables actually used in tree construction:[1] A B C E G H I
Root node error: 2967.3/313 = 9.4801
n= 313
CP nsplit rel error xerror xstd
1 0.044920 0 1.00000 1.0036 0.13452
2 0.035167 2 0.91016 1.0677 0.15093
3 0.032239 6 0.76949 1.0513 0.14980
4 0.021988 7 0.73725 1.1001 0.16026
5 0.020104 8 0.71526 1.0559 0.15687
6 0.020000 9 0.69516 1.0794 0.15861

ここでnsplitは何を表しているのでしょうか?
ネットで検索すると「木のサイズ」とありますが、0,2,6,7,8,9ととびとびの値になっていたり、見方がよくわかりません。

また、xerrorも同様に何を表しているのでしょうか?
各階層の誤差率と認識していますが、エラーの確率すなわち0に近い方が誤差が小さいと解釈してあっているのでしょうか?

plotcp()で添付のグラフの結果が得られております。
ここでX-val Relative Errorとは何を表しているのでしょうか?
各階層の誤差率と解釈していますが、1.0を超える階層もあり、上記のxerror(xerror+xstd?)とは異なるものなのでしょうか。

該当のソースコード

R

1library(rpart) 2library(partykit) 3library(ggplot2) 4library(ggparty) 5 6df <- read.csv("2_C1.csv",header=T) 7 8head(df) 9 10rt <- rpart(displacement ~ A+B+C+D+E+F+G+H+I+shiho , data = df, control=rpart.control(minsplit=3,cp=0.02) ) 11 12prt <- as.party(rt) 13g <- ggparty(prt, terminal_space = 0.35) #グラフ部分が全体の何割を占めるか(下から) 14g <- g + geom_edge(size = 2) #分岐線の太さ 15g <- g + geom_edge_label(colour = "black", size = 4.5)#分岐の文字の大きさ 16g <- g + geom_node_plot( 17 gglist = list(geom_boxplot(aes(x="",y=displacement)),theme_bw(base_size =13)), #縦軸の文字の大きさ 18 scales = "fixed", 19 id = "terminal", 20 shared_axis_labels = TRUE, 21 shared_legend = TRUE, 22 legend_separator = TRUE, 23 ) 24 25g <- g + geom_node_label( 26 aes(col = splitvar), 27 line_list = list(aes(label = paste("Node", id)), 28 aes(label = splitvar)), 29 line_gpar = list(list( 30 size = 8, #Nodeの文字の大きさ 31 col = "black", 32 fontface = "bold" 33 ), 34 list(size = 14)), #変数Aとかの文字の大きさ 35 ids = "inner" 36 ) 37 38g <- g + geom_node_label( 39 aes(label = paste0("Node ", id, "\n N = ", nodesize)), 40 fontface = "bold", 41 ids = "terminal", 42 size = 2.5, #グラフの上のタイトルの大きさ 43 nudge_y = 0.01 #グラフとタイトルの幅 44 ) 45 46g <- g + theme(legend.position = "none") 47plot(g) 48#plotcp(rt)でcross validationの結果を表示。横の点線を下回ってるところのcpにセットするとよい 49#plot(rt) 50#text(rt, use.n=TRUE, cex=0.5) でもok 51#plot(as.party(rt)) でもok みづらい 52#printcp(rt)で交叉検証の結果 53#plotcp(rt)で交叉検証のグラフ 54

試したこと

https://www1.doshisha.ac.jp/~mjin/R/Chap_19/19.html
ここでいろいろ解説されているのですが、
「nsplit は木のサイズ」とあるのですが、意味がよくわかりません。サイズとは具体的にどこを見ればわかるのでしょうか。
「xerror は交差確認法による誤分類率の平均値」とあるのですが、つまり誤差の確率(=小さい方が誤差が小さい)ということでしょうか。

回帰木とplotcpの結果

![イメージ説明]
イメージ説明

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問