<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Sensors</journal-id>
<journal-title>Sensors</journal-title>
<issn pub-type="epub">1424-8220</issn>
<publisher>
<publisher-name>Molecular Diversity Preservation International (MDPI)</publisher-name></publisher></journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3390/s100504675</article-id>
<article-id pub-id-type="publisher-id">sensors-10-04675</article-id>
<article-categories>
<subj-group>
<subject>Article</subject></subj-group></article-categories>
<title-group>
<article-title>Classification of Agarwood Oil Using an Electronic Nose</article-title></title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Hidayat</surname><given-names>Wahyu</given-names></name><xref ref-type="corresp" rid="c1-sensors-10-04675">*</xref></contrib>
<contrib contrib-type="author">
<name><surname>Shakaff</surname><given-names>Ali Yeon Md.</given-names></name></contrib>
<contrib contrib-type="author">
<name><surname>Ahmad</surname><given-names>Mohd Noor</given-names></name></contrib>
<contrib contrib-type="author">
<name><surname>Adom</surname><given-names>Abdul Hamid</given-names></name></contrib>
<aff id="af1-sensors-10-04675">Sensor Technology and Applications Research Cluster, Universiti Malaysia Perlis (UniMAP), 01000 Kangar, Perlis, Malaysia; E-Mails: <email>aliyeon@unimap.edu.my</email> (A.Y.M.S.); <email>mohdnoor@unimap.edu.my</email> (M.N.A.); <email>abdhamid@unimap.edu.my</email> (A.H.A.)</aff></contrib-group>
<author-notes>
<corresp id="c1-sensors-10-04675">
<label>*</label> Author to whom correspondence should be addressed; E-Mail: <email>wahyuh@hotmail.com</email>; Tel.: +60-4-9798897; Fax: +60-4-9775302.</corresp></author-notes>
<pub-date pub-type="collection">
<year>2010</year></pub-date>
<pub-date pub-type="epub">
<day>6</day>
<month>5</month>
<year>2010</year></pub-date>
<volume>10</volume>
<issue>5</issue>
<fpage>4675</fpage>
<lpage>4685</lpage>
<history>
<date date-type="received">
<day>1</day>
<month>3</month>
<year>2010</year></date>
<date date-type="rev-recd">
<day>14</day>
<month>4</month>
<year>2010</year></date>
<date date-type="accepted">
<day>19</day>
<month>4</month>
<year>2010</year></date></history>
<permissions>
<copyright-statement>© 2010 by the authors; licensee MDPI, Basel, Switzerland.</copyright-statement>
<copyright-year>2010</copyright-year>
<license>
<p>This article is an open-access article distributed under the terms and conditions of the Creative Commons Attribution license (<ext-link xlink:href="http://creativecommons.org/licenses/by/3.0/" ext-link-type="uri">http://creativecommons.org/licenses/by/3.0/</ext-link>).</p></license></permissions>
<abstract>
<p>Presently, the quality assurance of agarwood oil is performed by sensory panels which has significant drawbacks in terms of objectivity and repeatability. In this paper, it is shown how an electronic nose (e-nose) may be successfully utilised for the classification of agarwood oil. Hierarchical Cluster Analysis (HCA) and Principal Component Analysis (PCA), were used to classify different types of oil. The HCA produced a dendrogram showing the separation of e-nose data into three different groups of oils. The PCA scatter plot revealed a distinct separation between the three groups. An Artificial Neural Network (ANN) was used for a better prediction of unknown samples.</p></abstract>
<kwd-group>
<kwd>agarwood oil</kwd>
<kwd>e-nose</kwd>
<kwd>HCA</kwd>
<kwd>PCA</kwd>
<kwd>ANN</kwd>
<kwd>dimensionality reduction</kwd></kwd-group></article-meta></front>
<body>
<sec sec-type="intro">
<label>1.</label>
<title>Introduction</title>
<p>Agarwood is the well-known name for a resinous heartwood from ‘wounded/infected’ Aquilaria trees, a tropical forest product which has a high value in international trading. There are increasing demands for agarwood-based products for use in medicine, perfume, and incense. Agarwood is traded in the form of product derivatives such as wood chips, powder, and oil. The wholesale price for high quality agarwood oils is around US$30,000–US$50,000 per liter [<xref ref-type="bibr" rid="b1-sensors-10-04675">1</xref>], depending on the oil quality, which is based upon the fragrance strength and longevity, resin content, geographical origin, and oil purity [<xref ref-type="bibr" rid="b2-sensors-10-04675">2</xref>].</p>
<p>Traditionally, agarwood grading has been performed by trained human graders (sensory panels). However, the method has disadvantages in terms of objectivity and repeatability [<xref ref-type="bibr" rid="b3-sensors-10-04675">3</xref>]. In addition, a human nose cannot tolerate a high number of samples because it fatigues rapidly with increasing number of samples. In this paper, it is shown how an electronic nose (e-nose) may be used to resolve these issues. A commercial e-nose, the Cyranose 320 (Smith Detection, USA) was used to collect the smell (fragrance) data (herein termed as ‘smellprint’) which was then processed on a personal computer using different pattern recognition methods: Hierarchical Cluster Analysis (HCA), Principal Component Analysis (PCA) and Artificial Neural Network (ANN).</p></sec>
<sec>
<label>2.</label>
<title>Experimental</title>
<p>An experiment aimed to produce a data set with robust consistency was conducted using a Cyranose 320 (see <xref ref-type="fig" rid="f1-sensors-10-04675">Figure 1</xref>). The important features of the Cyranose 320 are provided in <xref ref-type="table" rid="t1-sensors-10-04675">Table 1</xref> [<xref ref-type="bibr" rid="b4-sensors-10-04675">4</xref>]. The acquired raw data was then processed and interpreted into meaningful information. The samples were obtained from three groups of agarwood oils originating from Laos, Johor (Malaysia) and Terengganu (Malaysia), which were labelled as G12, G22, and G32, respectively. Two μL samples from each locality was diluted using 500 mL glycerol as a solvent. The samples were placed in a 40 mL stoppered vial connected to a Cyranose 320 via an inert tubing and heated to 60 °C in a heater block. Each experiment was run for 30 min.</p>
<p><xref ref-type="fig" rid="f2-sensors-10-04675">Figure 2</xref> illustrates an airtight recycle system for continuous sniffing. This approach could avoid volatile concentration loss and also pressure loss at the glass vial, which would affect the experiment. An automatic valve as well as a small pump was provided in the Cyranose 320 to control the system flow. In addition, the use of an extra valve mechanism outside the Cyranose 320 was improvised to facilitate sensor cleansing. In <xref ref-type="fig" rid="f2-sensors-10-04675">Figure 2</xref>, the red arrows (solid-line) indicate a sampling cycle. An internal valve was switched to the sample inlet (X). The volatile was then sucked into the e-nose through inlet (X) and was retained for 20 s in the sensor chamber before being removed through outlet (Z). At the same time, the external valve allowed volatile from Z to fill the glass vial. At the end of 10 cycles, the internal valve allowed the nitrogen gas (N2) to purge the sensors via inlet (Y) and removed out to the atmosphere through port (Z). The purge cycle is illustrated by the blue arrows (dashed-line) in <xref ref-type="fig" rid="f2-sensors-10-04675">Figure 2</xref>. The experiments were controlled by the Cyranose 320 according to the set-up parameters as shown in <xref ref-type="table" rid="t2-sensors-10-04675">Table 2</xref>.</p></sec>
<sec sec-type="results|discussion">
<label>3.</label>
<title>Results and Discussion</title>
<sec>
<label>3.1.</label>
<title>Smellprint</title>
<p>The agarwood oil volatiles are adsorbed on the sensor’s surfaces and cause a change in its resistance. The response of the sensor is defined by using fractional baseline manipulation [<xref ref-type="bibr" rid="b5-sensors-10-04675">5</xref>]:
<disp-formula id="FD1">
<label>(1)</label>
<mml:math display="block">
<mml:mrow>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi mathvariant="normal">Δ</mml:mi>
<mml:mi mathvariant="normal">R</mml:mi></mml:mrow>
<mml:mi mathvariant="normal">s</mml:mi></mml:msub></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>n</mml:mi></mml:mrow></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>R</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>0</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:math></disp-formula>where ΔR<sub>s</sub> is the resistance change of sensor s, <italic>R<sub>s,n</sub></italic> is the output resistance and <italic>R<sub>s,0</sub></italic> is the baseline output. The subscript index s is the sensor number used in the Cyranose (s = 1…32) and n is an index for the number of data (n = 1…N).</p>
<p>As an example, <xref ref-type="fig" rid="f3-sensors-10-04675">Figure 3</xref> shows responses from seven sensors of the Cyranose 320. The data was taken from one sampling cycle of a G12 experiment. The figure also illustrates the base line purge time, sampling time and purge time.</p>
<p>The average of values evaluated by <xref ref-type="disp-formula" rid="FD1">Equation (1)</xref> is plotted as shown in <xref ref-type="fig" rid="f4-sensors-10-04675">Figure 4</xref>, and corresponds to the smellprints of the three different agarwood oils. Sensors with high responses are analyzed by comparing their peaks and profiles [<xref ref-type="bibr" rid="b6-sensors-10-04675">6</xref>]. Sensor numbers 6, 31, 5, 23, and 28 (in the order of diminishing responses) have higher responses compared to the rest when exposed to the volatiles of the different grade of oils. However, the analysis of smellprints becomes more difficult when there is an increase in the number of samples having overlapping profiles. This issue can be solved using graphical methods based on statistical theories [<xref ref-type="bibr" rid="b7-sensors-10-04675">7</xref>], and this was adopted and presented in the next section.</p></sec>
<sec sec-type="methods">
<label>3.2.</label>
<title>Statistical Analysis</title>
<p>There are many statistical-based methods for processing e-nose data. This paper presents the implementation of the Hierarchical Cluster Analysis (HCA) and Principal Component Analysis (PCA) to distinguish the different agarwood oil grades.</p>
<sec sec-type="methods">
<label>3.2.1.</label>
<title>Hierarchical Cluster Analysis (HCA)</title>
<p>The aim of performing Hierarchical cluster analysis (HCA) is to separate data into specific groups by considering similarity criterion, a distance metric such as Euclidean distance, as follows:
<disp-formula id="FD2">
<label>(2)</label>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi mathvariant="italic">ij</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>K</mml:mi></mml:munderover>
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="italic">ik</mml:mi></mml:msub>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>r</mml:mi>
<mml:mi mathvariant="italic">jk</mml:mi></mml:msub></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>/</mml:mo>
<mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></disp-formula>where K is the number of variables (in this case K is equal to 32 that is the number of sensors in the Cyranose), while <italic>i</italic> and <italic>j</italic> are the indices for groups of samples. Hence, a parameter to measure the level of similarity, <italic>S<sub>ij</sub></italic>, is defined as [<xref ref-type="bibr" rid="b8-sensors-10-04675">8</xref>]:
<disp-formula id="FD3">
<label>(3)</label>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mi>S</mml:mi>
<mml:mi mathvariant="italic">ij</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>−</mml:mo>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi mathvariant="italic">ij</mml:mi></mml:msub>
<mml:mo>/</mml:mo>
<mml:mtext>max</mml:mtext>
<mml:mrow>
<mml:mo>{</mml:mo>
<mml:mrow>
<mml:msub>
<mml:mi>d</mml:mi>
<mml:mi mathvariant="italic">ij</mml:mi></mml:msub></mml:mrow>
<mml:mo>}</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula></p>
<p>The computational process of <italic>S<sub>ij</sub></italic> using MATLAB gives a dendrogram as shown in <xref ref-type="fig" rid="f5-sensors-10-04675">Figure 5</xref>. The figure proved the capability of HCA to differentiate between G12, G22, and G33.</p></sec>
<sec sec-type="methods">
<label>3.2.2.</label>
<title>Principal Component Analysis (PCA)</title>
<p>Principal component analysis (PCA) is an unsupervised statistical method that generates a new set of variables, called principal components. Each principal component is a linear combination of the original variables (<italic>r<sub>s,n</sub></italic>) defined by [<xref ref-type="bibr" rid="b9-sensors-10-04675">9</xref>]:
<disp-formula id="FD4">
<label>(4)</label>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mi mathvariant="italic">PC</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>n</mml:mi></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msub>
<mml:mi>α</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:msub>
<mml:mi>γ</mml:mi>
<mml:mrow>
<mml:mn>1</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>n</mml:mi></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>α</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mn>2</mml:mn></mml:mrow></mml:msub>
<mml:msub>
<mml:mi>γ</mml:mi>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>,</mml:mo>
<mml:mi>n</mml:mi></mml:mrow></mml:msub>
<mml:mo>+</mml:mo>
<mml:mo>⋯</mml:mo>
<mml:mo>+</mml:mo>
<mml:msub>
<mml:mi>α</mml:mi>
<mml:mrow>
<mml:mi>p</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>s</mml:mi></mml:mrow></mml:msub>
<mml:msub>
<mml:mi>γ</mml:mi>
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></disp-formula>where <italic>PC<sub>p,n</sub></italic> is the notation for the <italic>p</italic>-th order principal component for the overall n number of data and is termed as <italic>scores</italic>. Coefficients transformations (<italic>α<sub>p,s</sub></italic>), referred as <italic>loadings,</italic> are obtained by taking elements of the eigenvectors from the covariant of the original data. The eigenvalue represents the variance associated with each principal component. By using MATLAB software, the two principal components {<italic>PC</italic><sub>1,<italic>n</italic></sub>, <italic>PC</italic><sub>2,<italic>n</italic></sub>} are obtained and have the two greatest variances: 88.096% and 11.202% (or total cumulative variance of 99.298%). The results of the PCA analysis are shown in <xref ref-type="fig" rid="f6-sensors-10-04675">Figure 6</xref>. The scores of the three groups of oils are plotted for principal component 2 (PC2) <italic>versus</italic> principal component 1 (PC1). The discrimination between the different types of oils can be clearly seen from the figure.</p></sec></sec>
<sec>
<label>3.3.</label>
<title>Artificial Neural Network (ANN)</title>
<sec>
<label>3.3.1.</label>
<title>Result from 32 Sensors as Input</title>
<p>The previous two statistical approaches, HCA and PCA, successfully showed their capabilities to distinguish different types of agarwood oils. Both are typically used for exploratory data analysis to see how the multivariate data is clustered and to assess the linear separability of the odour classes. However, in cases where prediction is required (e.g., when implementing an automated classifier), the ANN is the more appropriate tool [<xref ref-type="bibr" rid="b7-sensors-10-04675">7</xref>]. This section presents the use of ANN as an alternative choice to solve the classification problem in this work.</p>
<p>In this experiment, the backpropagation ANN with the Levenberg-Marquardt training algorithm was applied. The training used all the 32 sensors as inputs, 20 neurons in the single hidden layer, and three neurons at the output layer. The activation functions used are sigmoid and identity functions at the hidden and output layer, respectively. <xref ref-type="fig" rid="f7-sensors-10-04675">Figure 7</xref> illustrates the structure of the ANN and how the input and output data were organised and indexed.</p>
<p>The same experimental procedure was carried out for the training as well as the testing data. The 200 raw data points were collected by experiments for each of the oil types G12, G22, and G32. This resulted in 600 data points for use in training and validation. After performing baseline manipulation and auto-scaling, the data were organised in one matrix to be fed as input. The testing data was collected on a different day, by sniffing the odour of the oils in nine vials that were assigned for testing only. The total of 1,800 data points was used as the testing data.</p>
<p>As shown in <xref ref-type="table" rid="t3-sensors-10-04675">Table 3</xref>, the ANN performed very well in discriminating the three types of oils with 5.713345 × 10<sup>−8</sup> mean square error (MSE) and 100% prediction performance. The prediction performance was defined as: (number of correct classification/number of total data) × 100%.</p></sec>
<sec sec-type="results">
<label>3.3.2.</label>
<title>Results from Selected Sensors</title>
<p>The use of too many sensors may increase noise, redundant information and provides no real benefit, whereas minimizing the number of sensors can result in the loss of some useful input information [<xref ref-type="bibr" rid="b10-sensors-10-04675">10</xref>,<xref ref-type="bibr" rid="b11-sensors-10-04675">11</xref>]. Thus, optimization for a specific application can be achieved by observing the sensors which provide high contribution to the system and eliminating the lower ones.</p>
<p>In this work, PCA is used to reduce high dimensionality data and to improve ANN training [<xref ref-type="bibr" rid="b12-sensors-10-04675">12</xref>]. <xref ref-type="table" rid="t4-sensors-10-04675">Table 4</xref> is the list of loadings for PC1 that was sorted in descending order. The summation of the correlation coefficient from the matrix response data for each sensor is also provided in <xref ref-type="table" rid="t4-sensors-10-04675">Table 4</xref> as a comparison with the PCA results. It is evident that the higher loading values of PC1 for all sensors correspond to the less correlated sensors.</p>
<p>From <xref ref-type="table" rid="t4-sensors-10-04675">Table 4</xref>, the data from the five least correlated sensors (sensor number 23, 31, 1, 2, and 4) are selected as input for the ANN training. The result shows an improvement where the ANN has a lower MSE, 8.20279 × 10<sup>−9</sup> and 100% successful prediction of unknown data. The time spent for training and identification also decrease. For specific application, in this case to discriminate the three different types of agarwood oils G12, G22, and G32, the five selected sensors (from the 32 total sensors in the Cyranose) is an effective choice in terms of speed of detection and high accuracy. Attempts to further reduce the number of sensors was not successful. <xref ref-type="table" rid="t5-sensors-10-04675">Table 5</xref> compares the results of the ANN training for the case of using reduced number of sensors.</p></sec></sec></sec>
<sec sec-type="conclusions">
<label>4.</label>
<title>Conclusions</title>
<p>Classification of agarwood oils using an e-nose is able to provide rapid and accurate results. The data from the Cyranose 320 were processed using in-house developed software in MATLAB and was able to identify three different types of agarwood oils G12, G22, and G32. Hierarchical cluster analysis (HCA) and principal component analysis (PCA) were successful in separating the samples into different groups or clusters. ANN was also successfully applied to predict unknown agarwood samples. The optimum number of sensors for this application has been determined by PCA analysis, which subsequently minimize the number of ANN input variables. The current research in our laboratories is to verify the purity and grading of the oil based on quantitative analysis using the e-nose.</p></sec></body>
<back>
<ack>
<p>The authors gratefully acknowledge the financial support from the Ministry of Science, Technology and Environment, Malaysia through Grant No. 9005-00007. Also, to Universiti Malaysia Perlis for the financial assistance given to Wahyu Hidayat. The authors wish to thank Nor Azah M.A from Forest Research Institute Malaysia, M.R Awang from Malaysian Institute for Nuclear Technology Research and M.R Kamarudin for their collaboration, supply of samples, assistance and useful discussions.</p></ack>
<ref-list>
<title>References</title>
<ref id="b1-sensors-10-04675"><label>1.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Persoon</surname><given-names>G.A.</given-names></name></person-group><article-title>Growing ‘the wood of the Gods’: Agarwood production in Southeast Asia</article-title><source>Smallholder Tree Growing for Rural 245 Development and Environmental Services</source><person-group person-group-type="editor"><name><surname>Snelder</surname><given-names>D.J.</given-names></name><name><surname>Lasco</surname><given-names>R.D.</given-names></name></person-group><publisher-name>Springer</publisher-name><publisher-loc>Dordrecht, The Netherlands</publisher-loc><year>2008</year><fpage>245</fpage><lpage>262</lpage></citation></ref>
<ref id="b2-sensors-10-04675"><label>2.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Barden</surname><given-names>A.</given-names></name><name><surname>Anak</surname><given-names>N.A.</given-names></name><name><surname>Mulliken</surname><given-names>T.</given-names></name><name><surname>Song</surname><given-names>M.</given-names></name></person-group><source>Hearth of the Matter: Agarwood Use and Trade and CITES Implementation for Aquilaria Malaccensis</source><comment>Traffic Network Report 1998–2000;</comment><publisher-name>TRAFFIC International</publisher-name><publisher-loc>Cambridge, UK</publisher-loc><year>2000</year><fpage>1</fpage><lpage>51</lpage></citation></ref>
<ref id="b3-sensors-10-04675"><label>3.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Keller</surname><given-names>P.E.</given-names></name></person-group><article-title>Mimicking biology: applications of cognitive systems to electronic noses</article-title><conf-name>Proceedings of IEEE International Symposium on Intelligent Control/Intelligent Systems and Semiotics</conf-name><conf-loc>Cambridge, MA, USA</conf-loc><conf-date>September 1999</conf-date></citation></ref>
<ref id="b4-sensors-10-04675"><label>4.</label><citation citation-type="book"><source>Cyranose 320 User Manual</source><publisher-name>Smith Detection</publisher-name><publisher-loc>Pasadena, CA, USA</publisher-loc><year>2004</year></citation></ref>
<ref id="b5-sensors-10-04675"><label>5.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Gardner</surname><given-names>J.W.</given-names></name><name><surname>Bartlett</surname><given-names>P.N.</given-names></name></person-group><source>Electronic Noses: Principles and Applications</source><publisher-name>Oxford University Press</publisher-name><publisher-loc>New York, NY, USA</publisher-loc><year>1999</year></citation></ref>
<ref id="b6-sensors-10-04675"><label>6.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Luo</surname><given-names>D.</given-names></name><name><surname>Hosseini</surname><given-names>H.G.</given-names></name><name><surname>Stewart</surname><given-names>J.R.</given-names></name></person-group><article-title>Application of ANN with extracted parameters from an electronic nose in cigarette brand identification</article-title><source>Sens. Actuat. B: Chem</source><year>2004</year><volume>99</volume><fpage>253</fpage><lpage>257</lpage><pub-id pub-id-type="doi">10.1016/j.snb.2003.11.022</pub-id></citation></ref>
<ref id="b7-sensors-10-04675"><label>7.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Scott</surname><given-names>S.M.</given-names></name><name><surname>James</surname><given-names>D.</given-names></name><name><surname>Ali</surname><given-names>Z.</given-names></name></person-group><article-title>Review: Data analysis for electronic nose systems</article-title><source>Microchim. Acta</source><year>2007</year><volume>156</volume><fpage>183</fpage><lpage>207</lpage></citation></ref>
<ref id="b8-sensors-10-04675"><label>8.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Hines</surname><given-names>E.L.</given-names></name><name><surname>Iobet</surname><given-names>E.L.</given-names></name><name><surname>Gardner</surname><given-names>J.W.</given-names></name></person-group><article-title>Electronic noses: a review of signal processing techniques</article-title><conf-name>Proceedings of IEEE Circuits Device System</conf-name><conf-loc>Salte Lake City, UT, USA</conf-loc><conf-date>December 1999</conf-date><volume>146</volume><issue>6</issue></citation></ref>
<ref id="b9-sensors-10-04675"><label>9.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Jolliffe</surname><given-names>I.T.</given-names></name></person-group><source>Principal Component Analysis</source><edition>2nd ed.</edition><publisher-name>Springer-Verlag</publisher-name><publisher-loc>New York, NY, USA</publisher-loc><year>2002</year></citation></ref>
<ref id="b10-sensors-10-04675"><label>10.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Penza</surname><given-names>M.</given-names></name><name><surname>Cassano</surname><given-names>G.</given-names></name></person-group><article-title>Application of principal component analysis and artificial neural networks to recognize the individual VOCs of methanol/2-propanol in a binary mixture by SAW multi-sensor array</article-title><source>Sens. Actuat. B: Chem</source><year>2003</year><volume>89</volume><fpage>269</fpage><lpage>284</lpage><pub-id pub-id-type="doi">10.1016/S0925-4005(03)00002-9</pub-id></citation></ref>
<ref id="b11-sensors-10-04675"><label>11.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gardner</surname><given-names>J.W.</given-names></name><name><surname>Boilot</surname><given-names>P.</given-names></name><name><surname>Hines</surname><given-names>E.L.</given-names></name></person-group><article-title>Enhancing electronic nose performance by sensor selection using a new integer-based genetic algorithm approach</article-title><source>Sens. Actuat. B: Chem</source><year>2005</year><volume>106</volume><fpage>114</fpage><lpage>121</lpage><pub-id pub-id-type="doi">10.1016/j.snb.2004.05.043</pub-id></citation></ref>
<ref id="b12-sensors-10-04675"><label>12.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Dutta</surname><given-names>R.</given-names></name><name><surname>Das</surname><given-names>A.</given-names></name><name><surname>Stocks</surname><given-names>N.G.</given-names></name><name><surname>Morgan</surname><given-names>D.</given-names></name></person-group><article-title>Stochastic resonance-based electronic nose: A novel way to classify bacteria</article-title><source>Sens. Actuat. B: Chem</source><year>2006</year><volume>115</volume><fpage>17</fpage><lpage>27</lpage><pub-id pub-id-type="doi">10.1016/j.snb.2005.08.033</pub-id></citation></ref></ref-list>
<sec sec-type="display-objects">
<title>Figures and Tables</title>
<fig id="f1-sensors-10-04675" position="float">
<label>Figure 1.</label>
<caption>
<p>The Cyranose 320 [<xref ref-type="bibr" rid="b4-sensors-10-04675">4</xref>].</p></caption>
<graphic xlink:href="sensors-10-04675f1.gif"/></fig>
<fig id="f2-sensors-10-04675" position="float">
<label>Figure 2.</label>
<caption>
<p>Experimental setup for the classification of agarwood oil.</p></caption>
<graphic xlink:href="sensors-10-04675f2.gif"/></fig>
<fig id="f3-sensors-10-04675" position="float">
<label>Figure 3.</label>
<caption>
<p>Measurements taken from seven of the sensors for one sampling cycle.</p></caption>
<graphic xlink:href="sensors-10-04675f3.gif"/></fig>
<fig id="f4-sensors-10-04675" position="float">
<label>Figure 4.</label>
<caption>
<p>Smellprints of three different agarwood oils.</p></caption>
<graphic xlink:href="sensors-10-04675f4.gif"/></fig>
<fig id="f5-sensors-10-04675" position="float">
<label>Figure 5.</label>
<caption>
<p>A dendrogram for the three-object data set from each 10 samples of G12, G22, and G32.</p></caption>
<graphic xlink:href="sensors-10-04675f5.gif"/></fig>
<fig id="f6-sensors-10-04675" position="float">
<label>Figure 6.</label>
<caption>
<p>Principal components score plot proves the capability of e-nose to classify the different types of oils G12, G22, and G32.</p></caption>
<graphic xlink:href="sensors-10-04675f6.gif"/></fig>
<fig id="f7-sensors-10-04675" position="float">
<label>Figure 7.</label>
<caption>
<p>The architecture of three layers ANN with Levenberg-Marquardt algorithm applied for training and identification G12, G22, and G32.</p></caption>
<graphic xlink:href="sensors-10-04675f7.gif"/></fig>
<table-wrap id="t1-sensors-10-04675" position="float">
<label>Table 1.</label>
<caption>
<p>Important features of the Cyranose 320 [<xref ref-type="bibr" rid="b4-sensors-10-04675">4</xref>].</p></caption>
<table frame="hsides" rules="none">
<tbody>
<tr>
<td align="left" valign="top">Sensors</td>
<td align="left" valign="top">32 polymer carbon black composites</td></tr>
<tr>
<td align="left" valign="top">Operating Temperature</td>
<td align="left" valign="top">0 to 40 °C (32 to 104 °F)</td></tr>
<tr>
<td align="left" valign="top">Response Time</td>
<td align="left" valign="top">10 sec</td></tr>
<tr>
<td align="left" valign="top">Sampling Pump</td>
<td align="left" valign="top">Low: 50 mL/min, Medium: 120 mL/min,</td></tr>
<tr>
<td align="left" valign="top"/>
<td align="left" valign="top">High: 180 mL/min.</td></tr>
<tr>
<td align="left" valign="top">Communication</td>
<td align="left" valign="top">RS–232 @ 9,600 to 57,600 bps</td></tr>
<tr>
<td align="left" valign="top">Algorithms</td>
<td align="left" valign="top">PCA, KNN, K-means, CDA</td></tr></tbody></table></table-wrap>
<table-wrap id="t2-sensors-10-04675" position="float">
<label>Table 2.</label>
<caption>
<p>Cyranose 320 parameter set up for sampling agarwood oil.</p></caption>
<table frame="hsides" rules="cols">
<thead>
<tr>
<th align="left" valign="middle"/>
<th align="left" valign="middle"><bold>Run time</bold></th>
<th align="left" valign="middle"><bold>Pump speed</bold></th></tr>
<tr>
<th align="left" valign="middle" colspan="3">
<hr/></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="top">Baseline purge time</td>
<td align="left" valign="top">10 sec</td>
<td align="left" valign="top">120 mL/min</td></tr>
<tr>
<td align="left" valign="middle" colspan="3">
<hr/></td></tr>
<tr>
<td align="left" valign="top">Sampling time</td>
<td align="left" valign="top"/>
<td align="left" valign="top"/></tr>
<tr>
<td align="left" valign="top">  Draw 1</td>
<td align="left" valign="top">20 sec</td>
<td align="left" valign="top">180 mL/min</td></tr>
<tr>
<td align="left" valign="middle" colspan="3">
<hr/></td></tr>
<tr>
<td align="left" valign="top">Purge time</td>
<td align="left" valign="top"/>
<td align="left" valign="top"/></tr>
<tr>
<td align="left" valign="top">  1st air intake purge</td>
<td align="left" valign="top">5 sec</td>
<td align="left" valign="top">180 mL/min</td></tr>
<tr>
<td align="left" valign="top">  2nd sample gas purge</td>
<td align="left" valign="top">30 sec</td>
<td align="left" valign="top">180 mL/min</td></tr>
<tr>
<td align="left" valign="middle" colspan="3">
<hr/></td></tr>
<tr>
<td align="left" valign="top">Digital filtering</td>
<td align="left" valign="top" colspan="2">On</td></tr>
<tr>
<td align="left" valign="middle" colspan="3">
<hr/></td></tr>
<tr>
<td align="left" valign="top">Substrate heater temperature</td>
<td align="left" valign="top" colspan="2">42 °C</td></tr>
<tr>
<td align="left" valign="middle" colspan="3">
<hr/></td></tr>
<tr>
<td align="left" valign="top">Training repeat count</td>
<td align="left" valign="top" colspan="2">10</td></tr></tbody></table></table-wrap>
<table-wrap id="t3-sensors-10-04675" position="float">
<label>Table 3.</label>
<caption>
<p>ANN output for 32 sensors.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" valign="middle" rowspan="2"><bold>No.</bold></th>
<th align="center" valign="middle" rowspan="2"><bold>Sensor selection</bold></th>
<th align="center" valign="middle" rowspan="2"><bold>MSE</bold></th>
<th align="center" valign="middle" rowspan="2"><bold>Gradient</bold></th>
<th align="center" valign="middle" rowspan="2"><bold>Sample</bold></th>
<th colspan="3" align="center" valign="middle"><bold>Target</bold>
<hr/></th>
<th colspan="3" align="center" valign="middle"><bold>ANN Output (Averaged)</bold>
<hr/></th>
<th align="center" valign="middle" rowspan="2"><bold>Accuracy</bold></th></tr>
<tr>
<th align="center" valign="middle"><bold>T1</bold></th>
<th align="center" valign="middle"><bold>T2</bold></th>
<th align="center" valign="middle"><bold>T3</bold></th>
<th align="center" valign="middle"><bold>O1</bold></th>
<th align="center" valign="middle"><bold>O2</bold></th>
<th align="center" valign="middle"><bold>O3</bold></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top">1</td>
<td align="center" valign="top">All</td>
<td align="center" valign="top">5.7133 × 10<sup>−8</sup></td>
<td align="center" valign="top">0.3536</td>
<td align="center" valign="top">G12</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0.9999</td>
<td align="center" valign="top">0.0001</td>
<td align="center" valign="top">0.0000</td>
<td align="center" valign="top">100%</td></tr>
<tr>
<td align="center" valign="top"/>
<td align="center" valign="top"/>
<td align="center" valign="top"/>
<td align="center" valign="top"/>
<td align="center" valign="top">G22</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0.0003</td>
<td align="center" valign="top">0.9997</td>
<td align="center" valign="top">0.0000</td>
<td align="center" valign="top">100%</td></tr>
<tr>
<td align="center" valign="top"/>
<td align="center" valign="top"/>
<td align="center" valign="top"/>
<td align="center" valign="top"/>
<td align="center" valign="top">G32</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">0.0005</td>
<td align="center" valign="top">0.0002</td>
<td align="center" valign="top">0.9997</td>
<td align="center" valign="top">100%</td></tr></tbody></table></table-wrap>
<table-wrap id="t4-sensors-10-04675" position="float">
<label>Table 4.</label>
<caption>
<p>The value of total correlation coefficient and loadings of PC1 for seven sensors.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="top"><bold>No</bold></th>
<th align="left" valign="top"><bold>Sensor number</bold></th>
<th align="left" valign="top"><bold>The summation of correlation coefficient</bold></th>
<th align="left" valign="top"><bold>Sensor number</bold></th>
<th align="left" valign="top"><bold>Loadings for PC1</bold></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="top">1</td>
<td align="left" valign="top">23</td>
<td align="left" valign="top">5.4960</td>
<td align="left" valign="top">23</td>
<td align="left" valign="top">−0.03041</td></tr>
<tr>
<td align="left" valign="top">2</td>
<td align="left" valign="top">31</td>
<td align="left" valign="top">16.016</td>
<td align="left" valign="top">31</td>
<td align="left" valign="top">−0.09815</td></tr>
<tr>
<td align="left" valign="top">3</td>
<td align="left" valign="top">1</td>
<td align="left" valign="top">19.334</td>
<td align="left" valign="top">1</td>
<td align="left" valign="top">−0.12595</td></tr>
<tr>
<td align="left" valign="top">4</td>
<td align="left" valign="top">2</td>
<td align="left" valign="top">24.291</td>
<td align="left" valign="top">2</td>
<td align="left" valign="top">−0.15748</td></tr>
<tr>
<td align="left" valign="top">5</td>
<td align="left" valign="top">4</td>
<td align="left" valign="top">25.343</td>
<td align="left" valign="top">4</td>
<td align="left" valign="top">−0.16391</td></tr>
<tr>
<td align="left" valign="top">6</td>
<td align="left" valign="top">9</td>
<td align="left" valign="top">25.714</td>
<td align="left" valign="top">9</td>
<td align="left" valign="top">−0.16607</td></tr>
<tr>
<td align="left" valign="top">7</td>
<td align="left" valign="top">5</td>
<td align="left" valign="top">26.599</td>
<td align="left" valign="top">5</td>
<td align="left" valign="top">−0.17615</td></tr></tbody></table></table-wrap>
<table-wrap id="t5-sensors-10-04675" position="float">
<label>Table 5.</label>
<caption>
<p>The comparison performance of ANN using selected sensors.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" valign="middle" rowspan="3"><bold>No.</bold></th>
<th align="center" valign="middle" rowspan="3"><bold>Sensor selection</bold></th>
<th align="center" valign="middle" rowspan="3"><bold>MSE</bold></th>
<th align="center" valign="middle" rowspan="3"><bold>Gradient</bold></th>
<th align="center" valign="middle" rowspan="3"><bold>Sample</bold></th>
<th colspan="3" align="center" valign="middle"><bold>Target</bold></th>
<th colspan="3" align="center" valign="middle"><bold>ANN Output (Averaged)</bold></th>
<th colspan="2" align="center" valign="middle" rowspan="3"><bold>Accuracy</bold></th></tr>
<tr>
<th colspan="6" align="center" valign="middle">
<hr/></th></tr>
<tr>
<th align="center" valign="top">T1</th>
<th align="center" valign="top">T2</th>
<th align="center" valign="top">T3</th>
<th align="center" valign="top">O1</th>
<th align="center" valign="top">O2</th>
<th align="center" valign="top">O3</th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top" rowspan="3">1</td>
<td align="center" valign="top" rowspan="3">S23, S31, S1, S2, S4</td>
<td align="center" valign="top" rowspan="3">8.2038 × 10<sup>−9</sup></td>
<td align="center" valign="top" rowspan="3">0.1074</td>
<td align="center" valign="top">G12</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0.9983</td>
<td align="center" valign="top">0.0045</td>
<td align="center" valign="top">0.0070</td>
<td colspan="2" align="center" valign="top">100%</td></tr>
<tr>
<td align="center" valign="top">G22</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0.0001</td>
<td align="center" valign="top">0.9999</td>
<td align="center" valign="top">0.0070</td>
<td colspan="2" align="center" valign="top">100%</td></tr>
<tr>
<td align="center" valign="top">G32</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">0.0001</td>
<td align="center" valign="top">0.0000</td>
<td align="center" valign="top">0.9999</td>
<td colspan="2" align="center" valign="top">100%</td></tr>
<tr>
<td colspan="13" align="left" valign="top">
<hr/></td></tr>
<tr>
<td align="center" valign="top" rowspan="3">2</td>
<td align="center" valign="top" rowspan="3">S23 and S31</td>
<td align="center" valign="top" rowspan="3">8.9927 × 10<sup>−8</sup></td>
<td align="center" valign="top" rowspan="3">0.00246</td>
<td align="center" valign="top">G12</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0.9803</td>
<td align="center" valign="top">0.0125</td>
<td colspan="2" align="center" valign="top">0.0070</td>
<td align="center" valign="top">100%</td></tr>
<tr>
<td align="center" valign="top">G22</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0.0010</td>
<td align="center" valign="top">0.9999</td>
<td colspan="2" align="center" valign="top">0.0009</td>
<td align="center" valign="top">100%</td></tr>
<tr>
<td align="center" valign="top">G32</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">0</td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">0.6203</td>
<td align="center" valign="top">0.0000</td>
<td colspan="2" align="center" valign="top">0.3797</td>
<td align="center" valign="top">37.18%</td></tr></tbody></table></table-wrap></sec></back></article>
