Using Dynamic Time Warping to Find Patterns in Time · PDF fileUsing Dynamic Time Warping to...

12
.... Using Dynamic Time Warping to FindPatterns in Time Series Donald J. Bemdt James Clifford Information Systems Department Stern School of Business New York University 44 West 4th Street New York, New York 10012-1126 {dberndt, jclifford} @st ern.nyu.edu April 26, 1994 Abstract Knowledge discovery in databases presents many interesting challenges within the ¢onte~t of providing computer tools for exploring large data archives. Electronic data .repositories are growing qulckiy and contain data fromcommercial, scientific, and other domains. Much of this data is inherently temporal, such as stock prices or NASA telemetry data. Detect£ug patterns in such data streams or time series is an important knowledge discovery task. This paper describes somepr~|~m;~,ry experiments with a dynamicprograrnm~,~g approach to the problem. The pattern detection algorithm is based on the dynamic time warpingtechnique used in the speech recognition field. Keywords:dynamic programming, dynamic time warping, knowledgediscovery, pat- tern analysis, time series. 1 Introduction Almost every business transaction, from a stock trade to a supermarket purchase, is recorded by computer; In the scientific domain, the Human Genome Projectis creating a database of every human 8enetlc sequence. NASA observation satellites can generate data at the rate of a terabyte per day. Overall, it has been estimated that the world data supply doubles every 20 months [FPSM91]. Manydatabases, whether formed from streams of stock prices, or NASA telemetry, or patient monitors, are inherently temporal The challenge of knowledge discovery research is to develop methodsfor extracting valuable information from these huge repositories of data--most of which will remain unseen by human eyes. KDD-94 AAA1-94 Workshop on Knowledge Discovery in Databases Page 359 From: AAAI Technical Report WS-94-03. Compilation copyright © 1994, AAAI (www.aaai.org). All rights reserved.

Transcript of Using Dynamic Time Warping to Find Patterns in Time · PDF fileUsing Dynamic Time Warping to...

Page 1: Using Dynamic Time Warping to Find Patterns in Time · PDF fileUsing Dynamic Time Warping to FindPatterns in Time Series Donald J. Bemdt James Clifford Information Systems Department

.... Using Dynamic Time Warping toFindPatterns in Time Series

Donald J. BemdtJames Clifford

Information Systems DepartmentStern School of Business

New York University44 West 4th Street

New York, New York 10012-1126{dberndt, jclifford} @st ern.nyu.edu

April 26, 1994

Abstract

Knowledge discovery in databases presents many interesting challenges within the¢onte~t of providing computer tools for exploring large data archives. Electronic data.repositories are growing qulckiy and contain data from commercial, scientific, and otherdomains. Much of this data is inherently temporal, such as stock prices or NASAtelemetry data. Detect£ug patterns in such data streams or time series is an importantknowledge discovery task. This paper describes some pr~|~m;~,ry experiments with adynamic prograrnm~,~g approach to the problem. The pattern detection algorithm isbased on the dynamic time warping technique used in the speech recognition field.

Keywords: dynamic programming, dynamic time warping, knowledge discovery, pat-tern analysis, time series.

1 Introduction

Almost every business transaction, from a stock trade to a supermarket purchase, is recordedby computer; In the scientific domain, the Human Genome Projectis creating a database ofevery human 8enetlc sequence. NASA observation satellites can generate data at the rate ofa terabyte per day. Overall, it has been estimated that the world data supply doubles every20 months [FPSM91]. Many databases, whether formed from streams of stock prices, orNASA telemetry, or patient monitors, are inherently temporal The challenge of knowledgediscovery research is to develop methods for extracting valuable information from these hugerepositories of data--most of which will remain unseen by human eyes.

KDD-94 AAA1-94 Workshop on Knowledge Discovery in Databases Page 359

From: AAAI Technical Report WS-94-03. Compilation copyright © 1994, AAAI (www.aaai.org). All rights reserved.

Page 2: Using Dynamic Time Warping to Find Patterns in Time · PDF fileUsing Dynamic Time Warping to FindPatterns in Time Series Donald J. Bemdt James Clifford Information Systems Department

