Posted in

Mengevaluasi Model Pembelajaran Mesin Multi-Label untuk Lingkungan Rumah Pintar

Meskipun NoCodeGPT dirancang untuk membantu pengembang dengan pengetahuan terbatas tentang pengembangan perangkat lunak web, kami yakin ini juga dapat membantu pengembang yang lebih berpengalaman, terutama dalam aktivitas pembuatan prototipe atau saat mengimplementasikan Produk Minimum yang Layak (MVP). 4.6 Ancaman terhadap Validitas Hasil yang disajikan dalam bagian ini rentan terhadap dua ancaman utama terhadap validitas. Pertama, ukuran sampel terbatas dari 14 peserta yang merumuskan perintah untuk konstruksi aplikasi. Ada kemungkinan bahwa peserta ini tidak mewakili seluruh populasi pengguna yang bermaksud menggunakan ChatGPT untuk mendukung konstruksi perangkat lunak menyeluruh. Namun, peserta dengan profil dan tingkat pengalaman yang sama dengan P3 dari studi eksplorasi dipilih dengan cermat untuk mengurangi keterbatasan ini. Kedua, ForumApp dan TodoApp mungkin tidak mewakili spektrum penuh sistem yang dibangun dari awal oleh pengembang perangkat lunak. Namun, mereka mengikuti arsitektur umum (berbasis web, dengan komponen front-end dan back-end) dan menggunakan teknologi populer seperti TypeScript, Vue.js, dan SQLite, yang meningkatkan generalisasi temuan kami. 5 Pekerjaan Terkait Di bagian ini, kami membahas makalah-makalah terkini yang terkait dengan studi kami. Pertama, kami mengomentari makalah-makalah yang terkait dengan tujuan utama kami dalam menggunakan LLM untuk mendukung konstruksi perangkat lunak. Setelah itu, kami membahas makalah-makalah yang mengandalkan LLM untuk mengotomatiskan tugas-tugas pemeliharaan perangkat lunak, termasuk memperbaiki bug dan menulis pengujian. 5.1 Konstruksi Perangkat Lunak Peneliti dari Microsoft Research, GitHub, dan MIT melakukan eksperimen terkontrol dengan pengembang profesional yang diminta untuk mengimplementasikan server HTTP dalam JavaScript [ 12 ]. Kelompok perlakuan, yang memiliki akses ke GitHub Copilot, mampu menyelesaikan tugas yang diusulkan lebih cepat. Namun, kami mengklaim bahwa studi kami menggunakan aplikasi yang mencerminkan praktik pengembangan perangkat lunak saat ini. Misalnya, forum Tanya Jawab kami mencakup front-end (diimplementasikan dalam kerangka kerja yang banyak digunakan, Vue.js), API yang disediakan oleh back-end (dalam bentuk serangkaian titik akhir HTTP), dan basis data SQLite. Le dan Zhang mengevaluasi penggunaan ChatGPT dalam konteks yang sangat spesifik, yaitu, untuk mengimplementasikan parser secara otomatis untuk berkas log [ 13 ]. Dalam kumpulan data dengan ribuan berkas log, penulis melaporkan bahwa ChatGPT mencapai akurasi 71%, yaitu, pesan log yang dipulihkan dengan benar oleh parser yang dihasilkan oleh alat tersebut (dari prompt generik). White dan rekannya menggambarkan serangkaian 13 pola prompt untuk memecahkan berbagai macam masalah rekayasa perangkat lunak, dari desain sistem hingga implementasi dan pemeliharaan [ 14 ]. Namun, prompt ini lebih abstrak dan generik daripada yang kami gunakan dalam penelitian kami. Secara khusus, prompt kami bertujuan untuk menghasilkan perangkat lunak yang dapat digunakan dan dijalankan dari persyaratan berbasis agile (ditulis sebagai cerita pengguna). White dan rekannya juga mengusulkan enam pola prompt yang terkait dengan tugas pemeliharaan kode, evolusi, dan refactoring, yang berada di luar cakupan penelitian kami. Akhirnya, penting juga untuk menyebutkan bahwa dalam pekerjaan kami, kami tidak hanya mendefinisikan prompt tetapi juga menggunakannya dalam konteks dunia nyata untuk konstruksi perangkat lunak ujung ke ujung. Demikian pula, Sadik dan rekan-rekannya dari Honda Research Institute secara komprehensif menjelaskan berbagai aplikasi LLM dalam rekayasa perangkat lunak, termasuk pembuatan kode, dokumentasi, deteksi bug, dan refactoring [ 15 ]. Namun, mereka tidak menerapkan perintah mereka dalam konteks dunia nyata. Para peneliti dari Meta menjelaskan pesaing GitHub Copilot yang mereka kembangkan secara internal di perusahaan tersebut [ 16 ]. Selain menggambarkan desain dan implementasi sistem, yang disebut CodeCompose, para penulis menyajikan hasil mengenai penggunaan dan adopsi alat tersebut. Mereka menyimpulkan dengan menyebutkan bahwa "selain membantu dalam implementasi kode (penulisan), CodeCompose memperkenalkan efek positif lainnya, seperti mendorong pengembang untuk menghasilkan lebih banyak dokumentasi, membantu mereka menemukan API baru, dll." Nguyen dan Nadi mengevaluasi penggunaan GitHub Copilot pada kumpulan data masalah pemrograman (LeetCode) [ 10 ]. Koreksi respons yang dihasilkan oleh Copilot dinilai menggunakan rangkaian pengujian milik kumpulan data itu sendiri. Selain itu, penulis mengevaluasi metrik kualitas kode, seperti kompleksitas siklomatik. Mastropaolo dan rekannya menilai ketahanan kode yang dihasilkan oleh GitHub Copilot [ 17 ]. Perbandingan mereka melibatkan dua skenario: pembuatan kode dari komentar JavaDoc dan versi komentar tersebut yang dimodifikasi secara semantik. Dalam sampel 892 metode dari proyek Java, rekomendasi yang dihasilkan oleh ChatGPT berbeda dalam hampir setengah pengujian, yang menunjukkan sensitivitas alat tersebut terhadap perintah yang diberikan sebagai masukan. Dalam posting blog baru-baru ini, Guo mengeksplorasi kelebihan dan keterbatasan ChatGPT dalam tugas pemrograman yang kompleks [ 18 ]. Seperti dalam penelitian kami, ia menyoroti perlunya bimbingan manusia dan perlunya keahlian dan pendidikan sebelumnya dalam Rekayasa Perangkat Lunak untuk penggunaan alat yang efektif. Dakhel dan rekan-rekannya meneliti kemanjuran GitHub Copilot dalam menghasilkan solusi untuk masalah inti Ilmu Komputer [ 9 ]. Mereka membandingkan solusi Copilot dengan solusi yang dihasilkan oleh programmer manusia dan menemukan bahwa, sementara Copilot menghasilkan solusi untuk sebagian besar masalah, solusi tersebut menunjukkan lebih banyak bug dibandingkan dengan solusi manusia. 5.2 Pemeliharaan dan Pengujian Perangkat Lunak Sobani dan rekan-rekannya mengevaluasi kinerja ChatGPT dalam perbaikan bug, menggunakan kumpulan data yang umum digunakan dalam bidang ini (QuixBugs) [ 1 ]. Para penulis menyimpulkan bahwa kinerja sistem jauh lebih baik daripada pendekatan lain yang diusulkan dalam literatur. Secara khusus, ChatGPT mampu memperbaiki 31 dari 40 bug yang dievaluasi dalam penelitian tersebut. Di sisi lain, Siddiq dan rekan-rekannya melaporkan hasil yang kurang menjanjikan terkait penggunaan ChatGPT untuk mengimplementasikan pengujian unit [ 3 ]. Faktanya, dalam kumpulan data pertama, cakupan pernyataan dari pengujian yang dihasilkan secara otomatis bagus (80%). Namun, dalam kumpulan data kedua, hasilnya lebih buruk (cakupan hanya 2%). Para penulis juga melaporkan bahwa pengujian yang dihasilkan memiliki beberapa bau, seperti Duplicate Asserts dan Empty Tests. Asare, Nagappan, dan Asokan mengevaluasi apakah kode yang dihasilkan oleh GitHub Copilot memiliki kelemahan keamanan yang sama dengan kode yang ditulis oleh pengembang [ 19 ]. Kesimpulannya adalah bahwa dalam 33% kasus, Copilot pada dasarnya mereplikasi kerentanan yang ada dalam kumpulan data sistem C dan C++. Pearce dan rekannya mengeksplorasi implikasi keamanan dari kode yang dihasilkan oleh GitHub Copilot [ 20 ]. Para penulis mengevaluasi kinerja Copilot di tiga dimensi pembuatan kode, khususnya menilai kemampuannya dalam mengatasi berbagai kelemahan, perintah, dan domain. Analisis mereka mencakup 1.692 program yang dihasilkan oleh Copilot, mengungkapkan bahwa sekitar 40% di antaranya menunjukkan kerentanan. Insinyur perangkat lunak Meta melakukan studi dengan menggunakan alat TestGen-LLM [ 21 ]. Alat ini secara otomatis menyempurnakan pengujian yang telah ada sebelumnya yang ditulis manusia untuk platform Instagram dan Facebook menggunakan Model Bahasa. Hasilnya menunjukkan bahwa 11,5% dari semua kelas pengujian yang diperluas oleh TestGen-LLM memiliki pengujian yang lebih baik. Selain itu, 73% rekomendasi yang dihasilkan oleh TestGen-LLM diterima oleh insinyur perangkat lunak Meta untuk diimplementasikan di lingkungan produksi. Almeida et al. [ 8 ] mengeksplorasi penggunaan ChatGPT untuk membantu migrasi API. Khususnya, mereka menggunakan ChatGPT untuk memigrasikan aplikasi klien ke versi SQLAlchemy yang lebih baru, ORM Python yang populer. Tiga jenis prompt—Zero-Shot, One-Shot, dan Chain of Thoughts—dievaluasi, dengan One-Shot memberikan hasil terbaik. Dengan menggunakan jenis prompt ini, semua kolom berhasil dimigrasikan, dan aplikasi ditingkatkan untuk memanfaatkan fitur SQLAlchemy baru seperti asyncio dan pengetikan, sambil mempertahankan perilaku aslinya. Silva et al. [ 7 ] menilai efektivitas ChatGPT dalam mendeteksi code smells dalam proyek Java, dengan fokus pada Blob, Data Class, Feature Envy, dan Long Method di tiga tingkat keparahan. Dua prompt—yang generik dan yang spesifik—diuji, dengan hasil yang menunjukkan bahwa prompt spesifik meningkatkan akurasi sebanyak 2,54 kali. ChatGPT berkinerja lebih baik pada bau kritis (F-ukuran = 0,52) daripada bau minor (F-ukuran = 0,43). 6 Kesimpulan Model bahasa digunakan secara luas oleh para insinyur perangkat lunak. Oleh karena itu, dalam artikel ini, kami mulai dengan menyelidiki penggunaan ChatGPT untuk membuat aplikasi Web kecil oleh pengguna dengan pengalaman terbatas dalam pengembangan perangkat lunak. Kami menyimpulkan bahwa antarmuka GPT standar tidak dirancang khusus untuk menangani tugas ini. Karena alasan ini, kami mengusulkan, merancang, dan menerapkan antarmuka baru untuk menggunakan model bahasa, yang memberikan pengalaman yang lebih ramah pengguna untuk membangun aplikasi Web. Antarmuka baru ini, yang kami sebut NoCodeGPT, merangkum seluruh pertukaran perintah dengan model AI. Hasilnya, pengguna tidak perlu lagi menulis perintah yang terkait dengan teknologi dan pola arsitektur atau menyalin file ke folder lokal masing-masing. Kami juga melakukan eksperimen terkontrol dengan 14 siswa yang masih pemula dalam pengembangan Web. Hasilnya memberikan bukti yang meyakinkan bahwa alat yang diusulkan memang lebih unggul daripada antarmuka ChatGPT standar, membantu pengembang yang tidak berpengalaman membangun aplikasi Web kecil tanpa menulis kode. Misalnya, lebih dari separuh peserta (9 dari 14) berhasil menyelesaikan aplikasi yang diusulkan, sementara yang lain menyelesaikan setidaknya setengah dari cerita pengguna yang diusulkan. Saat ini, evolusi model AI berjalan dengan kecepatan yang mengagumkan, yang mungkin menimbulkan pertanyaan tentang keawetan wrapper seperti NoCodeGPT. Namun, kami yakin bahwa kontribusi utama kami adalah menunjukkan bahwa pengembangan perangkat lunak berbantuan AI memerlukan tugas-tugas mendasar tertentu, seperti mendefinisikan arsitektur, menyimpan file dalam direktori yang benar yang ditentukan oleh arsitektur tersebut, menjalankan sistem untuk pengujian, dan dengan cepat kembali ke versi sebelumnya jika terjadi halusinasi model. Masalah dan tugas ini tetap independen dari kemajuan model AI, memastikan bahwa masalah dan tugas tersebut akan terus relevan dalam pengembangan aplikasi perangkat lunak menyeluruh yang didukung oleh model bahasa. Sebagai pekerjaan di masa mendatang, kami bermaksud mengevaluasi penggunaan antarmuka kami dengan lebih banyak aplikasi dan lebih banyak pengembang. Kami juga berencana untuk membuatnya kompatibel dengan model bahasa lain, termasuk model sumber terbuka. Kami juga bermaksud untuk menyelidiki konstruksi jenis aplikasi baru, seperti aplikasi seluler. Terakhir, kami juga berencana untuk menyelidiki mekanisme lain untuk mengendalikan dan mencegah halusinasi selain mekanisme rollback yang saat ini diterapkan oleh NoCodeGPT.
Meskipun NoCodeGPT dirancang untuk membantu pengembang dengan pengetahuan terbatas tentang pengembangan perangkat lunak web, kami yakin ini juga dapat membantu pengembang yang lebih berpengalaman, terutama dalam aktivitas pembuatan prototipe atau saat mengimplementasikan Produk Minimum yang Layak (MVP). 4.6 Ancaman terhadap Validitas Hasil yang disajikan dalam bagian ini rentan terhadap dua ancaman utama terhadap validitas. Pertama, ukuran sampel terbatas dari 14 peserta yang merumuskan perintah untuk konstruksi aplikasi. Ada kemungkinan bahwa peserta ini tidak mewakili seluruh populasi pengguna yang bermaksud menggunakan ChatGPT untuk mendukung konstruksi perangkat lunak menyeluruh. Namun, peserta dengan profil dan tingkat pengalaman yang sama dengan P3 dari studi eksplorasi dipilih dengan cermat untuk mengurangi keterbatasan ini. Kedua, ForumApp dan TodoApp mungkin tidak mewakili spektrum penuh sistem yang dibangun dari awal oleh pengembang perangkat lunak. Namun, mereka mengikuti arsitektur umum (berbasis web, dengan komponen front-end dan back-end) dan menggunakan teknologi populer seperti TypeScript, Vue.js, dan SQLite, yang meningkatkan generalisasi temuan kami. 5 Pekerjaan Terkait Di bagian ini, kami membahas makalah-makalah terkini yang terkait dengan studi kami. Pertama, kami mengomentari makalah-makalah yang terkait dengan tujuan utama kami dalam menggunakan LLM untuk mendukung konstruksi perangkat lunak. Setelah itu, kami membahas makalah-makalah yang mengandalkan LLM untuk mengotomatiskan tugas-tugas pemeliharaan perangkat lunak, termasuk memperbaiki bug dan menulis pengujian. 5.1 Konstruksi Perangkat Lunak Peneliti dari Microsoft Research, GitHub, dan MIT melakukan eksperimen terkontrol dengan pengembang profesional yang diminta untuk mengimplementasikan server HTTP dalam JavaScript [ 12 ]. Kelompok perlakuan, yang memiliki akses ke GitHub Copilot, mampu menyelesaikan tugas yang diusulkan lebih cepat. Namun, kami mengklaim bahwa studi kami menggunakan aplikasi yang mencerminkan praktik pengembangan perangkat lunak saat ini. Misalnya, forum Tanya Jawab kami mencakup front-end (diimplementasikan dalam kerangka kerja yang banyak digunakan, Vue.js), API yang disediakan oleh back-end (dalam bentuk serangkaian titik akhir HTTP), dan basis data SQLite. Le dan Zhang mengevaluasi penggunaan ChatGPT dalam konteks yang sangat spesifik, yaitu, untuk mengimplementasikan parser secara otomatis untuk berkas log [ 13 ]. Dalam kumpulan data dengan ribuan berkas log, penulis melaporkan bahwa ChatGPT mencapai akurasi 71%, yaitu, pesan log yang dipulihkan dengan benar oleh parser yang dihasilkan oleh alat tersebut (dari prompt generik). White dan rekannya menggambarkan serangkaian 13 pola prompt untuk memecahkan berbagai macam masalah rekayasa perangkat lunak, dari desain sistem hingga implementasi dan pemeliharaan [ 14 ]. Namun, prompt ini lebih abstrak dan generik daripada yang kami gunakan dalam penelitian kami. Secara khusus, prompt kami bertujuan untuk menghasilkan perangkat lunak yang dapat digunakan dan dijalankan dari persyaratan berbasis agile (ditulis sebagai cerita pengguna). White dan rekannya juga mengusulkan enam pola prompt yang terkait dengan tugas pemeliharaan kode, evolusi, dan refactoring, yang berada di luar cakupan penelitian kami. Akhirnya, penting juga untuk menyebutkan bahwa dalam pekerjaan kami, kami tidak hanya mendefinisikan prompt tetapi juga menggunakannya dalam konteks dunia nyata untuk konstruksi perangkat lunak ujung ke ujung. Demikian pula, Sadik dan rekan-rekannya dari Honda Research Institute secara komprehensif menjelaskan berbagai aplikasi LLM dalam rekayasa perangkat lunak, termasuk pembuatan kode, dokumentasi, deteksi bug, dan refactoring [ 15 ]. Namun, mereka tidak menerapkan perintah mereka dalam konteks dunia nyata. Para peneliti dari Meta menjelaskan pesaing GitHub Copilot yang mereka kembangkan secara internal di perusahaan tersebut [ 16 ]. Selain menggambarkan desain dan implementasi sistem, yang disebut CodeCompose, para penulis menyajikan hasil mengenai penggunaan dan adopsi alat tersebut. Mereka menyimpulkan dengan menyebutkan bahwa "selain membantu dalam implementasi kode (penulisan), CodeCompose memperkenalkan efek positif lainnya, seperti mendorong pengembang untuk menghasilkan lebih banyak dokumentasi, membantu mereka menemukan API baru, dll." Nguyen dan Nadi mengevaluasi penggunaan GitHub Copilot pada kumpulan data masalah pemrograman (LeetCode) [ 10 ]. Koreksi respons yang dihasilkan oleh Copilot dinilai menggunakan rangkaian pengujian milik kumpulan data itu sendiri. Selain itu, penulis mengevaluasi metrik kualitas kode, seperti kompleksitas siklomatik. Mastropaolo dan rekannya menilai ketahanan kode yang dihasilkan oleh GitHub Copilot [ 17 ]. Perbandingan mereka melibatkan dua skenario: pembuatan kode dari komentar JavaDoc dan versi komentar tersebut yang dimodifikasi secara semantik. Dalam sampel 892 metode dari proyek Java, rekomendasi yang dihasilkan oleh ChatGPT berbeda dalam hampir setengah pengujian, yang menunjukkan sensitivitas alat tersebut terhadap perintah yang diberikan sebagai masukan. Dalam posting blog baru-baru ini, Guo mengeksplorasi kelebihan dan keterbatasan ChatGPT dalam tugas pemrograman yang kompleks [ 18 ]. Seperti dalam penelitian kami, ia menyoroti perlunya bimbingan manusia dan perlunya keahlian dan pendidikan sebelumnya dalam Rekayasa Perangkat Lunak untuk penggunaan alat yang efektif. Dakhel dan rekan-rekannya meneliti kemanjuran GitHub Copilot dalam menghasilkan solusi untuk masalah inti Ilmu Komputer [ 9 ]. Mereka membandingkan solusi Copilot dengan solusi yang dihasilkan oleh programmer manusia dan menemukan bahwa, sementara Copilot menghasilkan solusi untuk sebagian besar masalah, solusi tersebut menunjukkan lebih banyak bug dibandingkan dengan solusi manusia. 5.2 Pemeliharaan dan Pengujian Perangkat Lunak Sobani dan rekan-rekannya mengevaluasi kinerja ChatGPT dalam perbaikan bug, menggunakan kumpulan data yang umum digunakan dalam bidang ini (QuixBugs) [ 1 ]. Para penulis menyimpulkan bahwa kinerja sistem jauh lebih baik daripada pendekatan lain yang diusulkan dalam literatur. Secara khusus, ChatGPT mampu memperbaiki 31 dari 40 bug yang dievaluasi dalam penelitian tersebut. Di sisi lain, Siddiq dan rekan-rekannya melaporkan hasil yang kurang menjanjikan terkait penggunaan ChatGPT untuk mengimplementasikan pengujian unit [ 3 ]. Faktanya, dalam kumpulan data pertama, cakupan pernyataan dari pengujian yang dihasilkan secara otomatis bagus (80%). Namun, dalam kumpulan data kedua, hasilnya lebih buruk (cakupan hanya 2%). Para penulis juga melaporkan bahwa pengujian yang dihasilkan memiliki beberapa bau, seperti Duplicate Asserts dan Empty Tests. Asare, Nagappan, dan Asokan mengevaluasi apakah kode yang dihasilkan oleh GitHub Copilot memiliki kelemahan keamanan yang sama dengan kode yang ditulis oleh pengembang [ 19 ]. Kesimpulannya adalah bahwa dalam 33% kasus, Copilot pada dasarnya mereplikasi kerentanan yang ada dalam kumpulan data sistem C dan C++. Pearce dan rekannya mengeksplorasi implikasi keamanan dari kode yang dihasilkan oleh GitHub Copilot [ 20 ]. Para penulis mengevaluasi kinerja Copilot di tiga dimensi pembuatan kode, khususnya menilai kemampuannya dalam mengatasi berbagai kelemahan, perintah, dan domain. Analisis mereka mencakup 1.692 program yang dihasilkan oleh Copilot, mengungkapkan bahwa sekitar 40% di antaranya menunjukkan kerentanan. Insinyur perangkat lunak Meta melakukan studi dengan menggunakan alat TestGen-LLM [ 21 ]. Alat ini secara otomatis menyempurnakan pengujian yang telah ada sebelumnya yang ditulis manusia untuk platform Instagram dan Facebook menggunakan Model Bahasa. Hasilnya menunjukkan bahwa 11,5% dari semua kelas pengujian yang diperluas oleh TestGen-LLM memiliki pengujian yang lebih baik. Selain itu, 73% rekomendasi yang dihasilkan oleh TestGen-LLM diterima oleh insinyur perangkat lunak Meta untuk diimplementasikan di lingkungan produksi. Almeida et al. [ 8 ] mengeksplorasi penggunaan ChatGPT untuk membantu migrasi API. Khususnya, mereka menggunakan ChatGPT untuk memigrasikan aplikasi klien ke versi SQLAlchemy yang lebih baru, ORM Python yang populer. Tiga jenis prompt—Zero-Shot, One-Shot, dan Chain of Thoughts—dievaluasi, dengan One-Shot memberikan hasil terbaik. Dengan menggunakan jenis prompt ini, semua kolom berhasil dimigrasikan, dan aplikasi ditingkatkan untuk memanfaatkan fitur SQLAlchemy baru seperti asyncio dan pengetikan, sambil mempertahankan perilaku aslinya. Silva et al. [ 7 ] menilai efektivitas ChatGPT dalam mendeteksi code smells dalam proyek Java, dengan fokus pada Blob, Data Class, Feature Envy, dan Long Method di tiga tingkat keparahan. Dua prompt—yang generik dan yang spesifik—diuji, dengan hasil yang menunjukkan bahwa prompt spesifik meningkatkan akurasi sebanyak 2,54 kali. ChatGPT berkinerja lebih baik pada bau kritis (F-ukuran = 0,52) daripada bau minor (F-ukuran = 0,43). 6 Kesimpulan Model bahasa digunakan secara luas oleh para insinyur perangkat lunak. Oleh karena itu, dalam artikel ini, kami mulai dengan menyelidiki penggunaan ChatGPT untuk membuat aplikasi Web kecil oleh pengguna dengan pengalaman terbatas dalam pengembangan perangkat lunak. Kami menyimpulkan bahwa antarmuka GPT standar tidak dirancang khusus untuk menangani tugas ini. Karena alasan ini, kami mengusulkan, merancang, dan menerapkan antarmuka baru untuk menggunakan model bahasa, yang memberikan pengalaman yang lebih ramah pengguna untuk membangun aplikasi Web. Antarmuka baru ini, yang kami sebut NoCodeGPT, merangkum seluruh pertukaran perintah dengan model AI. Hasilnya, pengguna tidak perlu lagi menulis perintah yang terkait dengan teknologi dan pola arsitektur atau menyalin file ke folder lokal masing-masing. Kami juga melakukan eksperimen terkontrol dengan 14 siswa yang masih pemula dalam pengembangan Web. Hasilnya memberikan bukti yang meyakinkan bahwa alat yang diusulkan memang lebih unggul daripada antarmuka ChatGPT standar, membantu pengembang yang tidak berpengalaman membangun aplikasi Web kecil tanpa menulis kode. Misalnya, lebih dari separuh peserta (9 dari 14) berhasil menyelesaikan aplikasi yang diusulkan, sementara yang lain menyelesaikan setidaknya setengah dari cerita pengguna yang diusulkan. Saat ini, evolusi model AI berjalan dengan kecepatan yang mengagumkan, yang mungkin menimbulkan pertanyaan tentang keawetan wrapper seperti NoCodeGPT. Namun, kami yakin bahwa kontribusi utama kami adalah menunjukkan bahwa pengembangan perangkat lunak berbantuan AI memerlukan tugas-tugas mendasar tertentu, seperti mendefinisikan arsitektur, menyimpan file dalam direktori yang benar yang ditentukan oleh arsitektur tersebut, menjalankan sistem untuk pengujian, dan dengan cepat kembali ke versi sebelumnya jika terjadi halusinasi model. Masalah dan tugas ini tetap independen dari kemajuan model AI, memastikan bahwa masalah dan tugas tersebut akan terus relevan dalam pengembangan aplikasi perangkat lunak menyeluruh yang didukung oleh model bahasa. Sebagai pekerjaan di masa mendatang, kami bermaksud mengevaluasi penggunaan antarmuka kami dengan lebih banyak aplikasi dan lebih banyak pengembang. Kami juga berencana untuk membuatnya kompatibel dengan model bahasa lain, termasuk model sumber terbuka. Kami juga bermaksud untuk menyelidiki konstruksi jenis aplikasi baru, seperti aplikasi seluler. Terakhir, kami juga berencana untuk menyelidiki mekanisme lain untuk mengendalikan dan mencegah halusinasi selain mekanisme rollback yang saat ini diterapkan oleh NoCodeGPT.

