AI & MACHINE LEARNING PROGRAM • LEVEL 16 — RECOMMENDATION SYSTEMS

Calculate User Similarity with Python

Learn calculate user similarity with python with a short, executable Python example.

IntermediateCosine similarityCollaborative filtering

PROBLEM UNDERSTANDING

Input and expected output

Sample input
No input required
Sample output
0.975

COMPLETE PYTHON PROGRAM

Complete Python implementation

ai-ml-16-cosine-similarity.py
Open in compiler
from math import sqrt
a,b=[5,3,0],[4,3,1]
dot=sum(x*y for x,y in zip(a,b))
cosine=dot/(sqrt(sum(x*x for x in a))*sqrt(sum(y*y for y in b)))
print(round(cosine,3))

GUIDED CODE TOUR • NOT LIVE EXECUTION

Study the program line by line

Use the real compiler button above to run and debug with different inputs.

CURRENT STEP

Select Start to walk through the important lines.

SELECTED LINE

No line selected

EXPECTED OUTPUT FOR THE SAMPLE

0.975
0%Step 0 of 0

PROGRAM EXPLANATION

Algorithm and explanation

  1. Import the required standard-library tools and prepare the sample data for calculate user similarity.
  2. Process the data step by step using Cosine similarity and Collaborative filtering.
  3. Display the result for calculate user similarity and compare it with the documented sample output.

This example of calculate user similarity processes the sample values in a controlled iteration. It demonstrates Cosine similarity and Collaborative filtering and prints a deterministic result that can be checked against the sample output.

EFFICIENCY

Time and space complexity

Time complexity

O(d)

Auxiliary space

O(1)

DEBUGGING CHECKLIST

Common mistakes

Check this

For calculate user similarity, keep the data shape and value types consistent with Cosine similarity.

Check this

Keep every dependent statement inside the correct indented Python block.

Check this

Check denominators, numeric ranges and rounding before comparing the calculated value.

Try it yourself

Practice: Run the program with the sample input, predict its output, and then test one boundary case of your own.