python

SIRモデルとネットワークモデルを用いて身近にコロナ感染経験者が存在する確率をシミュレーションする

はじめに 最近は街を見ると人通りがコロナ前に戻っていたりしますが、感染者数自体はそれほど減っていないのでこのような状況となっているのは、身近にコロナの感染経験者がいないことも原因の一つであるのではないかという仮説があります。人は身近に起こっ…

書籍レビューを用いた潜在表現の獲得とクラスタリングの実施

はじめに 書籍に関連する情報を用いてその潜在表現をうまく獲得することで、 以下のようなことができないかなーと考えています。 自身の読書済みの本と照らし合わせて カテゴリごとの網羅率の算出 本を読んだ時に得られる情報量の算出 該当の本の完読可能性…

物体検出を用いてジャグリング(3ボールカスケード)の回数をカウントする

はじめに WFHの気分転換でたまにジャグリングをしていて、これ最近の物体検出技術を使えば回数をカウントする仕組みが割と簡単に作れるのでは?と思ったので試しに動画から3ボールカスケードの回数をカウントする仕組みを作成しました。 実施手順 以下の手…

Q-learningで倒立振子を振り回す

はじめに 最近kaggleでも強化学習系のお題が増えてきたように思うので(実際に解法に強化学習が使用されているかは別として)、 手をつけていなかった強化学習について、本を読みながら試してみたことを書きます。 参考資料 pythonで学ぶ強化学習 https://gith…

DTW(Dynamic Time Warping)で台風軌道をクラスタリングする

はじめに 多次元時系列データのクラスタリングがしたいと思って探していたところ、 ちょうどこちらのブログの題材が台風軌道のクラスタリングという、多次元時系列かつ系列長の異なるデータをクラスタリングするというものだったので、理解を兼ねて同じ内容…

Dashで更新可能な地図を表示する

はじめに 選択した項目に対して、インタラクティブに地図を更新するwebアプリを作成したいと思いました。 最初はstreamlitのpydeckで試していたのですが、地図を複数回レンダリングすると発生するバグが解消できなかったため、今回はDashで実装しました。 実…

Whooshで検索機能の向上を図る

はじめに 前に類似本検索システムを作成したのですが、その中で数万ある本の候補の中から探したい本の検索する部分があります。 そのときは入力された単語に対し検索を全書籍に対して行う、という最も単純な手法を実装したのですが、 もう少しいいやり方がな…

スペクトラルクラスタリングを用いてグラフ構造のデータをクラスタリングする

はじめに グラフ構造のデータをクラスタリングする方法について調べていて、 スペクトラルクラスタリングという手法が使えそうだったので、その実験結果を記述します。 参考資料 https://arxiv.org/pdf/0711.0189.pdf[1] https://towardsdatascience.com/spe…

類似本検索システムを作りたい

ということで、本を検索すると類似している本のリストを出力するサイトを試作してみました。 https://bookrecommendst.herokuapp.com/ (herokuを他の用途で使うまではアクセス可能な予定です。) youtu.be こんな感じで、ある検索した本に対して類似度の高い…

GCPでデータ収集環境をつくる

はじめに データ分析をするにはデータが必要ですが、常に欲しいデータが存在するとは限らず、 時には自分で取得・保存する必要が出てくると思います。 ここではGCPを用いてデータ収集環境を構築してみた備忘録を記述します。 実施概要 apiを使って日次でvtub…

pca+kmeansについての雑実験

はじめに 列数が多いデータセットに対してクラスタリングを行う場合にPCAで列数を次元削減してからクラスタリングをするという手法があるらしいです。 確かにPCA等で列の次元削減を行うことでノイズ成分を落とせるので、うまくいけば重要となる特徴だけを用…

あてはまりのよい確率分布を探したい

はじめに データを眺めていると、ある分布に対してそれが正規分布に従うのか、対数正規分布か、それともガンマ分布の方が近いのか?、というようにどの分布の当てはまりがよいかが気になることがあると思います。 これを確認する方法を探してみたところ、sci…

推論時の入力に未知の欠損値がある場合のlightgbmの挙動の確認

はじめに 以前にlightgbmは入力に欠損値があってもうまく学習してくれるという記事を書いたのですが、 これは学習時に欠損が存在している場合の話でした。 現実の問題を考えると、学習時とそのモデルを使った推論時では時系列の違いや環境変化の影響 により…

テニスにおける疲労度の影響の定量化(spoana5の内容+α)

はじめに 「プロテニスにおいて疲れが勝敗に与える影響を定量化してみる」 という題目で下記イベントでLTしてきました。 spoana.connpass.com 使用した資料は以下になります。 プロテニスにおいて疲れが勝敗に与える影響を定量化してみる - Speaker Deck 内…

VAE(Variational Auto Encoder)で猫が復元できなかった話

はじめに couseraでBayesian Methods for Machine Learningを受けているんですが、 その中で出てきたVAE(Variational Auto Encoder)で少し試してみたいことがあったのでその実験記録になります。 参考文献 VAEの理論や位置付けについては下記資料が参考にな…