ABSTRAK
Konteks
Perangkat rumah pintar semakin populer di rumah tangga modern, didukung oleh kemajuan Internet of Things (IoT). Data yang dihasilkan oleh perangkat pintar dapat memberikan wawasan berharga tentang perilaku dan preferensi pengguna. Dengan menganalisis data, seseorang dapat memahami bagaimana orang berinteraksi dengan rumah mereka, sehingga menciptakan “profil rumah pintar”. Untuk memahami dinamika ekosistem IoT yang lengkap dari lingkungan yang cerdas, penting untuk belajar dari setiap perangkat IoT untuk memprediksi statusnya di masa mendatang. Namun demikian, menangani struktur data IoT di dunia nyata memerlukan tugas praproses yang cukup besar dan penggunaan pengklasifikasi yang dapat mempelajari beberapa masukan IoT dari satu pesan IoT.

Tujuan
Menyadari tantangan ini, makalah ini mengusulkan metodologi baru untuk memproses data IoT multi-label dan memberikan perbandingan komprehensif pengklasifikasi multi-label untuk memperkirakan status perangkat pintar, dengan mempertimbangkan efisiensi dan keakuratannya.

Metode
Kami mengusulkan metode transformasi data untuk melakukan praproses data IoT yang akan digunakan oleh pengklasifikasi multilabel. Metode ini didasarkan pada struktur data nyata.

