Veri Madenciliği - Karar Ağacı Oluşturma
Karar ağacı, bir kök düğüm, dallar ve yaprak düğümleri içeren bir yapıdır. Her dahili düğüm, bir öznitelik üzerindeki bir testi ifade eder, her dal bir testin sonucunu belirtir ve her yaprak düğüm bir sınıf etiketi taşır. Ağaçtaki en üst düğüm, kök düğümdür.
Aşağıdaki karar ağacı, bir şirketteki bir müşterinin bilgisayar satın alma olasılığının yüksek olup olmadığını gösteren buy_computer kavramı içindir. Her dahili düğüm, bir öznitelik üzerindeki bir testi temsil eder. Her yaprak düğüm bir sınıfı temsil eder.
Karar ağacına sahip olmanın faydaları aşağıdaki gibidir:
- Herhangi bir alan bilgisi gerektirmez.
- Anlaşılması kolaydır.
- Bir karar ağacının öğrenme ve sınıflandırma adımları basit ve hızlıdır.
Karar Ağacı İndüksiyon Algoritması
1980'de J. Ross Quinlan adlı bir makine araştırmacısı, ID3 (Yinelemeli Dichotomiser) olarak bilinen bir karar ağacı algoritması geliştirdi. Daha sonra ID3'ün halefi olan C4.5'i sundu. ID3 ve C4.5 açgözlü bir yaklaşım benimsiyor. Bu algoritmada geriye dönük izleme yoktur; ağaçlar yukarıdan aşağıya yinelemeli böl ve yönet tarzında inşa edilmiştir.
Generating a decision tree form training tuples of data partition D
Algorithm : Generate_decision_tree
Input:
Data partition, D, which is a set of training tuples
and their associated class labels.
attribute_list, the set of candidate attributes.
Attribute selection method, a procedure to determine the
splitting criterion that best partitions that the data
tuples into individual classes. This criterion includes a
splitting_attribute and either a splitting point or splitting subset.
Output:
A Decision Tree
Method
create a node N;
if tuples in D are all of the same class, C then
return N as leaf node labeled with class C;
if attribute_list is empty then
return N as leaf node with labeled
with majority class in D;|| majority voting
apply attribute_selection_method(D, attribute_list)
to find the best splitting_criterion;
label node N with splitting_criterion;
if splitting_attribute is discrete-valued and
multiway splits allowed then // no restricted to binary trees
attribute_list = splitting attribute; // remove splitting attribute
for each outcome j of splitting criterion
// partition the tuples and grow subtrees for each partition
let Dj be the set of data tuples in D satisfying outcome j; // a partition
if Dj is empty then
attach a leaf labeled with the majority
class in D to node N;
else
attach the node returned by Generate
decision tree(Dj, attribute list) to node N;
end for
return N;
Ağaç Budaması
Eğitim verilerinde gürültü veya aykırı değerler nedeniyle oluşan anormallikleri gidermek için ağaç budama yapılır. Budanmış ağaçlar daha küçük ve daha az karmaşıktır.
Ağaç Budama Yaklaşımları
Bir ağacı budamak için iki yaklaşım vardır -
Pre-pruning - Ağaç erken yapılışı durdurularak budanır.
Post-pruning - Bu yaklaşım, tamamen büyümüş bir ağaçtan bir alt ağacı kaldırır.
Maliyet Karmaşıklığı
Maliyet karmaşıklığı aşağıdaki iki parametre ile ölçülür -
- Ağaçtaki yaprak sayısı ve
- Ağacın hata oranı.