サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
画力アップ
ikedaosushi.hatenablog.com
本日、開催されたData Platform Meetup vol.2に参加してきました。発表の内容や関連するリンクをまとめました。 data-platform-meetup.connpass.com 開催日時: 2019年12月2日 会場: Pixivさんオフィス Data Platform Meetupとは connpassページからの引用です。 データプラットフォームを設計/開発/利用している方(データエンジニア/データアナリスト/データサイエンティスト/機械学習エンジニア等)がノウハウを発表したりカジュアルに情報交換できるイベントです。 第一回は9月に開催され、定員の120名を大きく超える応募があったように大盛況でした。 【増枠】Data Platform Meetup - connpass 個人的にはeurekaの鉄本さんの発表資料が自分の状況に当てはまることが多く、大変勉強になり
PyCon JP 2019が終了しました。聴講者としてセッションを見た感想は1つ前のエントリにまとめました。 このエントリでは、自分が行った「ポスター発表」について書きます。今後カンファレンスでポスター発表をする方の参考になれば幸いです。 blog.ikedaosushi.com 発表したポスター 「Requests-HTML」についてのポスター発表を行いました。ポスターは↓です。 作成 実は、学生時代含めポスターを作成するのは初めてだったので、Googleで検索しながらKeynoteで作成しました。フォントサイズなど次のサイトが非常が参考になりました。 jfujimo.to またKeynoteの「配置ガイド」という機能は今まであまり使うことがなかったのですが、ポスターを作る上では非常に便利でした。「配置ガイド」なしでのポスター制作は考えられないと思います。 support.apple.c
今回PyCon JP 2019にスタッフとして参加し、Webサイトの運用(と最適化アルゴリズムを用いたタイムテーブルの提案)を行いました。そこで得られた知見と反省をまとめて、今後他のカンファレンスなどでWebサイトの開発運用をする方の参考になれば幸いです。 本当はポスター参加記とまとめたかったのですが、ポスターの記事が長めになったので分けました。 blog.ikedaosushi.com セッションへの感想はこちら。 blog.ikedaosushi.com Webサイト PyCon JP 2019 - PyCon JP 2019 サイトはVue.js製のフレームワークであるNuxt.jsとマテリアルデザインライブラリであるVuetifyで作成しました。見て目に関しては、デザイナーの方にしっかりデザインしていただき、マテリアルデザインというよりそちらに合わせたので、「あまりVuetifyっ
ここのところNuxt.jsで開発を行っていて、詰まったところがあったので記載しておきます。 TL;DR 現状axios/devサーバーのヘッダー設定だけでは解決できません。(調べた限り) devサーバー側でaxiosのproxyの設定を行う必要があります。 環境 vue@2.6.2 nuxt@2.4.2 axios@0.18.0 課題 問題設定をハッキリさせておきます。 下の図のようにローカルでの開発時にブラウザから外部のAPIサーバーにリクエストを送った際にCORS policyでブロックされてしまう問題です。 自分と同じ状況であれば このようにアクセスしたときに axios.get('http://api.example.com/hello') 下のようなエラーメッセージが出ていると思います。 Access to XMLHttpRequest at 'http://api.exampl
カック@ブロガー / k9u@kakakakakku さんに2019年4月~6月の3ヶ月間ブログメンタリングをしていただいていました 🙏 「どんなアドバイスをもらったのか」「どんな効果があったのか」を書きたいと思います。これを読んで、ブログメンタリング応募が増えたりカックさんの素晴らしいブロガー能力/メンタリング能力が伝われば嬉しいです。それくらいしか恩返しができないので… 「そもそもブログメンタリングって何?」と思った方はカックさんが「DevLOVE X」で詳しく発表されていたので、こちらをご覧ください。 kakakakakku.hatenablog.com なぜ応募したか そもそも自分がブログメンタリングに応募した経緯なのですが、理由は明確で「カックさんがきっかけでブログを始めたから」です。元々自分はPodcastオタクで日本語の技術系Podcastはほぼ全て聞いていました。そんな中
2019年1月15日に発売された『iOSアプリ設計パターン入門』が非常に良書だったので紹介します。自分は設計に対してある悩みを抱えていたのですが、この本を読んで一気に解決ました。 peaks.cc iOSエンジニア以外でも参考になるの? この書籍を紹介された非iOSエンジニアは当然、 「iOS開発してないけど参考になるの?」 と思うでしょう。結論から言うとなります。 事実、自分は機械学習エンジニアでiOSアプリ開発はチュートリアル程度しか経験がないですが、タイトルに書いたように非常に救われました。 この本を読むきっかけは「会社で開催されている読書会の課題図書になったこと」でしたが、その読書会参加メンバー内にもiOSエンジニアは1人もいませんでした。それでも、みんなで話し合って「これにしよう」と決めたという経緯があります。 自分の悩み: 「パターンはわかった。でもどう使うの?」 まずどんなエ
今週、Amazon PersonalizeがGAになりました。東京リージョンでも使うことができます。 この記事ではAmazon Personalizeの概要、使い方の解説を行います。PythonのAWS SDKを使ってレコメンドアプリケーションを作成していきます。 また事前準備のS3やIAM Roleの作成で、AWSの公式ドキュメントだと手作業が発生しているのですが、それだと大変なので一発で構築できるCloudFormationも紹介します。 aws.amazon.com 最初に触った感想 少し触ってみたのですが、以下の点で非常に良いと思いました。 学習・予測(レコメンド取得)が全てサーバーレスで行える 事前に準備されているアルゴリズムはDeep Learningベースで多く、それ以外も高度なもの 逆に以下のような不満な点もありました。 用語が機械学習で一般的に使うものとかけ離れていて混乱
PyCon JPの運営メンバーとして自分は、昨年度のPyCon JP 2018のタイムテーブル決めに組み合わせ最適化問題を用いました。ちなみに最終的なタイムテーブルはアルゴリズムで算出された結果を人間がレビューして調整しています。 昨年度は時間の制約があり、いくつか反省点があったので今年は改善したいと考えています。 pyconjp.blogspot.com そういうわけで事前調査も兼ねて、カンファレンスのタイムテーブル決めを組み合わせ最適化問題として考え、それをPythonのライブラリを使って解く方法を書きたいと思います。 解きたい問題 カンファレンスのタイムテーブル決めでは下図のように部屋と時間が決まっていて、そこのトークを割り当てていくことが一般的です。 このとき、部屋の大きさ、時間帯やトークの内容が全く同一であれば何も考えずに隅から配置していけば良いのですが、現実には以下のような条件
機械学習Podcast「TWiML&AI」で先週取り上げられた可視化ライブラリ「Yellowbrick」が非常に便利だったので紹介します!ちなみにPodcastには作者の1人であるRebecca Bilbroさんが出演しているので興味持った方は是非聞いてみてください。 twimlai.com www.scikit-yb.org Yellowbrickとは 一言で言うと、機械学習に特化した可視化ライブラリです。実装的な面で言うと(こちらの方がわかりやすいかもしれません)、scikit-learnとmatplotlibをラップして、scikit-learnライクなAPIで使うことができるものです。 例えば相関行列のヒートマップをプロットしたい場合は次のように書くだけでグラフを作ることができます。 visualizer = Rank2D(features=features, algorithm=
Nuxt/VuexでFirebase Authenticationを使ったユーザー認証機能を作るにあたって、基本的なやり方はFirebaseドキュメントに書いてあるのですが、「どこに何を書けばいいのか」がよくわからなかったので調べながらまとめてみました。 完成形 こんな感じで用意されたUIを使ってログイン機能が実装できます。 前提条件 Firebase Projectの作成/Firebase SDKの作成はNuxt/Vuexには関係しない部分なので次の記事を参考に行ってください。この記事はFirebase SDKをNuxt/Vuexにどう組み込むか、を中心に書きたいと思います。 firebase.google.com 環境 nuxt@2.5.1 vue@2.6.10 vuex@3.1.0 firebase@5.9.2 firebaseui@3.5.2 FirebaseUIインストール&CS
SageMakerとServerlessを使ってscikit-learnの機械学習APIを作る方法を紹介します。 公式ドキュメントやその他の記事の多くはコンソール操作やnotebook上での操作が多く含んでいて、そのコードのまま本番運用に使うのは難しいと感じたので、この記事では コンソール操作やnotebook上での操作なしでスクリプトだけで完結 できるようにしています。カスタマイズすれば本番運用で使えるはずです。 また公式ドキュメントにもExampleがいくつかあるのですが、色々な処理を含んでいて、自分には理解し辛い部分がありました。今回、SageMakerを理解するためにもっとシンプルなToy Exampleを作ってみました。 作るもの 環境 アーキテクチャ構成 フォルダ構成 事前準備 Layer作成 Resource作成/環境変数定義 学習用のデータをS3にアップロード モデル学習&
TL;DR Lambda Layerを使ってLambdaのデプロイを高速化します。 ServerlessとServerless Pluginを使うことで簡単に実現することができます。 今回試した一例ですが、252.47秒->45.49秒で5倍高速化しました。 はじめに Serverlessを用いたLambda Layerの活用については以前、Lambda LayerでHeadless Chromeを使う方法についてまとめたときに書いたのですが、Serverless Pluginなどを使うことで、より簡単にできることがわかったのでここにまとめたいと思います。 blog.ikedaosushi.com 環境 Mac OS X(10.14.3) AWS Lambda(Runtime: Python3.7) Serverless Framework: 1.40.0 serverless-pytho
はじめに 昨日Vaexの性能評価の記事を書きました。 その記事では長くなってしまうので基本的な使い方などを省略しました。 なので今回は入門記事として使い方を紹介します。 blog.ikedaosushi.com Vaexとは 昨日の記事でも書きましたが、遅延評価/Pandasライク/アウトオブコアという特徴を持ったデータフレームライブラリです。 github.com リンク集 ドキュメント: https://docs.vaex.io/en/latest/index.html ライブラリ作者解説記事①: Vaex: Out of Core Dataframes for Python and Fast Visualization ライブラリ作者解説記事②: Vaex: A DataFrame with super-strings – Towards Data Science インストール・読み
RailsDM2019(https://railsdm.github.io/) で発表させていただきました。 タイトルは少し長いのですが、 「ログを解析し続けてわかった、 会社で眠っているアクセスログを活用する5つのプラクティス」 です。 ログを解析し続けてわかった、 会社で眠っているアクセスログを活用する5つのプラクティス/practices-to-utilize-access-logs - Speaker Deck 資料内で引用したリンク集 様々な資料を引用させていただいたのでこちらに載せます。 興味を持ってくださった方は是非見てみてください。 2万回のA/Bテストからわかった 支持されるWebデザイン事例集 https://www.amazon.co.jp/dp/4774199389/ ウェブ解析終了のお知らせ http://www.pablos.jp/web-analytics/e
現在受講中のCourseraのRecommender Systemsコースの中で自社のサービスなどにレコメンド機能の導入を検討している方に有用だと思われる情報があったのでまとめてみました! 「レコメンドアルゴリズムって協調フィルタリングのこと?」というくらいの知識の方にオススメです。 CourseraのRecommender Systemsコースについて少しだけ 最初に少しだけコースについて説明させてもらおうと思います。 Recommender Systems | Coursera Recommender Systemsコースはレコメンドシステムのミネソタ大学のJoseph Konstan先生のコースです。 Joseph Konstan先生やこのコースについてはtakutiさんが書いてくださっている記事が参考になります。 Podcast "Data Skeptic" の推薦システム回が良す
今閲覧しているURLとタイトルを簡単にコピーできるChrome Extensionを公開しました。 ダウンロードはこちらから↓ chrome.google.com このブログでは、なぜこのChrome Extensionを作ったのか、どういう機能があるのかを簡単に紹介したいと思います。 実は同機能を持つ色々なChrome Extensionを試していたのですが、どうしても自分の欲しい機能を満たすものが見つからず、自分で作ってしまいました。 1ヶ月使ってみてかなり便利に使えているので紹介させてもらおうと思いました。 作成した背景 「タイトルとURLをコピーする」Chrome Extensionは検索すると他にも出てくるのですが、自分が欲しかった次の項目を満たす見つかりませんでした。 ショートカットキーで動作する。 余計な文字が入っていない。必要最低限のスタイルがある。 例えば「タイトル:UR
TL;DR Rustの勉強として、データセットを読み込み重回帰モデルを構築してみました。 Pythonでは良く行っている処理なのですが、Rustで書くと詰まるポイントも多くその分勉強になりました。 環境 Rust $ rustc --version rustc 1.32.0 (9fda7c223 2019-01-16) crate csv = "1" rusty-machine = "0.5.4" 学習にはrusty-machineというcrateを用いました。 github.com ただ、MatrixやVectorなどの構造体はrulinalgというcrateに切り出されているのでAPIを調べる際にはこちらのドキュメントを中心に見ることになります。 github.com Rustでの機械学習に関しては、他にもrustlearnというcrateもあるようですが、rusty-machineの
Dockerとpipenvを使った環境構築についての記事はいくつか読んだのですが、PIpfile.lockを更新する運用について書かれている記事が少ない(見つけられなかった)ため、書いておきます。 TL;DR Dockerfile内では pipenv install --system --ignore-pipfile --deploy を使う。 Pipfile.lockは更新用にコンテナを作って、その中で更新し docker cp でホスト側に戻す。 pipenv install は現状時間がかかるので軽く使ってみたいときは pip install で試す。 あくまで自分が考えついたプラクティスなので「もっといい方法があるよ」「ウチではこうしてるよ」という意見があれば是非コメントくださいmm 課題 Dockerとpipenvを使った最も一般的な環境構築はDockerfile内で ADD P
業務で機械学習する方にオススメなCourseraの2コース オンライン学習サービスのCourseraで下の2つのコースを去年末から受講しており、最終課題に少し時間がかかってしまったのですが、無事どちらも修了することができました。 How to Win a Data Science Competition: Learn from Top Kagglers Bayesian Methods for Machine Learning せっかく受けたので、どんなコースだったか、何がオススメかを簡単に書こうと思います。 受けたコース1: How to Win a Data Science Competition: Learn from Top Kagglers Course Link Kagglerから実践的な機械学習のテクニックを学ぶコースです。rebuild.fmでhigeponさんが受講した話
Coursera「Data Structures and Algorithms」 ここ1ヶ月半CourseraでCSのコースを受講しているのですが、そこで動的計画法についての面白い話があったのでシェア。 www.coursera.org 「Data Structures and Algorithms」という課程の中の「algorithmic-toolbox」コースWeek5のテーマが「動的計画法」です。 動的計画法(Dynamic Programming)とは まず前提として動的計画法とは何か?という話です。 Wikipediaより 動的計画法 - Wikipedia 計算機科学の分野において、アルゴリズムの分類の1つである。対象となる問題を複数の部分問題に分割し、部分問題の計算結果を記録しながら解いていく手法を総称してこう呼ぶ。 細かくアルゴリズムが定義されているわけではなく、下記2条件
この記事は 機械学習工学 / MLSE Advent Calendar 2018 - Qiita の15日目です。 Stacking/Blendingは実装が面倒 Kaggleなどでよく使われるアンサンブル手法にStacking/Blendingがありますが自分で実装すると結構面倒です またモデルの精度を測る際にK-Fold Validationを行うこともありますが、同じpredictを何度も発生してしまい、単純に行うと無駄な処理が多くなってしまいます。 今回紹介するライブラリheamyでは、それらの問題点が解決されており、 抽象化されたAPIで簡単にStacking/Blendingを実装でき 、かつ、 内部でpredictされた結果がキャッシュされており、高速に計算を行うことができます またheamyではWeighted Averageも簡単に実装できる仕組みがあります。 また、St
「rebuild.fmの統計学」というタイトルで発表しました。 資料はSpeakerDecからご覧ください! speakerdeck.com LIFULLさんで開催された「Ltech#3 【podcast × IT】LT Night !」で話しました。 lifull.connpass.com 使ったコードは全Githubに上げましたが、簡単にどんなことをしたのか解説したいと思います。 python-sandbox/rebuild.fmの統計学.ipynb at master · ikedaosushi/python-sandbox · GitHub そして、この内容を今週土曜日の勉強会で話そうと思ってます。まだ参加申し込みできますので興味ある方は是非! tskubapy.connpass.com サイトから情報の取得 サイトからの情報取得にはrequests-htmlを使っています。 en
Pythonをこれから勉強したい or 最新情報のキャッチアップがわからない、という方に tskubapy.connpass.com つくばPythonもくもく会 No.2を開催しました! 参加者の方の中にはこれからPythonを始めたい、という方もいらっしゃったので、今まで自分が勉強してきた中で役に立ったものをリストアップして、LTしました。 自分は機械学習系のエンジニアをしていて、そっちの方向で学んでいることも多いので、「言語について」と「機械学習/データ解析」という分け方をして紹介したいと思います。 「機械学習/データ解析」に関してはPythonに関係するものだけに絞っています。 書籍に関してはたくさん挙げられても迷ってしまうと思ったので、本当は他にもたくさん素晴らしい書籍があるのは理解しつつ、「あえて選ぶなら」を載せています。 学習する上で注意すること 勉強する教材を選ぶ上で個人的
Jupyterで読み込むライブラリを毎回書いてませんか? 機械学習やデータ解析をJupyterで行うときに読み込むライブラリって大体決まっていますよね。 毎回1、2つ目のセルにライブラリ読み込み処理をズラッと書いてないですか? 人によってはスニペットアプリなどで管理している方もいるかもしれませんが、Jupyterの %macro と %store を使うことでもっと短く、シンプルに、効率的にライブラリの読み込みを行うことができるので紹介したいと思います。 Notebookの最初のセルはこんな風になっていませんか? これは自分がいつも読み込むライブラリ群で、自分はAlfredのsnipetを使って呼び出せるようにしていました。 %load_ext autoreload %autoreload 2 %matplotlib inline from IPython.display import I
Stackingとは何か 機械学習モデルの精度を向上させる手法の1つで、モデルを積み重ねる(Stackする)ことで精度を高めます。 ポピュラーかつ、強力な手法なKaggleのKernelで見ることも多いですね。 アンサンブル学習の一種で、他のアンサンブル学習にはAveraging/Bagging/Boostingがあります。 Stackingは他のアンサンブル学習の手法と比べると文章だけ読んでも理解し辛いので、直感的に理解できるように図と簡単な実装で説明してみたいと思います。 注意: この記事で書かないこと 今回は概念の理解にフォーカスしたいので、バリデーションの手法については触れません。特にSecondLevelでのバリデーションについてはいくつか選択肢があり、データの性質によって使い分けが必要なので次回以降書きたいと思います。 Stackingの概念 まず直感的な説明から始めたいと思い
「エンジニアの日々のアウトプット」に関するForkwellさんのイベントに参加してきました。 ForkwellのポートフォリオはのぼりーさんのクラウドPodcastのmatsumotoryさんゲスト回を聞いて興味を持ち使い始めました。 ただ、埋めやすいところを埋めてGithubを連携させただけで、ちゃんと使いこなせていたかは疑問でした。 そんなときに、このイベントを前職の同期から聞き、開催場所も前職のオフィスだったので久々に遊びに行きたい気持ちもあって応募しました。 forkwell.connpass.com ポートフォリオを(強制的に)ちゃんと埋めました イベントページに ゲストのお二人が参加者のポートフォリオを抽選で3名レビューいたします! との記載があったので、せっかくなので…ということで応募したら、なんと選ばれました! 85人の前でレビューされる、というプレッシャーもあり、週末の半
pathlibって便利ですよね 最近pathlibの便利さが様々なところで語られています。 Python3.4以降ならos.pathはさっさと捨ててpathlibを使うべき - Qiita pathlibとかいう優秀すぎる標準ライブラリ(python) - 備忘録とか日常とか pathlibの様々な機能は上記の記事やドキュメントを読んでいただければわかるので、今日はその1つに、Pythonのオーバーロードを説明するのに良い機能があるので紹介したいと思います。 pathlibはこんな風にパスを書けます。 from pathlib import Path etc_dir = Path('/etc') init_dir = 'init.d' print(etc_dir/init_dir/'reboot') # => /etc/init.d/reboot 最初に見ると、ちょっとギョッとするのではな
TL;DR BigQueryの fh-bigquery:geocode.geolite_city_bq_b2b Tableを使い IPアドレスから緯度経度を取得できます 国土地理院の「地球地図日本」から地図データを取得することができます GeoPandasを使うことでお手軽に地理情報を可視化できます BigQuery GISを使うと制限はありますが、もっと簡単に可視化することができます ↓BigQuery GISを使った可視化です コードは全てGithubに置いてあります。 github.com アクセスログ解析でのIPアドレス アクセスログには基本的にIPアドレスが格納されていますが、アクセスログ分析する際に使っていないことも多いのではないでしょうか? 実はIPアドレスとBigQueryを上手く活用することで簡単に地理情報解析が行えるのです。 データ 実際にはアクセスログなどを使うことに
このページを最初にブックマークしてみませんか?
『ikedaosushi.hatenablog.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く