Hasil
Kami mengevaluasi proposal kami dalam dua skenario dunia nyata dan berbagai pengklasifikasi multilabel. Temuan yang menjanjikan menunjukkan bahwa pengklasifikasi yang efisien dapat menghasilkan banyak prediksi yang benar untuk ekosistem IoT yang komprehensif dalam sepersekian detik.

Kesimpulan
Transformasi data yang kami usulkan dapat sesuai dengan konteks prediksi rumah pintar dan bekerja dengan pengklasifikasi multi-label untuk memahami perilaku pengguna.

1 Pendahuluan
Konsep rumah pintar telah mengalami pertumbuhan yang signifikan selama beberapa dekade terakhir, mengubah preferensi konsumen dan kebutuhan akan kenyamanan, efisiensi, dan keamanan di lingkungan hunian [ 1 – 4 ]. Rumah pintar dan Internet of Things (IoT) saling berhubungan erat, dengan teknologi IoT sebagai tulang punggung ekosistem rumah pintar. Di rumah pintar, perangkat seperti termostat, lampu, kamera keamanan, kunci pintu, dan peralatan terhubung ke Internet melalui teknologi IoT. Konektivitas ini memungkinkan perangkat ini untuk berkomunikasi, berbagi data, dan mengoordinasikan tindakan untuk mengotomatiskan dan mengoptimalkan fungsi rumah.

Sistem Rumah Pintar Cerdas atau Otomasi Cerdas lebih unggul dalam otomasi tradisional dengan berfokus pada proses pengambilan keputusan. Sistem ini memanfaatkan kecerdasan buatan (AI) untuk mempelajari dan mengoptimalkan alur kerja secara efisien. Sementara otomasi dianggap dapat melakukan tugas dengan bantuan manusia yang lebih sedikit, otomasi cerdas dapat belajar mengotomatiskan tugas melalui kemampuan pengambilan keputusan kognitif tanpa partisipasi manusia yang diharapkan. Misalnya, sistem pencahayaan cerdas dapat menyesuaikan tingkat kecerahan sesuai dengan kondisi cahaya alami dan kebiasaan pengguna.

Algoritma pembelajaran mesin dapat digunakan untuk memprediksi tindakan perangkat IoT di masa mendatang berdasarkan data historis. Beberapa algoritma pembelajaran mesin standar yang digunakan untuk prediksi meliputi random forest, regresi linier, pohon keputusan, dan jaringan saraf. Model-model ini dapat menangani data terstruktur dan tidak terstruktur untuk membuat prediksi yang akurat. Klasifikasi dan regresi adalah tugas pembelajaran mesin, tetapi keduanya berbeda dalam hal keluaran. Klasifikasi memperkirakan label atau kategori diskrit, sedangkan regresi memprediksi nilai numerik kontinu. Misalnya, jika kita ingin membuat model untuk mengklasifikasikan status perangkat pintar, kelas atau labelnya dapat berupa “diaktifkan”, “dinonaktifkan”, “dingin”, “panas”, dan seterusnya. Jika kita membangun model untuk melakukan regresi pada perangkat pintar, nilai yang tepat dapat berupa “intensitas terang:100”, “volume:23”, “suhu:20”, “kunci pintu:0”, dan seterusnya.

Regresi secara luas digunakan dalam state-of-the-art, terutama dalam studi tentang penghematan energi dan masalah terkait [ 1 , 5 – 8 ]. Dalam studi ini, Decision Trees, Random Forest Extra Trees, Gradient-Boosting, atau Hist Gradient-Boosting regressor memprediksi nilai optimal untuk properti rumah pintar tertentu. Meskipun algoritma klasifikasi lebih sedikit tetapi juga banyak digunakan, beberapa studi menggunakan pengklasifikasi multi-label untuk tugas prediksi rumah pintar. Perlu disebutkan bahwa pengklasifikasi multi-label berbeda dari pengklasifikasi multi-kelas. Perbedaan antara multi-kelas dan multi-label mengacu pada berapa banyak label yang dapat ditandai dengan input. Dengan klasifikasi multi-kelas, model hanya mengembalikan satu label yang diprediksi, yang satu ini saling eksklusif dari yang lain. Dengan multi-label, model dapat mengembalikan dua label atau lebih jika relevan. Itulah alasan mengapa studi ini berfokus pada pengklasifikasi multi-label. Output IoT dunia nyata biasanya membawa beberapa informasi data dalam satu pesan. Dalam tugas prediksi, beberapa output perkiraan akan dituntut.

Artikel ini mengusulkan metodologi baru untuk memproses data IoT multilabel dan membandingkan efisiensi dan akurasi pengklasifikasi multilabel dalam konteks rumah pintar. Untuk mencapai perbandingan ini, seluruh praproses data mentah dilakukan terlebih dahulu. Oleh karena itu, tujuan pertama adalah memulihkan data perangkat pintar dari lingkungan rumah. Kedua, kita perlu memahami bagaimana data ini dapat diubah dan dimodelkan dengan cara yang dapat digunakan oleh algoritme pembelajaran mesin. Ketiga, dari sekian banyak algoritme pembelajaran mesin, perlu ditemukan algoritme yang dapat digunakan dalam domain rumah pintar yang sebenarnya.

Artikel ini disusun sebagai berikut: Bagian 2 memperkenalkan landasan teori artikel; Bagian 3 menyajikan karya-karya terkait; Bagian 4 menggambarkan seluruh proses pemrosesan data sebelum perbandingan klasifikasi; Bagian 5 menggambarkan pengaturan eksperimen lengkap; Bagian 6 menunjukkan hasil dan membahas temuan-temuan; Bagian 7 menyimpulkan makalah kami, yang terdiri dari penelitian dan menunjukkan arah masa depan.

2 Latar Belakang
Bagian ini menyajikan latar belakang konseptual yang mendukung teori di balik pendekatan tersebut.

2.1 Internet untuk Segala (IoT)
Menurut [ 9 ], IoT adalah paradigma komputasi yang mengintegrasikan berbagai sistem heterogen dan mempromosikan koneksi data, orang, objek, dan aplikasi melalui protokol Internet. Pengumpulan data dari perangkat IoT memungkinkan untuk membangun berbagai aplikasi dengan potensi untuk meningkatkan fungsionalitas menggunakan berbagai teknik komputasi, seperti AI dan analitik.

Munculnya istilah IoT terjadi pada tahun 1999 di laboratorium MIT (Massachusetts Institute of Technology) melalui penelitian Radio-Frequency Identification (RFID) [ 10 ]. Menurut [ 11 ], ide utama di balik Auto-ID adalah untuk mengusulkan infrastruktur komputer standar yang memungkinkan identifikasi objek otomatis menggunakan RFID dan melacaknya saat bergerak (yaitu, keterlacakan, lokasi saat ini, dan kesadaran status).

Sejak munculnya IoT, beberapa penulis telah mengaitkan definisi yang berbeda. Khodadadi et al. [ 12 ] mendefinisikan bahwa IoT berfokus terutama pada konektivitas, di mana perangkat harus terus-menerus terhubung ke Internet. Pernyataan ini menjelaskan persyaratan IoT yang penting. Definisi lain menyoroti perlunya jaringan di mana-mana dan otonom, di mana aturan dasar paradigma tersebut adalah identifikasi dan integrasi layanan. Misalnya, definisi Internet of Everything (IOE) menekankan perlunya ini. Istilah ini secara luas digunakan oleh Cisco untuk merujuk pada orang, benda, dan tempat yang terhubung ke Internet global [ 13 ]. Akhirnya, beberapa definisi berfokus pada jaringan otonom dan berpusat pada aplikasi akhir, seperti yang dinyatakan oleh [ 14 ], yang mendefinisikan IoT sebagai paradigma yang menyajikan tingkat tinggi penangkapan data otonom, konektivitas, interoperabilitas, mobilitas, dan transfer peristiwa. Bagi para penulis, IoT terkait dengan otonomi jaringan dan karakteristik konektivitas, pervasif, dan di mana-mana.

Selain itu, [ 15 ] menyatakan bahwa IoT menggunakan serangkaian teknologi, seperti: Jaringan sensor nirkabel, IPv6, komputasi awan dan kabut, dan komputasi di mana-mana, antara lain. Ada berbagai macam kerangka kerja untuk membangun ekosistem IoT. Keadaan terkini mengusulkan arsitektur, platform, dan alat pengembangan. Para penulis juga menyebutkan bahwa meskipun ada keragaman ini, metodologi yang diungkapkan tetap sama. Layanan IoT biasanya memperoleh data mentah dari sensor yang tersebar di lingkungan dan mengubahnya menjadi aplikasi untuk berbagai penggunaan melalui pengumpulan data besar-besaran.

Di rumah pintar, terdapat dua perangkat: sensor dan aktuator. Gambar 1 memberikan contoh beberapa perangkat IoT. Sensor mendeteksi informasi tentang lingkungan dan pengguna rumah. Beberapa contoh sensor di rumah pintar meliputi sensor gerak, sensor kehadiran, sensor suhu, sensor kelembapan, sensor cahaya, dan sensor kualitas udara. Sensor membantu memantau lingkungan internal dan eksternal rumah, serta mendeteksi kehadiran orang atau hewan. Sensor bertanggung jawab untuk mengamati lingkungan dan memeriksa variabel eksternal sistem rumah pintar (seperti suhu dan kelembapan) dan perilaku pengguna di dalamnya. Di sisi lain, aktuator adalah perangkat yang melakukan tindakan berdasarkan sinyal yang diterima dari pengguna rumah dan beberapa sistem yang digunakan untuk mengendalikannya. Aktuator bertanggung jawab untuk mengubah sinyal kontrol menjadi perubahan di lingkungan fisik. Beberapa contoh aktuator di rumah pintar meliputi sakelar lampu, bohlam lampu, kunci elektronik, termostat, AC, dan sistem suara. Aktuator ini juga dapat dikontrol dari jarak jauh, sehingga pengguna rumah dapat dengan mudah mengontrol pencahayaan, suhu, dan aspek lain di rumah.

GAMBAR 1
Contoh perangkat sensor dan aktuator pintar.

IoT cukup luas untuk memungkinkan penggunaannya dalam banyak aplikasi. Aplikasi ini dapat diklasifikasikan ke dalam domain, dan tergantung pada domainnya, sebuah “benda” (perangkat IoT) dapat dipersepsikan secara berbeda. Misalnya, dalam industri pintar, benda tersebut dapat berupa produk atau peralatan seperti robot pengiriman atau robot pengorganisasian kotak; dalam lingkungan pintar, benda tersebut dapat merujuk pada lampu, colokan, atau loker; dalam perawatan kesehatan, benda tersebut dapat berupa perangkat yang mengumpulkan informasi pasien seperti detektor jatuh, detak jantung, di antara berbagai aplikasi lainnya. Berdasarkan karya terkait [ 9 , 16 , 17 ], berikut ini, kami menjelaskan beberapa domain aplikasi (Pasar Vertikal IoT [ 18 ]):

  • Lingkungan Cerdas : Perangkat IoT dapat memberikan informasi tentang suhu, kelembapan, kebisingan, dan lainnya menggunakan sensor dan aktuator yang didistribusikan di gedung, rumah, atau kantor. Misalnya, menyesuaikan suhu secara otomatis untuk meningkatkan tingkat kenyamanan. Selain itu, insiden dapat dicegah melalui sistem pemantauan dan alarm perumahan/perusahaan.
  • Aplikasi Sosial : Perangkat IoT dapat mendeteksi dan menganalisis aktivitas manusia dengan informasi kontekstual untuk memicu prosedur baru, seperti pesan otomatis, pembaruan konten otomatis di jejaring sosial, dan integrasi dengan layanan riwayat aktivitas. Selain itu, memahami dan menggunakan pola pribadi memungkinkan integrasi dengan domain lain, seperti inisiatif lingkungan cerdas, seperti membuka pintu garasi atau menyesuaikan suhu rumah beberapa saat sebelum penghuni datang.