The data on which our knowledge discovery tools operate can be characterized by the tra-ditional distinction between categorical data and continuous data [Ker86]. Categorical dataare characterized by nominal scales and simple group membership. An example patternbased on categorical data would be"most residents of Manhattan are Democrats". Continu-ous data may be ranked on ordinal scales, and differences become meaningful on interval andratio scales. Queries on continuous data are more complex since they include relationshipssuch as "less than" and aggregations such as averages or maxlmums. For instance, we mightfind patterns such as "the average salary of Democrats that subscribe to the New Yorker isgreater than $50,000".

Both categorical and continuous data can be extended by adding a temporal dimension--creating time series data. The last decade has witnessed a tremendous growth of interest andresearch in the field of temporal databases, as illustrated in [TCG+93]. Among the temporaldata models that have been proposed in the literature, some ([CC8?]) directly model time-series data; the advantages of these models have recently been clarified in [CCT94]. Butbefore we can use the results of queries on time series, we must be able to detect temporalpatterns such as "rising interest rates", or the small pattern in Figure 6, in the underlyingtime series data. This is an !nterest~8 sub-problem within the context of discovering higher-level relationships and is the focus of this preliminary paper. The detection of patterns intime series requires an approximate or "fuzzy" matching process. These patterns may thenbe used to construct higher-Ievel rules such as "Democrats withsteeply rising salaries arelikely to subscribe to the New Yorker".

For example, consider the line graphs in Figure 1 depicting lynx and snowshoe harepopulations over nearly a century [Odu71] [Cla73]. 1 What type of patterns emerge fromthe data? One pattern seems to be that the "lynx population rises after an increase in thesnowshoe hare population"--fairly natural given the predator/prey relationship. In addition,the "~ynx population appears to be less volatile than the snowshoe hare population". Lastly,there are two "spikes" in the hare popu/ation that might be explained by a third datastream--perhaps they are assoclated with "fashion sense" as tracked by sales of rabbit furgarments! Of course, Figure 1 might represent data collected from any domain (just replacethe labels). One could imagine the hare population to be data tracking a computer industrystock index and the lynx population to be a particular issue being "pulled" by movementsof the index.

Humans are very 8o0d at visually detecting such patterns, but programming machinesto do the same is a difiicult problem, The difficulty arises in capturing the ability to matchpatterns with some notion of "fuzziness". SimS!St approximate pattern detection tasks arefound in several fields. Related wor]~ in s tatisilcs [JDS8]’ signal processing [Poo88], geneticalgorithms [(]o189] [Psc90], and spgech recognition[~88] offer a variety of useful techniques.

1The ratio of predatoz to prey seems to large, but the data are derived ~om commercial trapping, notfrom se.ientifl¢ observation.

Page 360 AAAI-94 Workshop on Knowledge Discovery in Databases KDD-94

Page 3: Using Dynamic Time Warping to Find Patterns in Time · PDF fileUsing Dynamic Time Warping to FindPatterns in Time Series Donald J. Bemdt James Clifford Information Systems Department

140

100

6O

2O

hare ...... lynx

1845 1855 1865 1875 1885 1895 1905 1915 1925 1935

limein yam

Figure 1: Changes in the Lynx and Snowshoe Here Populations as Determined by theNumber of Pelts from the Hudson’s Bay Company.

2. Dynamic Time Warping

In particular, the problem of recognizing words in continuous human speech seems to includeme~y of the important aspects of pattern detection in time series. Word recognition is usuallybued on matching word templates assinst s waveform of continuous speech, convertedinto a discrete time series. Successful recognition strategies a~e based on the ability tos pprcTximately match words in spite of wide v~i~tions in t~m;ng and pronunciation. Recently,speech recosnition researchers have used dynamic programming as the basis for isolated andconnected word recognition lain88] [RL90] [SC90].

T

Figure 2: An n by m Grid.

The technique of dynamic time warping (DTW) uses a dynamic progrsmmin8 approach

KDD-94 AAAI-94 Workshop on Knowledge Discovery in Databases Page 361

Page 4: Using Dynamic Time Warping to Find Patterns in Time · PDF fileUsing Dynamic Time Warping to FindPatterns in Time Series Donald J. Bemdt James Clifford Information Systems Department

to align the time series and a specific word template so that some distance measure isminimized. Since the time axis is stretched (or compressed) to achieve a reasonable fit, template may match a wide variety of actual time series. Specifically, the pattern detectiontMk involves sea, chin8 a time series, S, for instwuces of a template, T.

