タグ

svmに関するsleepy_yoshiのブックマーク (26)

  • svmlin: Fast Linear SVM Solvers for Supervised and Semi-supervised Learning

    SVMlin Fast  Linear SVM  Solvers  for Supervised  and Semi-supervised Learning SVMlin  is software package for linear SVMs. It is well-suited to classification problems involving a large number of examples and features.  It is primarily written for sparse  datasets (number of non-zero features in an example is typically small).  It is written in C++ (mostly C). A mex wrapper is available for  MATL

  • Chapelle's Tech Tips

  • Survey1

    Survey1 SVMを用いた固有表現抽出に関する論文のサーベイ 1.Support Vector Machineを用いた日語固有表現抽出 2.Support Vector Machineの多値分類問題への適用法について 3.SVMに基づく固有表現抽出の高速化 4.日語固有表現抽出における文節情報の利用 5.Stackingの効率的な学習方法と日語固有表現抽出での評価 6.非頻出語に対して頑健な日語固有表現の抽出 7.大域的情報を用いた日語固有表現認識 SVMを利用した日語固有表現抽出に関する論文が中心です. 固有表現タグを入力文の解析単位毎に正確に付与することが目的です. チャンカーは基的にYamCha 1.Support Vector Machineを用いた日語固有表現抽出 山田寛康 工藤拓 松裕治 奈良先端科学技術大学院大学情報科学研究科 概要

  • パターン認識のためのサポートベクトルマシン入門-I : 2クラスSVM | CiNii Research

    JaLC IRDB Crossref DataCite NDL NDL-Digital RUDA JDCat NINJAL CiNii Articles CiNii Books CiNii Dissertations DBpedia Nikkei BP KAKEN Integbio MDR PubMed LSDB Archive 極地研ADS 極地研学術DB 公共データカタログ ムーンショット型研究開発事業

  • A Training Algorithm for Optimal Margin Classifiers - がくしゅう日記

  • e1071パッケージのsvm() 手計算で分割予測値を計算する

    Rのe1071パッケージに含まれるsvm()を使用するとサポートベクターマシンによる判別分析が実行できます。 基的な使い方はこう↓ data(iris) # アヤメのデータ library(e1071) # パッケージの読み込み # svmを使って判別分析 result <- svm(Species ~ ., data=iris, probability=TRUE, kernel="polynomial", cross=1) x <- iris[, 1:4] # 説明変数部分のデータを抽出(標準化しない) # 第1引数はsvm()によって得られた結果のオブジェクト, #  第2引数は説明変数部分のデータ(非標準化データ)を指定する。 svm.dv <- function(result, x){ # ---------------------------------------------

  • Semantic Kernel Extension for SVMlight

  • SVMの定番入門書「サポートベクターマシン入門(赤本)」の読み方 - EchizenBlog-Zwei

    SVMを学びたい人にとっては「サポートベクターマシン入門」通称「赤」は最適な入門書であるといえる。理論から実践までバランスよく解説されており、書を読むだけでSVMの実装が可能になる。 しかし書はSF小説を彷彿とさせる独特な翻訳の文体のため機械学習に不慣れな読者にとっては読みこなすのは苦しい戦いとなる。来なら原書をオススメしたいところだが、そうはいっても英語はちょっとという人も多いはず。 そこで記事では赤のオススメな読み方を紹介してみる。 1.「わかパタ」で準備運動をしよう 泳ぎのうまい人でもいきなり水に飛び込むのは危険。まずは準備運動をして体を温める。これには「わかりやすいパターン認識」がオススメ。とりあえず2章まで、余裕があれば3章まで読んでおけば充分。 2.赤を枕元において一晩寝よう さて準備運動が済んだら早速赤にトライ!したいところだが赤の放つ瘴気で心を蝕まれないよ

    SVMの定番入門書「サポートベクターマシン入門(赤本)」の読み方 - EchizenBlog-Zwei
  • SVM and Kernel Methods

  • SVMツールと関連する論文まとめ - EchizenBlog-Zwei

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

    SVMツールと関連する論文まとめ - EchizenBlog-Zwei
  • SVMにおける損失と正則化 - 射撃しつつ前転 改

    前に書いたSVMの記事で、「L1とかL2というのは間違えたときのペナルティをどう定義するかを意味しており」と書いていたが、L1とかL2って正則化項の話なんじゃないの、と疑問に思った。1ヶ月ほど時間をおいてのセルフツッコミである。確認しようとしてカーネル多変量解析を読むと、やはり正則化項についてはL1とL2の両方の説明が書いてあるが、損失に関しては普通のHinge Loss(=L1 Loss)しか書いてない。 と言う訳で、ああ、間違えちゃったなぁ、と暗澹たる気持ちで"A dual coordinate descent method for large-scale linear SVM"を読み直してみたところ、やっぱりL1-SVMというのは損失が普通のHinge Lossで、L2-SVMというのはHinge Lossの2乗を損失とすると書いてあった。両方とも正則化項についてはL2正則化を使って

    SVMにおける損失と正則化 - 射撃しつつ前転 改
  • やっと出たのか - ny23の日記

    1月に試した liblinear-poly2 の論文 Training and Testing Low-degree Polynomial Data Mappings via Linear SVM が JMLR でも公開されてた.少し内容が変わってる?気のせいか. liblinear-poly2 は組み合わせ素性の重みが配列で実装されている関係で,素性数が多いデータで実験するとえらいことになる.論文ではハッシュを使う方法を提案してるけど,良いハッシュ関数を使うほど完全なランダムアクセスになるので,「ちゃんと実装した」動的ダブル配列を使った方が良い(頻度降順で素性番号をバイトコーディングしてループで組み合わせ素性を列挙すると,ほとんどキャッシュに載った配列アクセスと同じになるため).また全展開してしまうと,ハッシュを使っても,3次(以上)で動かすのは大変.この問題を解決した論文(今年の某全国

    やっと出たのか - ny23の日記
  • liblinear-poly2 - ny23の日記

    liblinear の低次多項式カーネル版拡張という明日原稿を出す論文と関連する研究の実装があったので試してみた.論文を読む時間が無いので,手持ちのデータで試そうとしたが segmentation fault.もしやと思って中を見たら,二次の全組み合わせ素性の重み (= n*(n-1)/2) を保存する配列を作っていた (素性の種類数が少ないときしか対応出来ない実装) ので,コンパイルオプションに -m64 をつけて,素性番号を密にして,さらに配列の添字周りを int -> int64_t にすると動いた. | Train | Mem | Acc. | Test --------------------------------------------------- liblinear-poly2 | 347.3s | 16GB | 93.0% | 289.2s pa poly2 | 27.

    liblinear-poly2 - ny23の日記
  • What is the best way to implement an SVM using Hadoop?

    Answer (1 of 8): Thought it might be worthwhile to put all the proposed solutions in context to see when one might use one over the other. The atbrox blog (http://atbrox.com/2010/02/08/parallel-machine-learning-for-hadoopmapreduce-a-python-example/) that Soren points to gives details on map-redu...

    What is the best way to implement an SVM using Hadoop?
  • SVM, Logistic Regression, and Precision | Graham's Research Blog

    Machine Translation, Speech Recognition, Machine Learning, and the like. On twitter a little while ago, @mathieuen asked an interesting question about whether the fact that he was seeing support vector machines (SVM) get better precision than logistic regression (LR) was a result of the learning algorithm (specifically the hinge loss function). I answered off the top of my head that I thought that

  • OpenOpt使ってSVM書いた - きちめも

    追記(5/19):ガウスカーネル2乗してなかった。コード書き忘れ訂正--); ついでに画像も変更 SMO法使った前のエントリは、殆どpureにpythonでコード書いてたせいか、結構時間がかかっててイライラ。ということでOpenOptの二次計画のソルバー使って手抜きに疎な解を求めてみたの巻。 結果はテストデータ200個の↓の図だと200倍の差が…。scipy+OpenOptぱない コーディングもあっと言う間だし…その…何というか…一昨日の努力は…一体…。まぁデータ200個と少なきゃメモリにのるしね…。 以下適当に書いたpythonのコード。相変わらずグラフの描画とかのコードの筋が悪い気がしてもにょいぜ。 #!/usr/bin/python # -*- coding: utf-8 -*- from scipy import * from scipy.linalg import norm fr

    OpenOpt使ってSVM書いた - きちめも
  • SVMによる予測変換 - nokunoの日記

    Google日本語入力のOSS版であるMozcが公開されたので、ソースコードを読んでみました。Google Japan Blog: Google 日本語入力がオープンソースになりました mozc - Project Hosting on Google Code変換アルゴリズムや学習のロジックに関しては、id:tkngさんが早速ブログにまとめていますので、そちらを読むとよいと思います。また何か気づいたことがあったら書いてみたいと思います。Mozc(Google日本語入力)のコードを読んだメモ - 射撃しつつ前転 Mozcのコードで個人的に興味深かったのは予測変換のアルゴリズムでした。私はもともと修論の時に予測変換の研究をしていて、予測変換のトレードオフという問題に取り組んでいました。予測変換は、単純に考えると候補の頻度が高ければ高いほど良いのですが、それだけだと常に最も短い候補が出力されてし

  • 非線形SVM - 人工知能に関する断創録

    今回は、非線形サポートベクトルマシンを試してみます。線形SVM(2010/5/1)は、カーネル関数に線形カーネル(ただの内積)を使いましたが、これを多項式カーネル(A)やガウスカーネル(B)に変更します。 カーネル関数は元のベクトルxを非線形写像によって高次元空間に写像した特徴ベクトルφ(x)の内積(C)で定義されます。 一般に特徴ベクトルφ(x)は高次元空間(無限次元空間でもOK)になるので普通にやってたら内積の計算量が非常に大きくなります。そこで、特徴ベクトルφ(x)の内積を計算せずに多項式カーネル(A)やガウスカーネル(B)の計算で置き換えるテクニックをカーネルトリックと呼ぶとのこと。多項式カーネルやガウスカーネルを使うとφ(x)を陽に計算する必要がなくなります。ただ、元の空間xでの内積は必要なんですよね・・・最初は、カーネルトリックのありがたみがよくわからなかったのですが、「入力空

    非線形SVM - 人工知能に関する断創録
  • A Practical Guide to Support Vector Classi

    sleepy_yoshi
    sleepy_yoshi 2010/05/04
    SVM利用のノウハウ
  • ソフトマージンSVM - 人工知能に関する断創録

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

    ソフトマージンSVM - 人工知能に関する断創録