Untuk [ 7 , 19 ], beberapa tantangan utama di bidang IoT terkait dengan pengumpulan data besar-besaran, skalabilitas dan keragaman, persyaratan keamanan, peningkatan konsumsi energi, big data (Data Collection and Analysis-DCA), toleransi kesalahan, dan analitik. Tantangan-tantangan ini sedang dianalisis dan dikembangkan di dunia akademis dan industri untuk mendorong integrasi teknologi yang lebih baik.

2.2 Rumah Pintar
Konsep rumah pintar telah berkembang dari waktu ke waktu, dan kemajuan teknologi serta perubahan kebutuhan telah membentuk definisinya. Ide rumah otomatis dan terhubung berakar pada dekade 70-an, tetapi istilah “rumah pintar” mulai populer pada akhir abad ke-20.

Rumah pintar adalah aplikasi yang mencakup berbagai teknologi dan bidang penelitian, yang secara umum didefinisikan sebagai bentuk komputasi di mana-mana yang menggabungkan berbagai teknologi secara mulus ke dalam kehidupan sehari-hari tanpa disadari oleh pengguna [ 20 ]. Konsep ini juga terintegrasi dengan IoT, memanfaatkan interkoneksi perangkat seperti kamera, TV, telepon pintar, sensor, dan perangkat yang dapat dikenakan seperti jam tangan dan gelang. Dengan memanfaatkan IoT, rumah pintar menciptakan jaringan yang memungkinkan pemantauan dan pengambilan data secara real-time, yang berkontribusi pada pemahaman yang lebih baik tentang lingkungan.

Definisi rumah pintar dikemukakan oleh [ 21 ], yang mengemukakan salah satu aspek terpenting dari rumah yang benar-benar cerdas: kemampuan untuk beradaptasi guna memenuhi kebutuhan penghuninya. Baginya, rumah pintar adalah lingkungan hunian yang cukup cerdas untuk membantu penghuninya hidup mandiri dan nyaman dengan bantuan teknologi. Hal ini disebut sebagai rumah pintar. Interkoneksi antara semua perangkat mekanis dan digital dalam rumah pintar membentuk jaringan yang dapat berkomunikasi satu sama lain dan pengguna untuk menciptakan ruang interaktif.

Rumah pintar menawarkan kontrol dan fungsionalitas melalui pemantauan dan antarmuka sensor. Perangkat tersebut beroperasi dalam sistem berlapis, menghubungkan fitur-fitur teknologi untuk meningkatkan penyampaian dan kinerja layanan. Perangkat tersebut mengintegrasikan energi, sistem informasi digital, IoT, berbagi data, dan infrastruktur non-digital. Pada akhirnya, perangkat tersebut dapat memberdayakan pengguna dengan memungkinkan mereka mengubah perilaku atau melakukan hal-hal yang sebelumnya tidak dapat mereka lakukan [ 22 ].

Survei yang dilakukan di Inggris oleh [ 22 ] mengidentifikasi 267 teknologi berbeda yang tersedia di pasaran, didistribusikan ke 13 kategori, seperti pencahayaan, energi, hiburan, kesehatan, keamanan, monitor untuk bayi dan hewan peliharaan, pakaian, kendaraan, robot rumah tangga, berkebun, solusi terintegrasi, dan lainnya. Mengingat berbagai pilihan ini, para peneliti memperhatikan bahwa perangkat tersebut tidak menghadirkan tingkat kecerdasan yang sama saat diterapkan di rumah pintar. Mereka mengusulkan tujuh tingkat kategorisasi kecerdasan untuk rumah pintar, seperti yang diilustrasikan dalam Gambar 2 .

GAMBAR 2
Tingkat kecerdasan dengan teknologi rumah pintar.

Mengingat kategorisasi yang disajikan oleh [ 22 ], proposal kami terletak antara level 3 dan 4.

2.3 Klasifikasi Pembelajaran Mesin Multi-Label
Perangkat IoT dapat mengeluarkan data heterogen tergantung pada pabrikannya. Pabrikan yang berbeda merancang perangkat IoT dengan spesifikasi, protokol, dan format data yang unik. Tidak biasa menemukan karya yang membahas data dunia nyata atau yang serupa dalam literatur ilmiah. Biasanya, karya terkait [ 5 , 23 , 24 ] membahas data make-up untuk menggambarkan perilaku perangkat pintar dalam bentuk yang lebih sederhana, misalnya, “on/off”. Format data terkadang sangat berbeda dari keluaran IoT dunia nyata di mana banyak atribut properti memberikan status perangkat. Oleh karena itu, jika kita perlu menerapkan beberapa ide makalah, itu menjadi hampir mustahil.

Artikel ini memanfaatkan data sintetis yang formatnya mirip dengan kumpulan data dunia nyata dari produsen di seluruh dunia seperti Tuya 1. Struktur keluaran data mengarahkan kami untuk menggunakan pengklasifikasi multilabel.

Gambar 3 menunjukkan bahwa data keluaran lampu pintar berisi beberapa bidang dan memberikan status aktual perangkat. Keragaman dalam perangkat IoT dan keluaran datanya menyoroti perlunya mekanisme yang efektif untuk menangani dan menganalisis data yang heterogen. Oleh karena itu, jika kita memprediksi tindakan mendatang untuk satu perangkat pintar, kita perlu memprediksi label untuk setiap properti yang diamati dari perangkat tersebut. Karena alasan ini, pembelajaran mesin multilabel diteliti dalam penelitian ini daripada model label tunggal yang umum digunakan.

GAMBAR 3
Keluaran data dunia nyata dari bola lampu pintar.

Berikut ini, kami menyajikan beberapa pengklasifikasi multi-label, termasuk implementasi yang mengadaptasi label tunggal untuk digunakan sebagai pembelajaran mesin multi-label.

  • Klasifikasi K-Nearest Neighbors : Untuk [ 25 ] “K-nearest neighbor adalah algoritma pembelajaran mesin yang sederhana dan efektif yang dapat digunakan untuk tugas klasifikasi dan regresi”. Algoritma ini menggunakan kesamaan antara titik data untuk membuat prediksi. Algoritma ini menghitung jarak antara titik data baru dan K-nearest neighbor-nya, dan berdasarkan kelas tetangga, algoritma mengklasifikasikan titik baru tersebut.
  • Perceptron : Menurut [ 26 ], kita dapat memahami Perceptron sebagai neuron buatan, blok pembangun fundamental jaringan saraf dan pengklasifikasi linier biner yang belajar dengan menyesuaikan bobotnya berdasarkan sinyal kesalahan. Ia mengambil vektor input, menetapkan bobot untuk setiap elemen dalam vektor, dan menjumlahkan nilai-nilai tertimbang ini. Hasil akhir dilewatkan melalui fungsi aktivasi untuk menghasilkan keluaran biner (0 atau 1). Perceptron belajar dengan menyesuaikan bobot secara berulang untuk meminimalkan kesalahan klasifikasi.
  • Multilayer Perceptron (MLP) : Sesuai namanya, MLP adalah algoritma yang diturunkan dari Perceptron sederhana untuk bekerja dengan data nonlinier yang dapat dipisahkan. Goodfellow dkk. [ 27 ] menjelaskan bahwa MLP adalah model pembelajaran yang kuat yang dapat merepresentasikan hubungan nonlinier yang kompleks antara masukan dan keluaran dan dapat berhasil diterapkan pada berbagai tugas di berbagai domain yang berbeda. MLP dapat mempelajari hubungan yang kompleks antara masukan dan keluaran dengan menyebarkan sinyal melalui lapisan tersembunyi. Pelatihan MLP menggunakan algoritma backpropagation untuk menyesuaikan bobot koneksi antara neuron, meminimalkan kesalahan prediksi.
  • Naive Bayes : Ini adalah algoritma klasifikasi probabilistik berdasarkan teorema Bayes untuk menghitung probabilitas suatu titik tertentu yang termasuk dalam kelas tertentu, dengan asumsi bahwa karakteristik data bersifat independen. Untuk penelitian ini, kami menerapkan dua variasi: Bernoulli Naive Bayes dan Gaussian Naive Bayes . Untuk [ 28 ], pengklasifikasi Bernoulli Naive Bayes adalah variasi Naive Bayes yang ditujukan pada data biner. Algoritma ini memodelkan ada atau tidaknya setiap fitur sebagai peristiwa independen yang dijelaskan oleh distribusi Bernoulli. Di sisi lain, Gaussian Naive Bayes, menurut [ 29 ], lebih cocok untuk data kontinu. Ia mengasumsikan bahwa karakteristik setiap kelas mengikuti distribusi normal. Ia memperkirakan parameter distribusi ini (rata-rata dan varians) untuk menghitung probabilitas suatu titik baru yang termasuk dalam kelas tertentu.
  • Decision Tree Classifier : Keluarga pengklasifikasi yang dikenal sebagai Decision Tree (DT) digunakan untuk klasifikasi dan regresi. Algoritme menganalisis data dan menyimpulkan aturan berdasarkan fitur. Ada kelebihan dan kekurangan dalam penggunaan teknik ini. Kelebihannya adalah pemodelan data sederhana yang digunakan dalam algoritme. Kekurangannya adalah metode ini tidak dapat bekerja dengan nilai data yang sebelumnya tidak terlihat. Untuk penelitian ini, kami menerapkan tiga variasi: Basic DT [ 30 ], Extra Trees Classifier , dan Extra Tree Classifier [ 31 ]. Basic DT membuat satu pohon berdasarkan observasi yang berusaha menyediakan pohon dengan fitur paling penting pada akar dan fitur yang paling tidak menentukan pada daun. Perbedaan antara Extra Trees Classifier dan Extra Tree Classifier ada pada pengacakan. Kedua teknik ini membuat banyak sub-pohon berdasarkan variasi fitur. Namun, yang pertama juga berusaha membagi data, mencari pembagian terbaik, dan yang kedua dibuat berdasarkan pembagian acak.
  • Ridge Classifier : Algoritma ini didasarkan pada mengubah klasifikasi menjadi masalah regresi multi-output, menggunakan Ridge Regression untuk menangani pembelajaran dan regularisasi model. Ia mengubah kelas target menjadi nilai diskrit dan kemudian menerapkan teknik regresi. Ridge Regression yang dijelaskan oleh [ 32 ] memperkenalkan istilah regularisasi yang menghukum koefisien besar, membantu mencegah overfitting dan meningkatkan generalisasi model.
  • Nearest Centroid : Menurut [ 33 ], algoritma ini adalah metode sederhana dan intuitif yang mengklasifikasikan titik data baru berdasarkan kedekatannya dengan centroid (rata-rata) kelas terdekat di ruang fitur. Selama pelatihan, Nearest Centroid menghitung centroid untuk setiap kelas, dengan mempertimbangkan rata-rata semua contoh pelatihan yang termasuk dalam kelas tersebut. Pada fase klasifikasi, untuk titik data baru, algoritma menghitung jarak antara titik tersebut dan centroid setiap kelas. Titik tersebut kemudian diklasifikasikan ke dalam kelas yang centroidnya paling dekat. Nearest Centroid juga dapat disebut Nearest Prototype atau pengklasifikasi Rocchio (hanya jika diterapkan pada klasifikasi teks menggunakan vektor kata).
  • Regresi Logistik : Seperti yang dijelaskan oleh [ 34 ], Regresi Logistik adalah metode statistik yang memperkirakan probabilitas hasil biner (ya/tidak, 0/1) dengan mempertimbangkan serangkaian variabel prediktor. Tidak seperti regresi linier, yang memprediksi nilai kontinu, regresi logistik memberikan hasil probabilistik, menjadikannya teknik yang berharga untuk tugas klasifikasi.
  • Algoritma Analisis Diskriminan : Menurut [ 35 ], Analisis Diskriminan Linier (LDA) bekerja dengan memproyeksikan data masukan ke dalam ruang dimensi tereduksi di mana kelas-kelas dipisahkan semaksimal mungkin. LDA mengasumsikan bahwa kelas mengikuti distribusi normal (Gaussian) dan memperkirakan parameter setiap kelas (mean dan kovarians). Saat memproyeksikan data, LDA memaksimalkan keterpisahan antar kelas sekaligus meminimalkan varians dalam setiap kelas. Selain LDA, ada juga hal yang sama yang menggunakan algoritma Analisis Diskriminan Kuadrat (QDA) adalah generalisasi sebelumnya dan memungkinkan garis depan keputusan masuk ke dalam kelas-kelas yang sama kuadrat (kurva).
  • Support Vector Machine (SVM) : Algoritma SVM digunakan secara luas untuk tugas klasifikasi dan regresi. Dalam klasifikasi, SVM dapat disebut Support Vector Classifier (SVC) . Untuk [ 36 ] algoritma ini berusaha menemukan hyperplane pemisah ideal antara kelas data, memaksimalkan margin antara hyperplane dan titik support (support vector). Titik support adalah titik data yang paling dekat dengan hyperplane dan sangat penting dalam mendefinisikan batas keputusan. Selain SVC standar, dalam penelitian ini, kami bekerja dengan LinearSVC dan NuSVC . LinearSVC adalah varian SVC yang memiliki lebih banyak fleksibilitas dalam memilih penalti dan fungsi loss dan harus diskalakan lebih baik ke sejumlah besar sampel. Perbedaan utama antara SVC dan LinearSVC ada pada fungsi loss yang digunakan secara default dan penanganan regularisasi intersepsi antara kedua implementasi ini. NuSVC berbeda dari SVC standar karena menggunakan parameter untuk mengontrol jumlah support vector.
  • Klasifikasi Pasif-Agresif : [ 37 ] mendefinisikan algoritma pasif-agresif (PA) sebagai metode untuk klasifikasi biner daring di mana algoritma memperbarui vektor bobot berdasarkan kerugian yang terjadi di setiap putaran. Algoritma bersifat pasif ketika kerugian engsel adalah nol, yang berarti vektor bobot tetap tidak berubah. Namun, ketika kerugiannya positif, algoritma secara agresif memperbarui vektor bobot untuk memastikan bahwa kendala terpenuhi, terlepas dari ukuran langkah yang diperlukan. Strategi yang diperbarui ini menyeimbangkan kebutuhan untuk kemajuan dalam mengklasifikasikan contoh-contoh terkini dengan benar dengan mempertahankan informasi yang dipelajari dari putaran sebelumnya.
  • Pengklasifikasi Penguat Gradien : Pengklasifikasi Penguat Gradien, seperti yang dijelaskan oleh [ 38 ], adalah teknik pembelajaran ensemble untuk klasifikasi. Ia membangun model secara iteratif dengan menggabungkan pengklasifikasi lemah secara berurutan. Setiap pengklasifikasi lemah dilatih untuk mengoreksi kesalahan pengklasifikasi sebelumnya dengan berfokus pada contoh data yang salah diklasifikasikan oleh pengklasifikasi sebelumnya.
  • Gaussian Process Classifier (GPC) : Algoritma ini didasarkan pada gagasan Proses Gaussian (GP), yang merupakan distribusi probabilitas tak terbatas atas fungsi kontinu. Dalam konteks klasifikasi, GPC menggunakan GP untuk memodelkan hubungan antara fitur input dan probabilitas keanggotaan di setiap kelas. Lebih jauh lagi, secara internal, perkiraan Laplace mengaproksimasi posterior non-Gaussian dengan yang Gaussian. GPC, seperti yang dijelaskan oleh [ 39 ], menggunakan Proses Gaussian untuk memodelkan hubungan antara fitur dan probabilitas kelas. Ini mendefinisikan fungsi laten dengan distribusi Gaussian yang kemudian ditransformasikan untuk menghasilkan probabilitas klasifikasi.
  • Pengklasifikasi propagasi label : Pengklasifikasi propagasi label adalah teknik pembelajaran mesin semi-supervised yang umum digunakan untuk klasifikasi. Mereka menggunakan dataset berlabel sebagian, di mana sebagian besar titik data tidak memiliki label (kelas) dan sebagian kecil memiliki label yang diketahui. Seperti yang dijelaskan oleh [ 40 ], pengklasifikasi propagasi label menggunakan grafik untuk menyebarkan label dari titik berlabel ke titik tidak berlabel, yang memungkinkan klasifikasi dalam skenario dengan data berlabel sebagian. Selama penelitian ini, dua algoritma pengklasifikasi digunakan untuk propagasi label: Propagasi Label (LP) dan Penyebaran Label (LS) . Sementara LP menyebarkan label langsung ke tetangga, memberikan bobot lebih besar ke tetangga yang lebih dekat, LS menggunakan matriks propagasi untuk melakukan propagasi. Matriks ini mempertimbangkan kesamaan antara semua pasangan titik, menghaluskan propagasi label.
  • SGD Classifier : Estimator ini bergantung pada algoritma optimasi Stochastic Gradient Descent (SGD) untuk melatih model linear yang memisahkan kelas data: untuk [ 41 ], gradien kerugian diestimasi untuk setiap sampel secara bergantian, dan model diperbarui sepanjang jalan dengan jadwal kekuatan yang menurun (juga dikenal sebagai laju pembelajaran). SGD memungkinkan pembelajaran mini-batch. Dengan menggunakan jadwal laju pembelajaran standar, data harus memiliki mean nol dan varians unit untuk hasil terbaik. Di perpustakaan yang digunakan dalam penelitian ini, model yang sesuai dapat dikontrol dengan parameter kerugian; secara default, ia sesuai dengan SVM linear.