S = si,82,...,,~,...8, (I)

T -tl,t=,...,t#,...t,~ (2)

The sequences 8 and T can be atranged to form a n-by-m plane or grid (see Figure 2), whereeach grid point, (i,j), .corresponds to an alignment between elements a~ and tj. warpingpath, W, maps or aligns the elements of S and T, such that the "distance" between them isminimized.

W = wl,w=,...,wk (3)That is, W is s sequence of grid points, where each wh corresponds to a point (i,j)k, asshown in Figure 3.= For example, point ws in Figure 3 indicates that s= is aligned with t3.

1 S n

Figure 3: An Example Waxping Path.

In order to formulates dynamic programming problem, we must have a distance measurebetween two elements. Many distance measures ate possible two candidates for a distancefunction, 6, are the magnitude of the difference or the square of the difference,s

-I - tj I (4)= = (5)

Once a distance measure is defined, we can formally define the dynamic time warping problema minimization over potential watping paths based on the cumulative distance for each

path, where 6 is a distance measure between two time series elements.P

DTW(S,T) = minw[~ 6(wl,)] (6)//=I

2When there is no timing di~erence the warpin8 path coincides with the diagonal llne, i : j.~A given distance meuure allows warping paths to be ranked. It may also be useful to define relative (i.e.

percentage based) distance measure= to make individual distances mote comparable. For example, considercomparing dktance between stock prices of $8 and $10 with that of $98 and $100.

Page 362 AAAI-94 Workshop on Knowledge Discovery in Databases KDD-94

Page 5: Using Dynamic Time Warping to Find Patterns in Time · PDF fileUsing Dynamic Time Warping to FindPatterns in Time Series Donald J. Bemdt James Clifford Information Systems Department

In dynamic programming formulations, we need a stage variable, state variables, anddecision variables that ideecribe legal state transitions [LC?8]. The stage variable imposes amonotonic order on events and is simply time inour formulation. The state variables arethe individual points on the grid as illustrated in Figure 2. The decision variables are lesseasily recognized in our formulation, but correspond to the restrictions on permissible pathsbetween two grid points. These restrictions serve to reduce the search space---the spaceof possible warping paths. Searching through all possible warping paths is combinatoriallyexplosive. Therefore, out of concern for efficiency, it is important to restrict the the space ofpossible warping paths--some restrictions are outlined below [SC90].

monotonicityThe points must be monotonically ordered with respect to time, is-x _< is and js-a <

2s.

2. continuityThe steps in the grid are confined to neighboring points, is-is-1 <_ 1 and js -is-1 <_ 1.