変数間の関係性が見たい(偏相関とGraphical Lasso)

はじめに データの変数間の関係性を明らかにしたいというケースは多いと思います。 その場合相関や散布図をみるのが一般的ですが、交絡やノイズが多いケースなど それだけでは不十分な場合もあるため、その場合にも対応できそうな手法を試してみます。 試す…

機械学習における欠損値補完について考える

※この記事で使用している多重代入法のパッケージは正式な多重代入法の枠組みとは異なりますのでご注意願います。 はじめに 最近多重代入法という欠損値補完の手法があることを知りました。 統計学の界隈では欠損値補完は多重代入法を使用するのがベターのよ…

ランチ最適化問題(バンディットアルゴリズム編)

はじめに 日々の生活を営む上で、ランチをどこで食べるかということは非常に重要な問題です(2回目)。 前回はこの問題を最適停止問題と捉えて探索と活用の最適点探索を行いましたが、最適停止問題では一度見逃した店はもう選択できないという制約がありました…

ランチ最適化問題(秘書問題編)

はじめに 日々の生活を営む上で、ランチをどこで食べるかということは非常に重要な問題です。 ランチの選択肢としては、新しい店に入る(探索)と、今まで行ったことのある店で良かった店に入る(活用)のどちらかを行う必要があります。経験的に良かった店…

CausalImpactの理解と実装

はじめに 今回はCausalImpactについて書いていきたいと思います。 CausalImpactはgoogle製の効果測定用パッケージで、主に広告やキャンペーンの効果を測定するのに用いられます。 なぜ広告やキャンペーンの効果を測定するのにこういうものが必要なのかという…

差分の差分法(difference in difference)を試す

はじめに 最初は最近話題(?)のCausalImpactについて書こうと思っていたのですが、その基礎となる差分の差分法(difference in difference)についての知識が不足していたため、この記事では差分の差分法について試したことを記述していきます。 差分の差分…

NCAAコンペ反省文(2019)

はじめに 下記のNCAAコンペに参加した反省文です。 https://www.kaggle.com/c/womens-machine-learning-competition-2019 https://www.kaggle.com/c/mens-machine-learning-competition-2019 このコンペのタスクは全米大学体育協会(NCAA)が毎年春に主催す…

カルマンフィルタを用いた状態空間モデルの推定

はじめに 時系列解析については以前にMCMCを用いた状態空間モデルの推定を行なったのですが、状態空間モデルの推定方法としてカルマンフィルタも知っておいた方が良さそうだったので、今回はカルマンフィルタの実装を行なっていきます。 状態空間モデルの推…

傾向スコアと機械学習とprobability calibrationの話

はじめに RCTが使えない場合の因果推論の手法として傾向スコアを使う方法があります。 傾向スコアの算出はロジスティック回帰を用いるのが一般的ですが、この部分は別にlightgbmとか機械学習的な手法でやってもいいのでは?と思っていましたが既にやっている…

一般化加法モデル(GAM)について考える

はじめに 機械学習を現実の問題に適用する場合、そのモデルに説明性が求められることが少なからず存在すると思います。 その場合、精度を犠牲にして線形回帰を実施するでしょうか?木系モデルの重要度を頑張って説明するでしょうか?それともSHAPやLIMEなど…

AtCoderの問題難易度を推定する(機械学習編)

はじめに 以前に、AtCoderの問題難易度の推定を項目反応理論を用いて行いました。 これは統計モデリングを使った方法だったのですが、同様のことを機械学習でできないこともないな、 と思い今回は機械学習を用いて問題難易度の推定を行うことにしました。 手…

AtCoderの問題難易度を項目反応理論を用いて推定する

はじめに AtCoderは競技プログラミングのサイトです。ほぼ毎週のようにコンテストが開催され、参加者が複数の問題を解き、解いた問題数とその早さから順位がつきます。また各参加者はレーティングを持っていて、そのレーティングが順位によって変化するとい…

CM視聴の効果を推定する(負の二項分布編)

はじめに 前回 は、ゼロ過剰ポアソンを用いてCM視聴がゲームのプレイ時間に与える効果の測定を行いました。 ゲームのプレイの有無に与える効果の部分はうまく推定できましたが、 ゲームをプレイする時間に与える効果はポアソン分布ではうまく推定することが…

ココイチのスプーンの当選確率をベイズ推定する

はじめに 最近ココイチでスプーンがあたるキャンペーンをやっていますね。 ベイズをやっていると、こういうときに手持ちの情報から当選確率をどこまで推定できるか気になりますね。 ということで、5回ココイチに行って2つのスプーンをゲットしてきました。 …

CM視聴の効果を推定する(ゼロ過剰ポアソン編)

はじめに 最近は統計モデリングについて学んでいますが、具体的にこういうケースでは統計モデルを使うべきだというケースが自分の中で定まっていません。そのあたりをつけるために実験を行なっていきたいと思います。 データセット 今回は こちらの岩波デー…