機械学習

1/2ページ

ランダムフォレストで近接グラフを可視化する方法

前回に引き続き決定木系のお話になりますが、今回は近接グラフ(proximity plot)を可視化する方法を紹介します。 近接グラフはランダムフォレスト(RandomForest)を構成する各決定木の終端ノードに属するデータに着目した、データ間の近さを可視化する手法です。 ※前回は特徴量の解釈には重要度だけでなく部分依存グラフも活用しようという記事を書きました。 近接グラフとは 近接グラフとは、学 […]

特徴量重要度だけで解釈するのはやめよう~部分依存グラフのすすめ

以前、決定木アルゴリズムの特徴量重要度(feature_importance)に関する記事を書きましたが、依然としてターゲット変数に寄与する特徴量を重要度だけで解釈するケースを良く見かけます。 データサイエンティスト同士で分析結果を共有するならば問題ないかもしれませんが、データサイエンティスト以外の方に特徴量重要度をもとにした分析結果を報告する際はあらぬ誤解を招く可能性があります。 ※データサイエ […]

PythonのSDVライブラリでリレーショナルなテーブルをモデリングしてみる

前回に引き続きSDVライブラリを扱います。 ※前回の記事ではSDVライブラリで時系列データをモデリングし、合成データを作ってみました。 ※20201218:弊社ブログにて『合成データがモデル構築をよりオープンにする〜MLタスクでのSDVによる合成データの有効性を検証する』という記事を掲載しています。 今回はSDVライブラリを使って複数のリレーショナルなテーブルをモデリングし、テーブル自体を生成して […]

PythonのSynthetic Data Vault (SDV)ライブラリで時系列データを生成してみる

Mediumの新着記事を眺めていたら気になるタイトルがありました。 Synthetic Data Vault(SDV)という、統計モデルや機械学習モデルを使ってデータセットをモデリングし、合成データを生成できるPythonライブラリがあるとのことです。 ということで、今回はこのSDVライブラリを試してみます。 公式のチュートリアルを参考に時系列データセットでモデリングし、合成データを生成します。 […]

DistilBERTの推論速度がCPUとGPUでどれくらい変わるのか比較してみた

Google社が開発した自然言語処理モデルBERTですが、使い方次第では様々なタスクで高い精度を得られるものの、そのパラメータの多さゆえに推論にかなり時間がかかります。 そのためBERTを実運用しようとすると、処理時間がボトルネックになって頓挫する場合もあるのではと思います。 BERTを蒸留したDistilBERT(軽量版BERT)をさらに量子化することで、CPUでも高いパフォーマンスを得られると […]

BPEでサブワード分割することでDistilBERTに未知語が入力されるのを防ぐ方法

最近案件でBERTを使う機会がありました。 Hugging Face社が公開している英語版のBERTや東北大の乾・鈴木研究室が公開している日本語版BERTであれば自前のtokenizerで学習あるいは推論対象のテキストを単語分割しても問題ありません。 一方、京大の黒橋・褚・村脇研究室が公開しているBERTだったり、バンダイナムコ社が公開しているDistilBERTを使用する場合、自前のtokeni […]

SOTAなモデルを簡単に使えるktrainがテーブルデータに対応したので試してみた

最近、自然言語処理関連の仕事でBERTを使うことになり、まずはお手軽に試せるライブラリはないかと探していたところ、ktrainというライブラリがあることを知りました。 「ktrain: A Low-Code Library for Augmented Machine Learning」という論文曰く、ktrainを使えば、洗練されたSOTA(state-of-the-art)な機械学習モデルを簡単 […]

自然言語処理ライブラリspaCyが日本語対応したので試してみた

spaCyという自然言語処理のためのライブラリがバージョン2.3にアップデートされ、日本語に対応しました。 このアップデートによって、ベクトルを内包するモデルのサイズやロードにかかる時間が減少し、さらに単語ベクトルの精度が向上したとのことです。 公式ドキュメントを見ると、単語のセグメンテーションと品詞タグ付けにはSudachiPyを利用しているようです。 今回は早速、spaCyを使って日本語の分か […]

Streamlitで確率分布のシミュレーションアプリを作ってみた

巷でFlaskはオワコンと言わしめている、StreamlitというMLツールを使ってみました。 Streamlitは、Pythonスクリプトだけでwebアプリを作成できるツールです。 公式ページ曰く、Streamlitはデータサイエンティストや機械学習エンジニアがほんの数時間で美しくパフォーマンスの高い を作るための最も簡単なフレームワークとのこと。 Streamlit’s open-source […]

コロナ禍による概念ドリフト(Concept Drift)が機械学習タスクに与える影響

先日、全国で緊急事態宣言が解除され、ようやくコロナ禍の波を1つ超えた感があります。 しかし、コロナ禍によって人々の行動や需要が大きく変わっているため、コロナ禍の前後のデータは業界によっては全く傾向が異なると捉えるべきでしょう。 ここで気になるのは、コロナ禍以前から運用されている機械学習系サービスへの影響です。 本記事ではこういった感染症のパンデミックによる概念ドリフト(Concept Drift) […]