3. warping windowAllowable points can be constrained to fell within a given warping window, [ is- js I_<

w, where w is a positive integer window width (see Figure 3).

4. slope constraintAllowable warping paths can be constrained by restricting the slope, thereby avoidingexcessively large movements in a single direction.

5. boundary conditions.Lastly, boundary conditions further restrict the search space. The most restrictive",.variant uses constrained endpoints, such as il = 1, Jl = 1 and is = n, js = m. Ratherthan simply anchoring the points, we can relax the endpoint constraint by introducingan "offset" in the above conditions. Lastly, a starting point may be specified, withsubsequent path constraints replac/ng a fixed ending point.

The dynamic programming formulation is based on the following recurrence relation,which defines the cumulative distance, ~/(i,j), for each point.

’~(i,j) = 6(i,j) rnin[~/(i- 1,j), 7( i - 1,j - 1), 7( i,J - (7)That is, the cumulative distance is the sum of the distance between current elements (speci-fied by a point)and the minimum.of the cumulative distances of the neighboring points. Theabove formulation is a symmetric algorithm since both predecessor points off the diagonalare used.a The aynaml pr grammmg algorithm fillsin atab!e of cumulative distances as thecomputation proceeds, removing the need to re-calculate partial path distances. Upon com-pletlon, the optimal warping path can be found by tracing backward in the table--choosingthe previous points with the lowest cumulative distance.

4An asymmetric formulation would use 0nly one of the points, (i - I, j) or (i, j - I). Experimental resultssuggest thatsymmetric algorithms perform better in the speech recognition domain [SC90].

KDD-94 AAAI-94 Workshop on Knowledge Discovery in Databases Page 363

Page 6: Using Dynamic Time Warping to Find Patterns in Time · PDF fileUsing Dynamic Time Warping to FindPatterns in Time Series Donald J. Bemdt James Clifford Information Systems Department

2.1 Measures of Fit

Once the best warping path is found, a score describing the "fit" of the template and under-lying time series segment must be calculated. The score is intended to quantify the degreeof fit achievable by stretching or compressing the series emd template with regard to time.In addition, the score must allow comparisons so that matches can be ranked. We might beinterested in comparisons of multiple matches of a single template against a long series, aswel/u in comparisons of the fit of various templates with a series.

One possible measure is based on the ratio of the cumulative warping path distance toa baseline distance. We have experimented with several baseline calculations, including aboundary around the time series segment. An example of such a boundary is shown in Figure5. In this example, the baseline is a relative baud centered around the series. For instance,a data point of 50 would be bounded by 25 and 75, assuming the band width to be 100%of the data value. The sum of these boundary intervals makes a reasonable baseline, withthe score set to zero if the warping path distance exceeds the baseline (thereby keeping thescore in the [0,1] range).

3. Simple Experiments

In order to illustrate the approach, we use the simple "mountain-shaped" test patterns shownin Figure 4. The collection starts With a mountain that increases in increments of 20, withsubsequent patterns "/]attened" until we reach a horizontal line at 40.s

synthetic values

8O

flat40

60

40

20

00 1 2 3 4. 5

points

Figure 4: A Collection of Mountain-Shaped Patterns.

We ran a naive DTW algorithm on all combinations of mountain patterns. That is,each pattern acted as both a series and s template during the matching process,e The naivealgorithm uses fixed endpolnts and some simple constraints on warping path slope (includingthe monotonicity and continuity restrictions). The resulting scores are summarized in Table1.

SThe units in this example have no paxtieulax meaning.eThe values on either side of the diagonal axe different due to the baseline calculation being dependent

on which pattern acts as the series.

Page 364 AAA1-94 Workshop on Knowledge Discovery in Databases KDD-94

Page 7: Using Dynamic Time Warping to Find Patterns in Time · PDF fileUsing Dynamic Time Warping to FindPatterns in Time Series Donald J. Bemdt James Clifford Information Systems Department

scores.templat./.e~e. flat40 rant5 mntlO mnt20flat40 ~. ’1,0o 0.86 ! 0.76 0.61nmt5 0.84 i.00 0.91 0.73m-t10 0.68 0.89 1.00 0.85nmt20 0.36 0.62 0.81 1.00

Table 1: Score Matrix for the "Mountain" Templates.

For example, consider the matching process with rant20 acting as the underlying seriesandmntlO the speci~tc template, The overall score is 0.85, with the corresponding matrix ofcumulative distances (~/) shown in Table 2. Thewsrpin8 path representing the reasonablyclose fit is shown below, with the appropriate Table 2 cells highlighted.

(6, 6)(5, 5)(5, 4)(4, 3)(3, 3)(2, 1)(0, O) (8)

The warping path is a sequenceof (i,j) pairs, indicating an alignment between a serieselement, a~, and template element, tj.

6 9O 50 7O 110 130 9O 705 9O 50¸ 9O 9O 70 7O

i’3O

80 ’20 4O 60 7O 6O 8O..

6O 20 !So 50 60 7O 1002 So 10 30 7O 9O 9O 1101 to 10 9O 120 130 140

.f

0 2o 60 120 160 180 180

m,nIo/mt o o 1 2 3 4 5 6distances (7)

Table 2: C-mulative Distance Matrix for rant20 sad mntlO.

4 Predator/PreyExperiments

Consider again the time series in Figure 1. The hare populationexhibits two "double-topped"peaks which will form the basis for our pattern detection. These peaks may indicate someinteresting phenomena, perhaps heavy lynx hunting for pelts caused a break in the normalspike-shaped cycles. In the entirely diHerent domain of stock market technical analysis,involving the search for many such patterns, this particular form is called a "double topreversal" [LR78], Figure 5 is a close-up of the peak occurring near 1850, including theboundary which would be used to calculate a baseline score as discussed in Section 2.1.

KDD-94 AAAI-94 Workshop on Knowledge Discovery in Databases Page 365

Page 8: Using Dynamic Time Warping to Find Patterns in Time · PDF fileUsing Dynamic Time Warping to FindPatterns in Time Series Donald J. Bemdt James Clifford Information Systems Department

population in ~s

180hare .......... baseline

140

lO0

6O

2O

°°.°°°..°,% °°..°°°°°°’",%

°.°°°*°°°°°°°°*° ...... "°"°° 90 "*’°°’~, °°°°°°°°°°’°° 90 %’"’,

~ °°°oo°°°°°°oooo. .............. °°.°.° .°°°°°°°°°°’i°°’°.~..°

II

1849 1850 1851 1852 1853 1854 1855 1856 1857 1858

lime in yean

Figure 5: Double Top Peak in the Hare Population Near 1850.

Figure 6 describes an example template for a double top peak. In our experiment, thetemplate is specified in relative terms with respect tothe first point. This point serves asan anchor durin8 the matching process, i~eriting the starting value from the time seriessegment being considered. For instance, an anchor value of 20 from the underlying timeseries will result in a template instance of 20, 40, 60, 80, 70,70, 80, 60, 40, 20, as illustrated inthe following table:

patternscaling 0 1 2 3 2.5 2.5 3 2 1 0

templateinstance 20 4O 6O 8O 7O 7O 8O 6O 4O 2O

After matehlng the template a]on8 the hare population series, again using the DTW-Igorithm described in Section 3, the two highest scores were anchored at 1849 (0.87) and1870 (0.86). These points correspond nicely with the double-topped peaks in Figure 1. Mostother scores were substantially lower, with only a few reaching over 0.6. This matchingproblem is fa~ly di~cult since there are several area~ which might be classified as double-peaked and the template is quite simple, A more complex template should be harder to matchclosely, and therefore be more selective. The graph of the scozes over the hare populationdata is shown in Figure 7. The particular warping path anchored near 1850 is shown inFigure 8, with the warping path alignments represented by dotted lines.

Page 366 AAAI-94 Workshop on Knowledge Discovery in Databases KDD-94

Page 9: Using Dynamic Time Warping to Find Patterns in Time · PDF fileUsing Dynamic Time Warping to FindPatterns in Time Series Donald J. Bemdt James Clifford Information Systems Department

3.O

2,$

2.O

|.S

1.0

0.5

0.0

O

I I I I I iii4

Fisu:e 6: An Example Double Top Templste Exp:essed in Relative Terms.

l f011

].0

O.90,8

0.70.6

0,5

0.4

O.3O.2

0.!

0.01180

IitI.q tt

i J,

tI

!

11

100

20 i ’

1~5 1~5 186.5 1~S

pepu~m~tbmJJtqds

ii i ....:[ jrt ,t t

I v t I If I III ¯ I t tlt I

I . t I ! tf t:# i

w I t II tI t~, I~ ~ : ,, , ;, ,

!118S

,,’,,

t I[

1895 1905 1915 192.5 1935time In yem

Jtoore

hare

Figu:e 7: Dynamic Time Wezping Scores snd Heze Populstion Dsts.

KDD-94 AAAI-94 Workshop on Knowledge Discovery in Databases Page 367

Page 10: Using Dynamic Time Warping to Find Patterns in Time · PDF fileUsing Dynamic Time Warping to FindPatterns in Time Series Donald J. Bemdt James Clifford Information Systems Department

Ix~tioa in thous~

I00

9O90 9O

so 75 ........~ .......

s f."" d""

70

50~" ""i,’"

760

so ,/.."6o "., ,. ~

40

,,/, ’~’"

60

".,..,.

30 ",, ""~20 hare .......... alignments ..... template ""

10

0

1849 1850 1851 1852 1853 1854 1855 1856 1857 1858

flmein years

Figure 8: The Series/Template Alignment Anchored Neax 1850.

5 Conclusion

The knowledge discovery sub-problem 0ffinding patterns in time series data is a challengingreseezch issue. It is certainly important if we consider how much data is inherently tempo-tad, such as stock prices,i patient information, or credit caxd transactions. Our preliminaryexperiments with techniques based on dynamic time waxping axe encouraging.

Ozce we can detect patterns such ass double top peak, we can express higher-levelrelationships or "knowledge" as rules, For example, the following rule expresses one possiblerelationship, where tl and t2 represent s time interval.

double.top(hare, tl, t2) --, heavy.]zunting(lynz, tl, t2) (9)

We plan to develop more refined DTW algorithms and evaluate them in the context ofa prototype knowledge discovery tooI. In addition, we are interested in exploring parallelalgorithms to improve performance. Since the DTW algorithm is based on independentmatches of a template ag~nst segments of:s time series, we can divide the time series anduse paxallel matching-processes,,The granularity of the computations can be controlled bychanging the time series interval size. These independent tasks can then be distributed tomultiple processors.

Page 368 AAAI-94 Workshop on Knowledge Discovery in Databases KDD-94

Page 11: Using Dynamic Time Warping to Find Patterns in Time · PDF fileUsing Dynamic Time Warping to FindPatterns in Time Series Donald J. Bemdt James Clifford Information Systems Department

References

[A 88] William A. Ainsworth. Speech Recognition by Machine. Peter Peregrinus Ltd.,London, 1988.

[c087] James Clifford and Albert Croker. The historical relational data model (hrdm)and algebra based On lifespanS’ In Proceedings of the International Conference onData Engineering, pages 528-537, Los Angeles, California, 1987. IEEE ComputerSociety Press.

[CCT94] J. Clifford, A. Croker, and A. Tuzhilin. On completeness of historical relationaldata models, ACM Transactious on Database Systerna, 19(1), 1994.

[Cla?3] W. B. Clapham, Jr. Natural Ecosystems. Macmillan Publishing Company, NewYork, 1973.

[FpSM9!] William J. Prawley, Gregory Piatetsky-Shapiro, and Christopher J. Matheus.

¯ Knowledge discovery in databases: An overview. In Gregory Piatetsky-Shapiro~ and William 3. Prawley, editors, Knowledge Discovery in Databases, pages 1-27.

The AAAI Press, Menlo Park, Csliforaia, 1991.

[Go189] David E. Goldberg. Genetic Algorithms in Search, Optimization, and MachineLearning. Addlson-Wesley Publishing Company, New York, 1989.

[JD88] Anti K. Jsin and Richard C. Dubes. Algorithms for Clustering Data. PrenticeHall, Englewood Cliffs, New Jersey, 1988.

[KerS6] l~ed N. Kerlinger. Foundations of Behavioral Research. Holt, Rinehart andWinston, New York, third edition, 1986.

[LC78] Robert E. Larson and John L. Castl. Principles of Dynamic Programming. Ms, eelDekker Inc., Basel, Switzerland, 1978.

[LR78] Jeffrey B. Little and Lucien Rhodes. Understanding Wall Street. Liberty Pub-lishjng Company, Cockeysville, Maryland, 1978.

[OduT1] E.P. Odum. Fandamentals of Ecology. W. B. Saunders Company, Philadelphia,third edition, 1971.

[Pac90] Norman H. Packard. A genetic learning algorithm for the analysis of complexdata. Complez Systems, pages 543-572, 1990.

[PooSS]H. Vincent Poor. An Introduction to Signal Detection and Estimation. Spinger-Verlag, New York, 1988.

[RL90] ~awrence R. Rabiner and Stephen E. Levlnson. Isolated and connected wordrecognition--theory and selected applications. In Alex Waibel and Kai-Pu Lee,editors, Readings in Speech Recognition, pages 1!5-153. Morgan Kaufmann Pub-lishers, Inc., San Mateo, California, 1990.

KDD-94 AAAI-94 Workshop on Knowledge Discovery in Databases Page 369

Page 12: Using Dynamic Time Warping to Find Patterns in Time · PDF fileUsing Dynamic Time Warping to FindPatterns in Time Series Donald J. Bemdt James Clifford Information Systems Department

[SC90] Hiroski Sskoe and Seibi Chiba. Dynamic programming algorithm optimizationfor spoken word zecognRion. In Alex Wsibel and KaJ-Pu Lee, editors, Readingsin Speech Recognition, pages 159-165. Morgan Kauf~ann Publishers, Inc., SanMateo, Cslifornia, 1990.

[TCG+93] A. Tansel,J. Clifford, S. Gadia,S. Jsjodia, A. Segev, and R. Snodgr~s. TemporalDo.fabasea: Theory, Design, and Implementation. Benjsmin/Cummings Publish-ing Company, Redwood City, California, 1993.

Page 370 AAA1-9d Worl~hop on Knowledge Discovery in Databases KDD-94