3 Karya Terkait
Dalam beberapa tahun terakhir, beberapa sistem rekomendasi untuk rumah pintar telah diusulkan. Pendekatan pertama menggunakan teknik klasik seperti penyaringan kolaboratif, berbasis konten, berbasis kepraktisan, dan bahkan penambangan data dan ontologi yang sama untuk membantu sistem rekomendasi. Namun, dalam dua tahun terakhir, dengan dipopulerkannya AI, perspektif baru telah muncul dalam sistem rekomendasi untuk rumah pintar. Evolusi ini memungkinkan pengembangan sistem yang mampu “belajar” dan beradaptasi dengan berbagai skenario. Di bawah ini, beberapa penelitian yang menjadi inspirasi untuk pengembangan karya ini akan disajikan.

Shuvo dan Yilmaz [ 4 ] menyajikan sistem rekomendasi untuk penghematan energi di rumah pintar (Home Energy Management (HEM)). Penulis menggunakan algoritma Advantage Actor-Critic (A2C), teknik deep reinforcement learning (DRL). Dalam artikel tersebut, perangkat IoT dikelola melalui proses Demand-Side Management (DSM). Teknik RL mempertimbangkan pengembalian setiap perangkat dan umpan balik eksplisit pengguna untuk membuat keputusan yang dibantu oleh proses Markov. Aktor mengkategorikan perangkat menjadi tiga kelompok: tipe 1) perangkat prioritas kenyamanan seperti lampu, TV, alarm, dan AC; tipe 2) perangkat dengan penggunaan fleksibel berdasarkan waktu seperti mesin cuci dan pengering; tipe 3) perangkat dengan beban seperti laptop, mobil listrik, atau ponsel. Kelompok perangkat membantu penulis mengurangi puncak penggunaan energi saat biaya tinggi. Untuk mengevaluasi sistem, Shuvo dan Yilmaz [ 4 ] menggunakan basis data ARAS, yang berisi data dari perangkat di dua rumah, dikategorikan ke dalam 27 jenis perilaku menurut perangkat IoT.

Luo et al. [ 2 ] mengusulkan solusi inovatif yang disebut Demand Response (DR) dengan menerapkan sistem rekomendasi yang dipersonalisasi. Mereka menggunakan metode pengelompokan fuzzy C-means untuk membagi pengguna menjadi dua kelompok: “pengguna yang lebih responsif” dan “pengguna yang kurang responsif”. Berdasarkan segmentasi pengguna menjadi dua kelompok, sistem menggunakan teknik penyaringan kolaboratif untuk belajar dari pengalaman penggunaan peralatan dari “pengguna yang lebih responsif” dan merekomendasikan rencana penggunaan kepada “pengguna yang kurang responsif”, dengan mempertimbangkan gaya hidup mereka. Penulis melakukan eksperimen berdasarkan simulator data perumahan untuk memvalidasi sistem yang diusulkan, mencapai hasil yang sangat positif, seperti meminimalkan biaya listrik di rumah tangga dan memaksimalkan kenyamanan pengguna.

Lundström et al. [ 42 ] mengusulkan pendekatan untuk pemodelan dan pendeteksian penyimpangan untuk perilaku manusia tanpa pengawasan. Perilaku/aktivitas manusia dalam interval waktu yang pendek direpresentasikan dengan cara baru melalui respons sensor yang sederhana dan non-intrusif. Perilaku menyimpang terungkap melalui pengelompokan data dan analisis asosiasi antara klaster dan vektor data yang merepresentasikan interval waktu yang berdekatan (menganalisis transisi antara klaster). Tiga jenis penyimpangan dipertimbangkan: penyimpangan dalam waktu, penyimpangan dalam ruang, dan penyimpangan dalam transisi antara klaster dengan pola perilaku yang serupa. Hasil penelitian menunjukkan bahwa penyimpangan spasial dan temporal dapat terungkap dengan menganalisis peta 2D dari data berdimensi tinggi.

Pinto et al. [ 3 ] mengusulkan penggunaan SMA dengan Case-Based Reasoning (CBR) untuk penghematan energi di rumah pintar. Penulis menggunakan dua algoritma pembelajaran mesin sebagai agen untuk menginteroperasionalkan sistem: K-nearest Neighbors (KNN) dan SVM. Sistem menggunakan 10 jenis data untuk mempelajari tentang konsumsi rumah: hari dalam seminggu, bulan, jam, musim, suhu luar, kelembapan luar, jumlah orang, konsumsi energi, pembangkitan energi, dan tarif listrik. Sistem menggunakan pembelajaran untuk mengekstrak informasi dari data dan memprediksi tindakan tetangga yang dapat menghemat energi dan bobot tindakan ini melalui SVM. Penulis mengembangkan serangkaian persamaan yang memperlakukan kumpulan jam dalam sehari sebagai kasus. Setiap kasus dan persamaan bertujuan untuk meminimalkan penggunaan energi dan memaksimalkan penghematan.

Alomar et al. [ 1 ] menyajikan Household Appliance Usage Recommender and Monitoring System (HARMS), sebuah solusi cerdas untuk manajemen listrik guna mengurangi konsumsi energi melalui pemantauan perilaku pengguna dan pembuatan rekomendasi. Sistem ini terdiri dari perangkat keras, termasuk sensor mikrokomputer, sensor gerak dan cahaya, transformator arus, dan perangkat lunak yang berisi sistem kontrol, basis data, algoritma penambangan data, dan aplikasi Android untuk interaksi pengguna. Penulis menggunakan algoritma penambangan data untuk menemukan aturan asosiasi dan melatih SVM untuk menghasilkan rekomendasi. SVM menghasilkan rekomendasi dengan memprediksi status lingkungan, dan algoritma aturan asosiasi Apriori digunakan untuk menentukan hubungan antara tindakan pengguna, membentuk fitur dan kelas yang digunakan dalam pelatihan model SVM. Penulis menyimpulkan bahwa seiring bertambahnya jumlah kelas, akurasi model menurun; menurut mereka, hal ini dapat disebabkan oleh tiga faktor: (1) Matriks renggang, yang memengaruhi kinerja SVM, (2) Dimensionalitas tinggi, yang membuat sistem lebih kompleks, dan (3) Pembuatan aturan asosiasi yang signifikan dan unik, yang memengaruhi kompleksitas waktu dan ruang.

Keempat karya yang disebutkan di atas memiliki fokus utama penghematan energi. Ini adalah karakteristik yang diwarisi dari bidang penelitian rumah pintar, di mana sebagian besar penelitian dilakukan untuk mencari pengoptimalan konsumsi energi ini. Shuvo dan Yilmaz [ 4 ] menggunakan DRL untuk tujuan ini. Sebaliknya, [ 2 ] membuat sistem rekomendasi yang dipersonalisasi menggunakan metode pengelompokan fuzzy C-means untuk membuat dua kelompok pengguna berdasarkan penggunaan energi. Mereka kemudian menggunakan penyaringan kolaboratif untuk merekomendasikan rencana dari pengguna yang lebih hemat kepada mereka yang lebih hemat. Pinto et al. [ 3 ] menggunakan dua algoritma pembelajaran terbimbing, KNN dan SVM. KNN mengidentifikasi tindakan tetangga dari status lingkungan saat ini dengan potensi penghematan energi, yang diukur oleh SVM. Alomar et al. [ 1 ] juga menggunakan algoritma SVM dalam menghasilkan rekomendasi penghematan energi. Namun, alih-alih KNN, mereka menggunakan algoritma aturan asosiasi Apriori, yang digunakan dalam sistem yang mereka usulkan untuk menentukan hubungan antara tindakan pengguna.

Sementara itu, pekerjaan ini melibatkan pembuatan sistem rekomendasi untuk lingkungan rumah pintar yang beradaptasi dengan berbagai pola data dan dapat memprediksi beberapa tindakan (adegan). Kami khususnya berkepentingan dengan penggunaan pola data keluaran perangkat pintar yang sebenarnya, yang mungkin memiliki lebih dari satu status tertentu. Untuk mengatasi masalah ini, kami menggunakan pembelajaran mesin terawasi multi-label karena jenis pembelajaran ini memungkinkan sistem rekomendasi kami untuk merekomendasikan tindakan untuk setiap status tertentu dari perangkat IoT tertentu. Misalnya, kami dapat mempertimbangkan bohlam pintar tempat kami dapat merekomendasikan status menyala atau mati, warna yang akan tetap menyala, suhu warna ini, dan intensitasnya. Selain itu, pembelajaran mesin terawasi multi-label dapat mengakomodasi banyak algoritma pembelajaran terawasi, yang diuji dan dibandingkan selama sisa penelitian ini.

