唯物是真 @Scaled_Wurm

プログラミング(主にPython2.7)とか機械学習とか

機械学習

pixivの小説を機械学習で男性向けと女性向けに分類する

最近Web小説が人気でいろいろ書籍化されたりアニメ化したりしています 今期のアニメでは『ダンジョンに出会いを求めるのは間違っているだろうか』が放送されていておすすめです(アニメに合わせてKindle版の1,2巻が値下げされています)ダンジョンに出会いを求…

TopCoder SRM 652 Div1 o-- 1283->1283

276th, 141.78pts, +0/-0 challenge Volatility: 324->324SRM 652 SRM 652 - Togetterまとめ久しぶりに参加したら、途中でサンプルアウトプットが変わったり、いくつもアナウンスが流れるドタバタした感じだった 前回に引き続き今回もunratedになってしまっ…

来年は機械学習のコンペにもうちょっと参加したい

今年はいろいろ開催されたのに全然参加できなかった 目標に「kaggleに参加する」とか書いてた気がするんだけど…… 画像認識系だとまったく手が出ないのもなんとかしたい機械学習のコンペは、訓練データが与えられてそれで何かしら予測モデルを作って予測結果…

論文感想: "Machine Learning: The High-Interest Credit Card of Technical Debt"

Machine Learning: The High Interest Credit Card of Technical Debt NIPS 2014のWorkshopのSE4ML: Software Engineering for Machine Learningというので発表された論文っぽいです Twitterで話題になっていたので読んだメモです久しぶりに英語論文を読んだ…

Isomapで東方キャラの関連性のデータを二次元に可視化する

昨日の記事で得られた東方キャラ同士の関連性の強さ(NPMI)を使って、Isomapという手法でキャラを二次元上に配置して可視化します 東方キャラの関連性の強さをニコニコ動画の動画数で測ってみた - 唯物是真 @Scaled_Wurm 東方キャラの関連性の強さをニコニコ…

サザエさんのジャンケンの次の手を決定木で予測+可視化してみた

前に決定木の可視化をしようと思ってやってなかったのでやっておきます決定木のライブラリは例のごとくscikit-learnを使う pythonの機械学習ライブラリscikit-learnの紹介 - 唯物是真 @Scaled_Wurm pythonの機械学習ライブラリscikit-learnの紹介 - 唯物是真…

TopCoder SRM 632 Div2 oox 1134->1226

42th, 725.99pts, +1/-0 challenge Volatility: 451->450Div1 復帰した。久しぶりにchallenge成功 Hardはあまり自信ないのを投げたら予想通りSystem Testで落ちた 250: RunningAroundPark 木に1からNの番号が付いている ランニング中に見た木の番号が途中抜…

AOJの問題を推薦――協調フィルタリングを試してみた

AIZU ONLINE JUDGE(AOJ)という競技プログラミングの問題を公開しているサイトがある。 AIZU ONLINE JUDGE: Programming Challenge 1年以上前にAOJを少しだけやっていた頃に、AOJの問題を推薦するスクリプトを書いたものの、特に公開も使用もせずに放置してい…

LIBLINEARの重みの見方

前にLIBSVMの重みの見方を書いた。 LIBSVMのモデルファイルにはサポートベクターの重み(双対問題の重み)が書いてあるだけで各特徴量の重み(主問題の重み)を求めるためには計算をする必要があった。 LIBLINEARの方はより簡単でモデルファイルに各特徴量の重み…

TopCoder マラソンマッチ AlleleClassifier に参加した(11/154位)

マラソンマッチというのは10日間ぐらいの期間で問題を分析しコードを書いてスコアを競う競技です。 今回ので3回めのマラソンマッチ参加。 序盤は上位にいられたのですが、終盤は失速してしまいましたorz順位表 http://community.topcoder.com/longcontest/st…

CrowdSolving「【チャレンジコンペ】記事間のリンク推定」の「入賞者の予測手法紹介」が公開されていた

https://crowdsolving.jp/node/629/summary 1位から5位になった人の手法が公開されています あと1位だった私のインタビューも載ってるみたいです(恥ずかしいので確認してないですが 自分の手法の大雑把な説明 上の記事に細かく書いてあると思うんで大雑把に…

クラソル(CrowdSolving)の第3回コンペの結果: 1/16位

クラソル(CrowdSolving)の第3回コンペに参加中(途中経過: 1/16位) - 唯物是真 @Scaled_Wurm 途中経過は上の記事みたいな感じでしたが、最終結果も1位でした 【チャレンジコンペ】記事間のリンク推定 | CrowdSolving このコンペに際して、リンク予測に関する…

クラソル(CrowdSolving)の第3回コンペに参加中(途中経過: 1/16位)

まだ期間の途中ですが以下のに参加してます 【チャレンジコンペ】記事間のリンク推定 | クラソル | CrowdSolving 記事の間にリンクがあるかを予測するタスクで、上位になると一応賞金が出るらしいです過学習っぽいせいか(?)、仮順位表上では1位なので嬉しい…

正規分布間のKLダイバージェンスの導出

多変量(多次元)正規分布のKLダイバージェンスの求め方 - EchizenBlog-Zwei 上の記事を読んで勉強になったのですが、数式がテキストで読みづらかったのと、多変量でない1次元の正規分布の導出の段階でよくわからなかったので調べて記事にまとめました 注意 数…

LIBSVMの特徴量の重みを見る - LIBSVMのモデルの読み方

以前LIBSVMで特徴量の重みを見る方法について記事でURLを紹介したのですが、リンク先の記事とコードがなくなっているみたいなので、改めて記事にしておきます。 SVMでの特徴量の重み 非常に単純化して説明すると、線形カーネルのSVMは次のような式の符号の正…

