Membuat Recommendation system dengan pandas dan numpy part 1 (PYTHON)

Build A Movie Recommendation System on Your Own

 

code:

import pandas as pd
import numpy as np

"""Membaca data"""
data = pd.read_json('data.json')

"""Mencari rata rata setiap produk lalu memasukkan nya pada array """
#Variable untuk menyimpan rata-rata rating dari setiap produk
arrrating = []
arrid = []

#Menuliskan rata rata Rating dari sabunid ke variable arrrating dan arrid
for x in range(200,226):
    cari = data['Sabunid'] == x
    arrrating.append(data[cari]['Rating'].mean())

for x in range(200,226):
    arrid.append(x)
    
"""Membuat dataframe untuk mencari Sabunid berdasarkan ratingnya"""
#Menampilkan DataFrame dari variable data
print("Data:")
print(data)
print("")
print("")

#Membuat DataFrame baru yang berisi sabunid dan rata rata ratingnya
lol = {
    "Sabunid":arrid,
    "Rating":arrrating
}
dframe = pd.DataFrame(lol)

#Menghiraukan jumlah nilai hanya menuliskan setiap nilai
reting = np.unique(arrrating)

#Mengetahui sabunid dari setiap rating lalu menyimpannya di variable hasil
hasil = []
for x in reting:
    cari123 = dframe['Rating'] == x
    hasil.append(dframe[cari123]['Sabunid'])

#hstack untuk menyatukan setiap array yang berada di variable hasil
npfinal = np.hstack(hasil)
print("Sabunid:       Rata-rata Rating:")
count = 0
ratingurut = np.sort(np.array(arrrating))
for x in npfinal:
    print(x,"          ",ratingurut[count])
    count += 1

print("3 Sabunid yang akan direkomendasikan adalah: ",",",npfinal[len(npfinal) - 1],",",npfinal[len(npfinal) - 2],",",npfinal[len(npfinal) - 3]," dengan rata rata rating nya adalah ",ratingurut[len(ratingurut) - 1],",",ratingurut[len(ratingurut) - 2],", dan ",ratingurut[len(ratingurut) - 3])


data.json:

{
    "Sabunid":{
        "1":206,
        "2":219,
        "3":221,
        "4":217,
        "5":225,
        "6":223,
        "7":223,
        "8":212,
        "9":211,
        "10":201,
        "11":213,
        "12":212,
        "13":220,
        "14":210,
        "15":215,
        "16":212,
        "17":219,
        "18":220,
        "19":207,
        "20":225,
        "21":217,
        "22":200,
        "23":216,
        "24":221,
        "25":200,
        "26":200,
        "27":218,
        "28":215,
        "29":207,
        "30":217,
        "31":203,
        "32":221,
        "33":208,
        "34":212,
        "35":212,
        "36":207,
        "37":203,
        "38":217,
        "39":216,
        "40":207,
        "41":203,
        "42":217,
        "43":200,
        "44":221,
        "45":209,
        "46":222,
        "47":204,
        "48":203,
        "49":207,
        "50":205,
        "51":211,
        "52":212,
        "53":209,
        "54":207,
        "55":204,
        "56":218,
        "57":221,
        "58":204,
        "59":207,
        "60":218,
        "61":216,
        "62":218,
        "63":204,
        "64":222,
        "65":209,
        "66":214,
        "67":214,
        "68":207,
        "69":206,
        "70":224,
        "71":219,
        "72":218,
        "73":217,
        "74":205,
        "75":203,
        "76":203,
        "77":201,
        "78":220,
        "79":204,
        "80":218,
        "81":211,
        "82":206,
        "83":218,
        "84":225,
        "85":220,
        "86":225,
        "87":206,
        "88":205,
        "89":201,
        "90":202,
        "91":222,
        "92":225,
        "93":205,
        "94":213,
        "95":223,
        "96":222,
        "97":213,
        "98":200,
        "99":219,
        "100":222
    },
    "Rating":{
        "1":"3.00",
        "2":"4.00",
        "3":"3.00",
        "4":"3.00",
        "5":"2.00",
        "6":"3.00",
        "7":"3.00",
        "8":"3.00",
        "9":"1.00",
        "10":"3.00",
        "11":"1.00",
        "12":"5.00",
        "13":"1.00",
        "14":"2.00",
        "15":"5.00",
        "16":"3.00",
        "17":"5.00",
        "18":"3.00",
        "19":"5.00",
        "20":"1.00",
        "21":"4.00",
        "22":"2.00",
        "23":"1.00",
        "24":"4.00",
        "25":"2.00",
        "26":"3.00",
        "27":"5.00",
        "28":"5.00",
        "29":"1.00",
        "30":"2.00",
        "31":"1.00",
        "32":"2.00",
        "33":"4.00",
        "34":"4.00",
        "35":"2.00",
        "36":"5.00",
        "37":"4.00",
        "38":"2.00",
        "39":"1.00",
        "40":"1.00",
        "41":"2.00",
        "42":"4.00",
        "43":"3.00",
        "44":"3.00",
        "45":"4.00",
        "46":"1.00",
        "47":"4.00",
        "48":"5.00",
        "49":"1.00",
        "50":"2.00",
        "51":"1.00",
        "52":"2.00",
        "53":"2.00",
        "54":"4.00",
        "55":"1.00",
        "56":"4.00",
        "57":"5.00",
        "58":"5.00",
        "59":"1.00",
        "60":"3.00",
        "61":"3.00",
        "62":"1.00",
        "63":"1.00",
        "64":"5.00",
        "65":"5.00",
        "66":"4.00",
        "67":"4.00",
        "68":"2.00",
        "69":"1.00",
        "70":"5.00",
        "71":"5.00",
        "72":"4.00",
        "73":"1.00",
        "74":"5.00",
        "75":"1.00",
        "76":"4.00",
        "77":"1.00",
        "78":"5.00",
        "79":"3.00",
        "80":"1.00",
        "81":"1.00",
        "82":"5.00",
        "83":"3.00",
        "84":"3.00",
        "85":"2.00",
        "86":"2.00",
        "87":"1.00",
        "88":"4.00",
        "89":"4.00",
        "90":"5.00",
        "91":"2.00",
        "92":"2.00",
        "93":"3.00",
        "94":"5.00",
        "95":"5.00",
        "96":"5.00",
        "97":"1.00",
        "98":"5.00",
        "99":"2.00",
        "100":"5.00"
    }
}



Komentar