Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Adattárházak és kiaknázásuk A probléma: Adatoktól az információig Döntés Modell Hasznos információ Tudás reprezentázió Adatbányászat Adatok kinyerése, transzformálása Adattárház Termelés, Szolgáltatás => Adatbázis Tisztított, feldolgozott adatok Nyers adatok Motiváció Az adattárházak lehetőséget biztosítanak, hogy a termelő és üzleti folyamatokban keletkező adatokból, az üzleti döntések számára releváns információk legyenek kinyerhetők. Hogyan építsünk adattárházat? Hogyan rendezzük adatainkat? Hogyan nyerhetünk ki információt? Üzleti intelligencia környezet Mi is az adattárház ? Információs környezet, szemben az adatátvitelorientált környezettel Olyan folyamatok, eszközök tervezése és implementálása, melyek alkalmasak döntéshozatalhoz szükséges teljes, pontos, és áttekinthető információk adatokból történő kinyerésére. Minden olyan tevékenységet magába foglal amit egy szervezetnek el kell végeznie, hogy egy adattárházat hozzon létre és üzemeltessen Példa adattárházra Miért is? Strukturált módon tárolt adatokhoz egyszerű hozzáférés Különböző formátumok, platformok Heterogén adatforrások, adattisztítás szűrés átalakítás tárolás könnyen hozzáférhető és áttekinthető formában Adattárház funkciója OLTP: Hogyan vigyünk be és tároljunk adatokat ??? DSS: Decision Support System, Hogyan nyerjünk ki információt ?? EIS: Executive Information System, Hogyan használjuk az információt ?? Összefüggés és téma orientált Trend-adatok (időbeliség) gyakran nem normált több forrású DB2 VSAM ORACLE EIS Query/Reporting OLAP Adattárház struktúrája Subject D A T A A C C E S S T R A N S F O R M A T I O N EIS Detail Info Mart Subject Query Reporting Detail Data Mart Subject OLAP Detail OLTP/Legacy Data METADATA Tipikus architektúra Intefész, GUI Értékelés Adatbányászati alg. Adattisztítás Adattárház, adatbázis szerver Tudásbázis Szűrés és integrálás Adatbázisok Adattárház Adattárház definiálása Döntéstámogató adatbázis melyet külön üzemeltetnek a szervezet működéséhez kapcsolódó adatbázistól Támogató információ feldolgozó egység mely egy megbízható, feldolgozott hisztorikus, elemzések céljából összegyűjtött adatokat tartalmaz. “A data warehouse is a subject-oriented, integrated, time-variant, and nonvolatile collection of data in support of management’s decision-making process.”—W. H. Inmon Témaorientált Témakörök köré szervezett, pl. vásárlók, termékek, eladások. A döntéshozók számára szükséges adatok modellezéséhez és elemzéséhez kötődik, nem a napi működéshez, illetve adatátvitelhez. Egyszerű és tömör nézetet nyújt a fontos témakörökben, de nem tartalmazza azokat az adatokat, melyek nem fontosak a döntéshozatal szempontjából. Integrált Több, különböző jellegű adatforrás integrálásával épül fel Relációs adatbázisok, különálló fájlok, on-line adatátviteli források Adattisztítási és adatintegrációs eszközöket alkalmaznak Amikor az adat bekerül az adattárházba konvertálódik A konzisztenciát az elnevezési konvenciók, a struktúrák, stb. biztosítja a különböző adatforrások között Idővariáns Az időhorizont sokkal nagyobb mint egy operációs adatbázisban. Operációs adatbázis: aktuális adatok (pl. az elmúlt nap). Adattárház: hisztorikus adatok elemzésére (pl., az előző 5-10 év) Minden fontosabb (kulcs) struktúra tartalmaz Időelemet (explicit vagy implicit módon) Nem “illékony” Fizikailag külön tárolt, a működési környezetből transzformált adatok. Az üzemvitelből adódó adatfissítés nem fordul elő az adattárházban. Nincs szükség on-line adatátvitelre, adatmentésre és vissza, és konzisztenciát biztosító eljárásokra Csak két fő adatkezelési mód: adattárház feltöltése and adatok lekérdezése . Adattárház vs. Heterogén Adatbázisok Hagyományos heterogén adatbázis integráció: Wrapper-ek/mediator-ok a heterogén adatbázisok felé illesztve Lekérdezés alapú megközelítésmód Amikor kliens oldalról lekérdezés érkezik, egy meta-könyvtár segítségével a lekérdezés a heterogén adatbázis egy eleméhez kapcsolódó lekérdezésre fordítódik, és az egyes lekérdezések eredményei egy globális válasszá integrálódnak Adattárház: feltöltés-alapú, integritás biztosítása, nagy teljesítmény A heterogén adatforrások információi a lekérdezés előtt kerülnek integrálásra és tárolódnak Direkt lekérdezésekhez és elemzések Adattárház alkalmazásai Jelentések a szervezeten belüli információ megosztás hatékony eszköze Automatikus (web, e-mail, intranet) Saját jelentések (infóhoz való hozzáférés, munkamegosztás, teljes áttekintés) Statisztika Interpretáció Valószínűség Minta (szignifikáns) Adatbányászat Végfelhasználók igényei Tipikus felhasználók „non-frequent user” nem érdekli őket az adattárház, csak időről időre információra van szükségük Előre definiált, friss jelentéseket igénylő felhasználó Speciális érdeklődés, rendszeres időközönként Dinamikus, ad hoc lekérdezéseket igénylő Üzleti elemző Profi felhasználó Számára minden adat fontos Specializált adatpiacok Különböző felhasználók különböző igények OLAP (On-line Analytic Processing) OLAP ötletét E.F. Codd, a relációs adatbázisok atyja 1993 -ban egy Computerworld cikkben vetette fel. Codd rájött, hogy az OLTP elérte alkalmazásainak határát, rendkívül nagy számítási igény szükséges amikor relációs adatbázisokból végzünk lekérdezéseket. Rájött (amit már a döntéstámogatással foglalkozó szakértők már régóta hangoztattak): pusztán az operációs adatok nem alkalmasak a menedzserek kérdéseire választ adni. Idáig a relációs adatbázis képes válaszolni tipikus kérdésekre mint „ Mi?, Mit?” Az adattárházak a múltbeli adatok összesítésével képesek válaszolni olyan kérdésekre mint „Mi volt a teljes forgalom a keleti régióban a második negyedévben ?” Az OLAP célja az adatok elemzése és megértése alapján a „Miért?, Mi lenne ha?” kérdések megválaszolása OLAP II. OLAP és az adattárház komplementer fogalmak Az adattárház tárolja és menedzseli, az OLAP stratégiai információvá alakítja az adatokat Az OLAP alapötlete, hogy a menedzserek képesek legyenek az adatok több dimenziót figyelembe vevő kezelése, és annak megértése, hogy azok miként fordulnak elő, illetve hogyan változnak. Felhasználási területei: Piac szegmentálása, marketingkutatás, termelés tervezés, ... A megoldás a „multi-dimensional” azaz több dimenziós adatbázis. Codd 12 szabálya 1. Többdimenziós áttekintés 2. Felhasználó számára áttekinthető támogatás 3. Elérhetőség 4. Konzisztens naplók készítése 5. Kliens-szerver architektúra 6. Általános dimenzió aggregálás 7. Dinamikus ritka mátrixok 8. Multi-user támogatás 9. „Cross-dimensional operations” 10. Intuitív adatkezelés 11. Rugalmas jelentések 12. Korláttalan dimenziók OLTP vs. OLAP OLTP OLAP Felhasználó adatrögzítő, informatikus ‘knowledge worker’ Funkció napról napra történő döntés támogatás Tervezés alkalmazás-orientált témakör-orientált Adat Használat aktuális, naprakész, részletes, relációkba foglalt izolált Ismétlődő történeti, összesített, többdimenziós integrált, konszolidált ad-hoc Elérés írás/olvasás Sok lekérdezés Munka egysége rövid, egyszerű tranzakciók Komplex lekérdezés tizes nagyságrend Elért rekordok száma Felhasználók száma ezres nagyságrend milliós nagyságrend százas nagyságrend Méret 100MB-GB 100GB-TB Mérték Tranzakciós idő Lekédzezési idő Mikor használjunk OLAP-ot ? Az adatok iránti igény nem tranzakciós hanem elemző jellegű Az elemzett információ nem elérhető közvetlen módon Jelentős számítási és összesítési igény Főként numerikus adatok Az elemek, melyek az adatpontokat definiálják nem változnak időben Miért külön adattárház? Mindkét rendszer jó teljesítményt nyújt Relációs adatbázis—OLTP-re hangolva: elérési módok, indexelés Adattárház—OLAP-ra hangolva: összetett OLAP lekérdezések, többdimenziós nézet, konszolidáció. Különböző funkciók és különböző adatok: Hiányzó adatok: Döntéstámogató rendszer olyan hisztorikus adatokat kíván melyeket egy tipikus relációs adatbázisban nem tárolnak Adat konszolidáció: Pl. heterogén forrásból származó adatok aggregálása, összegzése Adat minőség: Különböző adatforrások általában inkonzisztens reprezentációt alkalmaznak, pl. időformátumok Adattárház <-> Heterogén Adatbázisok OLTP (on-line transaction processing) A hagyományos relációs adatbázisok alapfeladata OLAP (on-line analytical processing) Az adattárházak alapfeladata Napról napra történő működés: vásárlás, bank, gyártás, regisztráció, számlázás, stb. Adatelemzés és döntéshozatal OLTP <-> OLAP: Felhasználó- és rendszerorientáltság: vásárló <-> piac Adat tartalom: aktuális, részletes vs. történeti, konszolidált Tervezési módszer: ER (entity-relationship) + alkalmazás <-> csillag + témakör Nézet: aktuális, lokális <-> evolúciós, integrált Hozzáférés: frissítés <-> csak olvasható de komplex lekérdezések A piac szereplői és mérete Legnagyobb megoldás szállítók SAS Oracle, IBM Cégek és termékek Adatbányászat Cég Angoss Business objects Datamind IBM Integral Solutions Magnify Mindmaker Pilot software SAS Thinking Machines Termék KnowledgeSeeker BuisnessMiner Datacruncher Intelligent Miner Clementine Pattern Mindmaker DSS Enterprise Miner Darwin Összefoglalás I. - Varázsszavak EIS: Executive Information System DSS: Decision Support System KDD: Knowledge Discovery in Databases DW: Data Warehousing DM: Data Mining OLTP: On-line Transaction Processing OLAP: On-line Analytical Processing MDA: Multi-Dimensional Data Analysis Relációs adatmodell VI. Mester receptúra tábla kulcs mester_receptura_id VIA_100103 VIA_100102 SUL_210015 termék VIARON VIARON SULFOGEN mester_receptura_id VIA_100103 VIA_100102 SUL_210015 VIA_100103 SUL_210015 700 500 500 Idegen kulcs Sarzs tábla sarzs_id K5-800901315 K5-800901316 K5-800902317 K5-800901318 K5-800902320 sarzs_méret kezelő_kód PA SE SE PA SE Mező (jellemző) Kezelő tábla Egyed (rekord) kezelő_id KE KP PA PM SE vezetéknév Kovács Kláv Péterhegyi Posta Sarzs keresztnév Elemér Péter András Maci Elek beosztás szakmunkás szakmunkás művezető szakmunkás szakmunkás Dimenzionális adatmodellezés Koncepciók I. Tények Kapcsolódó adategységek üzleti egységet, tranzakciót, eseményt jelöl Kulcs tábla, melyben numerikus adatok szerepelnek Dimenzionális adatmodellezés Koncepciók II. Dimenziók A tények hátterét definiálják (pl. idő, hely, üzletkötő …) Gyakran nem numerikus egységek pl. termék márka, alkalmazott Diagramokban tengelyként ábrázolva Paraméterek, melyekre OLAP elemzést szeretnénk végezni pl. Idő, Hely, Vásárló ... Információ granuláltság Dimenziók hierarchiája Record Alacsony granuláltság - sok részlet Nagy granuláltság - kevés részlet Menedzsment termék típus üzleti év gyár Üzemvezető termék nap üzem perc berendezés Operátor alkatrész Dimenziók hierarchiája all all Europe region country city office Germany Frankfurt ... ... ... Spain North_America Canada Vancouver ... L. Chan ... ... Mexico Toronto M. Wind További példa dimenziók hierarchiájára Dimenzionális adatmodellezés Koncepciók III. Mértékek Egy (Measures) tény numerikus értéke (pl. eladott mennyiség) Koncepcionális modellezés Csillagdiagram: Középen ténytábla körülötte dimenzió táblák Hópiheséma: A csillagséma finomítása ahol a dimenziók hierarchiája normált, azaz kisebb dimenzió táblákra osztott Tény konstellációk: Több ténytábla, csillagsémák összessége, ezért galaxissémának is hívják Adatkocka Példa csillagsémára time item time_key day day_of_the_week month quarter year Eladások tény tábla time_key item_key branch_key branch branch_key branch_name branch_type location_key units_sold dollars_sold avg_sales Measures item_key item_name brand type supplier_type location location_key street city province_or_street country Példa hópihesémára time time_key day day_of_the_week month quarter year item Eladások ténytábla time_key item_key branch_key branch location_key branch_key branch_name branch_type units_sold dollars_sold avg_sales Measures item_key item_name brand type supplier_key supplier supplier_key supplier_type location location_key street city_key city city_key city province_or_street country Példa galaxissémára time time_key day day_of_the_week month quarter year item Eladások ténytábla time_key item_key item_name brand type supplier_type item_key location_key branch_key branch_name branch_type units_sold dollars_sold avg_sales Measures time_key item_key shipper_key from_location branch_key branch Szállítások ténytábla location to_location location_key street city province_or_street country dollars_cost units_shipped shipper shipper_key shipper_name location_key shipper_type Többdimenziós adatkocka I. Az eladási mennyiség a termék, az idő, és a régió függvényében Dimenziók: Termék, Hely, Idő Egységek hierarchikus összegzése Termék Iparág Idő Régió Év Kategória Ország Hónap Termék Város Hét Hivatal Nap Többdimenziós adatkocka II. idő termék berendezés Aggregáció a menedzser nézete idő termék Példa adatkockára 1.n.év 2 .n.év 3 .n.év 4 .n.év sum TV PC Videó sum U.S.A Kanada Mexikó sum Ország Idő Teljes éves TV eladás az U.S.A.-ban Tábláktól az adatkockáig Az adatkocka, pl. eladások, lehetővé teszi, hogy több szempont figyelembevételével vizsgáljuk az adatokat Dimenziótáblák, pl. árucikk(cikk_név, márkanév, típus), vagy idő(nap, hét, hónap, negyedév, év) Tény tábla mértékeket (pl dollár_forgalom) és kapcsolatokat tartalmaz melyek a dimenzió táblákhoz kapcsolódnak Az n-adatkockát base cuboid -nak hívják. Az adatkockához tartozó Cuboidok all 0-D(apex) cuboid Termék Termék,dátum Dátum Ország Termék,ország 1-D cuboidok Dátum, oszág 2-D cuboidok 3-D(alap,base) cuboid Termék, Dátum, Ország Hatékony adatkocka kezelés Az adatkocka cuboidok hálójaként értelmezhető A legalsó cuboid az alap cuboid A legfelső cuboid (apex) csak egy cella Hány cuboid fordul elő egy n-dimenziós L szintből felépülő adatkockában? Adatkocka materializációja full materialization, Minden cuboid kiszámítása és tárolása no materialization, partial materialization, Csak néhány cuboid materializációja, a lekérdezések gyakorisága, a méret, stb. alapján Tipikus Olap Műveletek 0. Példa Tipikus OLAP Műveletek I. Roll up (drill-up): adatok összegzése A hierarhikus dimenziók összesítése (nap vs. év) vagy dimenzióredució (pl. nem érdekel minket a hely) Drill down (roll down): a roll-up ellentettje Nagyobb szintű összesítésből részletekre bontás, illetve új dimenziók bevezetése Tipikus OLAP Műveletek II. Slice and dice: Pivot (rotate): Projekció és szelekció A kocka átszervezése, megjelenítés, 3D mint 2D síkok halmaza. Más műveletek drill across: Egynél több ténytábla használata drill through: a kocka alsó szintjének és annak relációs táblájának (SQL) kapcsolata OLAP lekérdezések hatékony kezelése Határozd meg, milyen műveleteket kell elvégezni a cuboidokon Transzformáld a drill, roll, műveleteket megfelelő SQL és/vagy OLAP műveletekké, dice = selection + projection Határozd meg, melyik materializált cuboid(ok) használata szükséges Többdimenziós adatbázisok Multidimensional databases (MDD) nem teljesen új ötlet. Kb. 20 éve, az EXPRESS szoftvercsomag Kb. a 90’-es évektől a relációs adatbázis szállítók felfrissítették a termékeiket. Különösképp, csillag- és hópihesémát alkalmaznak. Az MDD az adatokat n-dimenziós adatkockában tárolja. Ez valójában ritka mátrixokat eredményez. Szimultán módon vizsgálhatóak a különböző jellegű jellemzők, pl. termékek, régiók, eladások, költségek. A lényeg, az MDD-ben az idő szintén dimenzió. Az MDD relációs adatbázisokkal szembeni legfőbb előnye, hogy a lekérdezések egyszerűségére, illetve sebességére van optimalizálva Tipikus adattárház architektúra Többszintű architektúra other Metadata sources Operational DBs Extract Transform Load Refresh Monitor & Integrator Data Warehouse OLAP Server Serve Analysis Query Reports Data mining Data Marts Data Sources Data Storage OLAP Engine Front-End Tools Az adattárház felépítése Három tipikus komponens Maga az adattárház, az adatokkal és a hozzá tartozó szoftverrel Adatgyűtjő (back end) szoftver mely a külső forrásokból származó adatokat konszolidálja, összegzi, és betölti az adattárházba oldali (front-end) szoftver mely lehetővé teszi a felhasználóknak, hogy elérjék és elemezzék az adatokat. Kliens Adattárház struktúrális elemei Adat források Operációs adatbázisok Hisztorikus adatok Külső adatforrások (Internet) Különböző platformokon Különböző módon strukturált információk Nem strukturált infó: Képek, multimédia szöveg Extrakció/propagálás Különböző forrásokból az adatok gyűjtése Szelektív folyamat (releváns információk) Pulling (Extrakció) Pushing (Propagation) Transzformáció/Tisztítás Kód feloldás mapping tables pl. 1: férfi, 2 nő … rejtett üzleti szabályok feloldása pl. számlaszám, vonalkód felépítése Tisztítás (cleansing) hiányzó értékek pótlása normalizálás (pl. euró, dollár) konzisztens reprezentáció Finomítás-Refining Rész-adathalmazok generálása Számított mezők Információk összegzése (summarize) granuláltság szintjét változtatja pl. heti adatok Információk aggregálása Csoportok generálása pl. termékcsoportok Adatpiac Speciális döntésekhez szabott elő-aggregált információk Végfelhasználók hozzáférésének kontrolálása Speciális információkhoz gyors hozzáférés Végfelhasználóknak interfész Adattárház kiegészítése Egyensúly az adatpiacok száma és specializáltsága (egyszerűsége) között Gyakori probléma, hogy felépítése osztályról osztályra változik. Ezért az adattárházak integrációja bonyolult feladat. Meta-adatok Kategóriák segítségével struktúrálja az adattárház adatait Témaorientált: a valós egyedek absztrakciói Definiálja, hogy kell a transzformált adatot interpretálni, pl. projekt pl. dátum 5/9/99 A válaszidő becslésére alkalmas, pl. rekordok száma A származtatott változók számításának leírása Meta-adatok II. Típusai Technikai az adattárház üzemeltetéséhez Üzleti az üzleti elemzők és az adattárház kapcsolatát segíti, pl.Üzleti szakkifejezések Forrásai Formális dokumentált, ismertetett Informális hagyományok, belső ökölszabályok Operation Data Store (ODS) A vállalat egészét érintő döntéshozáshoz felhasználható Naprakészen tartható integrált adat Téma orientált Integrált Naprakész (current valued) többféleképpen értelmezhető (pl. könyvelési év) Illékony (ami ma naprakész …) Részletes Adattárház tervezési folyamat Architektúra megválasztása Implementációs mód megválasztása Kivitelezés (rolling out) SAS Rapid Warehousing Methodology Architektúra megválasztása I. Globális adattárház architektúra •Az egész vállalatot támogatja •félreértés, hogy centralizált (pláne nem fizikailag) •A vállalat informatikusai üzemeltetik Architektúra megválasztása I. Adatpiac architektúra •Különböző osztályok •Helyi üzemeltetés •Kicsi erőforrás igény •Az összehangolás erőfeszítéseket igényel •Hozzáférési jogosultságok Két tűz között Igények Amit szeretnénk Felhasználó alapú Ami kivitelezhető és hasznos Amink van Adatok Forrás alapú Top-Down Implementáció Információs Fázisokból álló modellezés Üzleti koncepció Üzleti tervezés elemzés Igények felmérése Tevékenység felmérése Logikus adatmodellezés Generáló adatmodell Felhasználói adatmodell Veszélyek Egyedek és relációk Fizikai adattervezés Fizikai korlátok (pl. tároló kapacitás) •Túl általános célból fakadóan túl összetett feladat •Túl sok egység összehangolása Bottom-Up implementáció Először adat piacokat hoznak létre Lépésről lépésre bővítik Rögtön hasznosuló eredmény Lehetséges hátrányok Adatredundancia Inkonzisztencia Nehéz az adatpiacok integrálása Résztvevők SAS Rapid Warehousing Methodology Tisztán meghatározott felelőségi körök Rugalmas kis feladatkörök projekt, egy személy több szerepkör Kulcsfeladatok és szereplők Vezetői szponzor Projekt menedzsment Adattárház tervezők logical és physical Adattárház adminisztrátorok Adat adminisztrátorok Építő csapat IT szakértők Minőség biztosításért felelősök Felhasználók Tervezés és kivitelezés (rolling out) Definiálni az architektúrát, megtervezni a kapacitást, és kiválasztani a tároló szervereket, az adatbázist és az OLAP szervereket, valamint az eszközöket. Integrálni a szervereket, a tárolókat és a kliens eszközöket. Megtervezni az adatmodell sémáit és nézeteket. Definiálni a fizikai adattárház szerveződést, az adat elhelyezést, a részekre bontást és az elérési módszereket. A forrásokhoz kapcsolódni átjárók (gateway), ODBC meghajtók vagy egyéb wrapper-ek segítségével. Az adatok kivonására, tisztítására, átalakítására, betöltésére és frissítésére script-eket tervezni és implementálni. A végfelhasználói (end-user) alkalmazások megtervezése és implementálása. Kivitelezni (roll out) az adattárházat és az alkalmazásokat. Adattárház tervezésének nézetei Négy nézet „Top-down” Megengedi az adattárházhoz szükséges információk kiválasztását Data source (adatforrás) nézet feltárja a tárolandó és kezelendő információkat Adattárház nézet tény- és dimenziótáblákban gondolkodik „Business nézet query” nézet a végfelhasználó szemszögéből, azaz az alkalmazási oldalról indul Tervezési módszertanok Top-down, bottom-up megközelítések vagy ezek kombinációja Top-down: Bottom-up: Általános terv alapú (átgondolt) Kísérletekre és prototípusokra épít (gyors) A „software engineering” nézőpontból Waterfall (Vízesés): Strukturált és szisztematikus elemzés minden lépésben Spiral: Gyors generálása az egyre összetettebb egységeknek, visszatérés ... Javasolt megközelítési mód Multi-Tier Data Warehouse Distributed Data Marts Data Mart Data Mart Model refinement Enterprise Data Warehouse Model refinement Define a high-level corporate data model Iteratív adattárház project Tipikus tervezési folyamat Üzleti folyamat kiválasztása, pl. megrendelés, számlázás Az üzleti folyamat elemi szintjeinek (grain) feltárása Dimenziók megválasztása, (a ténytábla minden rekordjában szerepelnek) Mértékek (a ténytábla adatai) Megvalósítási modellek Vállalati adatmodell Adatgranuláltság modell Logikai adatpartíciós modell Vállalati adatmodell Enterprise Data Model (EDM) Fázisokból álló modellezés Információs tervezés Üzleti koncepció Üzleti elemzés igények felmérése Logikai adatmodellezés pl. üzletegység, vásárlók, Generáló logikus adatmodell Logikus felhasználói adatmodell részletes, Egyedek és relációk Fizikai adattervezés Fizikai korlátok (pl. tároló kapacitás) Egyszerű vállalati adatmodell Az EDM előnyei, sikerének kulcsa Jól követhető, az integrációt propagáló fejlesztés Konzisztens adatdefiníciót támogatja Veszélyek Túl általános célból fakadóan túl összetett feladat Túl sok egység összehangolása Nehéz olyan embert találni, aki a felelős részterületén kívül tevékenységének teljes üzletmenetre gyakorolt hatását jól átlátja Adatgranuláltság modell Egyensúly az adattárolás költsége (adatelérési idő is) és a válaszadás lehetősége között Multigranulált adatmodellezés Kétszintű tárolás Részletes adatok és összesített adatok a felsőbb szinten Logikai adatparticiós modell Témakörök (Subject area) Lásd az adattárház definícióját 5W1H szabály when, where, who, what, why és how A felosztás célja Adatok rugalmas elérése, menedzselése Adattárház skálázhatósága Adattárház hordozhatósága Ha megvannak az egységek, mik a kapcsolatok? Az adatbányászat helye Increasing potential to support business decisions Making Decisions Data Presentation Visualization Techniques Data Mining Information Discovery End User Business Analyst Data Analyst Data Exploration Statistical Analysis, Querying and Reporting Data Warehouses / Data Marts OLAP, MDA Data Sources Paper, Files, Information Providers, Database Systems, OLTP DBA Data Mining: A KDD Process Data mining: the core of knowledge discovery process. Pattern Evaluation Data Mining Task-relevant Data Data Warehouse Data Cleaning Data Integration Databases Selection What Is Data Mining? Data mining (knowledge discovery in databases): Extraction of interesting (non-trivial, implicit, previously unknown and potentially useful) information or patterns from data in large databases Alternative names and their “inside stories”: Data mining: a misnomer? Knowledge discovery(mining) in databases (KDD), knowledge extraction, data/pattern analysis, data archeology, data dredging, information harvesting, business intelligence, etc. What is not data mining? (Deductive) query processing. Expert systems or small ML/statistical programs What is (not) Data Mining? What is not Data Mining? What is Data Mining? – Look up phone number in phone directory – Certain names are more prevalent in certain US locations (O’Brien, O’Rurke, O’Reilly… in Boston area) – Query a Web search engine for information about “Amazon” – Group together similar documents returned by search engine according to their context (e.g. Amazon rainforest, Amazon.com,) Origins of Data Mining Draws ideas from machine learning/AI, pattern recognition, statistics, and database systems Traditional Techniques may be unsuitable due to Enormity of data High dimensionality of data Heterogeneous, distributed nature of data A Multi-Dimensional View of Data Mining Classification General functionality Descriptive data mining Predictive data mining Databases to be mined Relational, transactional, object-oriented, object-relational, active, spatial, time-series, text, multi-media, heterogeneous, legacy, WWW, etc. Knowledge to be mined Characterization, discrimination, association, classification, clustering, trend, deviation and outlier analysis, etc. Multiple/integrated functions and mining at multiple levels Techniques utilized Database-oriented, data warehouse (OLAP), machine learning, statistics, visualization, neural network, etc. Applications adapted Retail, telecommunication, banking, fraud analysis, DNA mining, stock market analysis, Web mining, Weblog analysis, etc. Data Mining Tasks... Data 10 Milk Tid Refund Marital Status Taxable Income Cheat 1 Yes Single 125K No 2 No Married 100K No 3 No Single 70K No 4 Yes Married 120K No 5 No Divorced 95K Yes 6 No Married No 7 Yes Divorced 220K No 8 No Single 85K Yes 9 No Married 75K No 10 No Single 90K Yes 11 No Married 60K No 12 Yes Divorced 220K No 13 No Single 85K Yes 14 No Married 75K No 15 No Single 90K Yes 60K Association Rule Discovery Given a set of records, find dependency rules which will predict occurrence of an item based on occurrences of other items in the record TID Items 1 Bread, Coke, Milk 2 3 4 5 Beer, Bread Beer, Coke, Diaper, Milk Beer, Bread, Diaper, Milk Coke, Diaper, Milk Rules Discovered: {Milk} --> {Coke} (s=0.6, c=0.75) {Diaper, Milk} --> {Beer} (s=0.4, c=0.67) Applications Marketing and Sales Promotion Supermarket shelf management Inventory Management Support, s # transacti ons that contain X and Y Total transacti ons Confidence , c # transacti ons that contain X and Y # transacti ons that contain X A vásárlói kosár elemzés Adott m-féle termék Adottak a vásárlások (tranzakciók): a vásárlói kosarak tartalma, pl. n db kosár Motiváció: szabályszerűségek feltárása Szupermarket: a vásárlók 10% - a vásárol egyszerre sajtot és bort Web log: az a látogató, aki felkeresi a CNN weboldalát, az 60%-os valószínűséggel 1 hónapon belül felkeresi az ABC News weboldalát is Kérdés: Mely termékeket szokták („nagy” valószínűséggel) együtt vásárolni? Pl.: Milyen részegységeket szoktak gyakran egyszerre vásárolni egy PC vásárlása során? Alapfogalmak 1. E = {e1, e2, …, em} elemek egy adatbázisban (pl. termékek) E részhalmazai: elemhalmazok T = {t1, t2, …tn}: tranzakciók (rekordok) halmaza X elemhalmaz előfordul ti -ben, ha az X része ti-nek X gyakorisága: azon T tranzakciók száma, melyekben X előfordul, (támogatottság, support, supp) kiszámítása: gyakoriság(X) = |{ti | X eleme ti, ahol ti eleme T}| Százalékos formában: osztjuk |T|-vel, így: P(X) valószínűség Alapfogalmak 2. X gyakori elemhalmaz, ha meghaladja az ún. minimális gyakoriságot (gyakoriság küszöb, σ): tehát ha gyakoriság(X) > σ Minimális gyakoriság: objektív, adat vezérelt, vagy pedig szubjektív, a felhasználó határozza meg Példa 1: Mik lesznek az elemek? Milyen gyakori elemhalmazokat és szabályokat fedezünk fel? E = {tej, kenyér, sör, tojás, kóla, pelenka} TID Items 1 Bread, Milk 2 3 4 5 Beer, Diaper, Bread, Eggs Beer, Coke, Diaper, Milk Beer, Bread, Diaper, Milk Coke, Bread, Diaper, Milk A {sör, pelenka} elemhalmaz gyakorisága: 3 (60%) Ha pl. σ = 50 %, akkor ez gyakori elemhalmaz. Alapfogalmak 3. 1 A gyakori elemhalmazok hátránya: nem mutatják meg az elemhalmaz elemei között fennálló kapcsolatokat. Ezért: asszociációs szabályokat generálhatunk a gyakori Items elemhalmazokból Bread, Milk 2 3 4 5 Beer, Diaper, Bread, Eggs Beer, Coke, Diaper, Milk Beer, Bread, Diaper, Milk Coke, Bread, Diaper, Milk TID A {sör, pelenka} gyakori elemhalmazból pl. a következő szabályokat: -Ha valaki vesz sört, akkor bizonyos valószínűséggel pelenkát is vásárol: Sör -> Pelenka -Ha valaki vesz pelenkát, akkor bizonyos valószínűséggel sört is vásárol: Pelenka -> Sör Az ilyen X -> Y implikációt hívjuk asszociációs szabálynak! Előzmény - X és következmény rész - Y Bizonyosság (konfidencia, conf) mutató: bizonyosság(X->Y) = gyakoriság(X Y)/gyakoriság(X) ∩ Alapfogalmak 4. Számítsuk ki a bizonyosságát az előbbi szabályoknak, felhasználva a példa vásárlói kosarakat tartalmazó táblázatot! TID Items 1 Bread, Milk 2 3 4 5 Beer, Diaper, Bread, Eggs Beer, Coke, Diaper, Milk Beer, Bread, Diaper, Milk Coke, Bread, Diaper, Milk Conf(Sör -> Pelenka) = supp(Sör, Pelenka)/supp(Sör) = 3/3 (100 %) Conf(Pelenka -> Sör) = supp(Sör, Pelenka)/supp(Pelenka) = ¾ (75 %) Melyik az „erősebb szabály” ? Bizonyos egy szabály, ha bizonyossága meghaladja a minimális bizonyosságot (γ). Érvényes (fontos) szabály: ha gyakori és bizonyos is Hogyan keressünk szabályokat? Adott n tranzakció és m különböző elem: A lehetséges szabályok száma: O(m2m1 ) Számítás komplexitása: O( Nm2m ) Szisztematikus keresés minden mintára, a „támogatottsági kényszer” felhasználásával: Ha supp {X,Y} < a, akkor supp {X} < a és supp {Y} < a Ha supp {X} < a vagy supp {Y} < a , akkor supp {X,Y} < a Ötlet: Az n elemszámú gyakori termékhalmaz kereséséhez használjuk fel az (n-1) elemszámúakat! Asszociációs szabály generáló algoritmusok A feladat 2 fő részre bontható: 1. 2. Gyakori termékhalmazok megkeresése Szabályok generálása Közkedvelt gyakori elemhalmaz kereső algoritmus: APRIORI Adjuk meg a keresési feltételeket (supp,conf) Keressük meg a gyakori elemhalmazokat, felhasználva a támogatottsági kényszert (a korábbi ismereteket - innen az Apriori elnevezés) Ezekből generáljunk szabályokat Nézzük meg melyek a „fontos” szabályok, bizonyosság (min_confidence), illetve más mértékek számítása is lehetséges (pl. korreláció, PS - Piatetsky-Shapiro érdekességi mérték, stb.) A jelölt halmazok (jelöltek) felállítása Apriori – elv: Apriori algoritmus működése Szabályok generálása Gyakori termékhalmazok Szabályok (|Y|=1) X L ={ 1, 2, 3, 5, {1,3}, {2,3}, {2,5}, {3,5}, {2,3,5} } Fontos Szabályok: s(r) > min_supp és c(r) > min_conf 1 3 2 3 2 5 3 5 2 3 2 5 3 2 Y supp conf 50 100 3 1 3 2 5 2 5 3 50 66.67 50 66.67 … … … … 5 3 5 … … … AprioriTID algoritmus Adatbázis kivonatolása: Apriori-elv használata, de az eredeti adatbázist csak az első lépésben tekinti Elhagyjuk a „felesleges”, nem gyakori elemeket, ill. tranzakciókat Direkt hash-elés és tisztítás – DHP algoritmus Legnagyobb számban 2-elemű jelöltek fordulnak elő, viszont csak néhány százalékuk gyakori (ez a szűk keresztmetszet a jelöltállításon alapuló algoritmusoknál) Hash alapú jelöltállítás -> csökken a 2-eleműek száma Asszociációs szabályok kiválasztása – érdekességi mutatók Félrevezethető lehet egy szabály!!! Pl. 500 ember kávé (80 %) és tea (20 %) fogyasztását elemezzük (mindkettőt 15%). tea -> kávé szabály bizonyossága 75 % , viszont 80 % csak kávét iszik, tehát a tea fogyasztás a kávé fogyasztását csökkenti, így a fenti szabály félrevezető! Túl sok az érvényes (supp + conf) szabályunk, de melyek az igazán fontosak? -> Érdekességi mutatók: Asszociációs szabályok típusai 1. 1. Boole-féle, két értékű asszociációs szabályok (szerepel egy elem/elemhalmaz a tranzakcióban vagy sem) 2. Mennyiségi szabályok (numerikus vagy kvantitatív) Asszociációs szabályok típusai 2. Éles határok problémája a kategorikus esetre: Megoldás: fuzzy logika használata a partícionáláshoz -> 3. fuzzy asszociációs szabályok fiatal középkorú idős A1,1 A1,2 … A1,q1 A2,1 A2,2 … A2,q2 An,1 An,2 … An,qn 1 1 1 1 1 1 1 1 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0.5 0 0 0.5 0 0 1 0 00.5 0.51 z1 0 0 1 0 00.5 0.51 életkorz2 0 0 1 … 0 00.5 0.51 0 0 1 zn 0.5 1 Asszociációs szabályok típusai 3. 4. Többszintű asszociációs szabályok (részletes és általános szabályok feltárása is) Data Mining Functionalities (cont.) Classification and Prediction Finding models (functions) that describe and distinguish classes or concepts for future prediction E.g., classify countries based on climate, or classify cars based on gas mileage Presentation: decision-tree, classification rule, neural network Prediction: Predict some unknown or missing numerical values Cluster analysis Class label is unknown: Group data to form new classes, e.g., cluster houses to find distribution patterns Clustering based on the principle: maximizing the intra-class similarity and minimizing the interclass similarity Predictive Modeling Find a model for class attribute as a function of the values of other attributes Model for predicting tax evasion Married Yes 10 Tid Refund Marital Status Taxable Evade Income 1 Yes Single 125K No 2 No Married 100K No 3 No Single 70K No 4 Yes Married 120K No 5 No Divorced 95K Yes 6 No Married No 7 Yes Divorced 220K No 8 No Single 85K Yes 9 No Married 75K No 10 No Single 90K Yes 60K NO Income100K Yes Yes Yes Learn Classifier No NO Income 80K NO No YES Clustering Given a set of data points, find groupings such that Data points in one cluster are more similar to one another Data points in separate clusters are less similar to one another Clustering: Applications Market Segmentation Gene expression clustering Document Clustering Category Total Articles Correctly Placed 555 364 Foreign 341 260 National 273 36 Metro 943 746 Sports 738 573 Entertainment 354 278 Financial Training data: A collection of records (objects) x. Each record contains a set of features and the class C that it belongs to. age <=30 <=30 30…40 >40 >40 >40 31…40 <=30 <=30 >40 <=30 31…40 31…40 >40 income student credit_rating high no fair high no excellent high no fair medium no fair low yes fair low yes excellent low yes excellent medium no fair low yes fair medium yes fair medium yes excellent medium no excellent high yes fair medium no excellent buys_computer no no yes yes yes no yes no yes yes yes yes yes no {xi , Ci } i 1...N Evaluation of Classification Systems Training Set: examples with class values for learning. Predicted False Positives Test Set: examples with class values for evaluating. Evaluation: Hypotheses are used to infer classification of examples in the test set; inferred classification is compared to known classification. True Positives False Negatives Actual Accuracy: percentage of examples in the test set that are classified correctly. Bayesian Classification: Why? Probabilistic learning: Calculate explicit probabilities for hypothesis, among the most practical approaches to certain types of learning problems Incremental: Each training example can incrementally increase/decrease the probability that a hypothesis is correct. Prior knowledge can be combined with observed data. Probabilistic prediction: Predict multiple hypotheses, weighted by their probabilities Standard: Even when Bayesian methods are computationally intractable, they can provide a standard of optimal decision making against which other methods can be measured Bayesian classification The classification problem may be formalized using aposteriori probabilities: P(C|X) = prob. that the sample tuple X=<x1,…,xk> is of class C. E.g. P(class=N | outlook=sunny,windy=true,…) Idea: assign to sample X the class label C such that P(C|X) is maximal Estimating a-posteriori probabilities Bayes theorem: P(C|X) = P(X|C)·P(C) / P(X) P(X) is constant for all classes P(C) = relative freq of class C samples C such that P(C|X) is maximum = C such that P(X|C)·P(C) is maximum Problem: computing P(X|C) Naïve Bayesian Classification Naïve assumption: attribute independence P(x1,…,xk|C) = P(x1|C)·…·P(xk|C) If i-th attribute is categorical: P(xi|C) is estimated as the relative freq of samples having value xi as i-th attribute in class C If i-th attribute is continuous: P(xi|C) is estimated thru a Gaussian density function Computationally easy in both cases Play-tennis example: estimating P(xi|C) Outlook sunny sunny overcast rain rain rain overcast sunny sunny rain sunny overcast overcast rain Temperature Humidity Windy Class hot high false N hot high true N hot high false P mild high false P cool normal false P cool normal true N cool normal true P mild high false N cool normal false P mild normal false P mild normal true P mild high true P hot normal false P mild high true N P(p) = 9/14 outlook P(sunny|p) = 2/9 P(sunny|n) = 3/5 P(overcast|p) = 4/9 P(overcast|n) = 0 P(rain|p) = 3/9 P(rain|n) = 2/5 temperature P(hot|p) = 2/9 P(hot|n) = 2/5 P(mild|p) = 4/9 P(mild|n) = 2/5 P(cool|p) = 3/9 P(cool|n) = 1/5 humidity P(high|p) = 3/9 P(high|n) = 4/5 P(normal|p) = 6/9 P(normal|n) = 2/5 windy P(n) = 5/14 P(true|p) = 3/9 P(true|n) = 3/5 P(false|p) = 6/9 P(false|n) = 2/5 Play-tennis example: classifying X An unseen sample X = <rain, hot, high, false> P(X|p)·P(p) = P(rain|p)·P(hot|p)·P(high|p)·P(false|p)·P(p) = 3/9·2/9·3/9·6/9·9/14 = 0.010582 P(X|n)·P(n) = P(rain|n)·P(hot|n)·P(high|n)·P(false|n)·P(n) = 2/5·2/5·4/5·2/5·5/14 = 0.018286 Sample X is classified in class n (don’t play) A Decision Tree for “buys_computer” age? <=30 student? overcast 30..40 yes age <=30 <=30 30…40 >40 >40 >40 31…40 <=30 <=30 >40 <=30 31…40 31…40 >40 income student credit_rating high no fair high no excellent high no fair medium no fair low yes fair low yes excellent low yes excellent medium no fair low yes fair medium yes fair medium yes excellent medium no excellent high yes fair medium no excellent >40 credit rating? no yes excellent fair no yes no yes buys_computer no no yes yes yes no yes no yes yes yes yes yes no Classification by Decision Tree Induction Decision tree Decision tree generation consists of two phases A flow-chart-like tree structure Internal node denotes a test on an attribute Branch represents an outcome of the test Leaf nodes represent class labels or class distribution Tree construction At start, all the training examples are at the root Partition examples recursively based on selected attributes Tree pruning Identify and remove branches that reflect noise or outliers Use of decision tree: Classifying an unknown sample Test the attribute values of the sample against the decision tree Algorithm for Decision Tree Induction Basic algorithm (a greedy algorithm) Tree is constructed in a top-down recursive divide-and-conquer manner At start, all the training examples are at the root Attributes are categorical (if continuous-valued, they are discretized in advance) Examples are partitioned recursively based on selected attributes Test attributes are selected on the basis of a heuristic or statistical measure (e.g., information gain) Conditions for stopping partitioning All samples for a given node belong to the same class There are no remaining attributes for further partitioning – majority voting is employed for classifying the leaf There are no samples left Attribute Selection Measure Information gain (ID3/C4.5) All attributes are assumed to be categorical Can be modified for continuous-valued attributes Gini index (IBM IntelligentMiner) All attributes are assumed continuous-valued Assume there exist several possible split values for each attribute May need other tools, such as clustering, to get the possible split values Can be modified for categorical attributes Entropy I. S is a sample of training examples p+ is the proportion of positive P examples p- is the proportion of negative N examples Entropy measures the impurity of S Entropy(S) = -p+ log2 p+ - p- log2 p- Entropy II. Entropy(S)= expected number of bits needed to encode class (+ or -) of randomly drawn members of S (under the optimal, shortest length-code) Why? Information theory optimal length code assign –log2 p bits to messages having probability p. So the expected number of bits to encode (+ or -) of random member of S: -p+ log2 p+ - p- log2 p Information Gain in Decision Tree Induction Assume that using attribute A a set S will be partitioned into sets {S1, S2 , …, Sv} If Si contains pi examples of P and ni examples of N, the entropy, or the expected information needed to classify objects in all subtrees Si is pi ni I ( pi , ni ) i 1 p n E ( A) The encoding information that would be gained by branching on A Gain( A) I ( p, n) E ( A) Example of Information Gain [29+,35-] A1=? True [21+, 5-] A2=? [29+,35-] False [8+, 30-] True [18+, 33-] False [11+, 2-] Entropy([29+,35-]) = -29/64 log2 29/64 – 35/64 log2 35/64= 0.99 Entropy([21+,5-]) = 0.71 Entropy([8+,30-]) = 0.74 Gain(S,A1)=Entropy(S) -26/64*Entropy([21+,5-]) -38/64*Entropy([8+,30-]) =0.27 Entropy([18+,33-]) = 0.94 Entropy([8+,30-]) = 0.62 Gain(S,A2)=Entropy(S) -51/64*Entropy([18+,33-]) -13/64*Entropy([11+,2-]) =0.12 Attribute Selection by Information Gain Computation age <=30 <=30 30…40 >40 >40 >40 31…40 <=30 <=30 >40 <=30 31…40 31…40 >40 income student credit_rating high no fair high no excellent high no fair medium no fair low yes fair low yes excellent low yes excellent medium no fair low yes fair medium yes fair medium yes excellent medium no excellent high yes fair medium no excellent buys_computer no no yes yes yes no yes no yes yes yes yes yes no Class P: buys_computer = “yes” Class N: buys_computer = “no” I(p, n) = I(9, 5) =0.940 Compute the entropy for age: age <=30 30…40 >40 pi 2 4 3 ni 3 0 2 I(pi, ni) 0.971 0 0.971 5 4 I ( 2,3) I ( 4,0) 14 14 5 I (3,2) 0.69 14 E ( age) Hence Gain(age) I ( p, n) E (age) Similarly Gain(income) 0.029 Gain( student ) 0.151 Gain(credit _ rating ) 0.048 The result age? <=30 student? overcast 30..40 yes age <=30 <=30 30…40 >40 >40 >40 31…40 <=30 <=30 >40 <=30 31…40 31…40 >40 income student credit_rating high no fair high no excellent high no fair medium no fair low yes fair low yes excellent low yes excellent medium no fair low yes fair medium yes fair medium yes excellent medium no excellent high yes fair medium no excellent >40 credit rating? no yes excellent fair no yes no yes buys_computer no no yes yes yes no yes no yes yes yes yes yes no Gini Index (IBM IntelligentMiner) If a data set T contains examples from n classes, gini index, gini(T) is defined as n 2 gini(T ) 1 p j j 1 where pj is the relative frequency of class j in T. If a data set T is split into two subsets T1 and T2 with sizes N1 and N2 respectively, the gini index of the split data contains examples from n classes, the gini index gini(T) is defined as The attribute provides the smallest ginisplit(T) is chosen to split the node (need to enumerate all possible splitting points for each attribute). gini split (T ) N 1 gini( ) N 2 gini( ) T1 T2 N N Extracting Classification Rules from Trees Represent the knowledge in the form of IF-THEN rules One rule is created for each path from the root to a leaf Each attribute-value pair along a path forms a conjunction The leaf node holds the class prediction Rules are easier for humans to understand IF age = “<=30” AND student = “no” THEN buys_computer = “no” IF age = “<=30” AND student = “yes” THEN buys_computer = “yes” IF age = “31…40” THEN buys_computer = “yes” IF age = “>40” AND credit_rating = “excellent” THEN buys_computer = “yes” IF age = “>40” AND credit_rating = “fair” THEN buys_computer = “no” age? <=30 student? 30..40 overcast yes >40 credit rating? no yes excellent fair no yes no yes Approaches to Determine the Final Tree Size Use all the data for training Use minimum description length (MDL) principle: but apply a statistical test (e.g., chi-square) to estimate whether expanding or pruning a node may improve the entire distribution halting growth of the tree when the encoding is minimized Use cross validation Instance-Based Methods Instance-based learning: Store training examples and delay the processing (“lazy evaluation”) until a new instance must be classified Typical approaches k-nearest neighbor approach Instances represented as points in a Euclidean space. Locally weighted regression Constructs local approximation Nearest Neighbor • • • • Given a distance metric Assign class to be the same as its nearest neighbor All training data is used during operation Multi-class decision framework The k-Nearest Neighbor Algorithm All instances correspond to points in the n-D space. The nearest neighbor are defined in terms of Euclidean distance. The target function could be discrete- or real- valued. For discrete-valued, the k-NN returns the most common value among the k training examples nearest to xq. Vonoroi diagram: the decision surface induced by 1-NN for a typical set of training examples. . _ _ _ + _ _ . + + xq _ + . . . . Discussion on the k-NN Algorithm The k-NN algorithm for continuous-valued target functions Calculate the mean values of the k nearest neighbors Distance-weighted nearest neighbor algorithm Weight the contribution of each of the k neighbors according to their distance to the query point xq giving greater weight to closer neighbors 1 w d ( xq , xi )2 Robust to noisy data by averaging k-nearest neighbors Curse of dimensionality: distance between neighbors could be dominated by irrelevant attributes. To overcome it, axes stretch or elimination of the least relevant attributes. The Problem of Clustering Given a set of points, with a notion of distance between points, group the points into some number of clusters, so that members of a cluster are in some sense as close to each other as possible. Example x x x x x x x x xx x x x x x x x x xx x x x x x x x xx x x x x x x x x x x x x The Curse of Dimensionality Many applications involve not 2, but 10 or 10,000 dimensions. High-dimensional spaces look different: almost all pairs of points are at about the same distance. Example: assume random points within a bounding box, e.g., values between 0 and 1 in each dimension. Example: Clustering Documents Represent a document by a vector (x1, x2,…, xk), where xi = 1 iff the i th word (in some order) appears in the document. It actually doesn’t matter if k is infinite; i.e., we don’t limit the set of words. Documents with similar sets of words may be about the same topic. Distance Measures Each clustering problem is based on some kind of “distance” between points. Two major classes of distance measure: 1. 2. Euclidean Non-Euclidean Euclidean Vs. Non-Euclidean A Euclidean space has some number of realvalued dimensions and “dense” points. There is a notion of “average” of two points. A Euclidean distance is based on the locations of points in such a space. A Non-Euclidean distance is based on properties of points, but not their “location” in a space. Axioms of a Distance Measure d is a distance measure if it is a function from pairs of points to real numbers such that: 1. 2. 3. 4. d(x,y) > 0. d(x,y) = 0 iff x = y. d(x,y) = d(y,x). d(x,y) < d(x,z) + d(z,y) (triangle inequality ). Some Euclidean Distances L2 norm : d(x,y) = square root of the sum of the squares of the differences between x and y in each dimension. The most common notion of “distance.” L1 norm : sum of the differences in each dimension. Manhattan distance = distance if you had to travel along coordinates only. Examples of Euclidean Distances y = (9,8) L2-norm: dist(x,y) = (42+32) =5 5 4 x = (5,5) 3 L1-norm: dist(x,y) = 4+3 = 7 Another Euclidean Distance L∞ norm : d(x,y) = the maximum of the differences between x and y in any dimension. Note: the maximum is the limit as n goes to ∞ of what you get by taking the n th power of the differences, summing and taking the n th root. Non-Euclidean Distances Jaccard distance for sets = 1 minus ratio of sizes of intersection and union. Cosine distance = angle between vectors from the origin to the points in question. Edit distance = number of inserts and deletes to change one string into another. And in the Non-Euclidean Case? The only “locations” we can talk about are the points themselves. I.e., there is no “average” of two points. Approach 1: clustroid = point “closest” to other points. Treat clustroid as if it were centroid, when computing intercluster distances. “Closest” Point? Possible meanings: 1. 2. 3. 4. Smallest maximum distance to the other points. Smallest average distance to other points. Smallest sum of squares of distances to other points. Etc., etc. Example clustroid 1 2 6 3 4 5 intercluster distance clustroid Other Approaches to Defining “Nearness” of Clusters Approach 2: intercluster distance = minimum of the distances between any two points, one from each cluster. Approach 3: Pick a notion of “cohesion” of clusters, e.g., maximum distance from the clustroid. Merge clusters whose union is most cohesive. Return to Euclidean Case Approaches 2 and 3 are also used sometimes in Euclidean clustering. Many other approaches as well, for both Euclidean and non. k –Means Algorithm(s) Assumes Euclidean space. Start by picking k, the number of clusters. Initialize clusters by picking one point per cluster. For instance, pick one point at random, then k -1 other points, each as far away as possible from the previous points. Populating Clusters 1. 2. 3. For each point, place it in the cluster whose current centroid it is nearest. After all points are assigned, fix the centroids of the k clusters. Optional: reassign all points to their closest centroid. Sometimes moves points between clusters. Example Reassigned points 2 4 x 6 7 5 x 3 1 8 Clusters after first round Getting k Right Try different k, looking at the change in the average distance to centroid, as k increases. Average falls rapidly until right k, then changes little. Average distance to centroid Best value of k k Example Too few; many long distances to centroid. x x x x x x x x xx x x x x x x x x xx x x x x x x x xx x x x x x x x x x x x x Example Just right; distances rather short. x x x x x x x x xx x x x x x x x x xx x x x x x x x xx x x x x x x x x x x x x Example Too many; little improvement in average x distance. x x x x x x x xx x x x x x x x x xx x x x x x x x xx x x x x x x x x x x x x Evaluating the Web PageRank Hubs and Authorities PageRank Intuition: solve the recursive equation: “a page is important if important pages link to it.” In high-falutin’ terms: importance = the principal eigenvector of the stochastic matrix of the Web. A few fixups needed. Stochastic Matrix of the Web Enumerate pages. Page i corresponds to row and column i. M [i,j ] = 1/n if page j links to n pages, including page i ; 0 if j does not link to i. M [i,j ] is the probability we’ll next be at page i if we are now at page j. Example Suppose page j links to 3 pages, including i j i 1/3 Random Walks on the Web Suppose v is a vector whose i th component is the probability that we are at page i at a certain time. If we follow a link from i at random, the probability distribution for the page we are then at is given by the vector M v. Random Walks --- (2) Starting from any vector v, the limit M (M (…M (M v ) …)) is the distribution of page visits during a random walk. Intuition: pages are important in proportion to how often a random walker would visit them. The math: limiting distribution = principal eigenvector of M = PageRank. Example: The Web in 1839 y a y 1/2 1/2 a 1/2 0 m 0 1/2 Yahoo Amazon M’soft m 0 1 0 Simulating a Random Walk Start with the vector v = [1,1,…,1] representing the idea that each Web page is given one unit of importance. Repeatedly apply the matrix M to v, allowing the importance to flow like a random walk. Limit exists, but about 50 iterations is sufficient to estimate final distribution. Example Equations v = M v : y = y /2 + a /2 a = y /2 + m m = a /2 y a = m 1 1 1 1 3/2 1/2 5/4 1 3/4 9/8 11/8 1/2 ... 6/5 6/5 3/5 Solving The Equations Because there are no constant terms, these 3 equations in 3 unknowns do not have a unique solution. Add in the fact that y +a +m = 3 to solve. In Web-sized examples, we cannot solve by Gaussian elimination; we need to use relaxation (= iterative solution). Real-World Problems Some pages are “dead ends” (have no links out). Such a page causes importance to leak out. Other (groups of) pages are spider traps (all outlinks are within the group). Eventually spider traps absorb all importance. Microsoft Becomes Dead End y a y 1/2 1/2 a 1/2 0 m 0 1/2 Yahoo Amazon M’soft m 0 0 0 Example Equations v = M v : y = y /2 + a /2 a = y /2 m = a /2 y a = m 1 1 1 1 1/2 1/2 3/4 1/2 1/4 5/8 3/8 1/4 ... 0 0 0 M’soft Becomes Spider Trap y a y 1/2 1/2 a 1/2 0 m 0 1/2 Yahoo Amazon M’soft m 0 0 1 Example Equations v = M v : y = y /2 + a /2 a = y /2 m = a /2 + m y a = m 1 1 1 1 1/2 3/2 3/4 1/2 7/4 5/8 3/8 2 ... 0 0 3 Google Solution to Traps, Etc. “Tax” each page a fixed percentage at each interation. Add the same constant to all pages. Models a random walk with a fixed probability of going to a random place next. Example: Previous with 20% Tax Equations v = 0.8(M v ) + 0.2: y = 0.8(y /2 + a/2) + 0.2 a = 0.8(y /2) + 0.2 m = 0.8(a /2 + m) + 0.2 y a = m 1 1 1 1.00 0.84 0.60 0.60 1.40 1.56 0.776 0.536 . . . 1.688 7/11 5/11 21/11 General Case In this example, because there are no deadends, the total importance remains at 3. In examples with dead-ends, some importance leaks out, but total remains finite. Solving the Equations Because there are constant terms, we can expect to solve small examples by Gaussian elimination. Web-sized examples still need to be solved by relaxation. Speeding Convergence Newton-like prediction of where components of the principal eigenvector are heading. Take advantage of locality in the Web. Each technique can reduce the number of iterations by 50%. Important --- PageRank takes time! Predicting Component Values Three consecutive values for the importance of a page suggests where the limit might be. 1.0 0.7 Guess for the next round 0.6 0.55 Exploiting Substructure Pages from particular domains, hosts, or paths, like stanford.edu or wwwdb.stanford.edu/~ullman tend to have higher density of links. Initialize PageRank using ranks within your local cluster, then ranking the clusters themselves. Strategy Compute local PageRanks (in parallel?). Use local weights to establish intercluster weights on edges. Compute PageRank on graph of clusters. Initial rank of a page is the product of its local rank and the rank of its cluster. “Clusters” are appropriately sized regions with common domain or lower-level detail. In Pictures 1.5 2.05 3.0 2.0 0.15 0.1 Local ranks Intercluster weights Ranks of clusters Initial eigenvector 0.05 Hubs and Authorities Mutually recursive definition: A hub links to many authorities; An authority is linked to by many hubs. Authorities turn out to be places where information can be found. Example: course home pages. Hubs tell where the authorities are. Example: CSD course-listing page. Transition Matrix A H&A uses a matrix A [i, j ] = 1 if page i links to page j, 0 if not. AT, the transpose of A, is similar to the PageRank matrix M, but AT has 1’s where M has fractions. Example Yahoo Amazon y a m y 1 1 1 A= a 1 0 1 m 0 1 0 M’soft Using Matrix A for H&A Powers of A and AT diverge in size of elements, so we need scale factors. Let h and a be vectors measuring the “hubbiness” and authority of each page. Equations: h = λAa; a = μAT h. Hubbiness = scaled sum of authorities of successor pages (out-links). Authority = scaled sum of hubbiness of predecessor pages (in-links). Consequences of Basic Equations From h = λAa; a = μAT h we can derive: = λμAAT h a = λμATA a h Compute h and a by iteration, assuming initially each page has one unit of hubbiness and one unit of authority. Pick an appropriate value of λμ. Example 111 A= 101 010 110 AT = 1 0 1 110 321 AAT= 2 2 0 101 212 ATA= 1 2 1 212 a(yahoo) = a(amazon) = a(m’soft) = 1 1 1 5 4 5 24 18 24 114 84 114 ... ... ... 1+3 2 1+3 h(yahoo) = h(amazon) = h(m’soft) = 1 1 1 6 4 2 28 20 8 132 96 36 ... ... ... 1.000 0.735 0.268 Solving the Equations Solution of even small examples is tricky, because the value of λμ is one of the unknowns. equation like y = λμ(3y +2a +m) lets us solve for λμ in terms of y, a, m ; equate each expression for λμ. Each As for PageRank, we need to solve big examples by relaxation. Details for h --- (1) y = λμ(3y +2a +m) a = λμ(2y +2a ) m = λμ(y +m) Solve for λμ: λμ = y /(3y +2a +m) = a / (2y +2a ) = m / (y +m) Details for h --- (2) Assume y = 1. λμ = 1/(3 +2a +m) = a / (2 +2a ) = m / (1+m) Cross-multiply second and third: a +am = 2m +2am or a = 2m /(1-m ) Cross multiply first and third: 1+m = 3m + 2am +m 2 or a =(1-2m -m 2)/2m Details for h --- (3) Equate formulas for a : a = 2m /(1-m ) = (1-2m -m 2)/2m Cross-multiply: 1 - 2m - m 2 - m + 2m 2 + m 3 = 4m 2 Solve for m : m = .268 Solve for a : a = 2m /(1-m ) = .735 Solving H&A in Practice Iterate as for PageRank; don’t try to solve equations. But keep components within bounds. Example: scale to keep the largest component of the vector at 1. Trick: start with h = [1,1,…,1]; multiply by AT to get first a; scale, then multiply by A to get next h,… H&A Versus PageRank If you talk to someone from IBM, they will tell you “IBM invented PageRank.” What they mean is that H&A was invented by Jon Kleinberg when he was at IBM. But these are not the same. H&A has been used, e.g., to analyze important research papers; it does not appear to be a substitute for PageRank.