347

勉強のこと、酒のことを書いていく

テキストデータ、画像データと特徴量

3連休、世間の独身の方々はどう過ごしているのでしょうか

酒と読書以外に趣味を見つければ有意義になるのか

3連休とは無関係だけど、30日間スクワットチャレンジが続いている、今日は105回

 

Udemyで8分程度の動画を毎日1-2本見ながら勉強しているけど、

  • 動画を見て適宜止めつつコードを書いてみて、
  • 動かしてみて、
  • 内容を確認、
  • わからないことがあれば別途調べて
  • ブログにメモ

を繰り返していると動画1本あたり50分くらいかかる不思議

 

テキストデータの特徴抽出
  • http://www.gutenberg.org/files/11/11-0.txt から著作権の切れている、不思議の国のアリスのテキストデータをダウンロード、これを使う
  • テキストデータを特徴量に変換する
  • sklearn.feature_extraction.text というテキストデータ用のクラスを使用する
  • ダウンロードしたテキストを fit で学習、transform でベクトル化
  • CountVectorizer を使用することで、文書に含まれる全単語の出現回数に変換される
  • 文書に含まれる単語の出現回数は、その文書を表す特徴量となる、テキストデータの特徴量変換の方法の1つ

 

画像データの特徴抽出
  • sklearn.datasets に含まれる load_sample_image をimportして方法を学ぶ
  • Importエラーが出るので何かと思ったら画像処理ライブラリが入っていないようだった
  • pip install Pillow でインストールしたところ解消、サンプル画像が表示された
  • 427 × 600 のRGBで表現された画像
  • 特徴抽出のわかりやすい方法として、ヒストグラムを作成する
  • ヒストグラムは横軸が濃度、縦軸が画素数で表したグラフ
  • RGBそれぞれで10個の区間を持つヒストグラムを作成する 
histR = plt.hist(china[:,:,0].ravel(), bins=10)
histG = plt.hist(china[:,:,1].ravel(), bins=10)
histB = plt.hist(china[:,:,2].ravel(), bins=10)
import numpy as np
histRGBcat = np.hstack( (histR[0], histG[0], histB[0]) )
plt.bar(range(len(histRGBcat)), histRGBcat)

f:id:geva:20181007204827p:plain

  • これで30次元のベクトル化ができたが、実際にはRGBでベクトル化しても識別がうまくいかないのであまり使われない、らしい(動画で言ってた)

 

学んだこと
  • 画像について勉強してこなかったため、理解が追いつかない…
  • 後にやりたいことでは音声データを扱いたいので、同様の苦労が出てきそう
  • はてなブログでコードを載せるのにいい方法はないものか