タグ

SVMに関するlabgaのブックマーク (33)

  • Coursera Machine Learningの課題をPythonで: ex6 (SVM パラメータの調整法) - Qiita

    はじめに CourseraのMachine Learningクラス(Andrew Ng先生)の課題をPythonで実装するシリーズ。 ex6ではサポートベクターマシン(SVM)を使った分類をやります。 線形SVM まずは線形(カーネルなし)SVMです。scikit-learnでは、機械学習のモデルのインタフェースが統一されており、どんなモデルでもインスタンスを作ってから model.fit(X,y) で学習できます。線形回帰であろうがロジスティック回帰であろうがSVMであろうが同じ文法になります。SVMはsklearn.svm.SVC()クラスを使います。 コードはこちら。 いつもと同じように、scipy.scio.loadmatを使ってMatlab形式のデータを読み込み、学習を実施します。 import numpy as np import matplotlib.pyplot as pl

    Coursera Machine Learningの課題をPythonで: ex6 (SVM パラメータの調整法) - Qiita
    labga
    labga 2016/02/10
  • PythonでBag of WordsとSVMを使ったタイトルのカテゴリ分類 - stMind

    cc licensed ( BY ) flickr photo shared by Loco Steve 週末に試そうのコーナー。 ちょうど良いチュートリアルがあったので、データセットを用意してやってみました。 問題 How can I get a computer to tell me what an article is about (provided methods such as bribery and asking politely do not work)? ある記事が何について書かれているのか、コンピュータに理解させるにはどうすれば良いか? チュートリアルでは手動で作ったデータを使って犬もしくはサンドイッチの2クラス分類をしています。 ここでは、Google NewsでiPadのニュース、ソチ五輪のニュースとカテゴリ分けされている記事のタイトルを使って、 あるタイトルがiPa

    PythonでBag of WordsとSVMを使ったタイトルのカテゴリ分類 - stMind
    labga
    labga 2016/02/04
  • カーネルトリック - Shogo Computing Laboratory

    写像 ソフトマージンで線形分離不可能な場合でも、分離超平面を決定することができますが、 所詮線形分離なので、性能には限界があります。 そこで、入力を適当な非線形変換を使って、 より高次元な特徴空間へ写像することを考えます。 例えば左の図で赤丸と青丸は線形分離出来ません。 そこで、元の特徴空間を非線形変換し、 に写像します。 すると、右図のような分布になり、直線で分離することが可能になります。 カーネルトリック 上の例では、二次元から二次元の写像でしたが、複雑な問題なるとより大きな次元に写像する必要があります。 次元があまりにも大きくなると、写像を求めるのは大変になってきます。 しかし、SVMの場合、実は実際に写像を求める必要はなく、ベクトルの内積だけ分かれば計算ができます。 この写像した特徴空間の内積は、当然もとの特徴ベクトルの関数になっているはずです。 そこで、写像した特徴空間の内積を関

  • scikit-learnでサポートベクトル回帰、及びそのパラメーター推計 with クロスバリデーションやってみる - My Life as a Mock Quant

    サポートベクトル回帰(Support Vector Regression, SVR)の理論が大体脳内整理出来たので、実践もしたいぞと、そしてちょいとpythonを使う別件があるので、慣れの意味も込めてR言語ではなくpythonとその機械学習ライブラリであるscikit-learnを使ってやるぞとそういうことです。 scikit-learn自体のインストールはこの記事の最下部にある日語のLINKを見れば良いと思う。 俺はpip使ってインストールしたような気がするけど、なにぶんずいぶんと昔なので忘れてしまった。pipで入れるなら pip install scikit-learnでOK。裏でコンパイルが走っていたような記憶があるので、C++のコンパイラいれておかないとだめかも。 windows用のバイナリファイルだと Scikit Learn - Browse Files at SourceF

    scikit-learnでサポートベクトル回帰、及びそのパラメーター推計 with クロスバリデーションやってみる - My Life as a Mock Quant
  • つまみぐいプログラミング SVM.NET を使ってパターン識別器をつくる

    パターン認識は,画像処理や音声認識などの分野でよく取り扱われる問題の一つです.識別器にはニューラルネットワークやベイズ分類など様々な選択肢があります.サポートベクターマシン (Support Vector Machine, SVM) は識別器の一種で,認識性能に優れており,学習のパラメータ設定が比較的容易でもあります.記事では SVM.NET を使って SVM によるパターン識別器を作成します. Keywords: .NET Framework, SVM Matthew Johnson またオリジナルの libsvm を使われた方の記事がこちらにありますので参考にしてください. 作業環境 Visual C# 2010 Express .NET Framework 4 Client Profile まずコンソールアプリケーションプロジェクトを作成し,参照にダウンロードしてきた SVM.dl

    labga
    labga 2013/03/29
  • sage/SVMで画像認識 - PukiWiki

    2010/03/16からのアクセス回数 14529 このページのsageノートブックは、以下のURLにあります。 http://www.sagenb.org/home/pub/1762 はじめに † SVMは、オーバーフィッティングを避けて効率よく識別関数を求めることができる 手法です。 「集合知」の9章で紹介されているSVMをSageを使ってまとめてみます。 ↑ 簡単な例題 † いきなりSVMに進む前にクラス分けを簡単な例を使って解いてみます。 下図は、赤(-1)のグループと青(1)のグループの分布です。 sageへの入力: # 線形クラス分類の例 # データの用意 c1 = [[1,2],[1,4],[2,4]] c2 = [[2,1],[5,1],[4,2]] # プロットして分布を確認 pl1 = list_plot(c1, rgbcolor='red') pl2 = list_p

  • LIBLINEARを使ってみたメモ | mwSoft

    概要 稿は私が初めてLIBLINEARを触った際に残したメモ書きです。 やったことは、導入、READMEに従ったサンプルの実行、自前で作ったデータを使った簡単な実践。 資料を読む まずは右も左も分からない状態なので、資料を読むことから始めます。 公式サイトは以下 http://www.csie.ntu.edu.tw/~cjlin/liblinear/ ここのDocumentationのところに参考になる資料がPDF形式で置いてあります。 LIBLINEAR: A library for large linear classificationという資料の概要には、以下のようなことが書かれています(意訳)。 LIBLINEARは大規模なデータに使えるオープンソースの線形クラスタリングライブラリです。ロジスティック回帰とSVMをサポートしています。コマンドラインでの利用とプログラムからの呼び出

  • SVM実践ガイド (A Practical Guide to Support Vector Classification)

    SVM実践ガイド (A Practical Guide to Support Vector Classification)

    SVM実践ガイド (A Practical Guide to Support Vector Classification)
  • 文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜

    Scalable Partial Least Squares Regression on Grammar-Compressed Data Matrices

    文字列カーネルによる辞書なしツイート分類 〜文字列カーネル入門〜
  • 線形予測の機械学習ツールliblinearで効果最大化のための最適な定数Cを探る - Y's note

    Machine Learning for Hackers 作者: Drew Conway,John Myles White出版社/メーカー: Oreilly & Associates Inc発売日: 2012/02/28メディア: ペーパーバック クリック: 63回この商品を含むブログを見る liblinear LIBLINEAR -- A Library for Large Linear Classification 10秒で設定可能なlibsvmで機械学習を行う - Yuta.Kikuchiの日記 R言語でSVM(Support Vector Machine)による分類学習 - Yuta.Kikuchiの日記 今日はliblinearを用いた機会学習の話です。今まではSVMを利用するときはkernelオプション付きのR言語のSVM/libsvm/svm-lightを利用していましたが、

    線形予測の機械学習ツールliblinearで効果最大化のための最適な定数Cを探る - Y's note
  • libsvm "reaching max number of iterations" warning and cross-validation

    I'm using libsvm in C-SVC mode with a polynomial kernel of degree 2 and I'm required to train multiple SVMs. Each training set has 10 features and 5000 vectors. During training, I am getting this warning for most of the SVMs that I train: WARNING: reaching max number of iterations optimization finished, #iter = 10000000 Could someone please explain what does this warning implies and, perhaps, how

    libsvm "reaching max number of iterations" warning and cross-validation
  • libsvm Shrinking Heuristics

  • Support Vector Machinesを用いた「魔法少女まどか☆マギカ」人物予測モデル - Y's note

    言語処理のための機械学習入門 (自然言語処理シリーズ) 作者: 高村大也,奥村学出版社/メーカー: コロナ社発売日: 2010/07メディア: 単行購入: 13人 クリック: 235回この商品を含むブログ (39件) を見る 人物予測モデル 記事のタイトルがだいぶ固い内容になっていまいましたがやりたい事はとても簡単です。過去に発せられたまど☆マギ台詞の形態素を学習し、予測モデルを作成します。その後に未分類の形態素のデータセットを与えた時にどれだけ人物のラベル付けが正しく行われたかを評価します。予測モデルの対象となる人物は鹿目まどか/暁美ほむら/美樹さやか/キュゥべえ/佐倉杏子/巴マミの合計6名です。機械学習にはSVMを利用します。先に実験の結果をお伝えしておくと、台詞の形態素ベクトルでは十分なマルチラベリングができていません。それでもこの記事が気になる方は読み進めてください。処理手順の詳

    Support Vector Machinesを用いた「魔法少女まどか☆マギカ」人物予測モデル - Y's note
  • svm数式を一切使用しないSVMの話 間違っていたらごめんね!! - お前の血は何色だ!! 4

    前に書いていた奴をまとめて prezi にしてみた。 http://d.hatena.ne.jp/rti7743/20100418/1271603136 svm数式を一切使用しないSVMの話 on Prezi

    svm数式を一切使用しないSVMの話 間違っていたらごめんね!! - お前の血は何色だ!! 4
  • ソフトマージンSVM - 人工知能に関する断創録

    前回(2010/5/2)のハードマージンSVMでは、データに重なりがある場合、下のようにちゃんと分類境界を求められませんでした。今回は、重なりのあるクラス分布に対応できるように拡張してみます。このようなSVMはハードマージンSVMに対してソフトマージンSVMと呼ばれます。別名としてC-SVMとも呼ばれるようです。 PRMLの7.1.1にあるように、データの誤分類を許すようにSVMを修正します。ハードマージンSVMでは、データ点がマージン内(-1 < y < 1)に絶対に入らないことを前提にしていましたが、ソフトマージンSVMでは「入ってしまったものは仕方ない、だがペナルティを与える!」と少し条件を緩めます。 まず、スラック変数ζ(ゼータ)をデータごとに導入します。スラック変数は、データが正しく分類されかつマージン境界上または外側にある場合は0、正しく分類されているがマージン内に侵入してしま

    ソフトマージンSVM - 人工知能に関する断創録
  • Java version of LIBLINEARを使ってみる | mwSoft

    導入 ダウンロードは公式サイトから。 jar1個で動き、依存ライブラリはなし。Mavenのセントラルにも置いてある。jarファイルは51KBと超軽量。BSDライセンス。 とても使い勝手が良さそう。 JavaDocはこちら。 train LIBLINEARはtrainで学習して、predictで結果予測を出力する。 とりあえずtrainしてモデルを出力してみる。ファイルはC++版を落とした時に付いてくるサンプル、heart_scaleを利用。 heart_scaleは下記のような行が記述された270行のファイル。1〜13までの要素に対してそれぞれ値が入っており、最初の列に+1/-1という評価が入れられている。これを使って学習することで、別の1〜13までの要素を持った値に対して、+1/-1を判別できるようになる。 +1 1:0.708333 2:1 3:1 4:-0.320755 5:-0.1

    labga
    labga 2013/03/15
  • SVMツールと関連する論文まとめ - EchizenBlog-Zwei

    最近SVM(Support Vector Machine)周りの復習をしているので有名どころのツールと、それに関連する論文をまとめた。完全に個人用メモなので抜けがあるかも。あくまで参考程度に。 ツールは色々あるけれど使うのが目的なら定番のsvmlightやlibsvmがいい気がする。最近だとliblinearが流行っている。SVMといえばカーネル関数とマージン最大化だけれど、最近ではカーネルは線形でいいやという流れになってきている?個人的にはpegasosがわかり易い線形カーネル+オンライン学習になっていて自分で作って遊ぶには良いと思っている。またsvmsgdは"straightforward stochastic gradient descent"と言っているものの非常に高性能で、それを実現するための様々な工夫が施されていて実装を学ぶ上で大変参考になる。ここには挙げていないけれど、線形カ

    SVMツールと関連する論文まとめ - EchizenBlog-Zwei
  • 非線形サポートベクターマシン - きしだのHatena

    とりあえず最適化の問題は置いておいて、ここを参考に非線形分離できるようにしてみました。 http://www.neuro.sfc.keio.ac.jp/~masato/study/SVM/SVM_3_1.htm さぁ,これで君も非線形SVMのコーディングができちゃうのだ.素晴らしき哉. ほんとにできた。 うん、ぼくにも非線形SVMのコーディングができちゃいましたよ! すばらしきかな SVMも基は線形分離なので、非線形分離に対応するにはパーセプトロンでやったようにデータの次元を増やしてそこで線形分離します。 で、SVMがすごいのはそこでの計算をごにょごにょして、データの次元を実際には増やさずに高次元で計算したことにしてしまうのです。 SVMでは全データ同士の内積の計算をしていたのですが、その代わりにカーネル関数と呼ばれる関数を使います。カーネル関数には、高次元で内積を計算したことになるよう

    非線形サポートベクターマシン - きしだのHatena
  • ルールベースjuliusの誤認識対策にSVMを利用してみよう - お前の血は何色だ!! 4

    前回やったことの続きです。 ルールベースの音声認識をjuliusでやったときに過剰にマッチしまくる問題への対策です。 前回、juliusのクセを観察し、独自のスコアリングをやりました。 多少は誤認識に強くなったのですが、それでも人と人が会話や議論するような短文のやり取りにさらされると、やっぱり誤認識してしまいます。 SVM もう、これは単純なパラメータの閾値では無理です。 ある閾値がそれを超えたら捨てるなどの単純な話ではないのです。 複数のパラメータが複雑に絡み合った世界です。 それをニンゲンの手で観察し、推論していては時間が膨大にかかってしまいます。 人間でやると大変なことは、機械にやらせましょう。 と、いうわけで、機械学習です。 今回は、機会学習の中からSVMを利用します。 SVMは精度もさることながら、学習速度はやや問題があるものの、判別は高速ですし、何よりライブラリが比較的揃ってお

    ルールベースjuliusの誤認識対策にSVMを利用してみよう - お前の血は何色だ!! 4
  • SVMの双対問題について - take a keen edge

    SVMの復習してるのでメモ。 双対問題の導出で、だいたいどの参考書やウェブ上の資料見ても「ラグランジュの未定乗数法使えばいいよ!」というとこまでは書いてあるが、 wとbを消してラグランジュ乗数αのみで表したラグランジュ関数(Lagrangian)の最大化がなぜ双対問題になるのか、 よくわからなかったのでまとめました。 私が以前学習したときも、ラグランジュ関数の導出だけで「すげーw」と思考停止していた。 【ラグランジュ関数】 以下の非線形計画問題を考える。 この問題のラグランジュ関数は次のように定義される。 【元関数とラグランジュ関数】 ラグランジュ関数に対し、と固定したとき なる最適化問題を考える。 となる が存在すれば ととることで となる。 一方全ての に対して であれば、 のとき最適値 を得る。 このようにこの問題の最適値はに依存するのでこれをとおくと と表せ、のに関する最小値は初め

    SVMの双対問題について - take a keen edge