Official Model Analysis in Tensorflow with MovieLens

MovieLens

MovieLens 是一个常见的数据集合, 经常用来做推荐效果的测试.
Tensorflow 提供了基于 Wide&Deep 模型的一个基础模型. 是用Estimator进行实现的. 方便进行分布式的训练.

项目文件

Tensorflow的官方模型中, 在 Wide & Deep 这一模型下分别实现了 Census 和 MovieLens 两个数据集上的实现. 这里我们只介绍 MovieLens.
相关的文件如下所示 ( 2019-03-20 : 把movies.py 单独放在datasets文件夹下有些奇怪 ) :

model/oficial/wide_deep/

model/official/datasets/

学习到的小技巧

  1. 将 CSV 文件生成 DataFrame 写入 Buffer 中, 方便 DataSet 读取.
  2. 将DataFrame中的某一列转换为向量.

将 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

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据