Tax [ 43 ] berfokus pada pendeteksian pola perilaku pengguna di rumah pintar. Untuk mencapai hal ini, peneliti mengusulkan penggunaan Recurrent Neural Networks (RNNs) untuk masalah ini, dengan menyoroti Long Short-Term Memory (LSTM) sebagai pendekatan utama. Penelitian ini membandingkan kinerja LSTM dengan Gated Recurrent Units (GRU). Selain jaringan neural, penulis mengimplementasikan sembilan teknik prediksi sekuens diskrit lainnya, seperti LZ78, Prediction by Partial Matching (PPM), Dependency Graph (DG), All k-order Markov Chains (AKOM), Transition Directed Acyclic Graph (TDAG), Compact Prediction Tree (CPT), List, Bag and Set. RNN berusaha untuk memprediksi perilaku pengguna selanjutnya dan waktu kapan perilaku ini akan terjadi. Penulis menjelaskan bahwa LSTM dapat melakukan prediksi dengan tiga cara: pembelajaran dan prediksi tunggal, pembelajaran tunggal dan prediksi multi-kategori, dan pembelajaran tunggal dengan deteksi jaringan internal atas perilaku dan waktu. Perbandingan dilakukan pada enam set data yang berbeda, mengevaluasi metrik seperti akurasi, root mean square error (RMSE), mean absolute error (MAE), dan kesamaan Levenshtein. Dalam semua perbandingan, LSTM menyajikan kinerja terbaik.

Waseem et al. [ 44 ]—Meskipun kami juga melakukan pembandingan algoritma pembelajaran mesin dalam penelitian ini, tidak seperti [ 43 ], kami tidak menggunakan teknik untuk memprediksi urutan diskrit. Dengan kata lain, praproses data kami dilakukan agar kami bekerja dengan algoritma klasifikasi multilabel alih-alih mempertimbangkan masalah sebagai deret waktu.

Pendekatan 4: Transformasi Data untuk Klasifikasi Multi-Label
Artikel ini membandingkan keakuratan beberapa pengklasifikasi multilabel dalam dua lingkungan cerdas. Sebelum perbandingan, data harus diperlakukan dengan hati-hati agar pengklasifikasi dapat menggunakannya dan menjalankan tugasnya dengan benar. Berikut ini menggambarkan langkah-langkah praproses dan transformasi data sebelum perbandingan klasifikasi.

4.1 Jenis Data Perangkat Cerdas
Perangkat pintar menghasilkan sejumlah besar data yang memainkan peran penting dalam menentukan status dan kesehatan lingkungan IoT. Meskipun data yang dihasilkan oleh perangkat pintar dari berbagai produsen berbeda-beda, beberapa atribut hadir secara universal, apa pun mereknya. Atribut ini memastikan dasar fungsionalitas dan interoperabilitas dalam ekosistem IoT: stempel waktu, perangkat (ID), dan pesan (unit informasi).

Tabel 1 menyajikan contoh lima perangkat dan statusnya. Cap waktu menginformasikan saat yang tepat dari tindakan perangkat. Perangkat (ID) mengidentifikasi perangkat yang terkait dengan tindakan spesifik tersebut. Informasi pesan membawa status aktual perangkat dalam format nilai kode. Umumnya, ia menyampaikan secara spesifik tindakan yang dilakukan oleh perangkat. Perhatikan bahwa satu pesan dapat mencakup beberapa tindakan, yang memungkinkan pelaporan peristiwa yang kompleks dalam satu transmisi. Misalnya, nyalakan pada 27 derajat dalam mode pemutaran otomatis . Contoh lain adalah lampu; nyalakan dengan kecerahan 1000 dan suhu intensitas 500. Kedua contoh menunjukkan perangkat pintar yang menyetel statusnya dengan lebih dari satu atribut.

