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.