機械学習のクラス分類モデルを評価する際に用いる混同行列を簡単に表示できるちょっとしたライブラリがあったので紹介します。
混同行列とは、機械学習で予測したクラス分類の結果をまとめた行列です。ちょうど上の画像のように「どのクラスに分類されて」「実際はどのクラスだったか」がひと目でわかる表のことですね。
続きを読む機械学習のクラス分類モデルを評価する際に用いる混同行列を簡単に表示できるちょっとしたライブラリがあったので紹介します。
混同行列とは、機械学習で予測したクラス分類の結果をまとめた行列です。ちょうど上の画像のように「どのクラスに分類されて」「実際はどのクラスだったか」がひと目でわかる表のことですね。
続きを読む昨年末のAurora Serverless Data APIの登場で、Lambdaからの利用が簡単になりました。この記事ではServerless Framework、CloudFormationを用いて、Aurora Serverless Data APIとLambdaを使ったAPIを構築する方法を紹介します。
使ったコードはすべてGitHubに上げています。記事内ではわかりやすさのためコードを抜粋して記載しますのでコード全体を確認したい場合はそちらを参照してください。GitHubのリンクは記事の最後に貼っています。
続きを読む
機械学習Podcast「TWiML&AI」で先週取り上げられた可視化ライブラリ「Yellowbrick」が非常に便利だったので紹介します!ちなみにPodcastには作者の1人であるRebecca Bilbroさんが出演しているので興味持った方は是非聞いてみてください。
一言で言うと、機械学習に特化した可視化ライブラリです。実装的な面で言うと(こちらの方がわかりやすいかもしれません)、scikit-learnとmatplotlibをラップして、scikit-learnライクなAPIで使うことができるものです。
例えば相関行列のヒートマップをプロットしたい場合は次のように書くだけでグラフを作ることができます。
visualizer = Rank2D(features=features, algorithm='pearson')
visualizer.fit(X, y)
visualizer.transform(X);
なんと、たった3行で書くことができてしまいます。
※一応補足ですが、matplotlibやseabornでは相関係数の計算は自分で行う必要があります(seabornで書く場合のコード)。そこをYellowbrickが良い感じにやってくれる、ということですね。
続きを読むServerless内で使っている環境変数を外部と共有する方法を紹介します。Serverlessでは設定ファイル内でCloudFormationを書くことができ、そこで作成したS3などのResourceをServerlessプロジェクトから使うことができます。この機能はとても便利なのですが、作りたいアプリケーションが、常にServerlessだけで完結できるとは限らず、ときにはServerlessプロジェクト外のスクリプトから、Resourceの値を参照したい場合があります。
例えば、以下の記事ではSageMakerの学習にあたってServerlessプロジェクト外の環境からSageMakerのAPIを呼び出しています。具体的には、「ローカルスクリプトで学習」「Serveless(Lambda)から予測」という感じです。
こんなときに、どうやってServerlessプロジェクト外のスクリプトからServerless内のResourceを参照すれば良いか、について書きたいと思います。
続きを読むSageMakerとServerlessを使ってscikit-learnの機械学習APIを作る方法を紹介します。
公式ドキュメントやその他の記事の多くはコンソール操作やnotebook上での操作が多く含んでいて、そのコードのまま本番運用に使うのは難しいと感じたので、この記事では コンソール操作やnotebook上での操作なしでスクリプトだけで完結 できるようにしています。カスタマイズすれば本番運用で使えるはずです。
また公式ドキュメントにもExampleがいくつかあるのですが、色々な処理を含んでいて、自分には理解し辛い部分がありました。今回、SageMakerを理解するためにもっとシンプルなToy Exampleを作ってみました。
Hacker NewsとRedditでバズっていたPythonのデバッグツールが便利だったので紹介です! PySnooperというライブラリです。
※追記
想像以上にたくさんの方に読んでいただき、printデバッグなど他のデバッグ方法との比較について追記として文末に補足しました。釣りタイトルですみませんでした…🙇
続きを読む
AWS Lambdaで行えないような重い処理はAWS Batchを使うと簡単に行うことができますが、定期実行したりエンドポイントを作る仕組みはAWS BatchにはまだなくCloudWatchやAPI Gatewayと組み合わせる必要がありますがServerlessと組み合わせることで簡単に実現できるので紹介します。
続きを読む