R言語のCARTアルゴリズムとC4.5アルゴリズム(決定木)



R Language Cart Algorithm



WeChatに注意してください:Xiaocheng Online

CSDNブログをフォローする:ChengZhiweiのブログ



Rバージョン:3.4.4

最新のR公式ウェブサイトはmvpartパッケージをキャンセルしました。必要に応じて、メッセージを残すか、WeChatを追加できます。 R3.6.1を使用して、このパッケージが使用できないことを示しています。



また、Java環境をインストールし、jdkをダウンロードして、環境変数を構成する必要があります。

draw.tree関数:樹形図を描く

J48関数:C4.5アルゴリズムを実装する



maptreeパッケージ:draw.tree関数を提供します

mvpartパッケージ:データセットcar.test.frameを提供します

post関数:rpart()の結果のデモグラフを描画します

prune.rpart():rpart()の結果のプルーニング

rpartパッケージ:関数rpart()、prune.rpart()、post()を提供します

rpart.plotパッケージは、決定を行うときにrpart.plot関数を提供します

RWekaパッケージ:関数J48を提供します

サンプリングパッケージ:層化サンプリングのための層関数

#作業パスを設定する

> setwd( 'G:\ R言語\ジュニア年の後半\データマイニング:R言語戦闘\')
警告メッセージ:
ファイル「.RData」のマジックナンバーは「RDX3」です
2より前の保存バージョンの使用は非推奨です
>ライブラリ(mvpart)
> data( 'car.test.frame')
> head(car.test.frame)
価格国信頼性マイレージタイプ重量表示HP
イーグルサミット48895 USA 433小256097113
フォードエスコート47402 USA 233小234511490
フォードフェスティバ46319韓国437小18458136
ホンダシビック46635日本/米国532小226091 92
マツダプロテッジ45699日本532小2440113103
マーキュリートレーサー48672メキシコ426小228597 82
> car.test.frame $ Mileage<- 100*4.546/(1.6*car.test.frame$Mileage)
>名前(car.test.frame)<-c ('price', 'place of origin', 'reliability', 'fuel consumption', 'type', 'car weight', ' 'Engine power', 'Net horsepower')
> head(car.test.frame)
ââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
イーグルサミット48895 USA 48.609848小256097113
フォードエスコート47402 USA 28.609848スモール234511490
フォードフェスティバ46319韓国47.679054小184581 63
ホンダシビック46635日本/米国58.878906小226091 92
マツダプロテッジ46599日本58.878906小2440113103
マーキュリートレーサー48672メキシコ410.927885小228597 82

#str()関数は、データセットに60行8列があることを示しています
> str(car.test.frame)
'data.frame':60obs。 8つの変数のうち:
$価格:int 8895 7402 6319 6635 6599 8672 7399 7254 9599 5866 .. ..
$起源:8レベルの係数「フランス」、「ドイツ」、..:8 8 5 4 3 6 4 5 3 3 .. ..
$信頼性:int 4 2 4 5 5 4 5 1 5 NA..。
$燃料消費量、8.61 8.61 7.68 8.88 8.88 .. ..
$のタイプ:6レベルの係数 'コンパクト'、 'ラージ'、..:4 4 4 4 4 4 4 4 4 4 .. ..
$車の重量:int 2560 2345 1845 2260 2440 2285 2275 2350 2295 1900 .. ..
$エンジン出力:int 97114 81 91113 97 97 98109 73 .. ..
$正味馬力:int 113 90 63 92103 82 90 74 90 73 .. ..


> summary(car.test.frame)
価格価格信頼性の起源信頼性燃料消費タイプのタイプ
ぼくの。 :5866米国:26分:1,000分:7.679コンパクト:15
第1四半期:9932日本:19第1四半期:2.000第1四半期:10.523大:3
中央値:12216日本/米国:7中央値:3.000中央値:12.353中:13
平均:12616韓国:3平均:3.388平均:11.962小:13
第3四半期:14933ドイツ:2第3四半期:5.000第3四半期:13.530スポーティ:9
最大:24760フラ​​ンス:1最大:5.000最大:15.785ヴァン:7
(その他):2 NA:11
車両重量、エンジン出力、正味馬力、および正味馬力
ぼくの。 :1845分:73.0分:63.0
第1四半期:2571第1四半期:113.8第1四半期:101.5
中央値:2885中央値:144.5中央値:111.5
平均:2901平均:152.1平均:122.3
第3四半期:3231第3四半期:180.0第3四半期:142.8
最大:3855最大:305.0最大:225.0

>#2。データ前処理
>#ここでは、燃料消費量変数に焦点を当てます。これは、次のモデリングプロセスでは、燃料消費量がターゲット変数として使用されるためです。
>#離散変数と連続変数をそれぞれのターゲット変数として分類ツリーと回帰ツリーを構築するためのデータセット。変数のリストを追加することを検討してください-燃料消費量のグループ化、つまり燃料消費量変数の分割A: 11.6〜15.8オイル、B:9〜11.6オイル、C:7.7〜9オイル。これらは、A、B、Cの3つのレベルで因子変数になります。
> Group_Mileage = matrix(0,60,1)#行列Group_Mileageを使用して新しい変数を格納します
> Group_Mileage [which(car.test.frame $ ''> = 11.6)] = 'A'
> Group_Mileage [which(car.test.frame $ 'オイル消費量'<= 9)] = 'C'
> Group_Mileage [which(Group_Mileage == 0)] = 'B'#グループAおよびCにない燃料消費量のサンプルGroup_Mileage値をBとして取得します
> car.test.frame $ 'グループの燃料消費量' = Group_Mileage ##データセットに新しい変数グループの燃料消費量を追加します
> car.test.frame [1:10、c(4,9)]
燃料消費量グループ化された燃料消費量
イーグルサミット48.609848 C
フォードエスコート48.609848 C
フォードフェスティバ47.679054 C
ホンダシビック48.878906 C
マツダプロテクト48.878906 C
マーキュリートレーサー410.927885 B
日産セントラ48.609848 C
ポンティアックルマン410.147321 B
スバルロワイヤル411.365000 B
スバルジャスティ38.356618 C
> a =ラウンド(1/4 *合計(car.test.frame $ 'グループ燃料消費量' == 'A'))
> b =ラウンド(1/4 *合計(car.test.frame $ 'グループ燃料消費量' == 'B'))
> c =ラウンド(1/4 *合計(car.test.frame $ 'グループ燃料消費量' == 'C'))
>#グループA、B、およびCから取得する必要があるテストセット内のサンプル数を計算し、それらをa、b、およびcとして記録します。
> abc
[1] 9
[1] 4
[1] 2

#strata()関数を使用したcar.test.frameの「グループ化された燃料消費量」変数の層化サンプリング
>ライブラリ(サンプリング)
> sub = strata(car.test.frame、stratanames = 'グループ燃料消費量'、サイズ= c(c、b、a)、メソッド= 'srswor')

>サブ
グループの燃料消費量ID_unitProb Stratum
4 C 4 0.2222222 1
7 C 7 0.2222222 1
6 B 6 0.2500000 2
8 B 8 0.2500000 2
17 B 17 0.2500000 2
21 B 21 0.2500000 2
20 A 20 0.2571429 3
38 A 38 0.2571429 3
42 A 42 0.2571429 3
47 A 47 0.2571429 3
51 A 51 0.2571429 3
52 A 52 0.2571429 3
56 A 56 0.2571429 3
57 A 57 0.2571429 3
60 A 60 0.2571429 3
> Train_Car = car.test.frame [-sub $ ID_unit、]#トレーニングセットを生成
> Test_Car = car.test.frame [sub $ ID_unit、]#テストセットを生成
> nrow(Train_Car)nrow(Test_Car)#トレーニングセットとテストセットの行数を表示します
[1] 45
[1] 15


> ################### ##################
>ライブラリ( 'rpart')

パッケージのロード:「rpart」

次のオブジェクトは_by _ ‘。GlobalEnv’でマスクされています。

car.test.frame

次のオブジェクトは「package:mvpart」からマスクされています。

meanvar、na.rpart、path.rpart、plotcp、post、printcp、prune、prune.rpart、
rpart、rpart.control、rsq.rpart、snip.rpart、xpred.rpart

>#1。燃料消費変数に関する回帰ツリーを構築する-数値結果

#数式メソッド= 'anova'に従ってトレーニングセットに回帰ツリーを構築します
> Formula_Car_Reg =燃料消費量〜価格+原産地+信頼性+タイプ+車両重量+エンジン出力+正味馬力#setモデル式
> rp_Car_Reg = rpart(formula_Car_Reg、Train_Car、method = 'anova')

> print(rp_Car_Reg)#回帰ツリーの基本情報をエクスポートします
n = 45

ノード)、分割、n、逸脱度、yval
*はターミナルノードを示します

1)ルート45 186.172800 11.845280
2)エンジン出力<134 19 32.628130 9.77205 *
3)エンジン出力> = 134 26 38.786870 13.210420
6)価格<11522 7 3.003835 11.877100 *
7)価格> = 11522 19 18.754370 13.701630 *
#ノード階層に従って異なるインデントでリストし、各ノード情報にアスタリスク*を付けて、それがリーフノードであるかどうかを示します。


