機械学習

StanでAizu Online Judgeの難易度・習熟度を推定したい(3:IRTモデルによる習熟度推定)

シリーズ一覧 kujira16.hateblo.jp kujira16.hateblo.jp はじめに 前回までの記事を公開したところ,Twitterで「問題に取り組んだときの正答確率の部分を項目応答理論でモデリングしないのはなぜか」というコメントをいただきました。 …すいません,項目応答…

StanでAizu Online Judgeの難易度・習熟度を推定したい(2:人工データによる実験)

シリーズ一覧 kujira16.hateblo.jp kujira16.hateblo.jp 目的 あるユーザがある問題に正答したというデータは得られますが,正答していない問題は,取り組んだけれども実力不足で解けなかったのか,そもそも取り組んでいないのかを区別することができません…

StanでAizu Online Judgeの難易度・習熟度を推定したい(1:モデル式)

シリーズ一覧 kujira16.hateblo.jp kujira16.hateblo.jp はじめに Aizu Online Judge (AOJ) という競技プログラミングの練習サイトがあります。 AIZU ONLINE JUDGE: Programming Challenge 解けるか解けないかくらいのちょうど良い難易度の問題に取り組むこ…

Stanの実行時間がchainごとに違う理由

warm-upよりもsamplingのほうが早く終わるのもよく分からない— しょラー (@shora_kujira16) 2017年4月15日 leapfrog法のステップ数LはPyStanでは fit.get_sampler_params()[i]['n_leapfrog__']) で取れるようです— しょラー (@shora_kujira16) 2017年4月17日

Indeed Machine Learning CodeSprint 2017

www.hackerrank.com 問題 求人の文面が与えられるので,以下のタグを付けるべきかどうかそれぞれのタグについて二値分類してください。 アルバイト フルタイム 時給制 月給制 短大卒対象 大卒対象 修士または博士対象 免許が必要 1年の経験が必要 2〜4年の経…

Matplotlib 2.0.0rc1を試す

ダサくなくなったという話を聞いたので,試してみました。 私はpyenv+Anacondaの環境を使っています。せっかくなので分離した環境を作って,そこにインストールすることにしましょう。 # `matplotlib-v2` という名前で新しく環境を作る。 # Pythonのバージョ…

Jupyter Notebookの小ネタ (display, tqdm, SSHポート転送)

この記事は jupyter notebook Advent Calendar 2016 の12月13日の記事です。 qiita.com Jupyter Notebookを使う上で,この機能を知らない人を見つけたら教えてあげたくなるような小ネタをいくつか紹介します。 IPython.display.display Jupyter Notebook上で…

人工知能で「ぬ」と「ね」を区別するための手書き文字データセットを作った

経緯 パターン認識の講義で高次元データを用意して次元削減を適用する課題が出たので,FXで有り金全部溶かした人のためのデータセット作ってる pic.twitter.com/K6emS0YVXj— しょラー (@shora_kujira16) 2016年7月14日 . @shora_kujira16 左:「ぬ」と「ね」…

100 numpy exercisesで見つけたNumPyの便利そうな機能

github.com 今まで知らなかった関数をいくつか見つけたので,それについて調べました。 numpy.ndarray.flags numpy.ndarray.flags にはいろいろなフラグが設定できる。たとえば writeable を False に設定した行列に対して書き換えを行うと例外が発生する。 …

hyperoptでハイパーパラメータをチューニングしてみた

Kaggleとかやってる人に人気のあるアレです。 github.com インストール ここ数ヶ月の間,開発が停滞していて,Python3の互換性の問題を修正するプルリクエストが取り込まれていない状況です。 不幸にもPython3に関する問題に追突してしまった場合には,修正…

Okapi BM25をスパース行列のまま計算するPythonライブラリを作った

情報検索で使われる単語の重み付け方法のひとつにOkapi BM25というものがあります。文献によって細かな違いはありますが,今回は Wikipediaに載ってるやつ を使うことにします。 それぞれの文書におけるそれぞれの語の重みを表す行列を計算するクラスを作り…

お誕生日コンテスト X - この問題はほんとうにひどい問題であるため,できれば先に他の問題のほうをお楽しみいただければと思っておりまして,ですので他の問題を通し終えて暇になり,かつその暇を

問題 birthday0410.contest.atcoder.jp 解法 343点までしか取れていませんが,満点を取ろうとするとキツいので勘弁して下さい。 まずはノイズを取るためにメディアンフィルタをかけます。注目している画素と,そのマスの周囲8画素の合計9画素の中で黒と白の…

Matplotlibでお絵かきする練習

# coding: UTF-8 from __future__ import absolute_import, division, print_function, unicode_literals import matplotlib.pyplot as plt from matplotlib.patches import Circle, Wedge, Polygon, Ellipse plt.figure(figsize=(8, 8)) ax = plt.gca() # …

PythonでEMアルゴリズムを可視化してみた(混合正規分布)

可視化してみました。 解説 以下の動画が一番分かりやすいです。 www.youtube.com Q関数を最大化する, , の求め方は,実際に解いてみると,本当にラグランジュの未定乗数法を使うだけという感じでした。ただし という制約を組み込むのを忘れずに… について求…

scikit-learnで単語文書行列を作る方法の比較

目的 テキストデータから特徴ベクトルを作って何かやろうと思ったときに,私の場合は何も考えずに単語文書行列を作ってナイーブベイズのようなベースライン的な手法を試すところからはじめます。単語文書行列というのは以下のページに載っているような行列で…

normalizeNumexpインストールメモ

本家 http://www.cl.ecei.tohoku.ac.jp/~katsuma/software/normalizeNumexp/ 本家 http://www.cl.ecei.tohoku.ac.jp/index.php?Open%20Resources%2FnormalizeNumexp GitHub https://github.com/nullnull/normalizeNumexp 性能 NAISTテキストコーパスで適合率…

scikit-learnメモ

GridSearchCV,RandomizedSearchCVのverboseオプション ドキュメントには単に"Verbosity level."や"Controls the verbosity: the higher, the more messages."としか記載されておらず闇っぽい。 verbose=1では一定の間隔でログを表示,verbose=2ではテスト毎…

D3.jsでパーセプトロンを可視化した

授業でソフトコンピューティングについて勉強したので、パーセプトロンを実装したい気分になりました。 http://arosh.github.io/perceptron-playground/ 遊び方 どちらかお好きな方法でお楽しみください。 左下のボタンでClass1 or Class2を選択して、線形分…

scikit-learnとOpenCVで電子部品の画像分類

11月の1日〜3日に学祭がありました。サークルとしても何か出そうということになり、「とりあえず手続きだけはして夏休みに何か作るってことで〜」ということになったのですが、各々がICPCの練習やCTFに熱中しすぎたあまり、肝心の展示物が@akihiro01051先輩…