つまりなにしたの?
Blogでサンプルを使いつつ、処理方法を紹介する時に便利なscikit-learnのdatasetsにはどんなのが入っているのか
まとめておこうと思ってまとめ始めた。今回はNewsgroupのテキストデータ。
*1
やりたいこと
- datasetsの種類リスト
- 各説明変数の内容を簡単に示す
- それぞれ読み出してみる
- 目的変数のサンプルなどを示す
今回は中でもNewsgroupのテキストデータについて紹介する。
環境
% python Python 3.6.4 (default, Mar 2 2018, 00:45:54) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import numpy >>> import pandas >>> import sklearn >>> numpy.__version__ '1.15.3' >>> pandas.__version__ '0.23.4' >>> sklearn.__version__ '0.20.0'
datasetsの種類とリスト
5. Dataset loading utilities — scikit-learn 0.20.1 documentation
- Toy datasets
- Real datasets
リアルデータセットと呼ばれる実際に研究のベンチマークに使われてる(てた)データセットを紹介していく。
- Generated datasets
今回は各種データセットについて、読み込みの上Pandas DataFrameの説明変数と目的変数を作成することを目的とする。
importするもの
import pandas as pd from sklearn import datasets
テキストデータセット
20 newsgroups text datasetは、学習用とテスト用の2つのサブセットに分割された20のトピックに関する約18000のニュースグループの投稿で構成されている。
学習用とテスト用の間の分割は、特定の日付を境にされていて、混ざっているわけではない。
5. Dataset loading utilities — scikit-learn 0.20.1 documentation
また、このデータセットはもともとはもちろん投稿されたデータなのだが、そのままでは扱いにくいので、
単語の出現回数に直したベクトルのデータを取得することもできる。
sklearn.datasets.fetch_20newsgroups は直接テキストデータを読み出す方法。
sklearn.datasets.fetch_20newsgroups_vectorized はベクトル化されたデータを読み出す方法。
説明変数
sklearn.datasets.fetch_20newsgroupsの場合
- テキストデータ
sklearn.datasets.fetch_20newsgroups_vectorized
- 単語ごとの出現回数
学習データの読み込み(Raw Text)
data = datasets.fetch_20newsgroups() df = pd.DataFrame(data.data) df.head()
序盤だけしか表示されていないけど、投稿者情報とかが見えている。
直接読みに行くとこんな感じ
df[0][0]
学習データの読み込み(Vectorized)
data = datasets.fetch_20newsgroups_vectorized() data.data
単語ごとの出現回数のベクトルなのでスパースなマトリクスができていた。
対象データの読み込み
df_tgt = pd.DataFrame(data.target, columns=['target'])
df_tgt.head()
カテゴリに数字が与えられている。