pythonの機械学習ライブラリscikit-learnの紹介

scikit-learn(sklearn)の日本語の入門記事があんまりないなーと思って書きました。 どちらかっていうとよく使う機能の紹介的な感じです。 英語が読める方は公式のチュートリアルがおすすめです。 scikit-learnとは? scikit-learnはオープンソースの機械学習…

特徴量(素性)を作るときのメモ + scikit-learnにちょっと触る

機械学習のデータとして特徴量を作るときの注意点や悩むことなどをメモっておきました。間違いなどが含まれているかもしれません。 基本的な内容ですので調べればもっと適切なやり方があると思います。 カテゴリカル・データ カテゴリカル・データというのは…

CrowdSolving第1回コンペに参加しました 5/43位

CrowdSolving | データ分析・予測モデル作成のコンペサイトのコンペが終わったので、結果とかアプローチとか書いときます以前書いた記事↓ CrowdSolvingに参加中 - あるいは機械学習関連のメモ - 唯物是真 @Scaled_Wurm タスク コンテンツ販売サービスの会員…

Python で疎行列(SciPy)

疎行列とは 疎行列は成分のほとんどがゼロである行列のことです。 たとえば、文書に登場する単語の頻度を数えたりするとこういった行列になります。 他にも疎なグラフの隣接行列は疎行列になります。 こういった行列は通常の行列(密行列)を使うよりも、少な…

CrowdSolvingに参加中 - あるいは機械学習関連のメモ

機械学習エンジョイ勢として、CrowdSolving | データ分析・予測モデル作成のコンペサイトに参加してる時とかに調べたことなどのメモ。 まだ終わってないですが、そろそろやることが思いつかないのでとりあえずまとめときました。 一応まだモデルとか特徴量の…

numpyでcsvを読み込む / scikit-learnでsvmlight(libsvm)形式のファイルを読み込む

前までRを使っていたのですが、せっかくPythonを使っているのだから全部移行したいなーと思って色々勉強してます。 numpyでcsvを読み込む numpy.genfromtxt関数、numpy.loadtxt関数を使えば簡単に読み込めるみたいです。 import numpy as np data = np.genfr…

LIBSVMとかLIBLINEARとかのメモ

LIBSVM -- A Library for Support Vector MachinesとかLIBLINEAR -- A Library for Large Linear Classificationを使って二値分類の問題で遊んでいました。 その時にすぐにわからなかったことのメモ。 Accuracy以外の尺度を出力する 普通LIBSVMやLIBLINEARを…

"cross-validation"の訳語って何?

機械学習や統計では"cross-validation"という手法が使われています。 詳細は以下のURLなどを見てもらえるといいのですが「データを分割し一部()を評価用、その他()を訓練用として性能を評価する」というのを評価用か訓練用かを入れ替えて通りについて行い、…

論文感想: "TCSST: Transfer Classification of Short & Sparse Text Using External Data"(CIKM 2012)

TCSST: Transfer Classification of Short & Sparse Text Using External Data 概要 Twitterなどのマイクロブログや検索エンジンのスニペット、レビューなどの短くスパースな文章に対して、外部のリソースを使って転移学習を行うことで精度の向上をする。関…

論文感想: "Adversarial Support Vector Machine Learning"(KDD 2012)

"Adversarial Support Vector Machine Learning" 概要 敵対的学習の話。 spam検出や侵入検出などの相手がチェックをかいくぐろうとして通常に見せかけようとする場合の機械学習。 See: 敵対的学習 - 機械学習の「朱鷺の杜Wiki」 先行研究では悪意のある敵対…

『言語処理のための機械学習入門』のPLSA(アスペクトモデル)のEMアルゴリズムの導出(例題3.4)

『言語処理のための機械学習入門 (自然言語処理シリーズ)』(いわゆる高村本)で研究室の後輩が勉強会をしていて、自分でも一瞬わからなかったのでメモ。 PLSAとかPLSIとかアスペクトモデルとか名前がいろいろあってよくわからないです。 同時確率 文書を、単…

サザエさん(とプリキュア)のジャンケンデータのダウンロード

以前サザエさんのじゃんけん予測問題のサーベイをした時にサザエさんとプリキュアのジャンケンデータをダウンロードするスクリプトを書きかけて放置していたのを見つけたので、完成させて公開します。キュアピースのデータは30弱ぐらいしかないので、予測と…

libsvmで遊んでみた

Support Vector Machinesを用いた「魔法少女まどか☆マギカ」人物予測モデル - Yuta.Kikuchiの日記 ↑の記事が面白かったのと、SVMを触ったことがなかったのでlibsvmをいじくって遊んだメモ。 クロスバリデーション libsvmでのクロスバリデーションは"svm-trai…

論文感想: "Multi-Domain Learning: When Do Domains Matter?"(EMNLP-CoNLL 2012)

Multi-Domain Learning: When Do Domains Matter? 概要 マルチドメインラーニング(MDL)におけるいくつかの疑問に対する検証. MDLによる精度上昇は必ずしもドメインの影響ではなく,アンサンブルの効果ではないか? ドメインラベルをランダムに入れ替えても…

論文感想: "Polarity Inducing Latent Semantic Analysis"(EMNLP-CoNLL 2012)

Polarity Inducing Latent Semantic Analysis 概要 文書-単語行列上でcos類似度などを使うと,意味的に似た単語同士を見つけることができる. しかしこの場合の「意味的に似た」というのは「類義語もしくは反意語」であり,「反意語」だけを見つけたい場合に…