フリーランチ食べたい

機械学習/データ解析/フロントエンド/バックエンド/インフラ

Amazon PersonalizeとServerless Frameworkを使って半日でレコメンドAPIを作成する

前回の記事でGAになったばかりのAmazon Personalizeの使い方の解説をしました。 ただ、前回の記事では実際にアプリケーションから利用するところ、つまりWeb APIとして公開するところまでは書くことができませんでした。 ということでこの記事では、Serverle…

Amazon Personalize使い方まとめ / CloudFormationとPythonでレコメンドアプリケーションを学習・デプロイする

今週、Amazon PersonalizeがGAになりました。東京リージョンでも使うことができます。 この記事ではAmazon Personalizeの概要、使い方の解説を行います。PythonのAWS SDKを使ってレコメンドアプリケーションを作成していきます。 また事前準備のS3やIAM Role…

【組み合わせ最適化入門】カンファレンスのタイムテーブル決めをマッチング問題としてGoogle OR-Tools/Pulp/munkresで解く

PyCon JPの運営メンバーとして自分は、昨年度のPyCon JP 2018のタイムテーブル決めに組み合わせ最適化問題を用いました。ちなみに最終的なタイムテーブルはアルゴリズムで算出された結果を人間がレビューして調整しています。 昨年度は時間の制約があり、い…

【機械学習】混同行列を表示するのに便利な「pycm」

機械学習のクラス分類モデルを評価する際に用いる混同行列を簡単に表示できるちょっとしたライブラリがあったので紹介します。 混同行列とは、機械学習で予測したクラス分類の結果をまとめた行列です。ちょうど上の画像のように「どのクラスに分類されて」「…

Aurora Serverless Data APIとLambdaでAPIをServerless Framework(CloudFormation)で作る

昨年末のAurora Serverless Data APIの登場で、Lambdaからの利用が簡単になりました。この記事ではServerless Framework、CloudFormationを用いて、Aurora Serverless Data APIとLambdaを使ったAPIを構築する方法を紹介します。 使ったコードはすべてGitHub…

【Python】 機械学習の可視化が捗るライブラリ「Yellowbrick」

機械学習Podcast「TWiML&AI」で先週取り上げられた可視化ライブラリ「Yellowbrick」が非常に便利だったので紹介します!ちなみにPodcastには作者の1人であるRebecca Bilbroさんが出演しているので興味持った方は是非聞いてみてください。 twimlai.com www.s…

CloudFormationのOutputsを活用してServerlessプロジェクト内の情報を外部と共有する

Serverless内で使っている環境変数を外部と共有する方法を紹介します。Serverlessでは設定ファイル内でCloudFormationを書くことができ、そこで作成したS3などのResourceをServerlessプロジェクトから使うことができます。この機能はとても便利なのですが、…

SageMakerとServerlessを組み合わせて、お手軽にscikit-learnの機械学習APIを作る

SageMakerとServerlessを使ってscikit-learnの機械学習APIを作る方法を紹介します。 公式ドキュメントやその他の記事の多くはコンソール操作やnotebook上での操作が多く含んでいて、そのコードのまま本番運用に使うのは難しいと感じたので、この記事では コ…

【Python】もうprintデバッグはいらない? / PySnooperで楽々デバッキング

Hacker NewsとRedditでバズっていたPythonのデバッグツールが便利だったので紹介です! PySnooperというライブラリです。 Hacker News - PySnooper: Never use print for debugging again Reddit - PySnooper: Never use print for debugging again ※追記 想…

AWS BatchとServerlessを組み合わせて高速に定期実行バッチやバッチAPIを作る

AWS Lambdaで行えないような重い処理はAWS Batchを使うと簡単に行うことができますが、定期実行したりエンドポイントを作る仕組みはAWS BatchにはまだなくCloudWatchやAPI Gatewayと組み合わせる必要がありますがServerlessと組み合わせることで簡単に実現で…

Nuxtで@nuxtjs/dotenvを使って環境変数を環境ごとに読み分ける

Nuxt開発の小ネタです。環境変数を開発環境/本番環境で切り分けたいときにどうすればよいか、わからなかったのでメモしておきます。

Nuxt/VuexでFirebase Authenticationを使ってユーザー認証機能を作る

Nuxt/VuexでFirebase Authenticationを使ったユーザー認証機能を作るにあたって、基本的なやり方はFirebaseドキュメントに書いてあるのですが、「どこに何を書けばいいのか」がよくわからなかったので調べながらまとめてみました。

Vaex入門 / 可視化もXGBoostも

はじめに 昨日Vaexの性能評価の記事を書きました。 その記事では長くなってしまうので基本的な使い方などを省略しました。 なので今回は入門記事として使い方を紹介します。 blog.ikedaosushi.com

Pandasで行うデータ処理を100倍高速にするOut-of-CoreフレームワークVaex

TL;DR アウトオブコア、かつマルチコアでデータ処理を行えるVaexの紹介です。 string関係のメソッドで平均して100倍以上の高速化が確認できました。(作者のベンチマークだと最大1000倍) 文字列処理以外でも数倍~数十倍の高速化が行えそうです。 この記事では…

つくばPythonもくもく会(tsukuba.py)No.5を開催しました🐍 / 次回開催のお知らせ

5回目になりました! 本日「つくばPythonもくもく会No.5」を開催しました。 最近開催報告を書いていなかったのですが、ありがたいことにブログを見て来てくれる方もいらっしゃるようなので、久々に書いてみました。 開催中の風景

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、画像などをブラウザはキャッシュしていて、サイトにアクセスした際、そちらから読めるときは優先的にロードするようになっています…