nykergoto’s blog

機械学習とpythonをメインに

Python

項目応答理論の理論と実装

モチベーション: 変わった学校の定期テスト ある学校では期末ごとに定期テストが開催されています。生徒は同じタイミングで同じ問題を解きます。この試験の結果から生徒の能力値を推定してほしいと依頼があったとしましょう。この場合すべての生徒は同じ問題…

Django Congress 2021 に参加しました!

2021/07/03 に開催された Django Congress に参加しました。とても有意義なお話を沢山拝聴でき勉強になりましたし非常に楽しかったです! ありがとうございました! 以下各発表の自分のメモ書きになります。(スライドは随時追加予定です) 公式ページ: https://…

pythonで実行時間を測定しつつ時間も取得したい

実行時間を測定するには? KaggleMasterのアライさん著・Kaggleコード遺産でおなじみ timer を使うのが便利です! いつもお世話になってます Kaggleコード遺産 - Qiita from contextlib import contextmanager from time import time # https://qiita.com/kagg…

scikit-learn の grid-search を sample_weight と同時に使用する場合の問題点

以下の記事によると scikit-learn の BaseSearchCV の実装には問題があり意図しない動作をしている可能性がある、とのことが報告されています。いつも scikit learn を使う身としては気になる話題なので、少し詳しく見ていきます。 deaktator.github.io Base…

python: loggingの出力値を文字列として取得したい

python の logging で出力した info とかを文字列として取得したい! という場合の方法についてのメモです。 下準備 単純な logger と stream handler (コンソールへの出力のハンドラ) を用意します。 詳しくは https://docs.python.org/ja/3/howto/logging.h…

python の DateTime・Timezone と Django での取扱い

django でアプリケーションを作っていて timezone 周りで困ったことがあったので、初めて django および python での時間の取り扱いについて真面目に調べてみた記録です。 はじめに・ われわれが使っている時計の時間とは何か まず時計が示している時間とは…

python で logging を止める

はじめに: 基本的なお作法 python の logging の話です。logging そのまま呼び出しもできるのですが若干やんちゃやで、ということが公式ドキュメントに書いています。 ロガーに名前をつけるときの良い習慣は、ロギングを使う各モジュールに、以下のように名…

データコンペサイトを作る DjangoRestFramework編

この記事は atma Advent Calendar 2019 - Qiita 2019/12/21 の記事です。 今年自社のサービスとして オンサイトのデータコンペティション atmaCup をはじめました。 オンサイトデータコンペとは実際に会場に集まり、準備されたデータをテーマに沿って分析・…

PRML の本読みをしています @section3

最近(というか今日から) 会社でPRML勉強会をやっています。ふつう第1章からやるのが普通ですがPRMLはちょっと重たいので息切れすると良くないよねということでいきなり第3章から始めるという方針をとっています。*1 今回は僕が担当で、主に 線形モデルの導入…

Nelder Mead Method を python で実装

最近会社で Kaggle 本 Kaggleで勝つデータ分析の技術 の本読みをやっています。昨日は第二章でしきい値の最適化の文脈で Nelder Mead Method を使った最適化が記載されていました。ちょっと気になったので実装してみたという話です。 Nelder Mead Method と…

連続変数で StratifiedKFold

pandas.qcut で int に変換すると良さげ from sklearn.model_selection import StratifiedKFold import pandas as pd def get_stratified_fold_split(X, y, n_folds=10, q=20): # Categorical.codes で各クラスに対応する int が取得できる y_cat = pd.qcut(…

Adabound の final_lr と収束性について

みなさん optimizer は何を使っていますか? (僕は SGD + Momentum + Nesterov が好きです) adagrad/adadelta/adam などなど NN で用いられる optimizer は数多くありますが, 最近提案された optimizer に adabound というものがあります。 adabound はざっく…

文章の埋め込みモデル: Sparse Composite Document Vectors を読んで実装してみた

自然言語処理である単語の意味情報を数値化したいという場合に単語を特定のベクトルに埋め込む(分散表現)手法として word 2 vec があります。 この word2vec と同じような発想で文章自体をベクトル化するという発想があり Doc2Vec やそのたもろもろも方法が…

Pytorch で DCGAN をつくったよ

DCGAN を二年ぶりに実装しました。 github.com いつも MNIST も面白くないので、 MNIST にアルファベットが加わった EMNIST をデータセットとして用いました。 www.nist.gov Emnist の画像例 こんな感じの画像が10万オーダーで格納されています。大きさは Mn…

Pytorch ことはじめ

0.40 の update もできて話題の pytorch を触り始めたのでその時のメモ。 出てくるコードはすべて以下のリポジトリの /notebooks/start で見ることができます。 github.com 参考資料 pytorch document http://pytorch.org/docs/stable/index.html pytorch tu…

Pycharmの便利機能まとめ

