俵言

しがない社会人が書く、勉強とかのこと。最近は機械学習や kaggle 関連がメイン。

小ネタ:numpy.repeat での繰り返しパターン生成と advanced indexing

日常的にちょくちょく numpy 芸・ pandas 芸をするのですが、そういうのを備忘録的に書いていこうかなと*1
今回は numpy.repeat + α のお話です。

目次

  • やりたいこと
  • 素朴な失敗例
  • 解決策:新しい軸を作る
  • 応用:advanced indexing
  • おわりに

*1:「こんなん知ってるわ」って方はどうか許して...

続きを読む

小ネタ:Albumentations の border_mode 早見表

最近ブログ書いてないので小ネタをば。本当は numpy ネタを書くつもりでしたが、こっちがすぐ書き終わったので。

PadIfNeededRotate を使うときに border_mode を指定する*1わけですが、毎回どれがどれかわからなくなって検索しているのでまとめることにしました。
Albumentations*2 の公式 docs に書かれているように、boder_modeOpenCV*3 に準拠しています。

対応表

以下の通りです。
適用例(※PCで見るの推奨)は OpenCV の "画像の境界領域を作る(パディング)" のページ*4のものをお借りしてます。

mode 対応する番号 適用例
元画像 - |abcdefgh|
BORDER_CONSTANT 0 zzzzzz|abcdefgh|zzzzzz
BORDER_REPLICATE 1 aaaaaa|abcdefgh|hhhhhh
BORDER_REFLECT 2 fedcba|abcdefgh|hgfedcb
BORDER_WRAP 3 cdefgh|abcdefgh|abcdefg
BORDER_REFLECT_101 4 gfedcb|abcdefgh|gfedcba
  • BORDER_CONSTANT:指定した値(例ではzを指定)で埋める
  • BORDER_REPLICATE:端の値(例では左端がa, 右端が h)で埋める
  • BORDER_REFLECT :元の境界(例では で示す)について対称になるように埋める
  • BORDER_WRAP:元の境界(例では で示す)で値がループするように埋める
  • BORDER_REFLECT_101一番端の値(ah)について対称になるように埋める

自分で cv2 を import して番号を確認することもできます。

>>> import cv2
>>> print(
...   cv2.BORDER_CONSTANT,
...   cv2.BORDER_REPLICATE,
...   cv2.BORDER_REFLECT,
...   cv2.BORDER_WRAP,
...   cv2.BORDER_REFLECT101
... )
0 1 2 3 4

 おわりに

これで一々検索せずに済む...やったぜ。

Kaggle と出会ってから Master になるまで、そしてこれから。

はじめに

以下の Tweet で言っている"長い旅路"の詳細です。完全にポエムかつ長文*1、しかも自己陶酔を多分に含んだ自分語りです。

暇かつ心に余裕があって何でも寛大に許せそうな場合にお読みください。


話をしよう。あれは2年... いや5年くらい前の話だったか...

といった感じの、むかーしむかしからの話*2。Kaggle と出会ってからの人生(の一部)の紹介みたいなものになっています。

※注意:この記事では主旨として重要なのもあって色々な方々をぼかした形あるいは by name (Twitter・Kaggle上に存在する方々のみ) で紹介しています。 もっとぼかして欲しいということがあれば言ってください。非常に内輪ネタ感がありますが、まあ個人のブログなので「誰やこいつ!?」てなってもお許しください🙇‍♂️

目次

  • はじめに
  • Kaggle との出会い
  • 分析コンペ本格参戦前の話
    • 先輩の誘いから始まるコンペ生活:ACM RecSys Challenge 2017
    • 初めてのソロコンペ:SIGNATE アップル引越し需要予測
    • モチベーション↑↑:ステアラボ人工知能セミナー聴講
    • 後輩との挑戦:PAN Author Profiling Task 2018
    • ところで:Kaggle はやってなかったの?
  • 分析コンペ本格参戦を決意してからの話
    • 背水の陣を敷け:まずは買ったぞオンプレマシン
    • 閾値でイケイケ😎ドンドン💀 : SIGNATE 台風コンペ
    • 運よく参加😄 全然わからん😇 : Kaggle Tokyo Meetup #5
    • 初めてのマルチラベル分類 : Human Proteins Atras Image Classification
    • 短期参戦で無事死亡😇: 電線 & Pet
      • VSB Power Line Fault Detection (1 Day)
      • PetFinder.my Adoption Prediction (1 Day)
    • ソロでの画像コンペ再び👊:iMetCollection2019 - FGVC6
    • 祈りよ届け🙏 : Instant Gratification (1 week)
    • 頑張ってLTに挑戦 : Kaggle Tokyo Meetup #6
    • ちょっと一休み : 4か月ぐらい
    • 復活のきっかけ : Kaggle Days Tokyo
    • おみくじ引いて運だめし🙏 : ASHRAE - Great Energy Predictor III (2 Hours)
    • 念願の Solo Medal 😄 : 2019 Data Science Bowl
    • Shakeup 力を頂けた? : AtmaCup#3
    • 苦脳し続けた 4 Days😇 / Solo Gold への 4 Days🙏 : Bengali.AI Handwritten Grapheme Classification
  • まとめ
  • これからも Kaggle するの?

*1:文字数的な意味でも a long long journey になってしまった...

*2:一年くらい前にも一度昔話ポエムを書きましたが、それよりはずっとずっと明るい話です

続きを読む

効果検証入門 1章の個人的最難関だった t 検定の話

はじめに

巷で話題になっているアイツを僕も読み始めてます。(他の本も読まないといけないのに)

効果検証入門〜正しい比較のための因果推論/計量経済学の基礎

効果検証入門〜正しい比較のための因果推論/計量経済学の基礎

初歩的な所から理解したいという気持ちで輪講で1章の担当になり資料を作っていたのですが、有意差検定のあたりで頭がバグったので t 検定の復習をして行間を埋めることになりました。

おそらく1章で一番( 無駄に*1 )頑張ってしまったので、その内容を備忘録がてら書くことにします*2。統計全然わからんので、変なこと言っててもつよつよ勢はどうかヤサシクシテホシイ....

t 検定はいくつか種類があると思うのですが、ここでは本で使われている(と僕が思っている) 対応なし両側 t 検定の話をします。内容に沿って書くので、本を読んで「この t 検定って何なんだろう🤔」ってなった方*3が流れを理解する上で少しでも参考になれば幸いです。

目次

  • はじめに
  • 準備
    • 記号
    • 前提
  • 本題
    • 1. 標準誤差の算出
    • 2. 効果の推定値と標準誤差を使って t 値を算出
    • 3. t 値を使って p 値を算出
      • 事前準備(めんどくさかったら読み飛ばしてください)
      • 帰無仮説の下での計算
    • 4. p 値を有意水準と比較する
  • 終わりに
  • 参考リンク

【追記(2020/2/24)】
前提の部分でおかしな部分があったため色々と修正を行いました。これに伴い読みにくくなってしまい、また、数学的な怪しさが生まれた可能性があります。
ただ、1章での介入の平均的な効果の検定において重要な部分(t 検定を行う対象がそもそもセレクションバイアス込みになっていること)はより明確になったと思います。ご了承ください 🙏

*1:本来はさらっと流すべき箇所だったとは思う

*2:あくまでメモ的なやつなので色々ご容赦ください

*3:Twitterに生息するつよつよなDS・MLエンジニアは行間を補完できるので無問題なんだろうな...:;(∩´﹏`∩);:

続きを読む