ソリューショングループN機械学習がプロダクトに応用されることが、非常に多くなりました。いえ、機械学習を学ぼうと思うと、数式の理解など非常に大変です。そこで、とりあえず機械学習というものを使ってみる、ということを目指して、少し書いてみたいと思います。SVMって何?SVMというのは、ざっくり言えば、二値分類をしてくれるプログラムで(数学的にもう少し正確に言うと、パターン識別モデルです)、機械学習の一種です。二値分類というのは、あるデータを入力した時、そのデータがあるジャンルに含まれそうか含まれそうではないか、というのを分類することです。メールの文章を入力した時、それがスパムであるかスパムでないかを分類することなどが考えられます。図にすると、次のような感じです。最初に、分類したいデータとそのデータがジャンルに含まれるかどうかという情報を用意します。これを訓練データとか、教師データとか言います。このデータを元に、プログラム内で良い感じに直線を引いてくれます(正確には入力データの次元をnとしたとき、n-1次元の超平面)。この「良い感じの直線」さえ作ってしまえば、未知のデータが入力された時に、その直線に基づいて分類してくれそうですね。訓練データを用いて、分類をするための情報(モデル)を作成することを、学習といいます。TinySVMをインストールを使ってみる自然言語処理の世界ではしばしば使われるSVMに、TinySVMというものがあります。これをインストールして、実際にSVMを使ってみようと思います。パッケージなども用意されていますが、ソースからインストールしたいと思います。configureの–prefixオプションで、ホームディレクトリ下のlocalにインストールしています。