【Python进阶】Python计算consine相似性矩阵

在Jupyter环境中,为了基于`movies_data.csv`文件推荐电影,我们通常需要执行以下几个步骤: 1. **数据加载**: 首先,我们需要导入所需的库,如pandas用于处理CSV文件,numpy用于数学计算,以及scikit-learn的cosine_similarity模块来进行余弦相似度计算。 ```python import pandas as pd import numpy as np from sklearn.metrics.pairwise import cosine_similarity ``` 2. **数据预处理**: 加载CSV文件,并提取与电影 Avatar 相关的数据。假设电影名在 'title' 列,其他描述特征在 'features' 列(如演员、导演、类型等)。 ```python df = pd.read_csv('movies_dataest.csv') avatar_df = df[df['title'] == 'Avatar'] movie_features = df.drop_duplicates(subset=['title'])['features'].values ``` 3. **计算相似度矩阵**: 将所有电影的特征向量转换成数值型,并计算它们之间的相似度。这里使用 `TfidfVectorizer` 来处理文本特征。 ```python from sklearn.feature_extraction.text import TfidfVectorizer vectorizer = TfidfVectorizer() movie_vectors = vectorizer.fit_transform(movie_features) similarity_matrix = cosine_similarity(movie_vectors) ``` 4. **找到类似电影**: 找到Avatar所在行的所有相似度,并按降序排列。然后选择前10个最相似的电影。 ```python # 获取Avatar对应的索引 avatar_index = df[df['title'] == 'Avatar'].index[0] similar_movies_indices = similarity_matrix[avatar_index].argsort()[::-1][1:11] # 返回推荐的电影标题 recommended_movies = df.loc[similar_movies_indices]['title'].tolist() ``` 5. **结果展示**: 最后,将推荐的电影打印出来。 ```python print("Based on Avatar, here are your top 10 recommendations:") for i, movie in enumerate(recommended_movies, start=1): print(f"{i}. {movie}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值