> printcp(rp_Car_Reg)#回帰ツリーのCPテーブルをエクスポートします

回帰ツリー:
rpart(formula = Formula_Car_Reg、data = Train_Car、method = 'anova')

ツリー構築で実際に使用される変数:
[1]エンジン出力価格

ルートノードエラー:186.17 / 45 = 4.1372

n = 45

CP nsplitrelエラーxerrorxstd
1 0.616405 0 1.00000 1.04401 0.182755
2 0.091467 1 0.38360 0.46353 0.075249
3 0.010000 2 0.29213 0.42704 0.063786

#デシジョンツリーrp_Car_Regの詳細情報、変数の重要度変数の最も重要な程度、およびブランチの改善の改善度を取得します
> summary(rp_Car_Reg)
コール:
rpart(formula = Formula_Car_Reg、data = Train_Car、method = 'anova')
n = 45

CP nsplitrelエラーxerrorxstd
1 0.61640483 0 1.0000000 1.0440087 0.18275540
2 0.09146694 1 0.3835952 0.4635295 0.07524941
3 0.01000000 2 0.2921282 0.4270404 0.06378585

さまざまな重要性
エンジン出力、車両重量、価格、正味馬力、タイプ、原産地
26 20 14 14 13 12

ノード番号1:45の観測値、複雑さparam = 0.6164048
平均= 11.84528、MSE = 4.137174
左の息子= 2(19 obs)右の息子= 3(26 obs)
一次分割:
エンジン出力<134 to the left, improve = 0.6164048, (0 missing)
価格<9446.5 to the left, improve = 0.5563919, (0 missing)
車両の重量<2567.5 to the left, improve = 0.5509927, (0 missing)
RRRLRRとしての分割のタイプ、改善= 0.4392540、(0が欠落)
正味馬力<109 to the left, improve = 0.3982844, (0 missing)
代理分割:
車両重量<2747.5 to the left, agreement = 0.889, adj = 0.737, (0 split)
正味馬力<109 To the left, agree = 0.800, adj = 0.526, (0 split)
RRRLRRとしての分割のタイプ、同意= 0.778、調整= 0.474、(0分割)
価格<9446.5 to the left, agree = 0.756, adj = 0.421, (0 split)
原産地はLLLLR-RRとして分割され、同意= 0.756、調整= 0.421、(0分割)

