def user_recommendations(person): # Gets recommendations for a person by using a weighted average of every other users' rankings totals = {} simSums = {} rankings_list = [] for other in dataset.keys(): if other == person: continue similarity = pearson_correlation(person, other) if similarity <= 0: continue for item in dataset[other]: if item not in dataset[person] or dataset[person][item] == 0: # similarity * score totals.setdefault(item, 0) totals[item] += dataset[other][item] * similarity # sum of similarities simSums.setdefault(item, 0) simSums[item] += similarity # Create the normalized list rankings = [(total / simSums[item], item) for item, total in totals.items()] rankings.sort(key=lambda t: t[0], reverse=True) recommender_list = [item for score, item in rankings] return recommender_list
def recursionByStudents(user_idents=list(dataset.keys()), result_dict=dict()): if user_idents == []: return else: him = user_idents[0] result.append(him) return recursionByStudents(user_idents[1:])
def addUserHotels(user_name, hotel_name, price): if user_name is None and hotel_name is None and price is None: return clients = list(dataset.keys()) if user_name not in clients: dataset[user_name] = { "hotels": { hotel_name: { "price": [price] }, } } return hotels_client = list(dataset[user_name]['hotels'].keys()) if hotel_name not in hotels_client: dataset[user_name]['hotels'][hotel_name] = {"price": [price]} return dataset[user_name]['hotels'][hotel_name]['price'].append(price)
def recursionByID(id=list(dataset.keys()), result_dict=dict()): if id == []: return result_dict id = id[0] bank_list = list(dataset[id].keys()) credit = recursionByBank(id, bank_list) result_dict[id] = credit return recursionByID(id[1:], result_dict)
def recursionByUsers(users_id = list(dataset.keys()), result_dict = dict()): if users_id == []: return result_dict user_id= users_id[0] banks = list (dataset[user_id].keys()) money = recursionByProducts(user_id, banks) result_dict[user_id] = money return recursionByUsers(users_id[1:], result_dict)
def recByUser(user_nums=list(dataset.keys()), result_dict=dict()): if user_nums == []: return result_dict user_num = user_nums[0] country_list = list(dataset[user_num].keys()) allMoney = recPrice(user_num, country_list) result_dict[user_num] = allMoney return recByUser(user_nums[1:], result_dict)
def recursionByUsers(user_codes = list(dataset.keys()), result_dict = dict()): #TODO if user_codes == []: return result_dict user_code = user_codes[0] country_list = list (dataset[user_code].keys()) money = recursionByProducts(user_code, country_list) result_dict[user_code] = money return recursionByUsers(user_codes[1:], result_dict)
def reByUser(phones=list(dataset.keys()), result=dict()): if phones == []: return result hotels_dict = dataset[phones[0]]['hotels'] count = len(hotels_dict.keys()) result[phones[0]] = count return reByUser(phones[1:], result)
def recursion_by_cars(car_numbers=list(dataset.keys()), result_dict = dict(), i=0): if i==len(car_numbers): return result_dict car_number= car_numbers[i] user_list = list(dataset[car_number].keys()) money = recursion_by_users(car_number, user_list) result_dict[car_number] = money return recursion_by_cars(car_numbers, result_dict, i+1)
def recursionByUsers(user_emails=list(dataset.keys()), result_dict=dict()): if user_emails == []: return result_dict user_email = user_emails[0] product_list = list(dataset[user_email].keys()) money = recursionByProducts(user_email, product_list) result_dict[user_email] = money return recursionByUsers(user_emails[1:], result_dict)
def recursionByauto(user_auto = list(dataset.keys()), result_dict = dict()): if user_auto == []: return result_dict user_auto = user_auto[0] product_list = list(dataset[user_auto].keys()) money = recursionByRace(user_auto, product_list) result_dict[user_auto] = money return recursionByauto (user_auto[1:], result_dict)
from data import dataset from task1 import * import plotly import plotly.graph_objs as graph data = dict() for user_num in list(dataset.keys()): for county, country_list in (dataset[user_num]).items(): if user_num in data: data[user_num] += sum(country_list) else: data[user_num] = sum(country_list) print(data) diagram = graph.bar(x=list(data.keys()), y=list(data.values())) figure = graph.Figure(data=[diagram]) plotly.ofline.plot(figure, filename='user costs.html')
from data import dataset, clients all_products = {position[2] for position in clients} for product in all_products: counter = 0 for name in dataset: for date in dataset[name]: if product in dataset[name][date]: counter += 1 break if counter == len(dataset.keys()): print('Everyone bought', product)
from data import dataset from task1 import * import plotly import plotly.graph_objs as go data = dict() for user_id in list(dataset.keys()): for bank, money in (dataset[user_id]).items(): if user_id in data: data[user_id] += sum(money) else: data[user_id] = sum(money) #Вивести кругову діаграму: якого товару на яку суму продано. diagram = go.Pie(labels=list(data.keys()), values=list(data.values())) plotly.offline.plot([diagram], filename="task5.html")
from data import dataset from task1 import * import plotly import plotly.graph_objs as go data = dict() def sumbank(result, bank_list): result += 0.0 for item in bank_list: result += float(item[1:-4]) return result for ID in list(dataset.keys()): for bank, bank_list in (dataset[ID]).items(): if ID in data: data[ID] += sum(bank_list) else: data[ID] = sum(bank_list) print(data) diagram = go.Bar( x=list(data.keys()), y=list(data.values()) ) fig = go.Figure(data=[diagram]) plotly.offline.plot(fig, filename='user expenses.html')
from data import dataset from task1 import * import plotly import plotly.graph_objs as go dataset_hostels_mach = [ len(dataset[i]['hotels'].keys()) for i in dataset.keys() ] #Вивести кругову діаграму: якого товару на яку суму продано. diagram = go.Pie(labels=list(dataset.keys()), values=dataset_hostels_mach) plotly.offline.plot([diagram], filename='hotelsdia.html')
from data import dataset from task1 import * import plotly import plotly.graph_objs as go #Вивести кругову діаграму: скільки хто витратив грошей data = dict() for car in list(dataset.keys()): for user in list(dataset[car].keys()): for price in dataset[car][user]['price']: if user in data: data[user] += price else: data[user] = price print(data) diagram = go.Pie(labels=list(data.keys()), values=list(data.values())) plotly.offline.plot([diagram], filename='products.html')
from data import dataset from task1 import * import plotly import plotly.graph_objs as go #Вивести стовпчикову діаграму: хто скільки грошей витратив. data = dict() for user_auto in list (dataset.keys()): for race, product_race in ( dataset[user_auto]).items(): if user_auto in data: data[user_auto] += sum(product_race) else: data[user_auto] = sum(product_race) print(data) diagram = go.Bar( x=list(data.keys()), y=list(data.values()) ) fig = go.Figure(data=[diagram]) plotly.offline.plot(fig, filename='user expenses.html')
from data import dataset from task1 import * import plotly import plotly.graph_objs as go dataset_hostels_mach = [ len(dataset[i]['hotels'].keys()) for i in dataset.keys() ] data = go.Bar( x=list(dataset.keys()), y=dataset_hostels_mach, ) fig = go.Figure(data=[data]) plotly.offline.plot(fig, filename='hotels.html')
from data import dataset from Task1 import * import plotly import plotly.graph_objs as go #Вивести кругову діаграму: якого товару на яку суму продано. data = dict() for user_email in list (dataset.keys()): for product, products_list in (dataset[user_email]).items(): if product in data: data[product] += sum(products_list) else: data[product] = sum(products_list) print(data) diagram = go.Pie(labels=list(data.keys()), values=list( data.values())) plotly.offline.plot([diagram], filename='products.html')
from data import dataset from task1 import * import plotly import plotly.graph_objs as go #Вивести стовпчикову діаграму: скільки тем в кожній дисципліні. datas = dict() data = dict() for ident in list(dataset.keys()): datas[ident] = {} for clas in dataset[ident]: if clas in datas[ident]: datas[ident][clas] += 1 data[clas] += 1 else: datas[ident][clas] = 1 data[clas] = 1 print(data) diagram = go.Bar(x=list(data.keys()), y=list(data.values())) fig = go.Figure(data=[diagram]) plotly.offline.plot(fig, filename='user_topics.html')
from data import dataset from task1 import * import plotly import plotly.graph_objs as go #Вивести кругову діаграму: у якого студента скільки тем datas = dict() data = dict() for ident in list(dataset.keys()): datas[ident] = {} for clas in dataset[ident]: if clas in datas[ident]: datas[ident][clas] += 1 data[clas] += 1 else: datas[ident][clas] = 1 data[clas] = 1 print(data) diagram = go.Pie(labels=(list(dataset.keys())), values=list(data.values())) fig = go.Figure(data=[diagram]) plotly.offline.plot(fig, filename="topics_pie.html")
from data import dataset from task1 import * import plotly import plotly.graph_objs as go #Вивести кругову діаграму: якого товару на яку суму продано. data= dict() for name_auto in list (dataset.keys()): for race, race_list in (dataset[name_auto]).items(): if race in data: data[race] += sum(race_list) else: data[race] = sum(race_list) print(data) diagram =go.Pie((labels=list(data.keys()), values=list( data.values()))) plotly.offline.plot([diagram], filename = "auto.html")