<?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">Anomaly and Event Detection for Unsupervised Athlete Performance Data</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Jim</forename><surname>O' Donoghue</surname></persName>
						</author>
						<author>
							<persName><forename type="first">Mark</forename><surname>Roantree</surname></persName>
						</author>
						<author>
							<persName><forename type="first">Bryan</forename><surname>Cullen</surname></persName>
							<affiliation key="aff1">
								<orgName type="department">School of Health and Human Performance</orgName>
								<orgName type="institution">Dublin City University</orgName>
								<address>
									<settlement>Glasnevin, Dublin</settlement>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Niall</forename><surname>Moyna</surname></persName>
						</author>
						<author>
							<persName><forename type="first">Conor</forename><forename type="middle">O</forename><surname>Sullivan</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">School of Computing 2 Insight: Centre for Data Analytics</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Andrew</forename><surname>Mccarren</surname></persName>
							<affiliation key="aff0">
								<orgName type="department">School of Computing 2 Insight: Centre for Data Analytics</orgName>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff2">
								<address>
									<country key="IE">Ireland</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Anomaly and Event Detection for Unsupervised Athlete Performance Data</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">AB9A44BB743EAE56FFFC2A5CBD813DE2</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T23:37+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>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>There are many projects today where data is collected automatically to provide input for various data mining algorithms. A problem with freshly generated datasets is their unsupervised nature, leading to difficulty in fitting predictive algorithms without substantial manual effort. One of the first steps in dataset preparation and mining is anomaly detection, where clear anomalies and outliers as well as events or changes in the pattern of the data are identified as a precursor to subsequent steps in data mining. In the research presented here, we provide a multi-step anomaly detection process which utilises different combinations of algorithms for the most accurate identification of outliers and events.</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>Anomaly detection is an important component in data science. In many situations, researchers are confronted with datasets which possibly contain a large number of features and more often than not, incorporates outliers and missing data. Implementing dimensionality reduction and incorporating cluster analysis techniques such as K -means are commonly used in performing unsupervised learning tasks in such data. In fact, principal components are the continuous solutions to the discrete cluster membership indicators for K -means clustering <ref type="bibr" target="#b3">[4]</ref>.</p><p>Anomalies are generally defined as unusual events which occur within a dataset, where a subset of these events are outliers. Outliers are occurrences that make either no physical sense, or appear so extreme they are considered probabilistically infeasible. The identification of outliers and anomalies is critical in avoiding poorly-fitting models for many machine learning algorithms <ref type="bibr" target="#b16">[17]</ref>.</p><p>Copyright c 2015 by the papers authors. Copying permitted only for private and academic purposes. In: R. Bergmann, S. Görg, G. Müller (Eds.): Proceedings of the LWA 2015 Workshops: KDML, FGWM, IR, and FGDB. Trier, Germany, 7.-9. October 2015, published at http://ceur-ws.org</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.1">Problem Background</head><p>The physiological demands of any sport are determined largely by the activity patterns of the game. Similar to other team sports, Gaelic football <ref type="bibr" target="#b0">[1]</ref> involves repeated, short duration, high intensity bouts of anaerobic exercise interspersed with sustained light to moderate aerobic activity. The duration of these intervals of high intensity are largely unpredictable, due to the fact that they are imposed by the pattern of play, and can vary greatly from player to player and from one game to another. On average, senior players perform 96 bursts of high intensity activity lasting 6 seconds followed by an average recovery of 37 seconds. These players typically work at 80% of their maximum heart rate (HRmax) and cover an average distance of 8.5 km during competitive games. Superimposed on the physiological demands of match play are key technical activities such as winning possession of the ball, evading opponents and breaking tackles which involve high running velocities, agility, strength and power.</p><p>As part of the process for collecting data on each athlete, global positioning software (GPS) has become increasingly popular among sport scientists as a method of tracking movement patterns in many field based sports <ref type="bibr" target="#b12">[13]</ref>. Modern GPS devices are portable, robust and lightweight making them particularly suited to field based sports. From a sports science perspective, the initial aim is to evaluate the characteristics and fitness levels of Gaelic football players and compare the physical and fitness characteristics relative to each playing position. The subsequent goal is to predict when these players are approaching or have reached optimal performance level. This requires the generation of a sufficiently rich dataset to build an initial model before it can be used in a real time environment. At each of 17 competitive games, 10 out of 15 players in the team were fitted with appropriate sensor devices to record heart rate, speed, distance covered, GPS location and accelerometer values, recording at multiple times per second. The resulting dataset contained in excess of 200 million values. Simple detection methods <ref type="bibr" target="#b13">[14]</ref> can be useful for more obvious outliers, but encounter limitations in discerning more subtle anomalies. Due to the nature of contact sport, the devices incur a number of blows during each game, introducing many potential anomalies. The work presented here focuses on anomaly detection in unsupervised data.</p><p>Contribution. If one uses unsupervised clustering techniques such as Kmeans to determine an anomaly, then K (proposed number of clusters) can be calculated as part of the X-means cluster estimation technique <ref type="bibr" target="#b11">[12]</ref>. However, such algorithms rely on the choice of good initial starting points <ref type="bibr" target="#b4">[5]</ref> to find workable solutions. Our contribution is the development of an unsupervised outlier detection algorithm for time series data which employs both univariate and multivariate approaches for a more accurate detection rate and further our previously developed learning framework <ref type="bibr" target="#b10">[11]</ref> to incorporate anomaly detection as well as classification. The univariate method is based on the approach taken in <ref type="bibr" target="#b14">[15]</ref> but extends this work to manage time series data, while the multivariate approach builds upon the work of <ref type="bibr" target="#b15">[16]</ref> and introduces a secondary decision statistic which detects when variables are unusually static. In dynamic environments such as GAA matches extremely static measurements are equally as anomalous as those which are extremely varying.</p><p>Paper Structure. The paper is structured as follows: in Section 2, we discuss related work in the area; in Section 3 we provide a description of our approach and detail how we identify and classify anomalies; we describe our experimental setup together with an evaluation of the results in Section 4; and finally, we present our conclusions in Section 5.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">Related Research</head><p>In <ref type="bibr" target="#b7">[8]</ref>, the authors present a novel approach for anomaly detection incorporating both density and grid-based clustering algorithms. Their primary focus is high dimensional data and they test their algorithm on the KDD Cup 1999 network dataset <ref type="bibr" target="#b8">[9]</ref>. The approach taken was to optimise the pMafia algorithm, using a Frequency-Pattern tree in an intermediate step in order to improve the detection rate. Similar to our approach, they provide an unsupervised anomaly detection algorithm. However, in their evaluation it was shown that the improvement in detection rate had a negative side effect in generating a higher number of false positives. By their own admission, the algorithm works best for datasets with certain characteristics i.e. data points sought will be statistically different from normal data. This means that if there is an entire window of anomalous data, this may affect the performance of the detection method.</p><p>In <ref type="bibr" target="#b2">[3]</ref>, the authors present an algorithm for anomaly detection in multivariate time series data. Their goal is to capture relationships across variables and by doing so, identify different types of anomalies that occur in the time series dataset. As we use a real-world dataset, our comments concern their evaluation with the several time series datasets from <ref type="bibr" target="#b1">[2]</ref> and not the experiments with synthetic data. The evaluation used a sliding window of length 6 and clearly demonstrates that for time series, a subsequence of data points outperforms the basic data point approach, which is similar to our findings. Apart from the fact that our research is based fully on a real-world dataset using unsupervised learning, we also employ both univariate and multivariate algorithms to deliver a higher performance in anomaly and outlier detection.</p><p>The authors of <ref type="bibr" target="#b16">[17]</ref> developed the Robust Support Vector Machine that demonstrates its ability to identify images (bullet holes) when outliers exist. This algorithm is an improvement on the standard support vector machine (SVM) algorithm as the incorporation of the averaging technique to an SVM makes the decision function less susceptible to outliers and thus, avoids overfitting. The process could be used to identify outliers however it requires a supervised training dataset which, as with our work, is not always available.</p><p>In <ref type="bibr" target="#b11">[12]</ref>, the authors propose an extension to K -means algorithm called Xmeans to identify outliers in Gaussian datasets without specifying the initial number of suspected clusters. The algorithm performed exceptionally well with regard to identifying the exact number of clusters and functioned commensu-rately against the K -means algorithm. However, the X -means algorithm is vulnerable to initial estimates and may attain a sub-optimal minima.</p><p>In <ref type="bibr" target="#b3">[4]</ref>, the authors demonstrate mathematically that principal components are the continuous solutions to the discrete cluster membership indicators for K -means clustering. This idea is extended in our work by using principal components as the basis for a decision based system to detect outliers in truly unsupervised data. In <ref type="bibr" target="#b15">[16]</ref>, the authors propose a novel Principal Components classifier in order to detect anomalies in the case of network intrusion identification on the KDD Cup 1999 network dataset, whose aim was to detect attacks on network access data. While they produced a false hit rate of only 1% and their PCC remained robust to false positives, all the other metrics degraded significantly in terms of quality. Our approach uses the PCC but extends it to detect highly static variables with a secondary chi-squared decision statistic. Furthermore, our training data is real-world, containing anomalous examples, whereas in <ref type="bibr" target="#b15">[16]</ref> their classifier was trained on completely clean, non-anomalous data.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3">Outline Approach</head><p>Our anomaly detection algorithm has 4 primary components: Boundary Detection, Univariate Outlier Detection, Principal Component Transformation and Principal Component Classification. The role of the algorithm is to detect anomalies and classify these as outliers (data points which are far outside the expected norm) or events (samples which demonstrate a clear shift in the pattern of the data). Each of the algorithm's components detects anomalies within the dataset with the exception of Principal Component Transformation which transforms the data only. We now provide a brief overview of each component.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Boundary Detection</head><p>This represents a pre-processing stage where clearly erroneous data points are removed. This can only take place for those features where a domain expert has clearly specified boundaries, outside which data values make no sense. For example, if a player had a heart-rate below 40bpm or above 250bpm, the hardware has clearly malfunctioned. The process eliminates obvious errors so that later calculations are not affected.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Univariate Outlier Detection</head><p>This stage is based on Chauvnet's method, an approach for univariate outlier detection found in <ref type="bibr" target="#b14">[15]</ref>. Euclidean distance <ref type="bibr" target="#b15">[16]</ref> has shown to be of little value with this type of time series data as it detects far too many outliers and thus, excludes large amounts of data. Early experiments with Euclidean distance with sport scientists for manual evaluation confirmed this assumption. A first step marks a sample as an anomaly low or anomaly high, while a second classifies these anomalies as either: outlier, event or untrue (not an anomaly). Before detecting anomalous values, the algorithm first calculates summary statistics of mean, variance and standard deviation, denoted by x, σ 2 , and σ respectively, for each feature x i in the dataset X. Unlike <ref type="bibr" target="#b14">[15]</ref>, where anomalies are detected with standard deviation alone, our univariate approach incorporates time differencing and compares the current time difference against previous time differences. If it is significantly different, we then compare with the future time difference to confirm the data point is an anomaly or outlier. This is achieved by iterating through each feature and examining every time point with a t-distribution coefficient for natural confidence intervals on the differenced data (which removes any non-stationary components of the data), a crucial factor for time series data as it is non-stationary.</p><p>The first steps of the algorithm presented get the dimensions of the dataset |X| = (T x n), where T is the number of time-points or samples and n is the number of features where ∀x t,i ∈ X, t ∈ (1, 2, . . . , T −1, T ) and i ∈ (1, 2, . . . , n−1, n). Subsequently a t-distribution coefficient β of 3 was chosen to give approximately a 99.9% confidence interval in order to detect anomalies with an α of 0.001 for each feature, where α is the probability of a false alarm. In concrete terms, this coefficient is multiplied by the standard deviation both positively and negatively (±3σ∆x i ) for each feature in order to calculate upper and lower bounds for anomalies.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.3">Principal Component Transformation</head><p>The aim of this step is to compute key characteristics and to transform the data for the final stage in the algorithm.</p><p>1. Recalculate the summary statistics from the previous stage. This is necessary due to removed outliers. 2. Impute the missing values. 3. Calculate the correlation matrix in order to provide input to the Principal Components Analysis. 4. Calculate eigenvectors and eigenvalues. The eigenvectors enable the creation of an orthogonal representation of the dataset, used to derive the principal components. Eigenvalues measure the energy contribution of each of the principal components, as well as providing input into the principal components classifier. 5. Standardise each feature to have unit variance. For each feature x, this involves subtracting the mean, x from x and dividing the result by the standard deviation, σ 2 x. 6. Compute the transformed dataset. Principal Component Analysis (PCA) provides an orthogonal representation of the data, describing it in terms of the axes of most variation for each component.</p><p>Before transforming the data into its principal components, it is differenced at a one second time lag and transformed into a 5 second moving average, centred on the value being transformed, essentially filtering noise from the data. Missing values are imputed with the R Amelia <ref type="bibr" target="#b5">[6]</ref> package. Amelia is a multi-variate imputation mechanism which infers missing data in a single-cross section from times series and is the only R component in a Python application. The use of R was necessary as Amelia was not available in Python and was evaluated to best suit our imputation needs. Employing bootstrapping and Expectation Maximisation, it allows for imputation from the posterior distribution of the data.</p><p>After imputation, it is necessary to determine how much the features change together by calculating the correlation matrix. The dimensions of this matrix are (p x p) where p is the number of features the dataset.</p><formula xml:id="formula_0">Algorithm 1 Data Transform 1: function DataTransform(X) 2:</formula><p>X lagl ← moving avrg(X) transform data into moving average at a lag of l 3:</p><p>X imp ← amelia(∆X lagl ) impute missing data with Amelia on the differences The eigenvectors E are then calculated on the non-standardised data using the correlation matrix (whose calculation effectively standardises the data) where each eigenvector e i ∈ e 1 , e 2 , . . . , e p . Eigenvalues λ 1 , . . . , λ p are also calculated. Once the data is standardised as Z, the result is multiplied with the eigenvectors which gives the principal components of the original dimensions (T x n).</p><formula xml:id="formula_1">4: cov(Ximp, Yimp) = T t=1 (x imp t,i − xi imp )(y imp t,i − ȳi imp ) T −1 calculate covariance 5: corr(X imp , Y imp ) = cov(X imp ,Y imp ) σX imp Y</formula></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4">Principal Component Classification</head><p>The final stage has three main steps.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.">Calculate the number of major and minor components to use by calculating</head><p>the cumulative percentage of the total eigenvalue energy for each. 2. Calculate the classification value or test statistic for each sample.</p><p>(a) Sum the major components divided by their eigenvalues, giving you the chi-squared test-statistic. (b) Calculate the same value for minor components. 3. Classify anomalies using significance values calculated with the chi-squared distribution (a) Use the test statistic generated from step 2, compute the decision statistics with the chi-squared cumulative distribution function and compare this to a chi-squared distribution with num components degrees of freedom and all false alarm rates α providing the confidence interval. The chi-squared distribution was employed as we observed that the distribution of differenced, standardised variables at the univariate stage demonstrated a normal distribution. (b) If confidence interval exceeds either of the chosen decision statistic thresholds (e.g. &gt; 95% or &lt; 0.001%), for either the major or the minor components test statistics (who have the same false alarm α pairs), the data instance is classified as anomalous.</p><p>In algorithm 3, we first calculate the number of principal involved and determine how variation in both the major and minor components is to be included in the classifier. The percentage variation thresholds are set and subsequently the number of components to use are calculated with Algorithm 2 which takes the eigenvalues, type of components being summed (string of 'major' or 'minor') and the desired percentage eigenvalue energy (variation) as parameters. Eigenvalues are initially summed to calculate the total variance and then the parameter num components and current sum (running total) are initialised to zero before being calculated.</p><p>In lines 5 to 12 of algorithm 2, for each eigenvalue there is a check to see if the current percent variance sum is less than the desired variance. If this is the case, the number of components is incremented and added to variance sum is the current eigenvalue divided by the eigenvalue total sum, as this gives the percentage variance. It is worth noting that if it is the major components sum, we begin at i = 1 to start with the major components but with the minor components, we begin with the last eigenvalue i = p − 1 where p is the total number of eigenvalues.</p><p>Once the number of major components q and the number of minor components r are found, the chi-squared test statistics are then calculated for both component types by summing the value for the component p i at time-point t divided by the appropriate eigenvalue λ i up until the number of components is exhausted. In the case of the major components, the process begins at 1 and stops at component q whereas in the case of the minor components, it begins at the last component p and sum to p − r as shown in lines 7 to 12.</p><p>In lines 13 and 14, the decision statistic is calculated by 1 − the chi-squared cumulative distribution function with q degrees of freedom for the major components and r for the minor components. Given that our data follows a multivariate normal distribution the overall false alarm rate is given by Equation <ref type="formula">1</ref>.</p><formula xml:id="formula_2">α total = α major + α minor − α major α minor (1)</formula><p>We then chose the varying and static false alarm rates α large and α static (line 15). If a particular decision statistic is greater than 1 − α static or less than 1 − α large i.e. a certain significance threshold, the row is classified as anomalous return Anomalies 24: end function as in line 18 of Algorithm 3. This implies a very large or very small degree of variation at this time-point. Our extension to the PCC captures where there is very little or no variation from sample to sample. Our features should be nonstatic and should be constantly changing, this minor variation parameter was a very important factor and was not incorporated by <ref type="bibr" target="#b15">[16]</ref>. Finally, as our aim was to identify anomalous time-periods as opposed to particular time-points (as a time-point itself is not anomalous) and due to our rolling average transformation, we incorporated time-points within an 11 point centred window as anomalous.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Evaluation and Analysis</head><p>In this section, we briefly describe our dataset, approach to evaluation and provide a detailed analysis of experiments and results.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.1">Experiment Setup</head><p>Experimental Set-up. Experiments were performed on a Dell Optiplex 790 running 64-bit Windows 7 Home Premium SP1 with an Intel Core i7-2600 quadcore 3.40 GHz CPU and 16.0GB of RAM. The code for the experiments was developed in Python using the Enthought Canopy (1.5.4.3105) distribution of 64-bit Python 2.7.6 and developed in PyCharm 4.5 IDE, making use of NumPy 1.8.1-1 <ref type="bibr" target="#b17">[18]</ref>, Pandas 0.16.0 <ref type="bibr" target="#b9">[10]</ref> and SciPy 0.15.1 <ref type="bibr" target="#b6">[7]</ref> for mathematical and statistical operations and data manipulation. The imputations were performed with R and Amelia, package version 1.0 <ref type="bibr" target="#b5">[6]</ref>.</p><p>Dataset. For our evaluation, we used the results of one match with 81,165 instances in the dataset. The hardware devices generate at least 10 sets of measures per second, which were averaged giving one set of measures per second and providing just under 8,000 instances. As only heart rate and distance covered were used in this experiment and only 9 players generated data, each instance had 18 features per second, namely 9 sets of heart rates and distances. We selected the data beginning at the pre-match warm-up, until 4 minutes and 30 seconds after the end of the match which left a total 6,211 instances.</p><p>Evaluation Design. The design of the outlier detection algorithm allows for evaluation of different processes in combination. The univariate (P2) and multivariate steps (P3 &amp; P4) were evaluated in isolation and with bounds detection (P1) added. We also evaluated after the univariate step (P1 &amp; P2), without the univariate step (P1, P3, &amp; P4) and with both (P1, P2, P3, &amp; P4).</p><p>Before evaluating combinations of processes, we first tested various numbers of major components in isolation, at various false alarm rates α before performing the same evaluation for the minor components in the PCC. The secondary alpha measure added to P4 to detect unusually static time-points was kept at 0.01% for all experiments, keeping the measure sensitive. Window-size was also not varied and kept at 11, to account for the rolling average transformation.</p><p>Each anomaly detection algorithm was trained on the dataset in its entirety without partition. For testing, a random subset of the dataset was presented to the sports scientist involved in the original data collection for classification. He classified the subset as 69.89% anomalous with the remainder being non-anomalous. We then examined and cross-referenced the relevant subset of each result (from each configuration) and calculated an accuracy score for each. The evaluation metric use for all experiments was accuracy where accuracy = T P +T N P +N .</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4.2">Evaluation: Results and Analysis</head><p>Tuning the PCC (P3 &amp; P4) Table <ref type="table" target="#tab_2">1</ref> shows the results of our empirical search for the parameters to use in our PCC (P3 &amp; P4). We first vary the percentage of total contribution to the classifier by the major components only (r = 0), in a range from 30% to 70% (columns 1 to 4) and then repeat the process with the minor components only (q = 0), in a range of 10% to 20%. We evaluate both at various false alarm rates α, in increments from 1% to 10%. The results in Table <ref type="table" target="#tab_2">1</ref> furnishes us with interesting findings. First, the highest accuracy achieved with the major components (MajC) alone was just over 50% with an α = 10%. This was found at both the 30% and 70% contributions respectively. Increasing the number of major components actually decreased the accuracy for higher false alarm rates but slightly improved the values for lower false alarm rates. Our second finding is that when only the minor components were tested (MinC), a higher accuracy was immediately achieved. This is surprising as the major components explain the major variation in the dataset leading us to the conclusion that, at least for the dataset in question the components that contribute less to the dataset as a whole actually have greater capacity for modelling anomalies, suggesting that anomalous examples in this data are subtle and contribute to noise in the dataset as minor components generally contain a relatively high degree of the noise in a dataset.</p><p>After the analysis of Table <ref type="table" target="#tab_2">1</ref> we chose the percentage contribution for the Major components to be 70% and those of the minor to be 20%. The ROC curve of this can be seen in Figure <ref type="figure" target="#fig_0">1</ref>. Our first observation was the results were not optimal, at 66.67% accuracy this is just a 7% increase to using the minor components in isolation. When we again analysed the results of Table <ref type="table" target="#tab_2">1</ref> we decided to test a configuration where an even greater emphasis was given to the minor components and less to the major components, as we realised that increasing the major components from 30% to 70% gave no great gains in accuracy. We chose to double the contribution from the minor components to 40%. The results again improved with an accuracy increase of just under 11% to 70.97% compared to using either of the major or minor components in isolation, and can also be seen in Figure <ref type="figure" target="#fig_0">1</ref>.  <ref type="table" target="#tab_4">2</ref> shows the comparison of the events found in P2 to the anomalies found with P3/P4, when taken as components in isolation, to those where P1 was coupled with P2 and with P3/P4. We chose to exclude the results from P1-P2-P3-P4 as only six clear outliers were found in P2 to be excluded from the P3/P4 processes and therefore did not have a great impact on the model. The results of the process in its entirety is also shown in Figure <ref type="figure" target="#fig_0">1</ref>, demonstrating a clear gain in accuracy.  As we can see from 2, the PCC multivariate anomaly detector is far more accurate than the univariate outlier process, but once is added, the results approach in accuracy. This is primarily due to zero values now being classed as anomalies from the added boundary detection step. A number of samples given to the sports scientist were found to contain zeros which he immediately classed as anomalies. Further evaluation could perhaps exclude samples containing zeros as these classifications do not accurately test the algorithm as this fundamental step is easy to compute and from the sports scientist's perspective, not difficult to identify via manual inspection. Given this caveat, once P1 was added we still achieved a final classification accuracy of 0.8925 once our algorithmic components were combined, showing the performance of the process as a whole was greater than any constituent process in isolation.</p><p>Some general findings include that anomalies (when the rolling window was not used), often occurred together in a sequential series. This gives credence the hypothesis that in our time-series dataset, anomalies occurred in windows rather than at particular time-points. Furthermore, a subset of the events found from P2 and the anomalies found with P3/P4 overlapped at certain points, indicating strong events at these points. Finally, in an examination of the false positives, we found a number of the distance variables actually remained static, an unusual event for a GAA match and similarly for other sports events. Further evaluation will involve testing this hypothesis with the sports scientists, as we posit certain events even in the relatively small evaluation subset could have been missed upon manual inspection, due to fatigue or other factors incurred by examining vast swathes of data by eye. This secondary analysis could provide further motivation to this work, that is identifying anomalies in data that might have been missed by manual inspection.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Conclusions</head><p>Newly generated datasets often prove difficult for data mining as they can contain erroneous data-points and are often unsupervised (without classifications); datasets produced in areas such as sports science exemplify this. The first step in addressing these problems is anomaly detection, both to remove or adjust those values which are clear outliers, and to detect patterns which are signs of an event or change in the data. In this paper, we presented a novel anomaly detection algorithm which utilises both univariate and multivariate steps enabling us to determine which approach works best for a unsupervised time series dataset. Our results demonstrated the effectiveness of a combined approach when compared to even an improved univariate approach and that a multivariate approach outperforms it's univariate counterpart when used in isolation.</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: P3/P4 and P1+P3/P4 Results at Various False Alarm Rates</figDesc><graphic coords="11,159.36,221.57,296.64,137.66" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head></head><label></label><figDesc>Decisionmaj and δminor,t ∈ Desicisionmin do 18: if δmajor,t &lt; c large | δminor,t &lt; c lrg | δmajor,t &gt; cstat | δminor,t &gt; cstat then 19:</figDesc><table><row><cell cols="5">Algorithm 2 Calculate Number of Components</cell></row><row><cell cols="5">1: function GetNumComponents(e vals , type, variance)</cell></row><row><cell>2:</cell><cell cols="4">λ total = λ1 + λ2 + . . . + λp−1 + λp</cell></row><row><cell>3:</cell><cell cols="4">num components ← 0</cell></row><row><cell>4:</cell><cell cols="2">var sum ← 0</cell><cell></cell></row><row><cell>5:</cell><cell cols="4">for all λi where i ∈ 1, 2, . . . , p do</cell></row><row><cell>6:</cell><cell cols="4">if type == major &amp;&amp; var sum &lt; variance then</cell></row><row><cell>7:</cell><cell cols="4">num components + = 1</cell></row><row><cell>8:</cell><cell cols="4">var sum + = λ i λ total</cell></row><row><cell>9:</cell><cell cols="4">else if type == minor &amp;&amp; var sum &lt; variance then</cell></row><row><cell>10:</cell><cell cols="4">num components + = 1</cell></row><row><cell>11: 12:</cell><cell cols="3">var sum + = end if</cell><cell>λ p−i λ total</cell></row><row><cell>13:</cell><cell>end for</cell><cell></cell><cell></cell></row><row><cell>14:</cell><cell cols="4">return num components</cell></row><row><cell cols="2">15: end function</cell><cell></cell><cell></cell></row><row><cell cols="5">Algorithm 3 Principal Components Classifier</cell></row><row><cell cols="5">1: function PrincipalComponentsClassify (PCC)(P , E, e vals )</cell></row><row><cell>2:</cell><cell>p ← |P |</cell><cell></cell><cell></cell></row><row><cell>3:</cell><cell cols="4">varmaj ← percentage variance for major classifier</cell></row><row><cell>4:</cell><cell cols="4">varmin ← percentage variance for minor classifier</cell></row><row><cell>5:</cell><cell cols="4">q =GetNumComponents(e vals , major , varmaj)</cell></row><row><cell>6:</cell><cell cols="4">r =GetNumComponents(e For each sample</cell></row><row><cell>8: 9:</cell><cell>test maj t end for</cell><cell cols="2">+ = p i λ i</cell></row><row><cell>10:</cell><cell></cell><cell></cell><cell></cell></row><row><cell>11:</cell><cell>test min t</cell><cell>+ =</cell><cell>p j λ j</cell></row><row><cell>12: 13:</cell><cell cols="4">end for Decisionmaj = 1 − P ( q 2 , test maj 2</cell><cell>)</cell><cell>1 -chi-squared cumulative distribution</cell></row><row><cell>14: 15:</cell><cell cols="4">function Decisionmin = 1 − P ( r 2 , test maj 2 c lrg = 1 − α large</cell><cell>)</cell><cell>false alarm rates α maj large = α min large</cell></row><row><cell>16:</cell><cell cols="3">cstat = 1 − αstatic</cell><cell>α maj static = α min static</cell></row><row><cell>17:</cell><cell cols="4">for all δmajor,t ∈ Xt is anomalous</cell></row><row><cell>20:</cell><cell cols="4">Anomaliest ← T rue</cell></row><row><cell>21:</cell><cell>end if</cell><cell></cell><cell></cell></row><row><cell>22:</cell><cell>end for</cell><cell></cell><cell></cell></row><row><cell>23:</cell><cell></cell><cell></cell><cell></cell></row></table><note>vals , minor , varmin) 7:for pi ∈ P where i ∈ 1, 2, . . . , s − 1, s do for pj ∈ P where j ∈ p, p − 1, . . . , p − d do</note></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table 1 :</head><label>1</label><figDesc>Evaluation of Major only r = 0 and Minor only Components q = 0</figDesc><table><row><cell>α</cell><cell cols="6">MajC 30% MajC 40% MajC 50% Maj 60% MajC 70% Min 10% MinC 20%</cell></row><row><cell cols="2">1% 0.3656</cell><cell>0.3978</cell><cell>0.3979</cell><cell>0.3979</cell><cell>0.4409</cell><cell>0.4839 0.5807</cell></row><row><cell cols="2">2% 0.3979</cell><cell>0.3978</cell><cell>0.3871</cell><cell>0.4086</cell><cell>0.4409</cell><cell>0.5269 0.5807</cell></row><row><cell cols="2">4% 0.4409</cell><cell>0.4301</cell><cell>0.4301</cell><cell>0.4409</cell><cell>0.4409</cell><cell>0.5054 0.5914</cell></row><row><cell cols="2">6% 0.4624</cell><cell>0.4409</cell><cell>0.4409</cell><cell>0.4731</cell><cell>0.4731</cell><cell>0.5161 0.6237</cell></row><row><cell cols="2">8% 0.4839</cell><cell>0.4624</cell><cell>0.4731</cell><cell>0.4731</cell><cell>0.5054</cell><cell>0.5484 0.6237</cell></row><row><cell cols="2">10% 0.5054</cell><cell>0.4946</cell><cell>0.4946</cell><cell>0.4839</cell><cell>0.5054</cell><cell>0.5807 0.6022</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_4"><head>Table 2 :</head><label>2</label><figDesc>Comparing Processes</figDesc><table /></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgments</head><p>This work was partially funded by FP7 project Grant Agreement Number 304979 and also by Science Foundation Ireland under grant number SFI/12/RC/2289.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<monogr>
		<ptr target="www.gaa.ie/about-the-gaa/our-games/football/rules" />
		<title level="m">Rules of gaa football</title>
				<imprint>
			<date type="published" when="2015-07">2015. 09/07/2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<title level="m" type="main">The ucr time series classification archive</title>
		<author>
			<persName><forename type="first">Yanping</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Eamonn</forename><surname>Keogh</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Bing</forename><surname>Hu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Nurjahan</forename><surname>Begum</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Anthony</forename><surname>Bagnall</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Abdullah</forename><surname>Mueen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Gustavo</forename><surname>Batista</surname></persName>
		</author>
		<ptr target=".www.cs.ucr.edu/~eamonn/time_series_data/" />
		<imprint>
			<date type="published" when="2015-07">July 2015</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Detection and characterization of anomalies in multivariate time series</title>
		<author>
			<persName><forename type="first">Haibin</forename><surname>Cheng</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Pang-Ning</forename><surname>Tan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Christopher</forename><surname>Potter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Steven</forename><forename type="middle">A</forename><surname>Klooster</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">SDM</title>
				<imprint>
			<publisher>SIAM</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="413" to="424" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">K-means clustering via principal component analysis</title>
		<author>
			<persName><forename type="first">Chris</forename><surname>Ding</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Xiaofeng</forename><surname>He</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the twenty-first international conference on Machine learning</title>
				<meeting>the twenty-first international conference on Machine learning</meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2004">2004</date>
			<biblScope unit="page">29</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">MA efficient kmeans with good initial starting points</title>
		<author>
			<persName><surname>Am Fahim</surname></persName>
		</author>
		<author>
			<persName><surname>Salem</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Torkey</surname></persName>
		</author>
		<author>
			<persName><surname>Saake</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Georgian Electronic Scientific Journal: Computer Science and Telecommunications</title>
		<imprint>
			<biblScope unit="volume">2</biblScope>
			<biblScope unit="issue">19</biblScope>
			<biblScope unit="page" from="47" to="57" />
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
	<note>and</note>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<author>
			<persName><forename type="first">Matthew</forename><surname>Blackwell</surname></persName>
		</author>
		<author>
			<persName><forename type="first">James</forename><surname>Honaker</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Gary</forename><surname>King</surname></persName>
		</author>
		<title level="m">R package version 1.0 -For new features</title>
				<imprint>
			<date type="published" when="2014">2014</date>
		</imprint>
	</monogr>
	<note>Amelia II: A Program for Missing Data. see the &apos;Changelog&apos; file (in the package source</note>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<title level="m" type="main">SciPy: Open source scientific tools for Python</title>
		<author>
			<persName><forename type="first">Eric</forename><surname>Jones</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Travis</forename><surname>Oliphant</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Pearu</forename><surname>Peterson</surname></persName>
		</author>
		<ptr target="http://www.scipy.org/" />
		<imprint>
			<date type="published" when="2001">2001. 2015-06-29</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Unsupervised anomaly detection in network intrusion detection using clusters</title>
		<author>
			<persName><forename type="first">Kingsly</forename><surname>Leung</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Christopher</forename><surname>Leckie</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Twenty-eighth Australasian conference on Computer Science</title>
				<meeting>the Twenty-eighth Australasian conference on Computer Science</meeting>
		<imprint>
			<publisher>Australian Computer Society, Inc</publisher>
			<date type="published" when="2005">2005</date>
			<biblScope unit="volume">38</biblScope>
			<biblScope unit="page" from="333" to="342" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<author>
			<persName><forename type="first">Moshe</forename><surname>Lichman</surname></persName>
		</author>
		<ptr target="https://archive.ics.uci.edu/ml/datasets/KDD+Cup+1999+Data" />
		<title level="m">kdd cup dataset, UCI machine learning repository</title>
				<imprint>
			<date type="published" when="1999">1999. 2013</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Data structures for statistical computing in python</title>
		<author>
			<persName><forename type="first">Wes</forename><surname>Mckinney</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 9th Python in Science Conference</title>
				<editor>
			<persName><forename type="first">Stéfan</forename><surname>Van Der</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">Walt</forename></persName>
		</editor>
		<editor>
			<persName><forename type="first">Jarrod</forename><surname>Millman</surname></persName>
		</editor>
		<meeting>the 9th Python in Science Conference</meeting>
		<imprint>
			<date type="published" when="2010">2010</date>
			<biblScope unit="page" from="51" to="56" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">A framework for selecting deep learning hyper-parameters</title>
		<author>
			<persName><forename type="first">Jim</forename><surname>Odonoghue</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Mark</forename><surname>Roantree</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Data Science</title>
				<imprint>
			<publisher>Springer</publisher>
			<date type="published" when="2015">2015</date>
			<biblScope unit="page" from="120" to="132" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">X-means: Extending k-means with efficient estimation of the number of clusters</title>
		<author>
			<persName><forename type="first">Dan</forename><surname>Pelleg</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Andrew</forename><forename type="middle">W</forename><surname>Moore</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICML</title>
				<imprint>
			<date type="published" when="2000">2000</date>
			<biblScope unit="page" from="727" to="734" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Integrating sensor streams in phealth networks</title>
		<author>
			<persName><forename type="first">Mark</forename><surname>Roantree</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Donall</forename><surname>Mccann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Niall</forename><surname>Moyna</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ICPADS&apos;08. 14th IEEE International Conference on</title>
				<imprint>
			<publisher>IEEE</publisher>
			<date type="published" when="2008">2008. 2008</date>
			<biblScope unit="page" from="320" to="327" />
		</imprint>
	</monogr>
	<note>Parallel and Distributed Systems</note>
</biblStruct>

<biblStruct xml:id="b13">
	<analytic>
		<title level="a" type="main">Data transformation and query management in personal health sensor networks</title>
		<author>
			<persName><forename type="first">Mark</forename><surname>Roantree</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Jie</forename><surname>Shi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Paolo</forename><surname>Cappellari</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Martin</forename><forename type="middle">F</forename><surname>Oconnor</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Michael</forename><surname>Whelan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Niall</forename><surname>Moyna</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Intelligent Algorithms for Data-Centric Sensor Networks</title>
				<imprint>
			<date type="published" when="2012">2012</date>
			<biblScope unit="volume">35</biblScope>
			<biblScope unit="page" from="1191" to="1202" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b14">
	<analytic>
		<title level="a" type="main">Peirce&apos;s criterion for the elimination of suspect experimental data</title>
		<author>
			<persName><forename type="first">Ross</forename><surname>Stephen</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Engineering Technology</title>
		<imprint>
			<biblScope unit="volume">20</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="38" to="41" />
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b15">
	<monogr>
		<title level="m" type="main">A novel anomaly detection scheme based on principal component classifier</title>
		<author>
			<persName><forename type="first">Mei-Ling</forename><surname>Shyu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Shu-Ching</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Kanoksri</forename><surname>Sarinnapakorn</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Liwu</forename><surname>Chang</surname></persName>
		</author>
		<imprint>
			<date type="published" when="2003">2003</date>
		</imprint>
	</monogr>
	<note type="report_type">DTIC Document</note>
</biblStruct>

<biblStruct xml:id="b16">
	<analytic>
		<title level="a" type="main">Robust support vector machine with bullet hole image classification</title>
		<author>
			<persName><forename type="first">Qing</forename><surname>Song</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Wenjie</forename><surname>Hu</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Wenfang</forename><surname>Xie</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Systems, Man, and Cybernetics, Part C: Applications and Reviews</title>
		<imprint>
			<biblScope unit="volume">32</biblScope>
			<biblScope unit="issue">4</biblScope>
			<biblScope unit="page" from="440" to="448" />
			<date type="published" when="2002-11">Nov 2002</date>
		</imprint>
	</monogr>
	<note>IEEE Transactions on</note>
</biblStruct>

<biblStruct xml:id="b17">
	<analytic>
		<title level="a" type="main">The numpy array: a structure for efficient numerical computation</title>
		<author>
			<persName><forename type="first">Stefan</forename><surname>Van Der Walt</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Chris</forename><surname>Colbert</surname></persName>
		</author>
		<author>
			<persName><forename type="first">Gael</forename><surname>Varoquaux</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Computing in Science &amp; Engineering</title>
		<imprint>
			<biblScope unit="volume">13</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="22" to="30" />
			<date type="published" when="2011">2011</date>
		</imprint>
	</monogr>
</biblStruct>

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