フリーランチ食べたい

No Free Lunch in ML and Life. Pythonや機械学習のことを書きます。

pathlibで見るPythonの演算子オーバーロード活用

pathlibって便利ですよね

最近pathlibの便利さが様々なところで語られています。

pathlibの様々な機能は上記の記事やドキュメントを読んでいただければわかるので、今日はその1つに、Pythonのオーバーロードを説明するのに良い機能があるので紹介したいと思います。

続きを読む

研究がESSSB 17th@ベルギー・ヘントでポスター発表されました!

ESSSBとは

正式名称はEuropean Symposium on Suicide & Suicidal Behaviourで、自殺行動/自殺予防について学際的な観点から研究された発表やポスターが多い学会です。今年はベルギーのヘントで開催されました。

www.esssb17.org

ポスター

タイトルは「Regional suicide rates and affecting factors in Japan: an ecological study by using Generalized Linear Model and Machine Learning」です。各都道府県ごとの自殺率と、失業率、中学/高校進学率、一人当たり災害復旧費などの関係について、状態空間モデルとRidge回帰を使って探索的/仮説検証的の両面から検証した研究になります。自分はモデルの設計/実装とグラフの作成を主に行いました。

f:id:mergyi:20180923174656p:plain

発表

発表はFirstAuthoのOeくんがしてくれました。この研究のアピールポイントは、この分野では今まで活用が少なかったMachineLearningを活用して仮説探索/検証を行った点だったのですが、現地でも好評で興味を持ってくれた方が多かったようです。

f:id:mergyi:20180923180657j:plain

さいごに

全国の実際の自殺率データを扱って考察を得るのは非常に興味深い体験でした。 今回はマクロな視点からの研究だったので、この研究で得られたことを活かしつつ細かい、具体的な見識を得ていきたいと感じました

BigQuery GIS/GeoPandasを使ってお手軽にIPアドレスで地理空間分析を行う「Wikipediaはどこから編集されている?」

TL;DR

  • BigQueryの fh-bigquery:geocode.geolite_city_bq_b2b Tableを使い IPアドレスから緯度経度を取得できます
  • 国土地理院の「地球地図日本」から地図データを取得することができます
  • GeoPandasを使うことでお手軽に地理情報を可視化できます
  • BigQuery GISを使うと制限はありますが、もっと簡単に可視化することができます
  • ↓BigQuery GISを使った可視化です f:id:mergyi:20180916030135g:plain
  • コードは全てGithubに置いてあります。

github.com

続きを読む

PyCon JP 2018のトークのスケジューリングを行い、Blog投稿しました

ついに来週PyCon JP 2018です

今週buildersconに参加してきたのもあって、体が温まっている感じがします。笑 今回、PyCon JPには運営側で参加しますが、そもそも PyCon JPに参加するのがはじめてなので(!)そういう意味でもとてもワクワクしています。

トークのスケジューリングをBlogに投稿しました

自分の担当は以前Blogに投稿したように(PyCon JP2018のHPを作成しました。 - フリーランチ食べたい) システムなのですが、「タイムテーブルを作る人でが足りてない」とのことだったので助っ人として手伝わせていただきました。ただ、自分も当然もともとのシステムチームのタスクもあるので、そこまでガッツリ時間を取ることは難しそうで、そこから今回の最適化問題としてスケジューリングをするというアイディアが浮かびました。

pyconjp.blogspot.com

来週遊びに来てください

PyCon JP 2018のチケットは社会人分は完売しているのですが、学生分はまだ少数あるみたいなので、もし興味がある方いれば是非是非遊びに来てくださいね

pycon.jp

JSPN2018: 第114回日本精神神経学会で「DPATの個別対応と決定要因に関する分析」というタイトルでポスター発表を行いました

JSPN2018でポスター発表を行いました

実際に話したのはボスなので、何というのが正確かはわかりませんが、ポスター発表の実際の研究部分を担当しました。

www.congre.co.jp

ざっくりとした背景と内容

DPATという自然災害などの後に、被災地域に入り、精神科医療および精神保健活動の支援を行う専門的チームがあります。

www.dpat.jp

このDPATは2016年の熊本地震の際にも稼働し、被災地の医療行為を行っていました。熊本地震のように被災地が広い場合は当然限られた人的リソースを配分する必要があり、今回も行っていたのですが、配分のやり方について、まだ知見が溜まっておらずヒューリスティックにその場その場で判断していました。震災後、配分方法のデータだったり、患者さん/症状、実際にどう対応したかのデータが集まってきたのでそれを元に適切なリソース配分方法だったり、それ以外の関連する気づきを得るのが今回の目的でした。

ポスター

f:id:mergyi:20180909194905p:plain

最後に

