# Python数据分析代写 | CS 365: Homework 5 Programming Exercises

• ALL

In [1]:
# here are some examples of imports
import matplotlib.pyplot as plt # for plotting
import numpy as np # for simulating random choices
from collections import Counter # for aggregating the results

In the following exercises, we will run simulations of a recommender system that recommends
movies to users, as we discussed in class on 9/23, and in this Piazza post:
https://piazza.com/class/ksg5aj427qney?cid=126

## Step 1: Baseline Movie Ratings

We will start by generating baseline star-ratings to movies. We assume there are movies in the
system, and their ratings are distributed uniformly between 1.0 stars (terrible) and 5.0 stars
(awesome).

In [2]:
k = 10000
movies = np.random.uniform(1.0, 5.0, k)
print (movies)
[2.60119723 2.35860193 1.80319649 … 4.439829 4.32918526 2.44776013]

## Exercise 1: Simulating User Populations

In this exercise, we ask you to now simulate ratings from two user different populations.
User population 1 consists of random movie-watchers. They pick movies completely at random,
without regard to the underlying rating. After watching movie i with rating ri , they then
generate a user rating

where δ is uniform on [-1.0, 1.0]
and constrain that rating to be in the valid range [1.0, 5.0]
u = max(1.0, u) # round up to 1.0 if needed
u = min(5.0, u) # round down to 5.0 if needed

A rating is recorded as the tuple (i, u).
Produce a list of 50,000 ratings produced by user population 1 and report the average rating the
users generated as average1.
====================
User population 2 consists of more discriminating users. They choose movies proportionally to
the underlying rating using the following selection probabilities:

They then generate a user rating using the same method as user population 1, except their δ is
uniform on [-0.5, 0.5].

Produce a list of 50,000 ratings produced by user population 2 and report the average rating the
users generated as average2.

[Hint: Implementation time-saver: consider using the numpy function random.choice() to
implement selections for User population 2]

In [3]:
# Your code here to compute average1 and average2
In [12]:
print(average1, average2)

E-mail: vipdue@outlook.com  微信号:vipnxx