フリーランチ食べたい

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

Lambda Layerを使ってデプロイを高速化する

TL;DR Lambda Layerを使ってLambdaのデプロイを高速化します。 ServerlessとServerless Pluginを使うことで簡単に実現することができます。 今回試した一例ですが、252.47秒->45.49秒で5倍高速化しました。 はじめに Serverlessを用いたLambda Layerの活用に…

AWS Secrets Managerを使って安全で簡単にGCPの秘密鍵JSONファイルなどの秘匿情報を取り扱う

TL;DR AWS Secrets Managerで秘密鍵JSONファイルなどを簡単に扱うことができます。 1つのユースケースとしてこの記事ではGCPの秘密鍵を扱います。 GCPのSDKに読み込む方法も解説します。 はじめに CI/CDでアクセスキー/シークレットキーなどの秘匿情報を扱う…

眠っているログを活用しよう / Rails Developer Meetup 2019で発表しました

RailsDM2019(https://railsdm.github.io/) で発表させていただきました。 タイトルは少し長いのですが、 「ログを解析し続けてわかった、 会社で眠っているアクセスログを活用する5つのプラクティス」 です。 ログを解析し続けてわかった、 会社で眠っている…

3/23(土)にRails Developers Meetup 2019で発表します

今回は技術記事ではなく、告知です! 再来週に迫った3/22(金)・23(土)に外苑前の日本オラクルさんで開催されるRails Developers Meetup 2019にスピーカーとして参加させていただきます。 もうチケットは完売しているようなのですが、参加予定の方いたら是非…

レコメンドアルゴリズム入門(非個人化推薦/コンテントベースフィルタリング/協調フィルタリング)

現在受講中のCourseraのRecommender Systemsコースの中で自社のサービスなどにレコメンド機能の導入を検討している方に有用だと思われる情報があったのでまとめてみました!「レコメンドアルゴリズムって協調フィルタリングのこと?」というくらいの知識の方…

【Chrome Extension】簡単にURLとタイトルをコピーできる「simple-url-copy」作りました

今閲覧しているURLとタイトルを簡単にコピーできるChrome Extensionを公開しました。 ダウンロードはこちらから↓ chrome.google.com このブログでは、なぜこのChrome Extensionを作ったのか、どういう機能があるのかを簡単に紹介したいと思います。 実は同機…

【Rust】bostonデータセットで重回帰モデルの学習/評価を行う

TL;DR Rustの勉強として、データセットを読み込み重回帰モデルを構築してみました。 Pythonでは良く行っている処理なのですが、Rustで書くと詰まるポイントも多くその分勉強になりました。

【Nuxt.js/axios】別ドメインへのajaxがCORS policyで弾かれる問題の対応

ここのところNuxt.jsで開発を行っていて、詰まったところがあったので記載しておきます。 TL;DR 現状axios/devサーバーのヘッダー設定だけでは解決できません。(調べた限り) devサーバー側でaxiosのproxyの設定を行う必要があります。

【Python】Pipfile.lockを活用したDockerとpipenvでの安全な環境構築

Dockerとpipenvを使った環境構築についての記事はいくつか読んだのですが、PIpfile.lockを更新する運用について書かれている記事が少ない(見つけられなかった)ため、書いておきます。 TL;DR Dockerfile内では pipenv install --system --ignore-pipfile --de…

【Go】 .env.exmapleを簡単に作れるツールを作りました

Go

Go製の便利ツール envexample 小ネタですが、Goで便利ツール作ってみたので紹介させてください。 .env から .env.example を簡単に作れものです。

【Selenium】 UnexpectedAlertPresentExceptionが出るケースとその対応

Seleniumで思わぬエラーが発生したのでメモとして残しておきます。 TL;DR UnexpectedAlertPresentExceptionはalertに処理がブロックされているときに起きます。 seleniumのalertオブジェクトを操作することで解消します。 こんなケースで発生 自分の場合では…

【Coursera】 実践的な機械学習の知識が得られる「How to Win a Data Science Competition」「Bayesian Methods for Machine Learning」がオススメ

業務で機械学習する方にオススメなCourseraの2コース オンライン学習サービスのCourseraで下の2つのコースを去年末から受講しており、最終課題に少し時間がかかってしまったのですが、無事どちらも修了することができました。 How to Win a Data Science Com…

【JupyerHub】アカウント作成時/ログイン時に処理を行う、ログインユーザーの環境変数を設定する

JupyterHubの日本語記事が少ないので書いていこうと思います。 TL;DR アカウント作成時は c.LocalAuthenticator.add_user_cmd で設定 ログイン時は c.Spawner.pre_spawn_hook で設定 環境変数は c.Spawner.environment で設定

Serverlessを使って簡単にAWS Lambda Layers上でHeadless Chromeを動かす

この記事は Serverless2 Advent Calendar 2018 - Qiita の20日目です。 今年開催された re:Invent2018でAWS Lambda Layersが発表されました。 このアップデートによってC拡張のライブラリや容量の大きいライブラリの利用がより便利になりました。 その中でも…

Chrome/Firefox/SafariでResource(JS/CSSなど)をキャッシュからロードしないようにする方法

小ネタです。Safariがわかりにくかったので調べたんですが、ついでにChrome/Firefoxも。 Resourceのキャッシュとは JSやCSS、画像などをブラウザはキャッシュしていて、サイトにアクセスした際、そちらから読めるときは優先的にロードするようになっています…

Kaggleでよく使われるStacking/Blendingをheamy、Stacknetをpystacknetで高速に実装する

この記事は 機械学習工学 / MLSE Advent Calendar 2018 - Qiita の15日目です。 Stacking/Blendingは実装が面倒 Kaggleなどでよく使われるアンサンブル手法にStacking/Blendingがありますが自分で実装すると結構面倒です またモデルの精度を測る際にK-Fold V…

「rebuild.fmの統計学」という発表をしました。コードと簡単な解説(requests_html/pandas/matplotlib/seaborn)

「rebuild.fmの統計学」というタイトルで発表しました。 資料はSpeakerDecからご覧ください! speakerdeck.com LIFULLさんで開催された「Ltech#3 【podcast × IT】LT Night !」で話しました。 lifull.connpass.com 使ったコードは全Githubに上げましたが、簡…

人間のためのイケてるPython WebFramework「responder」、そして作者のKenneth Reitzについて

この記事は Python その2 Advent Calendar 2018 - Qiita の1日目です。 responderとは GitHub - kennethreitz/responder: a familiar HTTP Service Framework for Python 2018年10月に公開された イケてるPython WebFramework です。 requestsやpipenvなどの…

つくばPythonもくもく会 No.2 開催レポート&No.3開催のお知らせ

つくばPythonもくもく会 No.2 を開催しました& No.3 を12/15(土) に開催します。 先週の日曜(11/18)にNo.2を開催しました tskubapy.connpass.com No.1 から参加者が大幅に増え合計13人の方に参加いただきました ありがとうございます! 早速ですが、No.3の…

Pythonに関するオススメの書籍/サイト/サービス/Podcast/イベントの情報

Pythonをこれから勉強したい or 最新情報のキャッチアップがわからない、という方に tskubapy.connpass.com つくばPythonもくもく会 No.2を開催しました! 参加者の方の中にはこれからPythonを始めたい、という方もいらっしゃったので、今まで自分が勉強して…

scikit-learnのRandomForest.feature_importances_のコードを追う

feature_importances_をちゃんと理解する feature_importances_ とは sklearn.ensemble.RandomForestClassifier、 sklearn.ensemble.RandomForestRegressor (など)で特徴量の重要度を出力するメソッドです。 とても便利で、EDAやモデルの精度向上のためのア…

機械学習関係の主要人物20人を調査

先日のイベントで調べよう!と思うきっかけがありました 下のTweetのように先週は「MachineLearning15Minitues」というイベントに参加してきました。 株式会社バクフーの柏野さんの発表が個人的にとても好きな内容で是非皆さんにも見てもらいたいのですが、…

%macro/%store を組み合わせてJupyterでのライブラリ読み込みを劇的に効率化する

Jupyterで読み込むライブラリを毎回書いてませんか? 機械学習やデータ解析をJupyterで行うときに読み込むライブラリって大体決まっていますよね。 毎回1、2つ目のセルにライブラリ読み込み処理をズラッと書いてないですか? 人によってはスニペットアプリな…

アンサンブル手法のStackingを実装と図で理解する

Stackingとは何か 機械学習モデルの精度を向上させる手法の1つで、モデルを積み重ねる(Stackする)ことで精度を高めます。 ポピュラーかつ、強力な手法なKaggleのKernelで見ることも多いですね。 アンサンブル学習の一種で、他のアンサンブル学習にはAveragin…

matsumotoryさん、kwappaさんの公開ポートフォリオレビューを受けました/自分なりにアウトプットすることのメリットを整理してみた

「エンジニアの日々のアウトプット」に関するForkwellさんのイベントに参加してきました。 ForkwellのポートフォリオはのぼりーさんのクラウドPodcastのmatsumotoryさんゲスト回を聞いて興味を持ち使い始めました。 ただ、埋めやすいところを埋めてGithubを…

10月8日(月)につくばPythonもくもく会 No.1を開催します!

Pythonを使っている方&Pythonを勉強したい方一緒にもくもくしませんか? 宣伝です。 これから、つくばでPythonもくもく会を定期的に開いていきます! 第1回は10月8日(月)11:00~@筑波大学内体バチで行います。 将来的にはPythonの情報共有ができたり、交流の…

ISOに従っていないデータをpandas.to_datetime()すると500倍以上遅くなる可能性がある話とその対策

TL;DR pandasの to_datetime メソッドはとても便利で、かなり乱暴にデータを突っ込んでもParseしてくれます でもデータによってはparseに通常の30倍以上時間がかかる可能性があるので注意しましょう ISO_8601の規格に従っていない場合はとりあえず format オ…

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

pathlibって便利ですよね 最近pathlibの便利さが様々なところで語られています。 Python3.4以降ならos.pathはさっさと捨ててpathlibを使うべき - Qiita pathlibとかいう優秀すぎる標準ライブラリ(python) - 備忘録とか日常とか pathlibの様々な機能は上記の…

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

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

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

TL;DR BigQueryの fh-bigquery:geocode.geolite_city_bq_b2b Tableを使い IPアドレスから緯度経度を取得できます 国土地理院の「地球地図日本」から地図データを取得することができます GeoPandasを使うことでお手軽に地理情報を可視化できます BigQuery GIS…