このようにポスターをブログに載せるというのはあまり一般的ではないと思いますが、こういった研究成果をエンジニア/データサイエンティストとして、どのように集約していくか、は難しいと感じている背景があります。アカデミックな領域だけで簡潔するのであればアカデミックなやり方で全て簡潔しますが、自分のようにエンジニア/データサイエンティストとして適切に評価を受けたい場合、アカデミック以外の方にもわかりやすくまとめられていることが必要になります。こういった課題を抱えている方はそんなに多くないと思いますが、自分だけではないと思うので他の方がどうやっているかを調べたり、自分なりに検討していきたいと思います。

PyCon JP2018のHPを作成しました。

PyCon JP2018

今年の5~7月に主に開発をしていたPyCon JP2018のHPが7月に無事完成し、ブログを投稿しました。自分はPyCon JP2018システムチームなので実装、調整で携わっていました。

pyconjp.blogspot.com

pycon.jp

自分の担当とコード

PyCon JP2018は Vue.jsのフレームワークである、nuxt.jsと、APIとしてGoogleAppsScriptを使って開発されています。自分はAPI側の実装全てとフロント側のスポンサーページの実装を担当しました。HPは主に3~4人で開発されています。コードは全てPublicになっているので誰でも見ることができます。

github.com

github.com

なぜ転載しているか

前回のブログに書かせてもらったとおり、Forkwellのポートフォリオサイトのために投稿しています。

blog.ikedaosushi.com

カリフォルニア大学サンディエゴのAlgorithmic Toolbox @ Courseraを修了しました!

ここ1ヶ月半くらいで、Courseraで「Algorithmic Toolbox」という名前のCSのコースを受けており、今週、6週分の授業・課題を全てクリアし今週修了証をゲットしました 👏

f:id:mergyi:20180902130629p:plain

https://www.coursera.org/account/accomplishments/verify/JKBYCPYP7U69

Data Structures and Algorithms

この授業が何かと言うと、Data Structures and AlgorithmsというSpecializationの第一コースです。Specializationとは、Coursera用語らしく(?)、一連のCourse郡を束ねた名前のようです。(Specializationについては解説してくださっている方がいるので、こちら参照。Coursera|Specializationとは : MOOCsブログ)

(Data Structures and Algorithms Course1)www.coursera.org

そして、Data Structures and Algorithmsの特徴を説明文を引用して説明します。

No other online course in Algorithms even comes close to offering you a wealth of programming challenges that you may face at your next job interview.

このSpecializationの特徴は、単なるアルゴリズムの解説だけではなく採用面接などで必要になるアルゴリズムのプログラミングスキルを身につけられる ということです。

Algorithmic Toolbox

www.coursera.org

Algorithmic ToolboxはSpecializationの第一コースということで、基本的な内容から始まります。下記のようにWeek6に分かれています。

  • Programming Challenges
  • Algorithmic Warm-up
  • Greedy Algorithms
  • Divide-and-Conquer
  • Dynamic Programming 1
  • Dynamic Programming 2

毎週プログラミング課題があり、Java/C++/Python/Javascript/Rustなどの中から好きな言語を選べ、理解を深めることができます。

Week1、Week2の「Programming Challenges」「Algorithmic Warm-up」はアルゴリズムの重要性や計算コストの考え方など基礎から始まります。Week3の「 Greedy Algorithms」から本格的にアルゴリズムの内容が開始され、課題も難しくなります…。

なので後半は結構大変でした。でもGreedy AlgorithmsやDynamic Programmingを実装できるようになったのは、とても便利で今度別の(ある組織の)ブログで書くと思いますが、早速現実の問題にも適用するタイミングがありました。

Computer Science Complex をCourseraで治療する

geek-out.jp

先月、GeekOutに僕が強く尊敬するエンジニアの1人であるHigeponさんの記事が掲載されていました。Higeponさんが「ComputerScienceにコンプレックスをずっと持っていた」と書かれていましたが、まさに自分も同じ悩みを持っています。今年エンジニア4年目に突入し、普段はなんとなくプログラミング出来てしまうのですが、「ああライブラリがいい感じにやってくれるからそれに頼り切って実装してるな」と無力感を感じてしまうんですよね。

きっと自分以外にも同じような気持ちを持っている人は多いのではないでしょうか。そんな方にこのコースはオススメです。個性豊かな講師陣で話を聞いてるだけで割と面白いですし、資料も説明も工夫が凝らされてます。全て英語なので、自分にとっては言語の壁も大きいのですが、説明が工夫されてるのでなんとかついていける、と感じてます。

修了証を集めるのがゲーム感覚で楽しい

Courseraで取得した修了証はLinkedInに追加できるので純粋にRPGで武器を集めるような感覚で楽しいですし、もちろん就職、転職にも活用することができます。 https://www.linkedin.com/in/yutaro-ikeda-8b1015147/

Data Structures and AlgorithmsはCourseraの中では有料のコースになってしまうのですが、十分受ける価値はあると思います。来週からCourse2のData Structuresに挑戦します。また修了したら感想を書きたいと思います!

www.coursera.org