TABEL 1. Kumpulan data ilustratif.
Stempel waktu Perangkat Pesan
Tanggal 08-11-2023 00:00:05.700476 KAMAR TIDUR_01_AC-012
{‘status’: [
{‘kode’: ‘saklar’, ‘t’: 1699412405, ‘nilai’: ‘AKTIF’}
{‘kode’: ‘temp_set’, ‘t’: 1699412405, ‘nilai’: 27}
{‘kode’: ‘mode’, ‘t’: 1699412405, ‘nilai’: ‘OTOMATIS’}
[Bahasa Indonesia]
Tanggal 08-11-2023 00:00:10.565644 KAMAR TIDUR_01_AC-012
{‘status’: [
{‘kode’: ‘saklar’, ‘t’: 1699412410, ‘nilai’: ‘AKTIF’}
{‘kode’: ‘temp_set’, ‘t’: 1699412410, ‘nilai’: 22}
{‘kode’: ‘mode’, ‘t’: 1699412410, ‘nilai’: ‘ANGIN’}
[Bahasa Indonesia]
Tanggal 08-11-2023 07:06:05.765790 RUANG TAMU_TV-001
{‘status’: [
{‘kode’: ‘saklar’, ‘t’: 1699437965, ‘nilai’: ‘AKTIF’}
{‘kode’: ‘volume_suara’, ‘t’: 1699437965, ‘nilai’: 40}
[Bahasa Indonesia]
Tanggal 08-11-2023 07:06:05.870974 KAMAR MANDI_02_SENSOR_KEHADIRAN-010
{‘status’: [
{‘kode’: ‘status_keberadaan’, ‘t’: 1699437965, ‘nilai’: ‘AKTIF’}
{‘kode’: ‘kondisi_gerak_manusia’, ‘t’: 1699437965, ‘nilai’: ‘GERAKAN_LEBIH_BESAR’}
[Bahasa Indonesia]
Tanggal 08-11-2023 07:06:10.927368 KAMAR MANDI_02_BOLA_LAMPU-008
{‘status’: [
{‘kode’: ‘switch_led’, ‘t’: 1699437970, ‘nilai’: ‘AKTIF’}
{‘kode’: ‘bright_value_v2’, ‘t’: 1699437970, ‘nilai’: 1000}
{‘kode’: ‘temp_value_v2’, ‘t’: 1699437970, ‘nilai’: 500}
[Bahasa Indonesia]

4.2 Definisi
Langkah awal untuk memprediksi status perangkat pintar adalah mengumpulkan dan menyimpan data. Setelah data disimpan, kita perlu memahaminya. Pertama, kita mengidentifikasi jenis perangkat pintar dalam basis data: aktuator atau sensor.

  • Sensor adalah pengumpul data. Sensor mengumpulkan informasi tentang dunia fisik dan mengubahnya menjadi data digital. Data ini bisa berupa suhu, gerakan, cahaya, kelembapan, atau aspek lingkungan lain yang dapat diukur. Sensor bertindak sebagai perangkat input untuk sistem IoT.
  • Aktuator adalah pengambil tindakan. Mereka menerima instruksi dalam bentuk sinyal listrik atau data digital dan menerjemahkannya menjadi perubahan fisik di lingkungan. Mereka bertindak sebagai perangkat keluaran untuk sistem IoT.

Kami memahami bahwa setiap perangkat pintar memiliki status utama dan status khusus , yang didefinisikan sebagai:

  • Primary State (PS) merujuk pada status tindakan umum yang dimiliki secara universal oleh perangkat pintar. Misalnya, lampu pintar, pengeras suara pintar, dan kamera pintar semuanya dapat dinyalakan atau dimatikan . Secara formal,P⁢S⁢Amewakili keadaan utama semua aktuator, danP⁢S⁢Smewakili keadaan utama semua sensor. Dengan demikian, kita dapat mewakilip⁢s⁢a⁢1∈P⁢S⁢Asebagai keadaan utama aktuatora⁢1Danp⁢s⁢s⁢1∈P⁢S⁢Ssebagai status utama sensors⁢1. Suatu perangkat dapat memiliki lebih dari satu PS, yaitu lebih dari satu kode sebagai PS; dalam hal ini, kami mewakilip⁢s⁢a⁢1c⁢1∈p⁢s⁢a⁢1sebagai kode 1 (c⁢1) di PS aktuatora⁢1Danp⁢s⁢s⁢1c⁢1∈p⁢s⁢s⁢1sebagai kode 1 (c⁢1) di PS sensors⁢1.
  • Specific State (SS) mengacu pada status tindakan spesifik dari satu perangkat pintar (sensor atau aktuator). Misalnya, seseorang dapat mengatur warna dan kecerahan lampu pintar. Secara formal,S⁢S⁢Amewakili keadaan spesifik semua aktuator, danS⁢S⁢Smewakili keadaan spesifik semua sensor. Dengan demikian, kita dapat mewakilis⁢s⁢a⁢1∈S⁢S⁢Asebagai keadaan spesifik aktuatora⁢1Dans⁢s⁢s⁢1∈S⁢S⁢Ssebagai keadaan spesifik sensors⁢1. Suatu perangkat dapat memiliki lebih dari satu status tertentu, yaitu lebih dari satu kode status tertentu; dalam hal ini, kami mewakilis⁢s⁢a⁢1c⁢1∈s⁢s⁢a⁢1sebagai kode 1 (c⁢1) dalam keadaan spesifik aktuatora⁢1Dans⁢s⁢s⁢1c⁢1∈s⁢s⁢s⁢1sebagai kode 1 (c⁢1) dalam keadaan sensor tertentus⁢1.
  • Environment State (env) mengacu pada kumpulan gabungan dari semua PSA, PSS, SSA, dan SSS yang ada pada stempel waktu tertentu. Karena suatu lingkungan dapat berisi beberapa ruangan atau area, maka kita juga dapat merepresentasikanP⁢Sr⁢o⁢o⁢m⁢1={P⁢S⁢Ar⁢o⁢o⁢m⁢1,P⁢S⁢Sr⁢o⁢o⁢m⁢1}sebagai kumpulan keadaan utama ruangan1. Hal yang sama berlaku untukS⁢Sr⁢o⁢o⁢m⁢1={S⁢S⁢Ar⁢o⁢o⁢m⁢1,S⁢S⁢Sr⁢o⁢o⁢m⁢1}.

4.3 Langkah Transformasi Data
Kami mengusulkan 6 (enam) langkah pengolahan data sebelum klasifikasi, seperti yang ditunjukkan pada Gambar 4 .

  1. Langkah 1 : Kami mengekstrak nilai dari kolom “pesan” dan mengaturnya ke dalam struktur tabel, memetakan setiap atribut kode ke kolom dan atribut nilai ke sel dalam tabel. Kami membuat tabel besar untuk setiap perangkat dalam transformasi ini karena kode dan nilainya berbeda.
  2. Langkah 2 : Kami membagi tabel besar menjadi tabel primer dan spesifik untuk setiap perangkat. Persamaan ( 1 ) menunjukkan himpunan PS, status spesifik, dan status lingkungan aktuator.a⁢1.
  3. Langkah 3 : Kami menggabungkan perangkat IoT berdasarkan lingkungan tempat mereka berada. Persamaan ( 2 ) menunjukkan bahwa Keadaan Lingkungan (s⁢t⁢a⁢t⁢ee⁢n⁢v)diwakili oleh stempel waktu beserta set Status Utama Aktuator (P⁢S⁢A) dan himpunan Keadaan Primer Sensor (P⁢S⁢S). Tabel  2 menggambarkan status aktual suatu lingkungane⁢n⁢v.
  4. Langkah 4 : Kami memperluas kumpulan data lingkungan dengan catatan status baru yang menghormati interval yang telah ditentukan sebelumnyatKami mengulang rekaman terakhir (status) dengan interval frekuensithingga status berikut berubah, jika ada. Gambar  5 mengilustrasikan ide tersebut. Perluasan ini bertujuan untuk memberikan masukan yang bermakna bagi model pembelajaran mesin yang mencoba memprediksi status perangkat pintar di masa mendatang.
  5. Langkah 5 : Kami mendefinisikan variabel targetY, yang ingin kita prediksi. Baik untuk seluruh lingkungan atau untuk perangkat pintar tertentu dalam lingkungan tersebut. Persamaan ( 3 ) menunjukkan bahwa variabel targetYe⁢n⁢vuntuk lingkungan adalah sekumpulan keadaan primer (P⁢S⁢A) yang stempel waktunya adalah t detik di masa mendatang.

    Hal yang sama berlaku jika kita ingin memprediksi status perangkat pintar tertentuYa⁢c⁢tdi masa depan. Kita juga harus mempertimbangkan serangkaian keadaan primer (P⁢S⁢A) dan himpunan status spesifik (S⁢S⁢A). Gambar  6 menyajikan serangkaian variabel target untuk masing-masing statusnya.
  6. Langkah 6 : Kami memecah “stempel waktu” menjadi variabel temporal yang dibentuk oleh bilangan bulat. Transformasi ini diperlukan karena sebagian besar algoritma pembelajaran mesin tidak memproses format datetime . Oleh karena itu, kami membuat empat variabel numerik sebagai berikut:
    • Jam : Mengekstrak jam dari variabel “cap waktu”;
    • Akhir pekan : Variabel biner yang menunjukkan apakah catatan mengacu pada akhir pekan atau tidak;
    • Hari dalam seminggu : Menunjukkan hari dalam seminggu;
    • Pergeseran hari : Menunjukkan pergeseran hari saat rekaman berada. Dalam variabel ini, hari dibagi menjadi empat bagian yang sama, masing-masing enam jam, di mana bagian pertama dimulai pada pukul nol, dan bagian terakhir berakhir sebelum pukul 0 hari berikutnya.

     

Variabel temporal ini direpresentasikan oleh
set, seperti yang ditunjukkan pada Persamaan ( 4 ):

GAMBAR 4
Langkah-langkah transformasi data.

 

GAMBAR 5
Dataset dengan laporan status yang sering terjadi dimana .

 

GAMBAR 6
Menghasilkan variabel target untuk pembelajaran mesin di mana
TABEL 2. Ilustrasis⁢t⁢a⁢t⁢ee⁢n⁢vdalam representasi tabular.
Stempel waktu PSS PSA
Tanggal Waktu Sensor 1 Sensor 2 Aktuator 1 Aktuator 2
Senin Pagi PADA PADA MATI PADA

Dengan menyusun status semua perangkat dalam lingkungan tertentu, kita dapat membuat kumpulan data perangkat pintar yang komprehensif.

Pada Persamaan ( 5 ) dan ( 6 ), kita memiliki model untuk kumpulan variabel prediktor (X) dan target (Y) yang masing-masing mewakili lingkungan dan perangkat.

TABEL 3. Kumpulan data akhir untuk contoh lingkungan.
Xa⁢1 Ya⁢1
T⁢V P⁢S⁢Se⁢n⁢v P⁢S⁢Ae⁢n⁢v PSAenv Masa Depan
Jam Akhir pekan Hari kerja Shift siang P⁢s⁢s⁢1 P⁢s⁢s⁢2 P⁢s⁢a⁢1 P⁢s⁢a⁢2 P⁢s⁢a⁢3 P⁢s⁢a⁢4 F⁢u⁢t⁢u⁢r⁢e⁢_⁢p⁢s⁢a⁢1 F⁢u⁢t⁢u⁢r⁢e⁢_⁢p⁢s⁢a⁢2 F⁢u⁢t⁢u⁢r⁢e⁢_⁢p⁢s⁢a⁢3 F⁢u⁢t⁢u⁢r⁢e⁢_⁢p⁢s⁢a⁢4
7 PALSU 3 1 PADA PADA PADA PADA MATI PADA DARI DARI DARI DARI
7 PALSU 3 1 MATI MATI PADA MATI MATI MATI PADA DARI DARI DARI
8 PALSU 3 1 MATI MATI MATI MATI MATI MATI PADA PADA DARI DARI
8 PALSU 3 1 PADA PADA MATI PADA MATI MATI PADA PADA DARI DARI

Tabel 4 menunjukkan contoh set X dan Y untuk aktuator
(masing-masing
Dan
). Sedangkan X adalah gabungan dari variabel waktu (
), serangkaian keadaan ruangan tempat aktuator yang sedang diproses berada (
), keadaan utama aktuator
(
) dan status spesifik aktuator yang sedang diproses (
); set Y untuk perangkat
diwakili oleh penyatuan keadaan primer dan keadaan spesifik aktuator
di waktu mendatang, masing-masing (
Dan
).

TABEL 4. Dataset akhir untuk aktuator perangkata⁢1contoh.
Xa⁢1 Ya⁢1
T⁢V S⁢t⁢a⁢t⁢er⁢o⁢o⁢m⁢1 S⁢S⁢Aa⁢1 Masa depanp⁢s⁢a⁢1 Masa depanS⁢S⁢Aa⁢1
Jam Akhir pekan Hari kerja Shift siang P⁢s⁢s⁢1 P⁢s⁢s⁢2 P⁢s⁢a⁢2 P⁢s⁢a⁢1(mengalihkan) Suhu_diatur Mode Beralih ke masa depan Pengaturan_suhu_masa_depan Mode_masa_depan
7 PALSU 3 1 PADA PADA PADA PADA 27 MOBIL PADA 21 ANGIN
7 PALSU 3 1 MATI MATI MATI PADA 21 ANGIN MATI 21 ANGIN
8 PALSU 3 1 MATI MATI MATI MATI 21 ANGIN MATI 21 ANGIN
8 PALSU 3 1 PADA PADA PADA MATI 21 ANGIN MATI 21 MOBIL

Tabel 4 hanya mewakili kumpulan data yang digunakan untuk melatih satu aktuator, dalam kasus contoh, aktuator
, yang merupakan pendingin udara. Dengan cara ini, kita akan memiliki sekumpulan data untuk setiap perangkat aktuator sehingga pembelajaran mesin yang bertanggung jawab untuk memprediksi status masing-masing perangkat tersebut dapat dilatih.

5 Evaluasi Eksperimental
Tujuan evaluasi ini adalah untuk menilai keakuratan pengklasifikasi multilabel dalam memprediksi status perangkat IoT di masa mendatang dalam dua skenario rumah pintar. Kami membandingkan beberapa pengklasifikasi multilabel dalam skenario ini, membahas kinerjanya, dan menunjukkan peningkatan di masa mendatang.

5.1 Metodologi
Kami membuat dua skenario rumah pintar untuk mengevaluasi pengklasifikasi multilabel: (i) rumah dengan dua penghuni dan (ii) laboratorium komputer. Kedua skenario dikembangkan menggunakan data sintetis dari simulator Shared Smart Environment Data Generator (SSEDG). Data yang mensimulasikan kedua lingkungan tersebut memahami jejak data historis, di mana setiap baris merupakan data sensor atau aktuator beserta meta-informasinya. Ide mengevaluasi kedua skenario tersebut adalah untuk memahami mana yang berkinerja terbaik dan mengevaluasi apakah akurasi perangkat berubah tergantung pada skenarionya.

Selama proses evaluasi, pengklasifikasi multilabel menggunakan data simulasi ini untuk memperkirakan status perangkat IoT dalam 30, 60, dan 120 detik berikutnya. Misalnya, jika status perangkat pencahayaan biasanya “menyala” antara pukul 8:00 dan 8:02 AM, kami menetapkan pelatihan hingga pukul 8:00 AM (termasuk hari-hari sebelumnya). Kemudian, kami membandingkan akurasi pengklasifikasi multilabel dalam memperkirakan status perangkat pencahayaan untuk pukul 8:00:30 AM, 8:01:00 AM, dan 8:02:00 AM. Kami berasumsi bahwa jika model dapat memperkirakan status masa depan dalam granularitas tersebut, kami dapat membuat perkiraan yang tepat untuk jangka waktu yang lebih lama. Untuk mengevaluasi akurasi model multikelas, kami menggunakan teknik K – Cross-Validation untuk melatih dan menilai model menggunakan beberapa bagian dari kumpulan data. Untuk eksperimen, kami menguji K = 5 lipatan.

5.2 Dataset dan Skenario
Pengumpulan data yang andal sangat penting dan menantang bagi mereka yang meneliti rumah pintar, terutama ketika mempertimbangkan berbagai sensor, aktuator, teknologi, dan skenario di mana mereka dapat diterapkan. Proyek-proyek seperti Pusat Studi Lanjutan dalam Sistem Adaptif [ 45 ] telah mengumpulkan dan menyediakan data dari lingkungan alami untuk memfasilitasi penelitian di masa mendatang. Namun, data yang tersedia tidak mencukupi bagi banyak peneliti, termasuk kami. Oleh karena itu, adopsi data sintetis dipertimbangkan.

Terinspirasi oleh karya [ 8 , 46 – 48 ], kami menggunakan data sintetis yang diperoleh dari simulator, SSEDG. Simulator ini menggunakan pendekatan berbasis model yang melibatkan perencanaan urutan kejadian, waktu yang dibutuhkan untuk setiap kejadian, distribusi ruangan, rutinitas aktivitas pengguna, dan perangkat yang digunakan selama setiap aktivitas. SSEDG menggunakan model grafis untuk menggambarkan struktur rumah guna menyediakan data yang menggambarkan lingkungan alami, yang memungkinkan pengguna untuk mensimulasikan pengiriman dan menerapkan sedikit variasi dalam periode saat setiap aktivitas dilakukan. Skenario yang diuraikan untuk evaluasi kami disajikan sebagai berikut:

5.2.1 Rumah untuk Dua Penghuni (HOME)
Dalam skenario ini, sebuah rumah dihuni oleh sepasang suami istri, yang terdiri dari ruang tamu, kantor, dua kamar mandi, dua kamar tidur, dapur, balkon, lorong, dan ruang cuci. Sensor dan aktuator didistribusikan secara organik di seluruh rumah, termasuk pembuat kopi, sepuluh lampu, dua TV, stereo, empat AC, dan sepuluh sensor kehadiran. Rutinitas dimulai setelah pasangan bangun dan melakukan aktivitas harian normal seperti sarapan, pergi bekerja, membersihkan rumah, makan, dan tidur (30 aktivitas berbeda). Semua aktivitas ini memiliki parameter seperti durasi, lokasi, dan aktuator yang terlibat, serta faktor-faktor yang menghasilkan sedikit variasi dalam durasi aktivitas. Gambar 7 mengilustrasikan rutinitas yang menunjukkan distribusi aktivitas yang dilakukan salah satu penghuni sepanjang hari tertentu.

GAMBAR 7
Rutinitas pengguna pada siang hari.

5.2.2 Laboratorium (LAB)
Skenario ini menggambarkan laboratorium belajar yang digunakan bersama oleh delapan siswa sepanjang minggu, masing-masing dengan jadwal penggunaan yang berbeda. Laboratorium dilengkapi dengan beberapa colokan pintar yang terhubung ke perangkat lain. Delapan stasiun kerja, masing-masing dengan komputer dan dua monitor, dengan total 24 colokan. Selain itu, ada colokan untuk setiap peralatan rumah tangga, termasuk pembuat kopi, printer, microwave, dan televisi. Perangkat lingkungan terdiri dari 28 colokan, sakelar lampu, sensor pembuka pintu, dan robot penyedot debu. Rutinitas dimulai sekitar pukul 8 pagi saat siswa tiba di laboratorium. Pada siang hari, kami melakukan berbagai aktivitas, seperti membuat kode, pergi ke kamar mandi, minum air, istirahat makan siang, dan menyiapkan kopi. Dalam skenario ini, 21 aktivitas harian dipertimbangkan.

Dataset akhir 2 yang digunakan untuk percobaan dirinci dalam Tabel 5 :

TABEL 5. Data himpunan data.
Kumpulan data Garis log Aktuator Sensor Hari Log/hari
RUMAH 13401 13 9 90 148.9
LABORATORIUM 6192 29 2 90 68.8
TOTAL tahun 19593 26 7 180 217.7

5.2.3 Klasifikasi Multi-Label dan Metrik
Semua pengklasifikasi multilabel yang disajikan di Bagian 2.3 dipertimbangkan untuk percobaan. Algoritme tersebut dibandingkan dengan melatih dan memprediksi waktu respons dan akurasi (Persamaan 7 ) dalam urutan ini.

di mana TP = Klasifikasi positif benar; FP = Klasifikasi positif salah; TN = Klasifikasi negatif benar; FN = Klasifikasi negatif salah.
Untuk melakukan evaluasi, semua 6 LANGKAH (Bagian 4 ) untuk transformasi data dilakukan, dengan memperhatikan karakteristik masing-masing algoritma. Selama percobaan, beberapa algoritma mengalami masalah kehabisan memori, sehingga tidak dapat dibandingkan dengan akurasinya. Repositori yang berisi skrip percobaan tersedia di: 3

5.3 Pengaturan Perangkat Keras
Rincian yang diberikan menjelaskan spesifikasi perangkat keras dan perangkat lunak dari sistem komputer yang digunakan untuk melakukan percobaan. Poin-poin utama: CPU: Prosesor Intel i7-10700 @ 2,9 GHz, generasi ke-10, cache 16 MB, 8 inti, 16 utas (mendukung pemrosesan paralel), RAM: 24 GB DDR4, penyimpanan: SSD NVMe 512 GB untuk kecepatan baca/tulis tinggi, dan OS: Ubuntu 22.04.4 LTS, dioptimalkan untuk tugas komputasi ilmiah seperti simulasi dan analisis data. Sistem kelas menengah ini sangat cocok untuk menjalankan eksperimen dan simulasi komputer yang memerlukan daya komputasi dan kapasitas memori sedang hingga tinggi. CPU multi-inti memungkinkan pemrosesan paralel, sementara SSD dan RAM yang cukup memungkinkan penanganan dan analisis data yang efisien. OS Ubuntu menyediakan lingkungan berbasis Unix yang disesuaikan untuk beban kerja ilmiah tersebut.

6 Hasil
Bagian ini menyajikan waktu yang dibutuhkan untuk memprediksi status keseluruhan ekosistem IoT. Analisis ini mempertimbangkan kedua skenario, laboratorium dan rumah. Hasilnya menunjukkan bahwa hanya enam algoritme yang dapat menyelesaikan fase pelatihan.

Tabel 6 dan 7 menunjukkan pengklasifikasi yang menyelesaikan tugas prediksi tanpa menjalankan masalah kehabisan memori. Masalah ini disaksikan oleh pengklasifikasi berikut: Perceptron, NearestCentroid, SVC, SGDClassifier, GaussianProcessClassifier, LabelSpreading, dan NuSVC. Meskipun algoritme berbasis pohon (ExtraTressClassifier dan ExtraTreeClassifier) ​​berkinerja positif, algoritme tersebut memiliki keterbatasan karena kesulitan menangani informasi yang sebelumnya tidak disertakan dalam model. Misalnya, saat mempertimbangkan perangkat lampu, mungkin ada berbagai macam informasi tentang warna, yang mungkin tidak dapat diakomodasi secara efektif oleh algoritme pohon. Kendala ini menyoroti perlunya mempertimbangkan dengan cermat penerapan pendekatan berbasis pohon dalam skenario dengan data yang beragam dan bervariasi.

TABEL 6. Analisis waktu algoritma dalam skenario rumah.
Total waktu
Algoritma t+30 t+60 t+120
Klasifikasi RidgeCV 14.0 7.8 4.0
Klasifikasi Punggungan 6.4 3.6 2.8
Bahasa gaussian 7.0 3.6 2.8
Klasifikasi MLP 536.0 508.8 321.6
Bernoulli NB 5.4 3.2 2.4
Klasifikasi K-Tetangga 3180.4 865.6 274.6
Catatan : Huruf tebal digunakan untuk menyorot nilai waktu proses paling ekstrem untuk setiap horizon prediksi: entri huruf tebal berwarna hijau menunjukkan total waktu prediksi terbaik yang dicapai oleh pengklasifikasi mana pun. Sebaliknya, entri huruf tebal berwarna merah menunjukkan total waktu prediksi terburuk.
TABEL 7. Analisis waktu algoritma dalam skenario laboratorium.
Total waktu
Algoritma t+30 t+60 t+120
Klasifikasi RidgeCV 50.6 23.0 11.8
Klasifikasi Punggungan 10.0 6.0 3.6
Bahasa gaussian 10.6 6.0 3.6
Klasifikasi MLP 400.2 294.8 349.8
Bernoulli NB 9.2 5.0 3.4
Klasifikasi K-Tetangga 9461.4 2397.6 772.2
Catatan : Huruf tebal digunakan untuk menyorot nilai waktu proses paling ekstrem untuk setiap horizon prediksi: entri huruf tebal berwarna hijau menunjukkan total waktu prediksi terbaik yang dicapai oleh pengklasifikasi mana pun. Sebaliknya, entri huruf tebal berwarna merah menunjukkan total waktu prediksi terburuk.

6.1 Waktu Berjalan
Dalam analisis ini, perbedaan mencolok dalam konsumsi waktu diamati, khususnya dengan pengklasifikasi MLP dan K-Neighbors. Dengan mempertimbangkan skenario Home, K-Neighbors memerlukan 3180,4 detik untuk memprediksi perubahan status baru selama interval 30 detik di masa mendatang; sebaliknya, algoritme lain yang digambarkan dalam Tabel 6 menunjukkan perbedaan substansial, bahkan dalam skenario terburuk yang diamati dengan BernoulliNB, yang menyelesaikan tugas untuk
interval hanya dalam 5,4 detik. Fokus hanya pada
Dan
interval, waktu eksekusi yang diamati relatif lebih rendah dibandingkan
; tren ini terlihat untuk MLPClassifier, seperti yang ditunjukkan pada Tabel 6. Namun, perbedaan antara waktu interval minimal, mempertahankan pola ini untuk algoritma yang dijelaskan dalam tabel referensi, di mana eksekusi pada
mencatat waktu eksekusi tertinggi. Perilaku ini dapat dijelaskan oleh jendela prediksi, yang secara langsung memengaruhi volume data yang akan dievaluasi, sehingga memengaruhi tugas waktu eksekusi. Misalnya, pertimbangkan perangkat yang diamati setiap lima menit (300 detik):
, ia menangkap sepuluh laporan, sementara di
, ia mencatat lima laporan, dan di
, ia hanya menangkap dua laporan.

Dengan berfokus pada skenario laboratorium, pola yang sama dipertahankan, seperti yang ditunjukkan pada Tabel 7. Algoritme tercepat untuk memprediksi status baru adalah BernoulliNB, sedangkan pengklasifikasi terburuk adalah K-neighbors. Hasil tersebut masuk akal karena perilaku di laboratorium umumnya memiliki hubungan yang terkendali antara aktivitas dan waktu.

6.2 Akurasi
Kinerja akurasi dievaluasi dengan mempertimbangkan dua skenario dan prediksi interval pohon.

Untuk Skenario Rumah, kami mengevaluasi BercnoulliNB, K-NeighborsClassifier, GaussianNB, MLPClassifier, RidgeClassifierCV, dan RidgeClassifier. Gambar 8 menunjukkan keakuratan setiap algoritma terkait waktu untuk memprediksi tindakan baru di perangkat secara keseluruhan. Menurut hasil, keakuratan tertinggi (99,37%) dicapai oleh RidgeClassifier dan RidgeClassifierCV pada
interval. Baik MLPClassifier dan K-NeighborsClassifier mencapai hasil yang menjanjikan pada
interval. Sementara MLPClassifier mencapai akurasi 97,48%, K-NeighborsClassifier mencapai 97,45%. Selain itu, pada
Dan
interval, perbedaan akurasi antara kedua algoritma ini hanya 0,04% dan 0,02%. Baik algoritma BernoulliNB maupun GaussianNB memperoleh hasil terburuk dibandingkan dengan algoritma lainnya. Namun, tingkat akurasinya masih tinggi, yakni 94,76% dari GaussianNB pada
interval dan 93,38%, konsekuensi minor dalam
selang.

GAMBAR 8
Algoritma dengan penekanan pada akurasi untuk skenario Rumah.

Untuk Skenario Lab, MLPClassifier, K-Neighbors, RidgeClassifier, dan RidgeClassifierCV mencapai akurasi tinggi di tiga interval:
Bahasa Indonesia:
, Dan
Perbedaan tingkat akurasi tertinggi yang diperoleh RidgeClassifierCV pada
dan K-Neighbors di
hanya 0,0016%. Gambar 9 menunjukkan bahwa algoritme tersebut memiliki akurasi yang tinggi, kemungkinan karena lingkungan yang terkendali dan perilaku siswa yang dapat diprediksi dibandingkan dengan lingkungan rumah tangga. Khususnya, GaussianNB dan BernoulliNB, mirip dengan lingkungan rumah tangga, mencapai akurasi yang sedikit lebih rendah daripada algoritme lainnya. BernoulliNB, khususnya, menghasilkan akurasi terendah, dengan akurasi tertinggi diamati pada
, diikuti oleh
Dan
interval.

GAMBAR 9
Perbandingan akurasi algoritma dalam skenario lab.

6.3 Algoritma Klasifikasi Terbaik
Untuk memperhitungkan karakteristik waktu nyata dari sistem yang diusulkan, pengklasifikasi yang dipilih harus menyeimbangkan efisiensi dan akurasi. Secara khusus, ketika perubahan status baru terjadi pada suatu perangkat, sistem harus dengan cepat dan akurat memprediksi tindakan lingkungan berikutnya. Kami mengusulkan Persamaan ( 8 ) berikut untuk mengintegrasikan hasil akurasi dan efisiensi:

Di mana
mewakili rasio akurasi dan waktu untuk algoritma rumah dan laboratorium, dan
menunjukkan jumlah perangkat di lingkungan. Akurasi ditunjukkan oleh variabel
, Dan
dari setiap interval dalam detik; total waktu dalam setiap percobaan dinyatakan dengan
, Dan
Persamaan tersebut menghitung akurasi rata-rata selama interval ini dan menormalkannya dengan total waktu pemrosesan, memastikan penilaian yang seimbang dari kedua metrik kinerja. Di antara algoritme yang disajikan, hasil akurasi memiliki indeks yang tinggi. Oleh karena itu, untuk analisis ini, waktu eksekusi merupakan penentu hasil, dengan BernoulliNB menyajikan hasil terbaik. Pada Tabel 8 , yang disajikan dalam hasil menaik untuk rasio tersebut, dapat diamati bahwa tiga algoritme pertama berdekatan, dan pilihan untuk memilih satu bergantung pada konteksnya.

TABEL 8. Perbandingan berbagai algoritma berdasarkan akurasi, waktu, dan rasio antara akurasi dan waktu.
Algoritma Akurasi umum Total Waktu Perbandingan
Bernoulli NB 0.946741 4.766667 0.198617
Klasifikasi Punggungan 0.994620 5.400000 0.184189
Bahasa gaussian 0.958637 5.600000 0.171185
Klasifikasi RidgeCV 0.994620 18.533333 0,053667
Klasifikasi MLP 0.986012 401.866667 0,002454
Klasifikasi K-Tetangga 0.985786 2825.300000 0,000349
Catatan : Huruf tebal digunakan untuk menyorot BernoulliNB (huruf tebal hijau) sebagai model paling efisien, dengan rasio waktu-ke-akurasi terbaik (0,198617), yang menunjukkan keseimbangan optimal antara akurasi dan biaya komputasi.

Berdasarkan hasil eksperimen yang diilustrasikan pada Gambar 10 , algoritma BernoulliNB adalah pilihan terbaik untuk sistem kami. Meskipun memiliki akurasi umum yang sedikit lebih rendah sebesar 94,67% dibandingkan dengan beberapa algoritma lainnya, seperti RidgeClassifier 99,46% dan MLPClassifier 98,60%, BernoulliNB unggul secara signifikan dalam hal efisiensi. Total waktu pemrosesannya hanya 4,77 detik, yang termasuk yang terendah yang diamati, dan mencapai rasio akurasi tertinggi terhadap waktu 0,198617. Ini menunjukkan bahwa BernoulliNB menawarkan keseimbangan terbaik antara akurasi dan kecepatan pemrosesan untuk skenario laboratorium dan rumah, menjadikannya pilihan yang paling cocok untuk aplikasi waktu nyata.

GAMBAR 10
Perbandingan algoritma yang mempertimbangkan rasio antara rata-rata akurasi dan waktu.

6.4 Diskusi
Percobaan menunjukkan bahwa pengklasifikasi multilabel dapat secara akurat memprediksi status perangkat pintar di masa mendatang. Kami dapat menghasilkan banyak prediksi yang benar untuk ekosistem IoT yang komprehensif dalam sepersekian detik. Kami menguji prediksi untuk tiga interval:
dengan akurasi terbaik dalam percobaan, diikuti oleh
Dan
. Oleh karena itu, kami memahami bahwa kami dapat menentukan secara tepat status menit berikut dari lingkungan cerdas. Meskipun memiliki pengklasifikasi yang mampu melakukan tugas ini, beberapa harus dibuang karena waktu eksekusi yang tinggi. Daftar ini mencakup algoritme BernoulliNB, GaussianNB, dan RidgeClassifier.

Dengan mempertimbangkan skenario yang diuji, rata-rata akurasi laboratorium dari semua algoritma adalah 98,98%, sedangkan rata-rata dari semua perangkat dalam skenario Rumah dengan mempertimbangkan ukuran perubahan status adalah 90,37%. Lingkungan rumah menyajikan akurasi rata-rata dari keseluruhan lingkungan sebesar 97,44%, dan menganalisis akurasi dalam perubahan status, akurasi rata-rata adalah 94,15%.

Salah satu keuntungan signifikan dari pengujian perangkat pintar multilabel adalah bahwa perangkat ini mematuhi permintaan pasar saat ini. Perangkat IoT terbaru di pasaran memungkinkan pengguna untuk mengatur berbagai fitur. Misalnya, selain sekadar menyalakan (menyalakan atau mematikan) lampu, pengguna kini juga dapat mengubah intensitas dan warna terangnya. Dengan demikian, berbagai status dapat diprediksi untuk setiap perangkat sekaligus.

7 Kesimpulan
Mengembangkan model untuk memprediksi perilaku manusia dan status perangkat menimbulkan beberapa tantangan. Dalam karya ini, kami menganalisis kemampuan algoritme multilabel untuk memperkirakan status perangkat yang baru. Strategi pembelajaran mesin multilabel menghasilkan hasil yang menjanjikan di seluruh algoritme yang dinilai dalam studi pembandingan kami. Eksperimen menunjukkan bahwa kami dapat menghasilkan banyak prediksi yang benar untuk ekosistem IoT yang komprehensif dalam sepersekian detik.

Dalam pekerjaan mendatang, kami bermaksud mengevaluasi pendekatan dalam skenario dunia nyata dan membandingkan hasilnya dengan investigasi di laboratorium. Ini akan mengarahkan kami untuk mengembangkan metodologi evaluasi baru sehingga pengguna akan hadir secara nyata, dan mengumpulkan umpan balik mereka akan sangat penting untuk memvalidasi asumsi kami. Bagaimanapun, investigasi metrik untuk mengevaluasi lingkungan cerdas sudah diramalkan. Kami juga perlu menghubungkan hasil pengklasifikasi dengan sistem rekomendasi sehingga variabel kontekstual harus dipertimbangkan sebelum mengubah status perangkat pintar.

Leave a Reply

Your email address will not be published. Required fields are marked *