ノード番号2:19の観測
平均= 9.977205、MSE = 1.71727

ノード番号3:26の観測値、複雑さparam = 0.09146694
平均= 13.21042、MSE = 1.491803
左の息子= 6(7 obs)右の息子= 7(19 obs)
一次分割:
'価格'<11522 to the left, improve = 0.4390315, (0 missing)
車両の重量<3087.5 to the left, improve = 0.3622234, (0 missing)
LRL-RRとしての分割のタイプ、改善= 0.3121080、(0が欠落)
エンジン出力<185.5 to the left, improve = 0.1511378, (0 missing)
正味馬力<148.5 to the left, improve = 0.1511378, (0 missing)
代理分割:
車両重量<2757.5 to the left, agreement = 0.846, adj = 0.429, (0 split)
原産地分割--RLL-RR、同意= 0.808、調整= 0.286、(0分割)
LRR-RRとしての分割のタイプ、同意= 0.808、調整= 0.286、(0分割)
正味馬力<103.5 to the left, agree = 0.808, adj = 0.286, (0 split)
エンジン出力<142 to the left, agreement = 0.769, adj = 0.143, (0 split)

ノード番号6:7つの観測
平均= 11.8771、MSE = 0.4291194

ノード番号7:19の観測
平均= 13.70163、MSE = 0.9870723

>#以下では、rpart()関数のいくつかのパラメーター値minsplit = 10を変更して、ブランチに含まれるサンプルの最小数のminsplitをデフォルト値の20から10に変更し、新しい回帰を記録します。 rp_Car_Reg1としてのツリー。
> rp_Car_Reg1 = rpart(formula_Car_Reg、Train_Car、method = 'anova'、minsplit = 10)

> print(rp_Car_Reg1)#回帰ツリーの基本情報をエクスポートします
n = 45

