かずきち。の日記

Pythonエンジニア&元東大生のつぶやき

機械学習を利用したTwitterの発言の男女推定

さて今回はSVM(Support Vector Machine)を使って、Twitterの発言からユーザの男女を判定するプログラムを作りました。
ウェブ工学とビジネスモデルの授業の鬼畜さにもだいぶ慣れてきましたw
友達が卒業研究で使っていたけれど、実は自分が使うのは初めてという技術でした。
いろいろ使ってみてカーネル関数とかの仕組みは全く理解できていない気がするけど、とりあえずSVMがすごい技術だということは実感しました。


簡単にSVMについて説明をしておくと‥

SVMは、教師あり学習を用いる識別手法の一つである。パターン認識や回帰分析へ適用できる。


SVMは、現在知られている多くの手法の中で一番認識性能が優れた学習モデルの一つである。サポートベクターマシンがすぐれた認識性能を発揮することができる理由は、未学習データに対して高い識別性能を得るための工夫があるためである。


SVMは、線形入力素子を利用して 2 クラスのパターン識別器を構成する手法である。訓練サンプルから、各データ点との距離が最大となる分離平面(超平面)を求めるマージン最大化という基準で線形入力素子のパラメータを学習する。


最も簡単な場合である、与えられたデータを線形に分離することが可能である(例えば、3次元のデータを2次元平面で完全に区切ることができる)場合を考えよう。


http://home.in.tum.de/~stibor/svm_maple/images/C-SVM-demo_2.gif


このとき、SVMは与えられた学習用サンプルを、もっとも大胆に区切る境目を学習する。 学習の結果得られた超平面は、境界に最も近いサンプルとの距離(マージン)が最大となるものとなる。

学習過程はラグランジュ乗数法を用いることにより、最適化問題の一種である凸二次計画問題で定式化される。 ただし、学習サンプル数が増えると急速に計算量が増大するため、分割統治法の考え方を用いた手法なども提案されている。
引用元:wikipedia


Twitterの発言から男女を判別したいと想いだけで‥
アホなことをアカデミックに真剣にやってみました。
しかも無駄にCiNiiで論文を探して、どんなアルゴリズムが有効なのか調べてしまいましたw
形態素、人称、係り受けなど何を見ればいいのかなーっとふらふらと考えてみましたが‥
結局MeCabをいつも使っているし、形態素解析でいいのかなという結論です。
χ二乗値の値の大きいものを取れば良さそうだとわかったので、上位のものを利用しました。



機械学習を利用したユーザ名の男女推定、OpenCVを利用したアイコン解析による男女推定とかの研究もできそうです。

広告を非表示にする