<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.4 20241031//EN" "JATS-journalpublishing1-4.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article" dtd-version="1.4" xml:lang="en">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">ojmsi</journal-id>
      <journal-title-group>
        <journal-title>Open Journal of Modelling and Simulation</journal-title>
      </journal-title-group>
      <issn pub-type="epub">2327-4026</issn>
      <issn pub-type="ppub">2327-4018</issn>
      <publisher>
        <publisher-name>Scientific Research Publishing</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.4236/ojmsi.2026.142004</article-id>
      <article-id pub-id-type="publisher-id">ojmsi-150923</article-id>
      <article-categories>
        <subj-group>
          <subject>Article</subject>
        </subj-group>
        <subj-group>
          <subject>Physics</subject>
          <subject>Mathematics</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>Machine Learning: An Overview (Part Two)</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <name name-style="western">
            <surname>Yusoff</surname>
            <given-names>Mohd Izhan Mohd</given-names>
          </name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
      </contrib-group>
      <aff id="aff1"><label>1</label> Telekom Malaysia Berhad, Kuala Lumpur, Malaysia </aff>
      <author-notes>
        <fn fn-type="conflict" id="fn-conflict">
          <p>The author declares no conflicts of interest regarding the publication of this paper.</p>
        </fn>
      </author-notes>
      <pub-date pub-type="epub">
        <day>14</day>
        <month>02</month>
        <year>2026</year>
      </pub-date>
      <pub-date pub-type="collection">
        <month>02</month>
        <year>2026</year>
      </pub-date>
      <volume>14</volume>
      <issue>02</issue>
      <fpage>63</fpage>
      <lpage>72</lpage>
      <history>
        <date date-type="received">
          <day>26</day>
          <month>03</month>
          <year>2026</year>
        </date>
        <date date-type="accepted">
          <day>21</day>
          <month>04</month>
          <year>2026</year>
        </date>
        <date date-type="published">
          <day>24</day>
          <month>04</month>
          <year>2026</year>
        </date>
      </history>
      <permissions>
        <copyright-statement>© 2026 by the authors and Scientific Research Publishing Inc.</copyright-statement>
        <copyright-year>2026</copyright-year>
        <license license-type="open-access">
          <license-p> This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license ( <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link> ). </license-p>
        </license>
      </permissions>
      <self-uri content-type="doi" xlink:href="https://doi.org/10.4236/ojmsi.2026.142004">https://doi.org/10.4236/ojmsi.2026.142004</self-uri>
      <abstract>
        <p>NILM (Nonintrusive Load Monitoring) or appliance recognition software that uses algorithms, namely Hidden Markov Model (HMM) and Factorial HMM, to detect changes in electricity values entering a building, thus inferring which appliances are used and their individual energy consumption. In this paper, a “simple” technique is introduced that uses combinatorics on a specially designed observation matrix to detect hidden appliances and their electricity usage by dissecting the building’s total electricity usage.</p>
      </abstract>
      <kwd-group kwd-group-type="author-generated" xml:lang="en">
        <kwd>Nonintrusive Load Monitoring (NILM)</kwd>
        <kwd>Combinatorics</kwd>
        <kwd>Observation Matrix</kwd>
        <kwd>Pentagon</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec1">
      <title>1. Introduction</title>
      <p>NILMs (Nonintrusive Load Monitoring) or appliance recognition software are algorithms that detect changes in electricity values entering a building to infer which appliances are used and their individual energy consumption. NILM uses Hidden Markov Model (HMM) and Factorial Hidden Markov Model (FHMM) to determine which appliances are switched “ON” by analysing the building’s electricity usage behaviour [<xref ref-type="bibr" rid="B1">1</xref>]-[<xref ref-type="bibr" rid="B4">4</xref>]. The Expectation-Maximization algorithm is used to find the final parameters of the above-mentioned techniques [<xref ref-type="bibr" rid="B5">5</xref>][<xref ref-type="bibr" rid="B6">6</xref>]. The weaknesses of NILM are its inability to deliver cost savings and scale, as it must work with systems that collect and process data frequently (preferably every second or minute) [<xref ref-type="bibr" rid="B1">1</xref>].</p>
      <p>Example of how NILM is implemented: A special sensor is placed at the electricity meter (or distribution) box of house “A” that measures the “total” electricity usage, say every minute. The system, which is installed on a server, desktop, or laptop and linked to the sensor, starts processing when the sensor has collected a block of data, say, 30 minutes. House “A” laptop (or desktop) is preferred over the “cloud” server because of the “shared” resources, as shown by the latter, which might impact the processing speed. The sensor produces 48 blocks of 30-minute data per day. The system must process and produce (or display) results within 30 minutes before accepting the new batch of data. The word “total” presents extraordinary challenges because a single “sensor” is used instead of multiple “timer” devices (as suggested by SA<sup>2</sup>VING), and without the system’s aid, one must make a good “guess” about which household appliances are switched “ON”.</p>
      <p>In this paper, we would like to propose using a “simple” technique, namely combinatorics, on a specially designed observation matrix, for NILM.</p>
    </sec>
    <sec id="sec2">
      <title>2. Methods</title>
      <p>Combinatorics, a part of mathematics, focuses on counting, arranging, and structuring finite discrete objects. Using techniques such as permutations (ordered arrangements), combinations (unordered arrangements), and the pigeonhole principle, it solves complex remuneration problems [<xref ref-type="bibr" rid="B7">7</xref>]. For the case of three appliances labelled, say, 1, 2, and 3, combinatorics is used to create a series of tests for a system to perform (from this point onwards, they are known as stages): (1), (2), (3), (1, 2), (1, 3), (2, 3), and (1, 2, 3), where the appliance, represented by its label, that is switched “ON”, is placed in the brackets.</p>
      <p>The following are the steps taken to create an observation matrix using appliance (electricity usage) data:</p>
      <p>Let t(1), t(2), t(3), ..., t(m) represent the columns of an “m”-minute block of data. Let Obs(1),..., Obs(n) be the “n” observations (<italic>i</italic>.<italic>e</italic>., electricity usage data when the appliance is switched “ON”) collected for an appliance. For the first row, place Obs(n) in the first column, and “0.0” (meaning the appliance is switched “OFF”) in the rest of the columns. For the second row, place Obs(n − 1) in the first column, Obs(n) in the second column, and “0.0” in the rest of the columns. For the third row, place Obs(n − 2) in the first column, Obs(n − 1) in the second column, Obs(n) in the third column, and “0.0” in the rest of the columns. Repeat the above process until reaching “n + (m − 1)” row where the first “m − 1” columns are filled with “0.0”, and Obs(1) fills the last column. <bold>Table 1</bold> shows an example of an observation matrix where “m” and “n” equal five.</p>
      <p><bold>Table 1</bold><bold>.</bold> An example of the observation matrix.</p>
      <table-wrap id="tbl1">
        <label>Table 1</label>
        <table>
          <tbody>
            <tr>
              <td>
                <italic>t</italic>
                (1)
              </td>
              <td>
                <italic>t</italic>
                (2)
              </td>
              <td>
                <italic>t</italic>
                (3)
              </td>
              <td>
                <italic>t</italic>
                (4)
              </td>
              <td>
                <italic>t</italic>
                (5)
              </td>
            </tr>
            <tr>
              <td>
                <italic>Obs</italic>
                (5)
              </td>
              <td>0.0</td>
              <td>0.0</td>
              <td>0.0</td>
              <td>0.0</td>
            </tr>
            <tr>
              <td>
                <italic>Obs</italic>
                (4)
              </td>
              <td>
                <italic>Obs</italic>
                (5)
              </td>
              <td>0.0</td>
              <td>0.0</td>
              <td>0.0</td>
            </tr>
            <tr>
              <td>
                <italic>Obs</italic>
                (3)
              </td>
              <td>
                <italic>Obs</italic>
                (4)
              </td>
              <td>
                <italic>Obs</italic>
                (5)
              </td>
              <td>0.0</td>
              <td>0.0</td>
            </tr>
            <tr>
              <td>
                <italic>Obs</italic>
                (2)
              </td>
              <td>
                <italic>Obs</italic>
                (3)
              </td>
              <td>
                <italic>Obs</italic>
                (4)
              </td>
              <td>
                <italic>Obs</italic>
                (5)
              </td>
              <td>0.0</td>
            </tr>
            <tr>
              <td>
                <italic>Obs</italic>
                (1)
              </td>
              <td>
                <italic>Obs</italic>
                (2)
              </td>
              <td>
                <italic>Obs</italic>
                (3)
              </td>
              <td>
                <italic>Obs</italic>
                (4)
              </td>
              <td>
                <italic>Obs</italic>
                (5)
              </td>
            </tr>
            <tr>
              <td>0.0</td>
              <td>
                <italic>Obs</italic>
                (1)
              </td>
              <td>
                <italic>Obs</italic>
                (2)
              </td>
              <td>
                <italic>Obs</italic>
                (3)
              </td>
              <td>
                <italic>Obs</italic>
                (4)
              </td>
            </tr>
            <tr>
              <td>0.0</td>
              <td>0.0</td>
              <td>
                <italic>Obs</italic>
                (1)
              </td>
              <td>
                <italic>Obs</italic>
                (2)
              </td>
              <td>
                <italic>Obs</italic>
                (3)
              </td>
            </tr>
            <tr>
              <td>0.0</td>
              <td>0.0</td>
              <td>0.0</td>
              <td>
                <italic>Obs</italic>
                (1)
              </td>
              <td>
                <italic>Obs</italic>
                (2)
              </td>
            </tr>
            <tr>
              <td>0.0</td>
              <td>0.0</td>
              <td>0.0</td>
              <td>0.0</td>
              <td>
                <italic>Obs</italic>
                (1)
              </td>
            </tr>
          </tbody>
        </table>
      </table-wrap>
      <p>Note that (electricity usage) data for each appliance is collected as follows: when the appliance is switched “ON”, (electricity usage) data is collected from the same sensor as mentioned above every minute until the appliance switches “OFF” (either by hand or automatically).</p>
      <p>As mentioned in the Introduction, the system starts to process when the sensor (located at the distribution box) has collected a block of “m”-minute data (“m” equals 30), <italic>i</italic>.<italic>e</italic>., “dataTotal(1)” – “dataTotal(m)”. The block of data, represents the house’s total electricity usage, is subjected to the following process performed by the system: For stages 1 - 3, represented by (1) - (3), the appliance labelled, say, 1 observation matrix “om1(i, 1)” – “om1(i, m)”, i = 1, 2, …, “n1 + m − 1”, where each “i” is compared to the above block of data, <italic>i</italic>.<italic>e</italic>., “dataTotal(1)” – “dataTotal(m)”. The system displays the results if, through the comparison process, it found similarities. For stages 4 - 7, represented by (1, 2) – (1, 2, 3), the appliance labelled, say, 1 observation matrix “om1(i, 1)” – “om1(i, m)”, i = 1, 2, …, “n1 + m − 1”, where each “i” is paired with the appliance labelled, say, 2 observation matrix “om2(h, 1)” – “om2(h, m)”, h = 1, 2, …, “n2 + m − 1”. The summing of the pairs is compared to the above block of data, <italic>i</italic>.<italic>e</italic>., “dataTotal(1)” – “dataTotal(m)”. The system displays the results if similarities are found.</p>
    </sec>
    <sec id="sec3">
      <title>3. Results</title>
      <fig id="fig1">
        <label>Figure 1</label>
        <graphic xlink:href="https://html.scirp.org/file/2860343-rId15.jpeg?20260424021104" />
      </fig>
      <p><bold>Figure 1</bold><bold>.</bold> Pentagon.</p>
      <p>The system, called <bold>Pentagon</bold> (refer to <xref ref-type="fig" rid="fig1">Figure 1</xref>), was developed to demonstrate the effectiveness of a “combinatorics” approach (an approach “unpopular” amongst some machine learning researchers) on a “specially designed” observation matrix that can be incorporated into the “SA<sup>2</sup>VING” application [<xref ref-type="bibr" rid="B1">1</xref>].</p>
      <p>The following are the assumptions used when developing the system:</p>
      <p>Household appliances are labelled “App1”, “App2”, and “App4”, where “App1” takes 35 minutes to complete its tasks (or switched “OFF” automatically), whilst “App2” takes 25 minutes. A washing machine is a good example of “App1” and “App2”. The duration for “App4” is not fixed; it can range from 1 minute to 60 minutes. An air-conditioner (or fan) is a good example of “App4”. After an appliance has completed its tasks (or switched “OFF”), a 30-minute “cooling” period is required before switching it “ON” again. Thus, avoid any “erratic” or “random” behaviour when switching appliances “ON”. “Simulated (electricity usage) data” for “App1”, “App2”, and “App4” are visualized graphically in <xref ref-type="fig" rid="fig2">Figures 2(a)-(c)</xref>, respectively, and are saved in the “observation matrix” database as exemplified by <xref ref-type="fig" rid="fig3">Figure 3(a)</xref> for “App1”. Note that for “App4”, due to none fixed duration, there are 60 observation matrices where the name of the file represents (or shows) how long “App4” is switched “ON”; for example, “App4Outcome_10.txt” means “App4” is switched “ON” for ten minutes, represented by “Obs(1)” - “Obs(10)”, refer to <xref ref-type="fig" rid="fig3">Figure 3(b)</xref>.</p>
      <fig id="fig2">
        <label>Figure 2</label>
        <graphic xlink:href="https://html.scirp.org/file/2860343-rId16.jpeg?20260424021103" />
      </fig>
      <p>(a)</p>
      <fig id="fig3">
        <label>Figure 3</label>
        <graphic xlink:href="https://html.scirp.org/file/2860343-rId17.jpeg?20260424021103" />
      </fig>
      <fig id="fig4">
        <label>Figure 4</label>
        <graphic xlink:href="https://html.scirp.org/file/2860343-rId18.jpeg?20260424021103" />
      </fig>
      <p>(b) (c)</p>
      <p><bold>Figure 2</bold><bold>.</bold> Simulated (electricity usage) data for (a) “App1”, (b) “App2”, and (c) “App4”.</p>
      <fig id="fig5">
        <label>Figure 5</label>
        <graphic xlink:href="https://html.scirp.org/file/2860343-rId19.jpeg?20260424021104" />
      </fig>
      <p>(a)</p>
      <fig id="fig6">
        <label>Figure 6</label>
        <graphic xlink:href="https://html.scirp.org/file/2860343-rId20.jpeg?20260424021104" />
      </fig>
      <p>(b)</p>
      <p><bold>Figure 3</bold><bold>.</bold> Observation matrix for (a) “App1” and (b) “App4”. Note that “App4” is switched “ON” for ten minutes.</p>
      <p><xref ref-type="fig" rid="fig4">Figure 4</xref> is a subsection of the combinatorics pane. It helps to create the appliance’s events, providing users with a hands-on experience. For example, if the user selects “App1” under “Appliances” and, under “Start”, “Hour”, and “Min”, set the hour and minute to 0 and 10, respectively, it means “App1” will start its operation at “(0:10)”. The user can choose between 0 and 23 for “Hour” and 0 and 59 for</p>
      <fig id="fig7">
        <label>Figure 7</label>
        <graphic xlink:href="https://html.scirp.org/file/2860343-rId21.jpeg?20260424021104" />
      </fig>
      <p><bold>Figure 4</bold><bold>.</bold> A subsection of the Pentagon’s combinatorics pane.</p>
      <p>“Minute”. “Hour” uses the 24-hour standard (<italic>i</italic>.<italic>e</italic>., “(13:00) = (1:00 pm)” and so forth). Click on the “Create Events” button. The “Clear Events” button performs the opposite. The inputs appear in the text box under the said button. Repeat the same process by selecting “App2”, but this time set the hour and minute to 0 and 15 or “(0:15)”, respectively. Note that, under “Finish”, “Hour”, and “Min” are disabled when the user selects “App1” and “App2”. For “App4”, set the hour and minute under “Start” to 0 and 5, respectively, and under “Finish” to 0 and 20, respectively. It means “App4” starts operation at “(0:5)” and finishes at “(0:20)”. <xref ref-type="fig" rid="fig5">Figure 5</xref> shows all the values entered. Note that each appliance could be switched “ON” more than once each day.</p>
      <fig id="fig8">
        <label>Figure 8</label>
        <graphic xlink:href="https://html.scirp.org/file/2860343-rId22.jpeg?20260424021104" />
      </fig>
      <p><bold>Figure 5</bold><bold>.</bold> The event’s text box displaying all the entered values.</p>
      <p>Click “Create Data”, and the table in the Combinatorics pane is updated as shown in <xref ref-type="fig" rid="fig6">Figure 6</xref>.</p>
      <fig id="fig9">
        <label>Figure 9</label>
        <graphic xlink:href="https://html.scirp.org/file/2860343-rId23.jpeg?20260424021104" />
      </fig>
      <p><bold>Figure 6</bold><bold>.</bold> The table showing all the data generated from the entered events.</p>
      <p>Click “Nilm(Real)”, and the system uses Combinatorics, observation matrix, and all the information stored in the database to split the “dataTotal” into “dataApp1”, “dataApp2”, and “dataApp4” (which is the system’s aim or goal). To understand how “Nilm(Real)” works, click “Nilm(Sim)” first, which uses “predefined” data input. The results appear in the table and in the text box under the said button, as shown in <xref ref-type="fig" rid="fig7">Figure 7</xref>. Note that, for each block, the results are divided into “(Input):”, “(Start:###)”, “(Finish:###)”, and “(Results):”. Refer to the following figures. The “(Start:###)” and “(Finish:###)” show how long the system takes to process the block involving at most seven stages. The seven stages are in the file “ThreeApps.txt” located in the folder “Appliances Events” and are mentioned in “Methods”.</p>
      <fig id="fig10">
        <label>Figure 10</label>
        <graphic xlink:href="https://html.scirp.org/file/2860343-rId24.jpeg?20260424021104" />
      </fig>
      <p><bold>Figure 7</bold><bold>.</bold> The text box displays the results when the user clicks the “Nilm(Real)” button.</p>
      <p>Click “Save” (located under the table) to save all of them (<italic>i</italic>.<italic>e</italic>., the results) in two files, namely “data.txt” and “results.txt”, in the folder “combinatorics”.</p>
      <p>The system provides (apart from the table) a visual presentation of the results in the “Graphs” pane. After selecting “data” and “block” from the drop-down list located near the top of the pane, click “Plot”, and graphs appear as shown by the following figures. The block descriptions are in the drop-down list located near the top of the pane. For example, the graphs show that “NILMdataApp1” fits “dataApp1” perfectly; refer to <xref ref-type="fig" rid="fig8">Figure 8(a)</xref> and <xref ref-type="fig" rid="fig8">Figure 8(b)</xref>. “dataApp2” and “dataApp4” show similar results; for the former, refer to <xref ref-type="fig" rid="fig8">Figure 8(c)</xref> and <xref ref-type="fig" rid="fig8">Figure 8(d)</xref>, and the latter, <xref ref-type="fig" rid="fig8">Figure 8(e)</xref>. The results are further verified and shown in <bold>Table 2</bold>. To facilitate comparison, the word “NILM” is added to the title (or name) of the data generated when the “NILM (Real)” button is clicked.</p>
    </sec>
    <sec id="sec4">
      <title>4. Discussion</title>
      <p>Referring to the previous section, the system, using a “simple” technique, namely combinatorics, on a specially designed observation matrix, manages to reveal hidden appliances and electricity usage for each detected appliance by dissecting the total electricity usage. Due to the combinatorial technique’s limitations, the</p>
      <fig id="fig11">
        <label>Figure 11</label>
        <graphic xlink:href="https://html.scirp.org/file/2860343-rId25.jpeg?20260424021105" />
      </fig>
      <fig id="fig12">
        <label>Figure 12</label>
        <graphic xlink:href="https://html.scirp.org/file/2860343-rId26.jpeg?20260424021105" />
      </fig>
      <p>(a) (b)</p>
      <fig id="fig13">
        <label>Figure 13</label>
        <graphic xlink:href="https://html.scirp.org/file/2860343-rId27.jpeg?20260424021104" />
      </fig>
      <fig id="fig14">
        <label>Figure 14</label>
        <graphic xlink:href="https://html.scirp.org/file/2860343-rId28.jpeg?20260424021104" />
      </fig>
      <p>(c) (d)</p>
      <fig id="fig15">
        <label>Figure 15</label>
        <graphic xlink:href="https://html.scirp.org/file/2860343-rId29.jpeg?20260424021104" />
      </fig>
      <p>(e)</p>
      <p><bold>Figure 8</bold><bold>.</bold> Pentagon’s Graphs pane displays the results graphically when the user clicks the “Nilm(Real)” button. Note that, for each “Block” and for comparison purposes, two graphs are plotted for “dataApp1”, “dataApp2”, and “dataApp4”.</p>
      <p><bold>Table 2</bold><bold>.</bold> The mean and standard deviation of errors are calculated for “dataApp1”, “dataApp2”, and “dataApp4”.</p>
      <table-wrap id="tbl2">
        <label>Table 2</label>
        <table>
          <tbody>
            <tr>
              <td>
              </td>
              <td>
                <italic>
                  <bold>Mean</bold>
                </italic>
              </td>
              <td>
                <italic>
                  <bold>Standard deviation</bold>
                </italic>
              </td>
            </tr>
            <tr>
              <td>“dataApp1”</td>
              <td>0.0</td>
              <td>0.0</td>
            </tr>
            <tr>
              <td>“dataApp2”</td>
              <td>0.0</td>
              <td>0.0</td>
            </tr>
            <tr>
              <td>“dataApp4”</td>
              <td>0.0</td>
              <td>0.0</td>
            </tr>
          </tbody>
        </table>
      </table-wrap>
      <p>processing time will increase (exponentially) if more than three appliances are added to its database. Grouping appliances and labeling them as “Others” to reduce the number of appliances involved will increase the complexity of creating the observation matrix. The collection of each appliance’s (electricity usage) data to create an observation matrix is done in the building itself. The process could also be done in the laboratory, where the appliances are identified or selected through marketing studies of famous brands. If an appliance, say, a fan, has three speeds and each has its own electricity usage signature, then the observation matrix should be created for each speed. The labeling should include, in addition to the appliance’s name, the speed as well. Some Pentagon features would be deleted if implemented in the field, for example, “Create Events”, “Clear Events” and “Create Data”. In its place, new features such as “Create Observation Matrix” and “Create (Experimental) Stages” are introduced. </p>
      <p>If the “cooling” period of 30 minutes, as mentioned in the previous section, is not included and to “capture” the erratic or random behaviour of a user when switching “ON” an appliance, then the observation matrix is modified in the following manner, where <bold>Table 1</bold> is used as an example:</p>
      <p><bold>Table 1</bold>’s first row is “expanded”, as shown in <bold>Table 3</bold>. It involves creating four rows where, in the first row, “Obs(5)” fills the first column, “0.0” fills the second to fourth columns, and “Obs(1)” fills the fifth column. In the second row, “Obs(5)” fills the first column, “0.0” fills the second to third columns, “Obs(1)” and “Obs(2)” fill the fourth and fifth columns, respectively. Repeat the above process for the third to fourth column, until finally “Obs(5)” fills the first column, “Obs(1)” - “Obs(4)” fill the second to fifth column.</p>
      <p><bold>Table 3</bold><bold>.</bold> The expansion of <bold>Table 1</bold>’s first row.</p>
      <table-wrap id="tbl3">
        <label>Table 3</label>
        <table>
          <tbody>
            <tr>
              <td>
                <italic>t</italic>
                (1)
              </td>
              <td>
                <italic>t</italic>
                (2)
              </td>
              <td>
                <italic>t</italic>
                (3)
              </td>
              <td>
                <italic>t</italic>
                (4)
              </td>
              <td>
                <italic>t</italic>
                (5)
              </td>
            </tr>
            <tr>
              <td>
                <italic>Obs</italic>
                (5)
              </td>
              <td>0.0</td>
              <td>0.0</td>
              <td>0.0</td>
              <td>
                <italic>Obs</italic>
                (1)
              </td>
            </tr>
            <tr>
              <td>
                <italic>Obs</italic>
                (5)
              </td>
              <td>0.0</td>
              <td>0.0</td>
              <td>
                <italic>Obs</italic>
                (1)
              </td>
              <td>
                <italic>Obs</italic>
                (2)
              </td>
            </tr>
            <tr>
              <td>
                <italic>Obs</italic>
                (5)
              </td>
              <td>0.0</td>
              <td>
                <italic>Obs</italic>
                (1)
              </td>
              <td>
                <italic>Obs</italic>
                (2)
              </td>
              <td>
                <italic>Obs</italic>
                (3)
              </td>
            </tr>
            <tr>
              <td>
                <italic>Obs</italic>
                (5)
              </td>
              <td>
                <italic>Obs</italic>
                (1)
              </td>
              <td>
                <italic>Obs</italic>
                (2)
              </td>
              <td>
                <italic>Obs</italic>
                (3)
              </td>
              <td>
                <italic>Obs</italic>
                (4)
              </td>
            </tr>
          </tbody>
        </table>
      </table-wrap>
      <p><bold>Table 1</bold>’s second through fourth rows are “expanded” using the same approach. All of them, including <bold>Table 1</bold>, are saved separately in the database.</p>
      <p>Note that the above modification is workable if the appliance’s duration, represented by the number of observations, equals or exceeds the number of time stamps. Further research is required for cases where the appliance’s duration, represented by the number of observations, is not fixed or less than the number of time stamps.</p>
      <p>Further research is also needed, especially if more than one appliance has the same electricity usage “signature”; for example, the building has two air conditioners with the same features, such as horsepower and brand. For this case, they should be given different “labels”. Although this action would make it easier to create the observation matrix, the results produced by both are the same. The system will not be able to give a definitive answer to which of the two is switched “ON”.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <title>References</title>
      <ref id="B1">
        <label>1.</label>
        <citation-alternatives>
          <mixed-citation publication-type="journal">Yusoff, M.I.M. (2024) Machine Learning: An Overview. <italic>Open Journal of Modelling and Simulation</italic>, 12, 89-99. https://doi.org/10.4236/ojmsi.2024.123006 <pub-id pub-id-type="doi">10.4236/ojmsi.2024.123006</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.4236/ojmsi.2024.123006">https://doi.org/10.4236/ojmsi.2024.123006</ext-link></mixed-citation>
          <element-citation publication-type="journal">
            <person-group person-group-type="author">
              <string-name>Yusoff, M.I.M.</string-name>
            </person-group>
            <year>2024</year>
            <article-title>Machine Learning: An Overview</article-title>
            <source>Open Journal of Modelling and Simulation</source>
            <volume>12</volume>
            <pub-id pub-id-type="doi">10.4236/ojmsi.2024.123006</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B2">
        <label>2.</label>
        <citation-alternatives>
          <mixed-citation publication-type="confproc">Rabiner, L.R. (1989) A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition. <italic>Proceedings of the IEEE</italic>, 77, 257-286. https://doi.org/10.1109/5.18626 <pub-id pub-id-type="doi">10.1109/5.18626</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/5.18626">https://doi.org/10.1109/5.18626</ext-link></mixed-citation>
          <element-citation publication-type="confproc">
            <person-group person-group-type="author">
              <string-name>Rabiner, L.R.</string-name>
            </person-group>
            <year>1989</year>
            <article-title>A Tutorial on Hidden Markov Models and Selected Applications in Speech Recognition</article-title>
            <source>Proceedings of the IEEE</source>
            <volume>77</volume>
            <pub-id pub-id-type="doi">10.1109/5.18626</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B3">
        <label>3.</label>
        <citation-alternatives>
          <mixed-citation publication-type="journal">Ghahramani, Z. and Jordan, M.I. (1997) Factorial Hidden Markov Models. <italic>Machine Learning</italic>, 29, 245-273. https://doi.org/10.1023/a:1007425814087 <pub-id pub-id-type="doi">10.1023/a:1007425814087</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1023/a:1007425814087">https://doi.org/10.1023/a:1007425814087</ext-link></mixed-citation>
          <element-citation publication-type="journal">
            <person-group person-group-type="author">
              <string-name>Ghahramani, Z.</string-name>
              <string-name>Jordan, M.I.</string-name>
            </person-group>
            <year>1997</year>
            <article-title>Factorial Hidden Markov Models</article-title>
            <source>Machine Learning</source>
            <volume>29</volume>
            <fpage>100742</fpage>
            <pub-id pub-id-type="doi">10.1023/a:1007425814087</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B4">
        <label>4.</label>
        <citation-alternatives>
          <mixed-citation publication-type="confproc">Kolter, J.Z. and Jaakkola, T. (2012) Approximate Inference in Additive Factorial HMMs with Application to Energy Disaggregation. <italic>International Conference on Artificial Intelligence and Statistics</italic>, La Palma, 21-23 April 2012, 1472-1482.</mixed-citation>
          <element-citation publication-type="confproc">
            <person-group person-group-type="author">
              <string-name>Kolter, J.Z.</string-name>
              <string-name>Jaakkola, T.</string-name>
              <string-name>Statistics, L</string-name>
            </person-group>
            <year>2012</year>
            <article-title>Approximate Inference in Additive Factorial HMMs with Application to Energy Disaggregation</article-title>
            <source>International Conference on Artificial Intelligence and Statistics</source>
            <volume>21</volume>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B5">
        <label>5.</label>
        <citation-alternatives>
          <mixed-citation publication-type="journal">Dempster, A.P., Laird, N.M. and Rubin, D.B. (1977) Maximum Likelihood from Incomplete Data via the EM Algorithm. <italic>Journal of the Royal Statistical Society Series B: Statistical Methodology</italic>, 39, 1-22. https://doi.org/10.1111/j.2517-6161.1977.tb01600.x <pub-id pub-id-type="doi">10.1111/j.2517-6161.1977.tb01600.x</pub-id><ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1111/j.2517-6161.1977.tb01600.x">https://doi.org/10.1111/j.2517-6161.1977.tb01600.x</ext-link></mixed-citation>
          <element-citation publication-type="journal">
            <person-group person-group-type="author">
              <string-name>Dempster, A.P.</string-name>
              <string-name>Laird, N.M.</string-name>
              <string-name>Rubin, D.B.</string-name>
            </person-group>
            <year>1977</year>
            <article-title>Maximum Likelihood from Incomplete Data via the EM Algorithm</article-title>
            <source>Journal of the Royal Statistical Society Series B: Statistical Methodology</source>
            <volume>39</volume>
            <pub-id pub-id-type="doi">10.1111/j.2517-6161.1977.tb01600.x</pub-id>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B6">
        <label>6.</label>
        <citation-alternatives>
          <mixed-citation publication-type="report">Bilmes, J.A. (1998) A Gentle Tutorial of the EM Algorithm and Its Application to Parameter Estimation for Gaussian Mixture and Hidden Markov Models. Technical Report, University of Berkeley, ICSI-TR-97-021. https://share.google/zmNEPysuvqbfdMZSf</mixed-citation>
          <element-citation publication-type="report">
            <person-group person-group-type="author">
              <string-name>Bilmes, J.A.</string-name>
              <string-name>Report, U</string-name>
              <string-name>Berkeley, I</string-name>
            </person-group>
            <year>1998</year>
            <article-title>A Gentle Tutorial of the EM Algorithm and Its Application to Parameter Estimation for Gaussian Mixture and Hidden Markov Models</article-title>
            <source>Technical Report</source>
          </element-citation>
        </citation-alternatives>
      </ref>
      <ref id="B7">
        <label>7.</label>
        <citation-alternatives>
          <mixed-citation publication-type="book">Navadi, W. (2011) Statistics for Engineers and Scientists. 3rd Edition, The McGraw-Hill Companies.</mixed-citation>
          <element-citation publication-type="book">
            <person-group person-group-type="author">
              <string-name>Navadi, W.</string-name>
              <string-name>Edition, T</string-name>
            </person-group>
            <year>2011</year>
            <article-title>Statistics for Engineers and Scientists</article-title>
            <source>3rd Edition</source>
          </element-citation>
        </citation-alternatives>
      </ref>
    </ref-list>
  </back>
</article>