ノード)、分割、n、逸脱度、yval
*はターミナルノードを示します

1)ルート45 186.172800 11.845280
2)エンジン出力<134 19 32.628130 9.77205
4)価格<9504.5 8 2.649246 8.582824 *
5)価格> = 9504.5 11 3.096802 10.991590 *
3)エンジン出力> = 134 26 38.786870 13.210420
6)価格<11522 7 3.003835 11.877100 *
7)価格> = 11522 19 18.754370 13.701630
14)タイプ=コンパクト、ミディアム12 2.880021 13.081890 *
15)タイプ=ラージ、スポーティ、バン7 3.364168 14.764060 *
> printcp(rp_Car_Reg1)#回帰ツリーのCPテーブルをエクスポートします

回帰ツリー:
rpart(formula = Formula_Car_Reg、data = Train_Car、method = 'anova'、
minsplit = 10)

ツリー構築で実際に使用される変数:
[1]エンジン出力価格タイプタイプ

ルートノードエラー:186.17 / 45 = 4.1372

n = 45

CP nsplitrelエラーxerrorxstd
1 0.616405 0 1.000000 1.04535 0.183175
2 0.144393 1 0.383595 0.46279 0.074342
3 0.091467 2 0.239202 0.36798 0.080715
4 0.067197 3 0.147735 0.38852 0.111059
5 0.010000 4 0.080538 0.32070 0.111356

#cp値は、モデルの適合度を改善し、重要でない分岐を切り取ることができるノードを示します

> rp_Car_Reg2 = rpart(formula_Car_Reg、Train_Car、method = 'anova'、cp = 0.1)
> #CP値をデフォルトの0.01から0.1に変更し、新しい回帰ツリーをrp_Car_Reg2として記録します。
> print(rp_Car_Reg2)#回帰ツリーの基本情報をエクスポートします
n = 45

ノード)、分割、n、逸脱度、yval
*はターミナルノードを示します

1)ルート45 186.17280 11.845280
2)エンジン出力<134 19 32.62813 9.997205 *
3)エンジン出力> = 134 26 38.78687 13.210420 *
> printcp(rp_Car_Reg2)#回帰ツリーのCPテーブルをエクスポートします

回帰ツリー:
rpart(formula = Formula_Car_Reg、data = Train_Car、method = 'anova'、
cp = 0.1)

ツリー構築で実際に使用される変数:
[1]エンジン出力

ルートノードエラー:186.17 / 45 = 4.1372

n = 45

CP nsplitrelエラーxerrorxstd
1 0.6164 0 1.0000 1.07992 0.189818
2 0.1000 1 0.3836 0.47707 0.078252
>#剪定機能も同じ効果を達成できます
> rp_Car_Reg3 = prune.rpart(rp_Car_Reg、cp = 0.1)
> print(rp_Car_Reg3)
n = 45

ノード)、分割、n、逸脱度、yval
*はターミナルノードを示します

1)ルート45 186.17280 11.845280
2)エンジン出力<134 19 32.62813 9.997205 *
3)エンジン出力> = 134 26 38.78687 13.210420 *
> printcp(rp_Car_Reg3)

回帰ツリー:
rpart(formula = Formula_Car_Reg、data = Train_Car、method = 'anova')

ツリー構築で実際に使用される変数:
[1]エンジン出力

ルートノードエラー:186.17 / 45 = 4.1372

n = 45

CP nsplitrelエラーxerrorxstd
1 0.6164 0 1.0000 1.04401 0.182755
2 0.1000 1 0.3836 0.46353 0.075249
>#生成されたツリーのサイズは、深度関数maxdepthによっても制御できます。
> rp_Car_Reg4 = rpart(formula_Car_Reg、Train_Car、method = 'anova'、maxdepth = 1)
> print(rp_Car_Reg4)
n = 45

ノード)、分割、n、逸脱度、yval
*はターミナルノードを示します

1)ルート45 186.17280 11.845280
2)エンジン出力<134 19 32.62813 9.997205 *
3)エンジン出力> = 134 26 38.78687 13.210420 *
> printcp(rp_Car_Reg4)

回帰ツリー:
rpart(formula = Formula_Car_Reg、data = Train_Car、method = 'anova'、
maxdepth = 1)

ツリー構築で実際に使用される変数:
[1]エンジン出力

ルートノードエラー:186.17 / 45 = 4.1372

n = 45

CP nsplitrelエラーxerrorxstd
1 0.6164 0 1.0000 1.09740 0.191557
2 0.0100 1 0.3836 0.52651 0.084732


