<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Case-Base Maintenance: A Streaming Approach</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Yang</forename><surname>Zhang</surname></persName>
						</author>
						<author>
							<persName><forename type="first">Su</forename><surname>Zhang</surname></persName>
							<email>zhangsu@indiana.edu</email>
						</author>
						<author>
							<persName><forename type="first">David</forename><surname>Leake</surname></persName>
							<email>leake@cs.indiana.edu</email>
						</author>
						<author>
							<affiliation key="aff0">
								<orgName type="department">School of Informatics and Computing</orgName>
								<orgName type="institution">Indiana University</orgName>
								<address>
									<postCode>47405</postCode>
									<settlement>Bloomington</settlement>
									<region>IN</region>
									<country key="US">U.S.A</country>
								</address>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff1">
								<address>
									<settlement>Atlanta</settlement>
									<region>Georgia</region>
									<country>United States of America</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Case-Base Maintenance: A Streaming Approach</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">5557BFAAFDAD1221855392DA3AB87C1E</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T06:27+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Case-Base Maintenance</term>
					<term>Case Deletion</term>
					<term>Streaming Algorithm</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Case Base maintenance can be crucial to CBR system performance. A central current of case base maintenance research focuses on competence-based deletion. Traditionally, deletion is done periodically, pausing CBR system processing to examining the entire case base. However, for streaming data, as often arises in big data contexts, such an approach may be expensive or infeasible. To address this problem, this paper proposes that CBR maintenance can draw on advances from data discovery research. In particular, it presents a case study applying the recent Sieve-Streaming algorithm [2] to enable continuous streaming CBR maintenance to reduce demands on case storage and provide efficient continuous maintenance. The paper presents a preliminary evaluation of this method on the Travel Agent Case Base, and compares it to traditional methods. The experiments are encouraging for the practicality and benefits of the approach for scaleup of case-base maintenance in settings with large-scale data streams.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>Case-based Reasoning(CBR) is the process of reasoning by adapting prior relevant cases to solve new problems (e.g., <ref type="bibr">[7]</ref>). As CBR systems are used over long time frames, system knowledge must be maintained over time. For maintenance of the case base, a common question is how maintenance strategies can adjust knowledge to balance system efficiency and solution quality <ref type="bibr">[6]</ref>. This has often focused on how to increase retrieval efficiency, by decreasing case base size, while maintaining system competence. Extensive CBR research has addressed this through methods for competence-based deletion, building on the seminal work of Smyth and Keane <ref type="bibr">[10]</ref>. Such methods have been shown to provide good results for compression while retaining system accuracy.</p><p>As the CBR community addresses issues for growing data sets, issues arise making such models more difficult to apply. Competence-based deletion approaches often use greedy methods to selecting a subset of cases to retain from a case base to maximize competence, starting from a "complete" case base whose competence they aim to retain; processing is done in a maintenance step to which it is assumed that considerable resources can be devoted, pausing the CBR cycle. Such policies can be characterized as synchronic, processing a snapshot of the case base, and periodic <ref type="bibr">[12]</ref> with comparatively large periodicity.</p><p>However, CBR applications may need to be fielded with small sets of seed cases, with cases acquired from processing over time, and may be applied in domains that change over time. For such systems, a "complete" case base may never exist. Even if a complete case base might exist in principle, such a case base might be prohibitively large. Large data sets are acquired on a daily basis by streaming systems. For example, in the context of e-commerce, on "Cyber Monday" of 2016, Amazon U.S. reported that it processed 23 million orders. Building a comparatively complete case base from large-scale steaming data could require enormous storage and expensive processing to compress the case base. Even if storage were available for all cases in a large scale system, it might be undesirable in real-time CBR systems to interrupt system processing for frequent compression of the case base, if cases were received at a high rate.</p><p>The general problem of dealing with large scale streaming data is of course not new to CBR. In fact, the question of summarizing large-scale streaming data is an active research topic for the knowledge discovery community. This raises the question of whether approaches from that community provide solutions that the CBR community can exploit to improve case base maintenance performance. This paper presents a case study of the application of a recent method for massive data summarization, Sieve-Streaming <ref type="bibr" target="#b1">[2]</ref>, to case-base maintenance. Sieve streaming is a knowledge discovery method for selecting representative elements of large data sets in a single pass through data, with fixed memory requirements, with performance guarantees to provide guarantees on level of approximation of an optimal solution. The approach is been tested successfully for applications such as on-the-fly clustering.</p><p>This paper presents a preliminary exploration of the use of Sieve-Streaming for continuous incremental case base maintenance of cases from a case stream, without access to the full case base. It describes this approach and evaluates it for the Travel Agents Case Base, comparing its performance in terms of case base size, competence and retrieval quality of case base with two baseline methods.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Related Work</head><p>Case-base maintenance has been the subject of extensive study, summarized in the literature (e.g. <ref type="bibr">[7,</ref><ref type="bibr">12]</ref>). Most relevant to this paper are the two approaches we will take as baselines. Condensed Nearest Neighbor (CNN) <ref type="bibr" target="#b2">[3]</ref> is a classic method for compaction of data sets to be solved by Nearest Neighbor algorithms, but CNN is order-dependent and requires multiple loops over data set to guarantee the consistency.</p><p>Smyth and McKenna[8] developed a competence-based model of CBM and defined the concept of coverage, reachability and relative coverage which modeled local competence contributions of cases interact as well as global competence properties of a case base. This gave rise to several competence-guided editing solutions, called footprinting techniques, such as COV-FP, RFC-FP, RC-FP, etc, and the footprint deletion(FD) algorithm.</p><p>3 Adapting the Sieve-Streaming Algorithm for Case Base Maintenance</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">The Sieve-Streaming Algorithm</head><p>The Sieve-Streaming algorithm is a method to "summarize a massive data set "on the fly" <ref type="bibr" target="#b1">[2]</ref> by selecting a high utility subset. The utility of the subset reflects the utilities of its members, according to a utility function whose values depend not only on the member being evaluated but on the other elements of the subset.</p><p>The task addressed by Sieve-Streaming maps naturally to the task of selecting a high competence subset of the case base, with overall utility corresponding to overall competence, and the value of including particular cases depending on the other cases in the case base. Sieve-Streaming addresses the problem of selecting elements to retain for very large data sets, for which storing the entire set is not possible or practical. If the optimal solution (for the case-base maintenance problem, the optimal competence) were known, it would be possible to strategically retain only those elements in the stream that provide sufficient gain towards the optimal solution. As the optimal solution will generally not be known, Sieve-Streaming approximates knowledge of the optimum by using a collection of estimations refined as new elements are seen. Each particular estimation corresponds to a set of elements, called a sieve. The number of sieves used, and the particular sieves which are retained, changed dynamically as the data stream is processed and more information becomes available. Incoming data is processed by each sieve, and the algorithm's result is the set contained in the sieve with maximal value. This approach enables calculating a reasonable solution from a subset of the values. In a CBR context, we can consider each sieve be a candidate case base, built in parallel, with the most successful returned by the algorithm.</p><p>The Sieve-Streaming algorithm assumes that a maximal data set (case base) size, k, is predefined. It tracks m, the maximum utility value of all individual examples seen, using that to estimate an upper bound on the marginal utility contribution of each added instance. As m changes, the algorithm adjusts the set of candidate thresholds determining the marginal utility to retain an example. For each input element e i , the algorithm calculates the marginal gain ∆ f (e i |S v ) of adding the element e i to sieve S v , given the a predefined utility function f (S). If the marginal gain is more significant than the marginal value threshold, calculated as v A motivation for incorporating Sieve-Streaming into CBR is to enable efficient ongoing competence-based case base updates at every execution of the CBR cycle. Sieve-Streaming can be applied to case-base maintenance as follows. First, a competence-based utility function is defined to calculate marginal gain for each case. The following subsection presents a simple domain-independent sample choice, but domain-specific utility functions could be defined as well.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Adding Sieve-Streaming Maintenance to the CBR Cycle</head><p>Given an input problem, the system retrieves the most similar case in its case base. If the problem solved by the retrieved case is not identical to the new problem, the new problem is filtered by Sieve-Streaming to determine whether to add it to the case base. The case's marginal gain is compared to that of sieves whose capacity constraint has not yet been reached. If its marginal gain is larger than this sieve's marginal value threshold, the case is added to this sieve. If case's marginal gain value smaller than every sieve's marginal value threshold, the case is not added and processing continues with the next problem.</p><p>This approach enables the system to maintain a dynamic case base within desired size limits, with coverage satisfying the sieve streaming algorithm's guarantees, with ongoing rather than periodic maintenance.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">A Sample Competence-based Utility Function</head><p>In order to apply Sieve-Streaming, a utility function must be defined, based on the system's similarity metric, to develop a submodular objective function f reflecting competence contributions. The goal for case base maintenance is to find a compact representative subset, which has characteristics similar to exemplar selection. Thus, we model our application on the example of Badanidiyuru et al. for exemplar selection, with K-medoid loss function as the utility function.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>K-medoid Loss Function</head><p>The K-medoid method selects elements by minimizing the sum of pairwise distances <ref type="bibr" target="#b3">[4]</ref>. Following Badanidiyuru et al. <ref type="bibr" target="#b1">[2]</ref>, here distance(e, v) is used to encode distances between exemplar and element. This yields Badanidiyuru et al.'s loss function:</p><formula xml:id="formula_0">L(S) . = 1 |V | e∈V min v∈S distance(e, v)<label>(1)</label></formula><p>For each element in V , the algorithm calculates distance between it and any element in given set S and selects the minimum distance among the results. Then it calculates the average of this minimum distance and used as the loss of set S. We want to minimize this loss. Following Krause and Gomes [5], L(S) can be transformed into a monotone submodular way with an auxiliary element e 0 , resulting in the following definition from Badanidiyuru et al.:</p><formula xml:id="formula_1">f (S) . = L({e 0 }) − L(S ∪ {e 0 })<label>(2)</label></formula><p>Here, f (S) is always greater than 0 no matter what e 0 is chosen. Then minimizing L is equal to maximizing f . Because we also use similarity to measure the competence, we could use this f (S) as the utility function in the Sieve-Streaming algorithm.</p><p>The calculation of loss relies on V -the entire data set-which could never be accessed during processing. However, we can address this in practice by using a sample of cases from the initial case base as an evaluation set.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Evaluation</head><p>The evaluation of streaming case retention explored four questions, each examining behavior as a function of the number of problems processed:</p><p>1. How does maintenance processing time vary for streaming case retention compared to baselines? 2. How does case base size vary for streaming case retention? 3. How does case base competence vary, and how does it compare to that with baseline methods? 4. How does accumulated retrieval distance vary, and how does it compare to that with baseline methods?</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Experimental Design</head><p>Test case base: Tests were performed using the Travel Agents Case Base,<ref type="foot" target="#foot_1">1</ref> commonly used as a benchmark within the CBR community. This case base contains 1470 cases, each with a case identifier plus 9 features: Journey Code, Holiday Type, Price, Number of Persons, Region, Transportation, Duration, Season, Accommodation, Hotel. There are 6 categorical features and 3 numerical features and Reachability Set for a case. However, in travel domain, our CBR system is a simple recommendation system which accepts trip characteristics and retrieves a similar case to return. This simplifies the calculation of Relative Coverage; we simply use similarity measurements to represent competence.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Test Runs and Parameter Settings</head><p>Experimental runs were conducted on four input streams. These were generated by randomly selecting an ordered set of 1000 of the 1470 cases in Travel Agent Case Base, and taking prefixes of lengths 100, 200, 500, and 1000 cases respectively.</p><p>The tests assessed the performance of Sieve-Streaming Algorithm along with CNN-FP and RC-FP as benchmark methods. Table <ref type="table" target="#tab_0">1</ref> describes the parameters of the algorithms; Table <ref type="table" target="#tab_1">2</ref> reports their settings for all runs. Note that for different size streams, different parameter settings were used for initial case base sizes and the minimum and maximum values of the case base size for non-streaming methods (always varying from 5% to 10% of the entire case base). </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.3">Comparison and Analysis</head><p>Question 1: Time Comparison: Table <ref type="table" target="#tab_2">3</ref> shows that in our tests, CNN-FP and Sieve-Streaming had similar time performance, with Sieve-Streaming more expensive. This was a surprising result. However, timings may depend on implementation factors and no attempt was made to optimize the Sieve-Streaming algorithm; more investigation is needed. Both CNN-FP and Sieve-Streaming ran much faster than RC-FP, and RC-FPs growth rate was much higher than for CNN-FP and Sieve-Streaming. Question 2: Case Base Size: Figure <ref type="figure" target="#fig_1">2</ref> shows changing case base size during processing. CNN-FP and RC-FP size fluctuates, growing from the minimum to the limit, while Sieve-Streaming tends to maintain a smaller and more stable Case-Base size than CNN and RC. Question 3: Competence: Figure <ref type="figure" target="#fig_2">3</ref> shows competence with the three methods. Competence is assessed using a randomly selected evaluation set, drawn from cases outside the case stream (the same set is used for all streams). Competence is calculated with the evaluation set based on the k-medoid utility function. CNN-FP and RC-FP show better initial performance for all streams, with some fluctuation as case base size changes. The competence of Sieve-Streaming increases gradually, finally surpassing CNN-FP and RC-FP. Question 4: Retrieval Quality: We use accumulated distances between each incoming case and correspond retrieval case to measure retrieval accuracy to reflect the efficiency of maintenance strategies. Figure <ref type="figure" target="#fig_4">4</ref> shows that RC-FP always has the lowest accumulated retrieval distances. CNN has a lower accumulated retrieval distances over Sieve-Streaming for n=100 and n=200, however, when n=500, accuracy of Sieve-Streaming is better.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusion</head><p>Knowledge discovery methods provide an important potential resource for CBR. This paper has explored the use of Sieve-Streaming for on-the-fly, incremental competence-based case deletion. The results suggest that it provides high quality case base compression, trading off some accuracy loss compared to the gold standard method RC-FP for much improved efficiency. noted that the performance of Sieve-Streaming improved when the size of the case stream increased.</p><p>A surprising result was that Sieve-Streaming required more processing time than CNN-FP. This may be an artifact of implementation, especially given that the implementations were not optimized. We are currently re-implementing all methods to enable more uniform comparison. The superior competence results suggest that the use of Sieve-Streaming compared to CNN-FP would still be justified, The results presented here are preliminary in that they report a limited set of trials, on a small case base, without a systematic effort to tune parameters. In future work, we plan to test the strategies with multiple large scale data streams and to examine further how the approach is affected by changing parameter settings.  </p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. Illustration of CBR Framework with Adapted Sieve-Streaming Algorithm (CBR cycle adapted from [1] and Sieve-Streaming process adapted from [2])</figDesc><graphic coords="4,188.68,157.82,238.00,141.00" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Case Base Size</figDesc><graphic coords="8,134.77,252.80,172.92,100.11" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. Competence</figDesc><graphic coords="9,134.77,252.55,172.92,99.86" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. Accumulated Retrieval Distance</figDesc><graphic coords="10,134.77,252.80,172.92,100.11" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 .</head><label>1</label><figDesc>Parameters Maintenance threshold. After maintenance, Case Base size should always no larger than this value. (c) solve threshold : Cases within this threshold of each other are considered to "solve" each other</figDesc><table><row><cell>1. Sampling parameters</cell></row><row><cell>(a) n: Size of input stream.</cell></row><row><cell>(b) evaluation size: Size of evaluation set. This sampled from same domain but</cell></row><row><cell>was exclusive of the input stream.</cell></row><row><cell>(c) init size: Size of initial case base (randomly selected)</cell></row><row><cell>2. Sieve-Streaming parameters</cell></row><row><cell>(a) k : Restricted maximum size of sieves' capacity, also the size of case base.</cell></row><row><cell>(b) : Scale of threshold set O, ∈ [0, 1].</cell></row><row><cell>3. CNN-FP/RC-FP parameters</cell></row><row><cell>(a) max : Maintenance threshold. If Case-Base size increased to this value, CNN-</cell></row><row><cell>FP or RC-FP maintenance method will be triggered.</cell></row><row><cell>(b) min:</cell></row></table><note>left in each case. Similarity of categorical data was measured with Huffman Code Similarity based on Huffman coding [9]; this was used to translate categorical data to binary strings then converted to decimal values, enabling measuring similarity between cases simply by calculating Euclidean distance. Competence Calculation: Smyth and McKenna's Relative Coverage [11] is an influential method for calculating competence contributions. In general, the calculation of Relative Coverage relies on determination of the the Coverage Set</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 2 .</head><label>2</label><figDesc>Parameter Settings</figDesc><table><row><cell></cell><cell>Parameters</cell><cell>Exp 1</cell><cell>Exp 2</cell><cell>Exp 3</cell><cell>Exp 4</cell></row><row><cell>Sampling</cell><cell>n</cell><cell>100</cell><cell>200</cell><cell>500</cell><cell>1000</cell></row><row><cell></cell><cell>evaluation size</cell><cell>5</cell><cell>10</cell><cell>25</cell><cell>50</cell></row><row><cell></cell><cell>init size</cell><cell>3</cell><cell>6</cell><cell>15</cell><cell>30</cell></row><row><cell>Sieve-</cell><cell>k</cell><cell>5</cell><cell>10</cell><cell>25</cell><cell>50</cell></row><row><cell>Streaming</cell><cell></cell><cell>0.01</cell><cell>0.01</cell><cell>0.01</cell><cell>0.01</cell></row><row><cell>CNN-FP/RC-FP</cell><cell>max</cell><cell>10</cell><cell>20</cell><cell>50</cell><cell>100</cell></row><row><cell></cell><cell>min</cell><cell>5</cell><cell>10</cell><cell>25</cell><cell>50</cell></row><row><cell></cell><cell>solve threshold</cell><cell>0.5</cell><cell>0.5</cell><cell>0.5</cell><cell>0.5</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table 3 .</head><label>3</label><figDesc>System Wall Time Comparison</figDesc><table><row><cell>Input Stream Size</cell><cell>CNN-FP</cell><cell>RC-FP</cell><cell>Sieve-Streaming</cell></row><row><cell>n = 100</cell><cell>124.23 s</cell><cell>374.01 s</cell><cell>139.44 s</cell></row><row><cell>n = 200</cell><cell>488.62 s</cell><cell>1561.40 s</cell><cell>594.23 s</cell></row><row><cell>n = 500</cell><cell>2904.61 s</cell><cell>9407.22 s</cell><cell>3953.24 s</cell></row><row><cell>n = 1000</cell><cell>11120.26 s</cell><cell>35598.39 s</cell><cell>18470.49 s</cell></row></table></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_0">−f (Sv) k−|Sv| , and the maximum sieve size k has not yet been reached, the data point will be added to the sieve; otherwise, it will be discarded. Finally, the algorithm outputs the elements in the best sieve as output. Full details, including performance guarantees, are provided by Badanidiyuru et al.<ref type="bibr" target="#b1">[2]</ref>.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_1">http://cbrwiki.fdi.ucm.es/mediawiki/index.php/Case_Bases</note>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Case-based reasoning: Foundational issues, methodological variations, and system approaches</title>
		<author>
			<persName><forename type="first">A</forename><surname>Aamodt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Plaza</surname></persName>
		</author>
		<ptr target="http://www.iiia.csic.es/People/enric/AICom.pdf" />
	</analytic>
	<monogr>
		<title level="j">AI Communications</title>
		<imprint>
			<biblScope unit="volume">7</biblScope>
			<biblScope unit="issue">1</biblScope>
			<biblScope unit="page" from="39" to="52" />
			<date type="published" when="1994">1994</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Streaming submodular maximization: Massive data summarization on the fly</title>
		<author>
			<persName><forename type="first">A</forename><surname>Badanidiyuru</surname></persName>
		</author>
		<author>
			<persName><forename type="first">B</forename><surname>Mirzasoleiman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Karbasi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Krause</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining</title>
				<meeting>the 20th ACM SIGKDD international conference on Knowledge discovery and data mining</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2014">2014</date>
			<biblScope unit="page" from="671" to="680" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">The condensed nearest neighbor rule</title>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">E</forename><surname>Hart</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Transactions on Information Theory</title>
		<imprint>
			<biblScope unit="volume">14</biblScope>
			<biblScope unit="page" from="515" to="516" />
			<date type="published" when="1968">1968</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title level="m" type="main">Finding groups in data: an introduction to cluster analysis</title>
		<author>
			<persName><forename type="first">L</forename><surname>Kaufman</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">J</forename><surname>Rousseeuw</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2009">2009</date>
			<publisher>John Wiley &amp; Sons</publisher>
			<biblScope unit="volume">344</biblScope>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
