Home

Endbericht Personalisierung internetbasierter

image

Contents

1. Abbildung 4 2 Sequenzdiagramm 37 4 Objektorientierte Analyse 38 5 Objektorientierter Entwurf Dieser Entwurf beschreibt den Aufbau eines Softwaresystems zum Datenaustausch zwischen zwei Datenbankschemata das die in der Anforderungsdefinition gestellten Bedingungen erf llt Er enth lt die Architektur des Gesamtsystems die aus einer Zwei Schichten Architek tur abgeleitet ist 5 1 Architektur Die Zwei Schichten Architektur des Gesamtsystems ist in eine Anwen dungs und eine Datenbankschicht unterteilt Die Datenbankschicht umfasst die bereits implementierten Datenban ken der zwei H ndler des ersten Teilprojektes und die des Kartenan bieters sowie die von der Integrationsgruppe erstellten Klassen die f r eine Verbindung mit der Datenbank zust ndig sind Die Anwen dungsschicht umfasst alle weiteren erstellten Klassen 5 2 Designentscheidungen W hrend der Entwicklung des Teilprojekts Integration wurden meh rere nderungen am Datenbankschema des Kartenanbieters und an den Klassen der Integration vollzogen die auf grundlegenden Desi gnentscheidungen beruhen Dazu geh rt der Verzicht auf die Imple mentierung einer Zwischendatenbank siehe Kapitel 4 1 1 aus Kom plexit ts und Zeitgr nden sowie das Einf gen von HaendlerIDs in mehreren Entit ten um eine Zuordnung der Daten zu einzelnen H nd lern zu erm glichen Das Einf gen der Attribute Status Aktualisie rungsdatum und Fehlerzeitpunkt in die Entit t
2. 6 3 66666 3 Tabelle 16 22 Ergebnis 1 Clustering Ergebnis des ersten Clusterings Bei der Betrachtung des ersten Clusterings vgl Tabelle 16 22 sind Cluster gefunden worden die eine sinnvolle Interpretation nicht zulassen Es sind nicht die bei den Parametereinstellungen eingegebenen acht Cluster identifiziert worden Bei den sieben gefundenen Clustern sind dabei zudem f nf Kundengruppen identifiziert worden die aus dem Einzugsgebiet des Ortes mit der Postleitzahl 66666 kommen Aufgrund der nicht zufrie denstellenden Ergebnisse des ersten Clusterings sind daher weitere Clusterings mit anderen Parametereinstellungen durchgef hrt wor den 2 Clustering Aufgrund der nicht zufriedenstellenden Ergebnisse des ersten Clusterings sind die in Tabelle 16 23 abgebildeten Parameter einstellungen zur Anwendung gekommen Ergebnis des zweiten Clusterings Die in Tabelle 16 24 dargestellten Ergebnisse geben die existierenden Kundengruppen in den synthe tisch erstellten Testdaten bez glich der gew nschten Interpretierbar keit besser wieder als die Cluster der ersten Clusterings Es sind acht 172 16 1 Clusteranalyse nach Kunden SQL Query select KundenID Geburtsdatum PLZ from Test_Kunden Clusteralgorithmus SimpleKMeans Seed Seed e Anzahl vorgegebener Cluster a Tabelle 16 23 Einstellungen 2 Clustering o ou e 3 D msa 2 EEST a Tabelle 16 24 Ergebnis 2 Clustering Cluster identifiziert worden wob
3. Tabelle 16 5 Einstellungen Clustering Produkte Preise Thal Er o Produkt 2611 7 106 057 Die Firma 25 246 Produkt ema O 3 Produkt 2607 706154 4 Produkt 2000 Is 4 Tabelle 16 6 Ergebnis Clustering Produkte Preise 16 1 3 Clustering auf den urspr nglichen Testdaten Nachdem die Funktionsweisen der Clusteralgorithmen unter WEKA folglich bekannt gewesen sind ist damit begonnen worden Cluster innerhalb der urspr nglich angelegten Testdaten von H ndler 1 zu finden Aus oben bereits aufgef hrten Gr nden ist dabei ausschlie lich der k Means Algorithmus zur Anwendung gekommen Clustering nach Produkten und Preisen Das erste Ziel ist es gewesen Cluster zu finden in denen die Produkte in unterschiedliche Preiskategorien eingeordnet werden Ein Cluste ring mit den aus Tabelle 16 5 ablesbaren Werten hat dabei jedoch wenig aussagekr ftige Ergebnisse geliefert vgl Tabelle 16 6 Eine n here Betrachtung der Daten des Attributes Name der Entit t Pro dukt hat schlie lich ergeben dass die Namensdaten f r die Produkte durchnummeriert sind Sie sind daher nicht f r ein Clustering geeig net da innerhalb der Produktnamen keine hnlichkeiten auftreten 156 16 1 Clusteranalyse nach Kunden Clustering nach Namen und Geburtsdatum Im Folgenden ist es das Ziel gewesen Cluster aufgrund des Namens und des Geburtsdatums der Kunden zu finden Es sollten auf diese Weise Kundengruppen identifiziert werden die
4. beliebigen Datenguelle e das Anwenden eines der in der Anforderungsdefinition der Ana lyse genannten Algorithmen Clustering und temporale Asso ziationsanalyse e sowie das Speichern der Analyseergebnisse in einer ebenfalls m glichst beliebigen Datensenke durch Metadaten steuerbar zu machen Aufgrund der begrenzten Zeit die der Projektgruppe f r die Imple mentierung f r m gliche Datenquellen senken und Algorithmen zur Verf gung steht ist eine weitere wichtige Anforderung die leichte Er weiterbarkeit So soll es m glich sein den Funktionsumfang des Fra meworks zu erweitern ohne daf r das Framework selbst ver ndern zu m ssen 14 2 Architektur Das Grundger st des Frameworks besteht aus vier Komponenten 1 Zugriff auf Datenquellen 108 Der Zugriff auf Datenquellen wird ber ein Iterator Interface namens ConfigurableSourcelterator durchgef hrt Jede Imple mentation dieses Interfaces l sst sich ber spezifische Parame ter steuern Steuerung des anzuwendenden Algorithmus Implementationen des Interfaces AlgorithmController regeln die korrekte Ansteuerung eines zu verwendenden Algorithmus Ausgabe in eine Datensenke Die Ausgabe der erzeugten Analysedaten geschieht ber das Interface Result Writer Steuerung der obigen Komponenten Das Zusammenspiel der einzelnen Komponenten wird durch die Klasse AlgorithmRunner gesteuert Diese verarbeitet eine Rei he von Parametern und entsch
5. 109 14 2 Ausf hrung komplexer Analysen 2 2 2 2 110 14 3 Klassendiagramm e 113 14 4 Beispielkonfigurationsdatei properties tzt 127 14 5 Ausgabe des Beispiellaufes 128 14 6 Konfigurationsdatei f r eine komplexe Analyse 129 14 7 Starten einer komplexen Analyse 130 15 1 Clustering nach Kunden i V m Assoziationsanalyse 149 15 2 Clustering nach Kunden und gekauften Produkten i V m Assoziationsanalyse 2 22 2 22m nn 150 17 1 Nicht temporale Produktbundles bei Interneth ndler Amazon Ama03 2317 2 2 ea 200 317 Abbildungsverzeichnis 318 19 1 Meilensteine Personalisierung 0 0 211 20 1 Aufbau des Online Shops 219 20 2 Darstellung von header Aen 220 20 3 Darstellung von navigation jsp ohne angemeldeten Be EE ach 45 a TE aa 18 ee Ananas e e Ae ht 221 20 4 Darstellung von navigation jsp mit angemeldetem Be HULZET ac nr a ne ln en e a ee D 2 222 20 5 Darstellung von root ien 223 20 6 Darstellung von catalog jsp gt 222 220 224 20 7 Darstellung von product jsp aaa 225 20 8 Darstellung von basket isp 0 226 20 9 Darstellung von user jsp 2222 227 20 10Darstellung von footer jsp 228 20 11Darstellung von footer2 jsPp 229 21 1 bersicht Gesamtszenario 237 21 2 Meilensteine Gesamtprojekt 239 Tabellenverzeichnis 2 1 Auswahl Analyseverfahren 0 16 1 Ein
6. 4 Objektorientierte Analyse DBConnection ImportinitData con Connection argetD8 DBConnecton It Statement Lige ImportintData targetDBUserName Sving targetDBUserPasswd Sting lt lt ereate gt gt DBConnection db_name Sting db_user Sring db_passwd String IimportntDatao void Loader ki lt lt ereate gt gt DBConnoctionldb name Sting db driver Swing ab user Sting db_passwd Sting ES Wee void Leger Loader oxoeuteQuery sqlauery Sting ResultSet eara Imainaras Stinam void oxoeuteupdatofsgtStatement String boolean Ge reet souree2D8 DBConnection eommit void Itartransactiond void 8 Rene rotbacko void pos Rennes Liege CieanDoubiesttargetDBUserName Sting targelDBUserPassad String eisanDoubieDatan void ImportHaendiert soureeDB DBConnecton lwrteTargetDB DBConnection roadTargetDB DBConnection HAENDLER 1D int Ihaondier int frs Resutset Ieurentrime Tmestamp astupate Time Timestamp Leger ImportHaendiert sourceDBUserName String source DBUserPasswd Sring targetDBUserName Sting targetDBUserPasswd Sting lt lt create gt gt ImportHaendiert sourceDBHost String sourceDBDriver String sourceDBUserName String sourceDBUserPasswd Sting targetDBHost String targetDBDriver Sting targetDBUserName String targetDBUserPasswd String ImportD80 boolean Importkundeg void Importkundenameo v
7. Abbildung 12 1 Klassendiagramm 96 12 2 Implementierungsdetails und das Speichern der Daten im Swap Letzteres wurde implemen tiert damit bei mehrfachen Iterationen nicht immer wieder auf die eigentliche Datenquelle zugegriffen werden muss Gerade bei einer Datenbank als Quelle und einem eher komplexen Statement kann dies einen deutlichen Performanz Verlust bedeuten Im Swap werden die Daten als serialisierte Objekte gespeichert Um selber Zugriff auf die Metadaten der Instanzen zu haben besitzt der InstanceCache ei ne Referenz auf die bergeordnete Instances Diese beiden Klassen sind also doppelt verlinkt Der Sourcelterator stellt die Anbindung zur Datenquelle dar Sein In terface ist als sogenannter Forward Iterator implementiert Ein For ward Iterator stellt eine API zur Verf gung mit der auf Daten se quentiell zugegriffen werden kann Die API besteht aus den zwei Funktionen hasNext zum berpr fen ob noch ein weiteres Ele ment im Iterator existiert und nert um das n chste Element an zufordern Der Zugriff erfolgt somit rein sequentiell und eine erneute Anforderung eines Elementes wird alleine vom InstanceCache bear beitet 12 2 Implementierungsdetails 12 2 1 nderungen an der Klasse Instances Intern bestehen die nderungen daraus dass Datenzugriffsmethoden als Wrapper f r den Cache dienen und alle Aufrufe direkt weiterlei ten Das Original Interface ist erhalten geblieben allerdings sind Me thoden
8. WG1 Normal Distribution Mean 14 1229 StdDev WG2 Normal Distribution Mean 12 2097 StdDev WG3 Normal Distribution Mean 13 8307 StdDev WG4 Normal Distribution Mean 17 4056 StdDev WG5 Normal Distribution Mean 12 9473 StdDev WG6 Normal Distribution Mean 11 5777 StdDev WG7 Normal Distribution Mean 14 304 StdDev 2 968 Cluster 2 Prior probability 0 3171 Attribute 1 8761 Attribute Attribute 1 68 Attribute 1 8172 Attribute 1 9567 Attribute 1 7567 Attribute 1 8615 WG1 Normal Distribution Mean 14 4861 StdDev WG2 Normal Distribution Mean 12 899 StdDev 1 9388 WG3 Normal Distribution Mean 13 8354 StdDev WG4 Normal Distribution Mean 14 9046 StdDev WG5 Normal Distribution Mean 13 1629 StdDev WG6 Normal Distribution Mean 14 3372 StdDev WG7 Normal Distribution Mean 12 8178 StdDev Cluster 3 Prior probability 0 3227 Attribute 304 WG1 Normal Distribution Mean 0 StdDev 0 Personalisierung Attribute WG2 Normal Distribution Mean 0 StdDev 0 Attribute WG3 Normal Distribution Mean 0 StdDev 0 Attribute WG4 Normal Distribution Mean 0 StdDev 0 Attribute WG5 Normal Distribution Mean 0 StdDev 0 Attribute WG6 Normal Distribution Mean 0 StdDev 0 Attribute WG7 Normal Distribution Mean 0 StdDev 0 Cluster 4 Prior probability 0 1883 Attribute WG1 Normal Distribu
9. iw 319 165 0 197 66666 166 0 mg 23499 e7 f 0 mg x 23123 is 0 1945 66222 169 170 171 172 173 174 176 0 1942 66789 im 0 mi 66666 rs 0 im 66666 LI 0 mu 23345 io 0 1939 319 it 0 mg 23678 182 0 1938 66999 ass 0 mi 39 Tabelle 16 13 synthetische Testdaten 165 16 Anwendung Nicht temporale Analysen SQL Query select KundenID Geburtsdatum Geschlecht from Test_Kunden Clusteralgorithmus SimpleKMeans Anzahl vorgegebener Cluster Tabelle 16 14 Einstellungen 1 Clustering 0 man on ES fs s pomno s Tabelle 16 15 Ergebnis 1 Clustering Da die bisherigen Erfahrungen mit dem k Means Clusteralgorithmus gezeigt haben dass die Parametereinstellung f r die Anzahl der aus zugebenden Cluster etwas h her zu w hlen ist als die Zahl der zu erwarteten Cluster sind die Einstellungen aus Tabelle 16 14 zur An wendung gekommen Ergebnis der ersten Clusterings Die Ergebnisse aus Tabelle 16 15 stellen die Verteilung der Kundendaten nicht entsprechend der oben beschriebenen Interpretierbarkeit dar So weicht beispielsweise die Jahreszahl aus Cluster 6 sehr stark von dem gefundenen Jahres schwerpunkt ab der in der N he von 1978 liegen sollte H ufung von Kunden 15 Eintr ge mit dem Geburtsjahr 1978 Bei der Un tersuchung der Testdaten ist zudem kein Schwerpunkt an m nnlichen Kunden gefunden worden die um das Jahr 1971 gebore
10. 0 2 270 27 3 198 20 4 324 32 Scheme weka clusterers SimpleKMeans N 5 S 6 Cluster centroids Cluster 0 18 576923076923077 12 451923076923077 13 423076923076923 12 971153846153847 12 73076923076923 13 096153846153847 13 375 Cluster 1 0 0 0 0 0 0 0 0 0 3076923076923077 0 0 0 0 Cluster 2 11 61875 14 175 14 1375 13 1875 13 83125 14 975 14 35 Cluster 3 15 248979591836735 12 979591836734693 13 775510204081632 13 538775510204081 13 151020408163266 14 80408163265306 12 983673469387755 Cluster 4 13 870588235294118 12 052941176470588 13 064705882352941 17 711764705882352 13 147058823529411 13 464705882352941 13 135294117647058 0 104 10 1 325 32 2 160 16 3 245 24 4 170 17 Scheme weka clusterers SimpleKMeans N 5 S 8 Cluster centroids Cluster 0 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 2 12 507109004739336 14 113744075829384 14 071090047393366 12 739336492890995 13 739336492890995 15 350710900473933 13 85781990521327 Cluster 3 13 6010101010101 12 262626262626263 13 242424242424242 17 41919191919192 13 080808080808081 13 6010101010101 13 166666666666666 Cluster 4 16 862962962962964 12 540740740740741 13 566666666666666 264 Personalisierung 13 518518518518519 12 981481481481481 13 85925925925926 13 222222222222221 01 0 1324 32 2 211 21 3 198 20 4 270 27 Scheme weka clusterers SimpleKMeans N 5 S 10 Cluster centroids Cluster 0 11 170
11. 13 666666666666666 16 666666666666668 17 444444444444443 14 444444444444445 Cluster 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 43 12 733333333333333 12 8 14 533333333333333 15 666666666666666 12 2 12 866666666666667 15 4 Cluster 44 15 214285714285714 11 928571428571429 15 642857142857142 15 285714285714286 13 0 13 785714285714286 11 571428571428571 Cluster 45 15 5 9 5 12 333333333333334 21 5 12 666666666666666 11 0 14 166666666666666 Cluster 46 14 25 10 5625 12 375 13 3125 15 25 15 5625 15 0625 291 Personalisierung Cluster 47 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 53 13 11111111111111 16 333333333333332 10 777777777777779 15 0 12 333333333333334 14 777777777777779 13 88888888888889 Cluster 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 55 12 0 18 0 12 857142857142858 12 857142857142858 12 285714285714286 12 857142857142858 15 571428571428571 Cluster 56 12 727272727272727 13 090909090909092 9 363636363636363 12 090909090909092 15 272727272727273 19 454545454545453 14 090909090909092 Cluster 57 10 4 11 4 10 8 23 8 12 2 11 8 15 8 Cluster 58 15 333333333333334 14 75 13 25 17 333333333333332 13 666666666666666 12 083333333333334 9 916666666666666 Cluster 59 15 857142857142858 12 761904761904763 13 523809523809524 12 476190476190476 14 285714285714286
12. 211 19 2 Meilensteine ne ena 211 19 3 Hazit 2 200 405 ha e EE 212 V Ergebnisse und Schlussbetrachtung 215 20 Shop 217 20 1 Anforderungen 217 20 2 Implementierung 2 2 2 En 217 20 2 1 Benutzer Management 218 20 2 2 Darstellung der Seiten 218 20 3 Anwendungsfall 229 20 4 Personalisierung 230 20 4 1 Top5 der meistverkauften Produkte einer Nut ZETSTUDPE za vor N Ee EEN re RE 231 20 4 2 Einbinden von Assoziationsregeln 231 21 Soll Ist Vergleich vom Gesamtprojekt 233 21 1 Einleitung iaca 204 2 00 02 08 en e 233 21 2 Integration 15 Ae Ee rt 234 21 3 Analyse 822 3 ala a nee t a 234 21 4 5609P e geegent Sg ee ee 235 Inhaltsverzeichnis 21 5 Nichtfunktionale Anforderungen 235 21 6 Benutzerschnittstellen und Fehlerverhalten 236 21 7 Dokumentationsanforderungen 0 236 21 8 Zusammenfassung 0 237 21 9 Meilensteine 2 2 CC nn 238 21 9 1 Fertigstellung Integration e 238 21 9 2 Fertigstellung Analyse 2 2 222 220 239 21 9 3 Fertigstellung Zwischenbericht 239 21 9 4 PG freie Viet 240 21 9 5 Personalisierungskonzept 240 21 9 6 Framework Metadaten 240 21 9 7 Anforderungsdefinition Shop 240 21 9 8 Fertigstellung Shop 0 241 21 9 9 Fertigstellung Endbericht 0 241 21 10Meilensteinfazit 241 22 Zusammenfassung und Ausblick 243 22 1 Ges
13. 7 19 68 7 Scheme weka clusterers SimpleKMeans N 100 S 1 Cluster centroids Cluster 0 12 75 13 833333333333334 14 291666666666666 13 916666666666666 12 875 16 166666666666668 12 375 Cluster 1 13 2 15 066666666666666 12 066666666666666 15 333333333333334 12 8 13 466666666666667 14 333333333333334 Cluster 2 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 5 16 928571428571427 11 357142857142858 14 071428571428571 13 5 13 142857142857142 13 857142857142858 13 571428571428571 Cluster 6 12 666666666666666 12 555555555555555 9 222222222222221 12 555555555555555 14 222222222222221 21 22222222222222 280 Personalisierung 13 666666666666666 Cluster 7 19 666666666666668 8 333333333333334 14 0 15 333333333333334 11 0 17 666666666666668 11 333333333333334 Cluster 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 10 17 88888888888889 15 055555555555555 12 88888888888889 13 055555555555555 13 166666666666666 12 444444444444445 11 833333333333334 Cluster 11 16 866666666666667 12 333333333333334 11 133333333333333 15 2 12 2 13 933333333333334 14 866666666666667 Cluster 12 16 666666666666668 12 0 14 0 8 333333333333334 18 0 13 666666666666666 14 0 Cluster 13 10 8125 15 0625 16 125 12 875 13 6875 14 75 13 1875 Cluster 14 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 15 14 333333333333334 10 666666666666666 11 583333333333334 13 416666666666666 16
14. Ausgangsdaten Wenn die Analyse beispielsweise auf der Daten bank des H ndler 1 basieren soll dann sind die Ausgangsdaten in der Relation Produkt in welcher der Verkaufspreis zu finden ist und in der Relation Produkt_Kategorie in der die Warengruppen des je weiligen Produktes stehen ersichtlich Analyseverfahren Clustering SimpleKMeans cobweb EM XMeans Interpretation Durch das Clustering nach Produktpreis k nnen ge kaufte bzw bestellte Produkte in Preisklassen gruppiert werden Das Clustering nach Produktkategorie i V m dem Preis bewirkt eine Ein teilung der Produktkategorien in verschiedene Preisniveaus z B in g nstig und teuer 145 15 Konzept Nicht temporale Personalisierung Beispiel e g nstige und teure Produkte Clustering nach Produktpreis e g nstige und teure S igkeiten Clustering nach Produktkate gorie i V m dem Preis Anwendung Wenn sich ein Kunde f r ein Produkt oder eine Pro duktkategorie eines bestimmten Preisniveaus interessiert k nnten ihm durch die Ergebnisse dieser Analyse Produkte der entsprechenden Preiskategorie angeboten werden 15 3 2 Clustering nach Produktpreis oder nach Produktkategorie in Verbindung mit dem Preis wiederum in Verbindung mit Clustering nach Kunden und gekauften Produkten Durch das Clustering nach Produktpreis oder nach Produktkategorie i V m dem Preis w re es m glich Produkte in bestimmte Preis bzw Produktkategorien einzuteilen Diese Kategorien
15. Cache 100 13 Technisches Handbuch Algorithmus zum Auffinden kalendarischer Muster Im Folgenden wird die technische Realisierung des im Entwurf erw hn ten Algorithmus zum Auffinden kalendarischer Muster beschrieben Der Algorithmus ist eine Umsetzung der in dem Artikel Discovering Calendar based Temporal Association Rules LNWJO1 beschriebe nen Konzepte F r eine Beschreibung des Alogrithmus und seiner Einsatzm glichkeiten siehe Abschnitt 17 1 Der Algortihmus benutzt den Temporal Apriori Ansatz um die Aus f hrungsgeschwindigkeit zu erh hen und bietet weiterhin die Funk tionalit t des Precise und des Fuzzy Matches Die Klasse Tempo ralAssociationRules f hrt die Berechnungen durch und benutzt zur Datenverwaltung die Klassen Basket und SetOfBaskets 13 1 Funktionsweise des Algorithmus Der Algorithmus zum Auffinden kalendarischer Muster im Folgenden nur noch der Algorithmus genannt soll aus einer Menge von Daten welche alle mit einem Zeitpunkt versehen sind Assoziationsregeln finden die in einem vorgegebenen Beobachtungsintervall f r elemen tare Zeitintervalle gelten Dabei muss f r elementare Zeitintervalle die Anforderung gelten dass sie kompatibel zu den Zeitpunkten der Daten sind das bedeutet dass insbesondere die L nge der Zeitpunkte kleiner als die elementaren Zeitintervalle sein muss Der Algorithmus arbeitet auf kalendarischen Mustern welche die Form lt Jahr Monat Tag gt haben Damit hat ein ele
16. Cluster 3 Attribute Attribute Attribute Attribute Attribute Attribute Attribute Cluster 4 Attribute 2 3973 Attribute 3 3158 Attribute 2 0101 Attribute Attribute 1 2565 Attribute 1 6342 Attribute 2 4327 Cluster 5 Attribute Attribute Attribute Attribute Attribute Attribute Attribute 312 WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution Prior probability 0 001 WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution Prior probability 0 0385 WG1 Normal Distribution Mean WG2 Normal Distribution Mean WG3 Normal Distribution Mean Mean 0 StdDev 0 001 Mean 0 StdDev 0 001 Mean 0 StdDev 0 001 Mean 0 StdDev 0 001 Mean 0 StdDev 0 001 Mean 0 StdDev 0 001 Mean 0 StdDev 0 001 Mean 13 StdDev 0 001 Mean 11 StdDev 0 001 Mean 8 StdDev 0 001 Mean 13 StdDev 0 001 Mean 10 StdDev 0 001 Mean 27 StdDev 0 001 Mean 15 StdDev 0 001 11 9821 StdDev 12 7893 StdDev 12 5828 StdDev WG4 Normal Distribution Mean 18 875 StdDev 2 9858 WG5 Normal Distribution Mean WG6 Normal Distribution Mean WG7 Normal Distribution Mean Pr
17. DVD per E Mail weiter FSK Freigegeben ab 16 Jahren x Abbildung 17 1 Nicht temporale Produktbundles bei Interneth nd ler Amazon Ama03 Verfahren ein beliebiger Clusterer verwendet werden Zur Vorgehensweise Es werden alle Artikel und der Zeitpunkt des Einkaufs geclustert Als Ergebnis werden Cluster erwartet die Pro dukte gruppieren die im selben Zeitraum gekauft werden Die Gr e des Zeitraums wird dabei durch den Clusterer bestimmt Das Ziel dieser Analyse ist die Entdeckung saisonaler Produkte also Produk te die vorwiegend in einem bestimmten Zeitraum verkauft werden Die gewonnenen Cluster k nnen relativ einfach f r die Personalisie rung im Online Shop verwendet werden Werden die Cluster beispiels weise so erstellt dass sie einen Bereich von mehreren Stunden umfas sen z B Cluster 1 13 16 Uhr k nnen im Online Shop w hrend dieser Zeit Produkte vorgeschlagen werden die zu dieser Zeit vorwie gend eingekauft werden Die Qualit t der Personalisierung l sst sich ggf erh hen indem das Clustering auf Produkte mit einer gewissen 200 17 2 Temporales Clustering von Warenkorbdaten H ufigkeit beschr nkt wird 17 2 1 Ausgangsdaten In den Datenbanken des Kartenanbieters und des Online H ndlers liegen Warenkorbdaten vor Jeder Warenkorb besteht aus einer belie bigen Anzahl von Artikeln sowie den temporalen Attributen die das Transaktionsdatum des gesamten Warenkorbs bestimmen Mit Hilfe des G ltigkeitsz
18. Die Wartbarkeit des Systems wird vor allem durch die sehr ausf hrliche Dokumentation der Implemen tierungen in Javadoc realisiert Der letzte Punkt die Sicherheit be schr nkt sich wie in der Anforderungsdefinition beschrieben auf die Vergabe von Nutzerrechten in der Datenbank 21 6 Benutzerschnittstellen und Fehlerverhalten Wie im vorherigen Abschnitt erw hnt sind die Benutzerschnittstel len m glichst einfach gestaltet worden Die Integration ist hierbei ber Parameter zu steuern die Analysen ber das Framework wel ches Metadaten verwendet Details der genauen Ausgestaltung der Schnittstellen sind den Ausf hrungen der Integration und der Analy se zu entnehmen Das Fehlerverhalten ist bereits unter den nichtfunk tionalen Anforderungen erw hnt worden Die Behandlung aller auf getretenen und erdenklichen Fehler dient der Stabilit t des Systems und sorgt somit auch f r eine Benutzerfreundlichkeit da dieser End benutzer nicht programmiertechnische Fehlermeldungen selbst inter pretieren muss 21 7 Dokumentationsanforderungen Der Anforderung entprechend ist f r alle Schritte der Systementwick lung als auch der durchgef hrten Analysen eine Dokumentation ge schrieben worden Die Dokumentation des vollst ndigen Sourceco des erfolgte wie beabsichtigt in Form von Javadoc Die angestrebte Unterteilung in ein Benutzer und ein Developer Handbuch ist nicht realisiert worden stattdessen sind diese Bereiche in die einzelnen
19. Die bereits in WEKA vorhandenen Algorithmen greifen auf die Daten per Index zu Sie erhalten dazu eine Referenz auf die Instances Klasse und k nnen so auf jedes beliebige Element zugreifen Temporale Daten k nnen in WEKA momentan nicht explizit gespei chert werden Eine Speicherung der temporalen Informationen ber Standardattribute w re m glich jedoch ist es i d R erstrebenswert zwischen temporalen Attributen und normalen Attributen zu un terscheiden Da der Algorithmus zum Auffinden kalendarischer Muster vorher nicht vorhanden war musste auf keine Konventionen von WEKA R cksicht genommen werden Der Zugriff auf den Algorithmus soll aber weitestgehend hnlich der WEKA Algorithmen stattfinden TemporalAssociationRules ist eine eigenst ndige Klasse welche auf die angepassten Klassen Instance Instances und Attribute zur ck greift 11 1 2 Design der WEKA Erweiterungen Zentral f r die Erweiterung ist die temporale Datenhaltung Dazu wurde eine neue Klasse entwickelt die temporale Informationen spei chern kann Die Klasse erbt von der vorhandenen Klasse Instance und wurde Temporallnstance genannt Die temporalen Informatio nen werden als zus tzliche Felder vom Typ Timestamp gespeichert Durch die Vererbung k nnen Instanzen vom Typ Temporallnstance auch in nicht temporalen Algorithmen verwendet werden Bei dem Entwurf des Caches wurde eine Neuimplementierung der In stances Klasse gew hlt Die aktuelle API wird dabei k
20. KARTENSYSTEN KTEXTATTRIBUTID FK KARTENSYSTEMID FK V FK TZA_KARTENSYSTEM FK KUNDENATTRIBUTID FK HAENDLERID FK KARTENSYSTEM KARTENSYSTEMID TZA KARTENSYSTEM Abbildung 5 2 Subject Area Kunden Der Verzicht auf eine grafische Benutzungsoberfl che erfolgte aus der berlegung dass die Interaktion mit dem Benutzer Aufgabe einer an deren Komponente des gesamten Softwaresystems der Projektgruppe sein wird Eine weitere GUI w rde jedoch eventuell mit dieser Benut zerschnittstelle interferieren Stattdessen ist das Programm aus einer Shell heraus mit Parameter bergabe aufrufbar Daf r wurden den beiden H ndlern IDs zugeordnet die dem Programm beim Aufruf bergeben werden so dass der Import entweder auf H ndler 1 oder H ndler 2 ausgerichtet ist Das Programm wird von der Kommando zeile aus folgenderma en aufgerufen java Loader parameter Dem Kartenanbieter ist ebenfalls eine ID zugeordnet die nach glei chem Muster funktioniert auch wenn nur ein Kartenanbieter vor handen ist Abschlie end wurden um eine bessere bersicht und Wartbarkeit der Klassen Import Haendler1 und ImportHaendler2 zu erreichen die monolithischen mportDB Methoden in eine Vielzahl kleinerer Methoden aufgespalten Diese sind jeweils auf den Import der Daten einzelner Entit ten eines Datenbankschemas ausgelegt Da es sich bei der Integration ohnehin um ein relativ einfaches Sy stem handelt wurde auf die Verwendung von Interfaces ver
21. Konzept liefert eine inhaltlich beschr nkte Sicht auf ein T Data Warehouse Aus Datenbanksicht handelt es sich beim Data Mart um eine Verteilung eines Data Warehouse Datenbestandes Entweder sind die Data Marts abh ngig als Extrakte aus dem inte grierten Datenbestand der Basisdatenbank ohne Bereinigung Nor mierung zu verstehen oder als unabh ngige Data Marts als isolierte Sichten auf die Quellsysteme unter Nichtbeachtung der T Basisdaten bank Data Mining bezeichnet eine Technik zur automatischen Ent deckung neuer nicht trivialer und voraussichtlich n tzlicher Abh n gigkeiten innerhalb gro er oder komplexer Datenbest nde wird dabei als einer von mehreren Schritten im T KDD Prozess verstanden Data Preparation Datenvorverarbeitung 330 Glossar Data reduction Datenreduktion Data smoothing Datengl ttung Data transformation T Datentransformation Data Understanding ist die zweite Phase im T CRISP DM sie beginnt mit der Sammlung und der Besch ftigung mit den notwendi gen Daten um etwaige Probleme in Umfang oder Gualit t herauszu filtern Weiterhin sind in dieser Phase interessante Mengen zu finden um Hypothesen f r versteckte Informationen zu formulieren Data Warehouse DW Alle f r Analysezwecke relevanten Da ten werden in einem gro en Informationssystem dem gespeichert damit diese dann per Data Mining oder mit anderen Analysemetho den und tools z B T OLAP analysiert aufbereitet un
22. Mean 13 2869 StdDev WG6 Normal Distribution Mean 14 2351 StdDev WG7 Normal Distribution Mean 13 3759 StdDev Mean 0 StdDev 0 Mean 0 StdDev 0 Mean 0 StdDev 0 Mean 0 StdDev 0 Mean 0 StdDev 0 Mean 0 StdDev 0 Mean 0 StdDev 0 Mean 0 StdDev 0 Mean 29 StdDev 21 Mean 29 StdDev 21 Mean 0 StdDev 0 Mean 0 StdDev 0 Mean 20 5 StdDev 20 5 Mean 20 5 StdDev 20 5 WG5 Normal Distribution Mean 56 4028 StdDev Attribute WG6 Normal Distribution Mean 4 9538 StdDev 5 0007 Attribute WG7 Normal Distribution Mean 8 918 StdDev 8 9995 0 676 67 1 324 32 2 2 0 3 2 0 Log likelihood 17 45413 Scheme weka clusterers EM I 30 N 1 S 1 M 1 0E 6 Number of clusters selected by cross validation 7 Cluster 0 Prior probability 0 303 Personalisierung Attribute Attribute Attribute Attribute Attribute Attribute Attribute WG1 Normal Distribution Mean 0 StdDev 0 WG2 Normal Distribution Mean 0 StdDev 0 WG3 Normal Distribution Mean 0 StdDev 0 WG4 Normal Distribution Mean 0 StdDev 0 WG5 Normal Distribution Mean 0 StdDev 0 WG6 Normal Distribution Mean 0 StdDev 0 WG7 Normal Distribution Mean 0 StdDev 0 Cluster 1 Prior probability 0 0733 Attribute 3 2596 Attribute 3 1243 Attribute 2 9102 Attribute 3 4673 Attribute 1 792 Attribute 1 6909 Attribute
23. Personalisierung 11 666666666666666 16 333333333333332 10 0 Cluster 27 11 142857142857142 9 428571428571429 12 428571428571429 18 857142857142858 13 714285714285714 14 285714285714286 16 857142857142858 Cluster 28 18 714285714285715 11 0 17 285714285714285 13 428571428571429 12 571428571428571 11 714285714285714 12 428571428571429 Cluster 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 30 13 0 12 166666666666666 13 833333333333334 20 666666666666668 13 166666666666666 11 5 11 833333333333334 Cluster 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 32 13 333333333333334 11 333333333333334 8 333333333333334 14 666666666666666 11 666666666666666 23 666666666666668 13 333333333333334 Cluster 33 14 23076923076923 12 76923076923077 14 692307692307692 12 0 13 0 18 692307692307693 11 307692307692308 Cluster 34 14 6 10 2 12 5 16 3 13 5 13 3 16 3 Cluster 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 36 16 363636363636363 13 636363636363637 11 636363636363637 14 545454545454545 10 909090909090908 12 909090909090908 16 545454545454547 Cluster 37 13 214285714285714 14 357142857142858 14 071428571428571 14 357142857142858 14 0 15 928571428571429 10 357142857142858 Cluster 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 39 16 75 11 4375 12 9375 14 6875 13 8125 12 5 14 0625 Cluster 40 16 38095238095238 14 619047619047619 12 428571428571429 10 523809523809524 13 095238095238095 14 285714285714286 15 142857142857142 Cluster 41 9 11111111111111 12 88888888888889 12 333333333333334
24. S 100 M 1 0E 6 Number of clusters selected by cross validation 4 Cluster 0 Prior probability 0 6733 Attribute WG1 Normal Distribution Mean 14 6093 StdDev 2 5476 Attribute WG2 Normal Distribution Mean 2 5135 Attribute WG3 Normal Distribution Mean 13 5872 StdDev 2 4866 Attribute WG4 Normal Distribution Mean 14 4368 StdDev 2 6176 12 9082 StdDev 302 Attribute 2 4161 Attribute 2 5436 Attribute 2 4151 Cluster 1 Prior probability 0 3227 Attribute Attribute Attribute Attribute Attribute Attribute Attribute Cluster 2 Prior probability 0 002 Attribute Attribute Attribute Attribute Attribute Attribute Attribute Cluster 3 Prior probability 0 002 WG1 Normal Distribution Mean 4 466 StdDev 4 5118 WG2 Normal Distribution Mean 3 9638 StdDev 4 0006 WG3 Normal Distribution Mean 5 4516 StdDev 5 5017 WG4 Normal Distribution Mean 13 8627 StdDev 13 9928 Attribute Attribute Attribute Attribute Attribute 43 9939 WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution Personalisierung WG5 Normal Distribution
25. Schema der Zwischentabelle zum Warenkorb Clustering nach Produkttypen auch Dik03 f r nominale Attribute implementiert die bei Gleich heit des Wertes eine 0 und ansonsten 1 zur ckliefert Damit ist diese Distanzfunktion im Speziellen f r die hier vorliegenden bin ren At tribute geeignet Dennoch w re es zu berlegen eine bessere Distanz funktion wie z B den Jaccard Koeffizienten LWD98 zu verwenden der die Gleichheit von Attributen h her bewertet 16 3 2 Ergebnisse Die Ergebnisse der Analysen fielen wie erwartet aus Es wurden in den Testdaten des Kartenanbieter 18 Cluster gefunden Die maxima le Zahl von Clustern war 128 Da die Testdaten synthetisch erzeugt wurden w re es interessant dieses Verfahren mit echten Daten zu testen Bei kleineren Datenmengen in denen bestimmte Cluster er zeugt wurden konnte der Algorithmus genau die erzeugten Cluster wieder entdecken Insofern kann davon ausgegangen werden dass das Verfahren tats chlich wie gew nscht funktioniert Im Folgenden werden kurz die verwendeten Parameter und die Aus wirkungen durch Ver nderung der Parameter aufgef hrt Dabei wird darauf verzichtet alle benutzten Werte exakt aufzulisten sondern es werden nur die Tendenzen aufgezeigt Bei der Wahl der Parameter ist auch zu beachten dass die Analysen im Online Shop automatisch ausgef hrt werden Es ist also wichtiger Parameter zu finden die all gemein gute Ergebnisse versprechen als Parameter die ledig
26. Um aus den gesammelten Kunden und Verkaufsdaten Analyseergeb nisse zu gewinnen werden die Daten von den H ndlern zum Anbieter des Systems transferiert Damit die Kunden durch den Gebrauch der Karte mit der Verwendung im Regelfall nur innerhalb des Unterneh mens ihrer pers nlichen Daten einverstanden sind erhalten sie eine Belohnung beispielsweise in Form von Pr mien Da der Kartenanbie ter die M glichkeit hat die Daten f r s mtliche Analysen in seinem System also auch f r andere H ndleranalysen nutzen zu k nnen er halten die H ndler wiederum f r die Vorverarbeitung der Daten ein Entgelt Der Kartenanbieter ist in der Lage aus den Daten neues Wis sen f r den H ndler zu generieren Die H ndler wiederum bezahlen den Kartenanbieter f r die Analyseergebnisse und die Bereitstellung 16 des Systems Da diese Analysen zeitaufw ndig und komplex sind m ssen die H ndler diese Leistung vom Kartenanbieter erkaufen da sie u U nicht in der Lage sind diese Ergebnisse selbst zu generieren Aus diesen Erkenntnissen k nnen die Kunden individuell beworben und damit die Marketingstrategien der H ndler optimiert werden Die Bezahlfunktion wird innerhalb der Projektgruppe vernachl ssigt da die Systemimplementierung im Vordergrund steht und die Eingliede rung einer Bezahlkomponente zu einem sp teren Zeitpunkt problem los erfolgen kann Basierend auf dieser Aufgabenstellung hat sich die Projektgruppe entschieden das im Folgend
27. ausgelesen werden und dann in das Kartenanbieterdatenbankschema integriert werden k nnen 74 9 Zusammenfassung Die Aufgabe der Integration im Rahmen der Projektgruppe Per sonalisierung internetbasierter Handelsszenarien ist es gewesen die Daten aus den vorhandenen H ndlerdatenbanken in das Kartenan bieterdatenbankschema zu integrieren Die Umsetzung der Aufgaben stellung sowie dabei aufgetretene Probleme und deren L sung wur den eingehend beschrieben Auch wurde auf die Erweiterbarkeit der entstandenen Software eingegangen und eine detaillierte Klassenbe schreibung sowie ein Benutzerhandbuch zur Bedienung der Software erstellt und genauer betrachtet 75 9 Zusammenfassung 76 Teil II Analyse 77 10 Anforderungsdefinition Es soll ein Personalisierungs Framework inklusive einer Data Mining Bibliothek erstellt werden das verteilte Datenanalysen und im Spezi ellen auch temporales Data Mining unterst tzt Dabei soll der Daten austausch und die Steuerung des Analyseprozesses metadatengesteu ert realisiert werden Die Realisierung wird in mehreren Einzelschrit ten durchgef hrt um eine bessere bersicht zu gew hrleisten Als Grundlage der zu implementierenden Bibliothek dient WEKA WFO1 als bereits etablierte Bibliothek f r traditionelle Data Mining Anwen dungen Traditionell bedeutet in diesem Zusammenhang dass WEKA bisher keine temporalen Analysen unterst tzt 10 1 Vorgehen in Teilschritten Die Um
28. importiert die Daten in die Tabelle StringAttribut des Kar tenanbieterschemas Wird von der Methode importDB aus auf gerufen 17 void importProduktStatus importiert die Daten in die Tabelle StringAttribut des Kar tenanbieterschemas Wird von der Methode importDB aus auf gerufen 18 void importRechnung importiert die Daten in die Tabelle Rechnung des Kartenanbie terschemas Wird von der Methode importDB aus aufgerufen 19 void importSortiment importiert die Daten in die Tabelle Sortiment des Kartenanbie terschemas Wird von der Methode importDB aus aufgerufen 20 void importStringAttribut importiert die Daten in die Tabelle StringAttribut des Kar tenanbieterschemas Wird von der Methode importDB aus auf gerufen 21 void importText Attribut importiert die Daten in die Tabelle Text Attribut des Kartenan bieterschemas Wird von der Methode importDB aus aufgeru fen 22 void importTransaktion importiert die Daten in die Tabelle Transaktion des Kartenan bieterschemas Wird von der Methode importDB aus aufgeru fen 23 void import Warengruppe importiert die Daten in die Tabelle Warengruppe des Kartenan bieterschemas Wird von der Methode importDB aus aufgeru fen 24 void setDate Die Methode setzt nach einem erfolgreichen Import das At tribut Aktualisierungsdatum in Cardprovider Haendler auf den Wert von current Time 50 25 26 27 28 29 30 31 32 5 3 Klassenbesc
29. jedoch zu feingranular um praktisch durchgef hrt zu werden Daher wird von den Produkten abstrahiert und es werden nur Produkt typen beachtet die z B aus der Kategoriezugeh rigkeit abgeleitet werden k nnen Das Ziel dieser Analyse soll sein eine Menge von Warenk rben so einzuteilen dass Cluster mit Warenk rben entste hen die hnliche Produkte enthalten Die Ergebnisse dieses Verfahrens k nnen im Anschluss als Grundlage weiterer Analysen im Speziellen von Assoziationsanalysen verwen det werden Damit ist diese Analyse ebenfalls Teil der Umsetzung des Konzeptes Clustering nach Kunden und gekauften Produkten in Verbindung mit einer Assoziationsanalyse siehe ebenfalls Kapi tel 15 Die einzelnen Cluster enthalten voraussichtlich Warenk rbe die bereits eine hnlichkeit aufweisen also Produkttypen enthalten die ohnehin oft zusammen gekauft werden Die Assoziationsanalyse arbeitet somit auf einer Menge von Warenk rben die bereits eine gewisse hnlichkeit haben Wurde beispielsweise ein Cluster mit Wa renk rben in denen Chips und Bier enthalten sind durch das Clu stering gefunden k nnte die Assoziationsanalyse nun feststellen dass Chio Chips oft mit Beck s und Bahlsen Chips oft mit Jever zusammen verkauft werden In dem Cluster kann der Support der Regeln relativ hoch sein wobei die Regeln unter allen Warenk rben vielleicht einen geringen Support haben und somit nicht gefunden werden 16 3 1 Umsetzung Bei der
30. ne Konfigurationsdatei die das Framework steuert ben tigt deren Name als Kommandozeilenparameter angegeben wird Das Durchf hren komplexer Analysen funktioniert hnlich nur dass hier n 1 Konfigurationsdateien ben tigt werden um n einfache Ana lysen zu einer komplexen zusammenzufassen Dabei ist eine Konfigu rationsdatei f r die Steuerung des Ablaufes der komplexen Analyse zust ndig die brigen n Dateien steuern die im Kern ablaufenden einfachen Analysen Abbildung 14 6 zeigt eine Konfigurationsdatei f r eine komplexe Ana lyse in der zwei Preprozessoren eine einfache Analyse und zwei Post prozessoren zu einer komplexen Analyse zusammengefasst werden Hier werden jeweils zwei Pre und Postprozessoren definiert indem analysis_O properties properties txt analysis 0 preprocessor 0 diko personalisierung cardprovider preprocessing BasketClusteringDBTransform analysis 0 preprocessor 1 diko personalisierung cardprovider preprocessing BasketClusteringDBTransform analysis 0 postprocessor 0 diko personalisierung N cardprovider preprocessing BasketClusteringDBTransform analysis 0 postprocessor 1 diko personalisierung cardprovider preprocessing BasketClusteringDBTransform Abbildung 14 6 Konfigurationsdatei f r eine komplexe Analyse die vollst ndigen Klassennamen einer Java Klasse angegeben wer den die das Interface PrePostProcessor implementiert Der Schl ssel analysis 0 properties spezifiziert den
31. r weitere Aufgaben genutzt werden k nnen Um ein generelles Fehlverhalten der Algorithmen ausschlie en zu k nnen sind eine berschaubare Mengen von Testdaten im gleichen Format angelegt worden aus denen nachvollziehbare Cluster gebildet werden k nnen Aufgrund dieser Ergebnisse wurde auf eine Analyse mit Hilfe des entwickelten Frameworks verzichtet Bei n herer Betrachtung der Ausgangsdaten in der Relation Cluste ringKngP wird die gro e hnlichkeit der Daten sichtbar Die Werte der per tBasket erzeugten Daten KundenID gr er 4 haben f r die Warengruppe Minimalwerte zwischen 5 und 7 Prozent und Maxi malwerte zwischen 22 und 28 Prozent Der gr te Anteil der Werte bewegt sich aber in dem Intervall von 12 bis 18 Prozent aus dem dann auch die meistens Werte f r die Centroide der gefundenen Clu ster rekrutieren Auff llig an den Testdaten ist die gro e Gruppe der Nichtk ufer 324 Kunden die auch bei jeglicher Analyse als ei genst ndiges Cluster bestimmt werden konnten Eine bessere Arbeits grundlage w ren reale Transaktionsdaten gewesen und nicht k nstlich erzeugte Massendaten die zwar zeitliche Muster beinhalten anson sten aber willk rlich durch Skripte erzeugt worden sind 16 2 4 Verwendung der Analyseergebnisse Im diesem Abschnitt werden nun die M glichkeiten beschrieben wie die im vorangegangenen Kapitel gefundenen Ergebnisse genutzt wer den k nnen Dabei wird zwischen der konkreten Verwendung im Rah men d
32. siert Dadurch werden Redundanzen reduziert d h also Speicher platz gespart und nderungsanomalien verhindert allerdings kostet es viele Verbundoperationen SOM Self Organizing Maps Spezialisierung ist die Der T Generalisierung entgegengesetzte Methode um zusammengefasste Daten wieder in Daten mit einem h heren Informationsgehalt umzuwandeln SRSWOR Simple Random Sample WithOut Replacement bezeichnet eine Stichprobenart Es wird ohne Ersetzung ein Datum aus dem Datenbestand gezogen SRSWR Simple Random Sample With Replacement ist eine Stichprobenart Es wird ein Datum aus dem Datenbestand ge zogen und anschlie end wieder dem Datenbestand hinzugef gt Stammdaten sind Daten die sich nicht oder nur selten ndern Sie m ssen nur einmal eingegeben werden und stehen dann st ndig zur Verf gung Star Schema Dieses Datenmodell bildet ber die Faktentabelle und Dimensionstabellen die typischen T OLAP Objekte ab Datenw rfel T Dimensionen T Dimensionenhierarchien und Dimensionenelemente Diese relationale Realisierung vermeidet das Entstehen teurer Ver bundoperationen indem die Tabellen einer T Dimension zu einer ein zigen Tabelle denormalisiert werden Die Faktentabelle enth lt die eigentlichen Analysedaten und ist weiterhin normalisiert w hrend die Dimensionstabellen die nur beschreibende Daten beinhalten da gegen versto en Steam and Leaf Plot bieten eine graphische Darstellung der Variablenv
33. 0 Cluster 17 16 802816901408452 11 169014084507042 12 070422535211268 17 070422535211268 12 28169014084507 13 394366197183098 13 76056338028169 278 Personalisierung Cluster 18 12 875 10 625 12 625 22 0625 12 625 11 4375 14 0 Cluster 19 19 3 12 7 13 86 12 84 12 4 13 72 11 84 0 1 0 164 6 211 1 3 324 32 4 68 7 5 48 5 8 78 8 9 90 9 14 104 10 15 79 8 17 71 7 18 16 2 19 50 5 Scheme weka clusterers SimpleKMeans N 20 S 10 Cluster centroids Cluster 0 11 216216216216216 10 64864864864865 12 837837837837839 16 37837837837838 14 135135135135135 16 054054054054053 15 08108108108108 Cluster 1 13 409090909090908 14 113636363636363 11 727272727272727 13 068181818181818 13 386363636363637 14 090909090909092 16 522727272727273 Cluster 2 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 3 16 344827586206897 11 275862068965518 11 413793103448276 17 06896551724138 12 137931034482758 15 241379310344827 12 982758620689655 Cluster 4 16 8125 11 583333333333334 14 083333333333334 15 479166666666666 12 895833333333334 11 625 14 1875 Cluster 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 6 0 0 29 0 29 0 0 0 0 0 20 5 20 5 Cluster 7 19 53846153846154 13 461538461538462 14 923076923076923 9 0 13 692307692307692 12 846153846153847 13 23076923076923 Cluster 8 18 80952380952381 12 714285714285714 11 857142857142858 12 476190476190476 12 0 12 666666666666666 16 047619047619047 Cluster 9 14 64864864864865 12 37837837837
34. 0 0 0 0 0 0 0 0 0 0 0 Cluster 73 11 555555555555555 14 666666666666666 11 333333333333334 11 222222222222221 13 88888888888889 16 333333333333332 17 22222222222222 Cluster 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 76 13 153846153846153 15 76923076923077 12 923076923076923 15 538461538461538 14 307692307692308 14 307692307692308 10 153846153846153 Cluster 77 15 333333333333334 15 666666666666666 12 444444444444445 12 7777 77771777779 13 88888888888889 15 666666666666666 10 666666666666666 Cluster 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 79 19 0 11 25 16 625 13 375 12 5 12 0 12 125 283 Personalisierung Cluster 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 83 16 7 12 6 10 2 19 0 13 2 12 8 12 2 Cluster 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 85 14 181818181818182 13 090909090909092 14 454545454545455 12 363636363636363 13 090909090909092 18 727272727272727 10 636363636363637 Cluster 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 87 12 3 10 5 11 7 22 6 13 0 11 5 14 5 Cluster 88 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 89 10 454545454545455 14 727272727272727 13 363636363636363 18 181818181818183 13 272727272727273 12 636363636363637 13 818181818181818 Cluster 90 12 142857142857142 14 285714285714286 10 0 15 142857142857142 14 428571428571429 12 428571428571429 17 857142857142858 Cluster 91 16 0 12 25 12 25 15 0 13 5625 15 8125 11 375
35. 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 34 15 0 15 0 12 583333333333334 17 25 13 75 12 666666666666666 10 25 Cluster 35 16 75 10 375 14 125 12 5 12 625 17 75 12 375 Cluster 36 10 8 14 7 17 1 12 7 13 1 10 8 16 9 Cluster 37 11 666666666666666 17 333333333333332 16 166666666666668 9 833333333333334 12 666666666666666 17 833333333333332 11 166666666666666 Cluster 38 12 0 11 8 12 0 14 4 13 6 17 2 15 8 Cluster 39 9 0 12 166666666666666 13 166666666666666 14 666666666666666 16 833333333333332 16 0 14 833333333333334 Cluster 40 0 0 8 0 8 0 0 0 0 0 41 0 41 0 Cluster 41 13 7 11 1 14 85 17 2 13 45 15 05 11 35 Cluster 42 15 0 7 5 14 0 16 0 11 0 17 5 16 0 Cluster 43 13 875 17 375 11 125 11 5 11 875 16 75 13 125 Cluster 44 16 5 9 666666666666666 16 166666666666668 11 166666666666666 14 0 10 833333333333334 18 333333333333332 Cluster 45 15 666666666666666 14 533333333333333 15 333333333333334 10 866666666666667 12 733333333333333 14 733333333333333 12 2 Cluster 46 20 333333333333332 12 666666666666666 11 5 14 833333333333334 12 0 10 166666666666666 15 166666666666666 Cluster 47 15 8 13 933333333333334 14 333333333333334 13 133333333333333 14 8 10 4 13 933333333333334 Cluster 48 12 5 13 5 14 666666666666666 16 666666666666668 12 083333333333334 11 666666666666666 15 416666666666666 Cluster 49 15 5 12 5 11 166666666666666 16 333333333333332 10 333333333333334 16 666666666666668 14 0 Cluster 50 15 0 18 0 9 0 14 0 18 0 13 0 9 0 Cluster 51 19 6 10 6 11
36. 0 0 0 100 0 0 0 0 0 Cluster 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 351 35 1 328 33 2 1 0 3 324 32 Scheme weka clusterers SimpleKMeans N 5 S 0 Cluster centroids Cluster 0 0 0 0 0 0 0 0 0 0 3076923076923077 0 0 0 0 Cluster 1 12 60135135135135 12 844594594594595 13 283783783783784 16 9527027027027 13 385135135135135 13 777027027027026 13 472972972972974 Cluster 2 16 862068965517242 12 985221674876847 13 704433497536947 12 47783251231527 13 216748768472906 14 014778325123153 13 25615763546798 Cluster 3 16 1156462585034 11 775510204081632 13 122448979591837 16 6734693877551 12 435374149659864 13 714285714285714 12 714285714285714 Cluster 4 12 30939226519337 13 94475138121547 14 237569060773481 12 67403314917127 13 823204419889503 15 32596685082873 14 07182320441989 0 325 32 1 148 15 2 203 20 3 147 15 4 181 18 262 Personalisierung Scheme weka clusterers SimpleKMeans N 5 S 1 Cluster centroids Cluster 0 16 88888888888889 12 793650793650794 13 551587301587302 13 05952380952381 13 035714285714286 13 984126984126984 13 234126984126984 Cluster 1 14 214285714285714 12 142857142857142 13 147619047619047 17 285714285714285 12 957142857142857 13 719047619047618 12 976190476190476 Cluster 2 12 184331797235023 13 90783410138249 14 184331797235023 13 2073732718894 13 76958525345622 15 064516129032258 14 013824884792626 Cluster 3 0 0 0 0 0 0 0 0 100 0 0 0 0 0 C
37. 0868 Attribute WG1 Normal Distribution Mean 14 7589 StdDev 2 968 Attribute WG2 Normal Distribution Mean 15 4452 StdDev 2 6317 Attribute WG3 Normal Distribution Mean 14 4035 StdDev 3 4632 Attribute WG4 Normal Distribution Mean 12 1647 StdDev 1 9872 Attribute WG5 Normal Distribution Mean 11 9574 StdDev 2 5487 Attribute WG6 Normal Distribution Mean 14 5637 StdDev 2 5965 Attribute WG7 Normal Distribution Mean 13 1626 StdDev 3 2557 313 Personalisierung Cluster 9 Prior probability 0 1528 Attribute 2 1634 Attribute 2 1443 Attribute 2 0442 Attribute 2 0215 Attribute 2 3675 Attribute 2 2566 Attribute 2 1684 WG1 Normal Distribution Mean WG2 Normal Distribution Mean WG3 Normal Distribution Mean WG4 Normal Distribution Mean WG5 Normal Distribution Mean WG6 Normal Distribution Mean WG7 Normal Distribution Mean Cluster 10 Prior probability 0 001 Attribute Attribute Attribute Attribute Attribute Attribute Attribute WG1 Normal Distribution Mean WG2 Normal Distribution Mean WG3 Normal Distribution Mean WG4 Normal Distribution Mean WG5 Normal Distribution Mean WG6 Normal Distribution Mean WG7 Normal Distribution Mean Cluster 11 Prior probability 0 0719 Attribute 2 1496 Attribute 2 2602 Attribute 3 1314 Attribute 3 3934 Attribute 2 8055 Attribute 2 7626 Attribute 314
38. 1 74 9 1 76 3 0 79 4 0 80 6 1 83 5 0 84 8 1 85 10 1 88 3 0 89 1 0 91 6 1 94 6 1 95 13 1 96 7 1 98 3 0 99 8 1 100 1 0 101 6 1 103 11 1 104 6 1 105 7 1 107 5 0 108 6 1 109 5 0 112 7 1 1135 0 114 1 0 115 3 0 117 1 0 118 6 1 119 4 0 120 4 0 121 7 1 122 3 0 123 2 0 124 1 0 126 6 1 127 5 0 129 4 0 130 4 0 131 6 1 132 8 1 133 3 0 134 7 1 135 4 0 136 1 0 137 4 0 138 1 0 139 4 0 141 7 1 142 12 1 144 4 0 146 17 2 152 3 0 153 4 0 154 9 1 155 5 0 156 7 1 157 2 0 158 1 0 159 6 1 160 7 1 161 6 1 162 2 0 163 9 1 164 13 1 165 5 0 166 6 1 167 4 0 169 15 1 172 4 0 176 2 0 177 1 0 178 3 0 181 3 0 182 6 1 184 4 0 185 9 1 187 7 1 188 3 0 189 2 0 190 3 0 192 5 0 193 4 0 195 4 0 196 1 0 198 2 0 199 12 1 Ergebnisse EM In diesem Abschnitt sind sechs Testl ufe der Analyse mit dem Algo rithmus EM unter der WEKA GUI aufgelistet Wie bei dem Simple K Means sind die gew hlten Parameter der Kopfzeile zu entnehmen I maximale Iteration N maximale Anzahl an Cluster S seed M minimale Standardabweichung Ein Wert f r N von 1 bedeutet dabei dass die Anzahl von dem Algorithmus selbst bestimmt wird Scheme weka clusterers EM I 100 N 1
39. 11 2 16 2 11 4 16 0 12 0 Cluster 41 11 666666666666666 16 666666666666668 20 333333333333332 10 333333333333334 11 666666666666666 14 0 12 333333333333334 Cluster 42 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 43 12 0 11 375 13 0 15 0 12 375 16 125 16 375 Cluster 44 20 25 10 75 13 25 8 75 12 25 14 75 16 0 Cluster 45 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 46 15 666666666666666 17 0 9 333333333333334 10 0 14 0 13 0 17 666666666666668 Cluster 47 13 857142857142858 11 714285714285714 18 0 13 142857142857142 11 285714285714286 14 428571428571429 14 142857142857142 Cluster 48 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 49 15 357142857142858 12 428571428571429 13 571428571428571 14 5 14 428571428571429 15 214285714285714 10 857142857142858 Cluster 50 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 51 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 53 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 55 12 75 13 5 15 0 14 75 13 5 12 5 14 75 Cluster 56 16 0 16 4 13 2 16 0 12 4 12 4 10 2 Cluster 57 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 59 16 833333333333332 10 833333333333334 10 5 16 0 12 0 17 666666666666668 12 333333333333334 Cluster 60 18 5 17 25 10 5 14 5 13 75 10 25 11 0 Cluster 61 16 4 10 6 14 2 12 2 12 6 17 0 13 8 Cluster 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 65 12 0 16 666666666666668 12 5
40. 13 053191489361701 13 563829787234043 16 382978723404257 13 627659574468085 13 23404255319149 15 042553191489361 Cluster 2 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 5 16 65546218487395 11 92436974789916 13 38655462184874 15 436974789915967 12 436974789915967 13 781512605042018 13 042016806722689 Cluster 6 11 222222222222221 13 796296296296296 13 462962962962964 11 833333333333334 13 296296296296296 17 833333333333332 15 0 Cluster 7 18 857142857142858 12 957142857142857 13 428571428571429 11 857142857142858 12 9 13 428571428571429 13 128571428571428 Cluster 8 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 10 14 875 12 358333333333333 13 65 12 641666666666667 14 325 13 725 14 858333333333333 Cluster 11 14 527777777777779 12 12037037037037 12 805555555555555 17 75 13 018518518518519 13 86111111111111 12 324074074074074 0 114 11 1 94 9 21 0 3 324 32 5 119 12 6 54 5 7 70 7 10 120 12 11 108 11 Scheme weka clusterers SimpleKMeans N 12 S 1 Cluster centroids Cluster 0 15 986486486486486 14 054054054054054 13 472972972972974 11 594594594594595 13 68918918918919 14 77027027027027 12 891891891891891 Cluster 1 16 567901234567902 11 283950617283951 13 0 17 59259259259259 12 222222222222221 13 481481481481481 12 382716049382717 Cluster 2 14 367088607594937 10 987341772151899 12 556962025316455 14 392405063291
41. 14 5 13 785714285714286 17 214285714285715 13 714285714285714 12 642857142857142 14 857142857142858 Cluster 77 14 181818181818182 13 909090909090908 10 363636363636363 18 0 13 0 13 818181818181818 13 272727272727273 Cluster 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 79 0 0 50 0 50 0 0 0 0 0 0 0 0 0 Cluster 80 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 83 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 84 20 285714285714285 12 714285714285714 11 714285714285714 14 714285714285714 12 0 10 428571428571429 14 714285714285714 Cluster 85 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 86 15 285714285714286 14 285714285714286 11 571428571428571 16 285714285714285 9 571428571428571 15 714285714285714 13 857142857142858 Cluster 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 88 17 5 10 833333333333334 15 166666666666666 11 333333333333334 11 666666666666666 11 333333333333334 19 0 Cluster 89 18 153846153846153 16 692307692307693 11 615384615384615 12 538461538461538 13 538461538461538 12 153846153846153 11 76923076923077 Cluster 90 16 263157894736842 13 789473684210526 14 473684210526315 14 421052631578947 12 368421052631579 13 421052631578947 12 052631578947368 Cluster 91 21 0 10 0 10 0 10 0 9 0 18 0 18 0 Cluster 92 11 666666666666666 12 916666666666666 16 0 12 25 12 0 17 083333333333332 14 583333333333334 Cluster 93 12 294117647058824 14 764705882352942 13 941176470588236 16 41176470588235 13 0 14 4705
42. 16 333333333333332 13 9 14 5 11 0 Cluster 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 296 Personalisierung Cluster 67 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 69 13 0 15 571428571428571 10 714285714285714 14 571428571428571 14 714285714285714 16 142857142857142 11 714285714285714 Cluster 70 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 71 12 857142857142858 13 571428571428571 12 0 15 571428571428571 12 714285714285714 14 142857142857142 15 142857142857142 Cluster 72 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 73 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 74 14 333333333333334 14 88888888888889 12 666666666666666 17 0 14 666666666666666 12 555555555555555 10 11111111111111 Cluster 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 76 16 0 16 0 12 666666666666666 12 333333333333334 15 0 14 666666666666666 10 0 Cluster 77 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 78 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 79 14 0 14 75 9 75 10 5 12 5 19 0 15 25 Cluster 80 8 833333333333334 11 833333333333334 13 166666666666666 14 333333333333334 17 166666666666668 17 0 14 333333333333334 Cluster 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 82 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 83 12 0 14 4 11 0 21 2 12 4 12 6 12 8 Cluster 84 17 375 10 875 14 5 13 625 12 5 14 25 13 5 Cluster 85 12 9 14 4 14 4 12 9 15 0 14 2 12 6 Cluster 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 87 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 88 12 666666666666666 10 333333333333334 17 333333333333332 12 3333333
43. 2 11 6 11 8 14 4 17 0 Cluster 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 53 15 105263157894736 11 157894736842104 14 263157894736842 14 368421052631579 12 31578947368421 16 473684210526315 12 894736842105264 282 Personalisierung Cluster 54 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 55 11 166666666666666 12 916666666666666 15 0 15 75 15 083333333333334 13 0 13 0 Cluster 56 13 545454545454545 11 954545454545455 14 727272727272727 14 227272727272727 13 5 13 909090909090908 14 409090909090908 Cluster 57 18 0 20 0 12 5 9 5 13 5 11 5 12 0 Cluster 58 13 5 12 125 13 75 11 5 17 5 12 5 15 5 Cluster 59 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 62 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 63 15 75 13 392857142857142 14 678571428571429 14 607142857142858 12 857142857142858 13 607142857142858 11 678571428571429 Cluster 64 14 25 13 125 10 125 17 75 12 625 13 875 14 625 Cluster 65 16 0 9 75 14 75 20 125 11 625 12 5 11 5 Cluster 66 12 692307692307692 14 76923076923077 14 384615384615385 12 846153846153847 17 076923076923077 12 307692307692308 12 153846153846153 Cluster 67 16 6875 15 0 11 3125 10 8125 12 625 14 25 16 0625 Cluster 68 14 7 13 1 11 5 13 7 12 8 12 8 18 1 Cluster 69 18 666666666666668 8 666666666666666 14 0 18 166666666666668 12 5 10 666666666666666 14 333333333333334 Cluster 70 0 0 50 0 50 0 0 0 0 0 0 0 0 0 Cluster 71 16 6 10 2 9 6 17 8 11 4 18 8 12 0 Cluster 72 0 0 0
44. 3 Verbindungsabbruch Verhalten Fehlermeldung Dokumentationsanforderungen Die Dokumentation des Programms umfa t folgende Punkte e Anforderungsdefinition dieses Dokument e Entwurf e Dokumentierter Sourcecode e System Dokumentation bestehend aus Benutzer und Developer Handbuch Die Dokumentation soll in elektronischer Form erfolgen 33 4 Objektorientierte Analyse Abnahmekriterien Die funktionalen Anforderungen sollen erf llt werden nicht funktio nale Anforderungen sollen m glichst vollst ndig implementiert wer den S mtliche f r den Kartenanbieter relevanten Daten aus den H ndlerdatenbanken sollen von dem Programm in die Kartenanbieter datenbank bernommen werden Der Kartenanbieter hat dabei keine M glichkeit auf die Datenauswahl Einfluss zu nehmen da diese fest in den Methoden der Importklassen codiert ist Somit ist auch keine Metadatensteuerung die prinzipiell m glich w re vorgesehen 34 4 2 Statische Analyse Klassendiagramm 4 2 Statische Analyse Klassendiagramm Die Klassenbeschreibung umfasst die Beschreibung der Klassen Loa der DBConnection ImportHaendler1 ImportHaendler2 InitData und CleanDoubles Die Klasse DBConnection geh rt zur Datenbankschicht und erg nzt die JDBC Klassen die von Java zur Verf gung gestellt werden Die brigen Klassen werden der Anwendungsschicht zuge rechnet Der Aufbau und die Beziehungen der Klassen untereinander sind in Abbildung 4 1 dargestellt 35
45. 3 2 2 2 4 313123 21213 2 gt 3 z el es SSe SISI amp 2 G G ES L E CO EI E 3 EI E ES Tabelle A 12 Relation Produkt 253 Integration parent id jparent_sid Ih_id Ih_sid name ap_name ap_vorname ap_geschlecht email Istrasse Ihausnummer DIS Jort land telefon telefax url tza tze gza gze 254 INUMBER 38 Warengruppe ObergruppelD INUMBER 38 ang Fee Pe ARCHAR2 255 Warengruppe Beschreibung INUMBER 38 NOT NULL Warengruppe WarengruppelD INUMBER 38 NOT NULL INUMBER 38 NOT NULL arengruppe tza_Warengruppe DATE NOT NULL Tabelle A 13 Relation Kategorie Produkt ProduktID NUMBER 8 NOT NULL INUMBERGS NOT NULL produkt tza Produkt DATE NOT NULL ARCHAR2 100 Produkt Hersteller VARCHAR2 40 E E Dr u b Tabelle A 14 Relation Hersteller Integration UMBER 38 NOT NULL INUMBER 38 NOT NULL Posten ProduktID H UMBER 38 NOT NULL jegal INUMBER 38 Posten Anzahl INUMBER 38 Tabelle A 15 Relation Produkt Warenkorb Posten TransaktionsID INUMBER NOT NULL UMBER 38 NOT NULL Transaktion TransaktionID NUMBER NOT NULL INUMBER 38 IRechnung KundenID INUMBER 38 NOT NULL ee a date Tabelle A 16 Relation Warenkorb INUMBER 38 NOT NULL ProduktAttribut ProduktAttributlD INUMBER 38 NOT NULL ARCHAR2 20 ProduktAttribut N ame WARCHAR 2 40 beschreibung ProduktAttribut Bes
46. 333333333333334 15 5 20 666666666666668 11 333333333333334 12 166666666666666 12 5 12 0 Cluster 51 16 181818181818183 14 181818181818182 15 090909090909092 12 636363636363637 13 272727272727273 10 909090909090908 14 0 Cluster 52 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 53 19 4 11 8 15 5 13 3 12 8 11 3 12 7 Cluster 54 15 75 9 5 15 75 11 25 14 25 11 25 19 0 Cluster 55 16 238095238095237 13 761904761904763 14 142857142857142 15 19047619047619 12 0 13 142857142857142 12 142857142857142 Cluster 56 13 333333333333334 11 333333333333334 8 333333333333334 14 666666666666666 11 666666666666666 23 666666666666668 13 333333333333334 Cluster 57 17 833333333333332 16 166666666666668 11 0 12 666666666666666 12 333333333333334 14 666666666666666 11 833333333333334 Cluster 58 10 333333333333334 16 5 13 5 11 0 13 5 18 333333333333332 13 0 Cluster 59 18 11111111111111 12 333333333333334 15 88888888888889 14 11111111111111 11 555555555555555 14 88888888888889 10 0 Cluster 60 19 666666666666668 11 0 11 166666666666666 12 0 11 333333333333334 14 0 17 0 Cluster 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 62 11 6 12 8 10 8 15 0 15 6 12 6 17 4 Cluster 63 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 64 18 666666666666668 10 0 17 333333333333332 10 333333333333334 12 0 11 0 17 0 287 Personalisierung Cluster 65 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 66 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 67 15 333333333333334 7 0 14 0 13 666666666666666 16 333333333333332 17 0 12 66666666666
47. 38 NOT NULL Transktion ShopID i u UMBER 38 Rechnung KundenID DATE NOT NULL Transaktion Zeitpunkt Tabelle A 8 Relation Bon filial id vid_filiale INUMBER 38 NOT NULL INUMBER 38 NOT NULL Itransaktions_id INUMBER 38 NOT NULL juhrzeit DATE NOT NULL knd id knd sid NUM BERGS NOTERTE UMBER 38 NOT NULL lkebdatum DATE K nden Geburtstatum DATE geschlecht NUMBERG Kunden Geschiechi ARCHAR2 40 EE Tabelle A 9 Relation Kunde ARCHAR2 20 Kunden Name N ame ARCHAR2 20 Kunden_N ame Vorname es hausnummer plz ort ARCHAR 2 20 ZE Hausnummer PLZ Ort VARCHAR2 40 SE ze DATE NOT NULL DATE NOT NULL Tabelle A 10 Relation Adresse 252 pid p sid name beschreibung je preis Dreis jversand_aufschlag rabattfaehig Iprioritaet status pt id pt sid h id sid Integration INUMBER 38 Tabelle A 11 Relation Profil Produkt ProduktID INUMBER 38 NOT NULL ARCHAR2 20 Produkt Name ARCHAR2 40 ARCHAR2 255 Produkt Beschreibung ortiment EK ortiment VK VARCHARX 255 NUMBER 38 UMBER 38 NUMBER 28 ransaktion Kosten generieren generieren siehe H2 07 5 4 2 T g 2 Produkt Hersteller VARCHAR2 40 DATE 78 41 11 BR A E E ER ZI FE Be E Geel el g SISI BI G lalal s I sS s lt S lt lt S gt gt z w ww s w s s 5315 w 4 8 33 3 3 3
48. 48062015503876 12 682170542635658 13 310077519379846 17 186046511627907 13 37984496124031 13 55813953488372 13 720930232558139 Cluster 3 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 5 14 826315789473684 13 031578947368422 14 194736842105263 13 715789473684211 13 25263157894737 15 078947368421053 12 394736842105264 Cluster 6 12 473684210526315 13 342105263157896 11 776315789473685 12 407894736842104 13 723684210526315 16 960526315789473 15 697368421052632 Cluster 7 11 01639344262295 15 344262295081966 16 459016393442624 12 475409836065573 14 147540983606557 13 344262295081966 13 508196721311476 0 112 11 1 111 11 2 129 13 31 0 4 324 32 5 190 19 6 76 8 7 61 6 269 Personalisierung Scheme weka clusterers SimpleKMeans N 8 S 2 Cluster centroids Cluster 0 14 892307692307693 12 948717948717949 14 343589743589744 13 256410256410257 13 748717948717948 14 189743589743589 13 082051282051282 Cluster 1 12 686567164179104 12 64179104477612 13 111940298507463 17 067164179104477 13 276119402985074 13 940298507462687 13 634328358208956 Cluster 2 16 275 11 566666666666666 12 833333333333334 17 058333333333334 12 4 13 591666666666667 12 841666666666667 Cluster 3 12 592105263157896 13 960526315789474 12 578947368421053 11 802631578947368 13 31578947368421 17 80263157894737 14 328947368421053 Cluster 4 18 5 12 98936170212766 13 319148936170214 12 297872340425531 12 691489361702
49. 7 15 1 2 Clustering nach Kunden und gekauften Produkten Die von dieser Analyse zu findenden Kundengruppen sollen anhand gekaufter bzw bestellter Waren ermittelt werden Es existieren ver schiedene Granularit tsebenen von denen aus die Produkte betrach tet werden k nnen Beispielsweise ist Milka ein Element der Menge Schokolade Schokolade wiederum eine Teilmenge von S ssigkei ten usw Es ergeben sich Zusammenh nge wie z B Kunde A kauft Schokolade oder Kunde A kauft S ssigkeiten die auf unterschied lichen Abstraktionsebenen liegen Die Mitglieder der Kundengruppen sollen ein gemeinsames Kaufverhalten aufweisen Wenn auf einer h heren Abstraktionsebene analysiert wird kann die Clusteranzahl reduziert werden Denn unterschiedliche Kunden die zwar auf einer niedrigen Abstraktionsebene verschiedene Produkte kaufen k nnen trotzdem auf einer h heren Ebene zu einer Gruppe zusammengefasst werden wenn die verschiedenen Kunden ihre Pro dukte z B haupts chlich aus der bergeordneten Ebene Bekleidung kaufen Ausgangsdaten Sofern diese Analyse beispielsweise auf den in der Kartenanbieterdatenbank integrierten Daten des H ndler 1 basiert sind die Ausgangsdaten ber verschiedene Relationen zu erhalten Die Identit t der Kunden kann ber die Relation Transaktion ber das Attribut Inhaber festgestellt werden Die Anzahl der gekauften Produkte ist ber die Relation Posten ber das Attrib
50. 916666666666666 049 5 11 0 2 324 32 3 74 7 4 31 3 5 50 5 613 1 72 0 814 1 9 40 4 10 33 3 12 41 4 13 33 3 14 44 4 15 63 6 17 79 8 18 53 5 19 60 6 Scheme weka clusterers SimpleKMeans N 20 S 0 Cluster centroids Cluster 0 13 85 15 133333333333333 13 833333333333334 14 633333333333333 13 633333333333333 14 3 10 983333333333333 Cluster 1 13 814814814814815 11 796296296296296 13 944444444444445 17 055555555555557 13 444444444444445 14 537037037037036 11 777777777777779 Cluster 2 14 719298245614034 11 070175438596491 15 666666666666666 13 842105263157896 12 526315789473685 15 719298245614034 13 052631578947368 Cluster 3 16 76923076923077 9 923076923076923 13 961538461538462 18 884615384615383 12 615384615384615 10 923076923076923 13 5 Cluster 4 13 895833333333334 12 979166666666666 12 229166666666666 15 958333333333334 12 8125 13 208333333333334 15 270833333333334 276 Personalisierung Cluster 5 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 7 18 677419354838708 13 67741935483871 12 580645161290322 10 35483870967742 13 193548387096774 13 516129032258064 14 612903225806452 Cluster 8 16 333333333333332 12 933333333333334 10 866666666666667 18 266666666666666 12 066666666666666 15 733333333333333 10 466666666666667 Cluster 9 16 52 12 02 12 08 15 48 12 0 14 98 13 46 Cluster 10 19 37837837837838 12 216216216216216 13 67567567567567
51. Analyse der Warenk rbe ist zu beachten dass Warenk rbe in der Regel in einer 1 n Beziehung gespeichert werden Jedem Warenkorb k nnen demnach beliebig viele Produkte zugeordnet sein 190 16 3 Clusteranalyse von Warenk rben nach Produkttypen WEKA kann jedoch nur mit einer festen Anzahl von Attributen um gehen so dass die Warenk rbe so transformiert werden m ssen dass jeder Warenkorb eine feste Anzahl von Attributen enth lt Die sinnvollste L sung dieses Problemes ist nicht die Produkte son dern die Produkttypen zu beachten Diese k nnen entweder aus dem Produktkatalog gewonnen werden oder sind wie im Falle des Online H ndlers explizit vorhanden Zus tzlich hat dieses Vorgehen den Vor teil bessere Ergebnisse zu liefern Dies geht aus der Tatsache hervor dass beispielsweise oft Chips und Bier zusammen gekauft werden aber die Marken durchaus variieren k nnen Werden Produkttypen betrachtet wird auf einer h heren Abstraktionsebene gearbeitet De tails wie die Marke werden ignoriert und es wird nur auf einer Ebene wie Chips Bier u s w unterschieden Die Transformation der Daten wurde so implementiert dass eine neue Tabelle siehe Tabelle 16 34 erstellt wurde die zu jedem Waren korb speichert ob ein Produkt eines bestimmten Typs im Warenkorb enthalten war oder nicht Dabei wurden die Mengen der Produkte ignoriert die Zugeh rigkeit ist somit als bin res Attribut realisiert F r die Personalisierung kann aus den
52. Artikel eines Kunden nach den vorhandenen Warengruppen aufsummiert und der Anteil der einzelnen Warengruppen an der Gesamtmenge gespei chert siehe 15 1 2 Aufgrund dieser relativen Werte sollen durch Clusteranalyse Kunden mit hnlichem Profil zusammengefasst wer den Als Datengrundlage dient die in der Kartenanbieterdatenbank siehe Zwischenbericht iH03 integrierten Daten des Onlineh ndler welche in der fr heren Phase des Datenbankentwurfes angelegt wor den sind 183 16 Anwendung Nicht temporale Analysen Das Ziel dieses Arbeitsabschnittes ist die Generierung von Analy seergebnissen auf der Basis der gegebenen H ndlerdaten und eine Betrachtung einer m glichen Umsetzung der Resultate in Form einer Personalisierung des zu Evaluierung angelegten Online Shops Wei terhin sollen durch die Arbeit mit den vorhandenen Ressourcen Hin weise f r eventuelle Verbesserung bzw neue Wege bei der Analyse gewonnen werden Um die geforderten Ziele zu erreichen werden am Anfang aus den Daten des Onlineh ndlers die notwendigen Daten ausgew hlt bear beitet und in einem f r die Analyse geeignetem Format gespeichert F r diese Vorverarbeitungsschritte wird ein eigenes Java Paket be reitgestellt Die Analysen werden je nach ben tigter Information und gew hlten Verfahren mit Hilfe des Framework von Diko siehe 14 oder der WEKA GUI WF01 durchgef hrt Die Ergebnisse der Ana lyse sind anschlie end auszuwerten um R ckschl sse f r fol
53. Auffinden kalendarischer Muster soll in den Warenkorb Daten des Kartenanbieters temporale Muster finden Die se Assoziationsregeln k nnen benutzt werden um abh ngig vom Da tum Produktempfehlungen auf Einstiegsseiten eines Online Shops zu erzeugen oder um kalendarische Assoziationsregeln zu erzeugen mit denen Kunden alternative Produkte oder etwa Produkt Bundles an geboten werden k nnen 85 10 Anforderungsdefinition 86 11 Entwurf Wie in der Anforderungsdefinition siehe Kapitel 10 vorgegeben ist die Klassenbibliothek WEKA um temporale Datenhaltung einen Algorithmus zum Auffinden kalenderbasierter Pattern und um eine Caching Funktionalit t zu erweitern Die temporale Datenhaltung soll es WEKA erm glichen temporale Datenanalysen auszuf hren ohne dass die vorhandenen nicht temporalen Algorithmen angepasst werden m ssen Die Caching Funktionalit t hat die Aufgabe den Hauptspeicherverbrauch WEKAs zu reduzieren Die aktuelle Imple mentierung l dt alle zu analysierenden Daten in den Hauptspeicher was gerade bei gro en Mengen von Daten zu Problemen f hren kann Der Cache soll immer nur einen Teil der Daten im Hauptspeicher halten und zus tzlich die Daten f r wiederholte Iterationen lokal zwischenspeichern Dadurch soll eine Verminderung des Netzwerk verkehrs erreicht werden 11 1 Architektur Ein wichtiger Punkt bei der Implementierung der zus tzlichen Funk tionen ist die Erhaltung der aktuellen WEKA APIs Dadurc
54. Cluster 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 4 11 45 12 7875 13 225 17 1125 13 5125 13 375 14 825 Cluster 5 18 154929577464788 13 112676056338028 13 253521126760564 11 112676056338028 13 056338028169014 13 774647887323944 13 985915492957746 Cluster 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 274 Personalisierung Cluster 8 14 784 12 056 12 744 17 504 12 832 14 064 12 44 Cluster 9 17 041322314049587 12 380165289256198 13 578512396694215 14 834710743801653 12 933884297520661 12 702479338842975 13 198347107438016 Cluster 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 0 195 9 2 187 19 3 324 32 4 80 8 5 71 7 8 125 12 9 121 12 Scheme weka clusterers SimpleKMeans N 20 S 2 Cluster centroids Cluster 0 16 387755102040817 11 938775510204081 14 979591836734693 15 306122448979592 13 244897959183673 11 46938775510204 13 183673469387756 Cluster 1 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 3 15 85135135135135 11 27027027027027 12 702702702702704 14 594594594594595 12 905405405405405 16 06756756756757 13 135135135135135 Cluster 4 10 64516129032258 13 387096774193548 13 064516129032258 18 838709677419356 13 419354838709678 11 774193548387096 15 096774193548388 Cluster 5 16 44 15 1 12 7 11 26 13 46 13 62 13 74 Cluster 6 16 846153846153847 10 307692307692308 15 307692307692308 11 538461538461538 13 76923076923077 11 6153846
55. Cluster 92 14 789473684210526 13 105263157894736 13 263157894736842 16 31578947368421 11 789473684210526 13 842105263157896 13 0 Cluster 93 16 375 10 5 18 625 16 625 13 0 10 625 11 0 Cluster 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 95 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 96 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 97 15 666666666666666 10 444444444444445 12 444444444444445 16 333333333333332 13 555555555555559 11 555599999999999 16 444444444444443 Cluster 98 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 99 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 24 2 115 1 21 0 3 324 32 514 1 69 1 7 3 0 10 18 2 11 15 1 123 0 13 16 2 15 12 1 16 2 0 187 1 19 6 1 204 0 219 1 23 13 1 24 9 1 25 4 0 26 5 0 27 10 1 28 11 1 29 7 1 1 DEE 31 8 1 328 1 34 12 1 35 8 1 36 10 1 376 1 38 10 1 39 6 1 40 1 0 41 20 2 42 2 0 43 8 1 44 6 1 45 15 1 46 6 1 47 15 1 48 12 1 49 6 1 50 1 0 51 5 0 53 19 2 55 12 1 56 22 2 57 2 0 58 8 1 63 28 3 64 8 1 65 8 1 66 13 1 67 16 2 68 10 1 69 6 1 70 1 0 715 0 73 9 1 76 13 1 77 9 1 79 8 1 83 10 1 85 11 1 87 10 284 Personalisierung 1 89 11 1 90 7 1 91 16 2 92 19 2 93 8 1 97 9 1 Scheme weka clusterers SimpleKMeans N 100 S 0 Cluster centroids Cluster 0 13 142857142857142 16 714285714285715 11 7
56. Ebenso ist aus zeitlichen Gr nden auf eine grafische Benutzerober fl che verzichtet worden Anstelle dieser ist eine parametrische Steue rung implementiert worden die zeitlich weniger Entwicklungsauf wand dargestellt hat Bez glich der Erweiterbarkeit des Integrationsszenarios sei hier auf den Kapitel 7 verwiesen 22 3 Analyse Aufgabe der Analyse Gruppe war die Konzeption und Umsetzung des verteilten Analyse und Personalisierungs Frameworks Diese Aufga be wurde von der Gruppe in drei Teile aufgeteilt siehe Kapitel 10 Die Umsetzung des Caches f r WEKA wurde wie gew nscht durch gef hrt Wie erwartet wurden dadurch Analysen mit WEKA bei gleichbleibendem Hauptspeicherverbrauch m glich Wie in der Doku mentation zum Cache erw hnt siehe Kapitel 12 gibt es jedoch mit einigen Algorithmen noch Probleme Da es nie eine zentrale Aufgabe der Projektgruppe war einen Cache f r WEKA zu schreiben wurde an dieser Stelle bewusst auf die Umsetzung komplexerer Caching Algorithmen verzichtet Die von der Projektgruppe verwendeten Al 244 22 4 Personalisierungskonzept gorithmen konnten problemlos ausgef hrt werden und daher wurde die aktuelle Implementierung als ausreichend angesehen Vorschl ge zur Erweiterung des Caches sind in der oben genannten Dokumenta tion unter Abschnitt 12 3 zu finden Die zweite Teilaufgabe war die Implementierung eines Algorithmus zum Auffinden kalendarischer Muster siehe Kapitel 13 Dieser Al gorit
57. Ein kann z B ein Element eines Warenkorbs sein der wiederum f r eine Transaktion steht Kategorische Daten Als bezeichnet man Nominale und T Or dinale Daten also Namen ohne Wert oder Namen mit einer darauf definierten Ordnungsrelation KDD Prozess Knowledge Discovery in Databases bezeichnet den nichttrivialen Prozess der Identifikation valider neuartiger potenti ell n tzlicher und klar verst ndlicher Muster in Daten Der Prozess beinhaltet dabei Schritte von der urspr nglichen Datenauswahl bis hin zur Interpretation der gefundenen Muster und der folgenden Um setzung Kenngr sse Fakt Klasse Eine besteht im Kontext der T Datenanalyse aus einer Menge von Objekten die alle eine bestimmte Gemeinsamkeit haben beispielsweise die der kreditw rdigen Bankkunden innerhalb der Menge aller Bankkunden Kennzahl Fakt Kennzahlen Hier ist eine T Kennzahl ein Begriff aus der Statistik Er bezeichnet Werte die berechnet werden um Datenmengen cha rakterisieren zu k nnen Beispiele sind der T Median die Quantile oder die Varianz Kennzahlenattribut Kennzahl 337 Glossar Klassifikation Bei der besteht die Aufgabe darin betrachtete Ob jekte einer vorher bestimmten T Klasse zuzuordnen Die Zuordnung findet dabei aufgrund der Objektmerkmale und der Klassifikations eigenschaften statt Klassifikationshierarchie Eine bez glich eines Pfades ist ein balancierter Baum Seine Kanten repr sentieren
58. Ergebnis knd id gebdatum plz 0 181 16 34Schema der Zwischentabelle zum Warenkorb Clustering nach Produkttypen 192 18 1 Kalendarische Muster 2 2222 2222222 208 19 1 Soll Ist Vergleich e 212 A 1 Relation kunde_ohnekarte 2 22222222 249 A 2 Relation Filiale 249 A 3 Relation Kategorie 250 A 4 Relation kunde mut karte 2 2222 22220 250 A 5 Relation Dreis 251 Ap Relation Artikel 2222 CE m nn nn 251 A 7 Relation Position 251 A 8 Relation Bon 252 AO Relation Kunde 222 22 m nn nenn 252 A 10 Relation Adresse e 252 A 11 Relation Profil 4 253 A 12 Relation Produkt 0 0 253 A 13 Relation Kategorie 254 A 14 Relation Hersteller 0 0 0 254 A 15 Relation Produkt Warenkorb 2 255 A 16 Relation Warenkorb 0 0 0 0 255 A 17 Relation Attribut 2 Eon 255 A 18 Relation Text Attribut 2 2 2222 22220 256 A 19 Relation Number Attribut 2 2 22 2222020 256 A 20 Relation String Attribut 2 2 2222 2 22 257 A 21 Relation Attribut 222222 m nn nn 257 Literaturverzeichnis Ama03 AMAZON GMBH M NCHEN Amazon de 2003 URL Dik03 Fis87 iH03 Inf88 LNWJ http www amazon de Diko Projektgruppe internetbasierter Handelsszenari en Javadoc 2003 URL http diko project de dokumente javadoc index html D H FISHER Knowledge Acquisition via Incremental Conceptual
59. Ergebnisse der Datenanalyse werden abschlie end im f r die verschiedenen Adressaten aufbereitet Detaildaten bezeichnen Daten der niedrigsten Stufe einer Di mensionenhierarchie Dimension Eine ist eine qualifizierende Eigenschaft eines T Fakts Sie stellt einen Aspekt des Auswertungskontextes dar Dimensionenhierarchie Eine Menge aufeinander aufbauender T Hie rarchieebenen wird genannt Dimensioneninstanz Die ist die Menge aller T Dimensionenhie rarchien auf Pfaden im T Klassifikationsschema Dimensionsreduktion Die ist ein Verfahren um die Dimensio nalit t eines zu untersuchenden Systems zu reduzieren M glichkeiten bietet hier bspw die T Hauptkomponentenanlyse Diskrete Daten bezeichnen feste numerische Werte wie sie bei spielsweise durch Z hlungen entstehen Diskretisierung ist ein Verfahren das die Anzahl der Werte f r ein durchg ngiges Attribut durch Aufteilung des Wertebereichs in einzelne Intervalle verringern kann Diskriminanzanalyse Die untersucht den jeweiligen Datenbe stand auf solche T Attribute die einen hohen Erkl rungsgrad f r eine bereits vorgegebene Klassifikation besitzen Ein Beispiel ist hier die Anwendung der als Fr hwarnsystem bei der Bonit tspr fung Document Root Das ist das Hauptverzeichnis eines T Webser vers Wird dieses angefordert liefert der T Webserver in der Regel eine Standarddatei wie z B index html aus Drill down ist die Umkehrung ein
60. Fazit Allerdings h ngt der ideale Swapping Algorithmus auch stark vom verwendeten Analysealgorithmus ab der die Daten ben tigt So wird die Instances Klasse in WEKA z B ebenfalls benutzt um die Bl tter eines Baums zu kapseln Bei gro en B umen entstehen jedoch so viele Bl tter dass die Anzahl der File Deskriptoren des Betriebssystem nicht mehr ausreicht um alle Berkeley DB Files zu verwalten Der Vorschlag der Projektgruppe ist daher in Zukunft den Cache als Interface zu implementieren und verschiedene konkrete Implementie rungen anzubieten die mit unterschiedlichen Paging und Swapping Algorithmen arbeiten oder vielleicht die Daten auch nur im Haupt speicher halten Dies w rde jedoch auch eine nderung der vorhan denen WEKA API bedeuten was offensichtlich grundlegende nde rungen an WEKA nach sich ziehen w rde Aus diesem Grunde wurde auf die Realisierung dieser nderungen im Rahmen der Projektgrup pe verzichtet Es w re ebenfalls m glich den Sourcelterator dahingehend zu erwei tern dass er nicht nur einen rein sequentiellen Zugriff auf die Daten zul sst sondern ein erweitertes Interface anbietet Denkbar w re ein Zugriff per Index sequentieller Zugriff in beide Richtungen oder die M glichkeit Daten direkt in der Quelle zu ndern Da die Algorith men die im Rahmen der PG verwendet werden jedoch diese M glich keiten nicht ben tigen wurde auf die Implementierung verzichtet 99 12 Technisches Handbuch
61. ImportInitData verwendet die Klasse DBConnection um eine Datenbankverbindung aufzubauen Methoden Dienste 1 ImportInitData String targetDBHost String targetDBDriver String targetDBUserName String targetDBPasswd Konstruktor der Klasse erzeugt Objekt vom Typ Importhnit Data 2 void ImportInitData Diese Methode f hrt die notwendigen Einf geoperationen auf der Kartenanbieterdatenbank aus 59 5 Objektorientierter Entwurf 5 3 2 Datenbankanbindung Die Datenbankanbindung besteht aus der Klasse DBConnection au Berdem werden die Datenbanken von H ndler 1 H ndler 2 und des Kartenanbieters zu dieser Ebende des Softwareentwurfs hinzugez hlt Die Datenanbindung ist f r die Datenhaltung und den Datentranfer von und zu Datenbanken zust ndig Klasse DBConnection Name DBConnection Kurzbeschreibung Die Klasse DBConnection kapselt eine JDBC Verbindung zur Oracle Datenbank Die Klasse soll eine Verbindung auf und abbauen k nnen sowie SQL Statements Abfragen und Manipulationen auf der Da tenbank ausf hren Die Klasse Loader erzeugt Instanzen dieser Klas se um Verbindungen mit der Quell und Zieldatenbank aufzubauen Oberklassen keine Unterklassen keine Attribute 1 Connection con Dieses Attribut stellt die eigentliche Verbindung zur Datenbank dar ber con wird mittels SQL Queries und Statements auf die Datenbank zugegriffen Beziehungen DBConnection wird von den Klassen ImportInitData CleanDoubl
62. Integrationsphase und Tests ca vier Wochen Se minarphase Erprobung Handbuch Dokumentation e Vorlesungsfreie Zeit nach der Projektgruppe Pr sentation der Projektgruppenergebnisse im Fachbereich Informatik 1 Rahmenbedingungen Besuche bei anderen Fachbereichen und oder Anwendern soll ten eingeplant werden empfehlenswert ist eine Exkursion zu Firmen Institutionen die sich mit hnlichen Fragen wie die Projektgruppe besch ftigen 4 Selbstverwaltungsaufgaben in der Projektgruppe Erfahrungs gem fallen folgende Amter an e Meilenstein berwachung Projektplaner e Schnittstellen berwachung und pr zisierung e Tester e Archivar e Bibliothekar und Literaturbeschaffer e Experten f r spezielle Programmiersprachen e Experten f r spezielle Rechnersysteme e Experten f r spezielle Softwaresysteme e K mmerer und Haushalts berwacher e Webbeauftragter Hinweis Projektgruppen sind von den Gremien des Fachbereichs Informatik zu genehmigen Hierzu ist zun chst das Thema und die Ank ndigung einschl der unter 1 bis 3 genannten Punkte im voran gehenden Semester der Studienkommission zur Best tigung vorzule gen Da eine Projektgruppe ein Seminar ein Fortgeschrittenenprak tikum und eine Studienarbeit ersetzt muss der Diplom Pr fungsaus schuss die quivalenz der Projektgruppe mit diesen Studienleistun gen genehmigen Anschlie end kann die Projektgruppe ausgeschrie ben werden Eine Projektgruppe soll nic
63. Mitteln eines T multidimensionalen Datenmodells erstellt wurde wird auch genannt Multiple Hierarchie bezeichnet eine Spezialform der Hierarchie bei der auf eine T Hierarchieebene alternativ mehrere folgen k nnen mUML Die multidimensionale Unified Modeling Language erm g licht als UML Erweiterung die Erstellung eines konzeptionellen T mul tidimensionalen Schemata Die multidimensionalen Sprachelemente und deren Semantik hat die von der Multidimensional Modeling Language MML erhalten Grundlage f r die sind UML eigene Er weiterungsm glichkeiten die eine Anpassung ohne Ver nderung des Metamodells erm glichen Noisy data Noise bezeichnet in diesem Kontext einen zuf llig fehlerhaften Wert oder eine Abweichung in einer gemessenen Varia ble Rauschen Man spricht auch von verrauschten Daten 340 Glossar Nominale Daten bezeichnet Daten deren Wertebereich nicht numerisch ist sondern W rter oder Kategorien darstellen Ein Bei spiel hierf r ist die Einteilung in Blutgruppen Normalisierung ist ein Verfahren durch das bestimmte Eigen schaften f r die Daten wie z B Redundanzfreiheit oder die Abwesen heit von Update Anomalien f r einen Datenbestand erzielt werden k nnen Normalverteilung GauBverteilung Numerische Daten sind Diskrete und kontinuierliche Daten also Daten die aus Ziffern bestehen Numerische Datenreduktion bezeichnet die Verkleinerung des Datenbesta
64. Mn Solche Relationen kann man als Tabellen z B in Datenbanken darstellen Relationale Datenbanken Kennzeichen relationaler Datenbanken ist da jede Information als Tabelle dargestellt werden kann und das alle Tabellen miteinander verlinkt werden k nnen insofern sie ein T Attribut teilen Repositorium Das speichert die Metadaten des Data Warehouse Systems Request Ein ist die Anfrage an einen T Webserver nach dem t HTTP Protokoll Response bezeichnet die Antwort eines Webservers auf einen T Request Rollback Relation In der wird die T Transaktionszeit gespei chert T Transaktionen k nnen so r ckg ngig gemacht werden 344 Glossar Roll up bezeichnet das Zusammenfassen von T Fakten aufgrund gleicher Auspr gung der gualifizierenden Eigenschaften wobei die einzelnen quantifizierbaren Eigenschaften unter Verwendung von Ag gregationsfunktionen zusammengef hrt werden Sampling Wenn man statt alle Daten zu ber cksichtigen nur einen Teil ber cksichtigt spricht man von Scatterplots werden zur graphischen Darstellung einer Varia blenverteilung benutzt Schnappschuss Datenbank ist die Momentaufnahme einer tem poralen bzw einer konventionellen nicht temporalen Datenbank Secure Socket Layer SSL ist eine Verschl sselungstechnolo gie f r die sichere bermittlung von sicherheitsrelevanten Daten wie z B Kreditkartenangaben und Passw rtern Self Organizing Map sind eine von Kohonen
65. Personalisierungs Framework sowie an die Data Mining Bibliothek gestellt werden Des Weiteren sind der Entwurf der entwickelten Komponenten sowie technische Hand b cher enthalten Im Personalisierungskonzept werden Anwendungsm glichkeiten f r die entwickelte Software im Rahmen der Projektgruppenar beit untersucht Es wird sowohl die M glichkeit der Verwen dung temporaler als auch nicht temporaler Analyseverfahren betrachtet Ergebnisse und Schlussbetrachtungen der Projektgruppe werden in Teil V des Dokuments zusammengefasst Es wird insbesonde re ein f r die Pr sentation von Analyseergebnissen entwickelter auf dem Personalisierungskonzept basierender Online Shop be schrieben Au erdem bietet der Teil einen Soll Ist Vergleich zwi schen den geforderten und den tats chlich erbrachten Leistun gen sowie eine Zusammenfassung der Projektgruppenergebnisse und einen Ausblick im Hinblick auf zuk nftige Entwicklungen Begleitende Texte wie z B die f r die Integration verwendeten ber setzungsmatrizen befinden sich im Anhang des Endberichts 1 Rahmenbedingungen Im Folgenden wird beschrieben was unter einer Projektgruppe zu verstehen ist Ein Dokument zu dieser Thematik stand bereits zum Jahreswechsel 87 88 im wesentlichen fest und wurde nach kleinen nderungen am 1 6 1988 von der Studienkommission des Fachbe reichs Informatik der Universit t Oldenburg verabschiedet Inf88 1 1 Definition von Projektgruppen Proje
66. Personalisierungskonzept sowie die im Online Shop verwendeten Analysen keinen Gebrauch von der Verteiltheit machen und vor allem nur auf der Datenbank des H ndler 1 arbeiten Da die Integration ohnehin nur rudiment r umgesetzt wurde kann abschlieBend gesagt werden dass ein Szenario mit nur einem H ndler f r die Zwecke der Projektgruppe ausgereicht h tte 243 22 Zusammenfassung und Ausblick 22 2 Integration Die Aufgabe der Integration hat den Import aller Daten aus den H ndlerdatenbanken in die Datenbank des Kartenanbieters umfasst Dieses ist n tig gewesen damit der Kartenanbieter seine Analysen auf den Daten der H ndler durchf hren konnte Die genaue Durchf hrung und die dabei entstandenen Probleme sind im Teil II zur Dokumen tation der Integration nachzulesen Der gew hlte L sungsweg hat sich auf Anraten der Projektgruppen leiter meist auf die Implementation mit dem geringsten Zeitaufwand beschr nkt da der Fokus der zu leistenden Arbeit auf der Erstellung der Personalisierungsbibliothek gelegen und die Integration hierf r nur einen notwendigen Hilfsschritt dargestellt hat und nicht Ziel der Projektgruppe gewesen ist Eine Aggregation der Datens tze auf eine Ebene oder das Zusam menfassen von mehreren Datens tzen mit der selben ID zu einem anstelle der L schung dieser f lschlicherweise doppelt vorhandenen Datens tze w re eine alternative L sung gewesen die jedoch aus og Gr nden nicht umgesetzt worden ist
67. Produkt 6766 in den WK in den WK Produkt 364 in den WK in den WK Produkt 9830 in den WK in den WK Produkt 1638 in den WK in den WK Produkt 1509 in den WK in den WK Produkt 5218 in den WK in den WK Produkt 2912 in den WK in den WK Produkt 6750 in den WK in den WK Abbildung 20 6 Darstellung von catalog jsp catalog jsp Diese Datei stellt einen Produktkatalog dar Dieser wird ber die Pa rameter Eld und kSid spezifiziert Ein Katalog kann untergeordnete Kataloge beinhalten die in der oberen Tabelle verlinkt dargestellt sind Das Folgen eines Kataloglinks f hrt zum untergeordneten Ka talog Ein Katalog kann auch Produkte beinhalten die in der unteren Ta belle verlinkt dargestellt sind Rechts neben einem Produktlink wird ein Link In den WK dargestellt Durch Folgen dieses Links kann ein Produkt in den Warenkorb aufgenommen werden Das Folgen eines Produktlinks f hrt zur Produktdetailseite product jsp 224 20 2 Implementierung ame des Produktes Produkt 7669 Status des gewaehlten Produktes 1 preis 94 65 In den Warenkorb http power2 offis uni oldenburg de 8077 index jsp CMD product pld 7676 Abbildung 20 7 Darstellung von product jsp product jsp Diese Datei stellt die Details eines ausgew hlten Produktes dar wel ches per Parameter p d spezifiziert wird die der ProduktID eines Produktes aus der Datenbank entspricht Zu den Details geh ren der Name die Beschreibung der Verf
68. SASS ne 5 Ferigstetung Zvischerberihi 01 04 2003 30 04 2003 Be Anforderungsdefinitionen EEE man m STS Le e Erstellung zweiter Analyse SE ees man um Konzeption und E m oss wl ee Abbildung 2 3 Meilensteine 21 2 Anforderungsdefinition Gesamtszenario Nach der Erl uterung der Integration Analyse und des Shops werden im Folgenden die Beziehungen zwischen diesen einzelnen Komponen ten beschrieben Die Integration und die Analyse sind unabh ngig voneinander da die H ndler ebenso selber die M glichkeit haben sol len auf die Bibliothek zuzugreifen Die Integration wird in einem fest stehendem Rhytmus z B jede Nacht von au erhalb aufgerufen so dass die Kartenanbieterdatenbank f r geplante Analysen ausreichend aktuell ist Die Integration wird damit vom Kartenanbieter gesteuert Die Analyse wird vom Framework angesto en Der Online Shop dient der berpr fung und Visualisierung der Ergebnisse und folgt damit als letzter Schritt nach der Analyse 2 3 Nicht funktionale Anforderungen F r das System existieren folgende nicht funktionale Anforderungen e Portabilit t Durch den Einsatz von Java ist das System platt formunabh ngig einsetzbar wodurch eine hohe Flexibilit t ge geben ist e Stabilit t Fehlerbereinigung im Vorfeld wird durch das System gew hrleistet Dadurch ist das System stabil und dementspre chend fehlerresistent e Skalierbarkeit Das System gew hrleistet seine Funktionsf
69. Vergleich vom Gesamtprojekt 242 22 Zusammenfassung und Ausblick Im Folgenden sollen die Ergebnisse der Projektgruppe noch einmal zusammenfassend betrachtet werden Insbesondere soll dabei ein Aus blick gegeben werden wie die Ergebnisse in Zukunft verwendet wer den k nnen und wo sich Erweiterungen oder Verbesserungen anbrin gen lieBen Dieses Kapitel wird so gegliedert dass jede Teilaufgabe einzeln be trachtet wird und abschlieBend eine Schlussbetrachtung f r die ge samte Projektgruppe stattfindet 22 1 Gesamtszenario Die erste Aufgabe innerhalb der Projektgruppe war der Entwurf eines geeigneten Gesamtszenarios Da einer der Schwerpunkte der Projekt gruppe die Verteiltheit der Analysen war wurde das Gesamtszenario so gew hlt dass zwei H ndler und ein Kartenanbieter existieren sie he Kapitel 2 Dadurch sollte vor allem gezeigt werden dass das zu entwerfende Framework an beliebiger Stelle eingesetzt werden kann und auch das Analyseergebnisse ausgetauscht werden k nnen Im Verlauf der Projektgruppe hat sich jedoch herausgestellt dass das sehr groB gew hlte Gesamtszenario nicht komplett abgedeckt wer den konnte Im Speziellen hat die n tige Integration relativ viel Zeit ben tigt die unter Umst nden besser in die Entwicklung eines um fangreicheren Frameworks oder Personalisierungskonzeptes h tte in vestiert werden k nnen Es l sst sich feststellen dass die Verteiltheit des Frameworks zwar gegeben ist aber das
70. WG1 Normal Distribution Mean WG2 Normal Distribution Mean WG3 Normal Distribution Mean WG4 Normal Distribution Mean WG5 Normal Distribution Mean WG6 Normal Distribution Mean WG7 Normal Distribution Mean 14 6042 StdDev 12 0234 StdDev 12 8355 StdDev 15 4799 StdDev 13 2403 StdDev 14 4899 StdDev 13 7664 StdDev 0 StdDev 0 001 0 StdDev 0 001 0 StdDev 0 001 0 StdDev 0 001 100 StdDev 0 001 0 StdDev 0 001 0 StdDev 0 001 17 6367 StdDev 11 1332 StdDev 14 2594 StdDev 14 3869 StdDev 12 9098 StdDev 12 5936 StdDev 13 6695 StdDev Personalisierung 2 9089 0 249 25 11 0 2 324 32 31 0 4 34 3 51 0 6 120 12 71 0 8 82 8 9 128 13 10 1 0 11 62 6 Log likelihood 2 2629 315 Personalisierung 316 Abbildungsverzeichnis 2 1 Aufgabenstellung E a e i a 16 2 2 Gesamtszenario 17 2 3 Meilensteine 21 3 1 Wasserfallmodell 4 28 4 1 Klassendiagramm 2 2 2 2 nn 36 4 2 Sequenzdiagramm 37 5 1 Angepasstes Datenbankschema des Kartenanbieters 40 5 2 Subject Area Kunden 41 5 3 Subject Area Transaktionen 42 5 4 Subject Area H ndler 43 5 5 Subject Area Produkte 2 2222 222220 44 10 1 Schematische Darstellung des Frameworks 81 12 1 Klassendiagramm 2 2 2 m nn nn 96 14 1 Daten und Kontrollfluss im Framework
71. Zeilen in Anspruch nehmen Diese Art der Speicherung erfor dert es dass die Spalten in denen die Vektor Attribute gespeichert werden sollen NULL Werte erlauben Standardausgabe Sollen die erzeugten Daten lediglich schnell ange sehen werden oder vielleicht per Pipeline einer anderen Anwendung zur Verf gung gestellt werden kann der SimpleStdout Writer verwen det werden Dieser schreibt jede zu speichernde Instanz einfach per System out println in die Standardausgabe Daher ben tigt er auch keine Parameter Algorithmen Dieser Abschnitt beschreibt welche Algorithmen mit dem Frame work gesteuert werden k nnen Generell soll es m glich sein mit dem Framework beliebige Algorithmen zu steuern In der Praxis be schr nkt sich dies momentan auf Algorithmen die nur eine Daten guelle als Eingabe ben tigen Dies ist dadurch begr ndet dass es im Rahmen der Projektgruppe nicht erforderlich ist Algorithmen zu verwenden die mehrere Datenguellen ben tigen Ein Beispiel hierf r sind Klassifikatoren die sowohl Trainingsdaten als auch die eigentlich zu untersuchenden Daten ben tigen Im Folgenden werden die im Framework benutzbaren Algorithmen vorgestellt Clustering Das Framework bietet standardm ig vier in WEKA implementierte Clusterer an Dabei handelt es sich um SimpleK Means WF01 XMeans PM00 Erwartungsmaximierung WF01 116 14 3 Implementierung sowie Cobweb Fis87 Alle diese Algorithmen verf gen ber eine Re
72. auf die an anderer Stelle n her eingegangen wird siehe Kapitel 15 3 3 15 1 3 Assoziationsanalyse Unter dem Begriff Assoziationsanalyse wird das Identifizieren und Beschreiben von Regionen bzw Datenbereichen in einer Datenbank verstanden in denen mit hoher Wahrscheinlichkeit mehrere Werte 141 15 Konzept Nicht temporale Personalisierung gleichzeitig auftreten Es wird mit der Assoziationsanalyse nach As soziationsregeln gesucht mit Hilfe derer die Ergebnisse dargestellt werden vgl Saa03 Die Analyseergebnisse k nnen dabei durch Angabe einer minimalen Konfidenz und eines minimalen Supports eingeschr nkt werden F r diese beiden Interessantheitsma e k nnen Schwellenwerte vorgegeben werden Der Support gibt prozentual an in wieviel Transaktionen beide Produkte zusammen erworben wer den in Bezug zu allen Transaktionen F r die Konfidenz von Produkt A und B wird die Anzahl der Transaktionen bestimmt die A und B enthalten in Bezug zu allen Transaktionen in denen A erf llt ist Es wird die Zuverl ssigkeit der Regel bewertet d h wie wahrscheinlich der Kauf von Produkt B ist wenn Produkt A gekauft wurde Die Konfidenz wird demnach als eine bedingte Wahrscheinlichkeit defi niert Ausgangsdaten Wenn die Analyse beispielsweise auf der Daten bank des H ndler 1 basieren soll dann befinden sich die Ausgangs daten in Relation Posten Analyseverfahren Assoziationsanalyse Apriori Interpretation Aus diesen Analy
73. dargestellt werden Direkt unterhalb des Anmeldeformulars werden die f nf meistverkauf ten Produkte der Kunden des Clusters welches unter Ber cksichti gung der Aspekte des Alters und der Postleitzahl erstellt wurden und zu dem der angemeldete Kunde klassifiziert wurde dargestellt Darunter erscheinen die f nf meistverkauften Produkte der Kunden des Clusters welches unter Ber cksichtigung der Aspekte des Alters und des Geschlechts gefunden wurde und zu dem der angemeldete Kunde klassifiziert wurde dargestellt 20 4 2 Einbinden von Assoziationsregeln Eine weitere wichtige Anwendung der Personalisierung im Online Shop ist das Einblenden von Produkten die dem Kunden zum Kauf empfohlen werden Dies geschieht auf zwei grunds tzlich verschiedene Arten e Auf der Produktdetailseite werden dem Kunden Produkte an geboten die gem den gefundenen Assoziationsregeln mit dem 231 20 Shop dargestellten Produkt zusammen gekauft werden e Auf allen Seiten werden dem Kunden Produkte angeboten die bevorzugt an dem aktuellen Tag gekauft werden F r beide Einblendungen wird die Klasse diko shop AssociationRules verwendet Diese bietet zwei Methoden um Assoziationsregeln aus der Datenbank zu laden Die Methode loadRules float minSupport erzeugt eine Liste von Pro dukten die in Assoziationsregeln vorkommen die mindestens den angegebenen Support erf llen und zum aktuellen Datum g ltig sind Diese Methode wird benutzt um die z
74. der Analyseergebnisse im Online Shop Abgeschlossen wird dieser Abschnitt mit dem technischen Handbuch in dem die Umsetzung der Implementierung beschrieben wird 16 1 2 Kennenlernen von WEKA WEKA WFO1 ist eine Java Bibliothek die zum Data Mining verwen det wird Im Folgenden werden die f r das Clustering notwendigen Funktionen und die durchgef hrten Testl ufe zum Kennenlernen von WEKA vorgestellt Funktionen Die f r die Projektgruppe interessanten Funktionen gliedern sich in e Vorverarbeitung In der Phase der Vorverarbeitung gibt es ver schiedene M glichkeiten die f r das Clustering notwendigen At tribute in WEKA zu importieren Die erste M glichkeit besteht darin eine schon vorher angelegte Datei ARFF Datei mit den gew nschten Attributen zu ffnen Desweiteren l t sich unter dem Punkt OpenDB direkt eine SQL Abfrage angeben welches 152 16 1 Clusteranalyse nach Kunden aus einer vorher zu definierenden DB URL ausgef hrt wird Auf diese Weise werden die f r die folgende Analyse notwen digen Attribute zur Verf gung gestellt WEKA bietet dabei die Data Mining Verfahren Klassifikation Clustering und Assozia tionsanalyse an wobei in diesem Abschnitt nur das Clustering n her betrachtet wird e Clustering Bei der Auswahl der Clusteralgorithmen lassen sich weitere Voreinstellungen treffen wobei drei verschiedene zur Auswahl stehen SimpleKMeans cobweb und EM Die im n chs ten Punkt erl uterten Testl uf
75. der Fuzzy Match zusammen mit einem Wildcard Muster be nutzt berechnet sich der Fuzzy Support aus der Anzahl der dem Muster zugeh rigen elementaren Zeitintervalle Der Algorithmus erwartet Daten als Instanzen der Form Kunden Transaktions oder Warenkorbnummer Datum und Artikelnummer wobei die Instanzen nach dem Datum aufsteigend sortiert sein m ssen und an einem Tag keine Kundennummer in zwei Warenk rben gleich zeitig vorkommen darf Des Weiteren d rfen in einem Warenkorb die Artikelnummern nur disjunkt vorkommen Das Start und Enddatum wird als calendar angegeben und die Sup port Werte als double Wird kein Fuzzy Support Wert angegeben wird ein Default Wert von 1 angenommen welches dem Precise Match entspricht Als Ergebnisse werden Instanzen erzeugt die vom Framework in eine Datenbank gespeichert oder anders weiterverar beitet werden k nnen 13 2 Klassendesign Die drei Klassen welche den Algorithmus implementieren sind Tem poralAssociationRules Basket und SetOfBaskets Zur Fehlerbehand lung in TemporalAssociationRules wurde zudem die Fehlerklasse In validSupportEzxception implementiert Die Abh ngigkeiten der Klas 102 13 3 Implementierungsdetails sen werden im Folgenden beschrieben Die Klasse TemporalAssociationRules implementiert die Logik des Al gorithmus S mtliche Berechnungen sofern sie nicht einem bestimm ten Datentyp zugeordnet sind werden durch sie durchgef hrt Zur Verwaltung der kalenda
76. der Klasse Loader der Parameter init bergeben wird 72 8 2 Probleme beim Import der Daten des H ndler 1 8 2 Probleme beim Import der Daten des H ndler 1 Im Zusammenhang mit H ndler 1 ist das Problem der Hierarchie bildung bez glich verschiedener Warenkategorien aufgetreten wobei w hrend des Anlegens die Reihenfolge beachtet werden musste Ei ne bessere L sung dieses Problems w rde die Erstellung von Baum strukturen w hrend der Programmlaufzeit darstellen Aufgrund der Beschaffenheit der Testdaten bzgl einer Ordnung in den Warengrup pen ist eine Behandlung dieses Problems nicht erforderlich 8 3 Probleme beim Import der Daten des H ndler 2 Im Datenbankschema von H ndler 2 stellt die Hausnummer zusam men mit der Stra e ein Attribut dar welches eine Verletzung der Atomarit t darstellt Im Kartenanbieterdatenbankschema hingegen bildet die Hausnummer ein eigenes Attribut Dieses Problem ist durch die Einf hrung der Hausnummer 1 gel st worden Eine Alternative stellt das Parsen des Attributs dar das die Stra e und die Hausnum mer beinhaltet Ein weiteres Problem von H ndler 2 stellen zudem fehlende Werte f r Prim rschl ssel im Datenbankschema des Kartenanbieters dar Gel st wurde dieses Problem durch das Anlegen von k nstlichen Wer ten wie zum Beispiel den Wert 1 f r NUMBER Attribute oder das Datum 01 Jan 1900 f r TIMESTAMP Attribute Des Weiteren fehlt im Datenbankschema von H ndler 2 eine Relation
77. die Hauptbestandteile des zu implementieren den Frameworks dargestellt Zun chst ist ein Datenstrom zu imple mentieren der f r den Import der Quelldaten sowie den Export der Ergebnisse zust ndig ist Der Strom soll die M glichkeit bieten ber Metadaten gesteuert zu werden und gro e Datenmengen schrittweise verarbeiten zu k nnen Letzteres hat den Vorteil Datenmengen ein lesen zu k nnen die nicht vollst ndig in den Hauptspeicher passen Weiterhin soll es ber Kontrolldaten m glich sein das Framework zur Laufzeit konfigurieren zu k nnen Dies schafft die Voraussetzung um wiederkehrende Analysen vorzukonfigurieren Algorithmen aus zuw hlen und diese automatisiert ablaufen zu lassen Eine zentrale Rolle spielt die Erweiterung WEKAs um temporale Da tenhaltung und Datenanalysen Das Framework sorgt f r die korrekte Ansteuerung der Bibliothek anhand der Kontrolldaten Im Folgenden werden die funktionalen Anforderungen der einzelnen Teilbereiche f r den ersten Schritt detailliert dargestellt Das Framework stellt kein eigenst ndiges Programm dar sondern kann nur als Bibliothek in anderen Programmen verwendet werden Dazu wird das Framework als Klasse instanziiert und bietet dann die M glichkeit Analysen anzusto en In der ersten durch diesen Teil schritt realisierten Form wird es nur m glich sein die zwei zu im plementierenden Algorithmen zu verwenden Diese werden vorraus sichtlich durch zwei spezielle Funktionen oder
78. dort ein Wert von 150 verwendet der gr er als die maximale Clusteranzahl ist und somit auf jeden Fall ausreichend gew hlt ist cutOffFactor Bestimmt wie viele der besten Splits verwendet wer den wenn die Bewertung ergeben hat dass keins der Kinder Centroide besser ist als der Vater Centroid Als optimal hat sich ein Wert von 0 5 erwiesen 16 3 3 Anwendung der Ergebnisse im Shop Es gibt zwei M glichkeiten die Ergebnisse im Shop zu verwenden Die erste ist die dynamische Einblendung von Produktkategorien ba sierend auf der aktuellen Zusammensetzung des Warenkorbes Zum Beispiel k nnten jemandem der bereits Produkte vom Typ Bier im Warenkorb hat Kategorien vom Typ Chips vorgeschlagen werden Der gro e Nachteil dieser den Assoziationsregeln sehr hnlichen Me thode ist dass es sehr kompliziert ist diese Zusammenh nge aus den Clustern zu erlangen Es m ssten alle Centroide mit dem aktuellen Warenkorb unter Zuhilfenahme der Distanzfunktion des Clusterers verglichen werden Daraus kann eine Rangliste von hnlichkeiten 193 16 Anwendung Nicht temporale Analysen des aktuellen Warenkorbs zu den Centroiden generiert werden in dem Centroide mit einer geringeren Distanz als besser und somit h her eingestuft werden AnschlieBend wird der Centroid genommen der in der Rangliste am h chsten steht und Produkttypen enth lt die noch nicht im aktuellen Warenkorb sind Diese Produkttypen werden dem Nutzer dann vorgeschlag
79. er die angegebene Datei nicht lesen kann wird eine SourceNotAvailableException siehe Abschnitt 14 3 2 geworfen Zugriff auf JDBC Datenbanken Der ConfigurableJDBCSourcelter ator erlaubt Zugriff auf Datenbanken die ber die JDBC Schnittstelle ansprechbar sind Sie ben tigt Optionen die die Verbindungsparame ter Datenbanktreiber Login usw sowie ein g ltiges SQL Statement 114 14 3 Implementierung spezifizieren Optional ist es m glich anzugeben welche der ausgele senen Spalten als temporale Daten erkannt werden In diesem Fall er zeugt der ConfigurableJDBCSourcelterator temporale Instanzen an stelle der standardm ig verwendeten normalen Instanzen Datensenken Die verf gbaren Datensenken befinden sich im Package diko frame work output Es gibt Implementierungen f r ARFF Dateien JDBC Datenbanken und eine einfache Implementierung die die Daten auf die Standardausgabe schreibt Speichern in ARFF Dateien Die Klasse ArffWriter erm glicht es die erzeugten Analysedaten in einer herk mmlichen ARFF Datei zu speichern Auf diese Weise ist es z B leicht m glich die vom Frame work erzeugten Ergebnisse mit der Original Version von WEKA wei ter zu verarbeiten Die Klasse arbeitet auch ohne Optionen schreibt die erzeugten ARFF Daten dann aber nicht in eine Datei sondern auf die Standardausga be Wird ein Dateiname als Option angegeben werden die Daten in diese Datei gespeichert Speichern in JDBC Datenbanken S
80. fuzzyUpdate zum automatischen Inkrementieren des Fuzzy Z hlers f r alle Warenk rbe des aktuellen SetOfBaskets e MixToNPlus1Sets Bildet aus allen Warenk rben wobei alle die gleiche Gr e N haben neue Warenk rbe der Gr e N 1 wenn sich die einzelnen Warenk rbe nur in einem Artikel un terscheiden 94 12 Technisches Handbuch Cache Im Folgenden soll die technische Realisierung des im Entwurf siehe Kapitel 11 erw hnten Caches beschrieben werden Der Cache tr gt daf r Sorge dass immer nur ein begrenzter Teil der Daten im Haupt speicher vorgehalten wird Die Daten liest er selber immer aus einem Sourcelterator und speichert sie lokal in einer Berkeley DB Sof03 die als Swap fungiert Die Klasse Instances beh lt ihr Interface damit m glichst wenige nderungen an vorhandenem Code durchgef hrt werden m ssen Allerdings werden jetzt alle Datenzugriffe direkt an den Cache weitergeleitet d h die Klasse Instances dient nur noch als Metadaten Container 12 1 Klassendesign Die drei zentralen Klassen die f r die Caching Funktionalit t sorgen sind Instances InstanceCache und Sourcelterator Die Abh ngigkei ten der Klassen sind in Abbildung 12 1 zu sehen und im Folgenden beschrieben Die Klasse Instances hat ihr aus WEKA bekanntes Interface behalten Dik03 Zum einen hatte sie die Aufgabe die Metadaten im Spezi ellen also die Attributinformationen zu verwalten und zum anderen den Zugriff auf einzelne Instanzen
81. gbarkeitsstatus sowie die Versand kosten und der Verkaufspreis des Produktes Unten auf der Seite wird ein Link dargestellt der das Produkt in den Warenkorb einf gt 225 Produkt Produkt 7008 http power2 offis uni oldenburg de 8077 index jsp CMD product amp pld 7676 Abbildung 20 8 Darstellung von basket jsp basket jsp Die Datei basket jsp ist f r die Darstellung des Warenkorbs zust ndig Die Daten des Warenkorbs werden ber die Klasse diko shop Basket verwaltet Zu Beginn einer Session wird ein neues Objekt dieser Klas se angelegt und in der Session gespeichert Auf der Warenkorb Seite werden dann die im Basket enthaltenen Produkte dargestellt Jedes Produkt wird mit seinem Namen der momentan im Warenkorb vor handenen Anzahl und einem Link zum Entfernen des Produktes aus dem Warenkorb dargestellt Die Anzahl der im Warenkorb befindli chen Produkte wird in einem Formularfeld dargestellt mit dem sie sich manipulieren l sst Au erdem werden die Kosten des gesamten Warenkorbs dargestellt 226 20 2 Implementierung Menschen Ihren Alters und aus Ihrer geographischen Umgebung haben folgende Produkte gekauft 1 Produkt 9739 Abbildung 20 9 Darstellung von user jsp user jsp Diese Datei stellt die demographischen Daten eines Nutzers dar Hier zu z hlen Name Vorname Geburtsdatum Anrede Adresse E Mail Telefon und die G ltigkeitszeitstempel Die Daten werden zur Auf rufzeit der Seit
82. geeigneter ist der Klassifikator Galaxie Eine ist ein Schema mit mehreren Fakttabellen Gau verteilung Eine Gau oder auch Normalverteilung ist eine bestimmte Wahrscheinlichkeitsverteilung die durch ihren Mittelwert und ihre Varianz eindeutig bestimmt ist Generalisierung bezeichnet eine Methode die eine kompakte Beschreibung einer gegebenen Datenmenge zur ckliefert Wird in der attributorientierten Induktion und beim OLAP verwendet Gl serner Kunde Die Angst von Konsumenten vor dem Zustand da Unternehmen durch Datensammlung ein Pers nlichkeitsprofil er stellen k nnen und Kunden damit beeinflussen wird in dem Begriff zusammengefasst G ltigkeitszeit ist die Darstellung des Zeitraumes in dem das Objekt den abgebildeten Zustand zeigt Granularit t Die ist der Verdichtungsgrad von Fakten entlang der Ebenen der beteiligten T Dimensionshierarchien 335 Glossar Hauptkomponentenanalyse bezeichnet ein Verfahren zur Di mensionsreduktion bei dem versucht wird Regressoren aus der Re gressionsgleichung zu entfernen die nur wenig Erkl rungszuwachs zu einer zu erkl renden Variablen liefern und demnach m glichst ohne Informationsverlust aus der Gleichung entfernt werden k nnen Header Ein enth lt Meta Informationen die bei jedem Request oder jeder T Response mitgeschickt werden Hierarchieebene Die Daten in den Dimensionen lassen sich auswer tungsorientiert zusammenfassen Fine solche Zusam
83. glichen es in einem einzelnen Attribut mehrere 118 14 4 Parameter der vorhandenen Implementierungen Werte zu speichern So ist es z B m glich ein Attribut zu definieren welches eine Reihe von Produkt IDs aufnimmt Auf diese Weise sind auch Assoziationsregeln mit mehreren Produkten in WEKA m glich Eine genaue Beschreibung wie die Vektor Attribute implementiert wurden l sst sich den Javadoc Kommentaren in Dik03 entnehmen 14 4 Parameter der vorhandenen Implementierungen Dieser Abschnitt listet alle im Framework verf gbaren Parameter auf Zun chst werden die notwendigen Parameter des AlgorithmRunner beschrieben der zur Durchf hrung einfacher Analysen benutzt wird Im Anschluss werden die Parameter der dabei verwendbaren vorhan denen Datenquellen senken und Analysealgorithmen beschrieben Zum Abschluss wird erl utert welche Parameter ben tigt werden um mit Hilfe des AnalysisRunner komplexe Analysen durchzuf hren 14 4 1 AlgorithmRunner Jede einfache Analyse wird durch die Klasse AlgorithmRunner ge steuert Um dies auch au erhalb des eigenen Java Codes zu erm gli chen verf gt der AlgorithmRunner ber eine main Methode Diese erwartet als Parameter den Namen einer Konfigurationsdatei In ihr werden alle f r die Durchf hrung der Analyse ben tigten Parameter definiert Dazu geh ren sowohl die Parameter die der AlgorithmRun ner selbst auswertet als auch die die er an die beteiligten Datenquel len senken
84. hig keit auch bei gro en Datenmengen e Benutzerfreundlichkeit bergabe von Steuerungsparameter Das System bietet eine einfache Bedienung und Ubersichtlich keit e Wartbarkeit Das System ist ausf hrlich dokumentiert und be sitzt eine bersichtliche Programmstruktur die die Wartung erleichtert e Sicherheit Der Zugriff auf die Datenbanken wird nur f r be rechtigte Nutzer erlaubt wodurch eine Sicherheit der Daten gew hrleistet wird Die Verbindungen sind hingegen nicht ge sichert da dieses nicht der Aufgabenstellung zu entnehmen ist und eines hohen Arbeitsaufwandes bedarf Eine wichtige Qualit tsanforderung ist eine detaillierte Dokumenta tion des Systems 22 2 4 Benutzerschnittstellen und Fehlerverhalten 2 4 Benutzerschnittstellen und Fehlerverhalten Das Programm kann Fehler abfangen und verursacht keine Syste minstabilit t Stattdessen wird eine Fehlermeldung ausgegeben Eine n here Beschreibung des Fehlerverhaltens sowie der Benutzerschnitt stellen l sst sich den Anforderungsdefinitionen der Integration siehe Abschnitt 4 1 und Analyse siehe Kapitel 10 entnehmen 2 5 Dokumentationsanforderungen Die Programmdokumentation beinhaltet die Anforderungsdefinitio nen die Entw rfe bestehend aus der objektorientierten Analyse OOA und des objektorientierten Designs OOD die dokumentierten Sour ce Codes sowie Benutzer und Entwickler Handbuch Klassen Attri bute und Methoden werden mit Hilfe von Java
85. hren wobei eine Analyse immer aus m Pre oder Postprozessoren und einer einfachen Analyse gesteu ert durch den AlgorithmRunner besteht Dazu werden die folgenden Parameter ben tigt analysis_ properties Dateiname einer Property Datei in der die f r die i te Analyse ben tigten Parameter spezifiziert sind analysis i preprocessor j Vollst ndiger Klassenname des j ten Preprocessor der i ten Analyse 125 14 Technisches Handbuch Framework analysis i postprocessor j Vollst ndiger Klassenname des j ten Postprocessor der i ten Analyse Die Indizes f r die Analysen m ssen jeweils bei 0 beginnen und dicht sein d h ohne die Angabe einer Analyse mit dem Index 1 wird eine angegebene Analyse mit einem Index i gt 1 nicht beachtet Gleiches gilt f r die Pre und Postprozessoren 14 5 Anwendungsbeispiele In diesem Abschnitt wird exemplarisch die Durchf hrung zweier Ana lysen beschrieben Im folgenden Abschnitt wird zun chst eine einfa che Analyse dargestellt in Abschnitt 14 5 2 eine komplexe Analyse mit Pre und Postprozessoren 14 5 1 Einfache Analyse mittels AlgorithmRunner Dieser Abschnitt beschreibt am Beispiel des Anwendungsfalles von Clustering mittels SimpleKMeans auf Daten aus einer JDBC Daten bank die Funktionsweise des Frameworks bei der Durchf hrung ei ner einfachen Analyse Im beschriebenen Fall werden die Daten aus einer JDBC Datenbank geladen dem Cluster Algorithmus SimpleK Means bergeben und
86. im November zusammen gekauft werden Grunds tzlich besteht ein Muster aus mindestens zwei Produkten Es ist aber eben so m glich dass mehr als zwei Produkte zeitgleich in diesem Kontext am selben Tag zusammen gekauft werden In diesem Fall wird so wohl das gr tm gliche Muster dieser Produkte als auch alle Unter muster als Ergebnis ausgegeben Existiert z B ein Muster mit f nf Produkten w rde der Algorithmus sowohl dieses Muster als auch alle Teilmengen mit nur vier drei und zwei Produkten ausgeben Zu diskutieren ist ob dieser Algorithmus f r die angestrebte Perso nalisierung n tzlich ist Ein erster Kritikpunkt ist die Granularit t 198 17 2 Temporales Clustering von Warenkorbdaten da Regeln die den Produktkauf zu einer bestimmten Tageszeit oder an einem bestimmten Wochentag beschreiben nicht implementiert werden Gerade die Unterst tzung von Wochentagen Montag Diens tag ist schwierig da diese einem anderen Schema folgen als Tage Monate und Jahre Doch speziell die Erweiterung auf ein Kalender Schema das Wochentage oder noch besser Tageszeiten z B auf eine Stunde genau angibt w re w nschenswert Wie ist der praktische Nutzen wenn wir Muster mit der Genauigkeit eines Tages erhalten Die Aussage dass zum Beispiel an jedem ersten eines Monats also 1 Produkt 1 und Produkt 3 zusammen ge kauft werden k nnte f r die Personalisierung so verwendet werden dass jeder Kunde der eines der b
87. in Tabelle 16 32 zu sehen wiederum etwas korrigiert werden Ergebnis des Clusterings nach PLZ und Geburtsjahr Die Abwei chung in der Verteilung der Kundendaten hat dazu gef hrt dass die Parametereinstellungen variiert werden mussten Es sind dabei jedoch im Vergleich zum Clustering auf den synthetisch erzeugten Testda ten wiederum fast identische Kundengruppen gefunden worden vgl 180 16 1 Clusteranalyse nach Kunden SQL Query select to char k gebdatum KK a plz from Adresse a Kunde k Adresse Kunde ak where k knd id ak knd id and k knd sid ak knd sid and ak a id a a id and ak a sid a a sid and ak typ 1 Clusteralgorithmus SimpleKMeans Anzahl vorgegebener Cluster H Tabelle 16 32 Einstellungen knd id gebdatum plz jaa m 135 145 150 152 6 s e SI Et Tabelle 16 33 Ergebnis knd id gebdatum plz 181 16 Anwendung Nicht temporale Analysen Tabelle 16 33 und Tabelle 16 27 Diese gefundenen Kundengruppen lassen sich ebenfalls f r die Personalisierung innerhalb des Shops ver wenden vgl Abschnitt 16 1 7 16 1 7 Anwendung im Online Shop Das vorgestellte Clustering zur Identifikation von Kundengruppen kommt im Projektgruppenszenario im Shop zum Einsatz Das Ziel ist dabei den Kunden ein personalisiertes Angebot zu unterbreiten Dabei kommen die beim Clustering entdeckten Kundengruppen wie im folgendem beschrieben zur Anwendung Die jeweilige ID die zur Identifikation der Kunden notwend
88. innerhalb eines Monats auch die CD Greatest Hits C von Dieter Bohlen 203 17 Konzept Temporale Personalisierung 204 18 Anwendung temporaler Analysen Dieses Kapitel zeigt die Anwendung der im vorangegangenen Ab schnitt dargestellten temporalen Analysen auf siehe Kapitel 17 Es werden Konfiguration und Ergebnisse der kalendarischen Muster so wie des temporalen Clusterings gezeigt 18 1 Kalendarische Muster Nach Abschluss der Implementierung des Algorithmus zum Finden kalendarischer Muster wurden verschiedene Analysen gestartet Im Folgenden wird die Konfigurationsdatei sowie das damit erzielte Er gebnis beispielhaft erl utert 18 1 1 Konfiguration und Parameter Es wurde u a die folgende Konfigurationsdatei verwendet source diko framework input ConfigurableJDBCSourcelterator relation blubber source jdbcDriver oracle jdbc driver OracleDriver source jdbcConnection jdbc oracle thin power2 offis uni oldenburg de 1521 power2 source jdbcLogin haendler1 source jdbcPassword xXxxxxXxXxx source jdbcSQL SELECT DISTINCT w wk_id w tza w tze w gza w gze p p_id FROM warenkorb w produkt_warenkorb p WHERE w wk_id p wk_id AND rownum lt 1000000 205 18 Anwendung temporaler Analysen AND w wk_id gt 4 order by w tza asc source tza 1 source tze 2 source gza 3 source gze 4 attributeName_0 kid attributeType 0 numeric attributeName_1 p_id attributeType_1 nominal sink jdb
89. k nnen als Basis f r ein Clustering der Kunden nach ihren gekauften Produkten genutzt werden vgl Abschnitt 15 1 2 Dadurch k nnen Kunden aufgrund ih rer get tigten Transaktionen den Preis oder Produktkategorien zuge ordnet werden die anhand des Clustering nach Preis bzw Kategorie gefunden wurden Ausgangsdaten Die Ausgangsdaten stellen die Preis oder Pro duktkategorien dar die durch das Clustering nach Produktpreis oder nach Produktkategorie i V m dem Preis gefunden wurden siehe Ab schnitt 15 3 1 Analyseverfahren Clustering SimpleKMeans cobweb EM XMeans Interpretation Die Analyse dient dazu einzelne Kunden den ge fundenen Preis und Produktkategorien zuzuordnen Dadurch kann mittels vorangegangenen Clustering nach dem Preis z B festgestellt werden ob ein Kunde vorangig g nstige Eink ufe t tigt oder ob er ein Kunde ist der eher teure Produkte bevorzugt Basiert die Analyse auf Daten die aus dem Clustering nach Produktkategorie resultieren kann den Kunden zugeordnet werden ob sie z B g nstige oder teure Haushaltswaren kaufen 146 15 3 Weitere M glichkeiten des Clusteralgorithmus Beispiel e ein Kunde der haupts chlich teure Schokolade kauft kauft eben falls teure Bonbons Clustering nach Produktpreis in Verbin dung mit Clustering nach Kunden und gekauften Produkten e ein Kunde der haupts chlich teure Nahrungsmittel kauft kauft jedoch g nstige Bekleidung Clustering nach Produktkatego
90. lassen sich beliebig vie le Pre und Postprozessoren zu Analysen zusammenfassen Wird solch eine Analyse gestartet werden zun chst der Reihe nach die Preprozessoren dann der AlgorithmRunner und schlie lich die Postprozessoren ausgef hrt 3 Analysen k nnen ber die Klasse AnalysisRunner zusammen gefasst und nacheinander ausgef hrt werden 109 14 Technisches Handbuch Framework Eine schematische Darstellung der Ausf hrung solcher komplexer Ana lysen findet sich in Abbildung 14 2 Analysistunner Analysis 0 Analysis N Preprocessor 1 AlgorithmRunner Postprocessor 1 Preprocessor 1 AlgorithmRunner Postprocessor 1 Preprocessor N Postprocessor N Preprocessor N Postprocessor N Ausf hrungsreihenfolge Abbildung 14 2 Ausf hrung komplexer Analysen 14 2 1 Steuerung des Frameworks Das Framework kann komplett ber Parameter gesteuert werden Wird das Framework direkt aus einem eigenen Java Programm ver wendet k nnen die Parameter in Form von java util Properties ber geben werden Soll das Framework stattdessen als eigenst ndige Ap plikation verwendet werden werden die Parameter in einer Konfi gurationsdatei angegeben Das Format dieser Datei ist durch die ja va util Properties Methode load Mic03 vorgegeben Eine genaue Be schreibung der jeweils ben tigten Parameter findet sich in Abschnitt 14 4 14 2 2 Auslesen der Daten aus der Datenquelle Um d
91. mehr als gefordert Durch die M glich keiten der komplexen Analyse siehe Abschnitte 14 2 und 14 5 2 ist es m glich in einem Lauf mehrere Analysen zu betreiben und diese mit beliebigen Pre und Postprozessoren zu verkn pfen Allerdings ist das Framework gewissen Einschr nkungen unterlegen die im Kontext der Projektgruppe jedoch nicht relevant sind Zum Beispiel ist es ohne nderungen am Framework nicht m glich Klassi fikatoren zur Analyse zu verwenden Der Grund ist dass Klassifikato ren zwei unterschiedliche Eingaberelationen ben tigen die Test und die Trainingsdaten siehe auch Pre03 Das Framework unterst tzt allerdings nur eine Eingaberelation pro Analyse Weiterhin w re eine Funktion w nschenswert die f r Algorithmen die dies konzeptionell unterst tzen eine inkrementelle Analyse er m glicht Einige Klassifikatoren in WEKA unterst tzen dies beispiels weise bereits Das Framework kann davon jedoch keinen Gebrauch machen Ein wichtiger Punkt ist sicherlich auch die Verwendung von Meta daten Standards zur Steuerung des Frameworks Darauf wurde bei 130 14 6 Fazit der Implementierung jedoch verzichtet da die Einarbeitung in einen Metadaten Standard als zu zeitraubend angesehen wurde Stattdes sen wurde ein eigenes Format entwickelt Der Nachteil dessen ist die fehlende Interoperabilit t mit anderen Metadatenformaten Trotz der Unzul nglichkeiten ist das Framework in der Lage die im Rahmen der Projektgrup
92. sind so minimal dass die Unterteilung der Kunden in die gefundenen Gruppen als nicht sehr sinnvoll erscheint Die Ver nderungen der Parameter haben dabei keinen gro en Ein fluss auf diese Erscheinung Die Ergebnisse einiger Analysen sind dem Anhang zu entnehmen Abschnitt VI Der dritte Algorithmus Simple KMeans erwies sich als beste Wahl unter den drei zur Verf gung gestellte Verfahren weswegen dieser haupts chlich zum Test der Analyse verwendet wurde Die Ergebnis se dieser Analysen sind ebenfalls dem Anhang zu entnehmen VI Der Algorithmus ist ber die beiden Parameter seed der einen In itialwert f r die Berechnungen vorgibt und die maximale Anzahl an Clustern zu steuern Es wurde willk rlich der Wert 5 f r die Clu steranzahl zu Beginn gew hlt und mit verschiedenen seed Werten kombiniert Auff llig war hierbei dass bei einem seed von 1 nicht die Maximalzahl an Clustern genutzt wurde sondern die K ufer nur in zwei gro e Gruppen unterschieden wurden Die Differenzierung er folgt haupts chlich beim dem Attribut WG1 12 zu 16 Prozent Da bei den meistens Analysen die Maximalanzahl erreicht wurde wird die Clusteranzahl auf 8 erh ht und eine hnliche Testreihe durch gef hrt seed 5 4 3 2 1 0 1 2 4 5 8 20 Die erste inter essante Beobachtung ist dass bei seed 4 das gleiche Resultat wie bei f nf Clustern und seed 1 entsteht siehe oben Bei einem seed von gr er 4 wird nicht mehr die Maximalzahl e
93. und zu Objekten au erhalb des Clusters eine geringe hnlichkeit haben Clustering Beim werden T Cluster gebildet die bez glich der zu analysierenden Daten in sich m glichst homogen und untereinander m glichst heterogen sind Cookie Im Internet Umfeld eine kleine Textdatei die lokal auf dem Rechner der surfenden Person abgelegt wird und in welcher Informa 329 Glossar tionen abgespeichert werden die im Zusammenhang mit der aktuellen T Website stehen Das wird bei jedem t Request an die Website mitgeschickt die das gesetzt hat Somit k nnen z B eindeutige Kennungen auf einem Client gespeichert werden Der Einsatz erfolgt z B beim Warenkorb einer kommerziellen Site zur Personalisierung einer Website oder f r die Nutzererkennung CRISP DM Der Cross Industry Standard Process for Data Mining ist ein Vorgehensmodell f r den T KDD Prozess Entwickelt wurde der von der Statistical Package for the Social Sciences Incorpora tion SPSS inc der National Cash Register Company NCR und Daimler Chrysler Customer Relationship Management CRM ist die Pflege von Kundenbeziehungen mittels einer Softwarel sung die alle Ge sch ftsvorg nge und Informationen eines Kunden erfasst z B die T Analyse aller Kauftransaktionen eines Kunden Ziel ist eine weit reichende Integration von Kunden Mitarbeitern Prozessen und Sy stemen Data cleaning Datenbereinigung Data integration Datenintegration Data Mart Das
94. wird 219 WEBSHOP Abbildung 20 2 Darstellung von header jsp header jsp Die Datei header jsp wird als zweite Datei von der Datei index jsp ein gebunden Sie beinhaltet das kleine DIKO Logo und die berschrift Shop jedoch keine dynamischen Inhalte 220 20 2 Implementierung Abbildung 20 3 Darstellung von navigation jsp ohne angemeldeten Benutzer navigation jsp Diese Datei erm glicht die Navigation durch die Seiten des Online Shops Es existiert eine Box mit einem Login Formular und einem Login Button falls kein Nutzer angemeldet ist Weiterhin befinden sich hier Links auf die Startseite und den Warenkorb 221 Abbildung 20 4 Darstellung von navigation jsp mit angemeldetem Benutzer Meldet sich ein Benutzer an so erscheint eine pers nliche Begr ung mit Nennung des Namens des angemeldeten Nutzers und ein Logout Button Weiterhin erscheint unter den beiden bereits vorhandenen Links ein weiterer mit dem Titel Ihre Daten der zur Darstellung der Seite user jsp f hrt 222 20 2 Implementierung Abbildung 20 5 Darstellung von root jsp root jsp Diese Datei stellt das DIKO Logo in gro em Format dar um den Online Shop mit dem DIKO Projekt in Verbindung bringen zu k nnen Darunter wird eine Tabelle dargestellt die Links zu den verschiede nen Produkt Kategorien beinhaltet 223 lilehprodukte Delikatessen 09090999 Produkt 7669 inden WK inden WK Produkt 9330 in den WK in den WK
95. zu liefern Diese Funktionalit t wurde aufgeteilt Die Klasse Instances verwaltet jetzt nur noch die Attribut Informationen und delegiert alle Datenzugriffe an die Klas se InstanceCache Dazu erzeugt die Klasse Instances ein Objekt der Klasse InstanceCache und speichert eine Referenz darauf Soll die Klasse Instances Daten aus einer Datenquelle lesen so muss ihr eine Referenz auf ein Objekt der Klasse Sourcelterator bergeben wer den die direkt an die Instanz der Klasse InstanceCache weiterge reicht wird Wird kein Sourcelterator angegeben m ssen die Daten manuell der Instanz der Klasse Instances hinzugef gt werden Der InstanceCache implementiert zwei Aufgaben n mlich das Laden der Daten aus dem Sourcelterator in den Cache im Hauptspeicher 95 12 Technisches Handbuch Cache attribute index int Attribute setSourcelterator source Sourcelterator instance index int Instance next Instance hasNext boolean numAttributes int numInstances int addInstance Instance inst void sort index int void moveTo index int void dataset InstanceCache setSource source Sourcelterator void next Instance hasNext boolean getElementat index int Instance numInstances int removeElementAt index int void moveTo index int void addElement instance Instance void position int Sourcelterator hasNext boolean next Instance reset void
96. zum Beispiel in die Kategorie Kinder fallen 0 18 Jahre Dieses ist jedoch nicht m glich gewesen da die Namen der Kunden in den angelegten Testdaten wie derum durchnummeriert gewesen sind welches zu nicht aussagekr fti gen Ergebnissen gef hrt h tte Qualit t der bisher angelegten Testdaten Aufgrund der negativen Ergebnisse der ersten Clusterversuche auf den bisherigen Testdaten sind diese im Folgenden n her betrachtet worden wobei mit Hilfe des Oracle Enterprise Managers speziell die Instanzen n her untersucht worden sind Es hat sich dabei ergeben dass die angestrebten Kundencluster mit Bezug auf das Geburtsjahr die Postleitzahl und das Geschlecht nicht realisiert werden k nnen Der Grund daf r sind die f r ein sinnvolles Clustering ungen genden Testdaten teilweise aber auch Formate mit denen keine aussage kr ftigen Cluster entstehen bzw ein Clustering gar nicht m glich ist 16 1 4 Anlegen und Erweitern von synthetischen Testdaten Aufgrund der schlechten Verwendbarkeit der bisherigen Testdaten sind im Folgenden synthetische Testdaten f r die Attribute Kunde nID Geschlecht Geburtsdatum und PLZ angelegt worden Es ist da mit begonnen worden Kunden mit vier verschiedenen Geburtsjahren jeweils dem Geschlecht und zwei verschiedenen Postleitzahlen anzu legen wobei diese im Laufe des Clusterings immer weiter abge ndert worden sind Auf diesen Daten sind verschiedene Clusterings aus gef hrt worden Die synthetisch
97. 1 56 6 2 349 35 3 324 32 4 192 19 5 3 0 6 80 8 Log likelihood 17 59983 15 2886 StdDev Scheme weka clusterers EM I 20 N 1 S 12 M 1 0E 6 Number of clusters selected by cross validation 4 Cluster 0 Prior probability 0 6732 Attribute WG1 Normal Distribution Mean 14 6095 StdDev 2 5478 Attribute WG2 Normal Distribution Mean 12 9085 StdDev 2 5136 Attribute WG3 Normal Distribution Mean 13 5882 StdDev 2 4857 Attribute WG4 Normal Distribution Mean 14 4372 StdDev 2 6181 Attribute WG5 Normal Distribution Mean 13 2875 StdDev 2 4159 Attribute WG6 Normal Distribution Mean 14 2328 StdDev 2 5384 Attribute WG7 Normal Distribution Mean 13 3756 StdDev 2 4152 Cluster 1 Prior probability 0 3227 Attribute WG1 Normal Distribution Mean 0 StdDev 0 Attribute WG2 Normal Distribution Mean 0 StdDev 0 Attribute WG3 Normal Distribution Mean 0 StdDev 0 Attribute WG4 Normal Distribution Mean 0 StdDev 0 Attribute WOR Normal Distribution Mean 0 StdDev 0 Attribute WG6 Normal Distribution Mean 0 StdDev 0 Attribute WG7 Normal Distribution Mean 0 StdDev 0 306 Cluster 2 Prior probability 0 0031 Attribute Attribute Attribute Attribute Attribute Attribute Attribute WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Norm
98. 113 11 Scheme weka clusterers SimpleKMeans N 8 S 0 Cluster centroids Cluster 0 13 258426966292134 15 617977528089888 15 157303370786517 12 393258426966293 13 44943820224719 15 303370786516854 11 213483146067416 Cluster 1 12 503759398496241 12 74436090225564 13 300751879699249 17 157894736842106 13 353383458646617 13 68421052631579 13 571428571428571 Cluster 2 15 217142857142857 12 09142857142857 13 788571428571428 14 102857142857143 13 36 14 434285714285714 13 548571428571428 Cluster 3 16 476190476190474 11 488095238095237 12 904761904761905 17 738095238095237 12 404761904761905 13 154761904761905 268 Personalisierung 12 357142857142858 Cluster 4 11 460674157303371 13 48314606741573 13 235955056179776 12 696629213483146 13 865168539325843 15 662921348314606 15 910112359550562 Cluster 5 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 7 18 119266055045873 13 082568807339449 13 403669724770642 12 055045871559633 12 908256880733944 13 458715596330276 13 513761467889909 0 89 9 1 133 13 2 175 17 3 84 8 489 9 5 1 0 6 324 32 7 109 11 Scheme weka clusterers SimpleKMeans N 8 S 1 Cluster centroids Cluster 0 18 0625 12 928571428571429 13 508928571428571 12 098214285714286 13 0 13 348214285714286 13 580357142857142 Cluster 1 16 35135135135135 11 54954954954955 12 864864864864865 17 16216216216216 12 504504504504505 13 17117117117117 12 954954954954955 Cluster 2 12
99. 128 13 48936170212766 13 26595744680851 Cluster 5 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 6 10 533333333333333 15 05 15 866666666666667 13 583333333333334 14 016666666666667 13 116666666666667 14 1 Cluster 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 195 19 1 134 13 2 120 12 3 76 8 4 94 9 5 1 0 6 60 6 7 324 32 Scheme weka clusterers SimpleKMeans N 8 S 4 Cluster centroids Cluster 0 12 75 14 1125 12 75 11 625 13 3125 17 65 14 1375 Cluster 1 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 2 18 51923076923077 12 759615384615385 13 201923076923077 12 73076923076923 12 740384615384615 13 432692307692308 13 182692307692308 Cluster 3 11 299212598425196 13 88976377952756 14 362204724409448 15 15748031496063 13 614173228346457 13 5748031496063 14 433070866141732 Cluster 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 6 14 929936305732484 11 840764331210192 12 92356687898089 270 Personalisierung 17 630573248407643 12 719745222929935 13 668789808917197 12 757961783439491 Cluster 7 14 976303317535544 12 85781990521327 14 255924170616113 13 459715639810426 13 639810426540285 14 19431279620853 13 09478672985782 080 8 1 1 0 2 104 10 3127 13 4 324 32 6 157 16 7 211 21 Scheme weka clusterers SimpleKMeans N 8 S 5 Cluster centroids Cluster 0 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 1 14 649289099526067 13 156398104265403 13 919431279620854 13 23222748815166 13 374407
100. 14 13 468354430379748 17 050632911392405 273 Personalisierung 13 620253164556962 Cluster 3 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 5 13 68695652173913 13 695652173913043 13 565217391304348 16 17391304347826 13 104347826086956 14 008695652173913 12 147826086956522 Cluster 6 10 733333333333333 13 983333333333333 13 433333333333334 12 75 14 2 15 1 16 116666666666667 Cluster 7 13 012820512820513 14 602564102564102 15 551282051282051 12 5 13 0 15 551282051282051 12 179487179487179 Cluster 8 15 329268292682928 12 268292682926829 13 853658536585366 13 71951219512195 14 25609756097561 11 975609756097562 15 073170731707316 Cluster 9 11 266666666666667 12 222222222222221 13 088888888888889 18 644444444444446 13 444444444444445 12 466666666666667 15 133333333333333 Cluster 10 0 0 50 0 50 0 0 0 0 0 0 0 0 0 Cluster 11 19 1875 12 671875 13 40625 12 546875 12 1875 13 578125 13 078125 074 7 181 8 279 8 3 1 0 4 324 32 5 115 11 6 60 6 7 78 8 8 82 8 9 45 4 10 1 0 11 64 6 Scheme weka clusterers SimpleKMeans N 12 S 3 Cluster centroids Cluster 0 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 1 11 326315789473684 14 589473684210526 14 821052631578947 12 273684210526316 13 91578947368421 14 715789473684211 14 694736842105263 Cluster 2 14 406417112299465 13 085561497326204 13 962566844919786 13 262032085561497 13 342245989304812 15 684491978609625 12 695187165775401
101. 14285714285714 15 571428571428571 15 142857142857142 14 142857142857142 9 714285714285714 Cluster 1 13 857142857142858 11 619047619047619 15 0 16 952380952380953 12 714285714285714 13 857142857142858 12 380952380952381 Cluster 2 15 083333333333334 11 583333333333334 14 583333333333334 15 0 13 166666666666666 15 416666666666666 11 25 Cluster 3 17 0 12 5 9 0 20 0 11 5 11 5 15 5 Cluster 4 13 894736842105264 13 842105263157896 13 263157894736842 15 578947368421053 12 31578947368421 13 789473684210526 13 631578947368421 Cluster 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 7 18 0 18 666666666666668 12 666666666666666 10 333333333333334 14 0 11 666666666666666 12 0 Cluster 8 15 0 14 0 14 0 17 0 12 0 18 0 7 0 Cluster 9 16 363636363636363 13 181818181818182 10 909090909090908 14 636363636363637 11 454545454545455 13 454545454545455 16 454545454545453 Cluster 10 18 2 17 4 10 6 15 0 13 0 11 2 10 6 Cluster 11 12 363636363636363 11 818181818181818 12 909090909090908 15 0 12 545454545454545 15 272727272727273 16 09090909090909 Cluster 12 15 608695652173912 13 347826086956522 13 304347826086957 13 565217391304348 14 043478260869565 15 08695652173913 11 73913043478261 Cluster 13 0 0 8 0 8 0 0 0 0 0 41 0 41 0 Cluster 14 15 8 10 2 16 6 20 4 11 8 10 8 10 0 Cluster 15 14 3 11 1 11 5 13 5 15 9 15 2 15 0 Cluster 16 13 307692307692308 11 76923076923077 15 692307692307692 14 692307692307692 12 23076923076923 15 61538461538461
102. 1428571429 14 142857142857142 14 0 15 142857142857142 12 857142857142858 14 857142857142858 12 0 Cluster 18 22 0 13 0 17 5 10 0 10 0 12 5 12 5 Cluster 19 18 833333333333332 10 833333333333334 17 666666666666668 13 166666666666666 12 333333333333334 12 0 12 166666666666666 Cluster 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 21 15 5 10 5 14 666666666666666 17 833333333333332 11 333333333333334 13 833333333333334 12 333333333333334 Cluster 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 23 14 428571428571429 14 285714285714286 11 714285714285714 14 0 11 142857142857142 13 0 18 0 Cluster 24 15 5 10 0 13 5 18 0 13 0 17 25 10 25 Cluster 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 26 12 333333333333334 12 333333333333334 10 0 16 666666666666668 15 666666666666666 11 333333333333334 17 666666666666668 Cluster 27 10 0 11 0 20 0 13 0 11 0 16 0 15 0 Cluster 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 31 17 75 10 0 16 25 11 25 12 5 10 5 18 75 Cluster 32 14 285714285714286 13 428571428571429 10 0 17 714285714285715 12 714285714285714 14 0 14 285714285714286 Cluster 33 0 0 0 0 0 0 0 0 0 0 0 0 0 0 295 Personalisierung Cluster 34 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 35 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 36 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 37 14 5 9 8 13 4 21 3 12 9 11 1 13 3 Cluster 38 12 0 13 0 20 0 7 0 13 0 13 0 18 0 Cluster 39 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 40 19 4 10 8
103. 15 222222222222221 12 88888888888889 Cluster 186 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 187 14 428571428571429 9 714285714285714 11 714285714285714 13 285714285714286 17 714285714285715 15 714285714285714 14 0 Cluster 188 16 333333333333332 9 0 19 666666666666668 17 666666666666668 14 333333333333334 9 0 10 333333333333334 Cluster 189 14 0 15 0 20 0 12 5 13 5 11 5 10 0 Cluster 190 12 666666666666666 14 333333333333334 14 333333333333334 12 666666666666666 11 0 16 0 15 333333333333334 Cluster 191 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 192 19 2 8 8 13 4 17 4 14 4 8 8 15 0 Cluster 193 15 5 13 5 11 5 16 25 8 75 17 0 14 25 Cluster 194 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 195 17 75 10 5 12 25 16 75 13 25 11 5 15 0 Cluster 196 14 0 20 0 10 0 13 0 8 0 16 0 15 0 Cluster 197 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 198 15 0 17 5 16 5 13 5 9 0 16 5 9 0 Cluster 199 13 833333333333334 11 583333333333334 13 916666666666666 14 0 14 666666666666666 13 916666666666666 14 583333333333334 0 4 0 13 0 26 1 31 0 4 324 32 54 0 6 8 1 78 1 8 9 1 9 3 0 101 0 11 3 0 13 9 1 14 3 0 15 6 1 16 7 1 17 7 1 18 2 0 19 6 1 21 6 1 23 7 1 24 4 0 26 3 0 27 1 0 31 4 0 32 7 1 37 10 1 38 1 0 40 5 0 41 3 0 43 8 1 44 4 0 46 3 0 47 7 1 49 14 1 55 4 0 56 5 0 ESE i a 301 Personalisierung 59 6 1 60 4 0 61 5 0 65 6 1 69 7 1 71 7
104. 15 476190476190476 12 238095238095237 Cluster 60 13 076923076923077 11 692307692307692 15 923076923076923 16 076923076923077 12 384615384615385 14 307692307692308 13 0 Cluster 61 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 62 14 23076923076923 10 615384615384615 14 692307692307692 17 53846153846154 13 538461538461538 15 76923076923077 10 153846153846153 Cluster 63 15 857142857142858 13 714285714285714 13 785714285714286 13 071428571428571 15 714285714285714 10 428571428571429 13 571428571428571 Cluster 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 65 18 0 8 714285714285714 15 857142857142858 17 714285714285715 13 142857142857142 9 142857142857142 14 428571428571429 Cluster 66 21 333333333333332 12 0 17 666666666666668 9 666666666666666 9 666666666666666 12 666666666666666 14 0 Cluster 67 17 818181818181817 12 727272727272727 15 727272727272727 13 454545454545455 12 363636363636363 14 272727272727273 10 272727272727273 Cluster 68 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 69 15 0 10 7 14 8 14 8 12 7 16 4 11 7 Cluster 70 17 333333333333332 10 166666666666666 11 25 19 0 292 Personalisierung 12 916666666666666 14 0 11 916666666666666 Cluster 71 11 8 14 2 14 8 17 0 14 6 9 6 14 0 Cluster 72 15 272727272727273 17 727272727272727 13 0 11 818181818181818 12 090909090909092 16 09090909090909 10 454545454545455 Cluster 73 0 0 8 0 8 0 0 0 0 0 41 0 41 0 Cluster 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 76 9 428571428571429
105. 15384615 17 23076923076923 Cluster 7 0 0 29 0 29 0 0 0 0 0 20 5 20 5 Cluster 8 20 642857142857142 12 285714285714286 13 357142857142858 9 928571428571429 12 5 14 5 13 285714285714286 Cluster 9 11 425 10 95 13 35 15 55 14 1 16 525 14 475 Cluster 10 16 09090909090909 10 878787878787879 11 93939393939394 19 515151515151516 12 515151515151516 12 909090909090908 12 696969696969697 Cluster 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 12 13 365853658536585 13 926829268292684 12 317073170731707 11 878048780487806 13 414634146341463 18 75609756097561 12 634146341463415 Cluster 13 11 636363636363637 13 787878787878787 15 242424242424242 11 575757575757576 13 636363636363637 13 969696969696969 275 Personalisierung 16 393939393939394 Cluster 14 19 022727272727273 12 386363636363637 12 886363636363637 14 181818181818182 12 25 13 454545454545455 12 454545454545455 Cluster 15 14 714285714285714 13 476190476190476 16 126984126984127 13 428571428571429 12 158730158730158 14 88888888888889 11 777 777777777779 Cluster 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 17 14 025316455696203 13 316455696202532 13 30379746835443 16 72151898734177 13 544303797468354 14 025316455696203 11 49367088607595 Cluster 18 11 88679245283019 15 452830188679245 14 39622641509434 13 528301886792454 14 49056603773585 13 962264150943396 12 584905660377359 Cluster 19 13 783333333333333 12 516666666666667 12 716666666666667 14 633333333333333 13 783333333333333 13 116666666666667 15
106. 18 6 1 19 5 0 20 13 1 23 9 1 249 1 25 9 1 27 15 1 29 10 1 31 9 1 32 7 1 33 19 2 34 9 1 35 14 1 36 10 1 37 8 1 39 15 1 40 6 1 41 12 1 42 1 0 43 11 1 44 13 1 45 5 0 478 1 48 5 0 50 6 1 51 11 1 53 10 1 54 4 0 55 21 2 56 3 0 57 6 1 58 6 1 59 9 1 60 6 1 625 0 64 3 0 673 0 68 21 2 69 7 1 70 5 0 729 1 73 15 1 76 8 1 77 2 0 787 1 80 12 1 828 1 83 11 1 84 7 1 85 15 1 87 2 0 88 19 2 89 8 1 90 14 1 91 7 1 94 2 0 95 9 1 96 1 0 97 1 0 98 9 1 99 6 1 e Den Scheme weka clusterers SimpleKMeans N 100 S 10 Cluster centroids Cluster 0 12 285714285714286 9 928571428571429 12 642857142857142 15 714285714285714 14 0 17 428571428571427 14 571428571428571 Cluster 1 13 444444444444445 14 444444444444445 10 11111111111111 289 Personalisierung 11 88888888888889 13 88888888888889 14 0 18 88888888888889 Cluster 2 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 3 16 38888888888889 11 222222222222221 11 0 15 88888888888889 12 88888888888889 15 944444444444445 13 222222222222221 Cluster 4 18 818181818181817 10 272727272727273 13 181818181818182 15 090909090909092 11 0 16 454545454545453 12 181818181818182 Cluster 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 6 10 3 14 7 18 2 12 0 14 3 11 7 14 9 Cluster 7 20 666666666666668 13 0 13 0 7 333333333333333 15 0 15 0 12 33
107. 2 5 1 0 6 1 0 Log likelihood 15 29293 Scheme weka clusterers EM I 20 N 6 S 12 M 2 0 Number of clusters 6 Cluster 0 Prior probability 0 3227 Attribute Attribute Attribute Attribute Attribute Attribute Attribute WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution Cluster 1 Prior probability 0 1087 Attribute 3 5092 Attribute 3 0847 Attribute 3 1245 WG1 Normal Distribution Mean WG2 Normal Distribution Mean WG3 Normal Distribution Mean Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 15 1518 StdDev 12 1836 StdDev 13 6184 StdDev Attribute WG4 Normal Distribution Mean 15 842 StdDev 4 0059 309 Personalisierung Attribute WG5 Normal Distribution Mean 12 7998 StdDev 2 285 Attribute WG6 Normal Distribution Mean 12 4268 StdDev 2 467 Attribute WG7 Normal Distribution Mean 14 435 StdDev 3 1475 Cluster 2 Prior probability 0 179 Attribute WG1 Normal Distribution Mean 14 256 StdDev 2 8522 Attribute WG2 Normal Distribution Mean 13 6067 StdDev 2 9586 Attribute WG3 Normal Distribution Mean 13 3315 StdDev 3 0696 Attribute WG4 Normal Distribution Mean 12 6677 StdDev 2 Attribute WG5
108. 2 12 358695652173912 12 706521739130435 13 48913043478261 13 217391304347826 Cluster 6 14 70873786407767 12 718446601941748 13 495145631067961 12 495145631067961 14 485436893203884 13 12621359223301 15 29126213592233 Cluster 7 10 802469135802468 14 975308641975309 14 802469135802468 12 320987654320987 13 814814814814815 15 320987654320987 14 382716049382717 267 Personalisierung 0 107 11 11 0 2 324 32 3164 16 4 132 13 5 92 9 6 103 10 7 81 8 Scheme weka clusterers SimpleKMeans N 8 S 1 Cluster centroids Cluster 0 14 676190476190476 13 128571428571428 13 785714285714286 13 533333333333333 13 295238095238096 15 428571428571429 12 642857142857142 Cluster 1 12 470149253731343 12 634328358208956 13 298507462686567 17 119402985074625 13 343283582089553 13 67910447761194 13 776119402985074 Cluster 2 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 5 16 31896551724138 11 525862068965518 12 974137931034482 17 060344827586206 12 551724137931034 13 129310344827585 12 956896551724139 Cluster 6 11 330188679245284 14 518867924528301 14 632075471698114 12 330188679245284 14 028301886792454 14 81132075471698 14 69811320754717 Cluster 7 18 035398230088497 12 973451327433628 13 460176991150442 12 079646017699115 13 017699115044248 13 345132743362832 13 619469026548673 0 210 21 1 134 13 2 1 0 3 324 32 5 116 12 6 106 11 7
109. 22222 103 13 3 1 TemporalAssociationRules 2 2 103 13 3 2 SetOfBaskets 105 13 3 3 Basket a 2 5 83 a Ss a Er sin 105 ISA E N Ben Saunen Ag a 106 vii Inhaltsverzeichnis 14 IV 15 viii Technisches Handbuch Framework 14 1 Anforderungen e 14 2 Architektur 2 erw cken ae sg 14 2 1 Steuerung des Frameworks 14 2 2 Auslesen der Daten aus der Datenquelle 14 2 3 Steuerung des Algorithmus 14 2 4 Speichern der Analysedaten 14 3 Implementierung e 14 3 1 Interfaces 4 1 54 2 2 Sep e tola head a A 14 3 2 Exceptions 14 3 3 Vorhandene Implementierungen 14 3 4 Eigene Implementierungen einbinden 14 3 5 Notwendige nderungen an WEKA 14 4 Parameter der vorhandenen Implementierungen 14 4 1 AlgorithmRunner 0 14 4 2 Datenquellen 2 2 2 2 2 202 14 4 3 Datensenken 0 14 4 4 Algorithmen 2 2 2 200 14 4 5 AnalysisRumner 2 2 2222 14 5 Anwendungsbeispiele 2 2 2 2 14 5 1 Einfache Analyse mittels AlgorithmRunner 14 5 2 Komplexe Analyse mittels AnalysisRunner E EE ge ease ara Bene ee Ae fe Personalisierungskonzept Konzept Nicht temporale Personalisierung 15 1 Einfache Analysen 0 0 15 1 1 Clustering nach Kunden 15 1 2 Clustering nach Kunden und gekauften Pro dukten aan kohtus wer TT 15 1 3 Assoziationsanalyse 15 2 Kombinierte Analyseverfa
110. 286 14 571428571428571 14 0 10 857142857142858 15 285714285714286 13 0 Cluster 106 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 107 15 6 13 6 13 0 11 4 14 2 13 2 15 0 Cluster 108 11 833333333333334 17 166666666666668 13 0 13 833333333333334 13 333333333333334 12 833333333333334 14 666666666666666 Cluster 109 12 2 16 8 12 2 12 0 14 2 16 6 12 0 Cluster 110 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 111 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 112 12 857142857142858 11 714285714285714 15 142857142857142 16 857142857142858 11 714285714285714 12 714285714285714 16 0 Cluster 113 14 8 10 2 14 8 10 8 13 8 17 4 14 8 Cluster 114 11 0 20 0 16 0 12 0 7 0 11 0 20 0 Cluster 115 16 0 11 333333333333334 18 0 16 0 11 333333333333334 11 0 13 333333333333334 Cluster 116 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 117 14 0 21 0 14 0 12 0 9 0 17 0 10 0 Cluster 118 11 5 12 0 14 5 12 833333333333334 13 0 18 833333333333332 13 666666666666666 Cluster 119 15 0 12 75 19 25 13 5 7 75 16 0 12 25 Cluster 120 12 25 12 25 16 5 11 0 14 75 17 0 12 75 298 Personalisierung Cluster 121 16 571428571428573 12 428571428571429 14 714285714285714 15 285714285714286 11 142857142857142 14 714285714285714 12 285714285714286 Cluster 122 9 666666666666666 10 0 11 666666666666666 24 333333333333332 12 0 10 333333333333334 18 0 Cluster 123 14 0 10 5 16 0 17 0 15 0 13 5 9 5 Cluster 124 14 0 16 0 15 0 15 0 17 0 12 0 7 0 Cluster 125 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 126 15 833333333333334 14 3
111. 3 22999 23123 H 1er 2279 A 1987 166333 0 1993 66666 66666 66666 H 1986 66777 66666 96 LI 1985 66666 97 0 me 66666 98 0 1984 23123 99 0 me 66666 10 23456 101 23123 102 1 f met 66666 103 LI 1 f mei 23123 105 0 mei 66323 106 0 mei 23123 o7 0 mg 23123 108 0 1979 24679 us 3 0 197 EEN ua 0 f 197 9 23555 piid 0 1974 23123 Tabelle 16 11 synthetische Testdaten 81 82 83 84 85 87 88 91 92 93 94 5 i I m m 163 16 Anwendung Nicht temporale Analysen KundeniD PLZ i ECH o om Lee Zo 097 aa o m 23078 m 2513 IL o 23999 se eeni o o Lee ser 23123 ser 25023 er Lee o Ier Den 1966 23111 Zo 1986 23123 1 1986 Le o met Lee IL mer Lee Kee BE EE Kg KE E Ke E Kee t EE EE Ken KE 12 12 12 12 12 12 12 12 12 13 13 13 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 5 5 133 23123 23123 66890 66666 23123 23123 23123 23123 1 23123 1 23123 65234 66666 66345 1 66666 152 1 66666 23123 155 0 m 123489 156 157 158 159 160 164 Tabelle 16 12 synthetische Testdaten 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 3 4 5 6 7 8 9 0 1 2 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 16 1 Clusteranalyse nach Kunden 161 LJ 190 66345 162 0 199 66666 18 0 mg 23777 LI 0
112. 333333333333 13 466666666666667 13 266666666666667 13 066666666666666 14 533333333333333 13 266666666666667 15 066666666666666 Cluster 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 87 21 5 15 5 11 0 8 5 13 0 17 5 9 5 Cluster 88 14 68421052631579 14 052631578947368 12 052631578947368 17 63157894736842 14 052631578947368 12 894736842105264 11 052631578947368 288 Personalisierung Cluster 89 11 125 11 125 12 5 19 5 13 5 12 75 16 25 Cluster 90 14 714285714285714 10 571428571428571 12 357142857142858 16 642857142857142 13 571428571428571 12 857142857142858 15 785714285714286 Cluster 91 13 428571428571429 10 285714285714286 16 714285714285715 12 857142857142858 15 714285714285714 12 571428571428571 14 714285714285714 Cluster 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 94 15 0 7 5 10 0 22 5 13 0 11 5 17 0 Cluster 95 9 444444444444445 10 555555555555555 12 666666666666666 14 88888888888889 16 444444444444443 17 555555555555557 15 0 Cluster 96 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 97 0 0 50 0 50 0 0 0 0 0 0 0 0 0 Cluster 98 9 777777777777779 1A 777777777777779 17 88888888888889 12 777777777777779 13 555555555555555 13 333333333333334 14 11111111111111 Cluster 99 15 666666666666666 10 5 17 0 11 0 15 166666666666666 14 333333333333334 13 0 07 1 121 2 212 1 3 2 0 4 19 2 5 324 32 7 3 0 8 1 0 9 11 1 105 0 1111 1 12 23 2 131 0 145 0 15 10 1 16 13 1 17 10 1
113. 33333333333334 15 166666666666666 13 166666666666666 12 5 11 0 14 5 Cluster 127 15 8 17 0 14 0 14 8 10 4 14 4 10 2 Cluster 128 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 129 16 5 8 5 15 0 11 25 17 0 11 75 16 25 Cluster 130 16 75 13 75 16 25 14 75 13 0 12 25 10 0 Cluster 131 12 333333333333334 14 166666666666666 11 666666666666666 11 5 13 333333333333334 15 333333333333334 18 166666666666668 Cluster 132 10 25 15 5 16 375 12 5 14 125 14 125 13 5 Cluster 133 10 333333333333334 15 0 19 333333333333332 12 666666666666666 15 666666666666666 10 333333333333334 12 666666666666666 Cluster 134 15 285714285714286 9 857142857142858 15 0 14 857142857142858 12 714285714285714 15 857142857142858 12 428571428571429 Cluster 135 9 5 16 5 14 25 17 75 13 0 11 75 13 75 Cluster 136 13 0 15 0 17 0 9 0 13 0 20 0 10 0 Cluster 137 15 75 11 0 9 75 13 75 15 5 14 25 16 75 Cluster 138 12 0 12 0 15 0 17 0 18 0 10 0 12 0 Cluster 139 16 25 14 5 13 0 9 0 14 5 14 75 14 5 Cluster 140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 141 18 571428571428573 13 857142857142858 11 0 15 142857142857142 9 428571428571429 12 428571428571429 16 0 Cluster 142 17 833333333333332 13 666666666666666 13 583333333333334 12 916666666666666 12 833333333333334 12 833333333333334 12 75 Cluster 143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 144 10 75 8 25 12 0 18 5 13 5 16 0 17 5 Cluster 145 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 146 15 588235294117647 13 411764705882353 13 529411764705882 13 529411764705882 13 23
114. 3333333333334 Cluster 8 19 2 11 6 10 2 12 2 13 2 15 0 14 6 Cluster 9 13 333333333333334 12 066666666666666 15 0 12 0 16 066666666666666 11 866666666666667 15 933333333333334 Cluster 10 14 0 13 136363636363637 13 136363636363637 16 136363636363637 12 954545454545455 14 045454545454545 13 0 Cluster 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 12 11 666666666666666 16 77777777777778 16 77777717777778 10 444444444444445 13 777777777777779 16 11111111111111 10 88888888888889 Cluster 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 14 15 454545454545455 11 454545454545455 13 545454545454545 17 818181818181817 12 090909090909092 12 181818181818182 13 454545454545455 Cluster 15 14 428571428571429 16 285714285714285 14 142857142857142 14 428571428571429 14 857142857142858 13 0 9 0 Cluster 16 13 11111111111111 14 777777777777779 13 555555555555555 12 61111111111111 13 5 15 555555555555555 13 11111111111111 Cluster 17 20 25 13 75 12 25 10 75 13 25 14 25 11 5 Cluster 18 14 7 13 1 19 5 13 0 10 0 14 6 11 7 Cluster 19 14 428571428571429 13 285714285714286 14 214285714285714 13 714285714285714 14 785714285714286 12 642857142857142 13 571428571428571 Cluster 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 23 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 26 21 0 11 666666666666666 13 666666666666666 12 666666666666666 290
115. 33333334 16 0 12 0 15 333333333333334 Cluster 89 16 0 13 0 19 0 12 0 12 0 9 0 15 0 Cluster 90 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 91 13 666666666666666 14 333333333333334 14 833333333333334 13 166666666666666 15 666666666666666 15 166666666666666 9 333333333333334 Cluster 92 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 94 20 5 12 833333333333334 14 0 12 333333333333334 12 666666666666666 11 666666666666666 12 5 Cluster 95 14 384615384615385 14 461538461538462 12 538461538461538 15 923076923076923 12 384615384615385 13 538461538461538 297 Personalisierung 13 153846153846153 Cluster 96 13 857142857142858 12 428571428571429 12 428571428571429 18 285714285714285 14 714285714285714 13 285714285714286 11 142857142857142 Cluster 97 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 98 15 0 18 333333333333332 9 666666666666666 12 333333333333334 15 333333333333334 19 333333333333334 9 666666666666666 Cluster 99 14 0 12 625 15 5 16 875 12 125 13 25 12 375 Cluster 100 20 0 8 0 16 0 15 0 8 0 18 0 13 0 Cluster 101 13 833333333333334 12 5 14 0 12 5 14 166666666666666 18 5 11 333333333333334 Cluster 102 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 103 17 818181818181817 13 818181818181818 11 090909090909092 11 363636363636363 12 727272727272727 14 090909090909092 15 636363636363637 Cluster 104 19 666666666666668 13 166666666666666 10 0 12 0 13 5 15 666666666666666 12 333333333333334 Cluster 105 14 285714285714286 14 285714285714
116. 33334 17 333333333333332 15 333333333333334 13 333333333333334 13 666666666666666 10 333333333333334 Cluster 2 12 833333333333334 9 166666666666666 12 333333333333334 16 166666666666668 14 333333333333334 17 166666666666668 14 333333333333334 Cluster 3 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 5 13 25 12 25 16 25 15 25 9 75 16 75 12 75 Cluster 6 11 25 13 375 13 25 14 125 15 125 13 0 15 75 Cluster 7 11 5 13 75 15 375 14 625 13 25 15 25 12 25 Cluster 8 15 333333333333334 11 333333333333334 14 222222222222221 14 11111111111111 16 0 11 333333333333334 13 88888888888889 294 Personalisierung Cluster 9 13 666666666666666 15 0 13 333333333333334 15 0 12 666666666666666 11 333333333333334 14 666666666666666 Cluster 10 0 0 50 0 50 0 0 0 0 0 0 0 0 0 Cluster 11 17 666666666666668 7 0 13 333333333333334 18 666666666666668 13 666666666666666 13 666666666666666 12 333333333333334 Cluster 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 13 15 333333333333334 10 666666666666666 13 444444444444445 14 555555555555555 11 88888888888889 16 666666666666668 14 444444444444445 Cluster 14 14 333333333333334 11 666666666666666 16 0 11 666666666666666 14 666666666666666 12 666666666666666 16 0 Cluster 15 19 166666666666668 12 166666666666666 14 5 13 5 11 666666666666666 16 5 9 5 Cluster 16 16 428571428571427 12 571428571428571 11 142857142857142 18 714285714285715 13 571428571428571 13 142857142857142 11 0 Cluster 17 13 42857
117. 4 4 Parameter der vorhandenen Implementierungen tempAssociations maxDate Das Datum bis zu dem nach Regeln gesucht werden tempAssociations minSupport Der Mindestsupport den gefunde ne Regeln mindestens erf llen m ssen Es muss gelten 0 lt minSupport lt 1 Weiterhin beachtet der Algorithmus die folgenden optionalen Para meter tempAssociations fuzzySupport Wenn dieser Parameter angege ben wird bestimmt der den Prozentsatz von Zeiteinheiten an denen eine Regel gelten muss damit sie als Star Pattern gilt Es muss gelten 0 lt fuzzySupport lt 1 Der Default ist 1 tempAssociations initialRuleld Wenn dieser Parameter ange geben wird wird die erste erzeugte Regel mit dem angegeben Wert als ID belegt Nachfolgende Regeln erhalten jeweils eine um 1 inkrementierte ID Der angegebene Wert muss eine Zahl im Wertebereich des Java Datentyps int sein Dieser Parameter ist n tzlich wenn die erzeugten Regeln in einer Datenbankta belle welche bereits Regeln aus einem vorangegangenen Lauf des Frameworks enth lt gespeichert werden sollen tempAssociations debug Wenn dieser Parameter angegeben wird gibt der Algorithmus eine Reihe von Debugmeldungen auf der Standardausgabe aus 14 4 5 AnalysisRunner Wie in Abschnitt 14 2 beschrieben kann das Framework dazu be nutzt werden einfache Analysen zu komplexen zusammenzufassen Dazu wird die Klasse AnalysisRunner verwendet Sie erm glicht es n Analysen hintereinander auszuf
118. 5 4 19 13 1 Scheme weka clusterers SimpleKMeans N 20 S 3 Cluster centroids Cluster 0 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 1 11 6875 13 9375 14 03125 12 25 13 90625 14 21875 16 21875 Cluster 2 9 909090909090908 20 454545454545453 21 454545454545453 10 454545454545455 11 909090909090908 12 636363636363637 10 090909090909092 Cluster 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 4 11 220588235294118 12 926470588235293 13 279411764705882 16 455882352941178 13 691176470588236 13 779411764705882 14 941176470588236 Cluster 5 16 916666666666668 13 0625 12 958333333333334 10 770833333333334 13 375 13 666666666666666 15 729166666666666 Cluster 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 8 14 5 10 935897435897436 14 346153846153847 14 166666666666666 12 782051282051283 16 0 13 820512820512821 Cluster 9 15 78888888888889 13 311111111111112 13 88888888888889 13 566666666666666 14 266666666666667 12 744444444444444 12 877777 777777778 Cluster 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 12 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 14 14 182692307692308 13 182692307692308 13 740384615384615 16 557692307692307 13 14423076923077 14 01923076923077 11 615384615384615 Cluster 15 13 443037974683545 14 544303797468354 13 227848101265822 12 620253164556962 13 39240506329114 17 20253164556962 11 936708860759493 Cluster 16 0 0 0 0 0 0 0 0 0 0 0 0 0
119. 5 12 923076923076923 Cluster 17 14 3 13 1 15 3 11 8 13 1 18 5 10 6 Cluster 18 16 166666666666668 10 166666666666666 18 333333333333332 16 5 12 5 11 0 12 5 Cluster 19 11 4 14 6 17 2 11 2 12 2 10 4 19 2 285 Personalisierung Cluster 20 16 846153846153847 10 307692307692308 12 0 18 846153846153847 13 307692307692308 13 461538461538462 11 846153846153847 Cluster 21 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 23 9 0 16 0 13 444444444444445 17 22222222222222 13 11111111111111 12 0 15 555555555555555 Cluster 24 13 444444444444445 14 666666666666666 10 11111111111111 17 333333333333332 13 0 13 777777777777779 14 11111111111111 Cluster 25 19 11111111111111 10 222222222222221 12 777777777777779 17 22222222222222 12 7777 77777777779 BTTTTTTTTTTTTTTI 15 222222222222221 Cluster 26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 27 13 0 13 133333333333333 16 066666666666666 12 133333333333333 12 466666666666667 16 2 13 533333333333333 Cluster 28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 29 14 7 12 1 13 9 13 5 17 5 10 5 13 9 Cluster 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 31 12 88888888888889 13 666666666666666 11 777777777777779 11 444444444444445 14 11111111111111 14 333333333333334 18 333333333333332 Cluster 32 13 428571428571429 14 428571428571429 10 714285714285714 13 0 13 428571428571429 19 571428571428573 11 428571428571429 Cluster 33 16 210526315789473 12 0 11 578947368421053 15 842105263157896 11 631578947368421 16 052
120. 5 13 783783783783784 12 216216216216216 13 513513513513514 11 91891891891892 Cluster 11 11 057692307692308 13 76923076923077 13 576923076923077 13 442307692307692 14 153846153846153 15 153846153846153 15 25 Cluster 12 16 083333333333332 13 916666666666666 13 708333333333334 11 791666666666666 13 3125 15 291666666666666 12 291666666666666 Cluster 13 0 0 8 0 8 0 0 0 0 0 41 0 41 0 Cluster 14 11 727272727272727 11 090909090909092 12 0 22 454545454545453 12 909090909090908 11 545454545454545 14 454545454545455 Cluster 15 13 976744186046512 12 279069767441861 13 55813953488372 12 372093023255815 15 069767441860465 12 883720930232558 16 302325581395348 Cluster 16 10 829268292682928 13 170731707317072 13 585365853658537 17 121951219512194 13 536585365853659 13 170731707317072 14 78048780487805 Cluster 17 13 085106382978724 14 148936170212766 12 574468085106384 11 851063829787234 13 25531914893617 18 46808510638298 12 893617021276595 Cluster 18 16 22222222222222 12 822222222222223 14 466666666666667 13 844444444444445 14 177777777777777 11 355555555555556 13 5595595955999999 Cluster 19 10 23076923076923 18 46153846153846 21 46153846153846 10 538461538461538 13 076923076923077 11 538461538461538 11 384615384615385 0 60 6 154 5 257 6 3 26 3 4 48 5 5 1 0 6 324 32 7 31 3 8 15 1 9 50 5 10 37 4 11 52 5 12 277 Personalisierung 48 5 13 1 0 14 11 1 15 43 4 16 41 4 17 47 5 18 4
121. 5 15 666666666666666 14 416666666666666 Cluster 16 8 5 10 5 16 5 16 0 14 0 18 0 13 0 Cluster 17 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 18 14 857142857142858 10 571428571428571 14 571428571428571 11 142857142857142 13 857142857142858 17 142857142857142 14 571428571428571 Cluster 19 18 833333333333332 11 0 12 0 16 0 11 833333333333334 15 166666666666666 12 5 Cluster 20 14 25 13 0 15 0 16 75 11 5 18 0 8 5 Cluster 21 15 444444444444445 11 11111111111111 13 777777777777779 14 11111111111111 16 666666666666668 11 444444444444445 13 777 777777777779 Cluster 22 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 23 14 538461538461538 12 461538461538462 19 0 12 923076923076923 10 538461538461538 14 538461538461538 12 76923076923077 Cluster 24 20 88888888888889 12 666666666666666 15 11111111111111 9 333333333333334 12 444444444444445 13 666666666666666 12 555555595599999 Cluster 25 8 25 16 25 11 5 17 75 13 25 10 75 18 25 Cluster 26 14 8 18 0 15 8 13 8 9 4 15 6 9 4 Cluster 27 11 9 9 1 12 0 16 9 14 6 17 6 14 4 Cluster 28 13 818181818181818 12 181818181818182 13 363636363636363 17 363636363636363 14 636363636363637 12 545454545454545 12 545454545454545 281 Personalisierung Cluster 29 12 285714285714286 9 571428571428571 14 428571428571429 16 857142857142858 12 0 14 428571428571429 16 428571428571427 Cluster 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 31 19 75 13 25 11 125 12 5 12 875 16 0 11 0 Cluster 32 12 75 13 375 17 25 10 625 12 5 15 0 14 875 Cluster 33 0
122. 5294117647058 14 647058823529411 12 647058823529411 Cluster 147 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 148 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 149 0 0 0 0 0 0 0 0 0 0 0 0 0 0 299 Personalisierung Cluster 150 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 151 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 152 14 0 13 666666666666666 15 666666666666666 16 333333333333332 11 333333333333334 17 666666666666668 8 0 Cluster 153 13 5 12 0 9 0 14 5 11 75 23 0 12 25 Cluster 154 15 555555555555555 14 7777777777717779 15 222222222222221 10 88888888888889 12 444444444444445 14 333333333333334 12 666666666666666 Cluster 155 10 4 15 0 11 2 10 8 14 8 19 0 15 0 Cluster 156 12 857142857142858 12 142857142857142 10 0 13 857142857142858 14 285714285714286 18 285714285714285 15 142857142857142 Cluster 157 15 5 11 0 19 0 12 0 12 0 15 0 13 0 Cluster 158 22 0 16 0 14 0 6 0 14 0 17 0 8 0 Cluster 159 12 5 11 0 16 0 16 166666666666668 13 833333333333334 13 666666666666666 13 166666666666666 Cluster 160 12 571428571428571 11 571428571428571 14 0 16 857142857142858 14 0 16 857142857142858 11 0 Cluster 161 15 833333333333334 13 333333333333334 12 333333333333334 13 666666666666666 18 166666666666668 9 833333333333334 13 5 Cluster 162 7 5 19 0 11 0 15 5 15 0 10 5 17 5 Cluster 163 10 0 12 222222222222221 14 0 17 555555555555557 13 88888888888889 13 555555555555555 14 88888888888889 Cluster 164 14 846153846153847 10 76923076923077 12 153846153846153 16 46153846153846 13 6153846153
123. 582938389 15 369668246445498 12 763033175355451 Cluster 2 16 27777777777778 11 666666666666666 12 912698412698413 16 936507936507937 12 53968253968254 13 341269841269842 12 865079365079366 Cluster 3 11 227722772277227 14 524752475247524 14 554455445544555 12 386138613861386 14 05940594059406 14 752475247524753 14 841584158415841 Cluster 4 18 221153846153847 12 85576923076923 13 48076923076923 12 192307692307692 12 990384615384615 13 240384615384615 13 557692307692308 Cluster 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 7 12 510948905109489 12 715328467153284 13 27007299270073 17 094890510948904 13 291970802919709 13 744525547445255 13 708029197080291 01 0 1211 21 2 126 13 3101 10 4 104 10 5 324 32 7 137 14 Scheme weka clusterers SimpleKMeans N 8 S 8 Cluster centroids Cluster 0 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 2 11 159663865546218 14 302521008403362 14 563025210084033 271 Personalisierung 12 991596638655462 13 739495798319327 14 672268907563025 14 873949579831933 Cluster 3 13 974093264248705 12 181347150259068 13 046632124352332 17 471502590673577 13 020725388601036 13 621761658031089 13 1139896373057 Cluster 4 18 02097902097902 12 475524475524475 13 335664335664335 13 258741258741258 12 881118881118882 13 076923076923077 13 552447552447552 Cluster 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cl
124. 6075949367 14 063291139240507 13 063291139240507 11 708860759493671 13 227848101265822 17 810126582278482 13 810126582278482 266 Personalisierung Cluster 4 11 018867924528301 13 943396226415095 14 452830188679245 15 09433962264151 13 764150943396226 13 424528301886792 14 622641509433961 Cluster 5 18 694915254237287 12 898305084745763 13 457627118644067 11 288135593220339 13 067796610169491 13 830508474576272 13 305084745762711 Cluster 6 15 04026845637584 12 758389261744966 14 120805369127517 12 825503355704697 13 979865771812081 13 550335570469798 14 167785234899329 Cluster 7 14 414634146341463 12 871951219512194 13 621951219512194 15 701219512195122 12 939024390243903 14 847560975609756 12 073170731707316 0 65 6 157 6 2 325 32 3 79 8 4 106 11 5 59 6 6 149 15 7 164 16 Scheme weka clusterers SimpleKMeans N 8 S 2 Cluster centroids Cluster 0 16 327102803738317 11 467289719626168 12 953271028037383 17 242990654205606 12 476635514018692 13 271028037383177 12 83177570093458 Cluster 1 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 3 14 615853658536585 13 371951219512194 13 957317073170731 13 768292682926829 12 908536585365853 15 957317073170731 11 908536585365853 Cluster 4 12 446969696969697 12 651515151515152 13 295454545454545 17 136363636363637 13 348484848484848 13 659090909090908 13 780303030303031 Cluster 5 18 565217391304348 12 815217391304348 13 42391304347826
125. 63157894737 13 105263157894736 Cluster 34 13 444444444444445 14 777777777777779 15 11111111111111 13 11111111111111 16 88888888888889 13 11111111111111 10 11111111111111 Cluster 35 15 785714285714286 15 071428571428571 14 571428571428571 10 714285714285714 12 428571428571429 14 642857142857142 13 071428571428571 Cluster 36 12 3 12 3 10 3 13 4 15 4 18 8 14 1 Cluster 37 20 875 12 5 14 75 10 75 12 5 13 75 11 625 Cluster 38 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 39 12 466666666666667 13 466666666666667 14 866666666666667 16 333333333333332 13 133333333333333 11 066666666666666 15 066666666666666 Cluster 40 12 833333333333334 9 166666666666666 12 333333333333334 16 166666666666668 14 333333333333334 17 166666666666668 286 Personalisierung 14 333333333333334 Cluster 41 11 0 13 333333333333334 14 583333333333334 16 416666666666668 14 166666666666666 14 333333333333334 12 25 Cluster 42 10 0 7 0 16 0 17 0 14 0 14 0 18 0 Cluster 43 13 545454545454545 15 272727272727273 13 181818181818182 14 909090909090908 12 909090909090908 14 818181818181818 11 727272727272727 Cluster 44 16 846153846153847 10 923076923076923 13 846153846153847 14 23076923076923 13 76923076923077 12 692307692307692 14 153846153846153 Cluster 45 15 8 10 0 13 2 12 4 14 0 16 0 15 4 Cluster 46 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 47 14 5 18 25 13 125 11 375 12 75 16 25 10 25 Cluster 48 15 4 9 4 13 6 17 8 13 4 16 2 11 2 Cluster 49 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 50 12
126. 65 Personalisierung Cluster 6 14 98136645962733 13 01863354037267 14 372670807453416 12 633540372670808 13 745341614906833 14 453416149068323 13 273291925465838 Cluster 7 14 088888888888889 12 451851851851853 13 837037037037037 16 503703703703703 13 0 14 318518518518518 12 251851851851852 0 81 8 1 104 10 2 36 4 3 46 5 4 116 12 5 325 32 6 161 16 7 135 13 Scheme weka clusterers SimpleKMeans N 8 S 4 Cluster centroids Cluster 0 16 544159544159545 12 49002849002849 13 452991452991453 14 227920227920228 12 877492877492877 13 897435897435898 13 042735042735043 Cluster 1 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 6 12 432926829268293 13 439024390243903 13 817073170731707 14 612804878048781 13 640243902439025 14 621951219512194 13 789634146341463 Cluster 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 351 35 11 0 2 324 32 6 328 33 Scheme weka clusterers SimpleKMeans N 8 S 3 Cluster centroids Cluster 0 17 984615384615385 12 292307692307693 12 907692307692308 15 446153846153846 11 830769230769231 13 353846153846154 12 907692307692308 Cluster 1 14 719298245614034 11 070175438596491 12 614035087719298 19 403508771929825 13 070175438596491 12 385964912280702 13 070175438596491 Cluster 2 0 0 0 0 0 0 0 0 0 3076923076923077 0 0 0 0 Cluster 3 12 67088
127. 6666 Cluster 68 11 761904761904763 15 333333333333334 14 19047619047619 13 523809523809524 14 142857142857142 14 142857142857142 13 285714285714286 Cluster 69 12 714285714285714 11 142857142857142 13 714285714285714 17 714285714285715 13 285714285714286 16 714285714285715 11 285714285714286 Cluster 70 16 6 12 8 11 4 14 2 18 0 10 4 13 4 Cluster 71 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 72 19 333333333333332 10 555555555555555 11 11111111111111 15 444444444444445 11 666666666666666 17 0 11 777777777777779 Cluster 73 15 333333333333334 11 066666666666666 14 333333333333334 14 133333333333333 11 133333333333333 16 6 14 133333333333333 Cluster 74 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 75 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 76 14 125 13 0 12 75 10 75 13 25 17 75 14 375 Cluster 77 14 5 11 5 14 0 17 5 12 0 18 0 9 5 Cluster 78 14 714285714285714 14 142857142857142 18 571428571428573 14 285714285714286 8 857142857142858 15 714285714285714 10 0 Cluster 79 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 80 17 416666666666668 14 5 11 583333333333334 10 25 12 916666666666666 13 75 16 166666666666668 Cluster 81 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 82 13 125 17 875 9 875 11 75 12 25 15 0 16 375 Cluster 83 17 363636363636363 11 909090909090908 14 0 12 181818181818182 13 545454545454545 14 454545454545455 12 636363636363637 Cluster 84 11 571428571428571 11 571428571428571 11 857142857142858 23 0 12 714285714285714 11 571428571428571 13 714285714285714 Cluster 85 13 533
128. 8379 14 72972972972973 12 108108108108109 15 837837837837839 11 35135135135135 15 216216216216216 Cluster 10 12 782051282051283 13 474358974358974 13 461538461538462 16 602564102564102 13 243589743589743 13 35897435897436 13 564102564102564 Cluster 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 12 10 435897435897436 15 23076923076923 15 487179487179487 12 948717948717949 14 41025641025641 13 487179487179487 14 256410256410257 279 Personalisierung Cluster 13 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 14 13 058823529411764 10 764705882352942 12 529411764705882 21 941176470588236 12 647058823529411 11 294117647058824 14 058823529411764 Cluster 15 14 875 13 765625 14 09375 16 140625 13 359375 13 5625 10 5625 Cluster 16 12 891304347826088 14 152173913043478 12 673913043478262 12 021739130434783 13 347826086956522 18 52173913043478 12 717391304347826 Cluster 17 18 743589743589745 13 102564102564102 13 564102564102564 13 205128205128204 12 35897435897436 14 23076923076923 11 41025641025641 Cluster 18 14 058823529411764 12 794117647058824 15 794117647058824 13 779411764705882 12 573529411764707 15 264705882352942 12 220588235294118 Cluster 19 15 823529411764707 12 764705882352942 13 588235294117647 12 279411764705882 13 632352941176471 15 455882352941176 12 926470588235293 0 37 4 144 4 21 0 3 58 6 4 48 5 5 324 32 6 2 0 713 1 821 2 9 37 4 10 78 8 12 39 4 14 17 2 15 64 6 16 46 5 17 39 4 18 68
129. 84615 12 615384615384615 15 923076923076923 Cluster 165 13 4 12 8 12 0 11 4 18 0 12 0 16 8 Cluster 166 17 333333333333332 16 166666666666668 13 5 11 0 14 833333333333334 11 666666666666666 11 833333333333334 Cluster 167 11 75 14 75 14 75 17 0 13 75 9 5 14 5 Cluster 168 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 169 16 4 12 266666666666667 11 933333333333334 15 8 12 733333333333333 14 0 13 266666666666667 Cluster 170 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 171 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 172 14 25 15 75 13 25 11 5 11 25 16 0 13 75 Cluster 173 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 174 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 175 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 176 11 0 20 5 15 0 10 0 12 5 18 0 9 0 Cluster 177 0 0 8 0 8 0 0 0 0 0 41 0 41 0 300 Personalisierung Cluster 178 11 333333333333334 13 333333333333334 16 666666666666668 12 333333333333334 13 666666666666666 9 333333333333334 19 333333333333332 Cluster 179 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 180 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 181 17 666666666666668 11 333333333333334 8 666666666666666 20 0 11 333333333333334 14 666666666666666 12 666666666666666 Cluster 182 15 5 14 666666666666666 15 833333333333334 11 166666666666666 11 666666666666666 17 166666666666668 10 833333333333334 Cluster 183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 184 12 75 14 5 13 75 12 25 18 75 11 0 12 5 Cluster 185 13 88888888888889 11 222222222222221 13 333333333333334 17 11111111111111 12 777777777777779
130. 88235294118 11 470588235294118 Cluster 94 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 95 16 857142857142858 10 428571428571429 15 428571428571429 293 Personalisierung 11 428571428571429 15 857142857142858 11 571428571428571 14 571428571428571 Cluster 96 12 0 12 833333333333334 10 666666666666666 15 5 14 5 12 666666666666666 18 0 Cluster 97 15 4 11 533333333333333 13 533333333333333 14 0 11 933333333333334 16 8 13 466666666666667 Cluster 98 11 2 14 6 14 2 13 666666666666666 15 133333333333333 13 8 13 466666666666667 Cluster 99 14 083333333333334 11 0 16 5 13 416666666666666 12 916666666666666 14 5 14 083333333333334 0 14 1 1 9 1 2 1 0 3 18 2 411 1 5 324 32 6 10 1 7 3 0 8 GE 14 11 1 15 7 1 16 18 2 17 4 0 18 10 1 19 14 1 1 26 3 0 27 7 1 28 7 1 30 6 1 32 3 0 33 13 1 34 10 1 36 11 1 37 14 1 39 16 2 40 1 2 41 9 1 43 15 1 E 2 53 9 1 55 7 1 56 11 1 575 0 58 12 1 59 1 2 60 13 1 62 13 1 63 14 1 65 7 1 66 3 0 67 11 1 69 10 1 70 12 1 715 0 72 11 1 0 12 73 1 0 76 14 1 77 11 1 79 1 0 84 7 1 86 7 1 88 6 1 89 13 1 90 19 kl E a 93 17 2 95 7 1 96 6 1 97 15 1 98 15 1 99 12 1 Scheme weka clusterers SimpleKMeans N 200 S 1 Cluster centroids Cluster 0 16 25 9 75 13 75 12 5 13 75 18 75 11 75 Cluster 1 15 333333333333334 11 3333333333
131. 94017094017 13 726495726495726 14 068376068376068 15 76923076923077 13 555555555555555 13 35897435897436 14 666666666666666 Cluster 1 13 467336683417086 13 482412060301508 14 020100502512562 12 547738693467336 13 5678391959799 15 844221105527637 13 492462311557789 Cluster 2 0 0 0 0 0 0 0 0 0 3076923076923077 0 0 0 0 Cluster 3 15 151960784313726 12 073529411764707 13 073529411764707 16 754901960784313 12 946078431372548 13 779411764705882 12 691176470588236 Cluster 4 17 654088050314467 12 830188679245284 13 528301886792454 12 748427672955975 13 0 13 50314465408805 13 276729559748428 0 117 12 1 199 20 2 325 32 3 204 20 4 159 16 Scheme weka clusterers SimpleKMeans N 8 S 5 Cluster centroids Cluster 0 18 666666666666668 12 74074074074074 13 555555555555555 12 049382716049383 12 876543209876543 13 518518518518519 13 160493827160494 Cluster 1 16 817307692307693 11 971153846153847 12 509615384615385 16 41346153846154 12 278846153846153 13 403846153846153 13 182692307692308 Cluster 2 10 027777777777779 15 694444444444445 17 305555555555557 11 055555555555555 13 194444444444445 15 194444444444445 14 0 Cluster 3 11 043478260869565 12 630434782608695 12 826086956521738 18 695652173913043 13 695652173913043 12 41304347826087 15 0 Cluster 4 12 422413793103448 13 724137931034482 12 586206896551724 13 655172413793103 13 801724137931034 15 577586206896552 14 474137931034482 Cluster 5 0 0 0 0 0 0 0 0 0 3076923076923077 0 0 0 0 2
132. Alle Clusterer beachten den gemeinsamen Parameter clusterer FilterColumns Mit diesem Parameter l sst sich spezi fizieren welche Spalten der Eingabedaten der Clusterer igno rieren soll Sollen beispielsweise die einzelnen Datens tze mit tels eines eindeutigen Schl ssels ID gekennzeichnet werden ist es blicherweise nicht sinnvoll dass dieser Einfluss auf das Ergebnis des Clusterers hat Die ID soll aber in den Ergebnis daten enthalten sein um die einzelnen Datens tze nach dem Clustering wieder identifizieren zu k nnen Sind beispielsweise Eingabedaten mit zwei Spalten zu clustern von denen die er ste eine ID die zweite die eigentlich zu analysierenden Daten enth lt ist dieser Parameter mit dem Wert 1 zu spezifizieren Um mehrere Spalten angeben zu k nnen sind diese mit den Zeichen und voneinander zu trennen Dabei bedeutet clusterer FilterColumns 1 2 z B dass die Spalten 1 und 2 ignoriert werden clusterer FilterColumns 1 3 bedeutet dass die Spalten 1 2 und 3 ignoriert werden Di Im Folgenden sind die f r die verschiedenen Clusterer spezifischen Parameter aufgef hrt SimpleKMeans Der SimpleKMeans Clusterer unterst tzt die fol genden Parameter kMeans numClusters Bestimmt wie viele Cluster der Algorithmus finden soll kMeans seed Die zur Initialisierung des Zufallszahlengenerators ver wendete Zahl XMeans Der XMeans Clusterer unterst tzt die folgenden Parame ter XMeans dista
133. CARL VON OSSIETZKY universit t OLDENBURG Endbericht der Projektgruppe Personalisierung internetbasierter Handelsszenarien DATA IN KNOWLEDGE OUT Tim Br ggemann Tina Goldau Christian L pkes Michael Onken Matthias Pretzer Christian Reitenberger Carsten Saathoff Helge Saathoff Ralph Stuber Insa St hrenberg Oliver Wien Guido Zendel Ralf Krause Heiko Tapken Carl von Ossietzky Universit t Oldenburg Fakult t 2 Department f r Informatik Abteilung Informationssysteme Prof Dr Appelrath Prof Dr Hans J rgen Appelrath Carl v Ossietzky Universit t Department f r Informatik Escherweg 2 26121 Oldenburg e mail appelrath informatik uni oldenburg de erschienen im Jahr 2003 Inhaltsverzeichnis Einleitung Rahmenbedingungen 1 1 Definition von Projektgruppen 0 0 1 2 Erl uterungen zum Zweck von Projektgruppen 1 3 Hinweise f r Veranstalter und Studierende 1 4 Projektgruppenantrag e 1 4 1 Formala pros 2 222 22 o onen 1 4 2 Aufgabenstellung 143 Literatur EN EEN ELE NN A 1 5 Teilnehmer 2 0005 Abee e een Anforderungsdefinition Gesamtszenario 2 1 Systemeinsatz und Systemumgebung 2 2 Funktionale Anforderungen 2 3 Nicht funktionale Anforderungen 2 4 Benutzerschnittstellen und Fehlerverhalten 2 5 Dokumentationsanforderungen 2 6 Abnahmekriterien Integration Implementierung des Integrationsszenarios 3 1 Vorgeh
134. Clustering Machine Learning 1987 PROJEKTGRUPPE PERSONALISIERUNG INTERNETBASIER TER HANDELSSZENARIEN Kartenanbieter 2003 STUDIENKOMMISSION INFORMATIK Projektgruppenpapier 1988 URL http www is informatik uni oldenburg de dibo teaching pg _fb10 PG_Ordnung html YINGJIU LI PENG NING X SEAN WANG und SUSHIL JA JODIA Generating Market Basket Data with Temporal In formation URL citeseer nj nec com 525901 html LNWJO1 Y naJ u Li PENG NING XIAOYANG SEAN WANG und SUSHIL JAJODIA Discovering Calendar based Temporal Association Rules In TIME Seiten 111 118 2001 URL citeseer nj nec com li0ldiscovering html LWD98 F LEISCH A WEINGESSEL und E DIMITRIADOU Mic03 Competitive learning for binary valued data 1998 URL citeseer nj nec com article leisch98competitive html SUN MICROSYSTEMS Java 2 Platform Standard Edition v 1 4 1 API Specification 2003 URL http java sun com j2se 1 4 1 docs api 321 Literaturverzeichnis Obj01 PM00 Pre03 Saa03 Sof03 WF01 Wieo3 322 OBJECT MANAGEMENT GROUP Common Warehouse Me tamodel CWM Specification Version 1 0 2001 DAN PELLEG und ANDREW MOORE X means Extending K means with Efficient Estimation of the Number of Clu sters In Proc 17th International Conf on Machine Lear ning Seiten 727 734 Morgan Kaufmann San Francisco CA 2000 URL citeseer nj nec com pelleg00xmeans html MATTHIAS PRETZER Clustering und Klassif
135. Dateinamen der Konfigurations datei die die Parameter f r die eigentliche Analyse definiert In die sem Falle ist es die Datei properties txt die schon im vorherigen Ab schnitt f r die Definition einer einfachen Analyse verwendet wurde Abbildung 14 4 Seite 127 Gestartet wird eine komplexe Analyse In diesem Fall wird f r jeden Pre und Postprozessor dieselbe Klasse genutzt was in einem konkreten Anwendungsfall sicher nicht sinnvoll w re Hier dient es lediglich dazu zu zeigen welche Schl ssel mit welchem Wert belegt werden m ssen 129 14 Technisches Handbuch Framework wie diese durch die Klasse AnalysisRunner Die Ausgabe ist in diesem java diko framework AnalysisRunner complexProperties txt Ee Abbildung 14 7 Starten einer komplexen Analyse Fall dieselbe wie in Abbildung 14 5 Seite 128 da die hier verwen deten Pre und Postprozessoren keine Ausgabe erzeugen und somit nur die Ergebnisse der eingebetteten einfachen Analyse ausgegeben werden 14 6 Fazit Mit dem Framework ist wie beschrieben eine Java Bibliothek ent standen die es erm glicht metadatengesteuerte Analysen auf ver schiedensten Datenguellen durchzuf hren F r die Analyse stehen mehrere Clusterer von WEKA sowie ein von der Projektgruppe selbst erstellter Algorithmus zum Finden von kalenderbasierten Assozia tionsregeln zur Verf gung Damit sind die Anforderungen aus Ab schnitt 14 1 und Kapitel 10 erf llt Das Framework leistet sogar
136. Die Implementierung erfolgt in Java um eine m glichst hohe Plattformunabh ngigkeit erreichen zu k nnen Als Grundlage f r die Personalisierungsbibliothek dient das freie Softwareprojekt WEKA Der Online Shop basiert auf Analyseergebnissen des Kartenanbieters 18 2 2 Funktionale Anforderungen Es wird darauf verzichtet ein existierendes Shopsystem anzupassen Stattdessen wird ein eigener exemplarischer Online Shop implemen tiert 2 2 Funktionale Anforderungen Im Folgenden werden die funktionalen Anforderungen an das Ge samtszenario erl utert Grundlage f r das dargestellte Gesamtszenario der Projektgruppe ist der Entwurf der Datenbankschemata des On sowie Offline H nd lers und das Schema des Kartenanbieters Diese Schemata werden im Anschluss ausf hrlich getestet und dokumentiert Um die Schema ta testen zu k nnen werden Testdaten basierend auf Zufallswerten durch Perl Skripte erzeugt und z T manuell eingegeben Transaktio nen mit kalendarischen Mustern werden hierbei mit dem Algorith mus tBasket LNWJ generiert Nach erfolgreichem Testen werden die Testdaten in den Schemata gel scht Die Schemata der H ndler werden von den H ndlern mit den vorhan denen Kunden Transaktions und Produktdaten gef llt Das Kar tenanbieterschema beinhaltet initial keine Daten Nach dem Entwurf der DB Schemata ist die Projektarbeit in die zwei Teilaufgaben Integration und Analyse unterteilt Die Integration hat im Rahmen des Gesamt
137. Do kumente als Unterabschnitte aufgenommen worden Die gesamte Do kumentation erfolgte in ATEX wodurch die Arbeit auf unterschied lichen Systemen erreicht werden konnte 236 21 8 Zusammenfassung 21 8 Zusammenfassung Zusammenfassend ist festzustellen dass fast alle Anforderungen voll st ndig umgesetzt worden sind Anhand der Abbildung 21 1 werden die realisierten Komponenten des Gesamtszenarios aufgef hrt Der Verzicht auf einige andere wird erl utert Kunden Angebot Online Shop Personalisierung Personalisierung Analyseergebnisse Analyseergebnisse aggregierte Daten Analyse ergebnisse Analyseergebnisse Analyseergebnisse Abbildung 21 1 bersicht Gesamtszenario Die Datenbanken des H ndler 1 und H ndler 2 sowie des Kartenanbie ters sind in einer fr heren Phase realisiert worden und stehen somit im Gesamtszenario zur Verf gung Die Bibliothek ist eine Erweite rung der WEKA Bibliothek insbesondere wurde ein Framework zur Steuerung dieser Bibliothek implementiert Desweiteren ist ebenfalls ein Online Shop entwickelt worden der den Kunden von H ndler 1 ein personalisiertes Angebot anbietet Die Personalisierung f r die Kun den von H ndler 2 ist nicht weiter ber cksichtigt worden da nur der Online Shop zur Evaluierung der Analyseergebnisse verwendet wer den sollte siehe Aufgabenstellung In der Integration sind dennoch die Daten beider H ndler in die Karte
138. Haendler war not wendig um die Identifizierung zu importierender Datens tze in den H ndlerdatenbanken zu erm glichen Das aus den nderungen re sultierende Datenbankschema kann in den Abbildungen 5 1 bis 5 5 eingesehen werden 39 OF SIIJALJULUIJILYJ s p LUIIUISJULGUIJEG S9ISSEAISUY T c SUNPIIJJV sachen pe Dr amaimon p L rom A jH HH Lomm r fs bet rem JINMIUT 199 1974u9LI04JJlqO G 5 2 Designentscheidungen KUNDEN ADRESSE KUNDENID FK TZA HAENDLERID FK KUNDEN_NAME KSTRINGATTRIBUT e KUNDENID FK TZA TZA HAENDLERID FK HAENDLERID FK KUNDEN_BERUF KSTRINGATTRIBUTID FK KUNDEN KUNDENID FK e KA KUNDENID TZA e HAENDLERID FK HAENDLERID FK eh ZE KUNDEN FAMILIENSTAND KUNDENATTRIBUTID HAENDLER KUNDENIDER HAENDLERID FK Haenotenoj Me KUNDENATTRIBUT KNUMBERATTRIBUT KUNDENID FK KUNDEN EK TZA HAENDLERID FK HAENDLERID FK HAENDLERID FK KNUMBERATTRIBUTID FK ir LOV_KUNDEN_FAMILIENSTAND INHABER FK t KARTENSYSTEMID FK TZA KARTENSYSTEM FK HAENDLERID FK KONTO STATUS INHABER FK KARTENSYSTEMID FK e TZA_KARTENSYSTEM FK TZA HAENDLERID FK KTEXTATTRIBUT KUNDENID FK TZA
139. Implementierung Diese Seite enth lt eine Tabelle in die verschiedene Unterseiten die als eigenst ndige jsp Dateien auf dem Server abgelegt sind eingebun den werden Die Aufteilung der Seite ist dem Schema in Abbildung 20 1 zu entnehmen Zudem werden noch zwei weitere jsp Dateien ein header jsp root ctalog product user basket jsp in Abh ngigkeit des bergebenen Paramters CMD wird eine der Seiten dargestellt navigation jsp alle diese Dateien sind im Verzeichnis content footer jsp footer2 jsp Abbildung 20 1 Aufbau des Online Shops gebunden logic jsp und final jsp Diese Seiten kapseln Funktionalit t und stellen keine Inhalte dar Im Folgenden werden die einzelnen jsp Seiten n her beschrieben logic jsp Diese Datei wird als erste Datei in die index Zen eingebunden noch be vor etwas dargestellt wird In dieser Datei wird zun chst eine Daten bankverbindung zur Datenbank des H ndler 1 aufgebaut Anschlie Bend wird ein User Objekt instantiiert und falls die Parameter user und password mit Werten belegt sind d h sich ein Nutzer anmeldet mit den Daten des sich anmeldenden Nutzers gef llt Weiterhin wird der Warenkorb aus der Session geholt falls einer existiert Andern falls wird ein neuer Warenkorb instantiiert Abschlie end wird der Parameter CMD ausgewertet Dies geschieht anhand einer Integer Konstanten anhand der in der Ander Aen entschieden wird welcher Inhalt eingebunden
140. Kartenanbieterdaten bank in den Tabellen Kunden Transaktion Posten und Einordnung Aus der Relation Kunden sind die IDs der Kunden zu bestimmen welche in der Tabelle Transaktion im Attribut Inhaber aufgef hrt sind Die einzelnen Produkte und deren Anzahl sind in der Tabelle Posten gespeichert Die Verkn pfung der Produkte mit einer Wa rengruppe ist wiederum in der Relation Einordnung gegeben Diese bilden neben den f r die Verkn pfungen ben tigten Fremdschl sseln die Menge der relevanten Daten f r die angestrebte Analyse Aufbereiten der Daten Um den Aufwand f r die notwendigen SQL Anfragen zu minimieren wurde eine sogenannte MaterializedView gana eine Art Zwischen tabelle in dem Schema der Kartenanbieterdatenbank erstellt um nicht f r jeden Kunden aufwendige Tabellenverkn pfungen Joins durchf hren zu m ssen Die SQL Anweisung zum Erzeugen dieser Sicht lautet create materialized view gana as select p transaktionid p anzahl e warengruppeid from einordnung e join posten p on p produktid e produktid and p tza_produkt e tza_ produkt where p haendlerid 1 and e haendlerid 1 refresh complete Dieser Schritt war notwendig da die zu verkn pfenden Tabellen Ein ordnung und Posten eine bzw zehn Millionen Eintr ge besitzen Aus der Relation Posten werden die Werte der Attribute Anzahl und Transaktionid und aus der Relation Einordnung die Warengrupp eID der jeweiligen Produktes eines Postens ermittelt Hier wie auch be
141. Mining Bibliothek 79 Datenbankschema H ndler 1 215 Datenstrom 80 Distanzfunktion nominal 191 EM Ergebnisse 300 Parameter 124 Exportstrom 82 323 Index Framework 79 81 107 AlgorithmController 112 AlgorithmRunner 119 Architektur 108 ARFF Datei 114 115 120 121 Assoziationsregeln 117 124 Clustering 116 122 ConfigurableSourcelterator 112 Datenfluss 109 Erweiterung 118 Javadoc 113 JDBC 114 115 120 122 komplexe Analysen 109 Konfigurationsbeispiel 203 MetaDataProvider 112 OptionHandler 112 Parameter 119 Postprocessing 109 Preprocessing 109 Result Writer 112 Vektor Attribute 115 Fuzzy Match 101 Fuzzy Support 90 102 H ndlerID 71 IllegalPropertyException 113 Importstrom 81 Integration Abnahmekriterien 34 Anforderungsdefinition 31 Architektur 39 Ausblick 242 Benutzerhandbuch 65 Benutzerschnittstellen 33 Designentscheidungen 39 Dynamikbeschreibung 61 Dynamische Analyse 37 324 Erweiterbarkeit 69 Kartenanbieterdatenbank 68 Quelldatenbanken 67 Funktionale Anforderungen 32 Klassenbeschreibung 42 Anwendungsklassen 42 Datenbankanbindung 60 Meilensteine 65 Nicht funktionale Anforde rungen 32 Objektorientierte Analyse 31 Objektorientierter Entwurf 39 Probleme der Implementie rung 71 Statische Analyse 35 Systemeinsatz 32 Technisches Handbuch 63 Jaccard Koeffizienten 191 Java Server Pages 215 JDBC jsp als Da
142. MitKarte Die Methode aktualisiert die tze Werte der Datens tze in den Tabellen Kunden_Name Kunden_Adresse Kunden_Familien stand Kunden_Beruf KNumberAttribut und KString Attribut des Kartenanbieterschemas falls diese seit dem letzten Import gesetzt worden sind Klasse CleanDoubles Name CleanDoubles Kurzbeschreibung Die Klasse CleanDoubles entfernt aus den Quelldaten von H nd ler 2 Datens tze deren Attribute in der Quelldatenbank dieselben Werte haben Diese Datens tze k nnen in die Kartenanbieterdaten bank nicht problemlos bernommen werden da die Attribute dort als Prim rschl ssel verwendet werden Um Fehler w hrend des Im ports zu vermeiden m ssen die inkonsistenten Datens tze vorher aus der Quelldatenbank entfernt werden Diese Klasse wurde nur zur Be reinigung der Testdaten von H ndler 2 entwickelt und ist nur der 57 5 Objektorientierter Entwurf Vollst ndigkeit der von der Klasse Loader verwendeten Objekte we gen in diesem Dokument aufgef hrt Durch das Entfernen der doppelten Datens tze entsteht ein Informa tionsverlust Eine Zusammenfassung der doppelten Daten h tte eine sauberere Implementation dargestellt Darauf wurde jedoch aus Zeit gr nden verzichtet Oberklassen keine Unterklassen keine Attribute 1 DBConnection targetDB Stellt eine Verbindung zur Datenbank dar die f r schreibende Zugriffe genutzt wird 2 DBConnection sourcelDB Stellt eine Verbindung zur Datenbank dar
143. Normal Distribution Mean 13 8815 StdDev 3 0403 Attribute WG6 Normal Distribution Mean 3 1475 Attribute WG7 Normal Distribution Mean 13 5581 StdDev 2 586 15 1013 StdDev Cluster 3 Prior probability 0 3866 Attribute WG1 Normal Distribution Mean 14 6034 StdDev 2 0004 Attribute WG2 Normal Distribution Mean 12 7805 StdDev 2 Attribute WG3 Normal Distribution Mean 13 6893 StdDev 2 Attribute WG4 Normal Distribution Mean 14 8848 StdDev 2 Attribute WG5 Normal Distribution Mean 13 1489 StdDev 2 0465 Attribute WG6 Normal Distribution Mean 14 34 StdDev 2 Attribute WG7 Normal Distribution Mean 13 0029 StdDev 2 Cluster 4 Prior probability 0 002 Attribute WG1 Normal Distribution Mean 0 StdDev 2 Attribute WG2 Normal Distribution Mean 4 StdDev 4 Attribute WG3 Normal Distribution Mean 4 StdDev 4 Attribute WG4 Normal Distribution Mean 0 StdDev 2 Attribute WG5 Normal Distribution Mean 49 9996 StdDev 50 Attribute WG6 Normal Distribution Mean 20 4998 StdDev 20 5 Attribute WG7 Normal Distribution Mean 20 4998 StdDev 20 5 310 Cluster 5 Prior probability 0 001 Attribute Attribute Attribute Attribute Attribute Attribute Attribute WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution Personalisierung Me
144. Passwd Sting lt lt eroate gt gt ImportHaendier2fsourceDBHost String sourooDBDriver Sting sourcoDBUserName String sourceDBUserPasswd SringtargerDBHost String targetDBDriver Sting targelDBUsorName String targetDBUserPasswd String ImportD80 boolean IoettastUpdateTimestampo void updatekundemitkarte void EN imporiKundeOhnekartel void Iupdatoritatog void Importitalog vord Importkategorie ep Leet eg imporarikel voia ImportBong voia ImportPositong void Abbildung 4 1 Klassendiagramm 36 4 3 Dynamische Analyse Seguenzdiagramm 4 3 Dynamische Analyse Seguenzdiagramm Die Dynamik des Systems wird durch das Seguenzdiagramm in Abbil dung 4 2 f r den wesentlichen Anwendungsfall beschrieben Es wird sich hierbei auf einen exemplarischen Fall beschr nkt in dem die Klasse ImportHaendler1 aufgerufen wird Im Falle eines Aufrufs von ImportHaendler2 verlaufen die Klassenaufrufe analog Import RAKA DBConnection main ImportHaendler1 E onnection DBConnection readTargetDB DBConnection DBConnection writeTargetDB DBConnection executeQuery ResultSet gt import gt executeQuery ResultSet startTransaction void executeUpdate boolean commit rollback void yyy disconnect DBConnection disconnect DBConnection disconnect DBConnection
145. Produktmengen ebenfalls kei ne weitere interessante Information gewonnen werden Da durch die Analyse entweder Kategorien herausgefunden werden die dem Be nutzer vorgeschlagen werden k nnen oder Assoziationsregeln auf den Clustern angewendet werden Im ersten Fall w rde die vorgeschlagene Kategorie unabh ngig von der Menge gleich bleiben und im zweiten Fall w rden die Mengen die Assoziationsanalyse nicht beeinflussen da diese an sich schon keine Mengen betrachtet Jedes Produkt hat des Weiteren genau einen Typ Der Fall dass ein Produkt zu mehreren Kategorien oder Typen geh rt wurde hier nicht speziell behandelt In der Praxis kann dies zwar vorkommen jedoch ist es wahrscheinlich dass es auf einer Ebene passiert die f r dieses Analyseverfahren ohnehin zu feingranular w re Eine Implementie rung dieser Analyse mit mehrfacher Typ Zugeh rigkeit pro Produkt w re jedoch ohne Weiteres zu l sen da einzig die Transformation dementsprechend angepasst werden m sste Die Attribute haben den Typ nominal bekommen da bin re At tribute nicht in WEKA existieren und keine reellen Zwischenwerte zugelassen werden sollen Als Algorithmus wurde XMeans PM00 benutzt Dieser Algorithmus hat den Vorteil selber die optimale Clusteranzahl zu bestimmen Es wurde eine eigene Distanzfunktion weka core NominalDistance siehe 191 16 Anwendung Nicht temporale Analysen Warenkorb ID Produkttyp 1 Produkttyp n Tabelle 16 34
146. Schritte bernehmen Dies wird erst zur Laufzeit dynamisch aufgrund der jeweiligen Parameter entschieden Aufgrund dessen ist es f r Anwender des Frameworks sehr einfach dieses mit eigenen Implementierungen zu erweitern ohne dass dazu am Framework selbst etwas ge ndert werden muss Soll beispielsweise eine neue Datenquelle an das Framework angebunden werden muss eine Klasse die das Interface ConfigurableSourcelterator implemen tiert und ber einen g ltigen Default Konstruktor verf gt geschrie ben werden Um die Klasse in einen Lauf des Frameworks einzubin den ist es lediglich notwendig ihren vollst ndigen Namen als Para meter sink dem AlgorithmRunner zu bergeben siehe Seite 119 14 3 5 Notwendige nderungen an WEKA Um alle Funktionen des Frameworks implementieren zu k nnen mus sten einige nderungen an WEKA vorgenommen werden Neben dem Umbau der Klasse Instances die nun nicht mehr alle Daten im Haupt speicher vorh lt siehe Kapitel 12 ist vor allem die Erweiterung der Attribute um den Typ Vektor notwendig gewesen um die temporalen Assoziationsregeln sinnvoll speichern zu k nnen Der Grund daf r ist dass in den Assoziationsregeln eine beliebige An zahl an Produkten vorkommen kann WEKA kann in der urspr ngli chen Version jedoch nur Instanzen mit einer festen Anzahl an Attri buten verwalten Daher hat die Projektgruppe einen neuen Typ von Attributen eingef hrt die Vektor Attribute Vektor Attribute erm
147. Temporale Personalisierung Amazon de Detailseite DVD Vanilla Sky Microsoft Internet Explorer x Datei Bearbeiten Ansicht Favoriten Extras Sp Q ix EN a Le 2 Suchen De Favorten Wueden amp Z http jwww amazon defexecfobidosfASIN BO000SV967 ref pd_apt_1 302 2703015 66 Y EJ Wechseinzu lt Lnks J speichem y Enordnen Enoten Ze u DI a Adres amazon de ez wunscHzetTeL wem KONTO Hitre OLIVERS ENGLISH V ELEKTRONIK amp e COMPUTER amp EEE gt OA ll ST BERN MUSIK DVDs NEUHEITEN CHARTS VORSCHAU pi GEBRAUCHT St bem Alle Kategorien Schnellsuche DVD 1 000 000 Mal g EITA Vanilla Sky BEI AMAZON DE KAUFEN Mehr zu dieser DYD 5 A n Preis EUR 25 99 berblick E Technische Neu ab EUR 14 90 Information Gebraucht sb EUR 13 50 Besetzungsliste Amazon de Redaktion Kundenrezensionen Mehr von der Besetzungsliste amp Regisseuren Tom Cruise Versandfertig in 2 bis 3 Tagen 13 Neu ab EUR 14 90 11 Gebraucht ab EUR 13 50 2 Sammlerst ck ab EUR Gr eres Bild Ab EUR 20 bernehmen wir das Porto Alle Details finden Sie hier n e ua seat Diesen Artikel verkaufen Cameron Crowe Unser Vorschlag s Kundankauftenauch Kaufen Sie Vanilla Sky und Panic Room H Zusammen f r EUR 51 98 diese Produkte E Te O neteje Meinen Wunschzettel ansehen Ihre Meinung zu diese DND Empfehlen Sie diese
148. UserName Target Password Diese Parameterfolge gibt an zwischen welchen Datenbanken eine Daten bertragung vorgenommen werden soll Es sind alle n tigen Verbindungsparameter enthalten H ndlerID KartenanbieterID Source UserName Source Password Target UserName Target Password Diese Parameterfolge gibt an zwischen welchen Datenbanken eine Daten bertragung vorgenommen werden soll Es werden Benutzernamen und Passw rter f r Quell und Zieldatenban ken bergeben Hostname und Driver sind f r Quell und Ziel datenbank fest codiert womit dieser spezielle Programmaufruf auch lediglich f r diese Datenbanken funktioniert Die einzelnen Verbindungsparameter werden bei den Aufrufen wie folgt verwendet 64 e Source_Hostname Hierbei handelt es sich um die genaue Adresse der Quelldaten bank Beispiel J bc oracle thin power2 offis uni oldenburg de 1521 power2 Source Driver Der f r die Verbindung zur Quelldatenbank verwendete Treiber Beispiel oracle dbc Driver OracleDriver Source UserName Das Login f r die Quelldatenbank Beispiel haendler1 Source_Password Das Passwort f r den Zugriff auf die Quelldatenbank Beispiel Passwort 6 2 Meilensteine e Target Hostname Hierbei handelt es sich um die genaue Adresse der Zieldaten bank Beispiel Jdbc oracle thin power2 offis uni oldenburg de 1521 power2 e Target Driver Der f r die Verbindung zur Zieldatenbank verwendete Treiber B
149. achsene Kunden um 40 Jahre e 3 m nnliche Fr hrentner oder ltere Kunden e 4 weiblich Fr hrentner oder ltere Kunden e 5 m nnliche Twens e 6 weibliche Twens e 7 m nnliche jugendliche Kunden e 8 weibliche jugendliche Kunden 160 16 1 Clusteranalyse nach Kunden KundenID Geschlecht PLZ 1 1978 23456 1965 23123 23506 23123 66345 06666 66666 23123 23123 66323 23123 66666 1965 23123 23123 66666 23123 1965 66789 23123 66666 23777 a 1 e 23223 22 1 1 1 1990 1 1 1 1 w o mwmw as Tabelle 16 9 synthetische Testdaten 161 w N m oO ei OT pi Cl 00 N m w Gu Goal VI PIPI PI P N N 00 A N oo N Dl o AJ w Ko wj wj Du CA m wj w w w Ko N Kerl OV 16 Anwendung Nicht temporale Analysen Geschlecht PLZ 32 23123 0052 SE 53153 3313 50000 313 53001 Se 23123 22000 1990 23123 1990 23567 66060 66060 60000 23123 23105 23123 66060 53123 53123 Soen 60060 23123 51102 23123 23123 21203 re 60734 a 0 m n ao f o ms asr w 0o o pms wo o s es woo f w sa 162 Tabelle 16 10 synthetische Testdaten KundenID DESEN A SO OU KOR gt O 1 1 1 1 OT oO ot OT OT OT OT wi N j OT o 00 OR OB CO O ol RI ojl N D Jl ES N OT SI 16 1 Clusteranalyse nach Kunden PLZ 23123 66543 23123 0 1989 66666 H 1989 24568 2312
150. al Distribution WG7 Normal Distribution Cluster 3 Prior probability 0 001 Attribute Attribute Attribute Attribute Attribute Attribute Attribute WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution Personalisierung Mean 3 3347 StdDev 4 5708 Mean 5 5256 StdDev 3 8615 Mean 6 3595 StdDev 4 5647 Mean 9 3185 StdDev 12 9028 Mean 36 499 StdDev 44 1584 Mean 17 438 StdDev 17 2807 Mean 19 5034 StdDev 16 5479 Mean 0 StdDev 0 Mean 50 StdDev 0 Mean 50 StdDev 0 Mean 0 StdDev 0 Mean 0 StdDev 0 Mean 0 StdDev 0 Mean 0 StdDev 0 0 676 67 1 324 32 23 0 31 0 Log likelihood 17 47379 Scheme weka clusterers EM I 20 N 1 S 12 M 2 0 Number of clusters selected by cross validation 7 Cluster 0 Prior probability 0 001 Attribute Attribute Attribute Attribute Attribute Attribute Attribute Cluster 1 Prior probability 0 Attribute Attribute Attribute Attribute Attribute Attribute WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribut
151. als optionales Argument noch ein Fuzzy Support bergeben werden Fehlt dieser Wert wird als Default ein Wert von 1 angenommen siehe auch Kapitel 13 so wie Abschnitt 14 3 3 Zum Speichern einzelner Warenk rbe inklusive erweiterter Informa tionen wird die Klasse Basket modelliert Eine Menge von Waren k rben soll in der Klasse SetOfBaskets dargestellt werden die auch angepasste Funktionen f r TemporalAssociationRules bereith lt Die Analyse Ergebnisse werden ebenfalls in Form von SetOfBaskets re pr sentiert werden aber durch Aufruf der Funktion getResults in ein Objekt der Klasse Instances transformiert 11 2 Klassenbeschreibung 11 2 1 Temporallnstance Die API der Klasse Instance bleibt komplett erhalten Zus tzlich dazu werden folgende Funktionen zum Zugriff auf die temporalen Daten implementiert e get set Methoden zum Zugriff auf die Zeitstempel f r Transak tionszeit Anfang und Ende sowie G ltigkeitszeit Anfang und Ende abgek rzt tza tze gza gze Die Zeitstempel sind als Timestamps gespeichert 11 2 2 Sourcelterator Das Interface Sourcelterator stellt das Basisinterface f r alle Klas sen dar die den Zugriff auf eine Datenquelle implementieren sollen Es definiert die folgenden grundlegenden Methoden die ein Source Iterator mindestens bieten muss e boolean hasNext Gibt zur ck ob noch weitere Datens tze ge liefert werden k nnen e Instance next Gibt den n chsten Datensatz zur ck wenn
152. amtszenario 243 22 2 Integration 2 0 0 2 2 2 au ee nn O e A 244 22 3 Analyse 45 45 Joni Ka rt 244 22 4 Personalisierungskonzept 4 245 22 5 Online hop 246 VI Anhang 247 Integration 249 Personalisierung 259 Abbildungsverzeichnis 317 Tabellenverzeichnis 319 Literatur 321 Index 323 Glossar 327 xi Inhaltsverzeichnis xii Teil Einleitung Bei dem vorliegenden Dokument handelt es sich um den Endbericht der Projektgruppe Personalisierung internetbasierter Handelsszena rien Der Endbericht beschreibt Ziele Vorgehensweise und die Er gebnisse der Arbeit der Projektgruppe und ist in f nf Teile gegliedert 1 Die Einleitung umfasst neben diesem Text eine kurze Beschrei bung von Projektgruppen wie sie laut der Projektgruppenord nung vom 1 Juni 1988 des Departments f r Informatik an der Universit t Oldenburg durchgef hrt werden Ebenso enth lt sie eine Beschreibung der Ausgangslage der Projektgruppenarbeit in Form eines Rahmenkonzepts und einer Anforderungsdefini tion des Gesamtszenarios Die Dokumentation der Integration beschreibt den Ablauf des zweiten Teilprojekts der Projektgruppe Kernelemente dieses Kapitels sind die Anforderungsdefinition der Integration in Form einer objektorientierten Analyse sowie der objektorientierte Ent wurf Der als Analyse bezeichnete Teil des Endberichts umfasst die Beschreibung der Anforderungen die an das von der Projekt gruppe entwickelte
153. an 0 StdDev 2 Mean 50 StdDev 2 Mean 50 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 0 324 32 181 8 2 156 16 3 440 44 42 0 51 0 Scheme weka clusterers EM I 20 N 12 S 1 M 0 0010 Number of clusters 12 Cluster 0 Prior probability 0 2057 Attribute 1 7828 Attribute 1 7971 Attribute 1 5509 Attribute 1 81 Attribute 1 7652 Attribute 1 6025 Attribute 1 6757 WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution Cluster 1 Prior probability 0 001 Attribute Attribute Attribute Attribute Attribute Attribute Attribute WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution Cluster 2 Prior probability 0 3227 Mean 14 6384 StdDev Mean 13 1461 StdDev Mean 14 0853 StdDev Mean 14 7133 StdDev Mean 13 0497 StdDev Mean 14 3205 StdDev Mean 12 4908 StdDev Mean 14 StdDev 0 001 Mean 12 StdDev 0 001 Mean 8 StdDev 0 001 Mean 17 StdDev 0 001 Mean 11 StdDev 0 001 Mean 22 StdDev 0 001 Mean 12 StdDev 0 001 311 Personalisierung Attribute Attribute Attribute Attribute Attribute Attribute Attribute
154. ang des Speicherns in die Datenbank bzw Vornehmen einer nderung in der Datenbank Ei ner Transaktion liegt das sogenannte ACID Prinzip zu Grunde Eine Transaktion mu somit den Prinzipien Atomicity Consistency Isola tion Durability gen gen 347 Glossar Transaktionsdaten Daten die sich h ufig ndern bzw stets neu anfallen z B Daten der laufenden Gesch ftst tigkeit nennt man Transaktionszeit Die bezeichnet den Zeitraum zwischen dem Transaktionszeitanfang an dem eine Transaktion in der Datenbank gestartet wird und dem Transaktionszeitende an dem sie abgeschlos sen wird Transformationskomponente Die bringt die Daten die in die T Basisdatenbank geladen werden sollen in einen geeigneten Zustand da sie sich strukturell und inhaltlich unterscheiden Tupel ist ein Kunstwort das zur Verallgemeinerung der Begriffe Paar Tripel usw benutzt wird Ein n ist eine aus n Elementen bestehende mathematische Gr e Im Zusammenhang mit einer T Re lation kann man ein als eine Zeile einer T Relation verstehen Tupel Zeitstempelung Die T Zeitstempelung erfolgt hier pro Tu pel Dabei kann nicht pro T Attribut unterschieden werden Diese T Zeitstempelung entspricht der ersten Normalform und ist mit kon ventionellen DBMS konform URL Parameter ist ein Parameter der an eine URL angeh ngt wird Dieser Parameter kann durch den T Webserver oder eine ser verseitige Programmiersprache ausgewertet werden Va
155. angelegten Testdaten umfassen dabei am Ende der hier beschriebenen Erweiterung lediglich 183 Kunden datens tze um eine leichte Interpretierbarkeit der Analyseergebnisse zu gew hrleisten 1 Erweiterungsschritt Um sicherzustellen dass der SimpleKMeans Clusteralgorithmus im Bezug auf das Geburtsjahr sinnvolle Ergebnisse liefert ist damit be gonnen worden nur nach dem Geburtsjahr der Kunden zu clustern 157 16 Anwendung Nicht temporale Analysen SQL Query select GEBURTSDATUM from Test_Kunden Clusteralgorithmus SimpleKMeans Seed Anzahl vorgegebener Cluster Tabelle 16 7 Einstellungen 1 Clustering a m Tabelle 16 8 Ergebnis 1 Clustering Dabei sind verschiedene Einstellungen der Parameter Seed und An zahl der Cluster zur Anwendung gekommen Die ersten getesteten Parametereinstellungen sind der Tabelle 16 7 zu entnehmen w hrend die Ergebnisse dieses Clusterings in der Abbildung 16 8 abzulesen sind Um andere Einstellungen zu testen sind weitere Parameterva riationen zur Anwendung gekommen Dabei haben sowohl die Einstel lungen Clusteranzahl 5 Seed 1 und Clusteranzahl 4 Seed 1 identi sche Ergebnisse beim Clustering ergeben Die vier unterschiedlichen Geburtsjahre sind vier verschiedenen Clustern zugeordnet worden wobei die Centroiden jeweils exakt den Jahreszahlen der angelegten Testdaten entsprechen 2 Erweiterungsschritt Im Folgenden ist es das Ziel gewesen zu testen ob ebenfalls vier Clu ste
156. arbeitung 184 16 2 3 Analyse und Auswertung 2 2 2 22 186 16 2 4 Verwendung der Analyseergebnisse 188 16 2 5 Fazile 24 mnt laama a KN er ae e e 189 16 3 Clusteranalyse von Warenk rben nach Produkttypen 190 16 3 1 Umsetzung sasaaa 190 16 3 2 Ergebnisse 4 192 16 3 3 Anwendung der Ergebnisse im Shop 193 17 Konzept Temporale Personalisierung 197 17 1 Kalendarische Muster 197 17 1 1 Ausgangsdaten 197 17 1 2 Analyseverfahren 198 17 1 3 Interpretation 2 22 2 none 198 17 1 4 Beispiel sos sor 2 4 2 2 2 Dawn Ki pona 199 17 2 Temporales Clustering von Warenkorbdaten 199 17 2 1 Ausgangsdaten 201 17 2 2 Analyseverfahren 201 17 2 3 Interpretation 2 22 2 none 201 ix Inhaltsverzeichnis 1 4 2 4 Beispiel ns a rar teren E 202 17 3 Sequentielle Muster 202 17 3 1 Ausgangsdaten 202 17 3 2 Analyseverfahren 2 2 2222 22 202 17 3 3 Interpretation 2 22 2 02 203 14 3 4 BeispielG42 3 18 s u ara nr mans ee 203 18 Anwendung temporaler Analysen 205 18 1 Kalendarische Muster 205 18 1 1 Konfiguration und Parameter 205 18 1 2 Ergebnisse 207 18 2 Temporales Clustering von Warenkorbdaten 208 18 2 1 Ergebnisse 0 208 18 2 2 Bewertung 209 18 2 3 Erweiterungsm glichkeiten 0 210 19 Ergebnisse und Schlussbetrachtung der Personalisierung 211 19 1 Soll Ist Vergleich e
157. arischen Muster auf eine feinere Zeitgranularit t wie zum Beispiel auf Stunden als ele mentare Zeitintervalle Damit lieBen sich mit Bezug auf die Persona lisierung von Angeboten auch Verl ufe im Kaufverhalten ber einen Tag herausfinden Des Weiteren w re eine Konfigurierbarkeit des Fuzzy Supports f r Wildcard Muster denkbar wenn anstatt den Fuzzy Support in Ab h ngigkeit von der Anzahl der Tage zu betrachten ihn von der Anzahl der Gesamtwarenk rbe die an dem Wildcard Muster galten fest zu machen Damit w rden Tage mit wenigen Warenk rben nicht das gleiche Gewicht erhalten wie Tage mit sehr vielen Warenk rben Insgesamt stellt der Algorithmus dank der verwendeten Datenstruk turen und der Umsetzung des Temporal Apriori Ansatzes eine vern nf tige Implementierung des Algorithmus zum Finden von kalendari schen Mustern dar und sollte f r die Personalisierung brauchbare Ergebnisse liefern 106 14 Technisches Handbuch Framework Dieses Handbuch beschreibt den Aufbau des Frameworks seine Rea lisierung und seine Anwendungsm glichkeiten Das Framework dient dazu die Data Mining Bibliothek WEKA WFO1 und ihre Erweite rungen durch die Projektgruppe mittels einer einfachen Konfigurati onsdatei anzusteuern und so Analysen wie Clustering und das Finden von kalendarischen Mustern zu erm glichen Das Handbuch richtet sich an Benutzer die das Framework zum Data Mining benutzen wollen sowie an Entwickler die das Frame work
158. bei Tabelle 16 2 die Ergebnisse enth lt 153 16 Anwendung Nicht temporale Analysen SQL Query select Vorname from Vorname Test Clusteralgorithmus SimpleKMeans Anzahl vorgegebener Cluster Tabelle 16 1 Einstellungen 1 Testlauf Inhalt Eintr ge RS p m 08 Tabelle 16 2 Ergebnis 1 Testlauf Ergebnis des ersten Testlaufes Der erste Testlauf hat nicht das zu erwartende Ergebnis geliefert da nur 2 statt 3 Cluster gefunden worden sind wobei Cluster 0 sowohl alle Werte f r Julia als auch f r Tim enth lt Lediglich der Cluster 1 enth lt die erwarteten 4 Eintr ge 2 Testlauf Da der erste Testlauf nicht die intuitiv erwarteten Er gebnisse geliefert hat ist beim zweiten Testlauf die Variable Seed ver ndert worden weil davon ausgegangen werden kann dass die Clusteranzahl von 3 richtig gew hlt worden ist Das Clustering mit den Einstellungen von Tabelle 16 3 hat schlie lich die zu erwartende Clusteranzahl von 3 geliefert wie es auch in der Ergebnistabelle 16 4 zu sehen ist SQL Query select Vorname from Vorname Test Clusteralgorithmus SimpleKMeans Sed TI Seed Anzahl vorgegebener Cluster Tabelle 16 3 Einstellungen 2 Testlauf 154 16 1 Clusteranalyse nach Kunden Thal Eintr ge o f maf a ES e Ee Tabelle 16 4 Ergebnis 2 Testlauf Ergebnis des zweiten Testlaufes Der zweite Testlauf hat die vor her erwarteten Ergebnisse geliefert Damit ist es gelungen ein erstes Verst ndni
159. ber einen Parameter gestartet In einem sp teren Schritt soll die Auswahl der Algorithmen 80 10 3 Funktionale Anforderungen und der Analysedaten ber Metadaten gesteuert werden Die genaue Definition des Metadatenformates wird ebenfalls zu einem sp teren Zeitpunkt definiert da sie f r diese Anforderungsdefintion nicht von Belang ist Die Ergebnisse werden in einem einfachen f r die aktuell verwendeten Algorithmen spezalisierten Format gespeichert das nach M glichkeit sowohl menschen als auch maschinenlesbar sein soll Mit der Einf hrung der Metadaten f r Datenauswahl und Steuerung soll auch das Ausgabeformat durch Metadaten festgelegt bzw beschrie ben werden Framework Control Abbildung 10 1 Schematische Darstellung des Frameworks Datenstrom F r den ersten Teilschritt soll der Datenstrom keine Metadaten beachten Konkret bedeutet dies f r die Implementierung dass insgesamt vier spezialisierte Datenstr me programmiert werden m ssen Es ist jeweils ein Datenstrom zum Import f r die beiden Al gorithmen n tig Da die beiden oben genannten Algorithmen unter schiedliche Daten ben tigen sind hier ebenfalls unterschiedliche Im portstr me n tig Dasselbe gilt f r den Export Da die Ergebnisdaten von unterschiedlicher Form sein werden m ssen deshalb auch jeweils spezielle Str me implementiert werden Zus tzlich mu WEKA ange passt werden damit eine Zusammenarbeit mit den Str m
160. bnisse bernommen werden 104 13 3 Implementierungsdetails Im n chsten Schritt sollen alle Regeln gefunden werden die m gli cherweise f r ein Wildcard Muster halten Dies geschieht mittels up dateStarPattern Hier werden f r jedes elementare Zeitintervall aus dem Beobachtungszeitraum die gefundenen Kandidaten in die ent sprechenden Wildcard Muster mittels der SetOfBaskets Methode fuz zyUpdate kopiert Dabei wird das Vorkommen einzelner Regeln an un terschiedlichen Tagen mittels testStarpatternFuzzyMatch mitgez hlt und Regeln die den vorgegebenen Fuzzy Support nicht erf llen durch die Methode testBasketsFuzzyMatch gel scht Die Methode updateResults kopiert die gefundenen und g ltigen Asso ziationsregeln zusammen mit den erreichten Support Werten in das Ergebnis Array Au erdem wird die Repr sentation von Wildcard Mustern konvertiert Danach wird der Z hler f r die Anzahl der Ar tikel in einer Regel um den Wert Eins erh ht Der Algorithmus f hrt diese Befehlsabfolge solange durch wie in dem Ergebnis Array Daten eingetragen werden Sobald keine Assoziati onsregeln der geforderten Gr e mehr gefunden werden bricht der Algorithmus ab Die Ergebnisse k nnen dann durch den Aufruf der Methode getRe sults in Form von Instanzen ausgelesen werden 13 3 2 SetOfBaskets Die Klasse SetOfBaskets soll die Regeln oder die Warenk rbe eines Tages repr sentieren Dazu besteht sie aus einem Fast Vector von Bas kets und ein
161. cDriver oracle jdbc driver OracleDriver sink jdbcConnection j bc oracle thin Opower2 offis uni oldenburg de N 1521 power2 sink jdbcLogin haendleri1 sink jdbcPaSsSWOrd XXXXXXXX sink jdbcTable michi2 sink jdbcIgnoreAttributeNames 1 algorithm diko framework algorithms TemporalAssociationRuleController tempAssociations minDate 01 01 2004 tempAssociations maxDate 02 01 2000 tempAssociations minSupport 0 2 tempAssociations fuzzySupport 0 2 Die Parameter der obigen Konfiguration sind ausf hrlich in der Do kumentation des Frameworks siehe Kapitel 14 Seite 107 erl utert Deshalb soll im Folgenden lediglich auf die f r diese Analyse relevan ten Werte eingegangen werden Der Parameter source jdbcSQL enth lt den SQL Befehl der einen Join ber die Entit ten Warenkorb und Produkt_Warenkorb bildet Dabei werden die Attribute wk_id Warenkorb ID und p_id sowie die temporalen Attribute des Warenkorb selektiert Weitere wesentliche Optionen sind DISTINCT um doppelte Datens tze auszuschlie en und rownum lt 1000000 um die Gesamtanzahl auf eine Million zu begrenzen 206 18 1 Kalendarische Muster DI Mit source tza und den folgenden drei Parametern werden die Spalten des SQL Statements genannt die die temporalen Attribute enthalten Die Spalten sind von 0 an durchnummeriert 1 steht also f r die zweite Spalte Mit attributeName und attribute Type werden Name und Typ der At tribute besti
162. ceDBHost String sourceDBDriver String sourceDBUserName String sourceDBUserPasswd String targetDBHost String targetDBDriver String targetDBUserNa me String targetDBUserPasswd Konstruktor der ein Objekt vom Typ ImportHaendler1 instan tiiert boolean importDB importiert die Daten der Datenbank von H ndler 1 in die Da tenbank des Kartenanbieters unter Ber cksichtigung der Unter schiede der beiden Schemata Ruft die Methoden f r den Import und die Aktualisierung der Daten aus den einzelnen Tabellen auf mit anderen Worten alle anderen Methoden Setzt je nach Fortschritt des Imports den Wert f r das Attribut Status in der Tabelle Haendler des Kartenanbieters Liefert true zur ck falls der Import ohne Probleme abschlie t ansonsten false void importEinordnung importiert die Daten in die Tabelle Einordnung des Kartenan bieterschemas Wird von der Methode importDB aus aufgeru fen void importKonto importiert die Daten in die Tabelle Konto des Kartenanbieter schemas Wird von der Methode importDB aus aufgerufen void importKunden importiert die Daten in die Tabelle Kunden des Kartenanbie terschemas Wird von der Methode importDB aus aufgerufen void importKunden Adresse importiert die Daten in die Tabelle Kunden_Adresse des Kar tenanbieterschemas Wird von der Methode importDB aus auf gerufen 10 11 12 13 14 15 5 3 Klassenbeschreibung void importKundenEMai
163. ch abgeschlossenem Vor diplom zu Beginn des WS 02 03 1 Rahmenbedingungen 1 4 2 Aufgabenstellung Das Ziel dieser Projektgruppe ist es ein System zu konzipieren und zu realisieren das personalisierte internetbasierte Handelsszenarien abbildet Die Teilnehmer der Projektgruppe sollen sich in die Lage eines Kar tenanbieters analog zu Payback Miles amp More versetzen Es soll ein neues Szenario f r die Nutzung von Kundenkarten realisiert werden das von mehreren H ndlern genutzt wird um dieses sp ter weiteren H ndlern zu verkaufen Kartensysteme Kartensysteme bieten Vorteile f r H ndler Anbieter von Kartensy stemen sowie f r Kunden Kunden haben die M glichkeit ein perso nalisiertes Informations und Warenangebot in Anspruch zu nehmen Dieses wird dadurch erm glicht dass Handelstransaktionen von par tizipierenden Kunden von den H ndlern an den entsprechenden Kar tenanbieter bermittelt werden Daf r erh lt der H ndler vom Kar tenanbieter ein Entgelt Der Kartenanbieter analysiert die Kunden daten Heute beschr nken sich die von den Kartenanbietern durch gef hrten Analysen i d R auf die Segmentierung von Kunden in Kun dengruppen Bsp Amazon H ndler sind bestrebt ihren Kunden ein m glichst gutes Angebot zu machen Dies k nnen sie gew hrleisten indem sie von Kartenanbietern Analyseergebnisse in Form von Kun dengruppenbeschreibungen und Einkaufsregelbeschreibungen einkau fen Es kann z B un
164. ch lediglich um die Instantiierung und die Verarbeitung von Parametern k mmert 112 14 3 Implementierung und deren Beziehung untereinander dar Zus tzlich sind die beiden Klassen AnalysisRunner und AlgorithmRunner dargestellt die ber main Methoden verf gen und damit von Benutzern direkt ausf hrbar sind main args String void ean AlgorithmRunner AnalysisRunner sourcetterator ConfigurableSourcelterator sentation Strind un close void void ac sis analysis Analysis i setDataset dataset Instances void savelnstance instance Instance void saveAllinstances dataset Instances void Abbildung 14 3 Klassendiagramm 14 3 2 Exceptions Um verschiedene Fehlersituationen sauber behandeln zu k nnen sind im Framework einige Exceptions definiert worden Dies sind im Ein zelnen PropertyException Die PropertyEzxception ist die Basisklasse f r al le Exceptions die auftreten k nnen wenn Parameter fehlen oder mit falschen Werten belegt sind MissingPropertyException Eine Unterklasse der PropertyExcepti on Wird immer dann geworfen wenn zwingend notwendige Parameter nicht angegeben wurden IllegalPropertyException Ebenfalls eine Unterklasse der Property Exception Wird immer dann geworfen wenn ein angegebener Parameter einen illegalen Wert enth lt 113 14 Technisches Handbuch Framework SourceNotAvailableException Diese Exception wird von einem Sour celterator geworfe
165. ches Attribut in welche Spalte der Datenbanktabelle geschrieben wird sondern anhand der Position der Attribute Dies ist notwendig wenn die Spal tennamen der Tabelle nicht mit den Namen der im Framework verwendeten Attribute bereinstimmen SimpleStdoutWriter Der SimpleStdout Writer ben tigt keine Parameter er schreibt die Ergebnisse einfach in die Standardausgabe 14 4 4 Algorithmen Das Framework kann eine Reihe von Algorithmen auf die Eingabe daten anwenden um Analysen durchzuf hren Welcher Algorithmus in einer Analyse durchgef hrt wird wird durch Kontrollklassen de finiert die das Interface AlgorithmController implementieren F r jeden vom Framework ausf hrbaren Algorithmus gibt es eine ent sprechende Kontrollklasse Diese sorgen daf r dass der jeweilige Al gorithmus korrekt instantiiert und konfiguriert wird Clusterer Das Framework kann eine Reihe Clusterer von WEKA ansteuern Diese sind SimpleKMeans XMeans Erwartungsmaximierung und Cobweb Die Kontrollklassen f r die Clusterer sind so aufgebaut dass 122 14 4 Parameter der vorhandenen Implementierungen sie die Clusterer zun chst in ihrer Default Konfiguration initialisie ren Um optimale Ergebnisse zu erhalten ist es jedoch oft notwen dig den Algorithmen bestimmte Parameter z B die Anzahl der zu findenden Cluster vorzugeben Dazu verarbeiten die einzelnen Kon trollklassen eine Reihe von optionalen Parametern die im Folgenden aufgef hrt sind
166. chreibung Tabelle A 17 Relation Attribut 255 Integration UMBER 38 NOT NULL DATE NOT NULL INUMBER 38 NOT NULL Textattribut ProduktAttributlD d ate d 256 Tabelle A 18 Relation Text Attribut NumberAttribut ProduktID NUMBER 38 NOT NULL INUMBERG NOT NULL INumberAttributftza Produkt DATE NOT NULL INUMBER 38 NOT NULL NumberAttribut ProduktAttributID INUMBER 38 NOT NULL INUMBER 38 umberAttribut Wert INUMBER 38 e SS Tabelle A 10 Relation Number Attribut Integration tringAttribut ProduktID NUMBER S NOT NULL UMBERGS NOT NULL tringAttribut tza_ Produkt DATE NOT NULL NUMBER 38 NOT NULL StringAttribut ProduktAttributID NUMBER 38 NOT NULL Tabelle A 20 Relation String Attribut INUMBER 38 NOT NULL Transaktion TransaktionID NUMBER NOT NULL NOT NULL NUMBER 38 NOT NULL Transaktion Art Ge HE ES date Tabelle A 21 Relation Attribut 257 Integration 258 Personalisierung Nicht temporale Analysen bersicht der Konfigurationsdatei mit der aus dem Paket diko framework der AnalysisRunner aufgerufen wird configKIDGebGes source diko framework input ConfigurableJDBCSourcelterator relation foo source jdbcDriver oracle jdbc driver OracleDriver source jdbcConnection jdbc oracle thin power2 offis uni oldenburg de 1521 power2 source jdbcLogin xxxx source jdbcPassword xxxx source JdbeSQL select di
167. chwerpunktlage auf temporale Analysen nicht weiter verfolgt Da das Clustering nach Kunden und gekauften Produkten im Rahmen der Projektarbeit eben falls aus zeitlichen Gr nden nicht im Online Shop umgesetzt wird wird auch das Clustering nach Produktpreis oder nach Produktkate gorie i V m dem Preis wiederum i V m dem Clustering nach Kun 151 16 Anwendung Nicht temporale Analysen den und gekauften Produkten nicht durchgef hrt In Bezug auf das zweifache Clustering nach Kunden ist aufzuf hren dass durch das einfache Clustering nach Kundengruppen bereits Kundengruppen ge funden werden die f r Analyseziele im Rahmen des Projektes aus reichend sind Daher wird auf diese Analyse verzichtet 16 1 Clusteranalyse nach Kunden 16 1 1 Einleitung In diesem Abschnitt wird die Umsetzung des Vorschlages aus dem Konzept der Personalisierung siehe Kapitel 15 bez glich des Clu sterings auf Kundenattributen beschrieben Das Clustering ist dabei zu Testzwecken zun chst auf verschiedenen Relationen der Kartenan bieterdatenbank siehe Zwischenbericht iH03 durchgef hrt worden Abgesehen von dieser Ausnahme bleiben alle Analysen auf die Daten bank des H ndler 1 beschr nkt Da ein verteiltes Analysesystem vor liegt k nnen die Analysen problemlos auf diese Weise durchgef hrt werden Neben den verschiedenen Clusterings und deren Ergebnissen enth lt dieser Abschnitt weiterhin eine konkretisierte Beschreibung der endg ltigen Anwendung
168. d Produkten e content product jsp Darstellung der Produktdetailseite mit wei terf hrenden Informationen zu einem speziellen Produkt e content basket jsp Warenkorb zur Aufnahme von Produkten aus dem Online Shop e content user jsp Darstellung aller bekannten demographischen Daten eines angemeldeten Benutzers Weiterhin k nnen den einzelnen Unterseiten Parameter per URL ber geben werden die das Verhalten der Unterseiten bestimmen was in Abschnitt 20 2 2 erl utert wird 20 2 1 Benutzer Management F r das Benutzer Management wurde eine Java Klasse implemen tiert die die Attribute eines Kunden aus der Datenbank abbildet Ein Benutzer kann sich mit seinem Nutzernamen welcher der Kun denID aus der Datenbank entspricht und seinem Kennwort welches ebenfalls in der Datenbank gespeichert ist ber ein Anmeldeformular auf allen Seiten des Online Shops anmelden Stimmen die Angaben von Nutzernamen und Kennwort mit einem Datensatz eines Kunden aus der Datenbank berein so werden alle demographischen Daten des Nutzers in das User Objekt geladen Anschlie end wird das User Objekt in die Session gelegt so dass der Benutzer auch auf folgenden Seiten eindeutig zugeordnet werden kann selbst im Falle des Verlas sens des Online Shops und einem anschlie enden erneuten Besuch 20 2 2 Darstellung der Seiten Wie bereits oben erw hnt erfolgt die Navigation durch den Online Shop ber eine zentrale jsp Seite der Aen 218 20 2
169. d ausgewertet werden k nnen Ein ist somit eine physische Datenbank die eine integrierte Sicht auf aktuelle und historisierte Daten bietet Data Warehousing umfasst in einem dynamischem Prozess alle Schritte der Datenbeschaffung des Speicherns und der Analyse Es beinhaltet also die Datenintegration Datentransformation Da tenkonsolidierung Datenbereinigung und Speicherung der Daten sowie die Datenbereiststellung f r analytische Zwecke und Interpre tationen Data Warehouse Manager Der initiiert steuert und berwacht die einzelnen Prozesse in allen Phasen Datenanalyse Die befasst sich mit Data Mining Entdeckungs und Verifikationsverfahren die h ufig auf klassischen Verfahren auf bauen Datenbereinigung Die bezeichnet ein Verfahren fehlende Wer te sog noisy data und Inkonsistenzen aus einem Datenbestand zu entfernen Datenbeschaffungsbereich Der enth lt alle Komponenten die funktional zwischen den T Datenquellen und der f Basisdatenbank liegen 331 Glossar Datengl ttung Die bezeichnet ein Verfahren Ausrei er und sog T noisy data aus einem Datenbestand zu entfernen und die darin enthaltenen Daten einander anzugleichen Datenintegration Die bezeichnet das Zusammenf gen der Da ten mehrerer heterogener Datens tze von verschiedenen Quellen zu einem schl ssigen koh renten und homogenen Datensatz Datenkompression ist ein Verfahren zur Verkleinerung eines Datenbestand
170. d eines Random Access Interfaces zur Verf gung Per Option kann die Klasse dazu veranlasst werden die bereits geladenen Daten lokal in einem sogenannten Swap zwischenzuspeichern Gerade bei Datenquellen auf die per Netzwerk zugegriffen werden muss kann dies die Performanz verbessern Aber auch generell entf llt so sp ter das Verarbeiten der Metadaten bei wiederholten Zugriffen und es werden evtl notwendige Joins verhindert Zur Zwischenspeicherung der Daten wird die als Open Source frei verf gbare Berkeley DB Sof03 verwendet Die dritte Klasse ist die Klasse Instances selber Die API bleibt wie bereits erw hnt komplett erhalten Jedoch werden alle Funktionen zum Zugriff auf die Daten an die darunter liegende Klasse Instance Cache weitergeleitet Die Instances Klasse selber bernimmt damit nur noch Funktionen zur Verwaltung und Manipulation der Attribu te Der Algorithmus zum Auffinden kalendarischer Muster wurde in drei Klassen realisiert Der Algorithmus ist in der Klasse TemporalAs sociationRules implementiert die vom Framework instantiiert und ausgef hrt wird Dabei muss eine Menge von Instanzen welche die Positionen von Eink ufen darstellen sowie ein Beobachtungsinter 89 11 Entwurf vall mittels Start und Enddatum bergeben werden Des Weiteren muss ein Mindest Support angegeben werden der bestimmt wie hoch das prozentuale Aufkommen eines Artikels f r einen Tag ist um als h ufig zu gelten Dem Algorithmus kann
171. d gekauften Produkten und stellen somit spezifische Kundengruppen dar wie z B Kunden die haupts chlich S ssigkeiten kaufen Analyseverfahren Assoziationsanalyse Apriori Interpretation Die Ergebnisse dieses kombinierten Anaylseverfah rens entsprechen den Ergebnissen der Assoziationsanalyse siehe Ab schnitt 15 1 3 Allerdings werden Regeln nur bzgl der vorher zu grunde gelegten Kundengruppen gesucht 144 15 3 Weitere M glichkeiten des Clusteralgorithmus Beispiel e Kunden die aus der Region Ammerland kommen und die haupt s chlich Nahrungsmittel kaufen kaufen zu Nudeln mit einer Konfidenz von 63 7 auch eine Nudelsauce mit Hackfleisch Anwendung Die Umsetzung kann wie in Abschnitt 15 1 3 erfolgen und erm glicht einen h heren Grad an Personalisierung Die G ltig keit der gefundenen Regeln ist allerdings auf einzelne Cluster be schr nkt 15 3 Weitere M glichkeiten des Clusteralgorithmus Au er den im vorangehenden Text erl uterten Analysen gibt es weite re f r die Projektarbeit anwendbare Analyseverfahren Diese werden im Kontext der Projektgruppe nicht eingesetzt werden da die tem poralen Analysen im Vordergrund stehen 15 3 1 Clustering nach Produktpreis oder nach Produktkategorie in Verbindung mit dem Preis Die Ergebnisse dieser Analysen liefern Informationen ber die Preis niveaus verschiedener Produkte oder Produktkategorien die bei ei nem Clustering ohne Preis nicht ersichtlich w ren
172. daten werden ber die Bons erfasst Das Ge samtszenario der Projektgruppe beschr nkt sich auf nur einen Online und einen Offline H ndler ist jedoch beliebig erweiterbar Des Weiteren wird ein Kartenanbieter ber cksichtigt der Karten systeme anbietet und Analyseergebnisse bereitstellt Es besteht die M glichkeit weitere Kartenanbieter aufzunehmen Der Kartenanbieter integriert und speichert die Kunden Transak tions und Produktdaten der H ndler Diese Daten sind Basis f r die Analysen die innerhalb der Klassenbibliothek WEKA und de ren Erweiterungen ablaufen Die daraus resultierenden Analyseer gebnisse werden von den H ndlern gekauft und an diese bertra gen Die Online H ndler nutzen die Ergebnisse f r ihren Online Shop w hrend die Ofline H ndler daraus personalisierte Angebote in ih rem Filialsystem erstellen Zus tzlich k nnen die H ndler eigene Ana lysen mit WEKA und deren Erweiterung auf ihren Datenbanken durchf hren 2 1 Systemeinsatz und Systemumgebung F r den Datenbankentwurf der H ndler und Kartenanbieterdaten banken der als Grundlage f r die weitere Projektarbeit dient wird das Windows Programm ERwin verwendet Als Datenbank wird Ora cle Version 9i zugrunde gelegt Diese Datenbank l uft auf den von der Projektgruppe genutzten Rechnern unter Solaris Als Program miersprache wird Java in der Version 1 4 benutzt Das Programm Eclipse wird als Arbeitsumgebung f r die Programmierung verwen det
173. dbcLogin cardprovider source jdbcPassword sk kokokokokokokakokokokokokokokokok Lange Zeilen k nnen mit weitergef hrt werden Wichtig das Leerzeichen am Ende Leerzeichen am Anfang werden ignoriert source jdbcSQL select haendlerid name from haendler attributeName_0 haendlerid attributeType_0 numeric attributeName 1 name attributeType 1 nominal algorithm diko framework algorithms SimpleKMeansController clusterer FilterColumns 1 sink diko framework output ArffWriter Abbildung 14 4 Beispielkonfigurationsdatei properties txt source jdbcLogin und das Passwort Schl ssel jdbePassword f r die Verbindung ben tigt Mit diesen Informationen ist das Framework in der Lage eine JDBC Verbindung aufzubauen um aus einer Daten bank die Quelldaten zu lesen Damit die Quelldaten genau spezifiziert sind wird ein SQL Statement angegeben welches die entsprechenden Attribute aus den Tabellen der Quelldatenbank liest Hierzu dient der Schl ssel source jdbeSQL Damit das Framework die ausgelesenen Attribute korrekt in WEKA importieren kann werden Informationen ber die Beschaffenheit der gelesenen Attribute ben tigt Diese werden beispielhaft f r die bei den ausgelesenen Attribute spezifiziert Hier ist das erste Attribut die H ndlerID die ein numerisches Datum darstellt und ber den Schl ssel attributeName_X angegeben wird wobei das Zeichen X 127 14 Technisches Handbuch Framework java diko framewo
174. der Forward Iterator API hinzugekommen siehe Abschnitt 12 1 12 2 2 InstanceCache Der Cache kann entweder mit einer Datenquelle initialisiert oder auch komplett zur Laufzeit generiert werden Wird eine Datenquelle be nutzt l dt der Cache anfangs erstmal so viele Daten aus der Quelle wie in den Hauptspeicher Cache passen Die Gr e des Cache kann per Parameter konfiguriert werden Alle Zugriffe auf Elemente inner halb des Cache werden direkt beantwortet Der Zugriff kann entweder Mit Hauptspeicher Cache oder einfach nur Cache ist immer die Datenstruktur im Hauptspeicher gemeint Hingegen wird die Berkeley DB die die Daten auf Platte zwischenspeichert als Swap bezeichnet 97 12 Technisches Handbuch Cache per Index oder durch Aufruf der Methode next geschehen Wird ein Element angefordert das nicht im Cache liegt gibt es zwei F lle zu beachten Entweder m ssen Daten aus der Datenguelle nachgeladen werden oder die Daten wurden bereits aus der Datenguelle gelesen und liegen jetzt im Swap Das Nachladen der Daten geschieht der Einfachheit halber immer nach dem gleichen Schema Es werden immer nur komplette Bl cke gelesen die genau so gro wie der Cache selber sind Ein solcher Block wird als Seite bezeichnet und enth lt jeweils die konfigurierte Anzahl von Instanzen Aus der Quelle kann aufgrund des Sourcelterator Interfaces nur vorw rts gelesen werden Daher werden in dem Fall dass per Index auf ein Element zuge
175. die ser existiert Wirft eine NoSuchElementException falls keine Datens tze mehr geliefert werden k nnen 90 11 2 Klassenbeschreibung e void reset Initialisiert den Iterator neu so dass der n chste Datensatz wieder der erste Datensatz der Datenquelle ist 11 2 3 JDBCSourcelterator Clusteringinstance und Calendarlnstance Diese Klassen implementieren das Interface Sourcelterator JDBC Sourcelterator ist dabei eine abstrakte Basisklasse f r den Zugriff auf SQL basierte Datenbanken und implementiert alle datenunabh ngi gen Funktionen Die verbleibenden zwei Klassen liefern spezialisierte Daten zur ck die f r jeweils einen Algorithmus angepasst sind 11 2 4 InstanceCache e InstanceCache Sourcelterator Source boolean swap_enabled int size String database Konstruktor der Klasse Die Parameter haben folgende Bedeutung Source Referenz auf den Sourcelterator der den Zugriff auf die Datenquelle bereit stellt swap_enabled Hierdurch kann das lokale Zwischenspeichern der Daten aktiviert oder deaktiviert werden size Gr e des Caches in Anzahl an Datens tzen database Name der Berkeley DB die als lokaler Swap fun giert Dieser Parameter ist optional e void close Signalisiert dem Cache dass die Swap DB geschlos sen werden kann e Instance getElementAt int Liefert das Element an der angege benen Position zur ck e boolean hasNert Liefert true wenn noch ein weiteres Element zur ckgel
176. die f r lesende Zu griffe genutzt wird 3 DBConnection source2DB Stellt eine weitere Verbindung zur Datenbank dar die f r le sende Zugriffe genutzt wird 4 ResultSet rs Enth lt das Ergebnis einer aktuellen Datenbankabfrage 5 ResultSet rs2 Enth lt das Ergebnis einer aktuellen Datenbankabfrage Beziehungen Wird von der Klasse mportHaendler1 aufgerufen und erzeugt In stanzen vom Typ DBConnection Methoden Dienste 1 CleanDoubles String targetDBHost String targetDBDriver String targetDBUserName String targetDBPasswd Konstruktor der Klasse erzeugt ein Objekt vom Typ Clean Doubles 58 5 3 Klassenbeschreibung 2 void cleanDoubleData Diese Methode f hrt die L schvorg nge durch Klasse ImportlnitData Name ImportlnitData Kurzbeschreibung Die Klasse f gt die Datens tze in die Zieldatenbank ein die f r den weiteren Import ben tigt werden aber nicht aus den Daten der Quelldatenbank erzeugt werden k nnen Mit dieser Klasse werden die Tabellen Haendler Kartensystem Kundenattribut LOV_Kunden_Fa milienstand Produktattribut und Shop im Kartenanbieterdatenbank schema mit Daten gef llt Das Vorhandensein dieser Daten ist not wendig damit neue Datens tze eingef gt werden k nnen Oberklassen keine Unterklassen keine Attribute 1 DBConnection target DB Stellt eine Verbindung zur Zieldatenbank dar Beziehungen Wird vom Loader instantiiert wenn der Parameter init angegeben wurde
177. die folgende Annahme best tigt werden Je l nger der Analysezeitraum desto weniger Starpattern wurden ge funden Die Erkl rung liegt auf der Hand Bei einem Zeitraum von einem Jahr muss ein Muster 25 Mai genau einmal vorkommen um es in einem Starpattern 05 25 darzustellen zu k nnen Je mehr Jahre der Zeitraum umfasst desto h ufiger muss das Pattern gefun den werden um es als Starpattern darzustellen 207 18 Anwendung temporaler Analysen 1 1 25 Ki Ki Ki Ki Ki Ki Ki 25 Ki Ki Ki Ki 25 m LS5SovosourumH m N 3 4 4 4 4 4 4 4 4 4 6 6 6 A CO Tabelle 18 1 Kalendarische Muster Dar ber hinaus wird das Analyseergebnis durch den Mindest Support beeinflusst Je h her der gew nschte Support desto weniger Muster werden gefunden 18 2 Temporales Clustering von Warenkorbdaten Das Ziel stundengenaue Cluster zu finden kann nicht umgesetzt wer den da die temporalen Attribute nur taggenau gespeichert sind Es erfolgt deshalb w hrend der Umsetzung die Einschr nkung auf Clu ster deren k rzester Zeitraum genau einen Tag betr gt Bei der Se lektion der Daten aus der Datenbank werden die temporalen Wer te so transformiert dass sie die Anzahl der Tage seit Jahresbeginn angeben F r das Clustering k nnen so vor allem saisonale Zusam menh nge aufgedeckt werden 18 2 1 Ergebnisse Logs des temporalen Clusterings Die Parameter sind ausf hrlich in Abschnitt 16 3 2 do
178. die funktionalen Abh ngigkeiten Klassifikationsknoten Ein ist die Verdichtungsstufe innerhalb einer Klassifikationshierarchie Klassifikationsschema Das einer Dimension ist eine halbgeord nete Menge von Klassifikationsstufen mit einem kleinsten Element K means ist ein partitionierendes globales Verfahren das allen Elementen eine exakte Zuordnung zu Gruppen gibt Dabei werden Clusterzentren zur Clusterbildung verwendet Kontingenztabelle Eine oder Kreuztabelle ist das Ergebnis aus der Zusammenf hrung mehrerer Tabellen zu einer einzelnen Tabelle um Vergleiche zwischen den Daten aus beiden Quellen anstellen zu k nnen Es ist eine Aufstellung statistischer Ausz hlungen meist no minal oder ordinal skalierter Variablen Kontinuierliche Daten nehmen Werte aus einem kontinuierli chen Wertebereich an Ein f r einen solchen sind die reellen Zahlen In diesem Sinne kann man kontinuierlich mit l ckenlos beschreiben Konzepthierarchie Die ist eine Hierachie abstrakter Konzep te die im Data Mining benutzt wird um viele einzelne Elemente f r die sich evtl nur schlecht Regeln finden lassen zu allgemeinere Elemente zu abstrahieren Diese allgemeineren Elemente nennt man Konzepte K nstliches Neuronales Netz Ein ist ein Netz in dem viele gleichartige Units Neuronen miteinander verschaltet werden Ein zelne Neuronen erf llen einfache mathematische Funktionen deren Ausgang wiederum anderen Neuronen als Eingangsdat
179. die vom Algorithmus produzierten Ergebnisse im ARFF Format auf die Standardausgabe ausgegeben Um dem konfigurierbaren Framework mitzuteilen welche Aufgaben durchzuf hren sind sind diese in Form einer Property Datei wie in Abschnitt 14 4 beschrieben in Schl sseln und Werten zu formulieren Eine beispielhafte Property Datei ist in Abbildung 14 4 dargestellt Zun chst wird der Iterator spezifiziert der f r das Einlesen der Da ten ben tigt wird Da im Beispiel aus einer JDBC Datenquelle gele sen wird ist es in diesem Fall ein ConfigurableJDBCSourcelterator Hierf r dient der Schl ssel source Danach erfolgt die Benennung der Relation mit der Zeichenkette H ndler ber den Schl ssel relation Diese Zeichenkette wird sp ter von WEKA intern f r die Benennung der Instances Klasse genutzt Anschlie end wird der Name des zu ladenden Java JDBC Treibers f r Oracle angegeben Dieser wird f r den Aufbau einer Verbindung zu Oracle aus Java heraus ben tigt Hierf r ist der Schl ssel mit der Be zeichnung source jdbc Driver zust ndig Ebenso werden der Connection String Schl ssel source jdbeConnection der Benutzername Schl ssel 126 14 5 Anwendungsbeispiele ein Kommentar beginnt mit source diko framework input ConfigurableJDBC Sourcelterator relation H ndler source jdbcDriver oracle jdbc driver OracleDriver source jdbcConnection j bc oracle thin ON power2 offis uni oldenburg de 1521 power2 source j
180. doc dokumentiert S mtliche anderen notwendigen Dokumentationen werden in KIEX erstellt Es werden die Editoren WinEdt Xemacs vim und Nedit verwendet Die Dokumentation in Javadoc erfolgt in englischer Spra che 2 6 Abnahmekriterien Die genannten funktionalen Anforderungen sind zu erf llen w hrend die nichtfunktionale Anforderungen m glichst optimal realisiert wer den sollen Die aus der Analyse entstandenen Cluster werden in einem Online Shop evtl zur Realisierung eines Recommender Systems her angezogen Recommender Systeme sind Empfehlungssysteme Sie schlie en automatisch von vorhandenen Informationen auch auf neue Daten 23 2 Anforderungsdefinition Gesamtszenario 24 Teil Il Integration 25 3 Implementierung des Integrationsszenarios In diesem Abschnitt wird das Vorgehen der Integrationsgruppe an hand des Wasserfallmodelles beschrieben AnschlieBend werden die einzelnen Phasen genauer betrachtet 3 1 Vorgehensweise in Anlehnung an das Wasserfallmodell Die Vorgehensweise der Teilgruppe Integration l sst sich in mehrere voneinander getrennte Aktivit ten gliedern Jede Aktivit t beginnt und endet mit einem klar definierten Ereignis Die Aktivit ten stim men dabei weitestgehend mit den Phasen des Wasserfallmodelles ei nem Vorgehensmodell zur Softwareentwicklung berein Nach Vorgehensweise des Wasserfallmodelles wird die Durchf hrung der einzelnen Phasen als strikt seguentiell angesehen
181. dungen verfolgt wird Ordinale Daten bezeichnet Daten deren Wertebereich aus W r tern oder Kategorien besteht die untereinander eine feste Ordnung haben P3P Platform for Privacy Preferences ist ein Projekt des T W3C mit dem Ziel dass User problemlos beurteilen k nnen welche Daten auf einer T Website gesammelt werden Ebenso sollen T Web site Betreiber die M glichkeit erhalten ihre User aufzukl ren damit diese wiederrum Vertrauen aufbauen und frei entscheiden k nnen ob sie mit der Sammlung der Daten einverstanden sind Pfad Pfad bezeichnet eine vollgeordnete Teilmenge von Klassifi kationsstufen eines Klassifikationsschemas Port Ein ist ein Kommunikationskanal im Internet Verschie dene Services benutzen auch unterschiedliche Ports um Ihre Kom munikation abzuwickeln Postprocessing ist der vierte Teilprozess des allgemeinen KDD Modelles Die Ergebnisse des Data Mining werden hier verarbeitet und bewertet und die gew hlten Methoden als auch der gesamte bis herige Prozess werden kritisch betrachtet Preisangabenverordnung PAngV Wer Endverbrauchern Wa ren oder Leistungen anbietet oder als Anbieter von Waren oder Lei stungen gegen ber Letztverbrauchern unter Angabe von Preisen wirbt hat die Preise anzugeben die einschlie lich der Umsatzsteuer und sonstiger Preisbestandteile unabh ngig von einer Rabattgew hrung zu zahlen sind Endpreise Auf die Bereitschaft ber den angegebe nen Pre
182. e die das Transaktionszei tende repr sentiert source gza Bestimmt die Spalte die den G ltigkeitszeitanfang re pr sentiert source gze Bestimmt die Spalte die das G ltigkeitszeitende re pr sentiert Falls einer der obigen optionalen Parameter gesetzt ist erzeugt der ConfigurableJDBCSourcelterator an Stelle der standardm ig erzeug ten Instance eine Temporallnstance beim Aufruf von nert 14 4 3 Datensenken Nachfolgend sind die Parameter f r die im Framework enthaltenen Datensenken aufgef hrt ArffWriter Der ArffWriter der zum Erzeugen von ARFF Dateien verwendet wird hat keine notwendigen Parameter Der einzige optionale Pa rameter ist arffWriter File Ist dieser Parameter gesetzt bestimmt er den Da teinamen in dem die ARFF Datei gespeichert wird Wird die ser Parameter nicht gesetzt gibt der ArffWriter die erzeugten Daten auf der Standardausgabe aus 121 14 Technisches Handbuch Framework JDBCWriter Der JDBC Writer ben tigt die folgenden Parameter sink jdbc Driver Connection Login Password analog zu den je weiligen source Parametern des ConfigurableJDBCSource Iterator Seite 120f sink jdbcTable Der Name der Tabelle in die die Ergebnisse ge speichert werden sollen Weiterhin gibt es den folgenden optionalen Parameter sink jdbcIgnoreAttributeNames Ist dieser Parameter mit einem beliebigen Wert belegt entscheidet der JDBCWriter nicht anhand der Namen der Attribute wel
183. e Hobbys des Datenbankschemas von H ndler 2 stammen String kundeAbschluss Hilfsvariable zur Zwischenspeicherung von ausgelesenen Wer ten In der Variable werden die Beschreibungen gespeichert die 20 21 22 5 3 Klassenbeschreibung aus der Tabelle Abschluss des Datenbankschemas von H ndler 2 stammen String saveProduktTZA Hilfsvariable zur Zwischenspeicherung von ausgelesenen Wer ten in diesem Fall den bestimmten ProduktIDs zugeordneten tza Werten String saveShopID Hilfsvariable zur Zwischenspeicherung von ausgelesenen Wer ten in diesem Fall den IDs der Filialen des H ndlers String saveShopTZA Hilfsvariable zur Zwischenspeicherung von ausgelesenen Wer ten in diesem Fall den einzelnen Shops zugeordneten tza Werten Beziehungen Die Klasse ImportHaendler2 wird von der Klasse Loader aufgerufen um die Daten zu importieren Sie verwendet die Klasse DBConnecti on um eine Datenbankverbindung aufzubauen Methoden Dienste 1 Import Haendler2 String sourceDBHost String sourceDBDriver String sourceDBUserName String sourceDBUserPasswd String targetDBHost String targetDBDriver String targetDBUserNa me String targetDBUserPasswd Konstruktor der ein Objekt vom Typ ImportHaendler2 instan tiiert ImportHaendler2 String sourceDBUserName String sourceD BUserPasswd String targetDBUserName String targetDBU serPasswd Alternativer Konstruktor der ein Objekt vom Typ ImportHaend ler2 instantiie
184. e Personalisierung schnitt 15 1 3 Allerdings werden Regeln nur auf den vorher zugrun de gelegten Kundengruppen gesucht Durch die Kombination mit der Assoziationsanalyse ist diese Analyse gezielter und es k nnen spezi ellere Regeln als bei der einfachen Assoziationsanalyse gefunden wer den Allerdings ist die G ltigkeit der gefundenen Regeln auf diese einzelnen Cluster beschr nkt Beispiel e 50 aller Kunden aus der Region Ostfriesland die Ostfriesentee der Marke B nting kaufen kaufen auch Kluntjes Anwendung Sobald ein Kunde im Shop einer Kundengruppe zu geordnet werden konnte und ein bestimmtes Produkt kauft k nnte ihm das dazugeh rige Produkt angepriesen werden 15 2 2 Clustering nach Kunden und gekauften Produkten in Verbindung mit einer Assoziationsanalyse Durch das Clustering nach Kunden und gekauften Produkten werden die Kunden aufgrund ihrer get tigten Eink ufe in Gruppen einge teilt vgl Abschnitt 15 1 2 Im Anschluss k nnte die unter Abschnitt 15 1 3 beschriebene Assoziationsanalyse durchgef hrt werden siehe Abbildung 15 2 Hierbei werden die Ausgangsdaten durch das vor herige Clustering reduziert und verfeinert Zudem w re es m glich f r die Personalisierung sinnvollere Daten zu finden im Vergleich zu dem Clustering nach Kunden i V m der Assoziationsanalyse da nun ebenfalls gekaufte Produkte ber cksichtigt w rden Ausgangsdaten Die Ausgangsdaten sind Ergebnisse des Clustering nach Kunden un
185. e Schritte bei nderung der Datenbasis Sollte die Datenbasis der Analyse ge ndert oder erweitert werden so sind einige Anpassungen des Verfahrens vorzunehmen Die mate rialisierte Sicht gana ist durch den Befehl immer aktuell und mu daher nicht behandelt werden ndert sich die Anzahl der Waren gruppen so muss dieses in der Klasse diko personalisierung personali sierung ClusteringKngP angepasst werden indem wie f r die bishe rigen sieben Gruppen ein Attribut angelegt und dieser bei der Be rechnungen Gesamtposten und Anteil mit ber cksichtigt wird Die Tabelle ClusteringKngP in der Kartenanbieterdatenbank ist ebenfalls anzupassen L schen bzw Hinzuf gen von Attributen 16 2 3 Analyse und Auswertung Die Analysen basieren auf der neu erzeugten Tabelle ClusteringKngP in der Kartenanbieterdatenbank Die Anweisung zum Auslesen der notwendigen Daten lautet SELECT FROM CLUSTERINGKNGP Die Analysen wurden mit der GUI von WEKA durchgef hrt wo bei unterschiedliche Algorithmen angeboten werden SimpleKMeans cobbweb und EM Der Algorithmus Cobweb erwies sich dabei als 186 16 2 Clusteranalyse nach Kunden und gekauften Produkten nicht geeignet f r diese Analyse da f r eine weitere Verarbeitung nicht nur die Cluster sondern auch deren Centroide von Interesse sind diese aber nicht mit angegeben werden Der zweite Algorithmus EM liefert zwar die Information der Mittelpunkte doch die Unterschiede der Centroide der Cluster
186. e aus dem User Objekt aus der Session geladen Ist kein Nutzer bei Aufruf dieser Seite angemeldet so erfolgt die Ausgabe eines Hinweises dass ein Nutzer sich anmelden soll 227 Menschen Ihren Alters und aus Ihrer geographischen Umgebung haben folgende Produkte gekauft 1 Produkt 9739 2 Produkt 7331 3 Produkt 317 4 Produkt 892 5 Produkt 3868 Menschen Ihren Alters und Geschlechts haben auch diese Produkte gekauft 1 Produkt 9739 2 Produkt 7331 3 Produkt 9318 4 Produkt 1427 5 Produkt 317 Abbildung 20 10 Darstellung von footer jsp footer jsp Diese Datei beinhaltet die personalisierten Angebote die einem an gemeldeten Nutzer spezifisch dargeboten werden Ist kein Nutzer an gemeldet so wird durch diese Datei kein Inhalt ausgegeben 228 20 3 Anwendungsfall IE DIKO WEBSHOP Assoziationsregeln gem ss des folgenden Datums suchen Jahr Monat Tag 2003 f E Ka Abbildung 20 11 Darstellung von footer2 jsp footer2 jsp Diese Datei beinhaltet die zum Tag des Seitenaufrufes passenden Angebote und ein Formular um die aktuellen Tag manipulieren zu k nnen Siehe dazu auch Abschnitt 20 4 2 final jsp Diese Datei stellt wie schon die Datei logic jsp eine Kapselung von Funktionalit t dar und beinhaltet keinen Code zur Darstellung von Objekten auf der Website Sie wird als letztes in die Datei index jsp eingebunden Im Falle des Abmeldens eines Nutzers wird
187. e unterbreiten Der Kunde soll hierbei personalisierte Angebote erhal ten e F r einen H ndler soll exemplarisch ein Shopsystem kon zipiert und realisiert werden Entwicklungsumgebung e Hardware SUN Workstations DEC Workstations 12 1 4 Projektgruppenantrag PCs unter Windows 2000 XP und Linux e Software Mozilla Navigator Internet Explorer Java 1 4 SDK Eclipse IDE CVS Versionskontrolle Perl zur Realisierung von CGI Skripten soweit notwen dig TATEX f r die Dokumentation JUnit Berkeley DB Minimalergebnisse Scheinkriterien e Minimalergebnisse m ssen erreicht werden siehe Abschnitt 1 3 e Aktive Mitarbeit bei der Analyse Konzeption und Implemen tierung e Erf llung bertragener Aufgaben e Pr sentation und Ausarbeitung von Seminarvortr gen e Erstellung von Zwischen und Endbericht sowie anfallenden Do kumentationen Meilensteinplanung Die Meilensteinplanung des Projektes ist dem Kapitel 21 9 zu ent nehmen 1 4 3 Literatur e http www is informatik uni oldenburg de lehre lehre html e http www diko project de 13 1 Rahmenbedingungen 1 5 Teilnehmer Die Projektgruppe setzt sich aus folgenden zw lf Studierenden zu sammen e Tim Br ggemann e Tina Goldau e Christian L pkes e Michael Onken e Matthias Pretzer e Christian Reitenberger e Carsten Saathoff e Helge Saathoff e Ralph Stuber e Insa St hrenberg e O
188. e von WEKA haben weiterhin ge zeigt dass der SimpleKMeans ber eine bersichtliche Anzahl an zu variierenden Parametern und ber eine gut strukturierte Ergebnisausgabe verf gt Deswegen ist dieser Algorithmus bei den folgenden Analysen den anderen beiden Algorithmen vor gezogen worden SimpleKMeans bietet dem Anwender die M glichkeit die An zahl der zu findenden Cluster zu bestimmen Eine weitere Stell schraube liegt in der Zahl Seed welche die zur Initialisierung des Zufallszahlengenerators verwendete Zahl darstellt e Visualisierung Hinsichtlich der Visualisierbarkeit der Analy seergebnisse bietet WEKA die M glichkeit Ergebnisse visuell darzustellen Diese M glichkeit liefert jedoch f r die Analyse nicht zu verwendende Ergebnisse Testl ufe Um die Eigenschaften der Clusteralgorithmen von WEKA n her ken nenzulernen ist auf der Kartenanbieterdatenbank eine Entit t Vor name_Test angelegt worden die nur das Attribut Vorname enth lt Die Instanz des Attributes Vorname setzt sich aus den Vornamen Christian Julia und Tim zusammen die jeweils vier mal vorkom men Auf dieser Entit t sind nun die ersten Testl ufe durchgef hrt worden deren Ergebnisse im Folgenden dargestellt werden 1 Testlauf Das Ziel des ersten Testlaufes ist es gewesen drei Clu ster zu finden die jeweils vier Vornamen Christian Julia oder Tim enthalten da dieses intuitiv sinnvoll erscheint Die Einstellungen sind Tabelle 16 1 zu entnehmen wo
189. ebnisse geben die existierenden Kundengruppen entsprechend der gew nschten Interpretierbarkeit gut wieder Der Clusteralgorith mus hat dabei jeweils vier Kundengruppen aus dem Einzugsgebiet der beiden Postleitzahlenschwerpunkte 23123 und 66666 identifiziert Die dabei gefundenen Centroide bez glich der Geburtsjahre der je weiligen Kunden geben die Verteilung der Daten aus den synthetisch angelegten Testdaten ebenfalls entsprechend wieder Folgende Kun dengruppen sind also bei dem finalen Clustering identifiziert worden wobei sie exakt den Kundengruppen entsprechen die bez glich der leichten Interpretierbarkeit angestrebt worden sind 174 16 1 Clusteranalyse nach Kunden Seed 5 100 keine sinnvollen Ergebnisse 59999 10 teine sinnvollen Ergebnisse m 50 10 keine sinnvollen Ergebnisse TJ keine sinnvollen Ergobnise 10 13 0 100 I 1 2 5 10 0 0 2 00 00 Se 5 10 0 1 2 0 00 00 I 1 10 1 10 1 1 2 1 2 5 1 keine sinnvollen Ergebnisse keine sinnvollen Ergebnisse keine sinnvollen Ergebnisse Tabelle 16 25 Clustering nach Geburtsdatum und PLZ isse i er sinnvolle Ergebnisse ein Ausrei er keine sinnvollen Ergebnisse isse i er isse i er Eege sooo Eege Een ii SE ey Ei Bez ee o Ee SE a ET a o o sooo ES ES ES in E 11 175 16 Anwendung Nicht temporale Analysen SQL Query select KundenID Geburtsdatum PLZ from T
190. echt Finale Clusterings Nach den vielf ltigen Clusterings mit verschie denen Parametereinstellungen unter WEKA ist letztendlich ein Clu stering mit den Einstellungen aus Tabelle 16 19 durchgef hrt worden Ergebnis des finalen Clusterings Die in Tabelle 16 20 dargestell ten Ergebnisse liefern Cluster die eine Interpretation entsprechend der Aufz hlung aus Abschnitt 16 1 5 erm glichen Das Clustering hat dabei diese Kundengruppen mit folgender H ufigkeitsverteilung ge funden 168 16 1 Clusteranalyse nach Kunden 2 Keine sinnvollen Engebnisse 1 SC keine sinnvollen Ergebnisse 10 keine sinnvollen Ergebnisse 5 keine sinnvollen Ergebnisse m oO keine sinnvollen Ergebnisse 2 2 2 keine sinnvollen Ergebnisse sinnvolle Ergebnisse keine sinnvollen Ergebnisse 25 keine sinnvollen Ergebnisse 5 1 keine sinnvollen Ergebnisse keine sinnvollen Ergebnisse 0 0 0 0 0 0 1 5 0 0 5 0 keine sinnvollen Ergebnisse 0 0 3 34 1 2 3 5 0 1 m 2 0 2 5 5 0 m keine sinnvollen Ergebnisse keine sinnvollen Ergebnisse keine sinnvollen Ergebnisse m Tabelle 16 18 Clustering nach Geburtsdatum und Geschlecht 12 m m 1 2 1 m 00 1 1 N X w 2 EH sinnvolle Ergebnisse ein AusreiBer 169 16 Anwendung Nicht temporale Analysen SQL Query select KundenID Geburtsdatum Geschelcht from TestKunden Clusteralgorit
191. ed Tem poral Association Rules es handelt sich demnach um kalenderba sierte temporale Assoziationsregeln Muster die in Anlehnung an ein kalendarisches Schema z B einen Jahres Monats oder Wochenka lender gesucht werden nennt man kalendarische Muster Ein kalenda risches Muster wird mit temporalen Assoziationsregeln beschrieben Der temporale Aspekt einer solchen Regel k nnte zum Beispiel je den Dienstag jeden ersten Mai oder hnlich lauten Um eine Regel aufstellen zu k nnen wird ein relationales Kalender schema angelegt dass z B aus Jahr Monat und Tag besteht Ein Mu ster ist dann ein Tupel in R mit der Form Jahr Monat Tag Wird das kalendarische Schema anders gestaltet ergeben sich entsprechend andere Muster So kann ein Schema auch aus z B Wochentag Stunde und Minute bestehen Dar ber hinaus gibt es die M glichkeit Wildcards zu verwenden Wildcards sind Platzhalter die f r jeden beliebigen aber zul ssigen Wert stehen Ein Wildcard wird mit einem Stern x gekennzeichnet Das Tupel x 1 10 steht dann f r den 10 Tag im Januar in jedem Jahr Eine temporale Assoziationsregel hat die Form r e mit r als Assoziationsregel und e als kalendarischem Muster 17 1 3 Interpretation Die Ergebnisse des in LNWJO1 beschriebenen Algorithmus werden wie folgt dargestellt Produkt ID 1322 Produkt ID 2311 x 11 Das bedeutet dass die Produkte 1322 und 2311 jeden Tag in je dem Jahr
192. ehen Bei weiteren Clu sterings mit variierten Parametereinstellungen unter WEKA sind in der Folgezeit keine besseren Ergebnisse erzielt worden Innerhalb der Projektgruppe beschr nkt sich das Finden von Kundengruppen mit tels Clusterings daher ausschlieBlich auf die weiter oben erl uterten Clusterings bei denen jeweils lediglich drei Attribute zur Identifika tion von Kundengruppen zur Anwendung gekommen sind 16 1 6 Clusterings auf der H ndler 1 Datenbank In diesem Schritt sind die synthetisch erstellten Testdaten die sich bisher noch auf der Kartenanbieterdatenbank befunden haben in die Datenbank von H ndler 1 siehe Zwischenbericht iH03 integriert worden Es mussten dabei die bisher erstellten 1005 Kundendaten von H ndler 1 beibehalten werden da innerhalb der Datenbank Be ziehungen zu anderen Relationen wie zum Beispiel den gekauften Produkten in den Warenk rben bestehen Die 183 synthetisch er stellten Kundendaten sind daher komplett verf nffacht worden Um jedoch die 1005 Kundendaten aus der H ndler 1 Datenbank zu ver vollst ndigen mussten die ersten neunzig 1005 5 183 synthetisch erstellten Testdaten nicht verf nffacht sondern versechsfacht wer den Auf diesen 1005 Kundendaten aus der H ndler 1 Datenbank ist nun wiederum der SimpleKMeans Algorithmus mit den weiter oben erprobten Parametereinstellungen angewendet worden Clustering nach Geschlecht und Geburtsjahr Aufgrund der nicht gleichm ig durchgef h
193. ei Top5 Listen f r einen angemel deten Kunden ber cksichtigt jedoch unabh ngig von der aktuellen Position in der Katalogstruktur Auf den Produktdetailseiten wer den dem Kunden zutreffende temporale Assoziationsregeln zu dem gew hlten Produkt in Abh ngigkeit von dem Datum angezeigt Es ist aber ebenso m glich sich auf der Startseite Regeln zu einem be stimmten Datum anzeigen zu lassen ohne eine Anmeldung oder die Wahl eines bestimmten Produktes 21 5 Nichtfunktionale Anforderungen Die geforderten nicht funktionalen Anforderungen Portabilit t Sta bilit t Skalierbarkeit Benutzerfreundlichkeit Wartbarkeit und Sicht barkeit sind in den verschiedenen Bereichen weitestgehend ber ck sichtigt worden Die Portabilit t ist durch den durchg ngigen Gebrauch von Java als Programmiersprache gesichert Auch im Online Shop wird Java in 235 21 Soll Ist Vergleich vom Gesamtprojekt Form von Java Server Pages verwendet Durch die Behandlung m gli cher Ausnahmen in Java Exception Handling wird gew hrleistet dass das System in einem stabilen Zustand verbleibt Alle in den Testl ufen aufgetretenen Fehler sind durch dieses Verfahren beseitigt worden Das vorliegende System ist unabh ngig von der Datenmenge funktionsf hig jedoch k nnen manche Analysen bzw die Integrati on eine l ngere Zeitdauer in Anspruch nehmen Die Bedienung des Systems ist m glichst einfach gehalten insbesondere die Steuerung des Frameworks ber Metadaten
194. ei lediglich die Kunden aus Cluster 3 nicht entsprechend der angestrebten Kundengruppen zugeordnet worden sind Anstatt der erwachsenen Kunden um 40 aus dem Post leitzahlenbereich um 23123 h tten hier Twens aus dem Postleitzah lenbereich 66666 identifiziert werden m ssen Weitere Clusterings In der n chsten Phase des Clusterings ist wie derum mit einer weiten Streuung des Seed Parameters 1000 bis 10000 gearbeitet worden wobei die Clusteranzahl in fast allen F llen bei 8 9 oder 10 gelegen hat Bei den zahlreichen Clusterings ist jedoch generell das Problem aufgetreten dass die identifizierten Kunden gruppen bez glich ihrer Geburtsjahre nicht exakt den Kundengrup pen entsprechen die bez glich der Interpretation angestrebt worden sind Zudem sind h ufig weiblich oder m nnliche Kundengruppen aus einem Geburtsjahresschwerpunkt nicht einem eigenen Cluster zuge ordnet worden Die Tabelle 16 25 enth lt dabei alle weiteren durch gef hrten Clusterings Die Bezeichnung von sinnvollen bzw nicht sinnvollen Ergebnissen entspricht dabei genauso wie die Behandlung 173 16 Anwendung Nicht temporale Analysen von Ausrei ern den Ausf hrungen in Abschnitt 16 1 5 finales Clustering Nach den vielf ltigen Clusterings mit verschiede nen Parametereinstellungen unter WEKA ist letztendlich ein Cluste ring mit den Einstellungen aus Tabelle 16 26 durchgef hrt worden Ergebnis des finalen Clustering Die in Tabelle 16 27 dargestell ten Erg
195. eich die Aufgaben der Personalisierung sowie deren Erf llung dar z hlt dann die entspre chenden Meilensteine auf und schlieBt mit einem Fazit 19 1 Soll Ist Vergleich Im Rahmen des Soll Ist Vergleiches wird dargestellt welche in den Kapiteln 15 und 17 aufgef hrten Analysen umgesetzt worden sind Des Weiteren enth lt der Soll Ist Vergleich eine bersicht welche der Analysen anwendbare Ergebnisse f r die Personalisierung des Online Shops liefern 19 2 Meilensteine E Personalisierungskonzept 09 06 2003 20 07 2003 u um 2 enee Zeit 21 07 2003 27 07 2003 8 Personalislerungskonzept Il 28 07 2003 31 08 2003 Abbildung 19 1 Meilensteine Personalisierung Der Meilenstein Personalisierungskonzept dauert von 09 06 03 bis 31 08 03 In der Abbildung 19 1 erfolgt die Darstellung in drei ge trennten Abschnitten da der eigentliche Meilenstein durch die pro jektfreie Zeit 21 07 27 07 03 unterbrochen wird Insgesamt stehen der Aufgabe Personalisierungskonzept 11 Wochen zur Verf gung Ur spr nglich wurden nur sechs Wochen eingeplant da die weitreichen 211 19 Ergebnisse und Schlussbetrachtung der Personalisierung Clusteranalyse nach Kunden zwei Top5 Tabellen Clusteranalyse nach Kunden und gekauften Produkten nicht m glich Assoziationsanalyse kombinierte Analysen weitere M glichkeiten des Clusteralgorithmusses kalendarische Muster temporale Sequenticlle Muste nem o Tabelle 19 1 Soll I
196. eiden Produkte an einem solchen Tag in den Warenkorb legt gefragt wird ob er ebenfalls das zweite Produkt erwerben m chte Das Ergebnis der Analyse sind demnach temporale Komplement rg ter die es auch erm glichen Produkt bundles darzustellen Amazon Ama03 wendet eine hnliche Perso nalisierung bereits mit nicht temporalen Produktbundles an Im Rahmen des Projekts kann dieser Ansatz so erweitert werden dass zu jedem Produkt ein Komplement rgut im Bundle angeboten wird Welche G ter komplement r zu einander sind variiert von Tag zu Tag und wird durch diese Muster ausgedr ckt Das Amazon Beispiel ist nicht ideal da eine temporale Erweiterung dort nicht vorhanden ist doch ist es eines der wenigen im Internet auffindbaren Beispiele das ansatzweise eine praktische Umsetzung der Kernidee darstellt 17 1 4 Beispiel Das kalendarische Muster 10 11 K rbiskuchen Truthahn bedeu tet dass am 10 November eines jeden Jahres K rbiskuchen und Trut hahn zusammen verkauft werden Dieses aus der Quelle LNWJO1 stammende Beispiel spiegelt die Einkaufsgewohnheiten der US Ameri kaner zu Thanksgiving wieder und ist somit f r die Personalisierung sehr wertvoll 17 2 Temporales Clustering von Warenkorbdaten Mit diesem Ansatz soll probiert werden die Warenkorbdaten tem poral zu clustern Ziel ist es die Vorteile des Clusterings mit den Vorteilen der temporalen Analyse zu kombinieren Es kann f r dieses 199 17 Konzept
197. eidet dann welche Datenquelle welche Datensenke und welcher Algorithmus benutzt werden 14 2 Architektur Mit diesen vier Komponenten lassen sich bereits eine Vielzahl von Analysen ausf hren Ein Beispiel daf r findet sich in Abschnitt 14 5 1 wo gezeigt wird wie mit dem Framework ein einfaches Clustering durchgef hrt werden kann Abbildung 14 1 stellt den Daten und m ConfigurableSourcelterator ja EEN EE EE 5 reeDB 1 Parameter 1 T 1 1 1 1 Y Y AlgorithmRunner gt AlgorithmControllerj Algorithmus gt Y Datenfluss L gt ResultWriter e Abbildung 14 1 Daten und Kontrollfluss im Framework Kontrollfluss einer solchen Analyse dar In einigen F llen kann es vorkommen dass vor der eigentlichen Ana lyse bestimmte Vorbereitungsschritte Preprocessing und nach der Analyse bestimmte Nachbereitungsschritte Postprocessing erfolgen m ssen Weiterhin kann es in einigen F llen gew nscht sein mehrere solcher komplexer Analysen automatisch hintereinander auszuf hren Auch dies ist mit dem Framework leicht realisierbar Hierf r dienen die folgenden Komponenten 1 Vor und Nachbereitungen lassen sich ber das Interface Pre PostProcessor definieren Dieses definiert einzig die Methode run in der ein PrePostprocessor beliebige Berechnungen durch f hren kann 2 Zusammen mit einem AlgorithmRunner
198. eispiel oracle jdbc Driver OracleDriver e Target_UserName Das Login f r die Zieldatenbank Beispiel cardprovider e Target Password Das Passwort f r den Zugriff auf die Zieldatenbank Beispiel MeinGeburtstag Vor dem Programmaufruf f r den Datentransfer muss zun chst ein einmaliger Programmaufruf von Loader mit dem Parameter init er folgen da dadurch initial mehrere Tabellen in der Zieldatenbank mit Werten gef llt werden die f r den Import notwendig sind Eine ge naue Beschreibung der initial zu importierenden Daten findet sich oben in diesem Abschnitt 6 2 Meilensteine Zun chst sind folgende Meilensteine festgelegt worden 1 Fertigstellung der Anforderungsdefinition Integration bis zum 03 03 2003 Dieser Meilenstein ist eingehalten worden 2 Fertigstellung der Implementation des gesamten Integrations szenarios bis zum 04 05 2003 Dieser Meilenstein ist bzgl der Fertigstellung der Software eingehalten worden Die endg lti ge Fertigstellung zu der auch die Erstellung eines Handbuches und der vollst ndigen Dokumentation z hlen ist bis Ende Mai 2003 erreicht worden 65 6 Technisches Handbuch 66 7 Erweiterbarkeit In diesem Abschnitt wird darauf eingegangen wie Erweiterungen des bisherigen Integrationsumfeldes behandelt werden k nnen Dabei wird unterschieden ob sich die schon vorhandenen Akteure H ndler 1 H ndler 2 und Kartenanbieter ver ndern oder ob neue Ziele oder Quellen hi
199. eitsanfang GZA sollte bekannt sein wann welcher Warenkorb zusammengestellt bzw gekauft wurde Daraus l sst sich ableiten wann die enthaltenen Artikel gekauft wurden Im Sinne des bitemporalen Datenmodells m sste f r die folgenden Analysen die GZA verwendet werden Da die Testdaten jedoch keine brauchbaren Werte vorhalten muss auf die Transaktionszeit ausgewichen werden F r die Analyse bedeutet dies keinen Nachteil Die Transaktionszeit bestimmt wann der Datensatz in der Datenbank g ltig ist Wie03 Transaktionsanfang ist demnach die Zeit zu dem der Warenkorb im Online Shop angelegt wurde F r die Analysen wird davon ausgegan gen dass der Warenkorb mit dem Startwert der Transaktion auch in der realen Welt g ltig ist Im Testszenario bzw dem rudiment ren Online Shop sollte die G ltigkeitszeit korrekt gesetzt werden so dass diese von sp teren Analysen verwendet werden kann Um die n tigen Daten f r die Analyse zu erhalten ist ein Join aus zwei Entit ten notwendig Beim Online H ndler sind dies die En tit ten Warenkorb und Produkt_Warenkorb 17 2 2 Analyseverfahren Als Analyseverfahren wird das Clustering verwendet der ausgew hl te Algorithmus hei t XMeans 17 2 3 Interpretation Als Ergebnis werden mehrere Cluster erwartet denen eine beliebig gro e Menge von Produkten zugeordnet sind Ein Cluster ist durch einen Centroid gekennzeichnet um den herum die einzelnen Produkte gruppiert sind Da es sich um ein
200. ellt die Abnahme dar Diese erfolgt anhand der Kriterien aus der Anforderungsdefinition siehe Abschnitt 4 1 durch den Auftraggeber Dieser erh lt die oben genannte Dokumentation zur besseren Nachvollziehbarkeit des Vor gehens w hrend der Integration Den letzten Abschnitt unseres Projektes stellt die Einf hrung der fer tiggestellten Software dar Die Einf hrung entspricht der letzten Pha se im Wasserfallmodell Zur Anwendung kommt die Software dabei in der Analysephase des Gesamtprojektes F r die leichtere Handha bung seitens der Analysegruppe und f r m gliche Erweiterungen ist ein Handbuch siehe Abschnitt 6 1 erstellt worden Im Folgenden werden die in der Abbildung 3 1 als helle K sten darge stellten Hauptphasen Analyse Design Entwurf Einf hrung wel che w hrend der Integration im Mittelpunkt gestanden haben n her erl utert 29 3 Implementierung des Integrationsszenarios 30 4 Objektorientierte Analyse Die Analyse gliedert sich in drei verschiedene Phasen e Erstellung der Anforderungsdefinition e Erstellung eines statischen Modells Klassendiagramm e Erstellung eines dynamischen Modells Seguenzdiagramm 4 1 Anforderungsdefinition Das Ziel der Analyse ist es die W nsche und Anforderungen des Auftraggebers an das zu entwickelnde Softwaresystem zu ermitteln und in dieser Anforderungsdefinition zu formulieren 4 1 1 Ausgangssituation und Zielsetzung Ziel der Integration ist es die Daten aus
201. em Integer f r die Anzahl der Warenk rbe an einem Tag Der Wertebereich von Integer f r die Anzahl der Warenk rbe sollte mit einer Maximalgr Be von 2 1 ausreichend sein und der Fast Vector wurde aufgrund von Performanzgr nden ausgew hlt Die Me thoden wurden wie in Abschnitt 11 2 beschrieben umgesetzt Erweiterungen zu dem Entwurf gab es bez glich des Fuzzy Supports Es wurde die Methode fuzzyUpdate eingef hrt die beim Einf gen von Warenk rben in ein SetOfBaskets an einem Wildcard Muster den Z hler f r die Anzahl der Vorkommen an diesem Tag mittels einer Basket Methode inkrementiert 13 3 3 Basket Die Klasse Basket stellt einen einzelnen Warenkorb oder eine einzelne Regel dar Sie beinhaltet dazu einen FastVector f r die Artikelnum 105 Handbuch Algorithmus zum Auffinden kalendarischer Muster mern sowie ein Datum und einen Z hler In Erweiterung zu dem Entwurf wurden Z hler f r den Fuzzy Support eingef hrt Der Fuz zyCount und der Fuzzy Support speichern zum einen das gesamte Aufkommen der repr sentierten Regel und zum anderen den Fuzzy Support bei Wildcard Mustern Dazu existieren entsprechende set und get Methoden 13 4 Fazit Der Algorithmus stellt in seiner jetzigen Form dank Precise und Fuzzy Match und seiner ordentlichen Performanz bereits eine gute Einsatzvielfalt zur Verf gung Eine sinnvolle Erweiterung die aufgrund der begrenzt verf gbaren Zeit unterblieb w re eine Anpassung der kalend
202. en Adresse PL Z telefonnummer W I a A racia NUMBER 38 NOT NULL Inden Familienstand Familienstand UMBER 38 NOT NULL LOV oi email i UMBER 38 NOT NULL VARCHAR2 40 NOT beruf id Lov ES Kunden Beruf Beruf INULL ER gza kk DATE NOT NULL Se kk DATE Ga kk DATE NOT NULL Ge kk DATE Tabelle A 4 Relation kunde_mit_karte 250 Integration ER esma JE ban E Br SE Tabelle A 5 Relation Preis gza preis ze preis Ga preis DATE NOT NULL Ge preis artikel H2 Vertebereich Cardprovider wertenereien hein INUMBER 38 NOT NULL Produkt ProduktlD INUMBER 38 NOT NULL bezeichnung VARCHAR2 20 Produkt Name VARCHAR2 40 hersteller ARCHAR2 20 Produkt Hersteller VARCHAR2 40 kategorie_id Sch GERS Einordnung WarengruppelD INUMBER 38 NOT NULL Dreis id Ree i UMBER ge j gza preis DATE NOT NULL E Ga preis DATE NOT NULL 2 Tabelle A 6 Relation Artikel 1 f fi position H2 Wertebereich Cardprovider Werteoereicn l P been UMBER 38 NOT NULL PostenfProduktID INUMBER 38 NOT NULL weg UMBER 38 NOT NULL Posten Anzahl NUMBER 38 bonia UMBER 38 NOT NULL Posten TransaktionsiD NUMBER NOT NULL Tabelle A 7 Relation Position 251 Integration IN bon H2 Wertebereich Cardprovider Wertenereich INUMBER 38 NOT NULL Transaktion TransaktionID NUMBER NOT NULL INUMBER
203. en Da dies ein recht gro er Berech nungsaufwand ist und ein Online Shop auch gewissen Echtzeitanfor derungen wie vor allem einem kurzen Antwortzeitverhalten gerecht werden muss ist diese Methode an sich eher ungeeignet Sie hat aber den Vorteil weniger speziell zu sein als Assoziationsregeln W hrend einem eine Assoziationsregel ein ganz bestimmtes Produkt vorschl gt wird durch obige Methode nur eine Kategorie vorgeschlagen Isst ein Kunde beispielsweise gerne Chips zu seinem Bier mag aber keine Chips der Firma A w rde ihm eine Assoziationsregel die ihm Chips vom Hersteller A vorschl gt wahrscheinlich nicht zum Kauf animie ren W rde ihm allerdings der Vorschlag gemacht werden Chips im allgemeinen zum Bier zu kaufen k nnte ihn das evtl eher anregen Die zweite Anwendungsm glichkeit der Analyseergebnisse besteht dar in die Ergebnis Cluster als Grundlage einer Assoziationsanalyse zu nutzen Ein gro es Problem bei Assoziationsregeln ist es Regeln zu finden die einen ausreichenden Support haben also in einer ausrei chenden Anzahl der Warenk rbe gelten Die Algorithmen arbeiten dazu mit einem minimalen Supportwert den die Regel erf llen muss um als Regel erkannt zu werden Wird dieser Supportwert zu hoch gew hlt um qualitativ hochwertige Regeln zu finden besteht die Ge fahr gute Regeln zu verlieren die vielleicht auf allgemein wenig ge kauften Produkten gelten Das Clusteringverfahren soll genau das beschriebene Pr
204. en Import in der Quelldatenbank gesetzt wurden void updateProduktRabattfaehig Die Methode aktualisiert die tze Werte von Datens tzen in der Kartenanbieterdatenbank falls diese seit dem letzten Import in der Quelldatenbank gesetzt wurden 51 5 Objektorientierter Entwurf 33 void updateProduktStatus Die Methode aktualisiert die tze Werte von Datens tzen in der Kartenanbieterdatenbank falls diese seit dem letzten Import in der Quelldatenbank gesetzt wurden 34 void updateSortiment Die Methode aktualisiert die tze Werte von Datens tzen in der Kartenanbieterdatenbank falls diese seit dem letzten Import in der Quelldatenbank gesetzt wurden 35 void update Warengruppe Die Methode aktualisiert die tze Werte von Datens tze in der Kartenanbieterdatenbank falls diese seit dem letzten Import in der Quelldatenbank gesetzt wurden Klasse ImportHaendler2 Name ImportHaendler2 Kurzbeschreibung Die Klasse ImportHaendler2 f hrt den Import der Daten aus der H ndlerdatenbank des H ndlers 2 in die Datenbank des Kartenanbie ters durch Es werden SQL Queries und Statements generiert mit denen die Daten von der H ndlerdatenbank in die Kartenanbieter datenbank bertragen werden Des Weiteren werden Konvertierungen vorgenommen und fehlende Daten mit Standardwerten erg nzt Die bertragung von neuen Datens tzen in die Zieldatenbank geschieht durch Verwendung sogenannter insert Methoden Bereits in der Ziel datenban
205. en T Arbeitsbereich Sie unterst tzt zus tzlich die Auswahl der Quellen die importiert werden sollen Factoring ist ein Finanzierungsgesch ft bei dem ein spezialisier tes Finanzierungsinstitut Factor von einem Verk ufer dessen For derungen aus Warenlieferungen und Dienstleistungen laufend oder einmalig ankauft und die Verwaltung der Forderungen bernimmt Fakt Ein ist ein Objekt das quantifizierende und qualifizieren de Merkmale besitzt Die quantifizierbaren Eigenschaften beinhalten f r die Organisation relevante Daten die w hrend einer T Daten analyse weitergehend untersucht werden k nnen Qualifizierende Ei 334 Glossar genschaften dienen der n heren Beschreibung der guantifizierbaren Eigenschaften wodurch diese eine Bedeutung erhalten Fast Constellation Schema Bei einem sind neben den T Basis daten ebenso verdichtete Daten vorhanden Fehlerguadratsumme Die ist die Summe der quadratischen Ab weichungen der einzelnen Me werte von ihrem Gruppenmittelwert und stellt darum die Variation innerhalb der zu behandelnden Grup pe dar Frequent itemset bezeichnet eine Menge von Elementen die h ufig zusammen auftreten Gain Chart Ein ist eine M glichkeit die Qualit t eines Klassifi kators darzustellen Ein wird dabei durch zwei Kurven charakteri siert die den Informationsgewinn auf den Lerndaten und den Evalu ierungsdaten darstellen Je gr er der Abstand zwischen den beiden Kurven ist um so
206. en dienen Sol che Netze sind geeignet f r vielf ltige Aufgaben wie T Regression 338 Glossar Clusteranalysen oder die Mustererkennung Ladekomponente Um speicherungs und auswertf higen Daten im Data Warehouse Kontext weiterzuleiten ist eine Komponente not wendig damit die analyseunabh ngigen T Detaildaten in die f Basis datenbank zu bertragen Eine andere Komponente muss die analy sespezifischen Daten aus der T Basisdatenbank transferieren Logfile Webserver protokollieren jeden Zugriff auf ein Element der Seite in einer Protokolldatei deren Format durch die Konfiguration des Servers bestimmt wird Median Der bezeichnet den Wert der eine Stichprobe bzgl einer Variable in zwei H lften unterteilt die untere H lfte ist kleiner als der die obere gr er ME R Modell Das multidimensionale entity relationsship Mo dell erg nzt das ER Modell um drei Elemente um die multidimen sionale Semantik darzustellen Metadaten sind ein Begriff zur Beschreibung jeder Form von Informationen ber Daten bieten die M glichkeit Informationen aus dem Data Warehouse zu gewinnen Informationen ber Da ten aus derf Basisdatenbank und dem T Data Warehouse physische Speicherinformationen sowie Zugriffsrechte Qualit tssicherung und Informationen ber Data Warehouse Prozesse Sie dienen sowohl als Informationslieferant als auch zur Steuerung des T Data Warehouse Managers f r die verschiedenen Prozesse Metadaten
207. en erkl rte Szenario umzusetzen vgl Ab bildung 2 2 Der Schwerpunkt liegt dabei auf temporalen Aspekten bei der Datenhaltung den Analysen und somit ebenfalls in den Ana lyseergebnissen Online Shop Kunden Angebot t Personalisierung Personalisierung H ndler 1 A H ndler 2 Analyseergebnisse Analyseergebniss Datei Kartenanbieter Daten aggregierte Analyse Daten Ergebnisse Bibliothek M A K J A Analyseergebnisse Analyseergebnisse Abbildung 2 2 Gesamtszenario Die H ndler stellen einen Bestandteil des Gesamtszenarios dar Die Schnittstelle der H ndler zum Kunden liegt in der Pr sentation ei nes individuellen Angebotes und in dem Einsatz eines personalisier ten Online Shops Die H ndler sind in Online und Offline H ndler 17 2 Anforderungsdefinition Gesamtszenario unterteilt um ein umfassendes Szenario abzubilden Online H nd ler besitzen einen Online Shop H ndler 1 w hrend Olne H ndler f r ihre Warenpr sentation und ihren Warenverkauf Filialen nutzen H ndler 2 Die Online H ndler erlangen die Verkaufs und dazu geh rigen Kundendaten durch die Registrierung der Kunden im In ternet sowie durch die dort anfallenden Transaktionen und Analyse der Weblogs Die Kundendaten bei den OMine H ndlern werden ent weder durch Sch tzungen Alter Geschlecht und Befragungen an der Kasse PLZ oder ber Kundenkartenantr ge aufgenommen Die dazugeh rigen Verkaufs
208. en m glich ist Importstr me Die Importstr me lesen die Daten direkt aus der Da tenbank des Kartenanbieters Je nach gew hltem Algorithmus wer 81 10 Anforderungsdefinition den vordefinierte Daten aus der Datenbank eingelesen und WEKA zur Verf gung gestellt Welche Daten dabei eingelesen werden kann nicht konfiguriert werden Diese M glichkeit soll in einem sp teren Teilschritt implementiert werden Der Datenstrom wird dabei so konzipiert dass er als eine Art Cache funktioniert d h es werden nicht alle verf gbaren Daten auf ein mal gelesen sondern es wird immer nur eine bestimmte Teilmenge in den Hauptspeicher geladen Dies hat den Vorteil dass zum einen der Hauptspeicher geschont wird und zum anderen die Zahl der Festplat tenzugriffe optimiert wird Die API zur Kommunikation mit WEKA wird bereits jetzt so konzi piert dass sie in Zukunft nicht mehr ge ndert werden muss und somit in sp teren Teilschritten nur noch die metadatenbasierte Steuerung des Stroms zu implemetieren bleibt Exportst me Die Exportstr me werden je nach eingesetztem Algo rithmus die Ergebnisdaten in einem noch zu bestimmenden Format als textbasierte Datei ausgeben Dabei wird das Format so gew hlt dass die Ergebnisdatei sowohl menschen als auch maschinenlesbar ist Anpassung WEKAs Aktuell l dt WEKA die Daten mit Hilfe ei nes sogenannten Loaders und erzeugt aus den gelesenen Daten soge nannte Instanzen Alle erzeugten Instanzen sind b
209. enen zum Verbindungsaufbau f r einen Im port und m ssen in der angegebenen Reihenfolge bergeben werden 1 int sourceDB Die Angabe der Quelldatenbank erfolgt als Integer Wert Die Codierung erfolgt nach folgendem Sche ma 1 entspricht dem Import der Daten von H ndler 1 43 5 Objektorientierter Entwurf STRINGATTRIBUT PRODUKTATTRIBUTID FK d TZA PRODUKT FK TZA HAENDLERID FK PRODUKTID FK SORTIMENT SHOPID FK PRODUKTID FK GA PRODUKT FK HAENDLERID FK TZA SHOP FK SHOP PRODUKTATTRIBUT PRODUKTATTRIBUTID HAENDLERID FK WARENGRUPPE WARENGRUPPEID TZA_WARENGRUPPE TEXTATTRIBUT PRODUKTATTRIBUTID FK TZA PRODUKT FK TZA HAENDLERID FK PRODUKTID FK HAENDLERID FK NUMBERATTRIBUT PRODUKTATTRIBUTID FK TZA PRODUKT FK TZA HAENDLERID FK PRODUKTID FK EINORDNUNG TZA PRODUKT FK WARENGRUPPEID FK TZA_WARENGRUPPE FK HAENDLERID FK PRODUKTID FK PRODUKT PRODUKTID TZA PRODUKT HAENDLERID FK PRODUKTBUNDLE Er TE PRODUKTBUNDLEID TZA SHOPID TZA_SHOP HAENDLERID FK Abbildung 5 5 Subject Area Produkte der im Szenario der ersten Teilaufgabe implementiert wurde 2 entspricht dem Import der Daten von H ndler 2 der im Szenario der ersten Teilaufgabe implementiert wurde 2 int targetDB Die Angabe der Zieldatenbank erfolgt als Integer Wert Die Codierung erfolgt nach fol
210. ensweise in Anlehnung an das Wasserfallmodell 3 2 Beschreibung der Phasen der Softwareentwicklung Objektorientierte Analyse 4 1 Anforderungsdefinition 2 22222 4 1 1 Ausgangssituation und Zielsetzung o o Q CO OT GI 25 27 27 28 Inhaltsverzeichnis 4 2 Statische Analyse Klassendiagramm 4 3 Dynamische Analyse Sequenzdiagramm Objektorientierter Entwurf 5 1 Architektur EEN EEN a 5 2 Designentscheidungen 2 222 5 3 Klassenbeschreibung 2 22 22 2 2 5 3 1 Anwendungsklassen 5 3 2 Datenbankanbindung 2 2 2 5 4 Dynamikbeschreibung 22 22 20 Technisches Handbuch 6 1 Benutzerhandbuch 2 2 2 Km m m m nn 6 2 Meilensteine 2 2 2 HH m nn Erweiterbarkeit 7 1 Erweiterung der Quelldatenbanken 7 1 1 Erweiterungen der Schemata der H ndler 7 2 Erweiterung der Kartenanbieterdatenbank 7 3 Erweiterung um weitere Datenbanken 7 3 1 Erweiterung um Quelldatenbanken 7 3 2 Erweiterung um Zieldatenbanken 7 3 3 Technische Erweiterbarkeit Probleme bei der Implementierung 81 Gemeinsame Probleme beim Import der Daten beider H ndlerdatenbanken e 8 2 Probleme beim Import der Daten des H ndler 1 8 3 Probleme beim Import der Daten des H ndler 2 Zusammenfassung Ill Analyse 10 Anforderungsdefinition vi 10 1 Vorgehen in Teilschritten e 10 2 Systemeinsatz und umgebun
211. entwickelte Form der graphischen Clusteranalyse die auf Technologien im Bereich der T K nstlichen Neuronalen Netze zur ckgehen Ein SOM Algorithmus kann selbst ndig Daten gruppieren und diese in einer zweidimensio nalen Karte Map darstellen Das Ziel von Self Organizing Maps SOM besteht in der topologieerhaltenden Abbildung hochdimen sionaler Merkmalsr ume in einen Outputraum niedriger Dimension sind dabei in der Lage unbekannte Strukturen in der zu analy sierenden Datenbasis ohne a priori Informationen selbstst ndig zu extrahieren und zu visualisieren Sequenz Bei einer handelt es sich um eine Folge von Werten die sich auf einander folgende Zeitpunkte oder Zeitr ume bezieht Slice und dice bezeichnet die benutzergesteuerte Erforschung eines Datenbestandes Der Anwender kann w hrend dieses Vorgangs Teile eines T Datenw rfels selektieren Datenwerte aggregieren oder transformieren unterschiedliche T Datenw rfel miteinander verkn p fen oder einen W rfel aus verschiedenen Perspektiven betrachten Slowly changing dimension Dieses von Kimball 1996 entwickelte Konzept besch ftigt sich mit den Werte nderungen der Dimensions 345 Glossar attribute Snowflake Schema Dieses Schema erm glicht es T Klassifikatio nen direkt in einer relationalen Datenbank darzustellen indem f r jede Klassifikationsstufe eine eigene Tabelle angelegt wird Durch die funktionalen Abh ngigkeiten sind die Dimensionstabellen normali
212. enutzer Management Produkt bersicht und Produktde tailseiten sowie ein Warenkorb implementiert werden um den Online Shop realer wirken zu lassen 20 2 Implementierung Es wurde entschieden den Online Shop mittels jsp Technik zu im plementieren Hierzu wurde ein Tomcat Server der Apache Jakarta Group auf dem Rechner power2 offis uni oldenburg de aufgesetzt der seine Dienste auf Port 8077 anbietet Daher ist der Online Shop un ter der URL http power2 offis uni oldenburg de 8077 zu erreichen Die Tomcat Serversoftware steht unter der Apache License und ist somit frei nutzbare Open Source Software Der Online Shop basiert auf dem Datenbankschema des H ndler 1 Dies hat den Vorteil von Anfang an auf den Betrieb eines Online Shops ausgelegt zu sein Es bietet daher alle daf r notwendigen En tit ten wie z B Warenk rbe Produkt Kategorien usw Au erdem wurde die Datenbank von H ndler 1 mit vielen Testdaten gef llt so dass hiermit problemlos ein Online Shop betrieben werden kann 217 20 Shop Bei der Gestaltung der Seiten wurde entschieden s mtliche Online Shop Funktionalit ten in die Basisseite index jsp einzubinden die per URL Parameter konfigurierbar ist In Abh ngigkeit des Wertes des Parameters CMD wird eine der f nf folgenden Seiten geladen e content root jsp Startseite mit DIKO Logo und den Top Level Kategorien e content catalog jsp Darstellung eines Kataloges mit seinen un tergeordneten Kategorien un
213. enzial f r den Online Shop dargestellt Dieses Dokument soll die ein zelnen Anwendungen er rtern und abschlie ende Empfehlungen f r Umsetzung der Personalisierung im Online Shop geben Um die geforderten Ziele zu erreichen wird untersucht welche Ana lysen mit der gegebenen Datenbasis m glich erscheinen und wie ei ne Anwendung im Online Shop gestaltet werden kann Auf Basis dieses Arbeitsschrittes werden folgende Analysem glichkeiten umge setzt Clustering nach Kunden siehe Abschnitt 15 1 1 Clustering nach Kunden und gekauften Produkten siehe Abschnitt 16 2 und das Clustering von Warenk rben nach Produkttypen siehe Abschnitt 16 3 als Vertreter der nicht temporalen Analysen Als temporale Analysem glichkeiten werden kalendarische Muster sowie tempora les Clustering umgesetzt siehe Kapitel 17 135 136 15 Konzept Nicht temporale Personalisierung Dieses Konzept stellt die Gedanken der Projektgruppe ber m gliche Analyseverfahren dar deren Ergebnisse f r die Erstellung eines per sonalisierten Angebotes im Online Shop verwendet werden k nnten Es soll insbesondere berpr ft werden auf welche Weise die Analy seergebnisse interpretiert werden und in welcher Form sie weiterver wendet werden k nnen Um den zu betrachtenden Online Shop zu individualisieren sind die vorhandenen Daten des H ndler 1 siehe iH03 und Teil II hinsicht lich ihrer m glichen Verwendung zu untersuchen Es ist zu ber ck sichtigen we
214. er Integration besch ftigt sich eine Teil gruppe mit den Aufgaben der Analyse Meilenstein 7 und 11 17 03 03 bis 10 04 03 sowie 18 04 03 bis 05 07 03 Dauer 14 84 Wo chen 21 9 3 Fertigstellung Zwischenbericht Wie bereits oben erw hnt wird der Meilenstein bis zum 08 05 03 verl ngert Meilenstein 8 und 12 239 21 Soll Ist Vergleich vom Gesamtprojekt 01 04 03 bis 10 04 03 sowie 18 04 03 bis 08 05 03 Dauer 4 29 Wo chen 21 9 4 PG freie Zeit Gem der Projektgruppenordnung werden insgesamt zwei Wochen eingeplant in denen die Arbeit ruht Die Projektgruppe hat sich ent schlossen diese zwei Wochen in jeweils eine Woche aufzuteilen Meilenstein 9 und 15 11 04 03 bis 17 04 03 sowie 21 07 03 bis 27 07 03 Dauer 2 0 Wo chen 21 9 5 Personalisierungskonzept Es soll ein Konzept erstellt werden dass Vorschl ge zur Personalisie rung des Shops und zur konkreten Umsetzung der Analyseergebnisse macht Dazu geh rt auch die Anwendung der Analysealgorithmen die durch die Analysegruppe bereitgestellt werden Meilenstein 13 und 16 09 06 03 bis 20 07 03 sowie 28 07 03 bis 31 08 03 Dauer 11 0 Wo chen 21 9 6 Framework Metadaten Die Implementierung des Frameworks und die Unterst tzung von Me tadaten wird als zus tzlicher Meilenstein losgel st vom eigentlichen Analyse Meilenstein geplant Meilenstein 14 07 07 03 bis 20 07 03 Dauer 2 0 Wochen 21 9 7 Anforderungsdefinition Shop Diese Aufgabe die en
215. er Java Laufzeitumgebung und wird mit einem Standard Java Interpreter und dem Aufruf java diko integration Loader params gestartet Voraus setzung f r den Programmstart ist ein korrekt gesetzter Klassenpfad Es kann pro Programmaufruf eine Parameterfolge bergeben werden Folgende Werte k nnen als Parameter bergeben werden e h Dieser Parameter ruft eine Hilfe zur Benutzung des Programms auf e init Target_Hostname Target_Driver Target_UserName Target_Passwort Diese Parameterfolge f hrt die initialen Einf geoperationen auf der Kartenanbieterdatenbank durch Es ist u a n tig die Werte einer lov Tabelle engl list of value in das Kartenanbieter schema einzuf gen Weiterhin m ssen zwei H ndlerdatens tze angelegt werden denen dann die zu importierenden Daten zu zuordnen sind Au erdem m ssen s mtliche dynamischen At tribute angelegt werden die f r den Import der Daten aus den Schemata der H ndler notwendig sind Schlie lich ben tigt je der H ndler eine Zuordnung zu einem Kartensystem welches ebenfalls f r jeden H ndler angelegt werden muss 63 6 Technisches Handbuch e cleanDoubles Source Hostname Source Driver Source UserName Source Passwort Diese Parameterfolge startet eine Methode zur Beseitigung feh lerhafter Daten aus den Quelldaten von H ndler 2 H ndlerID KartenanbieterID Source Hostname Source_Driver Source UserName Source Password Target Hostname Target Driver Target
216. er T roll up Operation 333 Glossar Electronic Procurement Unter wird die elektronische Beschaf fung das heiBt der Einkauf von Waren und Dienstleistungen ber das Internet verstanden Entscheidungsbaumverfahren Bei dem werden Objekte deren Klassenzuordnung bekannt ist sukzessive mit Hilfe einzelner Merk male in Gruppen aufgeteilt die in sich homogen aber voneinander m glichst unterschiedlich sind Am Ende des Verfahrens entsteht ein T Baum aus dessen Verzweigungskriterien Regeln gebildet werden k nnen die dann auf nicht zugeordnete Objekte angewendet werden k nnen ETL Prozess ETL steht f r Extraction Transformation Label Der bezeichnet den Prozess der Datenverarbeitung von den Da tenguellen bis zum T Data Warehouse Evaluation ist die f nfte Phase im CRISP DM nach Abschluss der Mining Phase sind die gefundenen Frgebnisse in Form von Model len einer kritischen Betrachtung zu unterziehen Bevor die Ergebnisse zum T Deployment freigegeben werden m ssen die zu Beginn aufge stellten Gesch ftsziele hinsichtlich ihrer Erf llung betrachtet werden Nebenbei werden auch die Modellierungsmethoden und die Schritte des gesamten Prozesses berpr ft um etwaige Verbesserungspoten tiale zu erkennen Im Anschluss an diese Pr fungen wird ber den Prozessfortgang und den Grad der Nutzung der Ergebnisse entschie den Extraktionskomponente Die dient der bertragung der Da ten aus einer T Datenquelle in d
217. er eine Container Klasse namens Instances zu erreichen WEKA wird dahingehend an gepasst dass die Instances Klasse bei Bedarf neue Daten aus dem Datenstrom nachl dt Der Datenstrom bernimmt dabei die Verwal tung der Caching Funktionalit t 10 3 1 Laufzeit Konfiguration In diesem Teilschritt wird keine M glichkeit zur Konfiguration des Frameworks zur Laufzeit vorgesehen 10 3 2 Temporale Erweiterung von WEKA WEKA wird dahingehend erweitert dass es zus tzlich zu den bishe rigen Attributen auch temporale Attribute Zeitstempel speichern kann Da diesen Attributen eine besondere Rolle zukommt werden 82 10 4 Nicht Funktionale Anforderungen sie als spezielle Attribute implementiert Dieses erm glicht eine einfa che Verwendung derselben Daten sowohl zum normalen Data Mining als auch zum temporalen Data Mining ohne dass Attribute zwischen zeitlich gefiltert werden m ssen Die Anpassung wird in Form einer Erweiterung der aktuellen Instance Klasse erreicht indem von dieser Klasse geerbt wird Dieses hat den Vorteil dass die aktuell vorhande nen Algorithmen bzw Klassen nicht oder evtl nur minimal angepasst werden m ssen 10 3 3 Algorithmus f r kalendarische Muster Es wird ein Algorithmus zum Auffinden von kalendarischen Mustern LNWJO1 implementiert Dabei wird der Algorithmus so entworfen dass er vorerst nur Muster der Form lt Jahr Monat Tag gt auffin det F r einen sp teren Teilschritt wird eine konfigurierba
218. erf gung gestellt werden Die brigen Klassen werden der Anwendungsschicht zugerechnet 5 3 1 Anwendungsklassen Die Anwendungsklassen sind im wesentlichen f r die Frstellung von SQL Queries und Statements entwickelt worden Au erdem bieten sie Funktionen zur Bereinigung der Datenbank des H ndlers 1 von inkonsistenten Daten sowie zur Initialisierung der Kartenanbieter datenbank 42 5 3 Klassenbeschreibung HAENDLER BRANCHE LOV BRANCHE HAENDLERID Ek SHOP MITARBEITER OEFFNUNGSZEITEN LOV BRANCHENID BRANCHE FK SHOAID FK SHOPID FK Ge TZA SHOP FK TZA BESITZER FK TZA SHOP FK BESITZER FK HAENDLER UMSATZ HAENDLERID FK TZA SHOP SHOPID 9 TZA SHOP PRODUKTATTRIBUT HAENDLERID FK PRODUKTATTRIBUTID HAENDLER SHOP STATUS HAENDLERID FK HAENDLERID SHOPID FK TZA Ca SHOP FK BESITZER FK HAENDLER MITARBEITER HAENDLERID FK TZA LOV SHOP STATUS LOV SHOP STATUSID TEILNAHME KARTENSYSTEM KARTENSYSTEMID FK KARTENSYSTEMID TZA_KARTENSYSTEM HAENDLERID FK LOV_TEILNAHME_STATUS LOV_TEILNAHME_STATUSID J TZA TZA_KARTENSYSTEM FK Abbildung 5 4 Subject Area H ndler Klasse Loader Name Loader Kurzbeschreibung Die Klasse Loader ist die Hauptklasse des Programms Sie wird mit Parametern aufgerufen die ber die Kommandozeile bergeben wer den k nnen Folgende Parameter werden akzeptiert e Diese Parameter di
219. eriert der bei doppeltem Vorkommen derselben Artikelnummer innerhalb einer Transaktion seine Eindeutigkeit verliert Gel st wurde dieses Pro blem indem diese Datens tze aus den mit Testdaten gef llten H nd lerdatenbanken gel scht wurden Dies war in diesem Fall m glich da beim Erstellen der Testdaten in den H ndlerdatenbanken der Fehler begangen wurde nicht fehlerfreie Testdaten zu erstellen Bei der Im plementierung wird davon ausgegangen dass die Daten in den H nd lerdatenbanken fehlerfrei vorliegen Au erdem hat ein gro es Datenvolumen der Testdaten in den H nd lerdatenbanken die Laufzeit der Importe verl ngert In den ersten Testphasen ist das Problem der langen Laufzeit umgangen worden indem die Auswahl der zu importierenden Testdaten f r die einzelnen Entit ten auf eine geringe Anzahl reduziert worden ist Aus programmiertechnischer Sicht haben Probleme mit Oracle Locks und Schleifenverschachtelungen in Java bzgl der Datenbankobjekt zugriffe den Fortschritt des Programmierens aufgehalten Zus tzlich zu den bereits beschriebenen Problemen ist noch ein weite res Problem aufgetreten Einige initiale Daten m ssen in der Karten anbieterdatenbank angelegt werden bevor der Import der H ndler Daten durchgef hrt werden kann So m ssen beispielsweise H ndler und Kartensysteme angelegt und dynamische Attribute erzeugt wer den Diese Aufgabe wird von der Klasse import InitData ausgef hrt Sie wird aufgerufen indem
220. ering von Warenk rben nach Produkttypen siehe 16 3 Die verschiedenen Ver fahren greifen dabei alle auf die in WEKA vorhandenen Clusteralgo rithmen zur ck Der temporale Bereich wird durch die kalendarischen Muster abgedeckt f r den ein eigener Algorithmus implementiert 234 21 4 Shop worden ist Zur Steuerung der Analysen ist ein Framework entworfen und imple mentiert worden wodurch ein metadatengesteuerter Ablauf erm glicht wurde Die notwendigen Angaben werden dem Framework ber soge nannte Configfiles bergeben Das Framework erm glicht weiterhin einer Analyse eine beliebige Anzahl von Vor und Nachbearbeitungs schritten hinzuzuf gen Pr und Postprozessoren als auch mehre re Analysen nacheinander durchzuf hren Bei dem in der Anforde rungsdefinition erw hnten Austauschformat handelt es sich um das in WEKA verwendete arff Format Es ist dar berhinaus jedoch sowohl f r den Import als auch f r das Speichern der Analyseergebnisse m glich direkt mit der Datenbank zu kommunizieren Details zum Framework sind dem Kapitel 14 zu entnehmen 21 4 Shop Der Online Shop ist zur Evaluierung der Analyseergebnisse erzeugt worden Als Datengrundlage dient wie vorgesehen die Datenbank von H ndler 1 dem Online H ndler Im Shop sind die geforderte Darstel lung der baumartigen Katalogstruktur Detailseiten zu den einzelnen Produkten und eine Warenkorbfunktion realisiert worden Die Vorlie ben eines Kunden werden ber zw
221. ert ungleich null d h in dieses Cluster fallen alle Kunden die nur Produkte der Warengruppe 5 erworben haben Die sieben Nullwerte in f r den Centroiden von Cluster 2 symbolisiert die Gruppe der Nichtk ufer Zum Abschluss einer jeden Analyse wird die Verteilung der Kunden aufgezeigt wobei ein Eintrag 2 324 32 bedeutet dass in Cluster 2 324 Kunden eingeteilt wurden was 32 Prozent der gesamten Kunden entspricht Scheme weka clusterers SimpleKMeans N 5 S 2 Cluster centroids Cluster 0 14 214285714285714 12 142857142857142 13 147619047619047 17 285714285714285 12 957142857142857 13 719047619047618 12 976190476190476 Cluster 1 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 3 16 88888888888889 12 793650793650794 13 551587301587302 13 05952380952381 13 035714285714286 13 984126984126984 13 234126984126984 261 Personalisierung Cluster 4 12 184331797235023 13 90783410138249 14 184331797235023 13 2073732718894 13 76958525345622 15 064516129032258 14 013824884792626 0 210 21 11 0 2 324 32 3 252 25 4 217 22 Scheme weka clusterers SimpleKMeans N 5 S 1 Cluster centroids Cluster 0 16 544159544159545 12 49002849002849 13 452991452991453 14 227920227920228 12 877492877492877 13 897435897435898 13 042735042735043 Cluster 1 12 432926829268293 13 439024390243903 13 817073170731707 14 612804878048781 13 640243902439025 14 621951219512194 13 789634146341463 Cluster 2 0 0 0 0 0
222. erteilung 346 Glossar Streuverluste sind durch Werbema nahmen erzielte Kontakte mit Personen die nicht der definierten Zielgruppe zugeh rig sind werden auch Fehlstreuung genannt Subseguenz Eine ist eine Folge von Werten die in einer anderen T Sequenz enthalten ist Dabei ist nicht die bereinstimmung aller Werte entscheidend sondern die Reihenfolge selbiger Summierbarkeit bezeichnet die inhaltliche Korrektheit der An wendung einer Aggregationsfunktion auf einen T W rfel Supply chain W rtlich Beschaffungskette Eine ist ein Netz aus Einrichtungen Distributionszentren und Verkaufsstellen die er forderlich f r den Materialfluss sind Support ist die H ufigkeit mit der ein frequent itemset oder eine Sequenz in der Datenmenge vorhanden ist Machmal ist der auch als Quotient aus der H ufigkeit und der Gesamtgr e der Da tenmenge definiert Synonymfehler bezeichnet das Nichterkennen der Zusammen geh rigkeit zweier T Tupel oder Objekte die die selbe Entit t be schreiben Task Analysis ist der erste Teilprozess des allgemeinen KDD Modelles in dieser Phase wird das Umfeld der T Datenanalyse be trachtet und die Ziele f r den weiteren Prozess festgesetzt Temporale Datenbank Eine ist eine Datenbank die auf T G l tigkeits und Transaktionszeit basiert und es somit erlaubt die vollst ndige Geschichte von Daten nachzuvollziehen Transaktion Eine bezeichnet den Vorg
223. es ImportHaendler1 und ImportHaendler2 aufgerufen Methoden Dienste 1 DBConnection String db_name String db_driver String db_user String db_passwd Konstruktor stellt eine Verbindung zur Datenbank her 60 5 4 5 4 Dynamikbeschreibung void disconnect beendet eine Verbindung zur Datenbank ResultSet executeQuery String sqlQuery f hrt die in dem bergebenen String enthaltene Anfrage auf der Datenbank aus void commit f hrt einen commit auf die Datenbank aus void rollback verwirft die nderungen seit dem letzten commit boolean executeUpdate String sqlStatement f hrt die in dem bergebenen String angegebene Manipulation aus void startTransaction Diese Methode schaltet den Modus autocommit aus Dynamikbeschreibung Die Dynamik des Systems wurde in Kapitel 4 3 behandelt und im wesentlichen durch das Sequenzdiagramm in Abbildung 4 2 beschrie ben 61 5 Objektorientierter Entwurf 62 6 Technisches Handbuch Im Folgenden wird die Nutzung der Klassen des Integrationsschemas anhand eines technischen Handbuches n her erl utert Es werden Bei spiele f r die anzugebenden Parameter vorgestellt und es wird erkl rt was die Parameter im Einzelnen bedeuten 6 1 Benutzerhandbuch Das Programm Loader ist ein kommandozeilengesteuertes Tool f r den Transfer von Daten aus H ndlerdatenbanken in die Datenbank ei nes oder mehrerer Kartenanbieter Das Programm l uft in ein
224. es wobei dies verlustfrei oder verlustbehaftet gesche hen kann in Bezug auf den Informationsgehalt Datennormalisierung Normalisierung Datenquelle Die beeinflusst durch die Art der Datenspeicherung die Analysef higkeit eines Data Warehouse System Sie stellt einen Bestand von Rohdaten mit Inhalten f r den Analysezweck dar Datenreduktion Die umfasst verschiedene Strategien zur Ver kleinerung des Volumens von Daten wie z B Aggregation Di mensionsreduktion Datenkompression oder T Numerische Daten reduktion Datentransformation bezeichnet Verfahren die der Homogeni sierung vormals heterogener Daten dienen um Daten in eine f r das T Data Mining notwendige Form zu transformieren Datenvorverarbeitung Ziel dieser Vorbereitungsphase des T KDD Prozesses ist die Bereitstellung der zu analysierenden Datens tze f r die gew nschten Analysen und Verfahren wozu die Aufgaben des Transformieren Bereinigen und der Selektion in nicht festgesetzter Reihenfolge mehrfach wiederholt werden Die ist die zweite und ar beitsintensivste Phase des ganzen KDD Prozesses und beansprucht teilweise mehr als die H lfte der ganzen zur Verf gung stehenden Zeit Datenwertskonflikt Der stellt einen Zustand dar in dem in ein und der selben Entit t nicht zueinander kompatible Datenwerte ent halten sind 332 Glossar Datenw rfel f W rfel Deployment ist die letzte Phase des allgemeinen KDD Modelles Die endg ltigen
225. es Projektes und einer allgemeinen unterschieden da aufgrund der gegebenen Daten nicht alle Potentiale der Analyse ausgesch pft werden konnten 188 16 2 Clusteranalyse nach Kunden und gekauften Produkten Umsetzung im Rahmen der Projektgruppe Die durch die Analyse erzeugten Cluster sind aufgrund ihrer Qua lit t weder f r eine direkte Umsetzung noch als Grundlage f r wei terf hrende Analyseverfahren wie eine Assoziationsanalyse zu verwer ten Das Cluster der Nichtk ufer bietet keine Aussagekraft f r eine Personalisierung und die anderen beiden Hauptgruppen sind sich so hnlich das eine Differenzierung nicht sinnvoll erscheint Weiterhin ist zu beobachten dass die meisten Werte zwischen 12 und 17 Prozent liegen und somit der Verdacht einer Gleichverteilung der Eink ufe ber die Warengruppen naheliegt Auch dieser Effekt ist auf die Art der Datenerstellung zur ckzuf hren Die f r diese Analysen ange dachte Verwertung der Ergebnisse wird daher im n chsten Abschnitt theoretisch er rtert Projektunabh ngige Umsetzungsm glichkeiten Die Cluster der Analyse Kunden nach gekauften Produkten k nnen nur in Zusammenhang mit den Centroiden der Cluster verwendet wer den Die Kunden werden zusammen mit der Nummer ihres Clusters in der Zieldatenbank gespeichert Sofern ein Kunde im Online Shop angemeldet ist k nnen sein Cluster bestimmt und ber die Daten des Mittelpunktes die wichtigsten Kategorien als direkte Links auf der Star
226. es einfachen Clustering nach Kunden siehe Abschnitt 15 1 1 148 15 3 Weitere M glichkeiten des Clusteralgorithmus H ndler 1 DB knd sid vorname gebdatum geschlecht email kennwort Adresse i vorname strasse hausnummer plz land telefon Produkt i kurz beschreibung beschreibung e preis v_preis Clusteranalyse Assoziationsanalyse auf C A AA gt At Ci C2 Ci Abbildung 15 1 Clustering nach Kunden i V m Assoziationsanalyse 149 15 Konzept Nicht temporale Personalisierung Kartenanbieter DB H ndler 1 TRANSAKTION TRANSAKTIONID HAENDLER SHOPID ART INHABER POSTEN TRANSAKTIONID PRODUKTID TZA PRODUKT HAENDLERID ANZAHL EINORDNUNG TZA PRODUKT WARENGRUPPEID HAENDLERID Clusteranalyse Assoziationsanalyse auf C Atti AAtt gt Att r Ci C3 Ci Abbildung 15 2 Clustering nach Kunden und gekauften Produkten i V m Assoziationsanalyse 150 16 Anwendung Nicht temporale Analysen Von den in dem Konzept vorgestellten M glichkeiten der Analysen wurden nicht alle genannten Beispiele umgesetzt Dies resultiert in erster L
227. est_Kunden Clusteralgorithmus SimpleKMeans Anzahl vorgegebener Cluster 176 Tabelle 16 26 Einstellungen finales Clustering fe S s ossis 2 Tabelle 16 27 Ergebnis finales Clustering Cluster 0 25 erwachsene Kunden um 40 Jahre mit einer PLZ um 23123 Cluster 1 16 Fr hrentner oder ltere Kunden mit einer PLZ um 66666 Cluster 2 10 erwachsene Kunden um 40 Jahre mit einer PLZ um 66666 Cluster 3 25 jugendliche Kunden mit einer PLZ um 66666 Cluster 4 24 jugendliche Kunden mit einer PLZ um 23123 Cluster 5 34 Fr hrentner oder ltere Kunden mit einer PLZ um 23123 Cluster 6 25 Twens mit einer PLZ um 23123 Cluster 7 24 Twens mit einer PLZ um 66666 16 1 Clusteranalyse nach Kunden SQL Query select KundenID Geburtsdatum PLZ Geschlecht from Test_Kunden Clusteralgorithmus SimpleKMeans Anzahl vorgegebener Cluster Tabelle 16 28 Einstellungen 1 Clustering Clustering nach PLZ Geburtsdatum und Geschlecht Die bisher gefundenen Kundengruppen setzen sich jeweils aus drei Attributen zusammen Daher bezieht sich dieses Clustering auf vier Kundenattribute wobei bspw weibliche jugendliche Kunden aus ei nem bestimmten Einzugsgebiet identifiziert werden sollen Bei dem Clustering ist das Attribut KundenID wiederum ignoriert worden wobei es aber bei der Ergebnisausgabe ausgegeben wird weil es wich tig f r die Zuordnung zu den Kundengruppen ist Da dieses Clustering auf vier Attributen auf G
228. fern er in der Lage ist Auskunft ber die erzeugten Attribute zu geben Falls ei ne Datenquelle dieses Interface implementiert bernimmt der AlgorithmRunner die Metadaten von ihr Ein Beispiel daf r ist der ArffFilelterator siehe Seite 114 AlgorithmController Das Interface AlgorithmController dient dazu einen bestimmten Analyse Algorithmus auszuf hren Jeder Al gorithmus ben tigt dabei eine eigene Implementierung die je weils unterschiedliche Parameter verarbeiten kann ResultWriter Das ResultWriter Interface wird benutzt um die er zeugten Analysedaten in eine Datensenke zu speichern PrePostProcessor Um in komplexen Analysen beliebige Vor und Nachbereitungsschritte ausf hren zu k nnen bedient sich das Framework dieses Interfaces lAlgorithmRunner Das Interface ZAlgorithmRunner spezifiziert die Schnittstelle zu einfachen Analysen die ohne Pre und Postpro zessoren auskommen lAnalysisRunner Dieses Interface spezifiziert die Schnittstelle zu kom plexen Analysen Detaillierte Beschreibungen der einzelnen Methoden der Interfaces finden sich in den Javadoc Kommentaren der Implementierung Die se sind unter Dik03 verf gbar Abbildung 14 3 stellt die Interfaces die sich teilweise aber sehr hnlich sind beispielsweise gibt es f r die verschiede nen Clusterer aus WEKA eine abstrakte Klasse die den Gro teil der Funktio nalit t bereitstellt und f r jeden Clusterer jeweils eine davon erbende Klasse die si
229. funktion Diese Berechnungsfunktion bildet eine Wer temenge auf einen einzelnen Wert ab Analyse Die bezeichnet alle Operationen die mit den Daten ei nes T Data Warehouse durchgef hrt werden um neue Informationen zu generieren Arbeitsbereich Der h lt die Daten des T Datenbeschaffungsbe reichs Arithmetisches Mittel Das beschreibt den Wert den man um gangssprachlich als Durchschnittswert bezeichnet Er wird berechnet in dem alle Werte aufsummiert werden und anschlie end das Ergeb nis durch die Anzahl der Werte geteilt wird Attribut Ein ist die allgemeine Bezeichnung f r Eigenschaften von Datenobjekten wie z B Farbe und Gr e Im Zusammenhang mit relationalen Datenbanken werden die Elemente einer Spalte als Attributwerte bezeichnet Attribut Zeitstempelung Jedes T Attribut einer Relation erh lt eine eigene Temporalisierung Bei der erfolgt die Implementierung der Zeitstempel auf Attributebene AusreiBer sind Daten die verglichen mit anderen Werten sehr gro oder sehr klein sind Average Linkage Das Verfahren ist ein Verfahren der hierarchi schen Clusteranalyse wobei die durchschnittliche hnlichkeit aller Paare von Individuen x Element C und y Element D bezeichnet 327 Glossar Basisdatenbank Die anwendungsneutrale stellt eine integrierte Datenbasis dar Ihre Aufgabe ist die Sammlung Integration und Ver teilung der Daten Baum Eine dynamische Datenstruktur die z B bei hierarc
230. g 10 3 Funktionale Anforderungen 10 3 1 Laufzeit Konfiguration 2 2 22 20 10 3 2 Temporale Erweiterung von WEKA 39 39 39 42 42 60 61 63 63 65 67 67 67 68 68 69 69 69 71 71 73 73 75 11 12 13 Inhaltsverzeichnis 10 3 3 Algorithmus f r kalendarische Muster 83 10 4 Nicht Funktionale Anforderungen 83 10 5 Benutzerschnittstellen e 83 10 6 Fehlerverhalten 84 10 7 Dokumentationsanforderungen 2 2 2222 84 10 8 Abnahmekriterien 84 Entwurf 87 11 1 Architektur 2 aed kbps lv E Ber 87 11 1 1 WEKA Architektur e 87 11 1 2 Design der WEKA Erweiterungen 88 11 2 Klassenbeschreibung 90 11 2 1 Temporallnstance 90 11 2 2 Sourcelterator 2 2 2 90 11 2 3 JDBCSourcelterator ClusteringInstance und Ca lendarInstance 91 11 2 4 InstanceCache 4 91 11 25 Instances eg ea k sk as N 92 11 2 6 TemporalAssociationRules 92 11 2 7 Basket 2 rs ek en 93 11 2 8 SetOfBaskets e 94 Technisches Handbuch Cache 95 12 1 Klassendesign 95 12 2 Implementierungsdetails 2 22222 97 12 2 1 nderungen an der Klasse Instances 97 12 2 2 InstanceCache 4 97 12 3 E EE 98 Technisches Handbuch Algorithmus zum Auffinden kalen darischer Muster 101 13 1 Funktionsweise des Algorithmus 101 13 2 Klassendesign 102 13 3 Implementierungsdetails 2
231. g mit dem Personalisierungskonzept verbunden ist soll die Umsetzung der Analyseergebnisse aus der Sicht der Shops erarbeiten Meilenstein 17 18 08 03 bis 07 09 03 Dauer 3 0 Wochen 240 21 10 Meilensteinfazit 21 9 8 Fertigstellung Shop Implementierung und Anwendung der Analyseergebnisse so dass sie im Shop pr sentiert werden soll innerhalb dieses Meilensteins gesche hen Meilenstein 18 08 09 03 bis 30 09 03 Dauer 3 29 Wochen 21 9 9 Fertigstellung Endbericht Als letzten Meilenstein gilt es den Endbericht anzufertigen Obwohl die Erfahrung mit dem Zwischenbericht gezeigt hat dass aufgrund von Korrekturdurchl ufen etc die tats chlich ben tigte Zeit zum Ab schlieBen des Berichts schlecht planbar ist endet dieser Meilenstein mit dem offiziellen Ende des Projekts Meilenstein 18 17 08 03 bis 30 09 03 Dauer 6 43 Wochen 21 10 Meilensteinfazit Die Meilensteinplanung in Abbildung 21 2 stellt die Sollplanung dar Tats chlich gibt es Abweichungen vom urspr nglichen Zeitplan In manchen F llen z B Implementierung des Shops konnten die Ar beiten fr her als geplant in anderen z B das Personalisierungskon zept sp ter abgeschlossen werden Insgesamt l t sich sagen dass das Projekt alle aufgetragenen und im Meilensteinplan aufgef hrten Aufgaben bis zum Ende des Projekts bew ltigt hat Details zu den einzelnen Meilensteinen ist den jeweiligen Kapiteln der Teilgruppen zu entnehmen 241 21 Soll Ist
232. g nach PLZ und Geschlecht e weibliche Kunden aus der Region Ammerland zwischen 30 45 Jahren Clustering nach PLZ Geschlecht und Geburtsdatum Anwendung Konnte ein Kunde erfolgreich einer Kundengruppe zu geordnet werden k nnten ihm Artikel angeboten werden die bereits von anderen Kunden der gleichen Gruppe erworben wurden Die Aus wahl dieser Artikel f r das personalisierte Angebot kann auf Zufalls basis erfolgen oder alternativ kann ebenso aus einer Liste der Top5 der beliebtesten Produkte einer Kundengruppe gew hlt werden Bei diesem Clustering erfolgt lediglich eine Einteilung der Kunden 139 15 Konzept Nicht temporale Personalisierung in Gruppen anhand der demographischen Kundendaten Die von den Kunden erworbenen Produkte bleiben jedoch bei der Clusterbildung unber cksichtigt Die im n chsten Abschnitt vorgestellte Analyse clu stert hingegen sowohl nach Kunden als auch nach gekauften Produk ten Es k nnte ebenso sinnvoll sein diese Clusterergebnisse nicht separat sondern in Verbindung mit anderen Analysen z B Anwendung der Assoziationsanalyse in Verbindung mit Produkten zu nutzen Das Clustering kann damit Grundlage f r weitere Analysen sein auf die an anderer Stelle n her eingegangen wird siehe Kapitel 15 3 3 Im Rahmen der Projektarbeit wird das Clustering nach Kunden durch gef hrt und deren Ergebnisse mittels einer Top5 Liste f r ein per sonalisiertes Angebot verwendet siehe Abschnitt 16 1
233. gabe wieder ber cksich tigt wird um eine Zuordnung der Kunden zu den jeweiligen Clustern zu gew hrleisten Es sind verschiedene Parametereinstellungen gete stet worden wobei wiederum acht Cluster ausgegeben werden sollten Diese Cluster sollen letztendlich eine Interpretation entsprechend der folgenden Aufz hlung erm glichen e 1 25 erwachsene Kunden um 40 Jahre mit einer PLZ um 23123 e 2 Fr hrentner oder ltere Kunden mit einer PLZ um 66666 e 3 erwachsene Kunden um 40 Jahre mit einer PLZ um 66666 e 4 jugendliche Kunden mit einer PLZ um 66666 e 5 jugendliche Kunden mit einer PLZ um 23123 e 6 Fr hrentner oder ltere Kunden mit einer PLZ um 23123 e 7 Twens mit einer PLZ um 23123 e 8 Twens mit einer PLZ um 66666 1 Clustering Bei der manuellen Durchsicht der synthetisch erzeug ten Testdaten sind wie weiter oben bereits beschrieben vier Jahres schwerpunkte entdeckt worden In Verbindung mit den Postleitzah len der Wohnorte der Kunden die haupts chlich aus zwei fiktiven Einzugsbereichen kommen sollten bez glich der Interpretierbarkeit wiederum acht Cluster gebildet werden Es sind bei dem ersten Clu stering die Parametereinstellungen aus Tabelle 16 21 zur Anwendung gekommen 171 16 Anwendung Nicht temporale Analysen SQL Query select KundenID Geburtsdatum PLZ from TestKunden Clusteralgorithmus SimpleKMeans Anzahl vorgegebener Cluster Tabelle 16 21 Einstellungen 1 Clustering o ea a
234. gen f r den konkreten Einsatz im Shop f r den Fall dass die Ergebnisse den Erwartungen ent sprechen Die Analysen sollen lediglich auf Daten des H ndler 1 zugreifen Die Analyse fremder Daten bietet keinen sichtbaren Mehrwert f r die Personalisierung entsprechend der Ziele der Projektgruppe Bei fremden Daten handelt es sich um Daten die nicht von H ndler 1 stammen Im Rahmen der Projektgruppe werden demnach die Da ten von H ndler 2 nicht beachtet Da es sich bei H ndler 2 um einen klassischen Ofline H ndler handelt erscheint es wenig sinnvoll seine Daten f r einen Online Shop zu verwenden Des Weiteren ist zu beachten dass aus Zeitgr nden keine Ad hoc Analysen durchgef hrt werden d h die von einem Kunden gelieferten Daten werden nicht analysiert w hrend der Kunde in dem Online Shop eingeloggt ist Stattdessen werden die Daten zun chst gesam melt dann analysiert und die daraus resultierenden Ergebnisse zu einem sp teren Zeitpunkt f r die Personalisierung zur Verf gung ge stellt Die Analyseverfahren die im Rahmen der Projektgruppe verwendet werden sollen werden in Abschnitt 16 1 2 ausf hrlicher erl utert 15 1 Einfache Analysen In diesem Abschnitt werden Analysen beschrieben die ausschlies slich auf Daten des H ndler 1 durchgef hrt wurden Dabei sollten die Analysen sowohl auf der Datenbank des H ndler 1 als auch auf der Datenbank des Kartenanbieters funktionieren k nnen Es werden kei
235. gende Analyseschritte gewinnen zu k nnen Der experimentelle Charakter der Aufgabe verlangt einen stetigen Wechsel zwischen den Phasen der Vorverarbeitung Analyse und Bewertung der Ergebnisse wobei die Anwendbarkeit der Resultate im Online Shop als Abbruchkriterium festgesetzt ist In Abschnitt 16 2 2 wird die Auswahl der Daten als auch deren Auf bereitung f r die beabsichtigten Analysen beschrieben Kapitel 16 2 3 besch ftigt sich mit der Durchf hrung der Analyse und der Auswer tung ihrer Ergebnisse Die Verwendung der Ergebnisse steht hinge gen im Mittelpunkt des Kapitels 16 2 4 das Fazit Abschnitt 16 2 5 schlie t den Text ab der Anhang beinhaltet die genauen Ergebnisse der durchgef hrten Analysen 16 2 2 Auswahl der Daten und Vorverarbeitung Um die angestrebten Analysen mit Hilfe von WEKA durchf hren zu k nnen m ssen die relevanten Daten selektiert werden Abschnitt 16 2 2 neue Werte berechnet und diese abschlie end in ein geeignetes Format gespeichert werden Abschnitt 16 2 2 Datenauswahl F r die geforderte Analyse sind die gekauften Artikel eines jeden Kun den zu bestimmen und diese werden dann ihrer jeweiligen Warengrup pe zugeordnet Die Artikel einer Warengruppe werden anschlie end 184 16 2 Clusteranalyse nach Kunden und gekauften Produkten aufsummiert und der Anteil dieser Warengruppe an der Gesamtmen ge der Artikel des jeweiligen Kunden berechnet Die ben tigten Information befinden sich in der
236. gendem Sche ma 1entspricht dem Export der Daten zum Kartenanbie ter des Szenarios welches in der ersten Teilaufgabe HAENDLERID J HAENDLER implementiert wurde 3 String sourceDBHost gibt die Adresse der Quelldatenbank an 44 5 3 Klassenbeschreibung 4 String sourceDBDriver gibt den Treiber der Quelldaten bank an 5 String userSDB beinhaltet das User Login f r die Quell datenbank 6 String passwdSDB h lt das Passwort f r die Quelldaten bank 7 String targetDBHost gibt die Adresse der Zieldatenbank an 8 String targetDBDriver gibt den Treiber der Zieldatenbank an 9 String userTDB beinhaltet das User Login f r die Zielda tenbank 10 String passwdTDB h lt das Passwort f r die Zieldaten bank Alternativ k nnen die Parameter sourceDBHost sourceDBDri ver targetDBHost und targetDBDriver weggelassen werden In diesem Fall werden diese Parameter durch fest im Loader co dierte Werte ersetzt Diese Werte sind f r sourceDBHost jdbc oracle thin power2 offis uni oldenburg de 1521 power2 f r sourceDBDriver oracle jdbc driver OracleDriver f r targetDBHost jdbc oracle thin power2 ofhis uni oldenburg de 1521 power2 f r targetDBDriver oracle jdbc driver OracleDriver init targetDBHost targetDBDriver userTDB passwdTDB Ein Aufruf mit diesen Parametern gibt an dass die Klasse In itData ausgef hrt wird Diese Klasse dient dazu initia
237. griffen wird das weiter hinten im Datenstrom liegt alle dazwischen liegenden Seiten erst geladen und dann in den Swap geschrieben Je nachdem wo die n chste Seite liegt wird diese entweder aus der Quelle oder aus dem Swap geladen Im Swap sind die Elemente nach Index indiziert Das bedeutet das auch Zugriff per Index Random Access performant sein sollte Wer den Elemente gel scht oder hinzugef gt hat das immer erst ein kom plettes Lesen aller Quelldaten zur Folge Zusammenfassend bedeutet dies dass der Cache immer seitenweise liest Sollte also ein Algorithmus h ufig einzelne Datens tze an un terschiedlichen Stellen lesen ist eine kleine Seitengr e angebracht Jedes Element wird nur einmal aus der Quelle gelesen anschlie end befindet es sich im Swap und wird von dort aus gelesen nderungen an den Daten bedeuten immer das komplette Lesen und Swappen aller Daten der Quelle 12 3 Fazit Da das Hauptaugenmerk der Projektgruppe nicht beim Cache liegt und der Cache nur die Benutzung WEKAs mit gro en Datenmen gen erm glichen sollte sind die verwendeten Paging und Swapping Algorithmen sicherlich eher als rudiment r anzusehen Gerade das komplette Lesen einer Seite ist nicht immer ideal genauso kann es ungeschickt sein beim Hinzuf gen von Elementen immer alle Daten zu lesen Gr e einer einzelnen Seite im Cache Lokales Zwischenspeichern der Daten Art und Weise in der die Daten nachgeladen werden 98 12 3
238. h sollen vorhandene Programme die WEKA nutzen auch weiterhin ohne An passungen funktionieren Au erdem sollen innerhalb WEKAs so we nig Anpassungen wie m glich n tig sein Die Architektur ist daher haupts chlich durch die aktuelle WEKA Architektur gegeben An dieser Stelle wird kurz die aktuelle WEKA Architektur vorge stellt Anschlie end wird darauf eingegangen wie die Erweiterungen in diese Architektur integriert werden 11 1 1 WEKA Architektur WEKA stellt nicht nur Data Mining Algorithmen zur Verf gung son dern auch ein Framework zur Verwaltung von Instanzen inklusive Funktionalit ten zum Modifizieren der Attribute und der Reihenfol ge der Daten Ein zentrales Element stellt dabei die Klasse Instances 87 11 Entwurf dar die die Verwaltung der Instanzen bernimmt Diese Klasse be nutzt sogenannte Loader um die Daten aus einer Datenquelle i d R ARFF Dateien zu laden Wie bereits erw hnt werden alle Daten im Hauptspeicher gehalten Die Instances Klasse verwaltet dabei die Meta Informationen ber die Attribute der Instanzen Eine Instanz gekapselt in der Klassen Instance hat selber keine Informationen dar ber welche Attribute sie besitzt Die Instances Klasse weist je dem Attribut einen Index zu und speichert die Attributwerte in einer Instanz nur anhand dieses Indexes Um diesen Index anhand des At tributnamens zu bestimmen erh lt jedes Instance Objekt eine Refe renz auf das verwaltende Instances Objekt
239. hier die Session gel scht 20 3 Anwendungsfall Ein Benutzer der auf die Seite geleitet wird bekommt zun chst die Startseite zu sehen Auf dieser werden verschiedene Elemente darge stellt oben links wird die Datei header jsp eingef gt die das DIKO Logo in kleiner Form sowie das Wort Shop darstellt Darunter er scheint der Inhalt der Datei navigation jsp die das Formular zur Eingabe der Benutzerdaten in einem Kasten darstellt sofern der Be nutzer nicht schon angemeldet ist Im Content Bereich der Startseite erscheint der Inhalt der Datei content root jsp der das DIKO Logo in gro er Form und eine Tabelle mit allen Kategorien anzeigt die in der Datenbank vorhanden sind Meldet sich der Benutzer mit einer passenden Kombination aus Be nutzername und Passwort am System an so ndert sich lediglich 229 20 Shop der Inhalt des Kastens Anstelle des Formulars zur Eingabe von Be nutzernamen und Passwort erscheint nun eine Willkommensmeldung mit Vornamen und Nachnamen des angemeldeten Benutzers sowie ein Logout Button Der Benutzer hat die M glichkeit eine der Kategorien anzuw hlen oder seine demographischen Daten einzusehen Klickt der Benutzer beispielsweise auf die Kategorie Lebensmittel so ndert sich der In halt des Content Bereiches der Webseite Es wird daraufhin anstelle der Datei root jsp die Datei catalog jsp eingebunden die f r die Dar stellung von den der gew hlten Kategorie untergeordneten Katalogen und den
240. hischen Beziehungen und bei rekursiven Strukturen Verwendung findet wird als bezeichnet B ume sind un gerichtete zyklenfreie Graphen die einen Knoten besitzen von dem aus jeder andere Knoten des Graphen auf genau einem Weg zu erreichen ist Belegdaten Mit werden alle Ein und Ausg nge von Ware be zeichnet Dieses beinhaltet auch die Bondaten wobei es sich um ein zelne Verk ufe handelt Dabei werden s mtliche Positionen Filiale Kasse Zeitpunkt Warenwert etc genau aufgeschl sselt Benutzerdefinierte Zeit Bei der engl user defined time han delt es sich um eine Dom ne f r zeitliche Werte wie z B Integer f r Zahlenwerte F r temporale DBMS hat diese Dom ne keine spezielle Bedeutung Binning ist eine Methode um Werte in Gruppen sog bins Eimer einzuteilen Bitemporales Modell Beim bitemporalen Modell werden sowohl T Transaktions als auch G ltigkeitszeit gespeichert Bonit t Die beschreibt die relative Ertragskraft des Schuldners in der Zukunft Bootstrapping ist eine Technik mit der man aus einer kleinen T Stichprobe mit Hilfe von statistischen Methoden repr sentative Er gebnisse erzielen kann Dazu werden n verschiedene Mengen durch Ziehen mit Zur cklegen aus der T Stichprobe entnommen und das jeweilige Verfahren auf diesen zuf llig erzeugten Mengen angewendet Box and Whisker Plot bezeichnet die graphische Darstellung einer Variablenverteilung 328 Glossar Business Understandi
241. hmus SimpleKMeans Anzahl vorgegebener Cluster Tabelle 16 19 Einstellungen finale Clusterings ao n a RER Tabelle 16 20 Ergebnis finales Clustering 1 2 3 4 5 7 e Cluster 0 23 m nnliche erwachsene Kunden um 40 Jahre e Cluster 1 20 weibliche erwachsene Kunden um 40 Jahre e Cluster 2 25 m nnliche Fr hrentner oder ltere Kunden e Cluster 3 28 weibliche Fr hrentner oder ltere Kunden e Cluster 4 25 m nnliche Twens e Cluster 5 15 weibliche Twens e Cluster 6 24 m nnliche jugendliche Kunden e Cluster 7 23 weibliche jugendliche Kunden Die Verteilung der Kunden in die 8 Cluster entspricht der Verteilung die in den Kundendaten manuell ausgelesen werden kann Es sind die vier Geburtsjahresschwerpunkte 1944 1963 1977 und 1988 ge funden worden Zu jedem Schwerpunktjahr sind dabei sowohl m nn liche als auch weibliche Kunden identifiziert worden Die Ergebnisse 170 16 1 Clusteranalyse nach Kunden des finalen Clusterings sind daher als zufriedenstellend zu bezeich nen weshalb im Folgenden nach einer weiteren Attributkombination geclustert werden kann Clustering nach Geburtsdatum und PLZ Das Ziel dieser Clusteranaylse ist es gewesen Kundengruppen im Be zug auf ihr Geburtsdatum und die Postleitzahl ihres Wohnortes zu identifizieren Die Parameter bergabe ist dabei so gestaltet worden dass das Attribut KundenID vom Clusteralgorithmus ignoriert wor den ist wobei es jedoch bei der Ergebnisaus
242. hmus wurde komplett inklusive der Unterst tzung des Fuzzy Match implementiert Zum Testen des Algorithmus wurden mit Hilfe einer Java Klasse tBasket LNWJ Testdaten erzeugt die entspre chende Muster enthalten Testl ufe des Algorithmus haben gezeigt dass er in der Lage ist diese Muster zu finden Insbesondere wer den die Ergebnisse des Algorithmus auch im Online Shop verwendet siehe Abschnitt 22 5 Wie in Kapitel 13 beschrieben w re die Un terst tzung anderer kalendarischer Muster eine Erweiterungsm glich keit f r den Algorithmus W hrend aktuell nur Muster der Form lt Jahr Monat Tag gt gefunden werden w re es denkbar auch Mu ster anderer Granularit t bzw Zusammensetzung zu suchen Die dritte Teilaufgabe bestand darin ein durch Metadaten steuerba res Framework zu entwickeln welches die f r das Personalisierungs konzept notwendigen Analysen in einem verteilten Szenario ausf hren kann Dabei ist wie in Kapitel 14 beschrieben eine Bibliothek ent standen die die genannten Anforderungen siehe Kapitel 10 und Ab schnitt 14 1 erf llt siehe Abschnitt 14 6 Das Framework leistet sogar mehr als gefordert Der Nachteil des Framework ist die Verwendung eines eigenen anstelle eines standardisierten Metadatenformats Es wurde ein eigenes For mat verwendet da die Einarbeitung in ein bestehendes Format wie etwa CWM Obj01 als zu zeitintensiv angesehen wurde Die An passung an einen Metadatenstandard w re sicherlich e
243. hreibung void updateKundenATT Die Methode aktualisiert die tze Werte von Datens tzen in den Tabellen Kunden Adresse und KStringAttribut bez glich Tele fon und Telefax der Kartenanbieterdatenbank falls diese seit dem letzten Import in der Quelldatenbank gesetzt wurden void updateKundenEMN Die Methode aktualisiert die tze Werte von Datens tzen in den Tabellen Kunden_Name und KStringAttribut bez glich Email der Kartenanbieterdatenbank falls diese seit dem letzten Im port in der Quelldatenbank gesetzt wurden void updateNumber Attribut Die Methode aktualisiert die tze Werte von Datens tzen in Card provider NumberAttribut falls diese seit dem letzten Import in der Quelldatenbank gesetzt wurden void update Text Attribut Die Methode aktualisiert die tze Werte von Datens tzen in der Kartenanbieterdatenbank falls diese seit dem letzten Import in der Quelldatenbank gesetzt wurden void updateStringAttribut Die Methode aktualisiert die tze Werte von Datens tzen in der Kartenanbieterdatenbank falls diese seit dem letzten Import in der Quelldatenbank gesetzt wurden void updateProdukt Die Methode aktualisiert die tze Werte von Datens tzen in der Kartenanbieterdatenbank falls diese seit dem letzten Import in der Quelldatenbank gesetzt wurden void updateProduktPrioritaet Die Methode aktualisiert die tze Werte von Datens tzen in der Kartenanbieterdatenbank falls diese seit dem letzt
244. hren 15 2 1 Clustering nach Kunden in Verbindung mit ei ner Assoziationsanalyse 15 2 2 Clustering nach Kunden und gekauften Pro dukten in Verbindung mit einer Assoziations analyse aa a a a ana 15 3 Weitere M glichkeiten des Clusteralgorithmus 107 107 108 110 110 111 111 111 111 113 114 118 118 119 119 120 121 122 125 126 126 129 130 Inhaltsverzeichnis 15 3 1 Clustering nach Produktpreis oder nach Pro duktkategorie in Verbindung mit dem Preis 145 15 3 2 Clustering nach Produktpreis oder nach Pro duktkategorie in Verbindung mit dem Preis wie derum in Verbindung mit Clustering nach Kun den und gekauften Produkten 146 15 3 3 Zweifaches Clustering nach Kunden 147 16 Anwendung Nicht temporale Analysen 151 16 1 Clusteranalyse nach Kunden 2 2 2 2 22 152 16 1 1 Einleitung 2 2 eana nenne 152 16 1 2 Kennenlernen von WEKA 152 16 1 3 Clustering auf den urspr nglichen Testdaten 156 16 1 4 Anlegen und Erweitern von synthetischen Test daten 2 sr ar Er E EA 157 16 1 5 Clustering der synthetischen Testdaten 160 16 1 6 Clusterings auf der H ndler 1 Datenbank 179 16 1 7 Anwendung im Online Shop 182 16 1 8 Technisches Handbuch 2 2 2 2 182 16 2 Clusteranalyse nach Kunden und gekauften Produkten 183 16 2 1 Aufgabenstellung und Zielsetzung 183 16 2 2 Auswahl der Daten und Vorver
245. hrt werden kann Die in WEKA implementierte nicht temporale Assoziationsanalyse ist inkompatibel zu der verwendeten Datenstruktur weil die betrach teten Transaktionen f r diesen Algorithmus eine einheitliche Tupel gr e besitzen m ssen Um dieses Problem zu l sen w re eine um fangreiche Vorverarbeitung notwendig 15 2 Kombinierte Analyseverfahren In diesem Abschnitt werden Analysen beschrieben die die Ergebnisse von vorherigen Clusteranalysen als Grundlage f r eine Assoziations analyse verwenden 15 2 1 Clustering nach Kunden in Verbindung mit einer Assoziationsanalyse Durch das Clustering nach Kunden werden die Kunden aufgrund de mographischer Merkmale PLZ Geschlecht Geburtsdatum in Grup pen aufgeteilt siehe Abschnitt 15 1 1 Im Anschluss kann die unter Abschnitt 15 1 3 beschriebene Assoziationsanalyse durchgef hrt wer den mit dem Unterschied dass die Analyse auf die Transaktions daten der Kunden eines Clusters beschr nkt wird anstatt wie bei der einfachen Assoziationsanalyse auf die Daten aller Kunden siehe Abbildung 15 1 Ausgangsdaten Die Ausgangsdaten sind Ergebnisse des Clustering nach Kunden und stellen somit spezifische Kundengruppen dar wie z B Kunden aus der Region Ammerland Analyseverfahren Assoziationsanalyse Apriori Interpretation Die Ergebnisse dieses kombinierten Anaylseverfah rens entsprechen den Ergebnissen der Assoziationsanalyse siehe Ab 143 15 Konzept Nicht temporal
246. ht begonnen werden wenn weniger als acht Studierende an ihr teilnehmen 1 4 Projektgruppenantrag Die nachfolgende bersicht fa t den im Fachbereich gestellten An trag des Veranstalters auf Durchf hrung der Projektgruppe in seinen formalen Angaben und der Aufgabenstellung zusammen 1 4 1 Formalia Im Folgenden werden allgemeine Angaben ber die Projektgruppe gegeben 1 4 Projektgruppenantrag Veranstalter Prof Dr H J Appelrath Informatik Assistent Ralf Krause Dipl Informatiker Heiko Tapken Zeitraum WS 02 03 und SS 03 Umfang Bei der Planung ist eine Basierung der Absch tzung auf der Grundla ge von Personen Tagen blich Ein Personen Tag umfasst acht Stun den F r die Projektgruppe sind folgende Aufw nde zu verplanen ein Jahr zwei Wochen Urlaub vier Wochen Seminar e Fachbereich 10 Informatik 7 Personen 20 Stunden 46 Wo chen 6 440 Personen Stunden e Fachbereich 4 Wirtschaftswissenschaften 5 Personen 15 Stun den 46 Wochen 3 450 Personen Stunden e Insgesamt 9 890 Personen Stunden 8 Stunden d h 1 236 Per sonen Tage Lehrveranstaltungs quivalent 1 Seminar 1 Fortgeschrittenenpraktikum 1 Studienarbeit Inanspruchnahme von Fachbereichsressourcen Der Rechner und Softwarebedarf wird durch Ressourcen der veran staltenden Abteilung befriedigt Ein Raum f r Sitzungen steht im OFFIS Geb ude zur Verf gung Teilnahmevoraussetzungen Abgeschlossenes Grundstudium mit erfolgrei
247. i he von optionalen Parametern wie z B die Anzahl der zu findenden Cluster usw Weiterhin ist es m glich bestimmte Attribute der Fingabedaten vor den Clusterern zu verstecken so dass diese nicht ber cksichtigt werden In der Ergebnisdarstellung werden diese Attribute jedoch wieder ber cksichtigt Auf diese Weise ist es z B m glich Datens tze anhand einer ID zu identifizieren ohne dass diese das Analyseergebnis beeinflusst Alle Clusterer produzieren Ergebnisse der gleichen Struktur Diese ergibt sich aus der Struktur der Eingabedaten erweitert um ein nume risches Attribut welches die Cluster ID eines Datensatzes darstellt Temporale Assoziationsanalyse Neben den Clusteralgorithmen bie tet das Framework einen Algorithmus zum Finden von temporalen Assoziationsregeln der von der Projektgruppe selbst implementiert wurde siehe Kapitel 13 Dieser ben tigt als Eingabedaten eine Rela tion von temporalen Instanzen die zwei Attribute besitzen Das erste Attribut spezifiziert die Kundennummer des K ufers das zweite At tribut die Nummer des gekauften Produktes Die Transaktionszeit der temporalen Instanz stellt den Kaufzeitpunkt dar Dieser Algorithmus erzeugt eine Ergebnisrelation mit sechs Attribu ten Die ersten drei Attribute stellen die Kalendermuster dar f r die eine Regel gilt Das n chste Attribut bestimmt den Support einer Regel Das vorletzte Attribut ist eine fortlaufende Nummer mit der die Regel identifiziert we
248. i allen anderen Anfragen wird die Auswahl auf die Daten des Onli neh ndlers Attribut H ndlerID 1 beschr nkt Als n chster Schritt werden die Kundennummern Attribut KundenID aller Kunden des Onlineh ndlers aus der Tabelle Kunden ausgelesen F r jeden Kun den werden nacheinander zuerst die get tigten Transaktionen aus der Tabelle Transaktion ausgelesen um anschlie end die mit den Trans aktionen verbundenen Eintr ge in der View gana zu ermitteln Da 185 16 Anwendung Nicht temporale Analysen bei wird bei jedem gefundenen Eintrag der Z hler der entsprechen den Warengruppe gana warengruppeid um die jeweilige Anzahl ga na anzahl erh ht F r jeden Kunden wird abschlieBend ein Eintrag in die Tabelle ClusteringKngP der Kartenanbieterdatenbank mit dem prozentualen Werten f r die zur Zeit sieben Warengruppen Attribu te WG1 bis WG7 vorgenommen Der hier beschriebene Prozess ist in dem Java Paket diko personalisierung personalisierung realisiert wor den Vor einer Analyse ist die Klasse Personalisierung auszuf hren um die aktuellen Daten in die Tabelle ClusteringKngP zu transfe rieren Bei Erweiterung der Warengruppenhierarchie sind diese auch in den entsprechenden Klassen des Paketes durchzuf hren Weiter hin werden die Join Operation durch Indizes auf den Prim r bzw Fremdschl sseln der verwendeten Tabellen unterst tzt Auch diese sind bei stark gewachsener Datenmenge auf einen aktuellen Stand zu setzen Notwendig
249. ickelt worden ist und das Kern Element der Projektgruppenarbeit darstellt zu visualisieren Hierbei ist vor allem darauf geachtet wor den dass die Funktionalit t und nicht das optische Design im Vor dergrund steht So sind nur die notwendigsten Funktionalit ten wie eine Katalog ber sicht eine Produktdetailseite ein Warenkorb und ein rudiment res User Management implementiert worden Im Rahmen der Projekt gruppe erscheinen diese Einschr nkungen sinnvoll im Rahmen ei nes Online Shops k nnten noch viele Features wie z B Produktbilder oder eine komplexere Benutzerf hrung umgesetzt werden Die Darstellung der f nf meistgekauften Produkte der Kunden eines Clusters ist in der vorliegenden Implementierung ausgelegt die Er gebnisse der Personalisierungsanalysen direkt zu visualisieren Denk bar w re hier auf Basis der Informationen ber den angemeldeten Kunden und die jeweiligen f nf meistverkauften Produkte der beiden Cluster zu denen ein Kunde zugeordnet worden ist eine einzelne Pro duktempfehlungsliste umzusetzen die nicht einfach nur alle gefun denen Produkte untereinander darstellt sondern diese miteinander vergleicht und nur eine Liste mit allen voneinander unterschiedlichen Produkten darstellt 246 Teil VI Anhang 247 Integration Die im Folgenden dargestellten Tabellen dienten als Grundlage f r die Arbeit der Integration Sie beinhalten alle Attribute und deren Wer tebereiche der beiden H ndlerdatenbanke
250. ie Daten aus der Datenquelle zu lesen instantiiert der Algorithm Runner einen passenden ConfigurableSourcelterator Dieser wird eben so wie der AlgorithmRunner ber Parameter der gleichen Art konfi guriert Das Auslesen aus der Datenquelle erfolgt dann inkrementell ber die Methoden hasNert und nezt 110 14 3 Implementierung 14 2 3 Steuerung des Algorithmus Basierend auf den Parametern entscheidet der AlgorithmRunner wel che Implementation des Interface AlgorithmController instantiiert und verwendet wird Der jeweilige Algorithm Controller bekommt dann vom AlgorithmRunner die Guelldaten bergeben und startet den an zuwendenden Algorithmus 14 2 4 Speichern der Analysedaten Zum Speichern der Analysedaten instantiiert der AlgorithmRunner eine Implementation des Interface Result Writer und bergibt dieser die vom Algorithmus erzeugten Analysedaten Der Result Writer spei chert diese dann in der jeweiligen Datensenke Auch hier werden die Parameter durch den AlgorithmRunner weitergereicht 14 3 Implementierung Das Framework wurde in Java mit dem Sun SDK in der Version 1 4 entwickelt Um die leichte Erweiterbarkeit zu garantieren wurden zun chst eine Reihe von Interfaces erstellt die das Grundger st des Frameworks darstellen Diese werden in Abschnitt 14 3 1 beschrieben F r eine sinnvolle Fehlerbehandlung wurden spezielle Exceptions er stellt die in Abschnitt 14 3 2 beschrieben werden F r die Interfa ces stehen e
251. ie Rolle eines Kartenanbieters Um ein System entwickeln zu k nnen dass von einem Kartenanbie ter angeboten werden kann ist es notwendig sowohl die Seite des Kartenanbieters als auch die Rolle des H ndlers zu betrachten e H ndler Ein H ndler partizipiert in der zu betrachtenden Architektur in zweierlei Formen von Handelsbeziehungen Er handelt einer seits mit Kunden durch den Verkauf von G tern Andererseits verkauft er dem Kartenanbieter Informationen und kauft Ana lyseergebnisse von diesem Er sammelt und speichert alle Daten Verkaufsdaten Interessenten Web logs etc die mit seinem Gesch ft zu tun haben Einen kleinen Teil dieser Daten die Daten die mit der angebotenen Karte zu tun haben i d R die Informationen des Kassenbons bermittelt er an den Kar tenanbieter Ihm stehen jedoch weit mehr Informationen zur Verf gung die er zur Individualisierung seines Angebotes nut zen k nnte Hierbei k nnte er z T auf die vom Kartenanbieter gelieferten Analyseergebnisse zur ckgreifen Kennt er die Pr fe renzen seines Kunden als Individuum Tante Emma Laden Metapher so kann er z B in einem elektronischem Shopsystem eine personalisierte Pr sentation seiner Waren durchf hren Kartenanbieter Der Kartenanbieter geht Handelsszenarien mit H ndlern und Endkunden ein Um an die Daten zu kommen die f r die Iden tifikation von Kundengruppen ben tigt werden bezahlen die Kartenanbieter die Kunden in Form von Pr m
252. iefert werden kann Der R ckgabewert h ngt nicht da von ab ob noch ein Element aus der Datenquelle geholt werden kann sondern ob ein weiteres Element nach dem letzten gelie ferten Element existiert e Instance nert Liefert das n chste Element zur ck wenn es existiert Wirft ansonsten eine Exception e int size Liefert die Gr e des Caches zur ck 91 11 Entwurf 11 2 5 Instances Die API dieser Klasse bleibt bis auf zwei zus tzliche Funktionen un ver ndert Dadurch ist sichergestellt dass die vorhandenen Algorith men und Programme auch weiterhin problemlos funktionieren aber die Vorteile der Neuimplementierung nutzen k nnen Zus tzlich im plementiert wurden die Funktionen e boolean hasNert Liefert zur ck ob ein weiteres Element zur ck geliefert werden kann Hier gilt dasselbe wie bei InstanceCa che hasNezt e Instance nert Liefert die n chste Instanz zur ck wenn diese existiert Wirft ansonsten eine Exception F r zuk nftige Algo rithmen wird diese Funktion empfohlen da der Overhead eines Random Access Zugriffs entf llt 11 2 6 TemporalAssociationRules Diese Klasse implementiert den Algorithmus zum Auffinden kalenda rischer Muster Er wird mittels folgender Funktionen gesteuert e TemporalAssociationRules Date min Date mar float minsupp Konstruktor der Klasse Die Parameter haben die folgende Be deutung min Gibt ein Datum an ab welchem der Algorithmus Da tens tze zur Ana
253. ien Punktesyste me Pr mien 0 An die Daten von Kunden kommen die Kar tenanbieter durch die H ndler die ein Entgelt z B in Form von Analyseergebnissen f r das Processing Bearbeiten der Daten 11 1 Rahmenbedingungen erhalten Der Kartenanbieter sammelt integriert bereinigt und speichert die Daten dauerhaft Anhand dieser aufbereiteten Da ten ist der Kartenanbieter in der Lage Analysen verschiedener Art durchzuf hren Hierzu z hlen die Warenkorbanalyse die Kundengruppierung die Konzeptbeschreibung sowie die Herlei tung von Regeln Ein fiktives Beispiel f r eine solche Regel ist Ein junger Vater Ende 20 der in einem Supermarkt Pampers kauft kauft mit einer Wahrscheinlichkeit von x auch einen Ger Tr ger Bier Die Ergebnisse dieser Analysen kann er H nd lern zum Kauf anbieten Die an diesem Handel teilnehmenden Personen k nnen andere sein als die von denen die Daten ge sammelt und ausgewertet wurden Zielsetzung Die Aufgaben der Projektgruppe gliedern sich in zwei Aufgabenge biete 1 Herleitung personalisierter Daten e Kundensegmentierung Wie k nnen aggregierte Kunden daten mehrerer H ndler genutzt werden um Kunden in Gruppen einzuteilen Kartenanbieter e Individualisierung Wie k nnen aus den Daten individuel le interessante Angebote f r den Kunden erstellt werden H ndler 2 Internetbasierte individualisierte Pr sentation von Daten e Wie k nnen H ndler individuelle Angebot
254. ig ist wird zur Zuordnung der ein zelnen Kunden zu den entdeckten Kundengruppen verwendet Meldet sich ein Kunde nun mit seiner ID in den Online Shop ein so werden ihm Produkte angeboten die die Kunden des gleichen Clusters vorher im Online Shop gekauft haben Die Zuordnung des jeweiligen Kunden zu einem Cluster kann aus der Relation CLUSTKUNDENGEBGES bzw CLUSTKUNDENGEBPLZ bestimmt werden Die Produkte der jeweiligen Cluster k nnen anschlie end aus der Relation PRODUK TEGEBGES bzw PRODUKTEGEBPLZ gewonnen werden Um den Personalisierungsaspekt dabei noch zu verst rken ist der Online Shop auf eine Anzeige der TOP5 Produkte beschr nkt Der ange meldete Kunde wird also einem Cluster zugeordnet wobei ihm die f nf Produkte angeboten werden die Kunden des gleichen Clusters bisher am h ufigsten gekauft haben So ist es zum Beispiel denk bar dass Twens aus Oldenburg an erster Stelle der TOP5 Angebote Inliner angeboten werden weil viele von ihnen an den Oldenburger Inliner N chten teilnehmen An zweiter Stelle der TOP5 k nnten zum Beispiel Pullover mit dem Aufdruck Oldenburg angeboten werden die im letzten Sommer als Trend in dieser Zielgruppe gegolten ha ben Auf diese Weise werden den Kunden des Online Shops f r seine Kundengruppe und daher auch f r den Kunden selbst personalisierte Angebote unterbreitet 16 1 8 Technisches Handbuch Bei dieser Analyse der Kunden nach den Attributen Geburtsdatum und Geschlecht wird der AnalysisR
255. ikati on 2003 URL http diko project de dokumente ausarbeitungen pretzer ps gz HELGE SAATHOFF Assoziationsanalyse und Konzeptbe schreibung Seiten 163 196 2003 SLEEPYCAT SOFTWARE Berkeley DB 2003 URL http sleepycat com IAn H WITTEN und EIBE FRANK Data Mining Practical Machine Learning Tools and Techniques with Java Imple mentations Morgan Kaufmann 2001 ISBN 1 55860 552 5 OLIVER WIEN Temporale Aspekte des Data Mining 2003 URL http www diko project de dokumente ausarbeitungen wien pdf Index AlgorithmController 112 AlgorithmRunner 119 Analyse Abnahmekriterien 84 Anforderungsdefinition 79 Ausblick 242 Ausganssituation 79 Benutzerschnittstelle 83 Cache 95 Entwurf 87 Fehlerverhalten 84 Funktionale Anforderungen 80 Nichtfunktionale Anforde rungen 83 Zielsetzung 79 ARFF Datei 88 114 115 120 121 Assoziationsanalyse 141 Assoziationsregel 20 101 229 Ausblick 241 Analyse 242 Gesamtszenario 241 Integration 242 Online Shop 244 Personalisierungskonzept 243 Basket 90 93 105 Beobachtungsintervall 101 Cache 82 89 95 Block 98 InstanceCache 95 Klassendesign 95 Seite 98 Swap 98 Calendarlnstance 91 Clustering 20 nach Kunden und gekauf ten Produkten 182 Shop 181 Technisches Handbuch 181 temporales 197 206 ClusteringInstance 91 Cobweb Parameter 124 ConfigurableSourcelterator 112 cutOffFactor 192 Data Mining 20 temporal 79 Data
256. in der gew hlten Kategorie enthaltenen Produkten zust ndig ist Hier kann der Benutzer dann entweder einen untergeordneten Ka talog oder ein Produkt ausw hlen W hlt der Benutzer beispielsweise das Produkt mit der Bezeichnung Produkt 7669 so wird die Produkt detailseite angezeigt die von der Datei product jsp erzeugt wird Hier werden der Name des Produktes eine n here Beschreibung sowie der Verf gbarkeitsstatus die Versandkosten und der Preis des Produktes dargestellt Darunter erscheint ein Button mit der Aufschrift In den Warenkorb der das Produkt in den Warenkorb des angemeldeten Benutzers einf gt Nach Bet tigung des Buttons erscheint der Warenkorb des Benut zers in dem sich das soeben hinzugef gte Produkt bereits befindet Der angemeldete Nutzer kann hier noch die Anzahl des zu kaufenden Produktes angeben Nach Eingabe der Anzahl und Bet tigung des Buttons mit der Aufschrift Aktualisieren werden die Gesamtkosten die unter den Produkten aufgef hrt sind neu berechnet Der ange meldete Benutzer hat anschlie end die M glichkeit ber den Link zur Startseite weiter im Katalog zu navigieren und weitere Produkte in den Warenkorb aufzunehmen Auf eine Implementation der restlichen Schritte zum Kauf der im Wa renkorb befindlichen Daten wurde verzichtet da diese f r den Zweck des Online Shops der die Personalisierungsergebnisse der Personali sierungsbibliothek visualisieren soll nicht notwendig sind 20 4 Personalisie
257. ine Reihe von Implementierungen zur Verf gung die die notwendige Funktionalit t f r Standard Datenguellen und senken wie z B ber JDBC erreichbare Datenbanken bereitstellen Die vor handenen Implementierungen werden in Abschnitt 14 3 3 beschrie ben Eine Anleitung wie selbst entwickelte Implementierungen mit dem Framework benutzt werden k nnen um z B eine Anbindung an XML Datenbanken zu erstellen findet sich in Abschnitt 14 3 4 14 3 1 Interfaces Das Grundger st des Frameworks basiert auf einer Reihe von Inter faces die die Aufgaben der einzelnen Framework Bausteine definie ren Durch die konsequente Verwendung dieser Interfaces wird die leichte Erweiterbarkeit des Frameworks sichergestellt da zur Lauf zeit konfigurierbar ist welche konkreten Klassen verwendet werden Das Framework enth lt die folgenden Interfaces 111 14 Technisches Handbuch Framework OptionHandler Das Interface OptionHandler ist das Grundger st f r das Verarbeiten von Optionen Als solches wird es von allen im Folgenden beschriebenen Interfaces erweitert ConfigurableSourcelterator Der ConfigurableSourcelterator ist das Interface das zur Einbindung der Datenquellen verwendet wird Es erbt sowohl vom OptionHandler als auch von Sourceltera tor ein Interface aus der von der Projektgruppe modifizierten Version von WEKA siehe Kapitel 11 MetaDataProvider Das Interface MetaDataProvider kann ein Con figurableSourcelterator implementieren so
258. ine sinnvolle Erweiterung 22 4 Personalisierungskonzept Aufgabe des Personalisierungskonzeptes war die Entwicklung von Kon zepten zur Personalisierung eines Online Shops Insbesondere sollten die Ergebnisse dieser Gruppe im Online Shop der Projektgruppe als Grundlage der Personalisierung dienen Im Rahmen des Personalisierungskonzeptes wurden diverse theore tische Verfahren zu Analyse von Kunden sowie Transaktionsdaten 245 22 Zusammenfassung und Ausblick zum Teil auch in Kombination miteinander entwickelt siehe Kapitel 15 und Kapitel 17 Einige dieser Ideen wurden auf Basis der Test daten des Kartenanbieters bzw des Online Shops praktisch erprobt siehe Kapitel 16 und Abschnitt 18 Im Online Shop wurden letztlich aus zeitlichen Gr nden nur rela tiv einfache Analysen durchgef hrt Zum einen wurden zwei Top5 Listen anhand des demographischen Clusterings erstellt Zum ande ren werden ebenfalls die Ergebnisse des kalendarischen Algorithmus im Online Shop pr sentiert Aufgrund mangelnder Zeit konnten am Ende leider nicht mehr die kombinierten Analyseverfahren umgesetzt werden Sicherlich w re es interessant gewesen die Ergebnisse im Online Shop direkt vergleichen zu k nnen und so zu verifizieren ob die eher theoretischen Vor ber legungen in der Realit t gelten 22 5 Online Shop Der Online Shop ist implementiert worden um die Ergebnisse der Personalisierungsbibliothek die im Rahmen der Projektgruppe ent w
259. inie daraus dass der Schwerpunkt der Projektarbeit auf den temporalen Analysen liegt Aus der Reihe der einfachen Analysen wurde die Clustering nach Kunden umgesetzt die in Abschnitt 16 1 detailliert beschrieben wur de Das Clustering nach Kunden und gekauften Produkten ist nicht zur Anwendung gekommen da die Ergebnisse dieses Clusterings im Rahmen der Projektarbeit im Online Shop aufgrund der mangeln den Qualit t der Testdaten nicht umgesetzt werden siehe Abschnitt 16 2 Somit k nnen die erzeugten Cluster dieser Analyse nicht als Ba sis f r weitere Analysen oder f r eine Assoziationsanalyse verwendet werden Des Weiteren wurde auf Anraten der Projektgruppenleiter die Verwendung der Assoziationsanalyse verworfen da die Implemen tierung einer geeigneten zus tzlichen Datenvorverarbeitung ber den Rahmen der Projektgruppe hinaus ginge siehe Abschnitt 15 1 3 Von den kombinierten Verfahren wurden keine Analysen umgesetzt da die grundlegenden Analysen nicht realisiert wurden auf welche die kombinierten Analysen aufbauen Die nicht temporale Assoziations analyse wurde z B im Online Shop nicht umgesetzt so dass ebenfalls das Clustering nach Kunden i V m einer Assoziationsanalyse nicht angewendet wurde Aus dem selben Grund wird das Clustering nach Kunden und gekauften Produkten i V m einer Assoziationsanalyse nicht angewendet Weiterhin wurde das Clustering nach Produktpreis oder nach Pro duktkategorie i V m dem Preis aufgrund der S
260. ion WG6 Normal Distribution Mean 0 StdDev 2 Mean 50 StdDev 2 Mean 50 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 307 Personalisierung Attribute WG7 Normal Distribution Mean 0 StdDev 2 Cluster 2 Prior probability 0 2707 Attribute 3 1969 Attribute 3 1509 Attribute 3 1223 Attribute 3 4063 Attribute 2 8482 Attribute 3 2157 Attribute 2 8931 WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution Cluster 3 Prior probability 0 4036 Attribute 2 0097 Attribute Attribute Attribute 2 0159 Attribute 2 0688 Attribute Attribute WG1 Normal Distribution Mean 14 6153 StdDev Mean 12 8754 StdDev Mean 13 2653 StdDev Mean 14 3318 StdDev Mean 13 4042 StdDev Mean 13 9879 StdDev Mean 13 9435 StdDev Mean 14 5917 StdDev WG2 Normal Distribution Mean 12 9183 StdDev 2 WG3 Normal Distribution Mean 13 7976 StdDev 2 WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution Cluster 4 Prior probability 0 3227 Attribute Attribute Attribute Attribute Att
261. ior probability 0 001 WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution 13 1322 StdDev 11 9132 StdDev 15 0775 StdDev Mean 0 StdDev 0 001 Mean 50 StdDev 0 001 Mean 50 StdDev 0 001 Mean 0 StdDev 0 001 Mean 0 StdDev 0 001 Mean 0 StdDev 0 001 Mean 0 StdDev 0 001 Personalisierung Cluster 6 Prior probability 0 1166 Attribute WG1 Normal Distribution Mean 13 4269 StdDev 2 3363 Attribute WG2 Normal Distribution Mean 12 9301 StdDev 2 3039 Attribute WG3 Normal Distribution Mean 13 0952 StdDev 2 6215 Attribute WG4 Normal Distribution Mean 12 876 StdDev 1 6419 Attribute WG5 Normal Distribution Mean 15 0636 StdDev 2 4424 Attribute WG6 Normal Distribution Mean 15 0745 StdDev 3 0944 Attribute WG7 Normal Distribution Mean 13 8837 StdDev 2 2132 Cluster 7 Prior probability 0 001 Attribute WG1 Normal Distribution Mean 0 StdDev 0 001 Attribute WG2 Normal Distribution Mean 8 StdDev 0 001 Attribute WG3 Normal Distribution Mean 8 StdDev 0 001 Attribute WG4 Normal Distribution Mean 0 StdDev 0 001 Attribute WG5 Normal Distribution Mean 0 StdDev 0 001 Attribute WG6 Normal Distribution Mean 41 StdDev 0 001 Attribute WG7 Normal Distribution Mean 41 StdDev 0 001 Cluster 8 Prior probability 0
262. is zu verhandeln kann hingewiesen werden soweit es der all gemeinen Verkehrsauffassung entspricht und Rechtsvorschriften nicht entgegenstehen 342 Glossar Preprocessing T Datenvorverarbeitung Prim rdaten Im Forschungsumfeld sind unter solche Daten zu verstehen die direkt bei den Untersuchungen entstanden sind und noch in keiner Weise ver ndert wurden Proxy Server ist ein Rechner der Anfragen von anderen Rech nern entgegen nimmt und an das Ziel weiterleitet Ein Proxy wird oft in Firmen eingesetzt um als Firewall zu dienen Zus tzlich kann ein auch Seiten aus dem WWW zwischenspeichern und somit als T Cache fungieren Pruning Strategien Im Fall von komplexen und tiefgeschachtel ten Entscheidungsb umen bei der die T Klassifikation ungesehener Objekte h ufig ungeeignet ist verwenden mehrere T Entscheidungs baumverfahren Ein in einem ersten Schritt konstruierter eventu ell tiefver stelter T Baum wird dabei durch das Herausschneiden von Unterb umen reduziert die nur einen geringen Beitrag zur Klassifi kation leisten Neben dem hier beschriebenen Postpruning wird auch das Prepruning angewandt bei dem Unterb ume die voraussichtlich wenig Beitrag zur Klassifikation leisten k nnen bei der Konstruk tion des Gesamtbaumes berereits nicht mit einbezogen werden Pull ist das selbst bestimmte Heraussuchen von Informationen aus dem Web Push ist das ungefragte Erhalten von vorselektierten Daten aus de
263. isch inkorrekte Daten entstehen werden zur Laufzeit des Algorithmus ignoriert Am Ende k nnen die aufgetreten Fehler ber eine Schnittstelle abgefragt und somit vom Benutzer behandelt werden Dies soll bewirken dass bei gro en Datenmengen der Algo rithmus nicht wegen m glicherweise unbedeutender Fehler abbricht In Zukunft ist es denkbar die Fehlerbehandlung ebenfalls konfigu rierbar zu machen 10 7 Dokumentationsanforderungen Die Dokumentation des Programms umfasst folgende Punkte e Anforderungsdefinition e Entwurf e Dokumentierter Sourcecode e Technisches Handbuch Die Dokumentation soll in elektronischer Form erfolgen Anforde rungsdefinition und Entwurf werden in IATFX verfasst der Quellcode wird mit Javadoc kommentiert Dadurch l sst sich aus den Kommen taren leicht eine API Dokumentation in Form von HTML erstellen 10 8 Abnahmekriterien Bei der Abnahme sollten die oben definierten Anforderungen erf llt sein Die Algorithmen werden ber zwei Anwendungsszenarien veri fiziert Zur Verifizierung des Clustering Algorithmus sollen die beim Kar tenanbieter gespeicherten Kunden anhand der eingekauften Produkte geclustert werden Die entstandenen Cluster k nnten dann beispiels weise in einem Online Shop zur Realisierung eines Recommender Systems herangezogen werden Ein solches System kann anhand der 84 10 8 Abnahmekriterien Clusterzugeh rigkeit einem Kunden alternative Produkte vorschla gen Der Algorithmus zum
264. itel 2 an dessen Glie derung sich auch dieses Dokument orientiert So werden zuerst die funktionalen Anforderungen vgl Abschnitt 2 2 unterteilt in die Be reiche Integration Abschnitt 21 2 Analyse Abschnitt 21 3 und Shop Abschnitt 21 4 betrachtet anschlie end die nichtfunktiona len Anforderungen siehe Abschnitt 21 5 vgl Abschnitt 2 3 sowie die Benutzerschnittstellen und Fehlerverhalten siehe Abschnitt 21 6 vgl Abschnitt 2 4 und die Dokumentationsanforderungen siehe Ab schnitt 21 7 vgl Abschnitt 2 5 Abschlie end werden die Ergebnisse in dem Abschnitt 21 8 anhand der Abbildung 21 1 zusammenfassend beschrieben Den Abschluss bildet die Meilensteinplanung die alle von der Pro jektgruppe vereinbarten Hauptaufgaben und ihre Fertigstellungster mine auff hrt Dabei wird jede Aufgabe kurz erl utert ein Vergleich zum Meilensteinplan des Zwischenberichts hergestellt und im Fazit die Einhaltung bzw Nicht Einhaltung betrachtet 233 21 Soll Ist Vergleich vom Gesamtprojekt 21 2 Integration Die Integration unterst tzt wie gefordert den Datenimport der bei den H ndlerdatenbanken in die Kartenanbieterdatenbank Weiterhin sind jeweils Methoden zum initialen Datenimport f r beide H nd lerdatenbanken entwickelt worden Das Preprocessing im Bereich der Integration umfa t die Beseitigung ung ltiger Eintr ge in den Trans aktionsdaten Offline Handler und die Auszeichnung aller Daten mit der jeweiligen Quelle Haend
265. ith musses aus Dieses geschieht in mehreren Schritten Der Aufruf der Klasse erfolgt mit den Parametern Mindest Support Wert Start und Enddatum sowie dem Fuzzy Support Wert Falls der Fuzzy Support Wert nicht angegeben wird wird er auf 1 gesetzt Des Weiteren wer den die bergebenen Werte auf ihre Plausibilit t gepr ft Liegen die Werte f r den Mindest Support oder den Fuzzy Support nicht zwi 103 Handbuch Algorithmus zum Auffinden kalendarischer Muster schen 0 und 1 wird eine InvalidSupportEzxception geworfen und der Algorithmus beendet Wird ein sp teres Start als Enddatum angegeben f hrt der Algorith mus die Berechnungen auf allen Instanzen durch die ihm bergeben werden Der Konstruktor f hrt noch keine Berechnungen durch Diese werden durch buildAssociations gestartet wobei noch die zu untersuchenden Instanzen bergeben werden buildAssociations stellt zun chst fest welchen Start und Endindices das Beobachtungsintervall innerhalb der bergebenen Instanzen hat Danach wird das dreidimensionale Array zur Speicherung der Assoziationsregeln angelegt Es hat die Form lt Jahr Monat Tag gt und die Gr e bestimmt sich bei den Jahren aus der Differenz zwischen dem kleinsten und dem gr ssten Jahr zuz glich einem Eintrag f r die Wildcard Muster Bei Monat und Tag werden aufgrund der einfacheren Abfragen einfach jeweils 13 bzw 32 Felder angelegt S mtliche Felder werden jeweils mit einem leeren SetOfBaskets insta
266. k vorhandene Datens tze werden mittels sogenannter upda te Methoden aktualisiert falls sich die Datens tze in der Quelldaten bank ndern sollten Oberklassen keine Unterklassen keine Attribute 52 10 5 3 Klassenbeschreibung DBConnection sourceDB Datenbankverbindung zur Datenbank von H ndler 2 DBConnection sourceDB2 Datenbankverbindung zur Datenbank des Kartenanbieters nur f r lesende Zugriffe DBConnection targetDB Datenbankverbindung zur Datenbank des Kartenanbieters nur f r schreibende Zugriffe ResultSet rs Dieses Attribut enth lt das aktuelle Ergebnis einer Datenban kabfrage ResultSet rs2 Ein weiteres Attribut welches das aktuelle Ergebnis einer Da tenbankabfrage enthalten kann ResultSet rs3 Noch ein Attribut welches das aktuelle Ergebnis einer Daten bankabfrage enthalten kann Importiert die Daten in die Tabelle Warengruppe der Kartenanbieterdatenbank ResultSet rs4 Auch dieses Attribut kann aktuelle Ergebnisse von Datenban kabfragen enthalten Durch die Verwendung von mehreren Re sultSets kann auf die Ergebnisse mehrere Abfragen zugegriffen werden String currentTime In diesem Attribut wird der Zeitpunkt des Programmstarts ge speichert Timestamp lastUpdate Time In diesem Attribut wird der Wert des Attributs Aktualisie rungsdatum aus der Tabelle Haendler der Kartenanbieterdaten bank gespeichert String haendlerID Speichert die ID des H nd
267. ktgruppen sollen die Besonderheiten eines Fortgeschrittenen praktikums eines Seminars und einer Studienarbeit vereinen und zu gleich berufstypische Arbeitsweisen im Studium vermitteln Eine Pro jektgruppe besteht aus acht bis zw lf Studierenden die ein Jahr lang ein umfangreiches Problem bearbeiten Insgesamt wird diese Lehr veranstaltung mit 15 Semesterwochenstunden angesetzt Die The men f r Projektgruppen k nnen sowohl aus der Kern Informatik als auch aus ihren Anwendungsgebieten stammen Es ist m glich und auch sinnvoll dass sich an einer Projektgruppe Studierende ande rer Fachrichtungen oder externe Kooperationspartner beteiligen Eine Projektgruppe sollte i A durch eine Stammvorlesung und oder eine Spezialvorlesung vorbereitet werden In der Regel werden aus einer Projektgruppe mehrere Diplomarbeiten hervorgehen 1 2 Erl uterungen zum Zweck von Projektgruppen Zu vermittelnde berufstypische Arbeitsweisen sind e Arbeiten im Team insbesondere Pr zisierung und Definiti on von Schnittstellen Aufgabenverteilung Zust ndigkeiten und Verl lichkeiten in einer Gruppe e Umfassendere Betrachtungsweisen bei der Software Entwicklung Kennenlernen des gesamten Software Lebenszyklusses Verwen 1 Rahmenbedingungen dung unterschiedlicher Spezifikationssprachen Soll und Ist Ana lysen Kosten Nutzen Analysen Einsatz und Auswirkungspro blematik Standard und kundenspezifische Software e Einsatz von Werkzeugen Sich
268. kumentiert Die Ergebnisse werden durch Ver nde rung der Parameter nicht wesentlich beeinflusst und k nnen wie folgt erl utert werden 208 18 2 Temporales Clustering von Warenkorbdaten XMeans distanceFunction weka core NominalDistance XMeans maxIterations 5 XMeans maxKMeans 1000 XMeans maxKMeansStructure 1000 XMeans minNumClusters 5 XMeans maxNumClusters 100 XMeans distanceValue 1 0 XMeans cutOffFactor 0 5 Cluster centers 2 centers Cluster 0 266 62068965517244 Cluster 1 90 91404612159329 Distortion 122 654358 Erl uterung Der Clusterer ermittelt immer die minimale Anzahl von m glichen Clustern Die einzelnen Transaktionen werden gleich m ig auf alle Cluster verteilt Dies entspricht nicht den Erwartun gen kann aber damit begr ndet werden dass die Testdaten zuf llig erzeugt und dabei gleichm ig auf das ganze Jahr verteilt wurden Aufgrund dieser Verteilung wurden die Testdaten nachtr glich ver n dert Nach Auswahl einiger Produkte wurden die Transaktionszeiten aller Warenk rbe in denen diese Produkte enthalten sind so ange passt dass bestimmte Produkte in bestimmten Monaten gekauft wur den Mit diesen Voraussetzungen erzeugt die Analyse das gew nsch te Ergebnis Es werden saisonale Produkte gefunden In der Praxis k nnten dies beispielsweise Weihnachtsartikel sein die ausschlie lich oder vorzugsweise in der Vorweihnachtszeit erworben werden Weitere Beispiele f r saisonale P
269. l importiert die Daten in die Tabelle KStringAttribut des Kar tenanbieterschemas Wird von der Methode importDB aus auf gerufen void importKundenName importiert die Daten in die Tabelle Kunden_Name des Kar tenanbieterschemas Wird von der Methode importDB aus auf gerufen void importKundenTelefax importiert die Daten in die Tabelle KStringAttribut des Kar tenanbieterschemas Wird von der Methode importDB aus auf gerufen void importKundenTelefon importiert die Daten in die Tabelle KStringAttribut des Kar tenanbieterschemas Wird von der Methode importDB aus auf gerufen void import Number Attribut importiert die Daten in die Tabelle NumberAttribut des Kar tenanbieterschemas Wird von der Methode importDB aus auf gerufen void importPosten importiert die Daten in die Tabelle Posten des Kartenanbieter schemas Wird innerhalb von der Methode importDB aufgeru fen void importProdukt importiert die Daten in die Tabelle Produkt des Kartenanbie terschemas Wird von der Methode importDB aus aufgerufen void import Produkt Attribut importiert die Daten in die Tabelle Produkt Attribut des Kar tenanbieterschemas Wird von der Methode importDB aus auf gerufen void importProduktPrioritaet importiert die Daten in die Tabelle StringAttribut des Kar tenanbieterschemas Wird von der Methode importDB aus auf gerufen 49 5 Objektorientierter Entwurf 16 void import ProduktRabattfaehig
270. l einige Tabellen in der angegebenen Datenbank mit Daten zu f llen In der Beschreibung der Klasse Import nitData siehe Kapitel 5 3 1 wird n her auf diese Funktionalit t eingegangen cleanDoubles sourceDBHost sourceDBDriver userSDB passwdSDB Ein Aufruf mit diesen Parametern gibt an dass die Klasse Cle anDoubles ausgef hrt wird um die angegebene Quelldatenbank 45 5 Objektorientierter Entwurf von Fehlern zu bereinigen In der Beschreibung der Klasse CleanDoubles siehe Kapitel 5 3 1 wird n her auf diese Funktionalit t eingegangen Diese Klasse ruft je nach Parameter bergabe die entsprechenden Klas sen ImportHaendler1 und ImportHaendler2 auf Oberklassen keine Unterklassen keine Attribute keine Beziehungen Diese Klasse erzeugt entsprechend der bergebenen Parameter Ob jekte vom Typ ImportHaendler1 ImportHaendler2 CleanDoubles und InitData Methoden Dienste 1 public static void main String args Die Main Methode ist die Hauptschleife der Klasse 2 public Loader Ein leerer Konstruktor der lediglich zum Erzeugen von Instan zen der Klasse ben tigt wird Klasse ImportHaendler1 Name ImportHaendlerl Kurzbeschreibung Die Klasse mportHaendler1 f hrt den Import der Daten aus der H ndlerdatenbank von H ndler 1 in die Datenbank des Kartenan bieters durch Es werden SQL Queries und Statements generiert mit denen die Daten bertragen werden Des Weiteren werden Kon vertierungen vorge
271. lche Analysen durch die verwendete Bibliothek WEKA WFO1 unterst tzt werden und weiterhin welche Analysen mit den als WEKA Erweiterung entwickelten Analysealgorithmen umgesetzt werden k nnen Des Weiteren ist zu berlegen ob die selbst entwickel ten Verfahren ausreichend sind oder noch erweitert werden m ssen F r die nicht temporale Personalisierung werden verschiedene For men des Clustering sowohl einzeln als auch in Verbindung mit Asso ziationsanalysen vorgestellt Bei den beiden vorgestellten Verfahren handelt es sich um das Cluste ring und um die Assoziationsanalyse die auf verschiedene Weise ein gesetzt werden k nnen Weiterhin ist realisierbar einzelne Analysen auch aufeinander aufbauend durchzuf hren So k nnte es beispiels weise m glich sein dass Assoziationsanalysen auf die durch vorheriges Clustering ermittelten Kundengruppen vollzogen werden Die Beschreibungen der einzelnen Analysen sind im einzelnen wie folgt aufgebaut e Ausgangsdaten Hier werden die zu betrachtenden Relatio nen und die zu analysierenden Attribute aufgelistet welche die Basisdaten der Analyse darstellen e Analyseverfahren Namen der m glichen Analyseverfahren Namen der Algorithmen 137 15 Konzept Nicht temporale Personalisierung e Interpretation Beschreibung der zu erwartenden bzw ge w nschten Ergebnisse und wie diese Daten zu interpretieren sind e Beispiel Ein Beispiel zur Verdeutlichung e Anwendung Schlu folgerun
272. lerID in allen Relationen der Kartenan bieterdatenbank Die Integration kann wie im Szenario vorgesehen losgel st von der Analyse durchgef hrt werden Durch das Abspeichern eines Aktuali sierungsdatums ist daf r gesorgt dass nur die neuen bzw ver nderten Daten integriert werden Ein bestimmter Aktualisierungsrhythmus ist nicht festgelegt worden da bisher nur die angelegten Testdaten in tegriert aber keine neuen Transaktionsdaten generiert worden sind Die detaillierten Information sind in dem Integrationsabschnitt nach zulesen siehe Kapitel II 21 3 Analyse In der Analyse sind den Vorgaben entsprechend jeweils ein nicht temporales und temporales Verfahren durchgef hrt worden F r den nichttemporalen Bereich ist das Clustering in verschiedenen Aus pr gungen zur Anwendung gekommen Im einzelnen sind es das Clu stering nach Kundenattributen siehe Abschnitt 16 das Clustering der Kunden nach gekauften Produkten siehe Abschnitt 16 2 und das Clustering von Warenk rben nach Produkttypen siehe Abschnitt 16 3 Die verschiedenen Verfahren greifen dabei alle auf die in WEKA vorhandenen Clusteralgorithmen zur ck Der temporale Bereich wird durch die kalendarischen Muster abgedeckt f r den ein eigener Al gorithmus implementiert worden ist Auspr gungen zur Anwendung gekommen Im Einzelnen sind es das Clustering nach Kundenattributen siehe 16 das Clustering der Kun den nach gekauften Produkten siehe 16 2 und das Clust
273. lers hier wird das Attribut konstant auf 2 gesetzt 53 5 Objektorientierter Entwurf 11 12 13 14 15 16 17 18 19 54 String helpRechnungID Hilfsvariable f r die RechnungsID String help Time Hilfsvariable zur Speicherung des Grunddatums 1 1 1900 1 00 00 0 String helpTimestamp Hilfsvariable die benutzt wird wenn in den Guelldaten ein Da tum nicht vorhanden ist welches aber f r den Import notwendig ist Basiert auf help Time String kartensystem TZA Hilfsvariable zur Speicherung eines Datums welches f r das An legen eines Kartensystems verwendet wird String kundeBeruf Hilfsvariable zur Zwischenspeicherung von ausgelesenen Wer ten In der Variable werden Berufsbezeichnungen gespeichert die aus der LOV Tabelle Beruf des Datenbankschemas von H ndler 2 stammen String kundeKontakt Hilfsvariable zur Zwischenspeicherung von ausgelesenen Wer ten In der Variable werden die Kontaktbeschreibungen gespei chert die aus der LOV Tabelle Weiteren_Kontakt des Daten bankschemas von H ndler 2 stammen String kundeKennt Hilfsvariable zur Zwischenspeicherung von ausgelesenen Wer ten In der Variable werden die Beschreibungen gespeichert die aus der LOV Tabelle Kennt_Ueber des Datenbankschemas von H ndler 2 stammen String kundeHobby Hilfsvariable zur Zwischenspeicherung von ausgelesenen Wer ten In der Variable werden die Hobbybeschreibungen gespei chert die aus der LOV Tabell
274. lich die Testdaten optimal clustern maxlterations Dieser Parameter gibt an wie oft XMeans selber durch laufen wird Improve Params Improve Structure Die Testl ufe wurden mit einem Wert von 5 durchgef hrt Allerdings wur den die 5 Durchl ufe nie erreicht Bei gr eren Datenmengen k nnen jedoch mehr Durchl ufe n tig sein 192 16 3 Clusteranalyse von Warenk rben nach Produkttypen maxKMeans maxKMeansStructure Setzt die maximale Anzahl der Wiederholungen im kMeans Algorithmus Pre03 in den beiden XMeans Phasen Die Ergebnisse waren gegen ber Ver nderun gen relativ stabil Allerdings konnten durch gr ere Werte durch aus mehr und bessere Cluster gefunden werden Werte von 10000 wurden als optimal angesehen da gr ere Werte keine Verbesserungen mehr gebracht haben minNumClusters Gibt an wieviele Cluster mindestens gefunden wer den Von dieser Clusterzahl aus wird versucht durch das Split ten der Cluster bessere Centroide zu finden Interessanterwei se hatte dieser Parameter Auswirkungen Bei Werten kleiner 5 hat er jeweils nur die minimale Zahl an Clustern gefunden Ab 5 ging die Clusteranzahl pl tzlich hoch Es ist schwer zu sagen warum sich der Algorithmus so verh lt Evtl ist dies auf die Distanzfunktion oder auch auf das Bewertungsverfah ren zur ckzuf hren maxNumClusters Gibt die maximale Anzahl Cluster an die gefun den werden sollen Wird dieser Wert erreicht stoppt der Al gorithmus Aktuell wird
275. lid Time G ltigskeitszeit Varianz Die gibt ein Streuungsma an das eine Aussage dar ber treffen soll wie weit im Durchschnitt jede Variable vom Mittelwert aller T Stichproben abweicht Verbundbildung T Clustering Vorverarbeitungsschritte Unter versteht man Operationen auf Daten die vor der eigentlichen Datenverarbeitung durchgef hrt wer den und die die eigentliche Datenverarbeitung erleichtern sollen in dem sie beispielsweise die Daten bereinigen 348 Glossar W3C World Wide Web Consortium ist der Name einer Or ganisation die sich die Definition Weiterentwicklung und Pflege von Standards f r das Internet zum Ziel gesetzt hat HTML XML RDF u s w sind Beisipiele Ward Verfahren Mit dem werden zuerst Mittelwerte f r jede Variable innerhalb einzelner T Cluster berechnet Anschlie end wird f r jeden Fall die Quadrierte Euklidische Distanz zu den Cluster Mittelwerten berechnet Diese Distanzen werden f r alle F lle sum miert Bei jedem Schritt sind die beiden zusammengef hrten T Clu ster diejenigen die die geringste Zunahme in der Gesamtsumme der quadrierten Distanzen innerhalb der Gruppen ergeben Web Access Pattern ist ein h ufig auftretender Zugriffspfade im Web Log Web Content Mining bezeichnet Data Mining auf dem Inhalt von Webseiten Web Data Mining Das Anwenden von T Data Mining Methoden auf den Daten des Internets wird auch genannt Web Log Das t Logfile eines T Webser
276. liver Wien e Guido Zendel Veranstalter sind Prof Dr H J Appelrath Informatik Assistent Ralf Krause und Dipl Inform Heiko Tapken 14 2 Anforderungsdefinition Gesamtszenario Die Datenmengen in Organisationen sind im Laufe der Zeit und spe ziell in der heutigen modernen von Computern gepr gten Gesell schaft enorm angestiegen Um aus diesen Daten neues Wissen gene rieren zu k nnen m ssen die Informationen regelm ig gesammelt und aufbereitet werden H ndler wollen in der heutigen Zeit ihren Kunden ein m glichst gutes auf sie zugeschnittenes Angebot unter breiten um ihre Ums tze zu erh hen und um Kunden zu binden Eine Bindung von bereits bestehenden Kunden ist kosteng nstiger als eine Gewinnung von Neukunden F r die Kundenbindung ist es notwendig auf die W nsche und Interessen der vorhandenen Kunden und potentiellen Neukunden m glichst individuell einzugehen Eine Grundlage f r personalisierte Angebote ist z B der Einsatz eines Kar tensystems Das Kartensystem erm glicht es Kunden zu erkennen und damit Eink ufe einem Kunden zuzuordnen Aus diesem Wissen k nnen dann Analyseergebnisse erstellt werden die das Kundenver halten f r H ndler transparenter machen Aus H ndlersicht wird der Kunde im optimalen Fall zum gl sernen Kunden Aus den genann ten Gr nden ist Personalisierung zu einer wichtigen Marketinggrund lage geworden Vor diesem Hintergrund wurde der Projektgruppe Personalisierung inte
277. luster 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 252 25 1 210 21 2 217 22 31 0 4 324 32 Scheme weka clusterers SimpleKMeans N 5 S 2 Cluster centroids Cluster 0 18 042857142857144 12 507142857142858 13 371428571428572 13 207142857142857 12 878571428571428 13 05 13 542857142857143 Cluster 1 0 0 0 0 0 0 0 0 0 3076923076923077 0 0 0 0 Cluster 2 14 154696132596685 12 060773480662984 12 988950276243093 17 56353591160221 13 005524861878452 13 657458563535911 13 011049723756907 Cluster 3 11 297101449275363 14 246376811594203 14 442028985507246 13 304347826086957 13 76086956521739 14 44927536231884 14 782608695652174 Cluster 4 14 718181818181819 13 145454545454545 13 809090909090909 13 286363636363637 13 354545454545455 15 368181818181819 12 772727272727273 0 140 14 1 325 32 2 181 18 3 138 14 4 220 22 Scheme weka clusterers SimpleKMeans N 5 S 4 Cluster centroids Cluster 0 12 507109004739336 14 113744075829384 14 071090047393366 12 739336492890995 13 739336492890995 15 350710900473933 263 Personalisierung 13 85781990521327 Cluster 1 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 2 16 862962962962964 12 540740740740741 13 566666666666666 13 518518518518519 12 981481481481481 13 85925925925926 13 222222222222221 Cluster 3 13 6010101010101 12 262626262626263 13 242424242424242 17 41919191919192 13 080808080808081 13 6010101010101 13 166666666666666 Cluster 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 211 21 11
278. lyse beachten soll Das Datum ist inklu siv max Gibt ein Datum an bis zu welchem der Algorithmus Datens tze auswerten soll Das Datum ist exklusiv minsupp Gibt den Mindest Support f r den Algorithmus an welcher ausdr ckt wie oft eine Artikelkombination prozentual an einem Tag vorkommt um als h ufig zu gel ten Der Wert muss zwischen 0 und 1 liegen fuzzy Gibt den Mindest Support an f r den h ufige Kom binationen in einem Wildcard Muster auch Star Pattern genannt siehe Abschnitt 13 sowie 17 1 prozentual vor kommen m ssen Der Wert muss zwischen 0 und 1 liegen 92 11 2 Klassenbeschreibung e buildAssociations Instances transactions Mit dieser Methode wird die eigentliche Analyse gestartet Sie startet die einzelnen Analyseschritte und produziert die Ergebnisse der kalendari schen Mustersuche transactions Hier m ssen die Transaktionen bergeben wer den aus denen die zu untersuchenden Datens tze entnom men werden sollen Dabei m ssen die Instanzen nach der Zeit aufsteigend sortiert sein und die KundenIDs verschie dener Warenk rbe tagweise disjunkt sein Das bedeutet dass zwei aufeinanderfolgende Warenk rbe mit der glei chen ID nicht am selben Tag auftreten d rfen instances getResults Liefert die gefunden Ergebnisse als Instan zen zur ck Diese beinhalten die 6 Attribute Jahr Monat Tag den Support Wert eine eindeutige Regel ID und einen Vektor der die Artikel beinhaltet die f
279. m Austauschformat Dieses liegt als Datei 20 2 2 Funktionale Anforderungen oder Datenbanktabelle vor und kann f r weitere Analysen verwendet werden Eine n here Beschreibung der speziellen Funktionalit t l sst sich der Anforderungsdefinition der Analyse entnehmen Zur berpr fung der Ergebnisse der Personalisierung wird auf Basis der Datenbank des Online H ndlers sowie den Analyseergebnissen Clustering ein Online Shop erstellt Dort werden auch die tempora len Ergebnisse der kalendarischen Mustererkennung als Pr sentation umgesetzt Es wird angestrebt eine baumartige Katalogstruktur darzustellen Zudem soll der Online Shop Produktdetailseiten und Warenk rbe enthalten sowie die M glichkeit der Online Bestellung bieten Hin sichtlich der Personalisierung soll auf den Detailseiten eines Produk tes andere Produkte gem den Assoziationsregeln f r den Kunden eingeblendet werden Ferner soll guten Kunden Sonderangebote un terbreitet werden Au erdem sollen Produkte innerhalb der Kata logstruktur gem den Vorlieben und Interessen des jeweiligen Kun den besonders betont werden Konkretere Designentscheidungen so wie Inhalt des Online Shops werden zum Zeitpunkt der Realisierung getroffen vgl Meilensteinplan Abbildung 2 3 Die Abbildung 2 3 zeigt eine bersicht in Form eines Meilenstein planes ber den Zeitrahmen in dem die einzelnen Teilprojekte zu realisieren sind nee E en ee DEER rm Ten Ek mamma A 7
280. m Internet Aktiv beteiligt an der Auswahl des Dateninhalts ist ein Nutzer nur bei der Auswahl seines Interessenprofils Quadrierte euklidische Distanz Die beschreibt die Summe der quadrierten Differenzen zwischen den Werten der Eintr ge Quantil Das hnelt dem Median nur da die Grenze beim un teren nicht bei der H lfte sondern bei einem Viertel liegt Analog ist das obere definiert Rauschen Als bezeichnet man anormale Daten die von ihrer Charakteristik her nicht in die Menge der Gesamtdaten passen 343 Glossar Recommender System Fin schl gt dynamisch anhand des ak tuellen User Verhaltens und aufgrund gesammelter Daten alternative Links vor Redundanz bezeichnet die mehrfache Speicherung identischer T Tupel oder Datens tze ohne Informationsgewinn Referenzarchitektur Die eines Data Warehouse System gen gt den Prinzipien der Lokalit t der Modularisierung Hierarchisierung sowie integrierter Dokumentation und Mehrfachvererbung Regression Mithilfe der versucht man eine Gleichung aufzustel len die aus vorhandenen Attributen ru Tel eine Variable y er kl rt Bei der klassischen linearen hat die Gleichung die Form y bo b z1 bn n e wobei die b die zu w hlenden Koeffizien ten darstellen und e den sogenannten Fehlerterm In der nichtlinearen sind auch bspw exponentielle Gleichungen m glich Relation Die beschreibt die Teilmenge eines kartesischen Pro duktes M x x
281. m ein weiteres H ndlerdatenbankschema das sich von den zwei bereits implementierten Schemata unterschei det m ssen zwei Arbeitsschritte durchgef hrt werden Zun chst muss eine Importklasse implementiert werden die alle notwendigen Schrit te der Datenintegration analog zu den zwei bereits implementierten ImportH ndler Klassen durchf hrt Schlie lich muss die Klasse Im portInitData f r den neu zu integrierenden H ndler erweitert werden 69 7 Erweiterbarkeit 70 8 Probleme bei der Implementierung Im Verlauf der Implementierung und Programmierung sind diver se unvorhergesehene Probleme aufgetreten die im Folgenden einzeln erl utert und zu denen die von den Mitgliedern der Projektgruppe umgesetzten L sungen vorgestellt werden 8 1 Gemeinsame Probleme beim Import der Daten beider H ndlerdatenbanken Es hat Probleme gegeben die sowohl beim Import der Daten aus der Datenbank des H ndler 1 als auch beim Import der Daten aus der Datenbank des H ndler 2 aufgetreten sind Hierzu geh rt das Problem von Attributen die zwar in den H nd lerdatenbanken vorhanden gewesen sind nicht jedoch in der Daten bank des Kartenanbieters Dieses Problem wurde durch das Anlegen von im Kartenanbieterdatenbankschema daf r vorgesehenen dynami schen Attributen gel st Ein weiteres Problem beider H ndler stellte das Vorhandensein iden tischer Werte beispielsweise IDs in den beiden H ndlerdatenbanken dar Dieses Problem ist umgangen w
282. mangager Der steuert die Metadatenverwaltung Er stellt eine Datenbankanwendung dar der das Versions und Konfigu rationsmanagement das Integrations die Zugriffs die Anfrage und Navigationsm glichkeiten der T Metadaten anbietet Ferner liefert er die Schnittstelle f r Lese und Schreibzugriffe auf das T Repositorium Missing values bezeichnen Datenfelder die keinen Wert bein halten Modellbildung ist die vierte Phase im T CRISP DM der Be reich der allgemein als Data Mining bezeichnet wird umfasst die 339 Glossar Auswahl und die Anwendung verschiedener Modellierungstechniken um die in dem T Business Understanding festgesetzten Data Mining Ziele zu erreichen Monitor Ein soll Datenmanipulationen aufdecken Es gibt meist einen pro Datenquelle Monitoring Das ist die Voraussetzung f r die Anpassung eines T Data Warehouse an die aktuelle Nutzung Multidimensionale Datenbank Eine ist eine auf Grundlage des multidimensionalen Datenmodells aufgebaute Datenbank Ana log sind multidimensionale Datenbanksysteme und multidimensionale Datenbankmanagementsysteme definiert Multidimensionales Datenmodell Das ist ein Datenmodell das die Modellierung von Daten zu Analysezwecken erm glicht We sentliches Charakteristikum ist die Unterscheidung von Daten in Fak ten und T Dimensionen sowie die M glichkeit der Bildung von Hier archien auf den Dimensionen Multidimensionales Schema Ein Schema das mit den
283. menfassung wird als bezeichnet Histogramm Ein ist eine Visualisierung von Binning Methoden in Form eines Diagramms Hit jeder Zugriff auf einen Teil ob Seite Bild oder Text eines Web Angebots der im Log File des Servers eingetragen wird wird als bezeichnet HOLAP Wenn T Detaildaten in T Relationen gespeichert werden und gewisse Verdichtungen multidimensional gehalten werden wird eine Mischform das hybride OLAP also verwendet Homonymfehler bezeichnet die f lschliche Zusammenf hrung zweier Objekte oder T Tupel die unterschiedliche Entit ten beschrei ben zu einer neuen Entit t HTML Tag Ein ist ein Auszeichnungselement von T HTML HTTP Hyper Text Transfer Protocol ist ein Protokoll wel ches f r die Abwicklung fast aller Kommunikation im World Wide Web zust ndig ist Interpage Strukturdaten ist die Bezeichnung der Struktur meh rerer Seiten untereinander In der Regel ist damit die Struktur ge meint die durch Verlinkung zwischen den einzelnen Seiten implizit gegeben ist 336 Glossar Interquartilsabstand Der ist der Abstand zwischen unterem und oberen T Quantil ISP Internet Service Provider ist ein Unternehmen der Zu gang zum Internet erm glicht Dies kann ber Modems ISDN DSL etc geschehen Solche Unternehmen bieten meistens auch noch wei tere Dienstleistungen im Internetumfeld an Item oder Literale sind Elemente deren Mengen die Werte der T Sequenzen bilden
284. mentares Zeitintervall die Gr e eines Tages Bei Assoziationsregeln wird des Weiteren einen Wert f r den Mindest Support ben tigt der angibt ab welchem prozentualen Anteil eine Regel als h ufig gilt Bei dem Algorithmus wird dabei immer der prozentuale Anteil f r ein elementares Zeitintervall betrachtet 101 Handbuch Algorithmus zum Auffinden kalendarischer Muster Der Algorithmus sucht nicht nur nach Assoziationsregeln f r elemen tare Zeitintervalle sondern untersucht die gefundenen Regeln zus tz lich auf eine prozentuale H ufigkeit in dem vorgegebenen Beobach tungsintervall Die H ufigkeit ist in Bezug zu der Anzahl der ele mentaren Zeitintervalle zu verstehen Wenn eine Assoziationsregel an jedem elementaren Zeitintervall innerhalb des Beobachtungsin tervall gilt wird von Precise Match gesprochen Dieses entspricht ei nem Fuzzy Support Wert von 100 Der Fuzzy Support Wert gibt die H ufigkeit der Regeln in Bezug zu der Anzahl der elementaren Zeitintervalle im Beobachtungsintervall an Bei kalendarischen Mustern k nnen zus tzlich Wildcards f r die Zei ten angegeben werden welche die Bedeutung von f r jeden haben Es werden also somit auch Assoziationsregeln f r kalendarische Mu ster der Form f r jeden Tag f r jeden Monat oder f r jedes Jahr im Beobachtungsintervall gefunden Auch sind Kombinationen m glich wie zum Beispiel f r jeden Tag im November eines jeden Jahres im Beobachtungsintervall Wird
285. mmt Im obigen Beispiel wurden die gleichen Namen wie in der Datenbank verwendet Weitere f r diesen Algorithmus relevante Parameter sind tempAsso ciations minDate und tempAssociations mazxDate die den Zeitraum bestimmen in dem die f r die Analyse relevanten Transaktionen lie gen m ssen sowie temp Associations minSupport Letzterer Parameter bestimmt den minimalen Support der Muster die gefunden werden sollen Ist das min Date gr er als das maxDate wird vom Algorithmus automatisch von der ersten Transaktion bis zur letzten Transaktion analysiert 18 1 2 Ergebnisse Der folgende Ausschnitt zeigt die Ergebnisse die mit der obigen Kon figuration erzeugt wurden Das Format ist Jahr Monat Tag Sup port Produkt Die Werte Jahr Monat und Tag stehen f r das Da tum an dem das gefundene Muster G ltigkeit hat F r alle drei ist zudem ein Wert 1 m glich Es handelt sich dann um ein Starpat tern wobei 1 als Star Stern bzw zu verstehen ist und die oben siehe Abschnitt 17 1 2 erl uterte Wildcard Funktion aus bt F r einen Stern kann ein beliebiger Wert verwendet werden Im obi gen Beispiel kann f r das Jahr jedes Jahr im Analysezeitraum einge setzt werden Mit Support wird der Support des jeweiligen Musters angegeben und Produkt enth lt alle Artikel die an diesem Datum gekauft werden Ergebnisvariation In mehreren Testl ufen die alle mehrere Stunden bis Tage dauerten konnte
286. n Diese werden den ent sprechenden Attributen der Kartenanbieterdatenbank gegen berge stellt wobei f r einzelne Attribute im Kartenanbieter Schema erst noch Entsprechungen generiert werden mussten da diese nicht vor handen waren N T h kunde ohne karte H2 Wertevereien Cardprovider Wertebereich INUMBER 38 Kunden_Adresse PLZ VARCHAR2 40 ICHAR 18 NOT NULL transaktions id kg id Tabelle A 1 Relation kunde ohne karte liale H2 ertebereich Cardprovider Wertebereich adr_str NULL ARCHAR2 40 NOT jadr plz air ot NULL INUMBER 38 NOT NULL Shop ShopID INUMBER 38 NOT NULL DATE filial_id vid_filiale gza filiale ze filiale tza_filiale tze_filiale Tabelle A 2 Relation Filiale 249 Integration H Kategorie H2 Wertebereich Cardprovider Wertebereich BT LH el kategorie_id INUMBER 38 NOT NULL Warengruppe WarengruppelD INUMBER 38 NOT NULL jartikelklasse VARCHAR2 20 Warengruppe N ame VARCHAR2 40 Tabelle A 3 Relation Kategorie I EE Frans EE GE SEN INUMBER 38 NOT NULL Kunden KundenID NTEGER NOT NULL anrede WTA NOT Trunden Geschlecht ARCHAR 240 vorname VARCHAR2 20 NOT Kunden_Name Vorname Iname NULL Kunden_Name N ame VARCHAR2UO geb datum DATE NOT NULL Kunden Geburtsdatum DATE adr str Kunden_Adresse Strasse adr_plz IKunden_Adresse Ort VARCHAR 2 40 adr_ort Kund
287. n wenn er nicht in der Lage ist auf seine Datenquelle zuzugreifen z B weil eine Datenbankverbindung nicht aufgebaut oder eine Datei nicht ge ffnet werden kann SinkNotAvailableException Wird von einem ResultWriter gewor fen wenn er die Ergebnisse nicht in die Datensenken schreiben kann 14 3 3 Vorhandene Implementierungen In Abschnitt 14 3 1 wurden die Interfaces beschrieben die das Grund ger st des Framework darstellen Dieser Abschnitt beschreibt die vor handenen Implementierungen dieser Interfaces Zun chst wird auf die unterst tzten Datenquellen eingegangen danach werden die imple mentierten Datensenken und abschlie end die vorhandenen Algorith men beschrieben Datenquellen Im Package diko framework input befinden sich die vorhandenen Im plementierungen f r den Zugriff auf Datenquellen Zur Zeit sind dies zwei eine erm glicht den Zugriff auf ARFF Dateien die andere den Zugriff auf relationale Datenbanken die ber JDBC ansprechbar sind Zugriff auf ARFF Dateien Die Klasse ArffFilelterator erm glicht den Zugriff auf ARFF Dateien ARFF Dateien sind die Standard Datenquelle von WEKA Da ARFF Dateien neben den eigentlichen Daten auch Metadaten ber die Struktur der Daten enthalten imple mentiert der ArffFilelterator zus tzlich zum Interface Configurable Sourcelterator auch noch das Interface MetaDataProvider Der ArffFilelterator ben tigt als einzige Option den Dateinamen der einzulesenden ARFF Datei Falls
288. n wer den Dazu geh ren beispielsweise Produkt Bundles die zu bestimm ten Zeiten g ltig sind oder aber auch saisonale Produkte die in be stimmten Zeitr umen z B Jahreszeiten bevorzugt gekauft werden Die temporalen Analysen beschr nken sich im Folgenden auf kalenda rische Muster und temporales Clustering Ein weiterer Ansatz soge nannte sequentielle Muster werden zwar am Ende kurz eingef hrt kann jedoch aus zeitlichen Gr nden nicht umgesetzt werden Die temporalen Analysen wurden auf die vorhandenen Daten von H ndler 1 beschr nkt Da das Framework an sich aber f r verteil te Daten ausgelegt ist sind ebenfalls Analysen auf anderen Daten m glich 17 1 Kalendarische Muster F r die Analyse wurde im ersten Abschnitt der Algorithmus zur Ent deckung kalendarischer Muster von Li et al LNWJO1 ausgew hlt Die Projektgruppe erhofft sich von diesem Algorithmus Ergebnis se die f r die Personalisierung im Online Shop verwendet werden k nnen Angestrebt ist das Vorschlagen ausgew hlter Produkte auf grund zeitlicher Assoziation zu einem anderen Produkt Im Folgenden wird die Funktionsweise allgemein beschrieben und dann die Implementierungsaspekte erl utert 17 1 1 Ausgangsdaten Die Analyse der kalendarischen Muster wird auf den Warenkorbdaten des Online H ndlers durchgef hrt 197 17 Konzept Temporale Personalisierung 17 1 2 Analyseverfahren Das Analyseverfahren nennt sich Discovering Calendar bas
289. n worden sind Des weiteren sind zwei Cluster 0 und 3 gefunden worden die weibli che Kunden mit einem Geburtsdatum aus den f nfziger Jahren bein halten Bei Durchsicht der Testdaten sind in diesem Bereich allerdings keine auff lligen H ufigkeiten zu finden gewesen Aufgrund der Ab 166 16 1 Clusteranalyse nach Kunden SQL Query select KundenID Geburtsdatum Geschlecht from Test_Kunden Clusteralgorithmus SimpleKMeans Anzahl vorgegebener Cluster a Tabelle 16 16 Einstellungen 2 Clustering o eo s e pane BE Tabelle 16 17 Ergebnis 2 Clustering weichung von den angestrebten Clusterergebnissen sind im Folgenden weitere Parametereinstellungen getestet worden 2 Clustering Aufgrund der nicht zufriedenstellenden Ergebnisse des ersten Clusterings sind nun die in Tabelle 16 16 abgebildeten Para metereinstellungen zur Anwendung gekommen Ergebnis des zweiten Clusterings Die in Tabelle 16 17 dargestell ten Ergebnisse geben die Verteilung der Kunden im Bezug auf die geclusterten Ergebnisse ebenfalls nicht entsprechend der gew nsch ten Interpretierbarkeit wieder Wie zu sehen sind bei diesen Para metereinstellungen lediglich sieben Cluster gefunden worden Cluster 6 beinhaltet dabei 38 Kunden mit Geburtsjahren um 1971 herum Bei einem Blick in die Testdaten ist diese H ufung allerdings nicht zu er kennen Vielmehr liegt die Jahreszahl 1971 zwischen den zwei vermu teten Schwerpunktjahren Auch das zweite Cluste
290. nanbieterdatenbank zusam mengef gt worden Auf diesen Daten sind anschlie end Analysen mit 237 21 Soll Ist Vergleich vom Gesamtprojekt Hilfe der Bibliothek durchgef hrt und die Ergebnisse in die Karten anbieterdatenbank zur ckgeschrieben worden Diese Ergebnisse sind aufgrund ihrer Qualit t nicht weiter verwendet worden und somit war ein bertragen der Ergebnisse an die H ndlerdatenbanken nicht notwendig Die funktionierenden Analysen sind ausschlie lich auf der H ndler 1 Datenbank durchgef hrt worden wobei auch die Ergeb nisse in dieser zur ckgeschrieben worden sind Der H ndler 2 ist wie oben beschrieben nicht weiter betrachtet worden so dass auch keine Analysen auf seiner Datenbank durchgef hrt worden sind Die hier beschriebenen Einschr nkungen haben sich durch die Aufga benstellung bzw durch die Verteilung der durchgef hrten Analysen ergeben und bedeuten nicht dass eine Anforderung an das System nicht erf llt worden ist 21 9 Meilensteine Die folgende Darstellung siehe Abbildung 21 2 zeigt die von den Projektgruppenmitgliedern festgelegten Meilensteine von Anfang bis Ende des Projekts Wie schon im Zwischenbericht existiert zu jedem Meilenstein ein Start und ein Enddatum Aus diesen Daten ergibt sich die Bearbeitungsdauer eines Meilensteins in Wochen Meilen steine die miteinander durch eine Linie verbunden sind werden als voneinander abh ngige Meilensteine bezeichnet der zeitlich voran gehende Meilen
291. nceFunction Klassenname der zu benutzenden Di stanzfunktion Default ist weka core Euclidean Distance 123 14 Technisches Handbuch Framework XMeans distanceValue Wert der benutzt wird um die Distanz zwischen zwei unterschiedlichen nominalen Attributen zu be stimmen XMeans maxIterations Maximale Anzahl von Iterationen Default ist 1 XMeans maxKMeans Maximale Anzahl von Iterationen im Improve Parameter Teil der KMeans Schleife Default ist 1000 XMeans maxKMeansStructure Maximale Anzahl von Iterationen im Improve Structure Teil der KMeans Schleife Default ist 1000 XMeans maxNumClusters Die maximale Anzahl zu findender Clu ster XMeans minNumClusters Die minimale Anzahl zu findender Clu ster XMeans cutOffFactor Gibt an welche Prozentzahl der besten Splits verwendet wird wenn keine der neuen Centroide besser sind Erwartungsmaximierung Der Algorithmus EM unterst tzt den fol genden Parameter em numClusters Bestimmt die Anzahl der zu findenden Cluster Cobweb Der Clusterer Cobweb unterst tzt die folgenden Parame ter cobweb Acuity Die minimale Standardabweichung cobweb Cutoff Der minimale Nutzwert Temporale Assoziationsregeln Der Algorithmus zum Finden von temporalen Assoziationsregeln ben tigt die folgenden Parameter tempAssociations minDate Das Datum von dem an in den Einga bedaten nach Regeln gesucht wird Muss in der Form tt mm jjjj angegeben werden 124 1
292. ndes durch Methoden wie z B Stichprobenziehungen li neare Regression oder T Clustering Objekt Historie Hier werden nur G ltigkeitszeiten verwaltet Es kann f r jedes Objekt festgestellt werden wann es in der modellierten Welt wahr war OLAM T Online Analytical Mining One to one Marketing Unter oder auch Individual Marketing versteht man das auf spezielle Kunden oder Kundengruppen ausge richtete Marketingverhalten dass sich vom Massenmarketing abwen det Online Analytical Mining Im Zusammenhang mit dem f Data Warehousing und dem T Data Mining tritt das sogenannte T Onli ne Analytical Mining OLAM in Erscheinung welches die auf Da ta Warehouse operierenden Techniken des Online Analytical Pro cessing OLAP und des T Data Mining integriert OLAM bietet M glichkeiten an ein Mining auf verschiedenen Teilgruppen und Ab straktionsebenen welche basierend auf T Datenw rfeln mit OLAP Methoden gebildet werden durchzuf hren OLAP Online Analytical Processing ist eine Methode um in gro en Datenbest nden visuell aufbereitete deskriptive T Analysen zu erm gli 341 Glossar chen Bei handelt es sich um eine Form der manuellen T Datenana lyse mittels T Generalisierung und T Spezialisierung Die notwendigen Daten werden oft im T Data Warehouse DW bereitgestellt OLTP Online Transaction Processing beschreibt den Arbeitspro zess der von den klassischen operationellen transaktionsorientierten Datenbankanwen
293. ne Ergebnisse vorangegangener oder anderer Analysen verwendet Die Analysealgorithmen sollen eigenst ndig m glichst verschiedene Gruppen finden die in sich jedoch m glichst homogen sind 138 15 1 Einfache Analysen 15 1 1 Clustering nach Kunden Beim Clustering nach Kunden sollen einzelne Kundengruppen ermit telt werden deren Mitglieder gemeinsame demographische Daten auf weisen Ausgangsdaten Bezieht sich diese Analyse auf die Datenbank des H ndler 1 sind die Ausgangsdaten der Relation Kunde des Daten bankschemas von H ndler 1 ersichtlich Mit dem Attribut gebdatum wird das Geburtsdatum des Kunden ersichtlich und in dem Attri but geschlecht kann festgestellt werden ob es sich um eine Frau oder Mann handelt In der Relation Adresse wird in dem Attribut plz die Postleitzahl des Kunden erkennbar F r die Analysen k nnen diese Attribute beliebig kombiniert werden Analyseverfahren Clustering SimpleKMeans Cobweb EM XMeans Interpretation Die Ergebnisse dieser Analysen sollen dazu dienen die Menge aller Kunden in einzelne Gruppen aufzuteilen wie Kun den gleicher Herkunft Kunden gleichen Geschlechts und Kunden gleichen Alters sowie Vereinigungen dieser Mengen Die einzelnen Gruppen stellen Kundengruppen dar Beispiel M gliche Ergebnisse dieser Analyse k nnen folgende Grup pen sein e Kunden aus der Region Ammerland Clustering nach PLZ e weibliche Kunden aus der Region Ammerland Clusterin
294. ng ist die erste Phase im T CRISP DM Modell Umfasst die Betrachtung des Gesch ftsumfeldes Festlegen von Zielen und Erfolgsfaktoren f r das Projekt und f r das T Data Mining und die Bestimmung eines Projektplanes C4 5 z hlt zu den bekanntesten T Entscheidungsbaumverfahren aus dem Bereich des induktiven Lernens Das Auswahlkriterium in basiert auf informationstheoretischen berlegungen es wird ein error based Pruning eingesetzt Cache Ein ist Zwischenspeicher Im Zusammenhang mit T Web Usage Mining ist damit der eines T Browsers oder T Proxy Servers gemeint in dem Seiten aus dem Internet zwischengespeichert werden Dies kann Performance Vorteile mit sich bringen da nicht mehr jede Seite vom T Webserver angefordert werden muss CART Die Methode Classification and Regression Trees wurde von Breiman et al 1984 als Ergebnis mehrj hriger Forschungs arbeit entwickelt Das T Entscheidungsbaumverfahren z hlt zu den bekanntesten Top Down Ans tzen mit entsprechender T Pruning Strategie CHAID Der Algorithmus stellt ein Segmentierungs Verfahren dar dessen Auswahlkriterium auf dem Chi Quadrat Test beruht Er z hlt zu den direkten Top Down Verfahren ohne die Verwendung ei ner nachfolgenden Pruning Phase Chronon Ein ist die kleinste gew hlte Zeiteinheit innerhalb ei nes Datenbankmodells Cluster Ein ist eine Menge von Objekten die zueinander bez glich eines Teils ihrer Attribute eine hohe hnlichkeit
295. ngsm glichkeiten Fuzzy Match Ratio und flexible Kalenderschemata vorgestellt worden Zus tzlich soll im weiteren Verlauf der Projektgruppe noch ein zweiter Algorithmus Se quentielle Muster implementiert werden um den eingeschr nkten Anwendungsbereich der kalendarischen Muster zu erweitern Neben den verwendeten Algorithmen sind zudem noch weitere Aus richtungsm glichkeiten des Angebotes auf den Kunden und die pers nli chen Ansprache auf der Internetseite des Online Shops n her unter sucht worden Es ist jedoch entschieden worden dieses nicht wei ter auszuf hren da es nicht direkt zum Personalisierungskonzept im Rahmen der Projektgruppe geh rt 213 19 Ergebnisse und Schlussbetrachtung der Personalisierung 214 Teil V Ergebnisse und Schlussbetrachtung 20 Shop Um die von der Projektgruppe erarbeitete Personalisierungsbiblio thek testen zu k nnen und deren Ergebnisse zu visualisieren ist ein Online Shop System aufgesetzt worden Dieses soll einem sich an meldenden Nutzer anhand der Analyseergebnisse der Personalisier ungsbibliothek und der aus den H ndler Szenarios stammenden de mographischen Daten ein speziell auf den Nutzer zugeschnittenes personalisiertes Warenangebot bieten 20 1 Anforderungen Die Hauptaufgabe des Online Shops ist es die von der Personalisier ungsbibliothek gefundenen Personalisierungen zu visualisieren Wei terhin sollen jedoch Grundfunktionalit ten eines Online Shops wie z B ein B
296. nommen und fehlende Daten mit Standardwerten 46 5 3 Klassenbeschreibung erg nzt Die bertragung von neuen Datens tzen in die Zieldaten bank geschieht durch Verwendung sogenannter insert Methoden Be reits in der Zieldatenbank vorhandene Datens tze werden mittels so genannter update Methoden aktualisiert falls sich die Datens tze in der Guelldatenbank ndern sollten Oberklassen keine Unterklassen keine Konstanten 1 HAENDLERID hat den Wert 1 Attribute 1 DBConnection sourceDB Datenbankverbindung zur H ndlerdatenbank von H ndlerl DBConnection readTargetDB Datenbankverbindung f r lesende Zugriffe auf die Datenbank vom Kartenanbieter DBConnection writeTargetDB Datenbankverbindung f r schreibende Zugriffe auf die Daten bank vom Kartenanbieter Timestamp currentTime In diesem Attribut wird der Zeitpunkt des Programmstarts ge speichert Timestamp lastUpdateTime In diesem Attribut wird der Zeitpunkt des letzten Import ge speichert welcher aus der Tabelle Cardprovider Haendler aus gelesen wird ResultSet rs In diesem Attribut werden die Ergebnisse von Datenbankabfra gen gespeichert 47 5 Objektorientierter Entwurf Beziehungen Die Klasse ImportHaendler1 wird von der Klasse Loader aufgerufen um die Daten zu importieren Sie verwendet die Klasse DBConnecti on um eine Datenbankverbindung aufzubauen Methoden Dienste 48 1 ImportHaendler1 String sour
297. ntegrationsprojekt kann daher in der Analyse gesehen werden welches der zweiten Phase im Wasserfallmodell ent spricht In dieser Phase geht es um die Kl rung der Fragen welches 28 3 2 Beschreibung der Phasen der Softwareentwicklung Problem die zu erstellende Software l sen soll und welcher Leistungs umfang vom Auftraggeber gefordert wird Das Ziel der Analysephase ist es demnach die Anforderungen an die zu erstellende Software unter Ber cksichtigung aller Umgebungsbedingungen exakt zu de finieren Innerhalb des Integrationsprojektes ist dieses in Form der Anforderungsdefinition geschehen die unter Abschnitt 4 1 einzuse hen ist Die zweite Aufgabe des Softwareentwurfes entspricht der dritten Pha se im Wasserfallmodell dem Design Hierbei sind die in der Anfor derungsdefinition siehe Abschnitt 4 1 definierten funktionalen und nicht funktionalen Anforderungen genauer spezifiziert worden Der Entwurf siehe Kapitel 5 stellt das Ergebnis dieser Phase dar Nach der Designphase sind die Ergebnisse des Entwurfes in einem Programm umgesetzt worden Dieses entspricht im Wasserfallmodell der vierten Phase der Realisierung W hrend in der Entwurfsphase noch programmiersprachenunabh ngig geplant worden ist ist hier die konkrete Umsetzung in der Programmiersprache Java erfolgt Das Resultat dieser Phase bildet der Sourcecode des Programms sowie der darin enthaltene Javadoc Dokumentationscode Die vorletzte Phase des Wasserfallmodelles st
298. ntiiert F r die R ckgabe der Ergebnisse werden noch die Instanzen instantiiert Danach startet der eigentliche Analyseprozess der immer den glei chen Aufbau hat Zun chst wird die Methode generateCandidates aufgerufen welche zun chst alle potentiellen Artikelnummern die eine Assoziationsregel repr sentieren k nnten speichert Dazu wer den die zu untersuchenden Instanzen von ihrem Start bis zu ihrem Endindex durchlaufen und dem entsprechenden Datumsfeld im Ar ray zugeordnet Hierbei werden die einzelnen Warenk rbe identifiziert und sowohl die Anzahl der Artikel in einem einzelnen Warenkorb als auch die Gesamtanzahl der Warenk rbe an einem Tag in den entspre chenden Feldern in Basket und SetOfBaskets gespeichert Bei einem Wechsel von einem elementaren Zeitintervall zum n chsten werden die Mindest Support Werte berechnet Alle Eintr ge die diesen nicht erf llen werden gel scht Dieses geschieht f r alle Tage Bei jedem weiteren Durchlauf wird die Kandidatengenerierung nicht mehr auf den bergebenen Instanzen durchgef hrt sondern auf den Ergebnissen des vorangegangen Durchlaufes Dieses f hrt zu einer starken Reduzierung der Ausf hrungszeit ohne die Ergebnisse zu beeintr chtigen Als n chstes wird cleanUpStarPattern aufgerufen welches jedes Feld das ein Wildcard Muster repr sentiert l scht Dieses hat beim ersten Durchlauf keine Bedeutung bei nachfolgen den Durchg ngen stellt es jedoch sicher dass keine alten Erge
299. nzugef gt werden Bei der Erweiterung des bisherigen Integrationsszenarios wird jeweils auf die Akteure einzeln eingegangen 7 1 Erweiterung der Quelldatenbanken Werden die Schemata der bisherigen H ndlerdatenbanken ge ndert so muss berpr ft werden inwieweit sich diese nderungen bzw Er weiterungen auf die Integration auswirken Es muss entschieden wer den ob neue Daten integriert werden k nnen und gegebenenfalls auch importiert werden sollen d h ob diese neuen Daten f r eine Analyse von Relevanz sind Das Kartenanbieterschema wird dabei als gege ben angenommen was bedeutet dass dieses nicht entsprechend den neuen Entit ten oder Attributen in den Quellen angepasst wird Werden weitere Daten in Tabellen eingef gt in denen bisher schon Daten eingef gt worden sind so ist die entsprechende import Methode der Tabelle in importHaendler1 bzw import Haendler2 anzupassen Das gleiche gilt im umgekehrten Fall wenn Daten die bisher inte griert wurden nicht mehr in der Quelle zur Verf gung stehen 7 1 1 Erweiterungen der Schemata der H ndler Die Probleme die in Zusammenhang mit einer Erweiterung der Quell datenbank H ndler stehen lassen sich in die folgenden Bereiche un tergliedern 67 7 Erweiterbarkeit Einf gereihenfolge Werden neue Tabellen vom Kartenanbieter mit Daten gef llt die bisher noch nicht ber cksichtigt worden sind so muss garantiert sein dass alle notwendigen Daten in der Datenbank be
300. oblem beheben Es ist wahrscheinlich dass die Wa renk rbe mit dem Produkttyp A in einen eigenen Cluster eingeordnet werden Wird die Assoziationsanalyse nur auf die Warenk rbe dieses Clusters angewandt d rfte die oben erw hnte Regel einen deutlich h heren Support bekommen und w rde somit erkannt werden ohne dass der Supportwert zu niedrig gew hlt werden muss Ein zu nied riger Supportwert hat n mlich den Nachteil Regeln zu f rdern die eher uninteressant sind Im Online Shop w rden diese Ergebnisse ebenso verwendet werden Der Supportwert wird immer auf alle Daten bezogen Existiert also eine Regel die zwischen den Produkten des Typs A einen hohen Support hat aber treten Produkte dieses Typs nur in 5 der Warenk rbe auf w re der Support der Regel unter allen Warenk rben trotzdem sehr gering 194 16 3 Clusteranalyse von Warenk rben nach Produkttypen wie die einfachen Assoziationsregeln Es werden also je nach Produk ten im Warenkorb dynamisch Links zu assoziierten Produkten einge blendet Einzig die Analyse unterscheidet sich dadurch dass vor der eigentlichen Analyse die Produkte aufgrund der Clusteringergebnisse gefiltert werden 195 16 Anwendung Nicht temporale Analysen 196 17 Konzept Temporale Personalisierung Das Ziel der temporalen Analysen ist es zeitliche Zusammenh nge in den Transaktionsdaten festzustellen Sind zeitliche Zusammenh nge bekannt k nnen temporale Personalisierungen vorgenomme
301. ode liest die relevanten Daten aus der Tabelle Artikel im Datenbankschema von H ndler 2 aus und f gt sie zusammen mit den notwendigen Daten aus verwandten Tabellen in die Tabelle Warengruppe ein void importKundeMitKarte Die Methode liest die relevanten Daten aus der Tabelle Arti kel im Datenbankschema von H ndler 2 aus und f gt sie zu sammen mit den notwendigen Daten aus verwandten Tabel len in die Tabellen Kunden Kunden Namen Kunden_Adresse Kunden_Familienstand Kunden_Beruf Konto KNumber Attri but und KStringAttribut ein void importKundeOhneKarte Die Methode liest die relevanten Daten aus der Tabelle Artikel 5 3 Klassenbeschreibung im Datenbankschema von H ndler 2 aus und f gt sie zusammen mit den notwendigen Daten aus verwandten Tabellen in die Tabellen Kunden und Kunden Adresse ein 11 void importPosition Die Methode liest die relevanten Daten aus der Tabelle Artikel im Datenbankschema von H ndler 2 aus und f gt sie zusammen mit den notwendigen Daten aus verwandten Tabellen in die Tabelle Posten ein 12 void updateArtikel Die Methode aktualisiert die tze Werte der Datens tze in den Tabellen Produkt und Sortiment im Kartenanbieterschema falls diese seit dem letzten Import gesetzt worden sind 13 void updateFiliale Die Methode aktualisiert die tze Werte der Datens tze in die Tabelle Shop des Kartenanbieterschemas falls diese seit dem letzten Import gesetzt worden sind 14 void updateKunde
302. oid ImportkundenAdresse void ImportkundenEmail void ImportkundenTeletond void imporiKunderTelotax voia IimportEinordnung0 void ImportProduk void imporiProdukPrioritaet void IimportProduktRabataehig void imporiProdukistatus void ImportProduktatribun voia ImportTextanributg vaid ImportSringauribung void ImportnumberAtribut v id importwarengruppel vaid ImportSortmentg voia egen voia ImportTransaktiond we ImportPosteng voia ImportRechnungo void bettel void updatekundenATTO void updatekundenEMNO void Lechner void IupdateStringatribung void updateProduktPriortaot void lupdateProdukiRabattaehig void IupdatoProduk1Status0 void jupdatoToxtatribut void lupdatoProdukt void updatoSoriment voia updatowWarengruppel void ImportHaendior2 rs Resunser Ire2 ResultSet bat ResultSet at ResultSet IeurentTime String lastupdatoTima Timestamp IsourceDB DBConnecton IsourceDB2 DBConnection ltargetDB DBConnection IhaendieriD String IsaveProduktT2a String IsaveshopiD Sving IsavoshopTZA Sting IartensystomT2A Sting IkundeBenut String kundekontakt Sving Ikundekonnt String IkundeHobby String Ikundeabschluss Sring IheipRochnungtD int rette Sting IheigTimestamp String Leger ImporHaendier2 sourceDBUserName String souroeDBUserPasswd String targetDBUserName Sting targeiDBUser
303. ollen die Ergebnisse in einer JDBC Datenbank gespeichert werden kann die Klasse JDBCWriter daf r verwendet werden Diese speichert die erzeugten Daten in der per Option angegebenen Tabelle Es muss dabei sichergestellt sein dass die Daten zur Tabelle passen d h die Anzahl der Spalten muss identisch sein Der JDBCWriter erm glicht auch das Speichern von Instanzen die Vektor Attribute siehe Abschnitt 14 3 5 enthalten Da er aber nur das Schreiben in eine einzelne Tabelle unterst tzt bedient er sich eines speziellen Verfahrens um die multidimensionalen Daten in ei ner Tabelle speichern zu k nnen Dabei wird f r jeden Wert eines Vektor Attributs eine eigene Zeile in der Tabelle angelegt Das fol gende Beispiel verdeutlicht dies Beispiel Angenommen die erzeugten Daten h tten drei Attribute davon das erste numerisch die anderen zwei vom Typ Vek tor Soll nun eine Instanz gespeichert werden die die Werte lt 1 2 3 4 5 6 gt hat wird folgende Tabelle erzeugt 115 14 Technisches Handbuch Framework 1 2 4 1 3 5 NULL F r diese Instanz werden also drei Zeilen in der Tabelle erzeugt da der gr te Vektor der Instanz drei Elemente enth lt Auf diese Weise kann auch bei vielen Vektor Attributen eine platz sparende Speicherung erreichet werden Die Alternative alle Werte der Vektor Attribute zu permutieren und f r jede Permutation eine Zeile in der Tabelle anzulegen w rde im vorliegenden Beispiel schon sechs
304. omplett ber nommen und zus tzlich erweitert Dadurch ist f r neue Algorithmen eine intuitivere API gegeben ohne dass die alten Algorithmen an 88 11 1 Architektur gepasst werden m ssen Intern wird die Klasse jedoch komplett neu implementiert Zur Umsetzung des Cachings wird die Instances Klasse in drei ein zelne Klassen aufgeteilt Da ein Gro teil der bekannten Algorith men iterativ auf die Daten zugreift ist es das Ziel diesen itera tiven Zugriff m glichst performant zu machen Als Anbindung zur Datenquelle wurde daher eine neue eigene Klasse entworfen die ein Forward Iterator Interface siehe Abschnitt 12 1 bietet Als Interface dient Sourcelterator F r den Datenbankzugriff der im Kontext des zu Grunde liegenden Szenarios ben tigt wird wurde eine abstrakte Klasse JDBCSourcelterator entwickelt die diejenigen Methoden des Sourcelterator Interfaces implementiert die unabh ngig von den zu liefernden Daten sind In einem sp teren Schritt wird die abstrakte Klasse JDBCSourcelterator Grundlage f r datenbankbasierte meta datengesteuerte Zugriffe auf Datenquellen sein Der Source Iterator ist somit die direkte Anbindung an die Datenquelle Zur Implementierung des Cachings dient die Klasse InstancesCache die ber den Source Iterator auf die Daten zugreift Die Klasse l dt immer eine bestimmte frei zu konfigurierende Anzahl von Instanzen in den Hauptspeicher und stellt diese in Form eines Forward Iterator Interfaces un
305. orden indem eine H ndlerID f r jeden H ndler in die entsprechenden Entit ten des Kartenanbieter datenbankschemas eingef hrt worden ist Weiterhin ist ein Problem aus der Verwendung von Sequenz IDs in den Datenbankschemata der beiden H ndler entstanden Hierf r ist in der Kartenanbieterdatenbank kein Attribut vorgesehen so dass unter der Annahme dass Oracle die Daten f r die TZA Werte ausrei chend genau behandelt die Sequenz IDs weggelassen werden k nnen da die Prim rschl ssel Kombinationen in diesem Fall bereits eindeu tig sind Des Weiteren haben die Daten in den H ndlerdatenbanken eine un zureichende Zeitgenauigkeit bzgl der Zeitattribute wie z B TZA 71 8 Probleme bei der Implementierung TZE GZA GZE aufgewiesen Eine sauberere L sung h tte die Ver wendung von Daten die aus der Funktion SYSTIMESTAMP ge neriert werden anstelle von Daten die aus der Funktion SYSDA TE generiert werden beim Erstellen der Testdaten in den H ndler Datenbankschemata dargestellt Durch die zus tzliche Einf hrung von H ndlerIDs ist die Verwendung von den ungenaueren SYSDA TE Daten jedoch kein gravierendes Problem Ein schwerwiegenderes Problem der Testdaten hat das Vorhanden sein von Datens tzen mit identischer Artikelnummer innerhalb ein und derselben Transaktion dargestellt Beim Import in die Karten anbieterdatenbank wird aus den TransaktionsIDs und den Artikel nummern ein Prim rschl ssel f r die Entit t Posten gen
306. output JDBC Writer sink jdbcDriver oracle jdbc driver OracleDriver sink jdbeConnection jdbc oracle thin power2 offis uni oldenburg de 1521 power2 sink jdbcLogin xxxx sink jdbcPassword xxxx sink jdbcTable clustKundenGebPlz algorithm diko framework algorithms SimpleKMeansController kMeans numClusters 9 kMeans seed 5 clusterer FilterColumns 1 anarunnergebplz cfg 260 Personalisierung analysis 0 configKidGebPlz analysis 0 postprocessor 0 diko personalisierung kundenattributte PostprocessorGebPlz Clusteranalyse nach Kunden und gekauften Produkten In diesem Abschnitt sind die Ergebnisse der Analysen mit dem Al gorithmus SimpleKMeans aufgelistet wie sie von der WEKA GUI ausgegeben werden und die als Grundlage der Bewertungen des Ver fahrens bzw der Daten dienten Zu Beginn eines jeden Ergebnisses sind die Parameter aufgelistet N gibt den Wert der maximalen Clu steranzahl an S den Wert f r den seed Weiterhin sind die Werte der jeweiligen Centroide der gefundenen Cluster sowie die Verteilung der Kunden auf diese absolut und relativ dargestellt Anhand der Ausgabe der ersten Analyse werden die Zusammenh nge genauer erl utert Die Analyse wird mit dem Wert 5 f r die Clu steranzahl und einem seed von 2 durchgef hrt Anschlie end sind die f nf Centroiden der Cluster mit den Werten f r die sieben hier betrachteten Attribute WG1 bis WG7 aufgef hrt Das Cluster mit der Nummer 2 hat nur f r WG5 einen W
307. pe erforderlichen Aufgaben wahrzunehmen und kann somit als erfolgreich angesehen werden 131 14 Technisches Handbuch Framework 132 Teil IV Personalisierungskonzept 133 Dieser Teil beschreibt die Personalisierung der Projektgruppe Perso nalisierung internetbasierter Handelsszenarien Personalisierung im Rahmen der Projektgruppe bezeichnet die Anpassung der Webseiten eines Online Shops an die angenommenen Bed rfnisse der Kunden Das Ziel dieser Personalisierung ist es den Kunden eines Shops auf Basis der Auswertung der gesammelten kundenbezogenen Daten rele vante und interessante Angebote in einer auf ihn abgestimmten Form zu unterbreiten Die Aufgabenstellung des Personalisierungskonzep tes innerhalb der Projektgruppe bestand im ersten Schritt darin ein Konzept zu erstellen in dem m gliche nicht temporale Analysen und deren Anwendung vgl Kapitel 15 und 16 sowie temporale Analysen und deren Anwendung vgl Kapitel 17 und Abschnitt 18 vorgestellt werden Im Anschluss sollen diese vorgestellten Analysen auf ihre Umsetzbarkeit berpr ft und gegebenenfalls auch realisiert werden Abschlie end soll beschrieben werden wie die Personalisierung im Online Shop durch Anwendung der Analyseergebnisse erreicht wer den kann Das Ziel des Personalisierungskonzeptes ist es die Anwendung der vorhandenen Personalisierungsm glichkeiten zu erl utern Dabei wer den die zug nglichen Algorithmen ihre Funktionsweise und ihr Po t
308. r dieses Datum h ufig waren Mit dem Wert 1 f r die Position Jahr Monat oder Tag wird an gezeigt dass es sich um ein Wildcard Muster f r diese Position handelt 11 2 7 Basket Diese Klasse modelliert einen Warenkorb mittels eines Fast Vectors f r die Artikel und eines GregorianCalendars f r den Tag des Einkaufs F r den Algorithmus wurden noch drei Z hler eingef gt die vom Algorithmus verwendet werden um die Anzahl der Gesamttransak tionen der H ufgkeit des aktuellen Warenkorbs und den zugeh rigen Fuzzy Match f r einen Tag abzuspeichern Die Klasse stellt folgende Funktionen bereit e get set Methoden f r die einzelnen Z hler und das Datum e equals Methoden f r gesamte Warenk rbe f r die Zeitstempel von Warenk rben und den Inhalt von Warenk rben e Methoden zum Hinzuf gen von Artikeln zu Warenk rben e eine Methode zur Bildung der Vereinigungsmenge zweier Wa renk rbe wenn diese sich nur in einem Artikel unterscheiden 93 11 Entwurf 11 2 8 SetOfBaskets Diese Klasse bietet Methoden zur Verwaltung einer Menge von Wa renk rben Ein SetOfBaskets speichert eine Menge von Baskets in einem FastVector zusammen mit der Gesamtanzahl der Transaktio nen f r einen Tag Die Anzahl der Warenk rbe l sst sich ber die L nge des FastVectors feststellen Es werden folgende Methoden be reitgestellt e get set Methoden Methoden f r den Z hler e Methoden zum Hinzuf gen und Entfernen von Warenk rben e
309. r im Bezug auf das Geburtsjahr gebildet werden wenn Jahreszah len existieren die nicht exakt mit den vier bisher angelegten Geburts jahren bereinstimmen Es sind daher weitere Kunden mit den vier bisher existierenden Geburtsjahren angelegt worden Als Folge davon existieren jedoch auch Kunden die im geringen Ma e von diesen vier Geburtsjahren abweichen Das Clustering mittels des SimpleKMeans Algorithmus hat dabei nach wenigen Versuchen die abweichenden Ge 158 16 1 Clusteranalyse nach Kunden burtsjahre den vier schon existierenden Geburtsjahren zugeordnet 3 Erweiterungsschritt Aufgrund der beschriebenen Ergebnisse ist es das neue Ziel gewe sen die Geburtsjahre der Kunden weiter zu differenzieren um so die synthetisch angelegten Testdaten realit tsnah zu gestalten Des Weiteren ist die Anzahl der Postleitzahlen von nur zwei verschiede nen Eintr gen um weitere erg nzt worden Es soll auf diese Weise m glich sein nicht nur Kunden aus zwei verschiedenen St dten zu clustern sondern auch Kundengruppen aus der entsprechenden Re gion zu identifizieren Eine Gesamt bersicht der Testdaten l sst sich in den Tabellen 16 9 16 10 16 11 16 12 16 13 finden Sie bilden in dieser Zusammensetzung Kunden der Geburtsjahre 1937 bis 1991 mit zuf lliger H ufigkeitsverteilung ab Des Weiteren ist das Geschlecht dieser Kunden weiblich 0 m nnlich 1 sowie die Postleitzahl des jeweiligen Wohnortes der Kunden abgebildet 159 16 An
310. rden kann Das letzte Attribut ist vom Typ Vektor und enth lt die in der Regel enthaltenen Produkte Beispiel Angenommen der Algorithmus entdeckt in den Eingabeda ten als erstes eine Regel die besagt dass an jedem Tag im August des Jahres 2003 die Produkte mit der ID 1 und 2 zusammen gekauft werden Sei weiterhin der Support dieser Regel 0 75 dann enth lt die Ergebnisrelation die folgende Instanz lt 2003 8 1 0 75 1 1 2 gt Dabei steht 1 f r ein sogenanntes Star Pattern also in diesem Fall f r jeden Tag Kopieren der Eingabedaten Das Framework bietet neben den ei gentlichen Analysealgorithmen auch eine M glichkeit die Eingabe 117 14 Technisches Handbuch Framework daten unver ndert an die Datensenke weiterzuleiten Das ist zum Beispiel von Nutzen wenn Daten aus einer relationalen Datenbank in eine ARFF Datei berf hrt werden sollen Hierzu dient der Sim pleTestController 14 3 4 Eigene Implementierungen einbinden Ein wesentlicher Aspekt des Frameworks ist die leichte Erweiterbar keit mit eigenen Datenguellen und senken Algorithmen Pre und Postprozessoren Diese leichte Erweiterbarkeit wird durch die F hig keit von Java erreicht Klassen dynamisch anhand ihres Namens zu instantiieren Dadurch ist es m glich den Kontrollfluss des Frame works komplett ber die Verwendung der Interfaces zu steuern ohne im Code des Frameworks jemals zu wissen welche konkreten Klas sen die Arbeit der einzelnen
311. re Version geplant 10 4 Nicht Funktionale Anforderungen Die verwendeten Algorithmen und Datenstrukturen werden so kon zipiert dass sie auch mit gro en Datenmengen eingesetzt werden k nnen Ein Beispiel daf r ist die Implementierung des Stromes als Cache um sowohl Hauptspeicher als auch Festplattenzugriffe zu opti mieren So sollte eine maximale Skalierbarkeit erreicht werden k nnen Die Software soll vorhersehbare Fehler weitestgehend abfangen und diese nach M glichkeit ohne Programmabbruch behandeln Ist ein Fortf hren des Programmablaufes nicht m glich so werden sinnvolle Fehlermeldungen ausgegeben Weitere nicht funktionale Anforderungen sollen nicht erf llt werden 10 5 Benutzerschnittstellen Nach au en sichtbar ist als API nur die M glichkeit einen Daten strom anzugeben der die Daten f r den Algorithmus einliest Der Algorithmus muss direkt aufgerufen werden da noch keine automa tische Konfiguration implementiert wird Dazu wird die WEKA API verwendet Da sowohl die Import als auch die Exportstr me momen tan speziell f r die Kartenanbieter Datenbank programmiert werden bedarf es hier keiner n heren Spezifizierung des Formates der Daten 83 10 Anforderungsdefinition 10 6 Fehlerverhalten Allgemein wird eine Fehlerbehandlung mit Hilfe von Exceptions rea lisiert Dadurch kann der Benutzer des Frameworks eigenst ndig ent scheiden wie auftretende Fehler behandelt werden sollen Fehler die durch semant
312. reits eingef gt und durch ein commit best tigt worden sind Diese notwendigen Daten lassen sich anhand der Fremdschl sselbeziehungen herausfinden Dynamische Attribute Die meisten Attribute eines Kunden werden in der Zieldatenbank an ders gespeichert als in der Quelldatenbank Werden neue Kundenat tribute gespeichert so muss eine neue Instanz des Typs KundenAt tribut manuell angelegt werden und der entsprechende Attributwert als KString KNumber oder KTertAttribut abgespeichert werden Bei den Produkten verwendet der H ndler 1 f r viele Attribute die gleiche Speicherstruktur wie der Kartenanbieter Werden jedoch neue Attribute direkt in der Tabelle Produkt angelegt so m ssen diese in gleicher Weise wie die Kundenattribute behandelt werden Es ist je doch zu beachten dass die ID einen negativen Wert haben muss da die positiven D Werte f r die schon in der Quelldatenbank vorhan denen Produktattribute reserviert sind Bei den Produkten des H ndler 2 ist analog wie bei den Kundenat tributen zu verfahren 7 2 Erweiterung der Kartenanbieterdatenbank Sobald das Schema der Kartenanbieterdatenbank ge ndert wird muss berpr ft werden ob noch alle bisherigen Importe funktionieren oder ob diese angepasst werden m ssen Wird das Datenbankschema ledig lich erweitert so ist zu berpr fen ob neue Daten eingef gt werden k nnen die bisher nicht kompatibel zum alten Schema waren 7 3 Erweiterung um weitere Datenbanken Die bi
313. rf llung von bestimmten Verwaltungsaufgaben innerhalb der Projekt gruppe die Mitarbeit an einem Zwischen und einem Endbe richt und die Erf llung der bertragenen Programmieraufgaben erwartet Fr hzeitige Aussprachen ber mangelnde Mitarbeit oder Desinteresse bei Beteiligten geh ren zum Konfliktmana gement und sollten keinesfalls verdr ngt werden Von besonde rer Bedeutung ist die kontinuierliche Erarbeitung einer Doku mentation an der alle Teilnehmer in gleichem Ma e mitwirken m ssen Dabei geht es nicht um ein Handbuch das ebenfalls er stellt werden muss sondern um die systematische Darstellung z B folgender Bereiche e Problemstellung Literatur berblick e Ist Analyse und Soll Konzept e Anforderungen Spezifikationen Benutzerschnittstellen e Empirische und formale Evaluation e Modulbeschreibungen und Implementierung e Integration und Tests e Wartung Fehlerf lle Portierungsm glichkeiten e Erweiterungen Ausblick 3 Die Zeitplanung kann nach folgendem Schema ablaufen e Vorlesungsfreie Zeit vor der Projektgruppe Vorbereitung der Vortr ge der 1 Seminarphase Einarbei tung in die Entwicklungsumgebungen e Erstes Semester Seminarphase ca vier Wochen Planungs und Entwurfsphase ca vier Wochen Spezifikationen Auf gabenverteilung Probeimplementierungen ca vier Wo chen e Vorlesungsfreie Zeit Beginn der Implementierungsphase e Zweites Semester Weiterf hrung der Implementierungs phase
314. ribute Attribute Attribute WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution Cluster 5 Prior probability 0 001 308 Mean 14 5403 StdDev Mean 13 2049 StdDev Mean 14 3912 StdDev 2 Mean 13 0049 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Attribute Attribute Attribute Attribute Attribute Attribute Attribute Cluster 6 Prior probability 0 001 Attribute Attribute Attribute Attribute Attribute Attribute Attribute WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution WG1 Normal Distribution WG2 Normal Distribution WG3 Normal Distribution WG4 Normal Distribution WG5 Normal Distribution WG6 Normal Distribution WG7 Normal Distribution Personalisierung Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 8 StdDev 2 Mean 8 StdDev 2 Mean 0 StdDev 2 Mean 0 StdDev 2 Mean 41 StdDev 2 Mean 41 StdDev 2 Mean 100 StdDev 2 0 1 0 2 226 23 3 451 45 4 324 3
315. rie in Verbindung mit dem Preis wiederum in Verbindung mit Clu stering nach Kunden und gekauften Produkten Anwendung Durch die Kombination dieser beiden Verfahren k nnen die Kunden in speziellere Gruppen eingeteilt werden als beim einfa chen Clustering nach Kunden und gekauften Produkten da der Preis der Produkte mit einbezogen wird Die Umsetzung k nnte wie in Ab schnitt 15 1 2 erfolgen 15 3 3 Zweifaches Clustering nach Kunden Eine weitere M glichkeit besteht darin auf den Ergebnissen des Clu stering ein weiteres Clustering durchzuf hren Ausgangsdaten Die Ausgangsdaten stellen die gefundenen Kun dengruppen dar die aus dem ersten Clustering nach Kunden stam men siehe Abschnitt 15 1 1 Analyseverfahren Clustering SimpleKMeans cobweb EM XMeans Interpretation Im Vergleich zum Clustering von Kunden k nnen noch detailliertere Kundengruppen bestimmt werden da das zweite Clustering auf bereits vorgruppierten Kundendaten operiert Beispiel e weibliche Kunden aus Oldenburg 1 Clustering nach Kunden im Alter zwischen 27 und 34 2 Clustering nach Kunden 147 15 Konzept Nicht temporale Personalisierung Anwendung Wenn ein Kunde einer Kundengruppe zugeordnet wer den w rde k nnten ihm Artikel angeboten werden die bereits von anderen Kunden der gleichen Gruppe erworben wurden Durch das zweifache Clustering k nnen lediglich genauere Kundengruppen ge funden werden die Umsetzung entspricht daher der d
316. ring hat demnach keine Cluster erstellt die entsprechend der Aufz hlung aus Abschnitt 16 1 5 interpretiert werden k nnen 167 16 Anwendung Nicht temporale Analysen Weitere Clusterings In der n chsten Phase des Clusterings ist mit einer weiten Streuung des Seed Parameters 1000 bis 10000 gear beitet worden wobei die Clusteranzahl jeweils bei ca 8 gelegen hat Dabei ist wiederum h ufig das Problem aufgetreten dass die gefunde nen Cluster nicht die Ergebnisse wiedergegeben haben die bez glich der leichten Interpretierbarkeit der Clusterergebnisse w nschenswert gewesen sind Begr nden l sst sich dieses h ufig mit der nicht ent sprechend gefundenen Anzahl an Clustern sowie einer abweichenden Zuordnung der Kunden zu diesen Clustern Die Tabelle 16 18 enth lt dabei alle weiteren durchgef hrten Clusterings Als sinnvolle Ergeb nisse innerhalb der Tabelle werden alle Clusterergebnisse bezeichnet die die Verteilung der Kundenattribute entsprechend der gew nsch ten leichten Interpretation wiedergeben Existiert in den Ergebnissen eine geringe Abweichung aber dennoch die M glichkeit einer sinnvol len Interpretation so werden die Ergebnisse in der Tabelle ebenfalls noch als sinnvoll bezeichnet Diese Abweichungen k nnen sein e Jahresschwerpunkte in Verbindung mit doppelten Geschlechts zuordnungen e falsche Jahresschwerpunkte rechnerisch nicht sinnvoll e drei gleiche Jahresschwerpunkte mit den dazugeh rigen Ge schl
317. rischen Muster und ihrer zugeh rigen As soziationsregeln wird ein dreidimensionales Array von SetOfBaskets angelegt welches f r jedes elementare Zeitintervall im Beobachtungs intervall demnach f r jeden Tag ein SetOfBaskets enth lt In diesem werden alle Regeln die f r einen Tag oder ein Wildcard Muster im Beobachtungsintervall halten in Form von Baskets gespeichert Da bei haben alle Baskets die gleiche Anzahl an Artikeln Ein Basket repr sentiert dabei eine Assoziationsregel die an dem zugeh rigen Datum den Mindest Support h lt Dieses geschieht indem die Ar tikelnummern die in einer Regel assoziiert werden in einen Basket aufgenommen werden Alle g ltigen Assoziationsregeln eines Kalendermusters werden in ei nem SetOfBaskets gehalten Um Berechnungen zu erleichtern und zu beschleunigen wird in den SetOfBaskets und den Baskets zus tzlich die Gesamtanzahl von Warenk rben f r ein elementares Zeitintervall oder Wildcard Muster abgespeichert Die Klassen SetOfBaskets und Basket stellen f r die Berechnung die im Entwurf in Abschnitt 11 2 beschriebenen Funktionalit ten bereit 13 3 Implementierungsdetails Nachfolgend werden die Implementierungsdetails der einzelnen Klas sen vorgestellt Als weiterf hrende und erg nzende Informationen sei auf die Javadoc Dokumentation Dik03 des Package diko weka as sociations verwiesen 13 3 1 TemporalAssociationRules Die Klasse TemporalAssociationRules f hrt die Logik des Algor
318. rk AlgorithmRunner properties txt Orelation clusterResult Gattribute haendlerid numeric Gattribute name Haendler 1 Haendler 2 Gattribute clusterId numeric Odata 1 Haendler 1 0 2 Haendler 2 1 Number of iterations 2 Cluster centroids Cluster 0 Haendler 1 Cluster 1 Haendler 2 Abbildung 14 5 Ausgabe des Beispiellaufes durch die entsprechende Nummer des Attributs ersetzt wird Das zweite ausgelesene Attribut ist der Name des H ndlers eine nomina le Zeichenkette Um dem Framework mitzuteilen welcher Analyse Algorithmus an zuwenden ist wird nun der Name des entsprechenden Algorithmus im Schl ssel algorithm angegeben in diesem Falle die Java Klasse diko framework algorithms Simple KMeansController Mit diesen Angaben ist die Konfiguration des Frameworks f r das an fangs beschriebene Anwendungsszenario abgeschlossen und das Frame work kann gestartet werden Das geschieht wie in Abbildung 14 5 zu sehen ber die main Methode der Klasse AlgorithmRunner Diese erwartet als einzigen Parameter den Namen der Datei die die Pa rameter zur Steuerung des Frameworks enth lt in diesem Fall pro perties tzt im aktuellen Verzeichnis deren Inhalt wie beschrieben in Abbildung 14 4 dargestellt ist 128 14 5 Anwendungsbeispiele 14 5 2 Komplexe Analyse mittels AnalysisRunner Wie im vorherigen Abschnitt gezeigt ist es sehr leicht mit dem Framework einfache Analysen durchzuf hren Es wird lediglich ei
319. rnetbasierter Handelsszenarien die Aufgabe gestellt ein System zu entwickeln welches personalisierte internetbasierte Handelsszena rien abbildet vgl Abbildung 2 1 Es soll eine Java Bibliothek ent wickelt werden die Muster in Daten findet welche als Grundlage eines Personalisierungskonzeptes genutzt werden k nnen Zudem soll ein exemplarischer Online Shop entwickelt werden der die Ergebnisse der Bibliothek visualisieren und somit die Bibliothek auf ihre Funk tion hin testen soll Die H ndler sind beim Einsatz eines Kartensystems bestrebt f r die ses zu werben und m glichst viele Kunden f r den Gebrauch der Karte zu motivieren Da sich der Kunde bei einer Bestellung oder bei 15 2 Anforderungsdefinition Gesamtszenario 2B Airline Reiseb ro Banken 5 GE S 9 lt K CT Multi channel Jet Bestellungen ai Bestellungen Geh S EE Anfragen Web Logs H ndl er e GER cross media G t 4 selling te S Card informations 2B Payback Miles amp amp More SCH E A Ze SI 53 P rsonalisiertes So Angebotspalette SN i E Angebat E H ndler Abbildung 2 1 Aufgabenstellung einem Kauf anhand seiner Karte bzw seiner Kartennummer identifi ziert kann der H ndler die erhaltenen Daten personenbezogen zuord nen Im Internet k nnen Kundenanfragen und das Verhalten direkt mit dem entsprechendem Interessenten in Verbindung gebracht wer den Das Kaufverhalten wird dadurch f r die H ndler auswertbar
320. rodukte sind Bademoden Winterbekleidung Saisonfr chte etc 18 2 2 Bewertung Das temporale Clustering eignet sich sehr gut um saisonale Zusam menh nge festzustellen Produkte die nur zu bestimmten Zeiten ge 209 18 Anwendung temporaler Analysen kauft werden bilden einen eigenen Cluster und lassen sich im Folge jahr verkaufsf rdernd bewerben Vorsicht gilt bei saisonalen Produkten deren Cluster nur wenige Ta ge umfasst Hierbei k nnte es sich um einen Feiertag handeln der im Folgejahr m glicherweise auf ein anderes Datum f llt Die Bewerbung der saisonalen Produkte dieses Clusters k nnte so unter Umst nden zu fr h oder noch schlimmer zu sp t erfolgen Ein weiteres Risiko besteht bei Angebotswaren Wenn der H ndler beispielsweise einen Sonderposten zu einem bestimmten Zeitraum an bietet k nnte sich dieser nach der Analyse eventuell in einem eigenen Cluster wiederfinden Das Bewerben eines bereits ausverkauften Son derpostens vom Vorjahr w re sinnlos f r das Unternehmen 18 2 3 Erweiterungsm glichkeiten Es gibt eine Vielzahl von denkbaren Erweiterungen Eine wesentliche Erweiterung die das Analyseergebnis mit wenig Aufwand qualitativ verbessern w rde w re die Vorverarbeitung der Transaktionen z B durch die Reduzierung der Analyse auf wenige Produkte oder auf h ufig gekaufte Produkte 210 19 Ergebnisse und Schlussbetrachtung der Personalisierung Dieses Kapitel stellt mit einem Soll Ist Vergl
321. rreicht da mehrere Cluster den Centroiden 0 0 0 0 0 0 0 besitzen und die Nichtk ufer nur einem Cluster zugeordnet werden Eine weitere Erh hung der Clusteranzahl auf 12 ergibt die Erkenntnis dass sich die Kunden auf die Mehrzahl der Cluster verteilen und somit kleinere Gruppen ent stehen Der n chste Schritt auf 20 Cluster ergibt f r die Centroiden teilweise Werte von unter 10 bzw ber 22 Prozent die bisher in den Analysen nicht aufgetreten sind Das Intervall der Eintr ge 5 28 Pro zent in der zu Grunde liegenden Tabelle wird also weiter ausgereizt das Gros der Werte liegt aber weiterhin bei 13 bis 17 Prozent Um die beobachteten Entwicklungen weiter zu untersuchen wurden Die Angaben in Prozent beschreibt das Verh ltnis der gekauften Artikel einer Warengruppe zu der Gesamtmenge der gekauften Artikel 187 16 Anwendung Nicht temporale Analysen im letzten Schritt auch Analysen mit einer Maximalzahl von 100 bzw 200 Clustern durchgef hrt Auch hier ist der Trend zu erkennen dass immer mehr Extremwerte des Intervalls erreicht werden 7 23 Pro zent und zudem die viele Centroidenwerte sich aus dem Bereich von 13 17 Prozent zu den R ndern hin entfernen Bei diesen Analysen entstehen au er den Nichtk ufern keine gr eren Cluster die mehr als 2 Prozent der Kunden enthalten Unabh ngig vom gew hlten Umfeld und Verfahren bleibt demnach festzuhalten dass aus den gegebenen Daten keine Ergebnisse zu er langen sind die f
322. rt boolean ImportDB importiert die Daten der Datenbank im Datenbankschema von H ndler 1 in die Datenbank des Kartenanbieters in Abh ngig keit der bergebenen Parameter Ruft die Methoden f r den Import und die Aktualisierung der Daten aus den einzelnen Ta bellen auf mit anderen Worten alle anderen Methoden Setzt 55 5 Objektorientierter Entwurf 10 56 je nach Fortschritt des Imports den Wert f r das Attribut Sta tus in der Tabelle Haendler des Kartenanbieters Liefert true zur ck falls der Import ohne Probleme abschlie t ansonsten false void getlastUpdate Timestamp Liest den Wert von Haendler Aktualisierungsdatum aus der Kar tenanbieterdatenbank aus void importArtikel Die Methode liest die relevanten Daten aus der Tabelle Artikel im Datenbankschema von H ndler 2 aus und f gt sie zusammen mit den notwendigen Daten aus verwandten Tabellen in die Tabellen Produkt Einordnung und Sortiment ein void importBon Die Methode liest die relevanten Daten aus der Tabelle Bon im Datenbankschema von H ndler 2 aus und f gt sie zusammen mit den notwendigen Daten aus verwandten Tabellen in die Tabellen Transaktion und Rechnung ein void importFiliale Die Methode liest die relevanten Daten aus der Tabelle Artikel im Datenbankschema von H ndler 2 aus und f gt sie zusammen mit den notwendigen Daten aus verwandten Tabellen in die Tabelle Shop ein void importKategorie Die Meth
323. rten H ndlerdaten in der Kartenanbieter Datenbank zu besch ftigen Die Basis der Datenanalyse stellt der KDD Prozess dar Dieser Prozess gliedert sich in die Phasen Selektion Vorverabeitung Transforma tion Data Mining und Interpretation Es stehen mehrere Verfahren zum Data Mining zur Auswahl siehe Tabelle 2 1 mit denen die H ndlerdaten analysiert werden k nnen Die Projektgruppe hat sich aus Zeitgr nden daf r entschieden sich auf ein nicht temporales Clustering und ein temporales kalenda rische Muster Verfahren zu beschr nken Durch Clustering k nnen Daten in Gruppen m glichst hoher hnlichkeit eingeteilt werden Als Arbeitsbasis wird die Klassenbibliothek WEKA verwendet Zur Um setzung des Cluster Verfahrens wird WEKA genutzt da dort dieses Verfahren bereits vorhanden ist F r die temporalen Assoziationsre geln wird die Bibliothek um temporale Aspekte erweitert So sollen Cluster entdeckt und kalendarische Assoziationsregeln gefunden wer den k nnen Es wird zu den vorhandenen Clusteralgorithmen von WEKA ein eigener Algorithmus implementiert der die kalendarische Assoziationsanalyse in WEKA erm glicht Die Bibliothek soll hier bei metadatengesteuert sein Es soll eine Portabitit t des Systems gew hrleistet werden indem das Framework berall nutzbar sein soll Das Framework wird in Java programmiert und dient als Schnittstelle zu WEKA Es ruft die Analysealgorithmen in WEKA auf und spei chert die Ergebnisse in eine
324. rten Vervielfachung der synthetisch angelegten Testdaten haben die vorher erprobten Pa rametereinstellungen Clusteranzahl 8 Seed 5 Kundengruppen er geben die im Bezug auf die angesprochene Interpretierbarkeit der Cluster keine entsprechenden Ergebnisse geliefert haben Von daher mussten die Parametereinstellungen wie in Tabelle 16 30 zu sehen etwas korrigiert werden Ergebnis des Clusterings nach Geschlecht und Geburtsjahr Die geringe Abweichung in der Verteilung der Kundendaten hat dazu gef hrt dass andere Parametereinstellungen zur Anwendung kom men mussten Es sind dabei jedoch wie in den Tabellen 16 31 und 179 16 Anwendung Nicht temporale Analysen SQL Query select knd id gebdatum geschlecht from Kunden Clusteralgorithmus SimpleKMeans oo EH Anzahl vorgegebener Cluster OO Tabelle 16 30 Einstellungen knd id gebdatum geschlecht 0 poer m s oso r Tabelle 16 31 Ergebnis knd id gebdatum geschlecht 16 20 zu sehen ist fast identische Kundengruppen gefunden worden Diese lassen sich nun f r die Personalisierung innerhalb des Shops verwenden vgl Abschnitt 16 1 7 Clustering nach PLZ und Geburtsjahr Aufgrund der nicht gleichm ig durchgef hrten Vervielfachung der synthetisch angelegten Testdaten haben auch hier die vorher erprob ten Parametereinstellungen Clusteranzahl 9 Seed 3 keine sinnvoll zu interpretierenden Kundengruppen ergeben Daher mussten die Pa rametereinstellungen wie
325. rund von Zeitproblemen nicht notwendig gewesen ist sind bei diesem Clustering weniger Parametereinstellun gen getestet worden Es ist jedoch bei diesen Versuchen auch relativ schnell klar geworden dass es kaum m glich sein wird 16 Cluster zu identifizieren was bez glich der Interpretierbarkeit jedoch als am sinnvollsten erscheint Die Anzahl der 16 zu findenden Cluster resul tiert dabei aus zwei Geschlechtern zwei Einzugsgebieten der Kunden und den vier Geburtsjahresschwerpunkten der Kunden innerhalb der Testdaten 1 Clustering Das erste Clustering auf den vier beschriebenen At tributen ist mit den Einstellungen aus Tabelle 16 28 durchgef hrt worden Ergebnis des ersten Clusterings Die Resultate des ersten Cluste rings angezeigt in Ergebnistabelle 16 29 geben die Verteilung der Kundenattribute in den Testdaten nicht entsprechend der gew nsch ten Form wieder Besonders deutlich wird dieses bei der Kunden gruppe weibliche m nnliche Twens In den Clustern 7 11 12 und 14 werden diese alle dem Einzugsgebiet um die Postleitzahl 23123 zuge ordnet Diese entsprechen allerdings nicht den Clustern die bez glich 177 16 Anwendung Nicht temporale Analysen 178 vo passo a s ess 13 s onre o D sen CE usi poes a osso a Tabelle 16 29 Ergebnis 1 Clustering 16 1 Clusteranalyse nach Kunden ihrer Interpretierbarkeit als sinnvoll zu bezeichnen sind Ansonsten ist dieses Clustering als zufriedenstellend anzus
326. rung Der Online Shop visualisiert die Ergebnisse der Personalisierungsbi bliothek die von der Projektgruppe implementiert wurde So sollen alle Ergebnisse der Analysen die mit Hilfe des Frameworks aus den 230 20 4 Personalisierung Analyse Algorithmen aus WEKA und der temporalen Assoziations analyse auf den Testdaten der H ndler und Kartenanbieterdaten banken erzeugt wurden im Online Shop in Form von dynamischen Webseiten visualisiert werden Die verschiedenen Formen der in den Online Shop eingeflossenen Per sonalisierungstechniken werden im Folgenden vorgestellt 20 4 1 Top5 der meistverkauften Produkte einer Nutzergruppe Meldet sich ein Benutzer am Online Shop an so wird anhand seiner KundenID eine Einordnung bez glich zweier Cluster durchgef hrt Die erste Einordnung basiert auf den gefundenen Clustern wobei die Aspekte des Alters und der geographischen Herkunft anhand der Postleitzahl des Kunden ber cksichtigt werden Die zweite Einord nung basiert auf den gefundenen Clustern die unter Ber cksichti gung der Aspekte des Alters und des Geschlechts des angemeldeten Kunden gefunden wurden siehe hierzu Abschnitt 16 1 So werden mit der KundenID jeweils f r beide Cluster eine Cluster ID aus der Datenbank gelesen Anhand dieser ClusterIDs k nnen die f nf meistverkauften Produkte der anderen Kunden des jeweiligen Clusters aus der Datenbank geladen und in Form einer Liste unter halb des Anmeldeformulars im Online Shop
327. s f r die Vorgehensweise des SimpleKMeans Clusteralgo rithmus unter WEKA zu erlangen 3 Testlauf Um einen weiteren Clusteralgorithmus zu testen ist im Folgenden auf den gleichen Testdaten die auch schon in den ersten beiden Testl ufen verwendet worden sind der EM Clusteralgorithmus angewendet worden Bei diesem Clusteralgorithmus existiert unter WEKA die M glichkeit die optimale Clusteranzahl vom Algorithmus automatisch vorgeben zu lassen Ein Clustering mit diesen Einstel lungen auf der Testdatenmenge hat ca 400 Cluster ergeben wobei alle 12 Eintr ge nur einem Cluster zugeordnet worden sind Auch ein Testlauf mit manuell eingestellter Clusteranzahl von 3 hat nicht die erw nschten Ergebnisse erbracht Auf Grund dieser schlecht zu interpretierenden Ergebnisse ist dieser Algorithmus im weiteren Ver lauf nicht zur Anwendung gekommen Auch der von WEKA angebo tene cobweb Algorithmus ist w hrend des weiteren Clusterings nicht benutzt worden da die Anforderung des cobweb Algorithmus an die Datenhaltung bei gro en Datenmengen nicht mit der von der Pro jektgruppe benutzten modifizierten Version von WEKA vereinbar ist siehe Abschnitt 12 3 Aufgrund der Ergebnisse der beschriebenen Testl ufe ist entschieden worden im Folgenden den SimpleKMeans Clusteralgorithmus zu verwenden 155 16 Anwendung Nicht temporale Analysen SQL Query select Name E Preis from Produkt Clusteralgorithmus SimpleKMeans 0 Anzahl vorgegebener Cluster
328. seergebnissen k nnen Regeln in der Form wenn Produkt A gekauft wird wird ebenfalls Produkt B gekauft abgeleitet werden Mit Hilfe einer Assoziationsanalyse soll ermittelt werden welche Artikel zusammen gekauft werden Beispiel Es kann in den vorhandenen Daten beispielsweise eine Re gel wenn Bier gekauft wird werden auch Chips gekauft gefunden werden F r eine derartige Regel kann z B ein Support von 10 vor geschrieben werden d h in mindestens 10 aller Eink ufe m ssen Bier und Chips vorhanden sein Zudem soll eine Konfidenz von wenigstens 50 vorliegen d h in mindestens jeder zweiten Trans aktion in der Bier vorkommt m ssen auch Chips vorkommen Anwendung Wurde in den Ausgangsdaten eine Regel gefunden die den Schwellenwerten gen gt k nnen diese Produkte den Kunden als Produktbundles bzw Produktpakete angeboten werden Sobald ein Kunde im Shop ein bestimmtes Produkt kauft kann ihm das dazu geh rige Produkt angepriesen werden Da die Regeln f r die Menge 142 15 2 Kombinierte Analyseverfahren aller Kunden bestimmt wurden kann es sein dass einzelne Kunden ein anderes Kaufverhalten aufweisen was auch durch Support und Konfidenz wiedergespiegelt wird Kombinierte Analysen siehe Abschnitt 15 2 bieten weitergehende M glichkeiten Hierbei k nnen zun chst spezifische Kundengruppen durch das Clustering identifiziert werden auf denen im Anschluss die Assoziationsanalyse durchgef
329. setzung der Gesamtanforderung erfolgt in mehreren Teilschrit ten die jeweils in eigenen Anforderungsdefinitionen genau spezifiziert werden In der vorliegenden Anforderungsdefinition wird daher nur der erste Teilschritt beschrieben Das Analyseszenario also wird ite rativ aufgebaut so da auf diese Weise Erfahrungen aus fr heren Teilschritten einflie en k nnen In diesem Teilschritt soll ein funktionierendes Framework und die grundlegende M glichkeit zum temporalen Data Mining geschaffen werden Als Datenquelle soll hier vorerst nur die Datenbank des Kar tenanbieters verwendet werden Dazu sind folgende Schritte notwen dig e Implementierung einer rudiment ren Import Exportm glich keit unter Vernachl ssigung eines universellen Austauschforma tes e Erweiterung WEKAs zur Verwaltung temporaler Daten e Anpassung eines WEKA Cluster Algorithmus falls notwendig 79 10 Anforderungsdefinition e Implementierung eines Algorithmus zur Auffindung kalendari scher Muster e Bereitstellung der Analyseergebnisse in einem Austauschformat 10 2 Systemeinsatz und umgebung Die Quelldatenbank befindet sich auf einem Oracle Server Version 9iR2 Da die zugrundeliegende WEKA Bibliothek in Java implemen tiert ist werden das Framework und die Erweiterungen ebenfalls in Java realisiert Hierdurch soll ein m glichst plattformunabh ngiger Einsatz des Frameworks gew hrleistet werden 10 3 Funktionale Anforderungen In Abbildung 10 1 sind
330. sherige Integration hat sich mit der Integration der beiden H ndlerdatenbanken in die Kartenanbieterdatenbank besch ftigt Soll eine weitere Datenbank H ndler Kartenanbieter ber cksichtigt wer den wird der bisherige Code nicht ver ndert sondern erweitert 68 7 3 Erweiterung um weitere Datenbanken 7 3 1 Erweiterung um Quelldatenbanken Die vorhandenen Klassen ImportHaendler1 und ImportHaendler2 be handeln die Datenintegration zwischen den jeweiligen H ndlern und dem Kartenanbieter F r jeden neuen H ndler muss eine neue Import HaendlerX Klasse geschrieben werden Es kann zwar grunds tzlich der gleiche Aufbau wie bei den bisherigen beiden Klassen verwendet werden es existiert aber keine Oberklasse zu den ImportHaendler Klassen die einen Rahmen festsetzt Eventuell sind neue Klassen f r den initialen Import oder die Bereinigung der Ausgangsdaten zu im plementieren 7 3 2 Erweiterung um Zieldatenbanken Wird das Integrationsszenario auf weitere Kartenanbieter ausgewei tet so ist f r jede H ndlerdatenbank eine neue Klasse zu schreiben da die bisherigen speziell auf den Import in die bekannte Kartenanbieter datenbank ausgerichtet sind Die Klassen Loader und DBConnection sind jedoch so ausgelegt dass keine Anpassungen vorgenommen wer den m ssen Eventuell sind neue Klassen f r den initialen Import oder der Bereinigung der Ausgangsdaten zu entfernen 7 3 3 Technische Erweiterbarkeit Im Falle einer Erweiterung u
331. st Vergleich den Konsequenzen und vor allem mit dieser Aufgabe in Verbindung stehenden Einzelt tigkeiten u a Durchf hrung von Analysen nicht vollst ndig ber cksichtigt wurden war eine Anpassung n tig Abschlie end l t sich sagen dass auch die Zeit von 11 Wochen sehr knapp bemessen war da die Analyse einerseits durch die Vielzahl der m glichen Parameter und andererseits durch die lange Laufzeit der einzelnen Durchg nge viel Zeit beanspruchte Meilenstein Personalisierung 09 06 03 bis 20 07 03 sowie 28 07 03 bis 31 08 03 Dauer 11 0 Wochen 19 3 Fazit Im Rahmen der nicht temporalen Analyse hat sich herausgestellt dass die separate Verwendung eines Clusteralgorithmus wenig Aus sagekraft in Bezug auf die Personalisierung hat Es bietet sich daher eine Verbindung mit Assoziationsanalysen an um aussagekr ftige re Analyseergebnisse zu erhalten Da jedoch die Personalisierung in Bezug auf temporale Analysen im Mittelpunkt steht beschr nkt sich das Personalisierungskonzept auf eine Auswahl der erarbeiteten nicht 212 19 3 Fazit temporalen Analyseverfahren Weitere M glichkeiten des Clustering sind im Punkt 15 3 aufgef hrt Die Untersuchungen der Personalisierungsgruppe haben ergeben dass der aktuelle Stand des Algorithmus f r kalendarische Muster wenig sinnvolle Anwendungsm glichkeiten im Bezug auf die Personalisie rung bietet Um die kalendarischen Muster ausgiebig anwenden zu k nnen sind daher die Erweiteru
332. stein sollte vor Beginn des verbundenen Meilensteins abgeschlossen sein Vergleicht man den Meilensteinplan aus dem Zwischenbericht so f llt auf dass sich ab Meilenstein Nr 5 nderungen ergeben haben Der alte Meilenstein Nr 5 Fertigstellung Zwischenbericht wird bis zum 08 05 03 verl ngert an diese Stelle sind daf r die Anforderungsdefini tionen getreten Im Folgenden werden die einzelnen Meilensteine nun erl utert 21 9 1 Fertigstellung Integration Die Aufgaben die sich aus der Anforderungsdefinition der Integration ergeben haben sollen innerhalb dieses Meilensteins erledigt werden Dieser und die folgenden Meilensteine werden durch insgesamt zwei Wochen projektfreier Zeit unterbrochen Meilenstein 6 und 10 238 21 9 Meilensteine SE sel as ee Ee le eee A E EE me Ps Goes man ee LEI A Tr ee sg Leet CT See pee Teee e Fertigstellung Analyse 17 03 2003 10 04 2003 Bed p itesze Zeit 17042003 04 2003 eer Integration II 18 04 2003 12 05 2003 18 04 2003 05 07 2003 11 27w 12 reniostetung Zwiscnerberinti 12 reniostetung Zwiscnerberinti u 18 18042003 2003 08052005 05 2003 Personalisierungskonzept 09 06 2003 20 07 2003 07 07 2003 20 07 2003 BEE DEES ESCH DEE ME ME ES mm Abbildung 21 2 Meilensteine Gesamtprojekt 10 03 03 bis 10 04 03 sowie 18 04 03 bis 12 05 03 Dauer 8 0 Wo chen 21 9 2 Fertigstellung Analyse Parallel zur Fertigstellung d
333. stellungen 1 Testlauf 2 222200 16 2 Ergebnis 1 Testlauf e 16 3 Einstellungen 2 Testlauf 0 0 16 4 Ergebnis 2 Testlauf e 16 5 Einstellungen Clustering Produkte Preise 16 6 Ergebnis Clustering Produkte Preise 16 7 Einstellungen 1 Clustering 2 22 2 2020 16 8 Ergebnis 1 Clustering 16 9 synthetische Testdaten 16 10synthetische Testdaten 16 11synthetische Testdaten 16 12synthetische Testdaten 16 13synthetische Testdaten 16 14Einstellungen 1 Clustering 0 0 16 15 Ergebnis 1 Clustering 16 16Einstellungen 2 Clustering 2 2 22 2020 16 17Ergebnis 2 Clustering 4 16 18Clustering nach Geburtsdatum und Geschlecht 16 19Einstellungen finale Clusterings 0 16 20Ergebnis finales Clustering 22 222 020 16 21Einstellungen 1 Clustering 0 0 0 16 22Ergebnis 1 Clustering 16 23Einstellungen 2 Clustering 0 0 0 16 24Ergebnis 2 Clustering 16 25Clustering nach Geburtsdatum und DEA 16 26Einstellungen finales Clustering 0 16 27Ergebnis finales Clustering 0 0 16 28Einstellungen 1 Clustering 0 0 16 29Ergebnis 1 Clustering 2 22 222m 319 Tabellenverzeichnis 320 16 30Einstellungen knd id gebdatum geschlecht 180 16 31 Ergebnis knd id gebdatum geschlecht 180 16 32Einstellungen knd id gebdatum plz 181 16 33
334. stinct knd id geschlecht to_char gebdatum YYYY from kunde attributeName 0 kundenid attributeType 0 nominal attributeName 1 geschlecht attributeType_l numeric attributeName_2 geburtsdatum attributeType_2 numeric sink diko framework output JDBC Writer sink jdbcDriver oracle jdbc driver OracleDriver sink jdbeConnection jdbc oracle thin power2 offis uni oldenburg de 1521 power2 sink jdbcLogin xxxx sink jdbcPassword xxxx sink jdbcTable clustKundenGebGes algorithm diko framework algorithms SimpleKMeansController kMeans numClusters 10 kMeans seed 30 clusterer FilterColumns 1 259 Personalisierung anarunnergebges cfg analysis 0 configKIDGebGes analysis 0 postprocessor 0 diko personalisierung kundenattributte PostprocessorGebGes configKidGebPlz source diko framework input ConfigurableJDBCSourcelterator relation foo source jdbcDriver oracle jdbc driver OracleDriver source jdbcConnection jdbc oracle thin Apower2 offis uni oldenburg de 1521 power2 source jdbcLogin xxxx source jdbcPassword xxxx source JdbeSQL select k knd id to_char k gebdatum YYYY a plz from adresse a kunde k adresse_kunde ak where k knd id ak knd id and k knd sid ak knd sid and ak aid a aid and ak a sid a a sid and ak typ 1 attributeName 0 kundenid attributeType 0 nominal attributeName 1 geburtsdatum attributeType_l numeric attributeName 2 plz attributeType_2 numeric sink diko framework
335. szenarios die Aufgabe die Daten der H ndler aus den jeweiligen Datenbanken in die Datenbank des Kartenanbie ters zu integrieren Der Vorgang der Integration der die Daten l dt kann auf verschiedene Weise aufgerufen werden Es gibt die M glich keit der Software mittels Parameteter bergabe mitzuteilen ob sie e f r das Kartenanbieterschema essentielle Initialimportdaten in die Kartenanbieterdatenbank einf gen soll um sie so auf die weiteren Importe vorzubereiten e die Daten der H ndlerdatenbank des H ndlers 1 in die Karten anbieterdatenbank integrieren oder e die Daten der H ndlerdatenbank des H ndlers 2 in die Karten anbieterdatenbank integrieren soll Die Integration hat hinsichtlich der Vorverarbeitung der Daten Pre processing lediglich die Aufgabe ggf fehlende Attribute die jedoch 19 2 Anforderungsdefinition Gesamtszenario nicht temporal Temporale Assoziationsanalyse Clusteranalyse Sequentielle Musteranalyse Klassifikation Verl ufe temporaler und Assoziationsanalyse nicht temporaler Muster Tabelle 2 1 Auswahl Analyseverfahren in Prim rschl sseln im Kartenanbietersschema vorausgesetzt werden zu erg nzen Eine n here Beschreibung der speziellen Funktionalit t l sst sich der Anforderungsdefinition der Integration entnehmen Dort liegt eben so eine komplette syntaktische Beschreibung der m glichen Parame ter bergaben vor Die Analyse hat die Aufgabe sich mit der Auswertung der integrie
336. temporales Clustering handelt die Produkte also aufgrund ihrer temporalen Attribute gruppiert werden steht jeder Cluster f r einen Zeitraum Der Zeitraum wird durch das 201 17 Konzept Temporale Personalisierung Kaufdatum des zuerst gekauften und des zuletzt gekauften Produk tes eingegrenzt Ein solcher Zeitraum kann als Saison interpretiert werden Produkte die dann in diesem Cluster enthalten sind haben als Eigenschaft dass sie bevorzugt in dieser Saison gekauft werden Diese Produkte werden deshalb als saisonale Produkte bezeichnet 17 2 4 Beispiel M gliche Ergebnisse sind Cluster die e nur Weihnachtsartikel e nur Sommerartikel e nur Winterartikel enthalten 17 3 Sequentielle Muster Sequentielle Muster sind mit Assoziationsregeln zu vergleichen Asso ziationsregeln stellen Relationen und Zusammenh nge zwischen ein zelnen Objekten oder deren Attributen her Sequentielle Muster erf l len eine hnliche Aufgabe doch in einem Punkt unterscheiden sie sich von den Assoziationsregeln g nzlich Assoziationsregeln sind so ge nannte Intra Transaktionsmuster also Muster innerhalb einer Trans aktion beispielsweise innerhalb eines Warenkorbs Sequentielle Mu ster dagegen sind Inter Transaktionsmuster das hei t es werden Mu ster zwischen verschiedenen Transaktionen und nicht zwangsl ufig in nerhalb dieser untersucht So k nnen beispielsweise Zusammenh nge bei verschiedenen Eink ufen ber einen Zeitra
337. tenquelle 114 120 als Datensenke 115 122 215 basket jsp 224 catalog jsp 222 228 final jsp 227 footer jsp 226 footer2 jsp 227 header jsp 218 227 index jsp 216 217 logic jsp 217 navigation jsp 219 220 227 product jsp 223 228 root jsp 221 228 user jsp 225 Kalendarische Muster 20 83 195 203 Katalog 221 222 KDD Prozess 20 Konfidenz 142 Login 219 Loginxdvi 216 materialisierte Sicht 184 maxNumClusters 192 Meilensteine 236 MetaDataProvider 112 minNumClusters 192 MissingPropertyException 113 Nicht temporale Analyse 137 Online Shop 15 215 Anforderungen 215 Anwendungsfall 227 Assoziationsregel 229 Aufbau 217 Ausblick 244 basket jsp 224 Benutzer Management 216 catalog jsp 222 Detailansicht 223 footer jsp 226 footer2 jsp 227 header jsp 218 Implementierung 215 Katalog 221 222 navigation jsp 219 220 product jsp 223 Produkt 223 root jsp 221 Struktur 216 user jsp 225 Warenkorb 224 OptionHandler 112 Index Parameter 119 Algorithmen 122 Datenquellen 120 Datensenken 121 einfache Analysen 126 komplexe Analysen 125 129 Personalisierung 188 im Shop 228 Produktempfehlung 229 temporale 195 Top 5 229 Personalisierungs Framework 79 Personalisierungskonzept Ausblick 243 Postprocessing 109 Precise Match 101 Preprocessing 109 Produktdetailansicht 223 Produkttyp Analyse von 189 Ergebnisse der Analyse 191 PropertyExcep
338. ter Verwendung eines Publish Subscribe Ansat zes erfolgen Die gekauften Informationen kann der H ndler nutzen um Kunden kundengruppengerechte Angebote z B ber das Internet unterbreiten zu k nnen Die sich ergebenden Vorteile f r alle partizipierenden Gruppen wer den im Folgenden dargestellt Kunden erhalten ein auf sie zugeschnit tenes Informations und Warenangebot der H ndler kann seine Kun den besser an sich binden und der Kartenanbieter profitiert durch den Verkauf seiner Analyseergebnisse Tats chlich profitieren jedoch in der Regel nur die Kartenanbieter und die H ndler da die Kunden ihre Daten f r eine geringe Gegenleistung bereitstellen Der Kunde wird durch die Weitergabe seiner Daten zum gl sernen Kunden wodurch Probleme entstehen k nnen z B bez glich des Datenschut 10 1 4 Projektgruppenantrag zes Der H ndler hingegen begibt sich durch die Einf hrung von Kartensystemen in eine Abh ngigkeit zu dem mit ihm kooperierenden Kartenanbieter F r Kunden und H ndler kann es ferner von Nach teil sein dass ihre Daten in einem Informationsverbund gespeichert werden auf den sie nur beschr nkt Einfluss nehmen k nnen Wenn z B ein Kartenanbieter einer Branche mit einem H ndler kooperiert sollte er z B auch technisch daran gehindert werden diese Daten einem Konkurrenten dieses H ndlers zukommen zu lassen Nachteile f r den Kartenanbieter ergeben sich i d R nicht Die Projektgruppe versetzt sich in d
339. tformu nabh ngigkeit resultiert da das Ausf hren auf geeigneten Systemen mit einer Java Laufzeitumgebung gew hrleistet wird Funktionale Anforderungen Es werden alle Daten aus den beiden H ndlerdatenbanken ausgele sen um sie anschlieBend in die Datenbank des Kartenanbieters ein zuf gen Es besteht die M glichkeit per Kommandozeilenparameter Einfluss auf die Integration zu nehmen Dabei k nnen die Namen der Quell und Zieldatenbank die erforderlichen Zugangsdaten zu den Datenbanken der Treiber der zum Zugriff auf die Datenbank n tig ist sowie der Name des Rechensystems auf dem die Datenbank l uft bergeben werden Eine genauere Schnittstellendefinition erfolgt im Gliederungspunkt Benutzerschnittstellen Das Programm besteht aus insgesamt vier Klassen wobei eine Klas se f r die Datenbankverbindung eine Klasse zur Steuerung des Pro grammablaufs und jeweils eine Klasse f r den Import der Daten ei nes H ndlers zust ndig ist Das Schema f r die Daten bertragung zwischen H ndlerdatenbanken und Kartenanbieterdatenbank wird in Tabellenform im Anhang dieses Endberichtes dargestellt Nicht funktionale Anforderungen Nicht funktionale Anforderungen f r das System sind e Portabilit t Plattformunabh ngigkeit e Stabilit t leichtes Abfangen von Fehlern e Benutzerfreundlichkeit bergabe von Steuerungsparametern e Wart und Erweiterbarkeit bersichtliche Programmstruktur und Dokumentation e Sicherheit Zugriff a
340. tion 113 ResultWriter 112 Sequentielle Muster 200 Sequenz ID 71 SetOfBaskets 90 94 105 SimpleKMeans 186 Parameter 123 SinkNotAvailableException 114 SourceNotAvailableException 114 Star Pattern siehe Wildcard Muster Support 142 Swap 89 98 synthetische Testdaten 157 Clustering 160 SYSTIMESTAMP 72 Temporal Apriori 101 325 Index TemporalAssociationRules 89 92 103 Temporale Analysen Anwendung 203 Konzept 195 temporale Assoziationsregeln sie he TemporalAssociation Rules Temporale Erweiterung von WEKA 82 Tomcat 215 Vektor Attribute Speichern von 115 Warenkorb 224 temporales Clustering 197 206 Warenkorbanalyse 189 Wasserfallmodell 27 28 Abnahme 29 Analyse 28 Design 29 Einf hrung 29 Realisierung 29 Voruntersuchung 28 WEKA 18 nderungen 118 Architektur 87 ARFF Datei 88 Cache 89 95 Funktionen 152 Instance 88 InstanceCache 91 95 Instances 87 92 JDBCSourcelterator 89 91 Loader 88 Sourcelterator 89 90 Swap 89 98 temporale Attribute 82 326 temporale Datenhaltung 88 Temporallnstance 88 WEKA GUI 185 Wildcard Muster 92 102 XMeans Anwendung 191 maxlterations 191 maxKMeans 191 maxKMeansStructure 191 Parameter 123 191 Zeitattribute 71 Zeitintervall elementares 101 Zeitstempel 82 Zwischendatenbank 31 Glossar Aggregation Die bezeichnet das Zusammenfassen von Daten mit tels einer Berechnungsvorschrift Aggregations
341. tion Mean 14 9725 StdDev 3 0384 Attribute WG2 Normal Distribution Mean 13 9526 StdDev 2 8308 Attribute WG3 Normal Distribution Mean 14 1814 StdDev 3 0391 Attribute WG4 Normal Distribution Mean 12 1571 StdDev 1 797 Attribute WG5 Normal Distribution Mean 13 1428 StdDev 2 8964 Attribute WG6 Normal Distribution Mean 14 545 StdDev 2 7335 Attribute WG7 Normal Distribution Mean 13 489 StdDev 2 8439 Cluster 5 Prior probability 0 003 Attribute WG1 Normal Distribution Mean 0 StdDev 0 Attribute WG2 Normal Distribution Mean 19 3333 StdDev 21 9292 Attribute WG3 Normal Distribution Mean 19 3333 StdDev 21 9292 Attribute WG4 Normal Distribution Mean 0 StdDev 0 Attribute WG5 Normal Distribution Mean 33 3333 StdDev 47 1405 Attribute WG6 Normal Distribution Mean 13 6667 StdDev 19 3276 Attribute WG7 Normal Distribution Mean 13 6667 StdDev 19 3276 Cluster 6 Prior probability 0 0955 Attribute WG1 Normal Distribution Mean 14 6259 StdDev 2 7707 Attribute WG2 Normal Distribution Mean 11 3634 StdDev 2 0527 305 Personalisierung Attribute WG3 Normal Distribution Mean 11 3579 StdDev 1 9557 Attribute WG4 Normal Distribution Mean 15 2066 StdDev 2 328 Attribute WG5 Normal Distribution Mean 14 2408 StdDev 2 9122 Attribute WG6 Normal Distribution Mean 3 4706 Attribute WG7 Normal Distribution Mean 14 3688 StdDev 2 1227
342. tseite aufgef hrt werden Zur Bestimmung der Gruppen kann eine gewisse Anzahl oder eine prozentuale Grenze z B alle ber 20 Prozent gew hlt werden Das genaue Verfahren ist aber stark von der Anzahl der Warengruppen abh ngig Im Rahmen des Projektes wurde dieser Aspekt nicht weiter verfolgt da die Daten keine sinn vollen Tests zulassen Ein zweiter Weg ist die Verwendung der gefundenen Cluster als Grund lage f r weitere Analysen wie schon in dem Konzept erw hnt w re die Assoziationsanalyse eine m gliche Wahl Die f r das jeweilige Clu ster gefundenen Regeln k nnten f r einen Kunden des Clusters der den ersten Teil der Regel erf llt hat angewandt werden in dem ihm die Folge dieser Regel als angeboten wird 16 2 5 Fazit Als Fazit dieser Analyse ist festzuhalten dass die Generierung der Testdaten mit mehr Sorgfalt und vor allem mit Sicht auf die be vorstehenden Aufgaben betrieben werden sollte Eine Verwendung 189 16 Anwendung Nicht temporale Analysen von realen Handelsdaten w re eine Alternative um Kundenprofile zu erhalten mit denen die Personalisierung besser durchgef hrt wer den k nnte Jedoch standen der Projektgruppe Echtdaten nicht zur Verf gung 16 3 Clusteranalyse von Warenk rben nach Produkttypen Im Folgenden wird die Umsetzung des Konzeptes Clustering von Kunden und gekauften Produkten siehe Kapitel 15 erl utert Wie unter Abschnitt 16 3 1 beschrieben ist die Analyse auf Produktebene
343. tung vorhandener Software Pla nung und Auswahl von Sprachen Nutzung von Software Ent wicklungswerkzeugen maschinenabh ngige und maschinenun abh ngige Konzepte e Konkrete Erstellung von Software unter gleichzeitiger Anferti gung einer Dokumentation und weiterer Materialien Handb cher Konfigurationen Wartungsanweisungen usw e Arbeitsstil und pers nliche Bef higungen Organisation um fangreicher Projekte Pr sentation von Resultaten und Teilnah me an Diskussionen Sitzungen mit pr ziser Protokollierung Planungs und Konfliktmanagement Einarbeitung und Beschaf fung von Literatur Einblick in arbeitspsychologische Ph nome ne 1 3 Hinweise f r Veranstalter und Studierende Entsprechend dieser Ziele sollte eine Projektgruppe nach folgendem Schema geplant werden und ablaufen 1 Die Vorgaben durch die Veranstalter umfassen e Grobziele der Projektgruppe mit Themenstellung und Ziel setzungen e Zeitplanung ber zwei Semester e Literaturangaben und Vortr ge f r die Seminarphase e Vorschl ge f r Selbstverwaltungsaufgaben e Teilnahmevoraussetzungen e pr zise Kriterien f r die Erlangung des Projektgruppen scheins e ben tigte Ressourcen des Fachbereichs und Entwicklungs umgebungen 2 Minimalergebnisse Von jedem Teilnehmer wird die aktive Mit arbeit an den Projektgruppensitzungen die Vorbereitung und 1 3 Hinweise f r Veranstalter und Studierende Abhaltung eines oder zweier Seminarvortr ge die E
344. uf die Datenbanken nur f r berechtigte Nut zer 32 4 1 Anforderungsdefinition Gro er Wert wird zudem auf eine umfassende Dokumentation des Systems gelegt Benutzerschnittstellen Das Programm l sst sich aus einer Kommandozeile mit Komman dozeilenparametern starten So k nnen die folgenden acht Parameter int sourceDB int targetDB String hostNameSDB String driverSDB String userSDB String passwdSDB String hostNameTDB String driverTDB String userTDB und String passwdTDB optional ber geben werden In diesem Falle werden die Parameter f r die Integra tion genutzt Weiterhin existiert die M glichkeit nur die sechs Kom mandozeilenparameter int sourceDB int targetDB String userSDB String passwdSDB String userTDB und String passwdTDB zu ber geben Bei dieser L sung werden die Werte f r hostNameSDB host NameTDB sowie driverSDB und driverTDB fest im Programm co diert Schlie lich kann bei initialem Import auch der Kommandozei lenparameter init aufgerufen werden um die Kartenanbieterdaten bank auf die Importe der Daten aus den H ndlerdatenbanken vorzu bereiten Anlegen von Werten f r LOV Tabellen usw Auf das Auf treten von Fehlern soll das Programm mit Programmabbruch und Ausgabe eines Fehlertextes reagieren Folgende Fehler k nnen auftre ten 1 Fehlerhafte Zugangsdaten Verhalten kein Verbindungsaufbau 2 Fehler in der Datenbank z B Attributname ge ndert Verhal ten Angabe der Fehlerquelle
345. um eigene Erweiterungen erg nzen wollen Grundlegende Kennt nisse in den Bereichen KDD und Data Mining werden vorausgesetzt Der Rest dieses Handbuchs ist folgenderma en aufgebaut Zun chst werden in Abschnitt 14 1 die Anforderungen an das Framework ge nannt Dann wird in Abschnitt 14 2 die grundlegende Architektur des Frameworks beschrieben In Abschnitt 14 3 wird auf die konkrete Java Implementierung des Frameworks eingegangen Der darauf fol gende Abschnitt gibt einen berblick ber alle Parameter mit denen sich das Framework steuern l sst Abschnitt 14 5 erl utert die Benut zung des Frameworks anhand zweier Anwendungsbeispiele Der letzte Abschnitt bewertet das Framework bez glich der Anforderungen und gibt einen Ausblick auf weitergehende Entwicklungsm glichkeiten 14 1 Anforderungen Das hier beschriebene Framework stellt die Weiterentwicklung des in der Anforderungsdefinition der Analyse Gruppe Kapitel 10 be schriebenen Analyse Systems dar Dort wird erl utert dass die Pro jektgruppe die Aufgaben der Analyse zun chst in einem einfachen System entwickeln will in dem zun chst nur zwei Algorithmen mit fest vorgegebenen Daten ausgef hrt werden Das Ziel der Projektgruppe ist jedoch die Entwicklung einer Biblio thek die solche Analysen metadatengesteuert vornehmen kann Die 107 14 Technisches Handbuch Framework Aufgaben des Frameworks sind demnach e das Auslesen der zu analysierenden Daten aus einer m glichst
346. um von mehreren Wo chen entdeckt werden siehe auch Wie03 17 3 1 Ausgangsdaten Die Analyse der sequentiellen Muster wird auf den Warenkorbdaten des Online H ndlers durchgef hrt 17 3 2 Analyseverfahren Als Analyseverfahren k nnte der Generalized Sequential Pattern Algorithmus GSP ausgew hlt werden Dieser Algorithmus ist als 202 17 3 Seguentielle Muster temporale Erweiterung des in WEKA implementierten Apriori zu verstehen Wie03 17 3 3 Interpretation Seguentielle Muster stellen Zusammenh nge zwischen mehreren Trans aktionen dar Ein Muster kann so interpretiert werden dass die ent haltenen Produkte in Folge gekauft werden und zwischen den K ufen ein bestimmter Zeitraum liegt Im Online Shop k nnen aufgrund die ser Zusammenh nge Empfehlungen an den Besucher abgegeben wer den Wer das erste Produkt des Musters erworben hat kann vom Online Shop auf das Folgeprodukt hingewiesen werden Dabei kann der Zeitraum der zwischen den beiden Produkten liegt vollst ndig abgewartet werden oder die Bewerbung des Folgeprodukts vorher stattfinden Hierdurch kann der Zeitraum zuk nftig vielleicht sogar verk rzt werden bzw Folgek ufe beschleunigt werden 17 3 4 Beispiele Ein sequentielles Muster kann z B B gt C mit einer Unterst tz ung von 30 lauten In der Praxis ergeben sich dann Zusammenh nge wie z B 30 aller K ufer von Dieter Bohlens Buch Nichts als die Wahrheit B kaufen
347. und Algorithmen weitergibt Der AlgorithmRunner selbst ben tigt folgende Parameter source Bestimmt welche Klasse die Anbindung an die Datenquelle realisiert Es muss der volle Klassenname angegeben werden wie z B diko weka input ArffFilelterator Die angegebene Klas se muss das Interface ConfigurableSourcelterator implementie ren sink Bestimmt welche Klasse die Anbindung an die Datensenke bernimmt Es muss ebenfalls der volle Klassenname angege ben werden Die Klasse muss das Interface Result Writer imple mentieren algorithm Voller Klassenname eines AlgorithmController 119 14 Technisches Handbuch Framework Um Informationen ber die in den Quelldaten enthaltenen Attribute zu erhalten bietet der AlgorithmRunner zwei M glichkeiten Entwe der stellen die Datenquellen diese Informationen selbst bereit oder sie m ssen vom Benutzer in Form von Parametern angegeben werden Wird eine Datenquelle verwendet die in der Lage ist diese Informa tionen bereitzustellen muss der daf r zust ndige ConfigurableSource Iterator zus tzlich das Interface MetaDataProvider implementieren Ist dies der Fall benutzt der AlgorithmController die Methoden des MetaDataProvider um Daten ber die enthaltenen Attribute und den Namen der Relation zu erfahren F r den Fall dass die benutzte Datenquelle keine Informationen ber die Attribute liefern kann m ssen diese Daten zus tzlich in der Kon figurationsdatei angegeben werden Da
348. unner aus dem Paket diko frame work mit der Konfigurationsdatei anarunnergebplz cfg aufgerufen sie he Anhang Neben dem Aufruf des SimpleKMeans Algorithmus mit 182 16 2 Clusteranalyse nach Kunden und gekauften Produkten der Datei ConfigKIDGebGes siehe Anhang als Parameter wird der Postprozessor diko Personalisierung kundenattribute PostprocessorGeb Plz gestartet der f r die gefundenen Kundencluster jeweils die f nf meistgekauften Produkte bestimmt Die Ausgangsdaten bilden die Clusterergebnisse in der Tabelle ClustKundenGebGes der Datenbank des Onlineh ndlers und die Resultate dieses Nachbereitungsschrittes werden in der Tabelle ProdukteGebGes gespeichert Die Funktiona lit t des Postprozessors ist dabei unabh ngig von der Anzahl der gefundenen Cluster und auch von der Anzahl der Kunden in den einzelnen Clustern Analog verl uft die Analyse mit den Attributen Geburtsdatum und Postleitzahl die notwendigen Dateien bzw Tabellen sind e anarunnergebplz cfg e GonfigKidGebPlz e GlustKundenGebPlz e ProdukteGebPlz 16 2 Clusteranalyse nach Kunden und gekauften Produkten Im folgenden wird die Umsetzung der im Konzept vorgestellten Clu steranalyse nach Kunden und gekauften Produkten beschrieben 16 2 1 Aufgabenstellung und Zielsetzung Zu der im Konzept vorgeschlagenen Analyse ein Clustering der Kun den nach ihren gekauften Produkten soll hier nun Umsetzungbe schrieben werden In dieser Analyse werden die erworbenen
349. ur Einkaufszeit passenden Pro dukte auf allen Seiten des Online Shops einzublenden Die Methode loadRules float minSupport Product p arbeitet hnlich pr ft jedoch zus tzlich ob das angegebene Produkt in den beachteten Assoziationsregeln vorkommt Diese Methode wird verwendet um die zu einem auf der Detail Seite dargestellten Produkt passenden Produkt Empfehlungen darzustellen Da die verwendeten Assoziationsregeln nur an bestimmten Kalender mustern g ltig sind kann es aufgrund der Beschaffenheit der von der Projektgruppe erzeugten Testdaten vorkommen dass an bestimmten Tagen keine Regeln g ltig sind Um dennoch an jedem beliebigen Tag das Testen des Online Shops zu erm glichen verf gt dieser ber ein Formular mit dem das Datum zu welchem die passenden Regeln ge sucht werden beeinflussbar ist Standardm ig wird hier das aktuelle Datum vorgegeben 232 21 Soll Ist Vergleich vom Gesamtprojekt Der folgende Abschnitt beinhaltet einen Soll Ist Vergleich des Ge samtprojektes auf Grundlage der Anforderungen des Gesamtszenari 08 21 1 Einleitung In diesem Kapitel werden die Anforderungen des Gesamtszenarios hinsichtlich ihrer Zielerreichung berpr ft Es wird dabei detailliert erl utert auf welche Weise die einzelnen Anforderungen erf llt und warum einige Bereiche nicht oder nur zu Teilen bearbeitet worden sind Als Grundlage f r diesen Vergleich dient die Anforderungsde finition f r das Gesamtszenario siehe Kap
350. uster 7 14 65625 13 191964285714286 13 821428571428571 13 272321428571429 13 410714285714286 15 308035714285714 12 776785714285714 01 0 1324 32 2 119 12 3193 19 4 143 14 7 224 22 Scheme weka clusterers SimpleKMeans N 8 S 20 Cluster centroids Cluster 0 14 676190476190476 11 60952380952381 12 971428571428572 18 38095238095238 13 076190476190476 13 285714285714286 12 428571428571429 Cluster 1 0 0 0 0 0 0 0 0 100 0 0 0 0 0 Cluster 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 3 15 341346153846153 12 528846153846153 13 817307692307692 14 533653846153847 13 067307692307692 14 182692307692308 13 048076923076923 Cluster 4 11 388059701492537 13 813432835820896 14 373134328358208 15 097014925373134 13 708955223880597 13 567164179104477 14 365671641791044 Cluster 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Cluster 6 18 28828828828829 12 81981981981982 13 36936936936937 12 396396396396396 12 765765765765765 13 387387387387387 13 495495495495495 Cluster 7 13 198347107438016 13 991735537190083 13 289256198347108 11 859504132231406 13 62809917355372 16 735537190082646 13 710743801652892 0 105 10 11 0 2 272 Personalisierung 324 32 3 208 21 4 134 13 6 111 11 7 121 12 Scheme weka clusterers SimpleKMeans N 12 S 1 Cluster centroids Cluster 0 13 649122807017545 14 929824561403509 14 894736842105264 13 219298245614034 13 043859649122806 15 289473684210526 11 333333333333334 Cluster 1 11 351063829787234
351. ut Anzahl verf gbar ber die Relation Einordnung wird durch das Attribut 140 15 1 Einfache Analysen Warengruppeid die Zugeh rigkeit eines Produktes zu einer Waren gruppe ersichtlich Analyseverfahren Clustering SimpleKMeans cobweb EM XMeans Interpretation Die zu erwartenden Ergebnnisse sollen dazu dienen die Menge der Kunden aufgrund ihrer Eink ufe in bestimmte Grup pen zu unterteilen Vorteilhaft bei diesem Verfahren ist die Ber ck sichtigung der Produkthierarchien Beispiel M gliche Ergebnisse dieser Analyse sind folgende Grup pen e Kunden die haupts chlich Nahrungsmittel kaufen Kunden die haupts chlich S ssigkeiten kaufen Kunden die haupts chlich Getr nke kaufen Kunden die Pepsi Light kaufen Kunden die Coca Cola kaufen Anwendung Wurde ein Kunde erfolgreich einer wie im vorangegan genen Beispiel beschriebenen Kundengruppe zugeordnet k nnen ihm direkt Produkte angeboten werden die von Mitgliedern der gleichen Kundengruppe gekauft wurden So kann einem Kunden der Schokolade kauft bzw sucht Milka angeboten werden wenn die anderen Kunden im selben Cluster ber wiegend Milka gekauft haben Es k nnte ebenso sinnvoll sein diese Clusterergebnisse nicht separat sondern in Verbindung mit anderen Analysen z B Anwendung der Assoziationsanalyse in Verbindung mit Produkten zu nutzen Das Clustering k nnte damit Grundlage f r weitere Analysen sein
352. vers in dem alle Zugriffe auf Dateien des T Webservers mitprotokolliert werden wird genannt Webserver Ein Programm das Webseiten ausliefert z B Apache hei t Web Structure Mining bezeichnet das Data Mining auf Struk turdaten des Internets Web Usage Mining Data Mining auf den Nutzungsdaten des Internets hei t W rfel Ein besteht aus Datenzellen welche eine oder mehrere T Kenngr ssen auf T Detailebene beinhalten W rfelinstanz Die ist eine Menge von W rfelzellen 349 Glossar W rfelschema Das besteht aus der T Granularit t und einer Menge von T Fakten XML Extended Markup Language ist eine Definition um Strukturinformationen f r Daten zu generieren XML Tag Ein ist ein Auszeichnungselement nach der XML Defi nition Zeitreihe Sequenz Zeitstempel Ein ist eine Teilmenge der Zeit ber die ein Objekt definiert ist Dieser kann entweder ein Ereignis definieren ein Zeit intervall oder ein zeitliches Element Zeitstempelung unterteilt sich in f Attribut bzw T Tupelzei stempelung 350
353. verschiedenen H ndlerdaten banken in eine Kartenanbieterdatenbank zu importieren Als Arbeits grundlage dienen die bereits angelegten Datenbanken der zwei H nd ler und die des Kartenanbieters Die berlegung ein zus tzliches Da tenbankschema zu erstellen welches als Zwischendatenbank zwischen den H ndler und Kartenanbieterdatenbanken fungieren soll wurde aufgrund des zus tzlichen hohen Arbeitsaufwands nicht implemen tiert Ein Vorteil einer solchen Zwischendatenbank w re die einfa chere Erweiterbarkeit des Szenarios bzgl mehrerer Kartenanbieter Mit existierender Zwischendatenbank m sste f r einen zus tzlichen Kartenanbieter lediglich ein Loader zur Zwischendatenbank imple mentiert werden und nicht ein Loader pro existierendem H ndler Nachteil einer Zwischendatenbank w re dass im Falle nur eines Kar tenanbieters ein zus tzlicher Loader von der Zwischendatenbank zum Kartenanbieter geschrieben werden m sste was eine erhebliche Stei gerung des Arbeitsaufwandes darstellen w rde Zudem entst nden erh hte Kosten durch redundante Datenhaltung und zus tzlichen ad ministrativen Aufwand Es w rde sich die Frage stellen ob einer der 31 4 Objektorientierte Analyse H ndler oder der Kartenanbieter f r die Verwaltung der Zwischen datenbank verantwortlich ist Systemeinsatz und Systemumgebung Als Datenbank dient eine Oracle Datenbank die unter Solaris l uft Die Loader werden in Java implementiert woraus eine Plat
354. wendung Nicht temporale Analysen 16 1 5 Clustering der synthetischen Testdaten Auf den synthetischen Testdaten sind im Folgenden mehrere Cluste rings durchgef hrt worden die in diesem Abschnitt n her beschrieben werden Clustering nach Geburtsdatum und Geschlecht Das Ziel dieser Clusteranaylse ist es gewesen Kundengruppen im Bezug auf das Geburtsdatum und das dazugeh rige Geschlecht zu identifizieren Die Eintr ge des Attributes KundenID sind bei dieser Analyse und bei den weiteren Analysen durch eine manuell eingestell te Funktion in WEKA ignoriert worden Die KundenID wird jedoch bei der Ergebnisausgabe angezeigt um eine Zuordnung der Kunden der jeweiligen Cluster zu gew hrleisten Innerhalb dieses ersten Clu sterings sind verschiedene Parametereinstellungen getestet worden wobei im Folgenden nur die aussagekr ftigsten Einstellungen und Er gebnisse dargestellt werden 1 Clustering Bei der manuellen Durchsicht der synthetisch erzeug ten Testdaten sind vier Jahresschwerpunkte H ufung von Geburts jahren der Kunden entdeckt worden Das Ziel des Clusterings ist dabei das Finden von Clustern gewesen die im Bezug auf die syn thetisch erzeugten Testdaten leicht zu interpretieren sind Aufgrund der Verteilung der Kundendaten vgl die Tabellen 16 9 16 10 16 11 16 12 16 13 sollen dabei die acht folgenden Cluster bzw Kunden gruppen identifiziert werden e 1 m nnliche erwachsene Kunden um 40 Jahre e 2 weibliche erw
355. wobei in Feh lerf llen in vorhergehende Phasen zur ck gewechselt wird Dieses ist in Abbildung 3 1 durch schwarz eingef rbte Pfeile dargestellt Die Phasen m ssen somit vollst ndig abgeschlossen werden bevor mit der n chsten begonnen werden kann Tritt in einer Phase jedoch wie oben bereits erw hnt ein Fehler auf so erlaubt dieses Vorgehens modell ein Zur ckspringen in die vorgelagerte Phase um die ent sprechenden Korrekturen durchzuf hren In Abbildung 3 1 ist dieses durch wei e Pfeile dargestellt Die M glichkeit in die vorgelagerte Phase zur ckzuspringen hat bei der Softwareentwicklung der Integrationsgruppe eine entscheidende Rolle gespielt da viele Probleme erst in der Phase der Realisierung klar geworden sind und daher ein h ufiges Ver ndern des Designs der Vorphase n tig geworden ist Eine Auflistung dieser Probleme erfolgt in Kapitel 8 27 3 Implementierung des Integrationsszenarios es i Entwurf 7 Nebenphasen der Integration i Hauptphasen der Integration Einf hrung l Abbildung 3 1 Wasserfallmodell 3 2 Beschreibung der Phasen der Softwareentwicklung Die erste Phase des Wasserfallmodelles die Voruntersuchung hat bei der Integration nur eingeschr nkt stattgefunden da es nicht n tig war zu berpr fen ob der Einsatz der zu entwickelnden Software sinnvoll ist Die Kl rung dieses Problems lag in diesem Szenario bei dem Auftraggeber Die erste Aufgabe im I
356. zichtet 41 5 Objektorientierter Entwurf POSTEN LOV KONTO STATUS ISAKTIONID FK TRAN LOV KONTO STATUSID PRODUKTID FK TZA PRODUKT FK KONTO KONTOSTAND HAENDLERID FK K RTENSVSTEMID FK nn TZA_KARTENSYSTEM FK MEDER EKG HAENDLERID FK KARTENSYSTEMID FK TZA KARTENSYSTEM FK TZA HAENDLERID FK KONTO INHABER FK KARTENSYSTEMID FK TZA KARTENSYSTEM FK HAERDLERID FK LOV RECHNUNG STATUS LOV RECHNUNG STATUSID KARTENSYSTEM HAENDLER a HOP KARTENSYSTEMID E SHOPID TZA KARTENSYSTEM SS TZA SHOP HAERDLERID FK KONTO KREDITRAHMEN J NASER R TRANSART KONTO_PUNKTE KARTENSYSTEMID FK TRANEAKTOND E INHABER FK TZA KARTENSYSTEM FK FK KARTENSYSTEMID FK KAENDLERID FK 0 HAENDLERID FK LOV_TRANSAKTION_LIEFERART TZA KARTENSYSTEM FK LOV_TRANSAKTION_LIEFERARTID TZA paene mei M gt RECHNUNG STATUS RECHNUNG ep RECHNUNGID REOHNUNGID FK HAENDLERID FK HAENDLERID FK LOV TRANSAKTION ART LOV TRANSAKTION BEZAHLUNG LOV TRANSAKTION ARTID LOV TRANSAKTION BEZAHLUNGID Abbildung 5 3 Subject Area Transaktionen 5 3 Klassenbeschreibung Die Klassenbeschreibung dargestellt in Abbildung 5 1 umfasst die Beschreibung der Klassen Loader DBConnection ImportHaendler1 ImportHaendler2 InitData und GleanDoubles Die Klasse DBConnec tion geh rt zur Datenbankschicht und erg nzt die JDBC Klassen die von Java zur V
357. zu werden f r jedes Attribut zwei Parameter ben tigt attributeName X Definiert den Namen des Attributs attributeType X Definiert den Typ des Attributs Dabei ist X der Index des Attributs das erste Attribut hat den Index 0 das zweite 1 usw 14 4 2 Datenquellen Die im Framework implementierten Datenquellen ben tigen ebenfalls eine Reihe von Optionen um korrekt arbeiten zu k nnen Diese sind im Folgenden aufgef hrt ArffFilelterator Der ArffFilelterator ben tigt als einzigen Parameter den Namen der zu ffnenden Datei arffFile Der Name der zu ladenden Datei inklusive Pfad ConfigurableJDBCSourcelterator Die ben tigten Optionen f r den Zugriff auf Datenbankmanagement systeme via JDBC sind source jdbcDriver Klassenname des JDBC Treibers der den Zu griff auf die Datenbank bereitstellt 120 14 4 Parameter der vorhandenen Implementierungen source jdbcConnection Der URL den der Treiber ben tigt um die Datenbank Verbindung auszubauen source jdbcLogin Das Login f r die Datenbank source jdbcPassword Das Passwort source jdbcSQL Das SQL Statement das die einzulesenden Daten liefert Die folgenden Parameter sind optional source tza Falls dieser Parameter gesetzt ist bestimmt er die Spal te der Eingabedaten die den Transaktionszeitanfang repr sen tiert Der Wert dieses Parameters muss ein Integer im Bereich 0 bis Anzahl der Spalten 1 sein source tze Bestimmt analog die Spalt
358. zwischen den Entit ten Shop und Produkt wobei diese im Datenbank schema des Kartenanbieters hingegen im Prim rschl ssel enthalten ist Um dieses Problem zu l sen wurden f r jede Filiale alle Produk te aus dem Datenbankschema von H ndler 2 einzeln angelegt Das n chste Problem im Datenbankschema von H ndler 2 stellt das fehlende Attribut Staat in der Entit t Filiale dar Die L sung f r die ses Problem stellt die Einf hrung des Strings Deutschland dar wobei dabei vorausgesetzt werden muss dass alle Kunden von H ndler 2 aus Deutschland kommen Au erdem ist das Problem fehlender Transaktions und G ltigkeits zeiten f r die Entit t Kategorie im Datenbankschema von H ndler 2 aufgetreten Im Datenbankschema des Kartenanbieters werden sie da 73 8 Probleme bei der Implementierung gegen f r den Import in die Entit t Warengruppe als Prim rschl ssel verwendet Gel st wurde dieses Problem durch die Einf hrung k nst licher Werte f r das Attribut Transaktionszeitanfang Das letzte Problem in Bezug auf den Import der Daten vom H ndler 2 stellen fehlende lov Tabellen im Kartenanbieterdatenbankschema dar In diesem Fall umfasst die L sung das Auslesen der Beschrei bungen der Attribute ber deren Werte aus den lov Tabellen Die ses erzeugt jedoch zus tzliche Queries auf der H ndler 2 Datenbank unter der Zuhilfenahme von zus tzlichen Resultsets mit denen die Werte aus den lov Tabellen des Datenbankschemas von H ndler 2

Download Pdf Manuals

image

Related Search

Related Contents

Mode d`emploi IND690base  Section 5 – Sewerage Works - Environment and Conservation    Endpoint Protector Appliance - User Manual  Hampton Bay HD22978BK Instructions / Assembly  RISQUES PSYCHOSOCIAUX  FIX-NIVEL  Hantol Metal  取扱説明書 保管用  Subaru Robin Power Products RGX3510 User's Manual  

Copyright © All rights reserved.
Failed to retrieve file