#2。燃料消費変数の回帰ツリーを確立します-ツリーの結果
> rp_Car_Plot = rpart(formula_Car_Reg、Train_Car、method = 'anova'、minsplit = 10)
> #minsplitを10に設定し、新しい回帰ツリーをrp_Car_Plotとして記録します
> print(rp_Car_Plot)
n = 45

ノード)、分割、n、逸脱度、yval
*はターミナルノードを示します

1)ルート45 186.172800 11.845280
2)エンジン出力<134 19 32.628130 9.77205
4)価格<9504.5 8 2.649246 8.582824 *
5)価格> = 9504.5 11 3.096802 10.991590 *
3)エンジン出力> = 134 26 38.786870 13.210420
6)価格<11522 7 3.003835 11.877100 *
7)価格> = 11522 19 18.754370 13.701630
14)タイプ=コンパクト、ミディアム12 2.880021 13.081890 *
15)タイプ=ラージ、スポーティ、バン7 3.364168 14.764060 *
>ライブラリ(rpart.plot)
> rpart.plot(rp_Car_Plot)#決定木を描画する
>#数値結果と比較すると、ツリービューから、モデルのターゲット変数の予測プロセスをより明確に確認できます。


> rpart.plot(rp_Car_Plot、type = 4)#typeパラメーターをtype 4に変更し、決定木を描画します
>#各ブランチの値の範囲もマークされ、各ノードでの燃料消費量の予測値もマークされます
>#ツリーのブランチが多い場合は、「ブランチ」パラメータのブランチ= 1を設定して、垂直ブランチの形状を決定することもできます。
> #Treeは、グラフィックスが占めるスペースを削減し、ツリー図のブランチが乱雑に表示されないようにします。これにより、表示と分析がより便利になります。


> rpart.plot(rp_Car_Plot、type = 4、branch = 1)
>#パラメータfall.leavesはTRUEに設定されています。これは、すべてのリーフノードが一貫した方法でツリーの最下部に配置されることを意味します。
> rpart.plot(rp_Car_Plot、type = 4、branch = 1、fallen.leaves = TRUE)
>ライブラリ(マップツリー)
必要なプログラムパッケージをロードします:cluster
> draw.tree(rp_Car_Plot、col = rep(1,8)、nodeinfo = TRUE)#draw.tree()を使用してツリーを描画する


> plot(rp_Car_Plot、uniform = TRUE、main = 'plot:Regression TRUE')
> text(rp_Car_Plot、use.n = TRUE、all = TRUE)#plot()で直接描画し、関連するテキスト情報を図に追加します


> post(rp_Car_Plot、file = '')#post()関数を使用して決定木を描画します


>#3。グループ化された燃料消費変数の分類ツリーを確立します
> Formula_Car_Cla =パッケージの燃料消費量〜価格+原産地+信頼性+タイプ+車両重量+エンジン出力+正味馬力
> rp_Car_Cla = rpart(formula_Car_Cla、Train_Car、method = 'class'、minsplit = 5)
>#式formula_Car_Claに従って、トレーニングセットの分類ツリーを作成します
>印刷(rp_Car_Cla)
n = 45

node)、split、n、loss、yval、(yprob)
*はターミナルノードを示します

1)ルート45 19 A(0.57777778 0.26666667 0.15555556)
2)エンジン出力> = 134 26 2 A(0.92307692 0.07692308 0.00000000)
4)価格> = 11222 20 0 A(1.00000000 0.00000000 0.00000000)*
5)価格<11222 6 2 A (0.66666667 0.33333333 0.00000000)
10)エンジン出力<152 4 0 A (1.00000000 0.00000000 0.00000000) *
11)エンジン出力> = 152 2 0 B(0.00000000 1.00000000 0.00000000)*
3)エンジン出力<134 19 9 B (0.10526316 0.52631579 0.36842105)
6)価格> = 9504.5 11 2 B(0.18181818 0.81818182 0.00000000)*
7)価格<9504.5 8 1 C (0.00000000 0.12500000 0.87500000) *
>#上記の出力は回帰ツリーに似ていますが、唯一の違いは、各ノードの予測値が特定の値ではなく、A、B、C、つまり燃料消費量の3つのグループの値レベルであるということです。
> rpart.plot(rp_Car_Cla、type = 4、fallen.leaves = TRUE)#rp_Car_Claの分類ツリーを描画します

#エンジンが134を超え、価格が10,000米ドルを超える車は、燃料消費量の多いカテゴリAに属し、左端のブランチはカテゴリC、右端のブランチに属します。

