現場データサイエンティスト奮闘記

とある企業で働くデータサイエンティストの日々のアウトプット

GoogleはYMYLという言葉を発明したのがすごいよねという話

ある機械学習モデルによるコンテンツの分類器を作成して本番の運用に乗せてからしばらくたったときの話です。 モデル開発当初はF1 socreもよく本番の運用に十分乗るクオリティとの合意をとって開発していたのですが、ある分類で間違ったレコードがエスカレさ…

GKEでなるべく節約してcronjobを使う方法

概要 cronjob をGKEで使っているけど、常に n1-standard 系のインスタンスが立っていると結構お高い しかし処理によっては g1-small などの貧弱なインスタンスでは足りないケースがある したがって cronjob のときだけパワーのあるマシンが使えるようにして…

Flaskでリモートアドレスを request.remote_addr で取得するときの注意点

Flask の前にプロキシがあるときの対策 以下のように書けばよい if request.headers.getlist("X-Forwarded-For"): ip = request.headers.getlist("X-Forwarded-For")[0] else: ip = request.remote_addr 参考 python - Flask request.remote_addr is wrong o…

firebaseのid_tokenによる認証をPythonで行う方法

概要 firebaseのログイン処理は通常フロントエンドで行い、ユーザーをサーバーサイドで認証するときのデバッグ時などを想定 サーバーサイドで実装してるとローカルで試すときにfirebaseで発行されるid_tokenがないと認証処理ができなくてデバッグできなくて…

Cloud Endpoints + GKEで構築したAPIをマネージド証明書を用いてhttps通信に対応させる

概要 APIを作成する際に、GCPのサービスであるCloud Endpointsを使うとAPIのドキュメント管理や認証機能を簡単に実装できるなどいろいろと便利です。アプリケーションの部分はGKEで作ってそれらを連携させていたりします。 それらの詳しい方法は以下のリンク…

MySQLでカラムを追加して外部キーを付け替えるときの手順

状況 以下のような状況を想定して外部キー付け替えの手順をメモします。 users テーブルには id , uid の2カラムがあります。 posts テーブルには user_id カラムがあり、これが users.id を参照する外部キーとなっています。 また、 posts テーブルには uid…

Nuxt.jsの簡単なアプリをDockerコンテナ上で動かすまでのサンプル

普段はインフラやサーバーサイドの方を触ることが多いのですが、フロントのDockerコンテナ化の流れを勉強したくてやったものをまとめました。 コードはこちらのリポジトリにおいてあります。

gcloudコマンドで操作するGKEのクラスタを切り替える方法

コマンド 出オチですが、これでできます。 gcloud container clusters get-credentials [CLUSTER_NAME] 状況 コマンドラインで複数のクラスタを切り替えながら操作したいときに上記コマンドでいけます。 kubectl で config いじるより簡単そうなのでこっちの…

GKEのオートスケールの設定手順をまとめた

概要 GKEにはアクセス負荷に応じて適宜サーバを増やしたり減らしたりしてくれるオートスケール機能が備わっています。 クラスタ作成時のその設定方法をまとめました。 オートスケール設定方法 GKEのオートスケールの種類について GKEにはオートスケールの種…

MeCab入りのPythonを実行するDockerfileの書き方

概要 自然言語処理を含んだアプリケーションをDocker imageで構築しようとしたらDockerfileの書き方を少し工夫しなきゃいけなかったので、そのメモです。 Dockerfileの書き方 プロジェクトは以下のような状況だとします。 project ├ src │ ├ main.py │ └ req…

肥大化したBigQueryの管理にデータレイク・データマートの考え方が使えるのではないか

はじめに 前提として、筆者は事業会社でいくつかのwebサービスを運営している会社にいます。 アクセスログなど日々山のようなデータが蓄積され、しかも複数のプロダクトを管理しているので、なかなかにデータの管理が煩雑になりがちという状況です。 この改…

データに不慣れなコンテンツ編集チームを2ヶ月でデータドリブン組織にした6つの方法

概要 この記事について 明けましておめでとうございます。新年1本目です。2019年ものんびり更新していければと思います。 さて、会社ではデータサイエンティストをしているのですが、「データ見れるようになりたい!」と他部署の方から相談を受けまして、ち…

GCPのCloud Functions + Cloud Scheduler + Cloud Source Repositoriesで任意のPythonを定期実行させる仕組みをつくる

データ分析でPythonを使っているのですが、データを加工して〜みたいな処理を毎日やるタスクが地味にあったりするので自動化したいです。 最近はGCPも触っているので、GCPのサービスだけでそれを実現できないかなと考えました。いわゆるサーバレスな構成にな…

データを見て意思決定する必要性とデータドリブンに進める方法論を非分析者向けに語る

本記事の概要 この記事は、社内で企画職向けに実施したデータ分析勉強会の資料をリライトしたものです。 対象読者 非分析者である 日頃からデータを元に仮説を立てて検証していくという習慣がない データをどう見るべきか、意思決定の判断のポイントを知りた…

Dockerコンテナでpythonを動かしてSlack Webhookを使ってみた

背景 会社の分析チーム内で、GKEやDockerコンテナだのを使う話が出てきました。 しかし、Dockerとか全く触ったことがないので、その勉強と練習を兼ねてやってみたという記事です。 PythonとSlack APIは普段から触ってるので、材料としてちょうど良さそうだっ…

ディープラーニングが画像を分類する仕組み

概要 会社で「ディープラーニングって実際どんな風に動いてるの?知りたい!」と言われたので社内向けに作った資料を記事にしています。 想定読者 エンジニア・データサイエンティストというより、以下のような課題感を持ったビジネス職の人を対象にしていま…