データセットの変換(Dataset transformations)


   sci-kit learn User guide4章の解説。

   4.1.特徴量の抽出
    素性ベクトルを作成する時、bag-of-words, bag-of-bigrams方式や単語トークンの文脈ベクトル等々のベクトルが考えられる。
これをプログラム上で実装しよとするときに便利なのが scikit-learn のDictVectorizeクラスである。
     これを使うことで、dicクラスを簡単にベクトル化できる。
   
    下記がサンプルとなる。 初期化の際のsprase=Trueにすると、scipyの疎行列のクラスが使える。
    基本操作は

        ・fit(D)でベクトルの元となる辞書をロード
       
fit_transform(D)で辞書をロードし、ベクトル化。辞書が内部で保持される。
        ・
transform(D')で内部保持した辞書に基づいてベクトル化される。(元の辞書未出現の単語は除外される)
>>> from sklearn.feature_extraction import DictVectorizer
>>> v = DictVectorizer(sparse=False)
>>> D = [{'foo': 1, 'bar': 2}, {'foo': 3, 'baz': 1}]
>>> X = v.fit_transform(D)
>>> X
array([[ 2.,  0.,  1.],
       [ 0.,  1.,  3.]])
>>> v.inverse_transform(X) ==[{'bar': 2.0, 'foo': 1.0}, {'baz': 1.0, 'foo': 3.0}]
True
>>> v.transform({'foo': 4, 'unseen_feature': 3})
array([[ 0.,  0., x

   4.2 TF-IDF値の導出。
    sci-kit learnにはTF-IDF値を出してくれるクラスも存在する。


  
 
Comments