ショートカット 一般 コマンド 内容 Shift + ⌘ + Delete 最後に更新した場所にジャンプ Shift + ⌘ + F7 現在開いているファイル内で、カーソルが当てられている変数が使用されている場所をハイライト。その状態で ⌘ + G を押すとつぎに使われている場所にジ…

本のクラスタリングをやってみよう - 吾輩は猫であるに近い本は何なのか

最近理論よりなことばかりやっていたので今回は実際のデータを使った解析をやってみます。 今回使うデータは、読書メーターからクロールさせてもらって作成した、ユーザーに紐付いた読書履歴のデータです。ユーザーごとに [だれの, どんな] 本を読んだかがわ…

ニューラルネットへのベイズ推定 - Bayesian Neural Network

ニューラルネットワークの過学習防止としてDropout という機構が用いられているのはご案内のとおりです。 この Dropout 、見方を変えるとディープラーニングにおける重みのベイズ推定に相当しているのではないか、という内容が Uncertainty in Deep Learning…

機械学習のコード整理

タイトルのままですが、今まで適当に書いてローカルに放置してたりブログには書いたけどそのまま放置してたりしていたコードを一つのリポジトリにまとめる作業をしました。 まとめながら、昔書いたコードをいろいろと手直ししていましたが、ひどく密につなが…

Gpy vs scikit-learn: pythonでガウス過程回帰

Gpy と Scikit-learn Python でガウス過程を行うモジュールには大きく分けて2つが存在します。 一つは Gpy (Gaussian Process の専門ライブラリ) で、もう一つは Scikit-learn 内部の Gaussian Process です。 GPy: GitHub - SheffieldML/GPy: Gaussian proc…

scikit-learn 準拠の予測モデルのつくりかた

機械学習で色々やっていると、いろいろなモデルを複合したアンサンブルモデルなど、自分で新しい予測モデルを作りたい場合があります。 その場合自分でいちから作り上げても良いのですが、そうやって作ったモデルは、たとえば scikit-learn のパラメータ最適…

DCGANをChainerで実装

DCGANとは DCGANはランダムなベクトルから画像を生成するGeneratorと、画像が与えられた時にその画像がGeneratorによって作られたものなのか、本当の画像なのかを判定する関数Discriminatorでなりたっています。 DCGANのアイディア この2つの関数を相互に競…

PRML 10章の変分ベイズ法の実装

線形回帰に対する変分法を用いた計算について実装してみました。 コードは以下から github.com 変分ベイズではまず、隠れ変数も含めた完全データに対して同時分布を定義します。その後隠れ変数の分布が複数の関数の積として近似して表すことができる、という…

format記法の使い道

pythonでは変数の情報を文字列にする方法がいくつかありますが、その中でも僕はformat記法をよく使っています。 特に最近「dictionaryを文字列にしたいなぁ」という場合に、とてもきれいに書くことができるということを発見(というかドキュメントを読んで判…

python の Xgboost を Windows で使いたい!

pythonをwindowsでやるなよ、という意見はごもっともですがでもやりたい時だってあるじゃん?なのでやりましょう。 環境 windows10 64bit 必要なものたち git bash MinGW-W64 pythonが使える何かしらの環境(Anacondaとか) git cloneする git bash を起動し…

pythonによる固有値固有ベクトル計算

pythonで固有値固有ベクトルを計算しようと思うと numpy.linalg (線形代数の便利関数のモジュール)以下にある numpy.linalg.eigs を使うことになります。 numpy.linalg.eig — NumPy v1.11 Manual この挙動が個人的な感覚とちょっとずれていて、そこでかな…

PRML 第3章のEvidence近似

PRML第3章では、線形回帰モデルを扱っています。 その後半で、これまで固定だとしていた、重みwの分布の精度パラメータと、実際に観測される値tのモデルであるに現れるノイズの精度を表すの値もいい感じの数値にしちゃいましょうという話が出てきます。これ…

ガウス過程による事前分布からのサンプル

前提条件 まず初めに目的変数は、ある重みのベクトルと、dataから得られた特徴ベクトルの線形結合であらわされるとします。 要するに となっているわけです。このとき、の事前分布が で与えられているとすると、ガウス分布の線形和もガウス分布なので、yの分…

カーネル密度推定

PRMLを読んでいます。とりあえず出てくる式はすべて自分で追って、変形とかもやってるのでなかなか進まなくてもどかしいですが、もう多分確率密度関数とかを復習することは無いだろうし…と思いながらやってます。今日は二章のおわりまで行きました。 ノンパ…

Pythonの日本語に対する厳しさ

タイトルのとおりです。詰まりました。一応どうやったらどうなったかを書いておこうと思うのですが、なぜそうなったのか文字コードについてほとんど全くわかっていない、それはすなわちASCIIだのunicodeだのShiftJISだのの違いがいまいちわかっていないって…