目录
MovieLens
MovieLens 是一个常见的数据集合, 经常用来做推荐效果的测试.
Tensorflow 提供了基于 Wide&Deep 模型的一个基础模型. 是用Estimator进行实现的. 方便进行分布式的训练.
项目文件
Tensorflow的官方模型中, 在 Wide & Deep 这一模型下分别实现了 Census 和 MovieLens 两个数据集上的实现. 这里我们只介绍 MovieLens.
相关的文件如下所示 ( 2019-03-20 : 把movies.py 单独放在datasets文件夹下有些奇怪 ) :
学习到的小技巧
将 CSV 文件生成 DataFrame 写入 Buffer 中, 方便 DataSet 读取
将DataFrame中的某一列转换为向量
"""
__file_name__ : movielens.py
"""
def integerize_genres(dataframe):
"""Replace genre string with a binary vector.
Args:
dataframe: a pandas dataframe of movie data.
Returns:
The transformed dataframe.
"""
def _map_fn(entry):
entry.replace("Children's", "Children") # naming difference.
movie_genres = entry.split("|")
output = np.zeros((len(GENRES),), dtype=np.int64)
for i, genre in enumerate(GENRES):
if genre in movie_genres:
output[i] = 1
return output
dataframe[GENRE_COLUMN] = dataframe[GENRE_COLUMN].apply(_map_fn)
return dataframe