ブックマーク / nykergoto.hatenablog.jp (9)

  • データコンペサイトを作る: フロントエンド編 - nykergoto’s blog

    この記事はオンサイトデータコンペ atmaCup のシステムぐるぐる https://www.guruguru.ml/ のフロントエンドの話です。 atmaCupとは? オンサイトデータコンペatmaCupとは実際に会場に集まり、準備されたデータをテーマに沿って分析・予測を行い、その精度を競うイベントです。 データコンペで有名なのはKaggleですが、みんなで実際に集まり、かつ時間もその日のうち8時間など短いのが特徴で、 参加者のスキルがオンラインのデータコンペより強く結果に表れます。 直近 atmaCup#4 はリテールAI研究会様 との共同開催でした。期間が 3/1 ~ 8 の1周間、すべての分析はAzure上で行うというものでした。 今までのatmaCupでは1日でかつ環境は自由というものだったので、期間・環境ともにはじめての試みでした。 環境構築が大変だったかたや途中トラブルなども

    データコンペサイトを作る: フロントエンド編 - nykergoto’s blog
    yag_ays
    yag_ays 2021/05/08
  • 機械学習なdockerfileを書くときに気をつけとくと良いこと - nykergoto’s blog

    みなさん機械学習系の環境構築はどうやってますか? 僕は最近は Docker を使った管理を行っています。 特に師匠も居なかったので、ぐぐったり人のイメージを見たり手探りで docker をつかいつかいしている中で、最初からやっとけばよかったなーということがいくつかあるのでメモとして残しておきます。 大きく2つです。 キャッシュは消す テストを書く キャッシュは消す ライブラリをいろいろと install すると大抵の場合ダウンロードしたファイルを保存されている場合が多いです。何かのタイミングで再びそのライブラリをインストールする際にはダウンロードしたファイルを使って、素早くインストールすることができます (この仕組みがキャッシュです)。 キャッシュがあると容量が重くなるという欠点があります。重たいイメージは pull に単に時間がかかりますから、システムとしてデプロイする時にトラフィックが

    機械学習なdockerfileを書くときに気をつけとくと良いこと - nykergoto’s blog
    yag_ays
    yag_ays 2020/07/25
  • NGBoostを読んで、実装する。 - nykergoto’s blog

    不確実性を考慮した予測が可能と噂の NGBoost の論文を読んでみたので、全体のながれをまとめて見ました。加えて自分でも NGBoost を実装して、その結果を載せています。 元の論文 NGBoost: Natural Gradient Boosting for Probabilistic Prediction はこちら https://arxiv.org/abs/1910.03225。 Introduction 一般的な教師あり学習を考えます。このとき予測モデルは入力データ $X$ に対して予測値 $y$ を出力するように学習していきますが、たいていのモデルではひとつのデータに対しては予測値はひとつしか得ることができません。 例えばウェブ上の行動履歴から、ユーザーの年齢を予測してください、という問題があったとすると、ユーザーの期待される年齢そのものを返すようなモデルがそれに当たります。

    NGBoostを読んで、実装する。 - nykergoto’s blog
    yag_ays
    yag_ays 2020/05/01
  • 機械学習のための環境構築とその管理 - nykergoto’s blog

    機械学習プロジェクトでは python を始めとした言語 + それに付随したライブラリを使います。 僕も python 触りたての頃はローカルマシン上にひとつ python 環境を作り、必要なライブラリをインストールして使っていました。環境の分離ということはあまり意識しておらず、やったとしてもプロジェクトごとに anaconda や pyenv, venv などで個別環境を作って切り分けるレベルでした。 しかし上記の方法だと困ったことが起ることがあります。例えば… global な環境が壊れてしまってすべて壊れる。 これは各環境が global な環境に依存しているために起こります。 python 以外の変更で環境は突如として壊れます。例えば brew install hoge したら Mecab が使えなくなっちゃったとかはあるあるだと思います >_< linux / Mac / Win

    機械学習のための環境構築とその管理 - nykergoto’s blog
    yag_ays
    yag_ays 2019/12/29
  • データコンペサイトを作る DjangoRestFramework編 - nykergoto’s blog

    この記事は atma Advent Calendar 2019 - Qiita 2019/12/21 の記事です。 今年自社のサービスとして オンサイトのデータコンペティション atmaCup をはじめました。 オンサイトデータコンペとは実際に会場に集まり、準備されたデータをテーマに沿って分析・予測を行い、その精度を競うイベントです。 データコンペで有名なのはKaggleですが、みんなで実際に集まり、かつ時間もその日の8時間と短いのが特徴で、 参加者のスキルがオンラインのデータコンペより強く結果に表れます。 このatmaCupですが当然やろうと思うとコンペ用のシステムも必要です。というわけで裏側のシステム 「ぐるぐる」 を僕が作っています。 この時記事ではそのバックエンド部分を担っている DjangoRestFramework についてその便利さとどういう機能を使ってぐるぐるを作っているか

    データコンペサイトを作る DjangoRestFramework編 - nykergoto’s blog
    yag_ays
    yag_ays 2019/12/23
  • elasticsearch で cosine類似度検索する - nykergoto’s blog

    全文検索エンジンで cosine 類似度検索できるらしいというのを bert × elasticsearch の記事で見かけてとてもたのしそうだったので、自分でも環境作るところからやってみました。 hironsan.hatenablog.com やっているのは以下の内容です docker/docker-compose で elasticsearch x kibana x jupyter の立ち上げ jupyter の python から実際に特徴量ベクトルの登録 + 検索の実行 kibana での可視化 (ちょっとだけ) 紹介するコードはすべて以下のリポジトリから参照できます。 github.com Requirements docker docker-compose Setup docker-compose build docker-compose up -d 以上実行するとサーバーが3

    elasticsearch で cosine類似度検索する - nykergoto’s blog
    yag_ays
    yag_ays 2019/10/03
  • 文章の埋め込みモデル: Sparse Composite Document Vectors を読んで実装してみた - nykergoto’s blog

    自然言語処理である単語の意味情報を数値化したいという場合に単語を特定のベクトルに埋め込む(分散表現)手法として word 2 vec があります。 この word2vec と同じような発想で文章自体をベクトル化するという発想があり Doc2Vec やそのたもろもろも方法が存在しています。 今回はその中の一つである SCDV (Sparse Composite Document Vector) を実装したのでその記録です。 著者のページ: https://dheeraj7596.github.io/SDV/ そもそも何者か 文章を表現するベクトルを取得する手法です。 どうやってやるか SCDV はいくつかのフェーズに分かれています。以下では5つのフェーズに分けて説明します。 若干論文の notation と違う所があるのでそこだけ注意していただければと思います。 1. 単語の分散表現を取得す

    文章の埋め込みモデル: Sparse Composite Document Vectors を読んで実装してみた - nykergoto’s blog
    yag_ays
    yag_ays 2019/05/10
  • 勾配ブースティングで大事なパラメータの気持ち - nykergoto’s blog

    LightGBM や XGBoost などで使われている勾配ブースティングのパラメータについて、チューニングノウハウというよりもそのパラメータがどういう意味を持っているのか、に焦点をあててまとめて見ました。 各ライブラリのパラメータすべては以下から確認できます。 lightGBM Parameter XGBoost Parameter NOTE: 以下では lightGBM のパラメータの名前で説明しています。微妙に名前が違うものがあるので適宜読み替えてください。 勾配ブースティングについてざっくりと 一般的な決定木では木はひとつだけで、その木に対してたくさんの分割ルールを適用していきます。 勾配ブースティング木では、木をたくさん作ります。たくさん作る代わりに、一つ一つの木の分割をざっくりとしたものにします。 そして作った木すべての予測の合計を使うことで、ひとつの木では表せないような複雑な

    勾配ブースティングで大事なパラメータの気持ち - nykergoto’s blog
    yag_ays
    yag_ays 2019/04/02
  • scikit-learn 準拠の予測モデルのつくりかた - nykergoto’s blog

    機械学習で色々やっていると、いろいろなモデルを複合したアンサンブルモデルなど、自分で新しい予測モデルを作りたい場合があります。 その場合自分でいちから作り上げても良いのですが、そうやって作ったモデルは、たとえば scikit-learn のパラメータ最適化モジュールである GridSearch や RandomSearch を利用することができなくて、少々不便です。 この際に scikit-learn の定義にしたがってモデルを定義すればうまく連携がとれて効率的です。以下では scikit-learn 準拠の予測モデルをどうやって作ればよいか、その際の注意点や推奨事項を取り上げます。 参考 Creating your own estimator in scikit-learn http://danielhnyk.cz/creating-your-own-estimator-scikit-l

    scikit-learn 準拠の予測モデルのつくりかた - nykergoto’s blog
    yag_ays
    yag_ays 2017/07/08
  • 1