Odhad cen ojetých vozů pomocí rozhodovacích stromů Marta Žambochová ABSTRAKT Příspěvek se zabývá srovnáním vybraných algoritmů pro sestrojování rozhodovacích stromů, a to jak regresních, tak klasifikačních. Dále článek obsahuje popis zpracování údajů o ojetých automobilech získaných z různých autobazarů v ČR. Ke zpracování jsou pouţity vybrané algoritmy pro tvorbu rozhodovacích stromů v dosaţitelném softwaru. KLÍČOVÁ SLOVA Klasifikační stromy, regresní stromy, atributy ojetých automobilů, kategorie cen ojetých automobilů ABSTRACT This paper deals with the comparison of chosen algorithms in a decision tree construction. It includes an analysis of research data connected with second-hand cars. We apply chosen methods available in the software for the data analysis. KEY WORDS Classification tree, regression tree, second-hand car attributes, second-hand car categories of prices ÚVOD Stromová struktura je oblíbeným prostředkem prezentace informací v různých oblastech běţného ţivota. Pro svoji jednoduchost a přehlednost našla své uplatnění i v oblasti analýzy dat. Velmi rozšířenou skupinou stromů jsou různé typy rozhodovacích stromů. Tento druh stromů je zvláště vhodným nástrojem pro klasifikaci a predikci. Rozhodovací stromy se stávají velmi populárním nástrojem v různých manaţerských úlohách (podrobněji popsáno například v [1], [2], [6], [9]). Rozhodovací stromy jsou struktury, které rekurzivně rozdělují zkoumaná data dle určitých rozhodovacích kritérií. Máme-li strom s jedním listem, hledáme otázku (podmínku větvení), která nejlépe rozděluje prostor zkoumaných dat do podmnoţin, tj. maximalizuje kritérium kvality dělení (tzv. splitting criterium). Takto nám vznikne strom s více listy. Nyní pro kaţdý nový list hledáme otázku, která mnoţinu prediktorů náleţící tomuto listu co nejlépe dělí do podmnoţin. Proces dělení se zastaví, pokud bude splněno kritérium pro zastavení (tzv. stopping rule). Omezení obsaţená v kritériu pro zastavení mohou být např. hloubka stromu, počet listů stromu, či stupeň homogennosti mnoţin dat v listech. Dalším krokem algoritmů je prořezávání stromu (prunning). Je nutno určit správnou velikost stromu (příliš malé stromy dostatečně nevystihují všechny zákonitosti v datech, příliš veliké stromy zahrnují do popisu i nahodilé vlastnosti dat). CÍL A METODIKA Pro vytváření rozhodovacích stromů bylo vyvinuto velké mnoţství algoritmů. My jsme pouţili metody zaloţené na algoritmech CART, ID3, C4.5 a QUEST.
Algoritmus CART Algoritmus poprvé popsali jeho autoři Breiman, Freidman, Olshen a Stone v roce 1984 ve článku Classification and Regression trees. Algoritmus je popsán například v [8]. Algoritmus je pouţitelný v případě, ţe máme jednu nebo více vysvětlujících proměnných. Tyto proměnné mohou být buď spojité nebo kategoriální (ordinální i nominální). Dále máme jednu vysvětlovanou proměnnou, která také můţe být kategoriální (nominální i ordinální) nebo spojitá. Výsledkem algoritmu jsou binární stromy, protoţe jsou zde přípustné pouze otázky (podmínky dělení), na které je moţno odpovědět ano/ne (Je věk menší neţ 30 let? Je pohlaví muţské?) V kaţdém kroku algoritmus prochází všechna moţná dělení pomocí všech přípustných hodnot všech vysvětlujících proměnných a hledá nejlepší z těchto dělení. Měřítkem, které dělení je lepší, je zvýšení čistoty dat. To znamená, ţe jedno dělení je lepší neţ druhé, pokud jeho uskutečněním obdrţíme dva homogennější (vzhledem k vysvětlované proměnné) soubory dat neţ uskutečněním druhého dělení. Algoritmus dělení je různý pro klasifikační stromy a pro stromy regresní. Klasifikační stromy pouţíváme v případě, ţe je vysvětlovaná proměnná kategoriální. To znamená, ţe se soubor původních dat snaţíme v závislosti na vysvětlujících proměnných rozdělit do skupin, přičemţ, v ideálním případě, kaţdá skupina má přiřazení ke stejné kategorii vysvětlované proměnné. Homogenita uzlů-potomků je měřena pomocí tzv. funkce znečištění (impurity function) i(t). Maximální homogenita vzniklých dvou potomků je počítána jako maximální změna (sníţení) znečištění i(t). it it r Eit d kde t r je rodičovský uzel, t d je uzel-potomek. Pro pravého potomka t p, pravděpodobnost pravého potomka P p a levého potomka t l, pravděpodobnost levého potomka P l pak dosazením do vzorce pro hodnotu dostáváme. i t i t P i t P i t r l l p p Algoritmus CART řeší pro kaţdý uzel maximalizační problém pro funkci i(t) přes všechna moţná dělení uzlu, to znamená, ţe hledá dělení, které přináší maximální zlepšení homogenity dat. Funkci i(t) je moţno definovat různými způsoby. Mezi dva nejrozšířenější patří tzv. Giniho index a pravidlo Twoing. Giniho index hledá v trénovacích datech největší třídu vysvětlované proměnné a odděluje ji od ostatních dat. Giniho index dobře funguje pro znečištěná data. Vytváření stromů s pomocí Twoing pravidla je pomalejší neţ za pouţití Giniho indexu. Výhodou ovšem je, ţe vytváříme více vybalancované stromy. Regresní stromy se pouţívají v případě, ţe vysvětlovaná proměnná není kategoriální. Kaţdá její hodnota můţe být v obecnosti různá. V tomto případě algoritmus hledá nejlepší dělení na základě minimalizace součtu rozptylů v rámci jednotlivých dvou vzniklých uzlů-potomků. Algoritmus pracuje na základě algoritmu minimalizace součtu čtverců. Algoritmus ID3 Další z uţívaných algoritmů je algoritmus ID3 (Iterative Dichotomizer 3). Poprvé jej jeho autor Quinlan, J. R. popsal v roce 1975. Algoritmus je popsán například v [4]. Tento algoritmus opět pracuje na principu induktivního vytváření stromu odshora dolů. Je zaloţen na principu tzv. Ockhamovy břitvy (jsou-li dva modely srovnatelně dobré, pak se preferuje
jednodušší model a sloţitější je znevýhodněn). Algoritmus je pouţitelný v případech, ţe všechny proměnné jsou kategoriální. Je určený především pro vytváření menších stromů. Algoritmus opět začíná s jediným uzlem kořenem stromu, jemuţ náleţí všechny datové objekty. V kaţdém kroku je pro kaţdý listový uzel, který dosud neobsahuje homogenní data, hledáno co nejlepší dělení, pomocí něhoţ vzniknou další listové uzly. V tomto algoritmu je pro dělení vybrána jedna z vysvětlujících proměnných a dělení je provedeno na tolik uzlů-potomků, kolik má tato proměnná kategorií. Jako testová je vybírána taková proměnná, jejíţ míra charakterizující homogenitu dat je minimální. Tato míra homogenity se nazývá entropie. Entropie je definována pro kaţdou ze vznikajících větví předpisem: n bc nbc E b log 2 c nb nb kde b je vznikající větev, c je třída vysvětlující proměnné, n b je počet objektů ve větvi b, n cb je počet objektů třídy c ve větvi b. Pro minimalizaci se pak pouţívá průměrná entropie přes všechny větve dělení daného uzlu pro danou proměnnou, která je definována předpisem: nb E Eb b nt kde n t je celkový počet objektů ve všech větvích. Pokud existuje dělení pomocí nějaké proměnné, které má hodnotu entropie 0, bude tento krok budování stromu poslední a proces dělení končí. Algoritmus C4.5 Algoritmus popsal jeho autor Quinlan, J. R. v roce 1993 v materiálu [5]. Je zaloţen na principu algoritmu ID3, ale má několik vylepšení, která jsou zvláště potřebná pro softwarovou implementaci. Mezi tato vylepšení patří moţnost vyuţití algoritmu pro spojité proměnné, pro data s chybějícími údaji, ale i další. Kromě obecné entropie je zde vyuţívána i podmíněná entropie, která je definována předpisem: nbx nbx E( x T ) log 2 nb nb Na základě těchto dvou entropií je dále definován zisk, který se snaţíme maximalizovat přes různá dělení proměnných dle hodnot x. Zisk je definován následným předpisem: Zisk ( A, x) E A E( x A) kde A je vybraná proměnná, E A její entropie, x hodnota. Algoritmus QUEST Tato metoda je popsána ve článku [3]. Algoritmus je pouţitelný pouze pro nominální vysvětlovanou proměnnou. Obdobně, jako v případu CART, jsou vytvářeny pouze binární stromy. Na rozdíl od metody CART, která výběr proměnné pro štěpení uzlu a výběr dělícího bodu provádí v průběhu budování stromu současně, provádí metoda QUEST toto odděleně. Metoda QUEST (for Quick, Unbiased, Efficient, Statistical Tree) odstraňuje některé nevýhody algoritmů pouţívajících vyčerpávající hledání (např. CART), jako je náročnost zpracování či sníţení obecnosti výsledku. Tato metoda je vylepšením algoritmu FACT, který popsali autoři Loh, W.-Y. a Vanichsetakul, N. v roce 1988. V prvním kroku algoritmus převede všechny kategoriální vysvětlující proměnné na ordinální pomocí CRIMCOORD transformace.
Dále v kaţdém listovém uzlu, je pro kaţdou proměnnou prováděna analýza rozptylu (ANOVA F-test). Pokud největší ze vzniklých F-statistik je větší neţ předem daná hodnota F 0, pak příslušná proměnná je vybrána pro dělení uzlu. Pokud tomu tak není, je pro všechny proměnné proveden Levenův F-test. Pokud je největší Levenova F-statistika větší neţ F 0, pak je příslušná proměnná vybrána pro dělení uzlu. Pokud tomu tak není (není ţádní ANOVA F- statistika ani Levenova F-statistika větší neţ hodnota F 0, je pro dělení vybrána proměnná s největší ANOVA F-statistikou. Pro dělení uzlu je tedy vybrána ta vysvětlující proměnná, která je se vysvětlovanou proměnnou nejvíce asociována. Pro hledání dělícího bodu pro vybranou vysvětlující proměnnou je vyuţívána kvadratická diskriminační analýza (QDA), na rozdíl od algoritmu FACT, kde je vyuţívána lineární diskriminační analýza (LDA). Tento postup je rekurzivně opakován aţ do zastavení (na základě kritéria pro zastavení). Data o ojetých automobilech Studovaná data obsahují údaje o několika stech aut značky Škoda prodávaných ve vybraných autobazarech v rámci ČR v květnu 2007. O automobilech byly sledovány základní údaje potřebné pro prodej/koupi ojetých aut, jako je model auta, typ karoserie, druh paliva, síla motoru, rok výroby, ujeté kilometry, výbava (airbag, ABS, ASR, elektrické otevírání oken, klimatizace, autorádio apod.) a cena prodávaného auta. Cena automobilu byla stanovena jako vysvětlovaná proměnná. Poloţka nebyla vyuţita přímo v primární podobě, ale byla z ní vytvořena kategoriální veličina obsahující čtyři kategorie od nejlevnějších po nejdraţší auta. Data byla zpracována pomocí různých metod pro vytváření rozhodovacích stromů jednak v komerčním software STATISTICA a jednak ve freeware software WEKA (Waikato Environment for Knowledge Analysis The University of Waikato Hamilton, New Zealand). Ve statistickém software STATISTICA jsme pouţili různé moţnosti sestrojení rozhodovacího stromu, vypovídajícího o struktuře sledovaného vzorku automobilů. Jednak jsme vytvořili klasifikační strom pomocí algoritmu C&RT vyčerpávajícího prohledávání, jednak pomocí metody zaloţené na principu QUEST (tab. 1). Dále jsme vytvořili strom pomocí standardní metody C&RT z modulu Data-Mining, včetně V-fold Crossvalidation metody na výběr nejoptimálnějšího stromu (obr. 1) (viz [10], [11]). Software WEKA nabízí celou škálu metod na tvorbu rozhodovacích stromů (viz [12]). My jsme pouţili pouze některé z nich, a to Id3 (metoda vytvářející neprořezaný strom pomocí algoritmu ID3), J48 (metoda vytvářející strom pomocí algoritmu zaloţeného na základě C4.5; obr.2 a obr.3), SimpleCart (metoda zaloţená na základě algoritmu CART s vyuţitím prořezávání na základě minimalizace cost-complexity ). VÝSLEDKY Výsledné stromy vytvořené různými metodami v software STATISTICA se poněkud liší. Z hlediska chybně předikovaných hodnot v rámci trénovacích dat dopadl nejlépe standardní C&RT (32 chybných predikcí) poněkud hůře v tomto příkladu dopadl způsob zaloţený na principu vyčerpávajícího C&RT (38 chybných predikcí) a nejhůře QUEST (49 chybných predikcí). Provedením kříţové validace (V-fold Crossvalidation) jsme obdrţeli následující hodnoty: Global CV cost = 0,12709; s.d. CV cost = 0, 01926 (vyčerpávající C&RT) Global CV cost = 0, 16388; s.d. CV cost = 0, 02141 (QUEST) Global CV cost = 0,123746; s.d. CV cost = 0,019046 (standard C&RT) Z tohoto hlediska se tedy jeví jako nejoptimálnější strom vytvořený posledním způsobem.
Node. Left branch Right branch n in cls n in cls n in cls levné n in cls drahé Predict. Tab. 1: Popis stromové struktury vzniklé pomocí metody zaloţené na principu QUEST Split 1 2 3 45 125 108 21 A,C,B,F,G,H,I,J,K,M,N,Q,S,T,U,V,X 2 4 5 45 115 0 21 VÝKON 81,85,96,103,110,132 3 6 7 0 10 108 0 levne VÝKON 37,44,47,55,66,74,81,85,92,96,103,110,132 4 8 9 12 1 0 16 drahé 2002 ROK 5 10 11 33 114 0 5 ABS 1 6 0 7 2 0 7 0 3 106 0 levne 8 12 1 0 0 9 0 0 0 16 drahé 10 12 13 32 30 0 4 2001 ROK 11 1 84 0 1 12 3 23 0 0 13 14 15 29 7 0 4 KAROS. kombi, sedan, pickup 14 21 0 0 4 15 16 17 8 7 0 0 CENTRAL 1 16 6 1 0 0 17 2 6 0 0 levne drahé Tree 4 layout for KATEGORIE Num. of non-terminal nodes: 5, Num. of terminal nodes: 6 ID=1 N=299 ID=2 N=174 MODEL = Fabia Sedan, Superb, Fabia, Octavia, Felicia Combi, Fabia Combi, Octavia Combi = Other(s) ID=3 N=125 levne ID=4 N=87 VÝKON = 37, 44, 40, 92, 55, 50 = Other(s) ID=5 N=87 ID=18 N=16 VÝKON = 55, 47 = Other(s) ID=19 N=109 levne ID=10 N=21 ROK <= 1999,500000 > 1999,500000 ID=11 N=66 ID=12 N=10 drahé VÝKON = 103, 85, 132, 96, 110 = Other(s) ID=13 N=56 Obr. 1: Strom vytvořený metodou standard C&RT z modulu Data-Mining Výsledné stromy vytvořené různými metodami v software WEKA se liší. Z hlediska chybně předikovaných hodnot v rámci trénovacích dat dopadla nejlépe metoda Id3 (22 chybných predikcí), hůře metoda Simple cart (30 chybných predikcí) a nejhůř metoda J48 (37 chybných predikcí). Pro posouzení kvality metody pouţívá software WEKA několik typů chyb, my jsme se zaměřili na dvě základní, RAE (relative absolute error) a RMSE (Root
mean squared error). Srovnání pouţitých tří metod pomocí těchto typů chyb dopadlo obdobně jako srovnání pomocí chybných predikcí. Z tohoto hlediska se tedy jeví jako nejoptimálnější strom vytvořený pomocí metody Id3. Obr. 2: Strom vytvořený metodou J48 v rámci software WEKA ABS = 0 AIRBAG1X = 0 VÝKON = 37: levne (0.0) VÝKON = 40: levne (59.0/2.0) VÝKON = 44: levne (0.0) VÝKON = 47: draţší (12.0/2.0) VÝKON = 50 MODEL = Octavia_Combi: levne (0.0) MODEL = Fabia_Combi: levne (0.0)... Obr.3: Strom vytvořený metodou J48 v rámci software WEKA převedený na pravidla (část) ZÁVĚR Nejrychleji v rámci software STATISTICA se vytvořil strom pomocí metody na základě QUEST, nejpomaleji strom pomocí metody vyčerpávajícího C&RT. Pokud jsme rozhodovací strom převedli na pravidla, pak jsme se dostali k závěru, ţe největší vliv (ze sledovaných hledisek) na cenovou kategorii má model automobilu (standard C&RT) nebo typ automobilu (vyčerpávající C&RT, QUEST). Dále pak výkon motoru a rok výroby. Jednotlivé prvky výbavy jsou aţ doplňkovými faktory ovlivňujícími cenovou kategorii. Všechny pouţité metody v rámci software WEKA byly mnohem rychlejší neţ metody v rámci software STATISTICA. Z námi sledovaných tří metod byla znatelně nejpomalejší metoda SimpleCart. Rozhodovací stromy vytvořené pomocí různých metod v rámci software WEKA se znatelně liší i pokud je převedeme na pravidla. U stromu vzniklého pomocí metod Simple Cart a Id3 má obdobně jako u metod z software STATISTICA největší vliv (ze sledovaných hledisek) na cenovou kategorii má typ automobilu, výkon motoru a rok výroby. Jednotlivé prvky výbavy jsou aţ doplňkovými faktory ovlivňujícími cenovou kategorii. Na rozdíl od toho u stromu vzniklého pomocí metody J48 jsou nejdůleţitější jednotlivé sloţky
výbavy (zvláště ABS a airback, ale i ASR) a teprve za nimi následuje rok výroby, model automobilu či výkon motoru. Výhodou software WEKA je kromě rychlosti algoritmů i existence výstupu ve formě rozhodovacích pravidel. Pro další vyuţití stromů je důleţitá jednoduchost aplikování vzniklého stromu pro predikci cenové kategorie pro další soubor aut bez udání této veličiny. Další výhodou je práce s grafickým znázorněním stromu, kdy si strom můţeme rozbalit do čitelnější podoby či sbalit do prostorově menší podoby. Naopak nevýhodou je způsob větvení v případě, ţe více hodnotám vysvětlující proměnné přísluší stejná hodnota vysvětlované proměnné. Místo jedné vícenásobné větve software WEKA vytváří tolik větví, kolik různých hodnot vysvětlující proměnné (viz obr. 2), coţ vede k mírné nepřehlednosti, hlavně v případě tisku stromu. Kaţdý z pouţitých softwarových produktů vyuţívá jiných metodik při hodnocení kvality modelu v rámci kříţové validace, proto jsou modely vytvořené různými systémy hůře srovnatelné. LITERATURA [1] Antoch, J., Klasifikace a regresní stromy, Sborník ROBUST 88 http://www.statspol.cz/robust/1988_antoch88.pdf [2] Berikov, V., Litvinenko, A.: Methods for statistical data analysis with decision trees, http://www.math.nsc.ru/ap/datamine/eng/decisiontree.htm [3] Loh, W.-Y. and Shih, Y.-S., Split selection methods for classification trees, Statistica Sinica, vol. 7, 815-840, 1997 [4] Quinlan, J.R., Induction of Decision Trees, Machine Learning, vol. 1, num. 1, 81-106, 1986 [5] Quinlan, J.R., C4.5: Programs for Machine Learning (Morgan Kaufmann Series in Machina Learning), 1993 [6] Savický, P., Klaschka, J., a Antoch J.: Optimální klasifikační stromy, Sborník ROBUST 2000, 267-283, 2000 [7] SPSS-white paper- AnswerTree Algorithm Summary [8] Timofeev, R.: Classification and Regression Trees (CART) Theory and Applications, CASE - Center of Applied Statistics and Economics, Humboldt University, Berlin, 2004 [9] Ţambochová, M.: Pouţití stromů ve statistice, Sborník Ekonomika, regiony a jejich výhledy, 114-120, 2006 [10] Classification Trees: http://www.statsoft.com/textbook/stclatre.html [11] Classification and Regression Trees (C&RT): http://www.fmi.uni-sofia.bg/fmi/statist/education/textbook/eng/stcart.html [12] http://weka.sourceforge.net/doc/weka/classifiers/trees/ KONTAKT RNDr. Marta Ţambochová Univerzita J. E. Purkyně, Fakulta sociálně ekonomická, katedra matematiky a statistiky Moskevská 54, Ústí nad Labem, 400 96 zambochova@fse.ujep.cz