Algoritma Slope One 21


Algoritma Slope One adalah salah satu algoritma yang dapat digunakan untuk memprediksikan sebuah kejadian. Contoh yang dibahas kali ini adalah mengenai penentuan rating sebuah barang berdasarkan data-data yang sudah ada.
Algoritma ini adalah bentuk yang paling mudah dari teknik Collaborative Filtering barang yang berbasis pada rating. Kemudahan ini menyebabkan algoritma ini mudah untuk diterapkan dengan tingkat ketepatan yang tidak kalah dari algoritma dengan perhitungan yang jauh lebih sulit. Dan algoritma ini akhirnya digunakan sebagai dasar untuk pengembangan beberapa algoritma lain.



Diasumsikan ada 12 data barang yang dijual, dengan data sebagai berikut:

Barang
Pensil Pensil 2B Pensil 3B Pensil 4B
Pena Pena Merah Pena Biru Pena Hitam
Penggaris Penggaris 15cm Penggaris 20cm Penggaris 30cm
Buku Buku Tulis Buku Gambar Komik

Contoh data barang adalah sebagai berikut:

Kemudian diketahui terdapat 10 pelanggan yang sudah memberi rating pada beberapa barang yang disukai pelanggan tersebut
Diasumsikan 10 data rating pelanggan tersebut adalah sebagai berikut:
Akan terdapat 12 kolom angka dengan urutan barang sesuai dengan urutan barang diatas
Angka 0 berarti tidak memberikan rating, selain itu berarti memberikan rating

Nama Pelanggan
Pelanggan A 3 3 1 10 3 3 4 10 2 8 0 3
Pelanggan B 8 10 3 3 3 8 2 5 2 3 10 5
Pelanggan C 8 5 4 2 4 4 9 0 9 2 10 5
Pelanggan D 0 5 4 0 1 3 4 4 6 4 9 2
Pelanggan E 3 9 6 2 1 1 1 3 8 7 9 3
Pelanggan F 7 10 7 6 5 0 3 2 4 0 7 3
Pelanggan G 5 0 4 9 5 4 9 0 5 1 0 8
Pelanggan H 1 2 4 4 4 2 10 6 10 0 4 10
Pelanggan I 2 9 4 4 0 1 4 6 1 0 7 7
Pelanggan J 9 0 9 10 6 10 3 0 5 7 9 9

Contoh data rating pelanggan adalah sebagai berikut:

Maka tentukan rating barang untuk barang-barang yang belum diberi rating pada pelanggan tertentu (yang bernilai 0 pada data tersebut)


Langkah-langkah penggunaan algoritma ini adalah

1. Masukkan data rating barang semua pelanggan pada semua variabel yang dibutuhkan

Memasuki perhitungan pada fungsi TambahRating

1a. Lakukan perhitungan untuk setiap data rating pelanggan (poin 1a1 – 1a2)

1a1. Simpan indeks barang tersebut

1a2. Lakukan perhitungan untuk setiap data rating pelanggan lainnya (poin 1a2a – 1a2d)

1a2a. Jika indeks barang sama, maka lanjutkan perhitungan ke barang lainnya
Karena tidak perlu menyimpan data yang sudah pernah disimpan sebelumnya

1a2b. Hitung nilai selisih rating antara 2 barang yang dibandingkan

1a2c. Simpan nilai selisih barang tersebut

1a2d. Simpan pula berapa ada berapa banyak pelanggan yang memberi rating untuk kedua barang tersebut

2. Tentukan pelanggan yang akan dicari rating barangnya

3. Cari rating barang untuk barang-barang yang belum diberi rating pada pelanggan tersebut
Penjelasan lebih detail tentang fungsi ini dapat dilihat pada penjelasan skrip dibawah ini

Memasuki perhitungan pada fungsi HitungPrediksi

3a. Lakukan perhitungan pada setiap indeks barang yang sudah memiliki rating (poin 3a1 – 3a3)

3a1. Jika barang tersebut sudah memiliki rating, maka lanjutkan ke perhitungan berikutnya

3a2. Lakukan perhitungan untuk setiap data rating pelanggan lainnya (poin 3a2a – 3a2b)

3a2a. Jika indeks barang sama, maka lanjutkan perhitungan ke barang lainnya
Karena Tidak perlu menghitung rating barang yang sama

