機械学習(特に強化学習)が好きな人のノート

機械学習関連のことをまとめていきます。強化学習関連が多いかもしれません

【keras, データセット】IMDB映画レビューデータセット

今回はkerasが提供しているIMDB映画レビューデータセット
ついて調べた内容をお話します。

データセットの概要

IMDB映画レビューデータセットとは、
Internet Movie Database(IMDB)というデータベースの
映画に関するレビュー情報に感情(肯定/否定)のラベル付けをしたデータセット
なので、各映画のレビューに肯定/否定の情報が付与されています。

kerasでは、各レビューは頻出単語のベクトルで変換してあるので、
モデルの学習をしやすくなってます。

データの内容

まず、以下のコードでデータを読み込みます。
今回は頻出頻度上位100個の単語(num_words)を対象とし、
各文章の出現頻度上位20単語(maxlen)のベクトルをレビュー(文章)を表現します。
対象外(頻出頻度上位100個に入らない単語)の場合は200(oov_char)で表現します。

import keras
from keras.datasets import imdb

(x_train, y_train), (x_test, y_test) = imdb.load_data(path="imdb.npz",
                                                      num_words=100,
                                                      skip_top=0,
                                                      maxlen=20,
                                                      seed=113,
                                                      start_char=1,
                                                      oov_char=200, # 
                                                      index_from=3)

説明変数(X)

説明変数は、各レビューに含まれる頻出単語ベクトルになります。

x_trainの最初の要素を見てみます。

print(x_train[0])
# => [1, 6, 200, 7, 200, 200, 24, 200, 8, 200, 89, 200, 200, 5, 200, 78, 14, 20, 9]

自然数は単語を表しています。
もし、全体頻出頻度100単語に含まれない単語の場合200という値を割り当てています。
これが、文章の特徴となっています。

目的変数(Y)

次に目的変数を見てみます。
目的変数は感情(肯定/否定)の2値をとります。
つまり、0か1となります。
先程の文章(x_train[0])の目的変数(y_train[0])は

print(y_train[0])
# => 0

参考文献

https://keras.io/ja/datasets/#imdb