<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1 20151215//EN" "http://jats.nlm.nih.gov/publishing/1.1/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" article-type="research-article" dtd-version="1.1">
<front>
<journal-meta>
<journal-id journal-id-type="pmc">CSSE</journal-id>
<journal-id journal-id-type="nlm-ta">CSSE</journal-id>
<journal-id journal-id-type="publisher-id">CSSE</journal-id>
<journal-title-group>
<journal-title>Computer Systems Science &#x0026; Engineering</journal-title>
</journal-title-group>
<issn pub-type="ppub">0267-6192</issn>
<publisher>
<publisher-name>Tech Science Press</publisher-name>
<publisher-loc>USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">33342</article-id>
<article-id pub-id-type="doi">10.32604/csse.2023.033342</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Article</subject>
</subj-group>
</article-categories>
<title-group>
<article-title>Android IoT Lifelog System and Its Application to Motion Inference</article-title><alt-title alt-title-type="left-running-head">Android IoT Lifelog System and Its Application to Motion Inference</alt-title><alt-title alt-title-type="right-running-head">Android IoT Lifelog System and Its Application to Motion Inference</alt-title>
</title-group>
<contrib-group content-type="authors">
<contrib id="author-1" contrib-type="author">
<name name-style="western"><surname>Munkhtsetseg</surname></name>
<xref ref-type="aff" rid="aff-1">1</xref>
</contrib>
<contrib id="author-2" contrib-type="author" corresp="yes">
<name name-style="western"><surname>Seo</surname><given-names>Jeongwook</given-names></name>
<xref ref-type="aff" rid="aff-2">2</xref><email>jwseo@hs.ac.kr</email>
</contrib>
<aff id="aff-1"><label>1</label><institution>Next Social Platform LLC.</institution>, <addr-line>Ulaanbaatar, 15150</addr-line>, <country>Mongolia</country></aff>
<aff id="aff-2"><label>2</label><institution>Department of IT Transmedia Contents, Hanshin University</institution>, <addr-line>Osan-si, 18101</addr-line>, <country>Korea</country></aff>
</contrib-group><author-notes><corresp id="cor1"><label>&#x002A;</label>Corresponding Author: Jeongwook Seo. Email: <email>jwseo@hs.ac.kr</email></corresp></author-notes>
<pub-date publication-format="print" date-type="pub" iso-8601-date="2022-12-15"><day>15</day><month>12</month>
<year>2022</year></pub-date>
<volume>45</volume>
<issue>3</issue>
<fpage>2989</fpage>
<lpage>3003</lpage>
<history>
<date date-type="received"><day>14</day><month>6</month><year>2022</year></date>
<date date-type="accepted"><day>24</day><month>8</month><year>2022</year></date>
</history>
<permissions>
<copyright-statement>&#x00A9; 2023 Munkhtsetseg and Seo</copyright-statement>
<copyright-year>2023</copyright-year>
<copyright-holder>Munkhtsetseg and Seo</copyright-holder>
<license xlink:href="https://creativecommons.org/licenses/by/4.0/">
<license-p>This work is licensed under a <ext-link ext-link-type="uri" xlink:type="simple" xlink:href="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="TSP_CSSE_33342.pdf"></self-uri>
<abstract>
<p>In social science, health care, digital therapeutics, etc., smartphone data have played important roles to infer users&#x2019; daily lives. However, smartphone data collection systems could not be used effectively and widely because they did not exploit any Internet of Things (IoT) standards (e.g., oneM2M) and class labeling methods for machine learning (ML) services. Therefore, in this paper, we propose a novel Android IoT lifelog system complying with oneM2M standards to collect various lifelog data in smartphones and provide two manual and automated class labeling methods for inference of users&#x2019; daily lives. The proposed system consists of an Android IoT client application, an oneM2M-compliant IoT server, and an ML server whose high-level functional architecture was carefully designed to be open, accessible, and internationally recognized in accordance with the oneM2M standards. In particular, we explain implementation details of activity diagrams for the Android IoT client application, the primary component of the proposed system. Experimental results verified that this application could work with the oneM2M-compliant IoT server normally and provide corresponding class labels properly. As an application of the proposed system, we also propose motion inference based on three multi-class ML classifiers (i.e., k nearest neighbors, Naive Bayes, and support vector machine) which were created by using only motion and location data (i.e., acceleration force, gyroscope rate of rotation, and speed) and motion class labels (i.e., driving, cycling, running, walking, and stilling). When compared with confusion matrices of the ML classifiers, the k nearest neighbors classifier outperformed the other two overall. Furthermore, we evaluated its output quality by analyzing the receiver operating characteristic (ROC) curves with area under the curve (AUC) values. The AUC values of the ROC curves for all motion classes were more than 0.9, and the macro-average and micro-average ROC curves achieved very high AUC values of 0.96 and 0.99, respectively.</p>
</abstract>
<kwd-group kwd-group-type="author">
<kwd>Android</kwd>
<kwd>Internet of Things</kwd>
<kwd>lifelog</kwd>
<kwd>motion inference</kwd>
<kwd>oneM2M</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="s1">
<label>1</label>
<title>Introduction</title>
<p>Smartphones with various sensors have enabled researchers to develop and commercialize many useful systems and applications in different domains such as social science, health care, digital therapeutics, etc. [<xref ref-type="bibr" rid="ref-1">1</xref>&#x2013;<xref ref-type="bibr" rid="ref-9">9</xref>]. A heart rate monitoring device working on a smartphone application was presented for the elderly and for patients with heart disease in [<xref ref-type="bibr" rid="ref-1">1</xref>], the structure of social networks constructed with smartphone datasets was analyzed [<xref ref-type="bibr" rid="ref-2">2</xref>], and personal lifelog data generated from smartphones were used for modeling and discovering human behavior for identification purpose [<xref ref-type="bibr" rid="ref-3">3</xref>]. A smartphone based framework called Smart Diary was developed to infer, predict, and summarize people&#x2019;s behavior patterns and life styles, and it could interwork with a wearable galvanic skin response signal monitor [<xref ref-type="bibr" rid="ref-4">4</xref>]. To create practical guidelines on the use of smartphones as a behavioral observation tool in psychological science, highlighted areas of opportunity for psychological research and practical considerations, including ongoing methodological and ethical challenges, for designing smartphone studies were discussed in [<xref ref-type="bibr" rid="ref-5">5</xref>]. Two different smartphone-based monitoring systems (i.e., the Pulso and the Trilogis-Monsenso) were compared to examine their feasibility and usability in patients with bipolar disorder in [<xref ref-type="bibr" rid="ref-6">6</xref>]. As a pilot study, the authors in [<xref ref-type="bibr" rid="ref-7">7</xref>] developed a digital therapeutic software system for hypertension based on a smartphone and a home blood pressure monitoring device. Nowadays, Ribiro et al. in [<xref ref-type="bibr" rid="ref-8">8</xref>] narratively reviewed the existing literature over the past decade which were related to lifelogging, a process analyzing and understanding personal experiences and behaviors by using images, audio, location, physical activity, and physiological signals from smartphones and wearable devices. By narratively reviewing smartphone-sensing literature from the past 5 years in [<xref ref-type="bibr" rid="ref-9">9</xref>], Kulkarni et al. highlighted the predominance of mental health studies and discussed the opportunities of using standardized sensing approaches and machine-learning (ML) advancements. However, the previous studies mentioned above did not exploit any standardized approaches which can conserve resources for developing and deploying smartphone-based applications and also accelerate research on them.</p>
<p>The Internet of Things (IoT) has been a promising technology in many vertical industries such as healthcare, agriculture, smart home, smart factory, smart city, etc. because that enables advanced services by interconnecting physical and virtual things (e.g., sensors, actuators, etc.) and collecting various data from them [<xref ref-type="bibr" rid="ref-10">10</xref>&#x2013;<xref ref-type="bibr" rid="ref-14">14</xref>]. Yun et al. in [<xref ref-type="bibr" rid="ref-10">10</xref>] presented an oneM2M standards-compliant device software platform for consumer electronics to lead to interoperability across different IoT consumer electronics where oneM2M is a global partnership initiative between the world&#x2019;s standards development organizations (SDOs) to develop standards (i.e., technical specifications) that ensure the most efficient deployment of the IoT and machine-to-machine (M2M) communications. Kim et al. in [<xref ref-type="bibr" rid="ref-11">11</xref>] introduced and tested standardized interworking interfaces and procedures based on oneM2M standards to verify use cases involving multiple IoT platforms. The authors in [<xref ref-type="bibr" rid="ref-12">12</xref>] designed and implemented a smart home scenario by using oneM2M-based IoT platform where the IoT end-user Android application was developed only for monitoring the data from remote sensors and actuators. In [<xref ref-type="bibr" rid="ref-13">13</xref>], the authors emphasized the importance of IoT-based health big-data process technologies to reduce medical data management costs and enhance safety, and the authors in [<xref ref-type="bibr" rid="ref-14">14</xref>] addressed massive and cellular IoT in 5G as new studies for enhancement of the 5G core network. Unfortunately, to the best of our knowledge, we could not find any study published in the literature that proposed smartphone data collection systems based on the global IoT standards, namely oneM2M to collect and utilize users&#x2019; lifelog data effectively and widely.</p>
<p>Therefore, this paper proposes an Android IoT lifelog system whose high-level functional architecture was designed according to the oneM2M standards to collect lifelog data in smartphones such as motion, location, phone call, short message service (SMS) message, application usage statistics, etc. and provide two manual and automated class labeling methods necessary for machine learning services (e.g., motion inference). In addition, for motion inference as one of the applications of the proposed system, we present three multi-class ML classifiers (i.e., k nearest neighbors, Naive Bayes, and support vector machine) created by using only motion and location data and motion class labels. The rest of the paper is organized as follows. In Section 2, the proposed Android IoT lifelog system with an Android IoT client application, an oneM2M-compliant IoT server, and an ML service is explained in details. In Section 3, we describe implementation and experimental results of the proposed system and then compare performances of three multi-class ML classifiers for motion inference in terms of confusion matrices or receiver operating characteristic (ROC) curves with area under the curve (AUC) values. In Section 4, the concluding remarks are given.</p>
</sec>
<sec id="s2">
<label>2</label>
<title>Android IoT Lifelog System</title>
<p>The proposed Android IoT lifelog system is illustrated in <xref ref-type="fig" rid="fig-1">Fig. 1</xref>. It has three main components: An Android IoT client application, an oneM2M-compliant IoT server, and an ML service. First, the Android IoT client application collects all data related to a personal record of one&#x2019;s daily life, referred to as a lifelog, from a smartphone. In detail, the sensor manager offers accelerometer and gyroscope data, and the location manager does longitude, latitude, and speed data. Also, the content provider provides application usage statistics and calendar events, and the broadcast receiver does phone calls and short message service (SMS) events. The open weather application programming interface (API) provides weather and air pollution information. Then, all data are stored in the SQLite database until the synchronization service transmits them to the thing adaptation software (TAS) through socket communication running in the background. The TAS adapts received data to an open IoT client platform called &#x0026;Cube [<xref ref-type="bibr" rid="ref-12">12</xref>]. The &#x0026;Cube modeled as an application dedicated node-application entity (ADN-AE) sends requests to an open IoT server platform called Mobius [<xref ref-type="bibr" rid="ref-12">12</xref>] modeled as an infrastructure node-common service entity (IN-CSE) through a reference point M2M communication with application entity (Mca) to ask for creating its registration, access control policy, initial resources such as container, content instance, subscription etc. The Mobius processes the requests and generates the corresponding responses. In addition, it stores all data from the &#x0026;Cube in the MySQL database.</p>
<fig id="fig-1">
<label>Figure 1</label>
<caption>
<title>Block diagram of the proposed Android IoT lifelog system with an Android IoT client application, an oneM2M-compliant IoT server, and a machine learning service</title></caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CSSE_33342-fig-1.png"/>
</fig>
<p>In <xref ref-type="table" rid="table-1">Tab. 1</xref>, we describe the data in detail. We define eight types of Android IoT lifelog data: motion, location, phone call, short message service (SMS) message, application usage statistics, calendar event, weather information, and air pollution information. We can use motion data to infer mobility-related user activities such as driving, cycling, running, walking, and stilling. Location data provides hints on visited places and location context and it also can be used to infer mobility-related user activities. Based on phone calls and SMS data, we track user&#x2019;s human relationships and social activities. By analyzing application usage statistics, we guess user&#x2019;s interests and preferences. The events in a calendar tell us important schedules such as appointments, birthdays, and business meetings. They allow us to estimate how busy or free a user will be and predict whom the user will meet and when and where the user will go. Weather and air pollution information reveals the user&#x2019;s environmental conditions. We might find its effects on the patterns of user&#x2019;s movements and daily activities if we analyze it with other data.</p>
<table-wrap id="table-1"><label>Table 1</label>
<caption>
<title>Description of Android IoT lifelog data in the MySQL database</title></caption>
<table><colgroup><col align="left"/><col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left">Data type</th>
<th align="left">Details</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Motion</td>
<td align="left">Accelerometer (x, y, z), gyroscope (x, y, z), datetime</td>
</tr>
<tr>
<td align="left">Location</td>
<td align="left">Latitude, longitude, speed, datetime</td>
</tr>
<tr>
<td align="left">Phone call</td>
<td align="left">Phone number, call start datetime, call end datetime, call time (duration), call type (incoming, outgoing, missed)</td>
</tr>
<tr>
<td align="left">SMS message</td>
<td align="left">Address (phone number), message type (receive, send), datetime</td>
</tr>
<tr>
<td align="left">App usage<break/>statistics</td>
<td align="left">App name, duration, end datetime, start datetime, last datetime</td>
</tr>
<tr>
<td align="left">Calendar event</td>
<td align="left">Title, begin datetime, end datetime</td>
</tr>
<tr>
<td align="left">Weather information</td>
<td align="left">Weather, humidity, wind speed, temperature, max temperature, min temperature, datetime</td>
</tr>
<tr>
<td align="left">Air pollution information</td>
<td align="left">Air quality index, CO (Carbon monoxide), NO (Nitrogen monoxide), NO2 (Nitrogen dioxide), O3 (Ozone), SO2 (Sulphur dioxide), PM2.5 (Fine particles matter), PM10 (Coarse particulate matter), NH3 (Ammonia), datetime</td>
</tr>
</tbody>
</table>
</table-wrap>
<sec id="s2_1">
<label>2.1</label>
<title>Android IoT Client Application</title>
<p>This section explains activity diagrams of the proposed Android IoT client application to explain its workflow graphically. In <xref ref-type="fig" rid="fig-2">Fig. 2</xref>, the activity diagram shows the workflow from login to main activity. If a user runs the application, it first checks permissions such as Internet, access coarse location, access fine location, access background location, read phone state, read SMS, read contacts, read calendar, process outgoing calls, etc. In the login process, a user has to insert a unique identifier (ID) such as his/her phone number which is also used as the ADN-AE name in the registration process of the oneM2M-compliant IoT server. After checking or verifying user registration, Internet connection, and ID, the Android IoT client application starts the main activity.</p>
<fig id="fig-2">
<label>Figure 2</label>
<caption>
<title>Activity diagram from login to main activity</title></caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CSSE_33342-fig-2.png"/>
</fig>
<p>In <xref ref-type="fig" rid="fig-3">Fig. 3</xref>, the user interface (UI) of the main activity component has six fragments. During its lifecycle, each fragment defines and manages its own layout, and it can handle its own input events and data described in <xref ref-type="table" rid="table-1">Tab. 1</xref>. In the Looper, the data stored in the SQLite database are added to the ListView and displayed on the smartphone screen through the Adapter.</p>
<fig id="fig-3">
<label>Figure 3</label>
<caption>
<title>Six fragments of the main activity component to display the data stored in the SQLite database on the smartphone screen</title></caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CSSE_33342-fig-3.png"/>
</fig>
<p><xref ref-type="fig" rid="fig-4">Fig. 4</xref> shows the broadcast receiver component that receives phone call or SMS and stores their data in the SQLite database through the Intent. The service component running in the background is also shown in <xref ref-type="fig" rid="fig-4">Fig. 4</xref> where location, sensor, and calendar services are used for repetitively checking for their new data and storing them in the SQLite database.</p>
<fig id="fig-4">
<label>Figure 4</label>
<caption>
<title>Two broadcast receiver components for phone call and SMS and three background services for location, sensor, and calendar to store each data in the SQLite database</title></caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CSSE_33342-fig-4.png"/>
</fig>
<p><xref ref-type="fig" rid="fig-5">Fig. 5</xref> presents the synchronized service component as a client socket to send the data stored in the SQLite database and the app usage statistics to the Things Adoption Software (TAS) server as a server socket once a day. The stored data and app usage statistics are saved to a temp list which will be changed to the JavaScript Object Notation (JSON) array object when the socket connection is successful. The JSON array object is sent to the TAS server, and then all data are removed from the SQLite database.</p>
<fig id="fig-5">
<label>Figure 5</label>
<caption>
<title>Synchronize service to transmit all data to the TAS server</title></caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CSSE_33342-fig-5.png"/>
</fig>
</sec>
<sec id="s2_2">
<label>2.2</label>
<title>Machine Learning for Motion Inference</title>
<p>Machine learning, referred to as ML, is a branch of artificial intelligence that enables machines to automatically learn and improve from experience without being explicitly programmed, and machine learning algorithms for classification problems have been applied to nearly every industry from healthcare to web services [<xref ref-type="bibr" rid="ref-15">15</xref>&#x2013;<xref ref-type="bibr" rid="ref-18">18</xref>].</p>
<p>In this section, we present three multi-class ML algorithms used for motion inference. We assign five mobility-related user activities: driving, cycling, running, walking, and stilling as motion class labels, and we only consider motion data (acceleration force along x, y, z axis, gyroscope rate of rotation around x, y, z axis) and location data (speed kilometers/hour) stored in the MySQL database in the Mobius server.</p>
<p>A training dataset <inline-formula id="ieqn-1">
<mml:math id="mml-ieqn-1"><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>N</mml:mi></mml:msub></mml:mrow></mml:math>
</inline-formula>&#x00A0;can be represented by<disp-formula id="eqn-1"><label>(1)</label>
<mml:math id="mml-eqn-1" display="block"><mml:msub><mml:mi>D</mml:mi><mml:mi>N</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msubsup><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:msub><mml:mi>y</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>N</mml:mi></mml:msubsup></mml:math>
</disp-formula></p>
<p>where <inline-formula id="ieqn-2">
<mml:math id="mml-ieqn-2"><mml:msub><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mi>x</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:mspace width="thickmathspace" /><mml:msub><mml:mi>x</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:mspace width="thickmathspace" /><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>M</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mi>T</mml:mi></mml:msup></mml:math>
</inline-formula> denotes a training feature vector of length <italic>M</italic>, and <inline-formula id="ieqn-3">
<mml:math id="mml-ieqn-3"><mml:msub><mml:mi>y</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>&#x2208;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:mi>C</mml:mi></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:math>
</inline-formula> denotes a corresponding one among <italic>C</italic> class labels. We apply three ML classifiers created by the training dataset for motion inference.</p>
<p>First, the k nearest neighbors (kNN) classifier is a kind of instance-based classifier that is a simple non-parametric algorithm abstracting no information from the training dataset during the training stage [<xref ref-type="bibr" rid="ref-19">19</xref>,<xref ref-type="bibr" rid="ref-20">20</xref>]. For a new instance or feature vector <inline-formula id="ieqn-4">
<mml:math id="mml-ieqn-4"><mml:msub><mml:mrow><mml:mi mathvariant="bold">x</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:math>
</inline-formula>, it is labeled as the same class as that of the majority of its k nearest neighbors, which is shown in <xref ref-type="disp-formula" rid="eqn-2">Eq. (2)</xref>. The nearest neighbors are measured by the Euclidean distance function in <xref ref-type="disp-formula" rid="eqn-3">Eq. (3)</xref>.<disp-formula id="eqn-2"><label>(2)</label>
<mml:math id="mml-eqn-2" display="block"><mml:msub><mml:mrow><mml:mover><mml:mi>y</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:munder><mml:mrow><mml:mi>arg</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mi>C</mml:mi></mml:mrow></mml:munder><mml:mo>&#x2061;</mml:mo><mml:munderover><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>k</mml:mi></mml:munderover><mml:mrow><mml:mi>I</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:msub><mml:mi>y</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula>where <inline-formula id="ieqn-5">
<mml:math id="mml-ieqn-5"><mml:mi>I</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:mi>b</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</inline-formula> denotes an indicator function that <inline-formula id="ieqn-6">
<mml:math id="mml-ieqn-6"><mml:mi>I</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:mi>b</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math>
</inline-formula> if <inline-formula id="ieqn-7">
<mml:math id="mml-ieqn-7"><mml:mi>a</mml:mi><mml:mo>=</mml:mo><mml:mi>b</mml:mi></mml:math>
</inline-formula> and <inline-formula id="ieqn-8">
<mml:math id="mml-ieqn-8"><mml:mi>I</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>a</mml:mi><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:mi>b</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math>
</inline-formula> otherwise.<disp-formula id="eqn-3"><label>(3)</label>
<mml:math id="mml-eqn-3" display="block"><mml:mi>d</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">X</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:msub><mml:mrow><mml:mi mathvariant="bold">X</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mrow><mml:mo symmetric="true">&#x2016;</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">X</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">X</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo symmetric="true">&#x2016;</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:msqrt><mml:munderover><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>M</mml:mi></mml:munderover><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mi>x</mml:mi></mml:mrow><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:math>
</disp-formula></p>
<p>The kNN is suitable for small datasets, and it does not learn anything from the training data. If the dataset is large with high dimensions, the searching of k neighbors can be slow and inefficient. Also, it can be easily affected by noisy data and outliers [<xref ref-type="bibr" rid="ref-19">19</xref>].</p>
<p>Second, the Naive Bayes classifier is a simple probabilistic classifier that depends on Bayesian theorem. Here, we define <inline-formula id="ieqn-9">
<mml:math id="mml-ieqn-9"><mml:mi>P</mml:mi><mml:mo stretchy="false">(</mml:mo><mml:mi>c</mml:mi><mml:mo stretchy="false">)</mml:mo></mml:math>
</inline-formula> as the probability of the occurrence of the class <italic>c</italic>. The conditional probability of a new instance, called a likelihood function, is given by</p>
<p><disp-formula id="eqn-4"><label>(4)</label>
<mml:math id="mml-eqn-4" display="block"><mml:mi>P</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">X</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">|</mml:mo><mml:mi>c</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">&#x220F;</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>M</mml:mi></mml:munderover><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">|</mml:mo><mml:mi>c</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula></p>
<p>Then, the Naive Bayes classifier can be represented by</p>
<p><disp-formula id="eqn-5"><label>(5)</label>
<mml:math id="mml-eqn-5" display="block"><mml:msub><mml:mrow><mml:mover><mml:mi>y</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:munder><mml:mrow><mml:mi>arg</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mi>C</mml:mi></mml:mrow></mml:munder><mml:mo>&#x2061;</mml:mo><mml:mi>P</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>c</mml:mi><mml:mo>)</mml:mo></mml:mrow><mml:munderover><mml:mo movablelimits="false">&#x220F;</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mi>M</mml:mi></mml:munderover><mml:mrow><mml:mi>P</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>x</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo fence="false" stretchy="false">|</mml:mo><mml:mi>c</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math>
</disp-formula></p>
<p>The advantages of the Naive Bayes classifier are that it is easy to handle large amount of data, and fast to train and make classifications and it is not sensitive to irrelevant features. However, the Naive Bayes classifier assumes features are independent, and it is loss of accuracy which is its drawbacks [<xref ref-type="bibr" rid="ref-19">19</xref>].</p>
<p>Third, the support vector machine (SVM) method is considered as an optimization algorithm. The basic ideas of SVMs are that it creates optimal hyperplane for linearly separable patterns, and for the patterns that are not linear separable, kernel functions can be used to transform the original data into new space [<xref ref-type="bibr" rid="ref-19">19</xref>,<xref ref-type="bibr" rid="ref-21">21</xref>]. SVMs and kernel methods have a theoretical model that guarantees the performance. In addition, SVMs are not affected by local minimum and the curse of dimensionality. We consider one-versus-all (OvA) multi-class SVM classifier with the radial basis function kernel which can be represented by.</p>
<p><disp-formula id="eqn-6"><label>(6)</label>
<mml:math id="mml-eqn-6" display="block"><mml:msub><mml:mrow><mml:mover><mml:mi>y</mml:mi><mml:mo stretchy="false">&#x005E;</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:munder><mml:mrow><mml:mi>arg</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mo movablelimits="true" form="prefix">max</mml:mo></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mo>&#x22EF;</mml:mo><mml:mo>,</mml:mo><mml:mi>C</mml:mi></mml:mrow></mml:munder><mml:mo>&#x2061;</mml:mo><mml:munder><mml:mo movablelimits="false">&#x2211;</mml:mo><mml:mrow><mml:mi>n</mml:mi><mml:mo>&#x2208;</mml:mo><mml:mi>S</mml:mi><mml:mi>V</mml:mi></mml:mrow></mml:munder><mml:mrow><mml:msub><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mi>K</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">X</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:msub><mml:mrow><mml:mi mathvariant="bold">X</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mi>b</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:math>
</disp-formula></p>
<p>where SV denotes a set of support vectors, and <inline-formula id="ieqn-10">
<mml:math id="mml-ieqn-10"><mml:msub><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math>
</inline-formula> denotes a Lagrange multiplier with a constraint <inline-formula id="ieqn-11">
<mml:math id="mml-ieqn-11"><mml:mn>0</mml:mn><mml:mo>&#x2264;</mml:mo><mml:msub><mml:mi>&#x03B1;</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>&#x2264;</mml:mo><mml:mi>&#x03B4;</mml:mi></mml:math>
</inline-formula> for the class <italic>c</italic>. Here, <inline-formula id="ieqn-12">
<mml:math id="mml-ieqn-12"><mml:mi>&#x03B4;</mml:mi></mml:math>
</inline-formula> denotes a hyper-parameter controlling trade-off between slack variable penalty and the margin [<xref ref-type="bibr" rid="ref-19">19</xref>]. Also, <inline-formula id="ieqn-13">
<mml:math id="mml-ieqn-13"><mml:msub><mml:mi>y</mml:mi><mml:mrow><mml:mi>c</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub></mml:math>
</inline-formula> denotes a temporary label for the class <italic>c</italic>, and <inline-formula id="ieqn-14">
<mml:math id="mml-ieqn-14"><mml:msub><mml:mi>b</mml:mi><mml:mi>c</mml:mi></mml:msub></mml:math>
</inline-formula> denotes a bias term for the class <italic>c</italic>. The radial basis function kernel is given by</p>
<p><disp-formula id="eqn-7"><label>(7)</label>
<mml:math id="mml-eqn-7" display="block"><mml:mi>K</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">X</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mspace width="thickmathspace" /><mml:msub><mml:mrow><mml:mi mathvariant="bold">X</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mi>exp</mml:mi><mml:mo>&#x2061;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mo>&#x2212;</mml:mo><mml:mi>&#x03B3;</mml:mi><mml:msubsup><mml:mrow><mml:mo symmetric="true">&#x2016;</mml:mo><mml:mrow><mml:msub><mml:mrow><mml:mi mathvariant="bold">X</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msub><mml:mo>&#x2212;</mml:mo><mml:msub><mml:mrow><mml:mi mathvariant="bold">X</mml:mi></mml:mrow><mml:mrow><mml:mi>n</mml:mi><mml:mi>e</mml:mi><mml:mi>w</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo symmetric="true">&#x2016;</mml:mo></mml:mrow><mml:mn>2</mml:mn><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math>
</disp-formula></p>
<p>where <inline-formula id="ieqn-15">
<mml:math id="mml-ieqn-15"><mml:mi>&#x03B3;</mml:mi></mml:math>
</inline-formula> denotes a hyper-parameter defining how far the influence of a single training sample <inline-formula id="ieqn-16">
<mml:math id="mml-ieqn-16"><mml:msub><mml:mrow><mml:mi mathvariant="bold">X</mml:mi></mml:mrow><mml:mi>n</mml:mi></mml:msub></mml:math>
</inline-formula> reaches as support vectors [<xref ref-type="bibr" rid="ref-19">19</xref>], and <inline-formula id="ieqn-17">
<mml:math id="mml-ieqn-17"><mml:msub><mml:mrow><mml:mo symmetric="true">&#x2016;</mml:mo><mml:mrow><mml:mo>&#x22C5;</mml:mo></mml:mrow><mml:mo symmetric="true">&#x2016;</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msub></mml:math>
</inline-formula> denotes the L2 norm. The OvA is a heuristic method using binary classifiers for multi-class classification by splitting a multi-class dataset into multiple binary classification problems [<xref ref-type="bibr" rid="ref-21">21</xref>]. The SVM classifier has low generalization error and no distribution requirement. Also, it is computationally inexpensive and easy to interpret results. However, its performance is sensitive to two hyper-parameters of <inline-formula id="ieqn-18">
<mml:math id="mml-ieqn-18"><mml:mi>&#x03B4;</mml:mi></mml:math>
</inline-formula> and <inline-formula id="ieqn-19">
<mml:math id="mml-ieqn-19"><mml:mi>&#x03B3;</mml:mi></mml:math>
</inline-formula> [<xref ref-type="bibr" rid="ref-19">19</xref>].</p>
</sec>
</sec>
<sec id="s3">
<label>3</label>
<title>Experimental Results</title>
<p>The proposed Android IoT lifelog system was developed by using oneM2M-compliant IoT client and server platforms called &#x0026;Cube and Mobius as mentioned before. In <xref ref-type="fig" rid="fig-6">Fig. 6</xref>, we presented implementation results of the Android IoT client application working on Android 10. It was developed according to the activity diagrams explained in Section 2. The two images on the top-left corner show the login process where a user enters his/her phone number and the verification code for permission to the Android IoT client application. The phone number are also used as the AND-AE name for the registration process between the Android IoT client application and the oneM2M-compliant IoT server. The other six images present motion data, call log, SMS log, application usage statistics, calendar events, and location data, respectively. In summary, all data can be viewed on monitoring fragments as well as stored in the SQLite database.</p>
<fig id="fig-6">
<label>Figure 6</label>
<caption>
<title>Implementation results of the Android IoT client application working on Android 10</title></caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CSSE_33342-fig-6.png"/>
</fig>
<p>In <xref ref-type="fig" rid="fig-7">Fig. 7</xref>, we presented a resource tree of the oneM2M-compliant IoT server that displays all data received from the Android IoT client application, called Android IoT lifelog data described in <xref ref-type="table" rid="table-1">Tab. 1</xref>. The resource tree has eight container resources such as <italic>Sensors</italic>, <italic>Gps</italic>, <italic>Call</italic>, <italic>Sms</italic>, <italic>Usage</italic>, <italic>CalEvent</italic>, <italic>Weather</italic>, and <italic>AirPollution</italic> to store corresponding content instance resources including the Android IoT lifelog data. For instance, a content instance resource including motion data such as accelerometer and gyroscope is shown in detail. If you look at the key-value pairs in the JSON format, you can find accelerometer and gyroscope data. These experimental results confirm that the proposed Android IoT lifelog system is running normally. Moreover, there are two key-value pairs for manual and automated motion class labeling (see the keys of <italic>Activity state button</italic> and <italic>Activity state google</italic>). As mentioned before, the motion class labels such as driving, cycling, running, walking, and stilling will be used to build a dataset for motion inference. The manual motion class labeling denotes that the user should manually push motion class buttons in the Android IoT client application before measuring and storing motion and location data. The automated motion class labeling was implemented by using the Activity Recognition API for Android. We primarily used the manual method and considered the automated one to verify the class labels resulting from the manual one.</p>
<fig id="fig-7">
<label>Figure 7</label>
<caption>
<title>Resource tree of the oneM2M-compliant IoT server for monitoring Android IoT lifelog data</title></caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CSSE_33342-fig-7.png"/>
</fig>
<p>To build a dataset for motion inference, three persons collected the motion and location data for two months through their own Android IoT client applications. In <xref ref-type="fig" rid="fig-8">Fig. 8</xref>, we visualized some samples in the dataset in a two-dimensional space where acceleration force, gyroscope rate of rotation, and speed concerning the driving class were shown according to arbitrary time indices. By analyzing the curve of speed changes, we can estimate that a car stopped for a while at about 2200 time index. If you look at about 6000 time index, you can find that the car was traveling at about 100&#x2005;km/h.</p>
<fig id="fig-8">
<label>Figure 8</label>
<caption>
<title>Graphical visualization of motion and location data with respect to the driving class: acceleration force along x, y, z axis, gyroscope rate of rotation around x, y, z axis, and speed</title></caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CSSE_33342-fig-8.png"/>
</fig>
<p>We trained and evaluated three multi-class ML classifiers for motion inference in terms of confusion matrices [<xref ref-type="bibr" rid="ref-22">22</xref>,<xref ref-type="bibr" rid="ref-23">23</xref>]. In <xref ref-type="table" rid="table-2">Tab. 2</xref>, we show the confusion matrix of the kNN classifier with a default hyper-parameter, <inline-formula id="ieqn-20">
<mml:math id="mml-ieqn-20"><mml:mi>k</mml:mi><mml:mo>=</mml:mo><mml:mn>5</mml:mn></mml:math>
</inline-formula>. Actual motion class labels are listed along the y-axis, and predicted motion class labels are listed along the x-axis. The correct classifications are along the diagonal, whereas all the other entries show misclassifications. The rightmost column shows the accuracy for each actual motion class label. In this confusion matrix, it can be seen that 726 samples of the driving class are correctly predicted, and 84 remaining samples are wrongly predicted. The stilling class has the best accuracy of 99.50&#x0025;, while, in contrast, the running class has the worst accuracy of 71.36&#x0025;. The confusion matrix of the Naive Bayes classifier is presented in <xref ref-type="table" rid="table-3">Tab. 3</xref>. It can be seen that the stilling class has the best accuracy of 94.53&#x0025;, and the walking class does low accuracy of 77.15&#x0025;. The driving, cycling, and running classes have very low accuracies of less than 65&#x0025;. Overall, the Na&#x00EF;ve Bayes classifier shows poor performance in terms of the accuracy metric. In <xref ref-type="table" rid="table-4">Tab. 4</xref>, the confusion matrix of the SVM classifier with default hyper-parameters, <inline-formula id="ieqn-21">
<mml:math id="mml-ieqn-21"><mml:mi>&#x03B4;</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math>
</inline-formula> and <inline-formula id="ieqn-22">
<mml:math id="mml-ieqn-22"><mml:mi>&#x03B3;</mml:mi><mml:mo>=</mml:mo><mml:mn>0.14</mml:mn></mml:math>
</inline-formula> is presented. It can be seen that the stilling class has the best accuracy of 99.57&#x0025;, and the running class does the worst accuracy of 55.12&#x0025;. The cycling class still has low accuracy of 76.79&#x0025;. When compared with confusion matrices of three multi-class ML classifiers, it can be observed that, in general, the kNN classifier outperforms the other Naive Bayes and the SVM classifiers. The reason is mainly that insufficient datasets were used to create the other two classifiers. On the other hand, the kNN classifier works well for a small dataset. In addition, the scale and distribution of motion and location data for running and walking classes may be indistinguishable.</p>
<table-wrap id="table-2"><label>Table 2</label>
<caption>
<title>Confusion matrix of motion inference using multi-class kNN classifier</title></caption>
<table><colgroup><col align="left"/><col align="left"/><col align="left"/><col align="left"/><col align="left"/><col align="left"/><col align="left"/><col align="left"/><col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left" rowspan="2" colspan="2"/>
<th align="center" colspan="5">Predicted motion</th>
<th align="center" rowspan="2">Accuracy<break/>(&#x0025;)</th>
<th align="center" rowspan="2">F1 Score</th>
</tr>
<tr>
<th align="left">Driving</th>
<th align="left">Cycling</th>
<th align="left">Running</th>
<th align="left">Walking</th>
<th align="left">Stilling</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" rowspan="5">Actual motion</td>
<td align="left">Driving</td>
<td align="left">726</td>
<td align="left">6</td>
<td align="left">1</td>
<td align="left">32</td>
<td align="left">45</td>
<td align="left">90.98</td>
<td align="left">0.86</td>
</tr>
<tr>
<td align="left">Cycling</td>
<td align="left">21</td>
<td align="left">335</td>
<td align="left">6</td>
<td align="left">34</td>
<td align="left">9</td>
<td align="left">84.19</td>
<td align="left">0.85</td>
</tr>
<tr>
<td align="left">Running</td>
<td align="left">9</td>
<td align="left">26</td>
<td align="left">238</td>
<td align="left">49</td>
<td align="left">10</td>
<td align="left">71.36</td>
<td align="left">0.78</td>
</tr>
<tr>
<td align="left">Walking</td>
<td align="left">63</td>
<td align="left">2</td>
<td align="left">13</td>
<td align="left">2393</td>
<td align="left">147</td>
<td align="left">90.45</td>
<td align="left">0.91</td>
</tr>
<tr>
<td align="left">Stilling</td>
<td align="left">37</td>
<td align="left">1</td>
<td align="left">3</td>
<td align="left">106</td>
<td align="left">33588</td>
<td align="left">99.50</td>
<td align="left">0.99</td>
</tr>
</tbody>
</table>
</table-wrap><table-wrap id="table-3"><label>Table 3</label>
<caption>
<title>Confusion matrix of motion inference using multi-class Naive Bayes classifier</title></caption>
<table><colgroup><col align="left"/><col align="left"/><col align="left"/><col align="left"/><col align="left"/><col align="left"/><col align="left"/><col align="left"/><col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left" rowspan="2" colspan="2"/>
<th align="center" colspan="5">Predicted motion</th>
<th align="center" rowspan="2">Accuracy<break/>(&#x0025;)</th>
<th align="center" rowspan="2">F1 Score</th>
</tr>
<tr>
<th align="left">Driving</th>
<th align="left">Cycling</th>
<th align="left">Running</th>
<th align="left">Walking</th>
<th align="left">Stilling</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" rowspan="5">Actual motion</td>
<td align="left">Driving</td>
<td align="left">511</td>
<td align="left">5</td>
<td align="left">5</td>
<td align="left">230</td>
<td align="left">59</td>
<td align="left">63.09</td>
<td align="left">0.70</td>
</tr>
<tr>
<td align="left">Cycling</td>
<td align="left">47</td>
<td align="left">252</td>
<td align="left">18</td>
<td align="left">82</td>
<td align="left">6</td>
<td align="left">62.2</td>
<td align="left">0.71</td>
</tr>
<tr>
<td align="left">Running</td>
<td align="left">24</td>
<td align="left">40</td>
<td align="left">215</td>
<td align="left">40</td>
<td align="left">13</td>
<td align="left">64.75</td>
<td align="left">0.62</td>
</tr>
<tr>
<td align="left">Walking</td>
<td align="left">5</td>
<td align="left">2</td>
<td align="left">103</td>
<td align="left">2020</td>
<td align="left">488</td>
<td align="left">77.15</td>
<td align="left">0.60</td>
</tr>
<tr>
<td align="left">Stilling</td>
<td align="left">65</td>
<td align="left">1</td>
<td align="left">26</td>
<td align="left">1752</td>
<td align="left">31891</td>
<td align="left">94.53</td>
<td align="left">0.96</td>
</tr>
</tbody>
</table>
</table-wrap><table-wrap id="table-4"><label>Table 4</label>
<caption>
<title>Confusion matrix of motion inference using multi-class SVM classifier</title></caption>
<table><colgroup><col align="left"/><col align="left"/><col align="left"/><col align="left"/><col align="left"/><col align="left"/><col align="left"/><col align="left"/><col align="left"/>
</colgroup>
<thead>
<tr>
<th align="left" rowspan="2" colspan="2"/>
<th align="center" colspan="5">Predicted motion</th>
<th align="center" rowspan="2">Accuracy<break/>(&#x0025;)</th>
<th align="center" rowspan="2">F1 Score</th>
</tr>
<tr>
<th align="left">Driving</th>
<th align="left">Cycling</th>
<th align="left">Running</th>
<th align="left">Walking</th>
<th align="left">Stilling</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" rowspan="5">Actual motion</td>
<td align="left">Driving</td>
<td align="left">699</td>
<td align="left">3</td>
<td align="left">4</td>
<td align="left">57</td>
<td align="left">47</td>
<td align="left">86.29</td>
<td align="left">0.89</td>
</tr>
<tr>
<td align="left">Cycling</td>
<td align="left">11</td>
<td align="left">311</td>
<td align="left">12</td>
<td align="left">68</td>
<td align="left">3</td>
<td align="left">76.79</td>
<td align="left">0.85</td>
</tr>
<tr>
<td align="left">Running</td>
<td align="left">3</td>
<td align="left">12</td>
<td align="left">183</td>
<td align="left">130</td>
<td align="left">4</td>
<td align="left">55.12</td>
<td align="left">0.68</td>
</tr>
<tr>
<td align="left">Walking</td>
<td align="left">26</td>
<td align="left">0</td>
<td align="left">3</td>
<td align="left">2416</td>
<td align="left">173</td>
<td align="left">92.28</td>
<td align="left">0.89</td>
</tr>
<tr>
<td align="left">Stilling</td>
<td align="left">14</td>
<td align="left">0</td>
<td align="left">4</td>
<td align="left">127</td>
<td align="left">33590</td>
<td align="left">99.57</td>
<td align="left">0.99</td>
</tr>
</tbody>
</table>
</table-wrap>
<p>In <xref ref-type="fig" rid="fig-9">Fig. 9</xref>, we evaluate the output quality of the kNN classifier in terms of ROC curves with AUC values [<xref ref-type="bibr" rid="ref-23">23</xref>]. It typically plots a true positive rate on the y-axis and a false positive rate on the x-axis, which means that its top-left corner is the ideal point where the false positive rate is zero, and the true positive rate is one. The ROC curves of all classes (class 0&#x2009;&#x003D;&#x2009;driving, class 1&#x2009;&#x003D;&#x2009;cycling, class 2&#x2009;&#x003D;&#x2009;running, class 3&#x2009;&#x003D;&#x2009;walking, and class 4&#x2009;=&#x2009;stilling) are shown with AUC values. For instance, the ROC curve of class 2 has an AUC value of 0.93. It can be seen that all ROC curves show the AUC value of 0.9. The macro-average ROC curve means the arithmetic average of the ROC curves for all class, and the micro-average ROC curve means a weighted macro-average in which each class contribution to be average is weighted by the relative number of samples available for the class [<xref ref-type="bibr" rid="ref-23">23</xref>]. In other words, the macro-average ROC curve does not take imbalanced datasets into account, but the micro-average ROC curve does [<xref ref-type="bibr" rid="ref-23">23</xref>]. The macro-average ROC curve has the AUC value of 0.96, and the micro-average ROC curve does the AUC value of 0.99.</p>
<fig id="fig-9">
<label>Figure 9</label>
<caption>
<title>ROC curves of all classes, macro-average and micro-average ROC curves with AUC values to evaluate the output quality of the kNN classifier</title></caption>
<graphic mimetype="image" mime-subtype="png" xlink:href="CSSE_33342-fig-9.png"/>
</fig>
</sec>
<sec id="s4">
<label>4</label>
<title>Conclusions</title>
<p>Smartphone data have played important roles in social science, health care, digital therapeutics, etc. However, existing smartphone data collection systems are not good enough to be effectively and widely used because they do not comply with any IoT standards and not provide any class labeling methods for ML services. In this paper, the Android IoT lifelog system for inferring users&#x2019; daily lives was proposed to collect various lifelog data in smartphones such as motion, location, phone call, SMS message, application usage statistics, weather information, and air pollution information. The proposed system consisted of an Android IoT client application, an oneM2M-compliant IoT server, and an ML server. It should be noted that its functional architecture (i.e., AND-AE, IN-CSE) was based on oneM2M standards that are open, accessible and internationally recognized. We mainly explained activity diagrams of the Android IoT client application that is the primary component of the proposed system. The advantage of the Android IoT client application is that it works well with the oneM2M-compliant IoT server and that it supports manual and automated class labeling methods for the ML server. Through implementation and experimental results, we showed that the proposed system was running normally. In addition, as an application of the ML server in the proposed system, we developed three multi-class ML classifiers for motion inference where we considered only motion and location data (i.e., acceleration force, gyroscope rate of rotation, and speed) and assumed five motion class labels (i.e., driving, cycling, running, walking, and stilling). Experimental results showed that when compared with confusion matrices of the ML classifiers: a kNN classifier, a Naive Bayes classifier, and a SVM classifier, the kNN classifier was superior to the other two classifiers because small datasets were used for creating them. To evaluate the output quality of the kNN classifier, its ROC curves with AUC values were presented. All ROC curves for all classes achieved the AUC of more than 0.9. The macro-average and micro-average ROC curves showed the AUC values of 0.96 and 0.99, respectively. Accordingly, we found that the kNN classifier, created by motion and location data in the proposed Android IoT lifelog system, can provide very good accuracy.</p>
</sec>
</body>
<back><fn-group>
<fn fn-type="other">
<p><bold>Funding Statement:</bold> This work was supported by Hanshin University Research Grant.</p>
</fn>
<fn fn-type="conflict">
<p><bold>Conflicts of Interest:</bold> The authors declare that they have no conflicts of interest to report regarding the present study.</p>
</fn>
</fn-group>
<ref-list content-type="authoryear">
<title>References</title>
<ref id="ref-1"><label>[1]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>P.</given-names> <surname>Pierleoni</surname></string-name>, <string-name><given-names>L.</given-names> <surname>Pernini</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Belli</surname></string-name> and <string-name><given-names>L.</given-names> <surname>Palma</surname></string-name></person-group>, &#x201C;<article-title>An android-based heart monitoring system for the elderly and for patients with heart disease</article-title>,&#x201D; <source>International Journal of Telemedicine and Applications</source>, vol. <volume>2014</volume>, article ID 625156, pp. <fpage>1</fpage>&#x2013;<lpage>11</lpage>, <year>2014</year>.</mixed-citation></ref>
<ref id="ref-2"><label>[2]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>V. D.</given-names> <surname>Blondel</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Decuyper</surname></string-name> and <string-name><given-names>G.</given-names> <surname>Krings</surname></string-name></person-group>, &#x201C;<article-title>A survey of results on mobile phone datasets analysis</article-title>,&#x201D; <source>EPJ Data Science</source>, vol. <volume>4</volume>, no. <issue>10</issue>, pp. <fpage>1</fpage>&#x2013;<lpage>57</lpage>, <year>2015</year>.</mixed-citation></ref>
<ref id="ref-3"><label>[3]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>R.</given-names> <surname>Mafrur</surname></string-name>, <string-name><given-names>I. G. D.</given-names> <surname>Nugraha</surname></string-name> and <string-name><given-names>D.</given-names> <surname>Choi</surname></string-name></person-group>, &#x201C;<article-title>Modeling and discovering human behavior from smartphone sensing life-log data for identification purpose</article-title>,&#x201D; <source>Human-centric Computing and Information Sciences</source>, vol. <volume>5</volume>, no. <issue>31</issue>, pp. <fpage>1</fpage>&#x2013;<lpage>18</lpage>, <year>2015</year>.</mixed-citation></ref>
<ref id="ref-4"><label>[4]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Liao</surname></string-name>, <string-name><given-names>Z.</given-names> <surname>Wang</surname></string-name>, <string-name><given-names>L.</given-names> <surname>Wan</surname></string-name>, <string-name><given-names>Q. C.</given-names> <surname>Cao</surname></string-name> and <string-name><given-names>H.</given-names> <surname>Qi</surname></string-name></person-group>, &#x201C;<article-title>Smart diary: A smartphone-based framework for sensing, inferring, and logging users&#x2019; daily life</article-title>,&#x201D; <source>IEEE Sensors Journal</source>, vol. <volume>15</volume>, no. <issue>5</issue>, pp. <fpage>2761</fpage>&#x2013;<lpage>2773</lpage>, <year>2015</year>.</mixed-citation></ref>
<ref id="ref-5"><label>[5]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>G. M.</given-names> <surname>Harari</surname></string-name>, <string-name><given-names>N. D.</given-names> <surname>Lane</surname></string-name>, <string-name><given-names>R.</given-names> <surname>Wang</surname></string-name>, <string-name><given-names>B. S.</given-names> <surname>Crosier</surname></string-name>, <string-name><given-names>A. T.</given-names> <surname>Campbell</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Using smartphones to collect behavior data in psychological science: Opportunities, practical considerations, and challenges</article-title>,&#x201D; <source>Perspectives on Psychological Science</source>, vol. <volume>11</volume>, no. <issue>6</issue>, pp. <fpage>838</fpage>&#x2013;<lpage>854</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-6"><label>[6]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Faurholt-Jepsen</surname></string-name>, <string-name><given-names>E.</given-names> <surname>Torri</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Cobo</surname></string-name>, <string-name><given-names>D.</given-names> <surname>Yazdanyar</surname></string-name>, <string-name><given-names>D.</given-names> <surname>Palao</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Smartphone-based self-monitoring in bipolar disorder: Evaluation of usability and feasibility of two systems</article-title>,&#x201D; <source>International Journal of Bipolar Disorders</source>, vol. <volume>7</volume>, no. <issue>1</issue>, pp. <fpage>1</fpage>&#x2013;<lpage>11</lpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-7"><label>[7]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>K.</given-names> <surname>Kario</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Nomura</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Kato</surname></string-name>, <string-name><given-names>N.</given-names> <surname>Harada</surname></string-name>, <string-name><given-names>T.</given-names> <surname>Tanigawa</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Digital therapeutics for essential hypertension using a smartphone application: A randomized, open-label, multicenter pilot study</article-title>,&#x201D; <source>Journal of Clinical Hypertension</source>, vol. <volume>23</volume>, no. <issue>5</issue>, pp. <fpage>923</fpage>&#x2013;<lpage>934</lpage>, <year>2021</year>.</mixed-citation></ref>
<ref id="ref-8"><label>[8]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>R.</given-names> <surname>Ribeiro</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Trifan</surname></string-name> and <string-name><given-names>A. J. R.</given-names> <surname>Neves</surname></string-name></person-group>, &#x201C;<article-title>Lifelog retrieval from daily digital data: Narrative review</article-title>,&#x201D; <source>JMIR Mhealth and Uhealth</source>, vol. <volume>10</volume>, no. <issue>5</issue>, pp. <fpage>1</fpage>&#x2013;<lpage>20</lpage>, <year>2022</year>.</mixed-citation></ref>
<ref id="ref-9"><label>[9]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>P.</given-names> <surname>Kulkarni</surname></string-name>, <string-name><given-names>R.</given-names> <surname>Kirkham</surname></string-name> and <string-name><given-names>R.</given-names> <surname>McNaney</surname></string-name></person-group>, &#x201C;<article-title>Opportunities for smartphone sensing in E-health research: A narrative review</article-title>,&#x201D; <source>Sensors</source>, vol. <volume>22</volume>, no. <issue>10</issue>, pp. <fpage>1</fpage>&#x2013;<lpage>21</lpage>, <year>2022</year>.</mixed-citation></ref>
<ref id="ref-10"><label>[10]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Yun</surname></string-name>, <string-name><given-names>I. Y.</given-names> <surname>Ahn</surname></string-name>, <string-name><given-names>N. M.</given-names> <surname>Sung</surname></string-name> and <string-name><given-names>J.</given-names> <surname>Kim</surname></string-name></person-group>, &#x201C;<article-title>A device software platform for consumer electronics based on the internet of things</article-title>,&#x201D; <source>IEEE Transactions on Consumer Electronics</source>, vol. <volume>61</volume>, no. <issue>4</issue>, pp. <fpage>564</fpage>&#x2013;<lpage>571</lpage>, <year>2015</year>.</mixed-citation></ref>
<ref id="ref-11"><label>[11]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Kim</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Yun</surname></string-name>, <string-name><given-names>S. C.</given-names> <surname>Choi</surname></string-name>, <string-name><given-names>D. N.</given-names> <surname>Seed</surname></string-name>, <string-name><given-names>G.</given-names> <surname>Lu</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Standard-based IoT platforms interworking: Implementation, experiences, and lessons learned</article-title>,&#x201D; <source>IEEE Communications Magazine</source>, vol. <volume>54</volume>, no. <issue>7</issue>, pp. <fpage>48</fpage>&#x2013;<lpage>54</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-12"><label>[12]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>V.</given-names> <surname>Andrianto</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Lam</surname></string-name>, <string-name><given-names>R.</given-names> <surname>Widodo</surname></string-name>, <string-name><given-names>S. -G.</given-names> <surname>Lee</surname></string-name>, <string-name><given-names>H. -J.</given-names> <surname>Lee</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Toward implementation of oneM2M based IoT platform</article-title>,&#x201D; <source>Journal of Theoretical and Applied Information Technology</source>, vol. <volume>96</volume>, no. <issue>2</issue>, pp. <fpage>418</fpage>&#x2013;<lpage>425</lpage>, <year>2018</year>.</mixed-citation></ref>
<ref id="ref-13"><label>[13]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>H.</given-names> <surname>Yoo</surname></string-name>, <string-name><given-names>R. C.</given-names> <surname>Park</surname></string-name> and <string-name><given-names>K.</given-names> <surname>Chung</surname></string-name></person-group>, &#x201C;<article-title>IoT-based health big-data process technologies: A survey</article-title>,&#x201D; <source>KSII Transactions on Internet and Information Systems</source>, vol. <volume>15</volume>, no. <issue>3</issue>, pp. <fpage>974</fpage>&#x2013;<lpage>992</lpage>, <year>2021</year>.</mixed-citation></ref>
<ref id="ref-14"><label>[14]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Husain</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Kunz</surname></string-name> and <string-name><given-names>J.</given-names> <surname>Song</surname></string-name></person-group>, &#x201C;<article-title>3GPP 5 G core network: An overview and future directions</article-title>,&#x201D; <source>Journal of Information and Communication Engineering</source>, vol. <volume>20</volume>, no. <issue>1</issue>, pp. <fpage>8</fpage>&#x2013;<lpage>15</lpage>, <year>2022</year>.</mixed-citation></ref>
<ref id="ref-15"><label>[15]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>A. A.</given-names> <surname>Farhan</surname></string-name>, <string-name><given-names>C.</given-names> <surname>Yue</surname></string-name>, <string-name><given-names>R.</given-names> <surname>Morillo</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Ware</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Lu</surname></string-name> <etal>et al.,</etal></person-group> &#x201C;<article-title>Behavior vs. introspection: Refining prediction of clinical depression via smartphone sensing data</article-title>,&#x201D; in <conf-name>Proc. IEEE WH</conf-name>, <conf-loc>Bethesda, MD, USA</conf-loc>, pp. <fpage>1</fpage>&#x2013;<lpage>8</lpage>, <year>2016</year>.</mixed-citation></ref>
<ref id="ref-16"><label>[16]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Durga</surname></string-name>, <string-name><given-names>R.</given-names> <surname>Nag</surname></string-name> and <string-name><given-names>E.</given-names> <surname>Daniel</surname></string-name></person-group>, &#x201C;<article-title>Survey on machine learning and deep learning algorithms used in internet of things (IoT) healthcare</article-title>,&#x201D; in <conf-name>Proc. ICCMC</conf-name>, <conf-loc>Erode, Tamil Nadu, India</conf-loc>, pp. <fpage>1018</fpage>&#x2013;<lpage>1022</lpage>, <year>2019</year>.</mixed-citation></ref>
<ref id="ref-17"><label>[17]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Moon</surname></string-name>, <string-name><given-names>S.</given-names> <surname>Kim</surname></string-name>, <string-name><given-names>J.</given-names> <surname>Song</surname></string-name> and <string-name><given-names>K.</given-names> <surname>Kim</surname></string-name></person-group>, &#x201C;<article-title>Study on machine learning techniques for malware classification and detection</article-title>,&#x201D; <source>KSII Transactions on Internet and Information Systems</source>, vol. <volume>15</volume>, no. <issue>12</issue>, pp. <fpage>4308</fpage>&#x2013;<lpage>4325</lpage>, <year>2021</year>.</mixed-citation></ref>
<ref id="ref-18"><label>[18]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>M.</given-names> <surname>Hasnain</surname></string-name>, <string-name><given-names>I.</given-names> <surname>Ghani</surname></string-name>, <string-name><given-names>M. F.</given-names> <surname>Pasha</surname></string-name> and <string-name><given-names>S. R.</given-names> <surname>Jeong</surname></string-name></person-group>, &#x201C;<article-title>Machine learning methods for trust-based selection of web services</article-title>,&#x201D; <source>KSII Transactions on Internet and Information Systems</source>, vol. <volume>16</volume>, no. <issue>1</issue>, pp. <fpage>38</fpage>&#x2013;<lpage>59</lpage>, <year>2022</year>.</mixed-citation></ref>
<ref id="ref-19"><label>[19]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>J.</given-names> <surname>Watt</surname></string-name>, <string-name><given-names>R.</given-names> <surname>Borhani</surname></string-name> and <string-name><given-names>A. K.</given-names> <surname>Katsaggelos</surname></string-name></person-group>, <source>Machine Learning Refined: Foundations, Algorithms, and Applications</source>. <publisher-name>Cambridge University Press</publisher-name>, Cambridge, UK, <year>2020</year>.</mixed-citation></ref>
<ref id="ref-20"><label>[20]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>L.</given-names> <surname>Jiang</surname></string-name>, <string-name><given-names>Z.</given-names> <surname>Cai</surname></string-name>, <string-name><given-names>D.</given-names> <surname>Wang</surname></string-name> and <string-name><given-names>S.</given-names> <surname>Jiang</surname></string-name></person-group>, &#x201C;<article-title>Survey of improving K-nearest-neighbor for classification</article-title>,&#x201D; in <conf-name>Proc. FSKD</conf-name>, <conf-loc>Haikou, Hainan, China</conf-loc>, pp. <fpage>679</fpage>&#x2013;<lpage>683</lpage>, <year>2007</year>.</mixed-citation></ref>
<ref id="ref-21"><label>[21]</label><mixed-citation publication-type="journal"><person-group person-group-type="author"><string-name><given-names>C. -W.</given-names> <surname>Hsu</surname></string-name> and <string-name><given-names>C. -J.</given-names> <surname>Lin</surname></string-name></person-group>, &#x201C;<article-title>A comparison of methods for multiclass support vector machines</article-title>,&#x201D; <source>IEEE Transactions on Neural Networks</source>, vol. <volume>13</volume>, no. <issue>2</issue>, pp. <fpage>415</fpage>&#x2013;<lpage>425</lpage>, <year>2002</year>.</mixed-citation></ref>
<ref id="ref-22"><label>[22]</label><mixed-citation publication-type="conf-proc"><person-group person-group-type="author"><string-name><given-names>S.</given-names> <surname>Visa</surname></string-name>, <string-name><given-names>B.</given-names> <surname>Ramsay</surname></string-name>, <string-name><given-names>A.</given-names> <surname>Ralescu</surname></string-name> and <string-name><given-names>E.</given-names> <surname>van der Knaap</surname></string-name></person-group>, &#x201C;<article-title>Confusion matrix-based feature selection</article-title>,&#x201D; in <conf-name>Proc. MAICS</conf-name>, <conf-loc>Cincinnati, OH, USA</conf-loc>, pp. <fpage>1</fpage>&#x2013;<lpage>8</lpage>, <year>2011</year>.</mixed-citation></ref>
<ref id="ref-23"><label>[23]</label><mixed-citation publication-type="book"><person-group person-group-type="author"><string-name><given-names>A.</given-names> <surname>M&#x00FC;ller</surname></string-name> and <string-name><given-names>S.</given-names> <surname>Guido</surname></string-name></person-group>, <source>Introduction to Machine Learning with Python: A Guide for Data Scientists</source>. <publisher-name>O&#x2019;Reilly Media</publisher-name>, Sebastopol, CA, USA. <year>2016</year>.</mixed-citation></ref>
</ref-list>
</back>
</article>