#4。テストセットTest_Carのターゲット変数を予測します
> pre_Car_Cla = predict(rp_Car_Cla、Test_Car、type = 'class')
>#テストセットTest_Carの観測サンプルでグループ化された燃料消費指数を予測します
> pre_Car_Cla”””””””””””””
ホンダシビック4日産セントラ4マーキュリートレーサー4ポンティアックルマン4
C C C C
フォードプローブプリマスレーザー日産240SX4アキュラレジェンドV6
B B A A
イーグルプレミアV6日産マキシマV6ビュイックルセーバーV6シボレーカプリスV8
A A A A
フォードエアロスターV6マツダMPVV6日産バン4
A A A
レベル:A B C
>(p = sum(as.numeric(pre_Car_Cla!= Test_Car $ 'Group Fuel Consumption'))/ nrow(Test_Car))#エラー率を計算する
[1] 0.1333333
>テーブル(Test_Car $ 'グループ燃料消費量'、pre_Car_Cla)
pre_Car_Cla
A B C
A 9 0 0
B 0 2 2
C 0 0 2


######################## C4.5アプリケーション##################


>#C4.5アルゴリズムは離散変数、つまり分類木を構築する場合にのみ適用できるため、ここでは引き続き上記のデータセットを使用してオイルをグループ化します。
>#ツリーを構築するためのインジケーターの消費。 C4.5アルゴリズムの実装に使用されるコア関数J48()は中国語の認識に完全ではないため、元の関数を使用することに注意してください。
>#英語のデータセットの変数名。 # '価格(価格)'、原産地(国)、信頼性(信頼性)、マイル(走行距離)、タイプ(タイプ)、
> #Car重量(重量)、エンジン出力(Disp。)、および正味馬力(HP)、グループ燃料消費量(Oil_Consumption)。
>#install.packages( 'rJava')
>ライブラリ(RWeka)
> names(Train_Car)= c( 'Price'、 'C​​ountry'、 'Reliability'、 'Mileage'、 'Type'、 'Weight'、 'Disp。'、
+ 'HP'、 'Oil_Consumption')#英語の変数名に変更
> Train_Car $ Oil_Consumption = as.factor(Train_Car $ Oil_Consumption)
>#グループ化された変数タイプを因子タイプに変更して、J48()関数を認識可能にします
> Formula = Oil_Consumption〜Price + Country + Reliability + Type + Weight + Disp。+ HP
> C45_0 = J48(式、Train_Car)#デフォルトのパラメーターの下で、分類ツリーモデルC45_0を構築します
> C45_0
J48剪定木
------------------

価格<= 9410: C (7.0/1.0)
価格> 9410
|アベイルズ。<= 132: B (6.0)
|アベイルズ。 > 132
| |価格<= 10989
| | |信頼性<= 1: B (2.0)
| | |信頼性> 1:A(4.0 / 1.0)
| |価格> 10989:A(17.0)

葉の数:5

木のサイズ:9

>#合計10個のリーフノード、15個のノード、最後の括弧内の数字は、このブランチに分類される観測サンプルの数を示し、
>#いくつかは誤分類されています。
>要約(C45_0)

===まとめ===

正しく分類されたインスタンス3494.4444%
誤って分類されたインスタンス25.5556%
カッパ統計0.9045
平均絶対誤差0.0595
二乗平均平方根誤差0.1725
相対絶対誤差15.067%
ルート相対二乗誤差39.0042%
インスタンスの総数36

===混同行列===

a b c<-- classified as
20 0 0 | a = A
1 8 1 | b = B
0 0 6 | c = C
>#次に、制御パラメーターを使用して分類ツリーの生成プロセスを制御します。パラメータM、つまり、最小の観測サンプルが各リーフノードに設定されます
>#木を剪定する量。 Mのデフォルト値は2であることがわかっていますが、小さなサンプルサイズの一部を差し引くために、その値は3になっています
>#ブランチ。
> C45_1 = J48(式、Train_Car、control = Weka_control(M = 3))
>#制御パラメーターのM値を3とし、分類木モデルC45_1を作成します。
> C45_1
J48剪定木
------------------

価格<= 9410: C (7.0/1.0)
価格> 9410
|アベイルズ。<= 132: B (6.0)
|アベイルズ。 > 132:A(23.0 / 3.0)

葉の数:3

木のサイズ:5

>プロット(C45_1)âââââââ&centâ&centâ&cent#C45_1の分類木を描画します