3a2b. Hitung nilai rating masing-masing barang dengan rumus = frekuensi * selisih rating
Kemudian jumlahkan semua nilai rating ini
Hitung pula frekuensi dengan rumus penjumlahan dari semua frekuensi barang tersebut

3a3. Simpan data prediksi rating untuk masing-masing barang yang belum diberi rating

* Agar dapat menjalankan skrip diatas, maka diperlukan 3 buah Class
Class Rating digunakan untuk menampung data rating dan jumlah frekuensi data tersebut
Class DictSelisihRating digunakan untuk menampung data selisih rating masing-masing barang
Class SlopeOne sebagai class utama untuk menambah rating dan menghitung prediksi
Deklarasi masing-masing class tersebut adalah sebagai berikut:


Hasil akhir adalah: (klik untuk perbesar gambar)

cmd72


Contoh modul / source code dalam bahasa VB (Visual Basic) dapat didownload disini:



Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.


Tinggalkan sebuah komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

21 pemikiran di “Algoritma Slope One

  • Sulis

    sangat membantu sekali gan,, apakah ada tutorial sistem rekomendasi lokasi menggunakan python? dengan algoritma slope one atau dbscan?terimakasih

    • pip Penulis

      Mohon maaf untuk bahasa pemrograman phyton mungkin saat ini saya belum bisa membantu. Tetapi sebenarnya algoritma ini ada salah satu algoritma yang cukup mudah untuk dipahami, sehingga mungkin anda dapat mencoba untuk melakukan konversi ke dalam bahasa lain

  • ChunLie

    Hello gan saya mau nanya..

    di katakan di atas kalau “Algoritma ini adalah bentuk yang paling mudah dari teknik item based Collaborative Filtering”
    perbedaan antara collabrative filtering dengan algoritma slope one apa yah ?

    Thx ~

    • pip Penulis

      Menurut pendapat saya pribadi, teknik Collaborative Filtering adalah modifikasi lebih lanjut dari algoritma Slope One. Ada beberapa perhitungan tambahan yang harus dilakukan setelah mendapatkan jawaban dengan algoritma Slope One.

  • HB

    min, mau tanya. apakah algoritma ini bisa deterapkan untuk sistem rekomendasi dalam ecommerce? jd bahasanya menggunakan php. apakah admin punya contoh untuk yang versi php?

    • pip Penulis

      Ruang lingkup dari topik e-commerce masih terlalu luas sehingga saya tidak dapat mengetahui apakah sistem yang anda miliki dapat diselesaikan menggunakan algoritma ini. Silahkan anda ceritakan lebih detail.

      • HB

        Hehe, jd sebenernya saya jg agak bingung krn saya masihlah seorang pemula. Jadi maksud saya algoritma ini diterapkan dalam sistem rekomendasi di e-commerce, dimana nantinya akan merekomendasikan sebuah item, misalkan saja sebuah film. Jadi film tersebut nantinya akan diberi rating dan diproses seperti yang sudah dijelaskan diatas. Seperti itu min, maaf jika penjelasannya kurang jelas.

        • pip Penulis

          Jika anda masih belum mendapatkan gambaran topik secara spesifik, maka sepertinya masih sulit bagi saya untuk menjawab pertanyaan yang anda sampaikan sebelumnya. Silahkan anda melakukan riset terlebih dahulu.

    • pip Penulis

      Jika data yang digunakan adalah sama, maka hasilnya akan selalu sama karena tidak ada variabel acak dalam perhitungan ini. Jika ingin mendapatkan hasil berbeda, maka silahkan menggunakan data yang berbeda.

        • khairul

          mau nanya min algoritma slope one bisa digunakan untuk sistem pengambilan keputusan tidak ? seperti sistem pengambilan keputusan pemilihan mobil

        • pip Penulis

          Jika menggunakan perhitungan algoritma slope one murni, maka hasilnya akan seperti ini. Selanjutnya apabila diperlukan teknik pengambilan keputusan, maka algoritma ini harus dimodifikasi agar dapat melakukan hal tersebut. Jika anda sudah memiliki referensi jurnal, biasanya teknik modifikasi yang diperlukan sudah dijelaskan di dalam jurnal tersebut.

    • pip Penulis

      Sejauh ini saya hanya menemukan contoh kasus dengan sistem rating seperti ini, tetapi seharusnya tidak menutup kemungkinan untuk jenis kasus lainnya yang memiliki tingkat kemiripan seperti kasus ini