Skip to content

Commit

Permalink
Create collaborative_filtering.py (#386)
Browse files Browse the repository at this point in the history
<!-- ISSUE & PR TITLE SHOULD BE SAME-->
## Description
<!--Please include a brief description of the changes-->


## Related Issues

<!--Cite any related issue(s) this pull request addresses. If none,
simply state “None”-->
- Closes #

## Type of PR
<!-- Mention PR Type according to the issue in brackets below and check
the below box -->
- [ ] ()

## Screenshots / videos (if applicable)
<!--Attach any relevant screenshots or videos demonstrating the
changes-->


## Checklist
<!-- [X] - put a cross/X inside [] to check the box -->
- [ ] I have gone through the [contributing
guide](https://github.com/Anjaliavv51/Retro)
- [ ] I have updated my branch and synced it with project `main` branch
before making this PR
- [ ] I have performed a self-review of my code
- [ ] I have tested the changes thoroughly before submitting this pull
request.
- [ ] I have provided relevant issue numbers, screenshots, and videos
after making the changes.
- [ ] I have commented my code, particularly in hard-to-understand
areas.


## Additional context:
<!--Include any additional information or context that might be helpful
for reviewers.-->
  • Loading branch information
Anjaliavv51 authored Oct 15, 2024
2 parents 4aa2ab2 + fa761c5 commit 493dc05
Showing 1 changed file with 20 additions and 0 deletions.
20 changes: 20 additions & 0 deletions collaborative_filtering.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
from surprise import Dataset, Reader, SVD
from surprise.model_selection import train_test_split, accuracy

# Load data from database
data = cursor.execute('SELECT user_id, item_id, interaction_type FROM user_interactions').fetchall()

# Convert to Surprise dataset
reader = Reader(rating_scale=(1, 5))
dataset = Dataset.load_from_df(pd.DataFrame(data, columns=['user_id', 'item_id', 'interaction_type']), reader)

# Train-test split
trainset, testset = train_test_split(dataset, test_size=0.25)

# Train model
algo = SVD()
algo.fit(trainset)

# Test model
predictions = algo.test(testset)
accuracy.rmse(predictions)

0 comments on commit 493dc05

Please sign in to comment.