ギークなエンジニアを目指す男

機械学習系の知識を蓄えようとするブログ

Python

pythonを使ってDynamoDBの複数テーブルから非同期でデータ取得してみる

こんにちは。たかぱい(@takapy0210)です。 DynamoDBの複数テーブルからなるべく高速にデータを取得するために、非同期でデータ取得することはできるのか?を少し調べてみたのですが、あまり事例が無かったのでメモ程度に残しておきます。 ユースケースとし…

FastAPIで特定エンドポイント(Path)のログを出力しない方法

最近FastAPIに触る機会があり、ログ周りで少し躓いたので備忘録として残しておきます。 背景 補足 特定エンドポイントのログをフィルタリングする方法 おまけ Uvicornのログをjson形式で出力する方法 エンドポイント毎のレスポンスタイムを計測する方法 背景…

Luigiを使って機械学習パイプラインを構築する3つのメリット

みなさんこんにちは。たかぱい(@takapy0210)です。 本エントリでは、(今更ながら)Luigiを使ってみて感じたメリットをつらつら書いています。 最後にはTitanicのコードを使って実際の機械学習パイプラインを構築してみた例も載せているので、よければ参考…

TensorFlow × HuggingFace Transformers(TFBertModel)を用いたモデルの保存時に発生するエラーの回避方法

みなさんこんにちは。たかぱい(@takapy0210)です。 本日はTensorFlow×Transformers周りでエラーに遭遇した内容とそのWAです。 環境 実装内容 エラー内容 エラーの原因 ワークアラウンド なんでこれで解消できるのか? モデルの保存方法 参考 環境 実行環境…

Google ColabとVSCodeを用いた分析環境運用方法 〜kaggle Tipsを添えて〜

こんにちは。takapy(@takapy0210)です。 本エントリは下記イベントでLTした内容の元に、補足事項やコードスニペットなどをまとめたものになります。 kaggle-friends.connpass.com ちなみに今回LTしようと思ったきっかけは以下のような出来事からだったので…

PandasからBigQueryにデータを保存する際に「Resources exceeded during query execution: UDF out of memory. ..... columns is too large」エラーが出た時の対処方法

こんにちは。takapy(@takapy0210)です。 表題の件で少し困ったので、備忘がてら記事に残しておこうと思います。 やろうとしていたこと エラー内容 該当箇所のコード work around 最後に やろうとしていたこと BigQueryのPython SDKを用いて、Pandasで読み…

【言語処理100本ノック 2020】 8章をPythonで解いた(TensorFlowを使用)

こんにちは。takapy(@takapy0210)です。 本エントリは言語処理100本ノック2020の8章を解いてみたので、それの備忘です。 簡単な解説をつけながら紹介していきます。 ネット上に掲載されている解答例はPytorchによる解法が多かったので、TensorFlowを用いて…

【言語処理100本ノック 2020】 7章をPythonで解いた

こんにちは。takapy(@takapy0210)です。 本エントリは言語処理100本ノック2020の7章を解いてみたので、それの備忘です。 簡単な解説をつけながら紹介していきます。 nlp100.github.io コードはGithubに置いてあります。 github.com 第7章: 機械学習 単語の…

【言語処理100本ノック 2020】 6章をPythonで解いた

こんにちは。takapy(@takapy0210)です。 本エントリは言語処理100本ノック2020の6章を解いてみたので、それの備忘です。 途中まで解いて放置していました()が、続きをやる機会を得たので簡単な解説をつけながら紹介していきます。 nlp100.github.io 例に…

分析コンペをチームで戦うための技術

こんにちは。takapy(@takapy0210)です。 本記事はKaggle Advent Calendar 2020 22日目の記事です。 明日は、本エントリで紹介するMoAコンペでチームを組んだsinchir0さんの予定です。 タイトルからしてとても楽しみです!(プレッシャー) qiita.com はじ…

レコメンデーションに用いられるMatrix Factorization(行列分解)をTensorFlow.kerasで実装してみる

Vectorpouch - jp.freepik.com こんにちは。takapy(@takapy0210)です。 本記事はコネヒト Advent Calendar 2020の10日目の記事です。 qiita.com みなさんハイキューという漫画(アニメ)はご存知でしょうか。 高校バレーボールを題材にしたスポーツ青春漫…

ProbSpace「YouTube動画視聴回数予測コンペ」参加メモ 〜MLflow Trackingによる実験管理を添えて〜

こんにちは。takapy(@takapy0210)です。 今回はProbSpaceで開催されていた「YouTube動画視聴回数予測」コンペに参加し、その中でMLflow Trackingで実験管理を行ってみましたので、簡単に振り返りをしようと思います。 ちなみに結果はPrublic 13th → Privat…

自然言語を簡単に可視化・分析できるライブラリ「nlplot」を公開しました

こんにちは。たかぱい(@takapy0210)です。 本日は自然言語の可視化を手軽にできるようにしたパッケージnlplotをPyPIに公開したので、これのご紹介です。 nlplotとは? nlplotで何ができるか 使い方 使用データ 事前準備 ストップワードの計算 N-gram bar c…

PyPIへのアップロード時に「HTTPError: 400 Client Error: The description failed to render in the default format of reStructuredText.」が出る場合の対処方法

こんにちは。takapy(@takapy0210)です。 自作パッケージをPyPIにアップロードしようとしたところ簡易的なミスで数時間溶かしたので、その備忘です。 エラー内容 エラー発生時のsetup.pyの内容 解決方法 やったこと 各種パッケージのアップデート 公式の書…

【言語処理100本ノック 2020】 4章をPythonで解いた

こんにちは。takapy(@takapy0210)です。 本エントリは言語処理100本ノック 2020の4章を解いてみたので、それの備忘です。 nlp100.github.io 例によってコードはGithubに置いてあります。 github.com 第4章: 形態素解析 30. 形態素解析結果の読み込み 31. …

【言語処理100本ノック 2020】 3章をPythonで解いた

こんにちは。たかぱい(@takapy0210)です。 本エントリは言語処理100本ノック 2020の3章を解いてみたので、それの備忘です。 nlp100.github.io 例によってコードはGithubに置いてあります。 github.com 第3章: 正規表現 20. JSONデータの読み込み 21. カテ…

【言語処理100本ノック 2020】 2章をPythonで解いた

こんにちは。たかぱい(@takapy0210)です。 本エントリは言語処理100本ノック 2020の2章を解いてみたので、それの備忘です。 nlp100.github.io 例によってコードはGithubに置いてあります。 github.com 第2章: UNIXコマンド 10. 行数のカウント 11. タブを…

【言語処理100本ノック 2020】 1章をPythonで解いた

こんにちは。たかぱい(@takapy0210)です。 本エントリは言語処理100本ノック 2020の1章を解いてみたので、それの備忘です。 nlp100.github.io コードはGithubに置いてあります。 github.com 第1章: 準備運動 00. 文字列の逆順 01. 「パタトクカシーー」 02…

データ分析コンペで使っているワイの学習・推論パイプラインを晒します

こんにちは!たかぱい(@takapy0210)です。 本記事はKaggle Advent Calendar 2019の14日目の記事です。 昨日はkaggle masterのアライさんのKaggleコード遺産の記事でした! とても参考になり、いくつか自分の遺産にも取り入れさせていただきました。 さて本…

Category Encodersのすゝめ【AI道場「Kaggle」への道 by 日経 xTECH ビジネスAI① Advent Calendar 2019 10日目】

こんにちは!たかぱい(@takapy0210)です。 本記事は、AI道場「Kaggle」への道 by 日経 xTECH ビジネスAI① Advent Calendar 2019の10日目の記事です。 今回は、最近よく使用しているCategory Encodersを動かしてみた結果をまとめてみようと思います。 Categ…

【小ネタ】ipywidgetsを使ってデータフレームのheaderを固定してデータを表示する

こんばんは。takapy(@takapy0210)です。 今日はpythonの小ネタです。 サマリ 手順 ipywidgetsのインストールとjupyterの設定 コード 最後に サマリ 下記のように、headerを固定しながら一覧をスクロールすることができます。 手順 ipywidgetsのインストー…

GloVeを使って単語の分散表現を取得する

こんにちは。takapy(@takapy0210)です。 コンピュータで自然言語を扱う場合は、単語(文書)を何らかの形で数値表現に変換する必要があります。 単語の分散表現を得る方法の一つとして、gensimのword2vecを使うことはよくあると思うのですが、本日はGloVe…

Dockerを使って機械学習実行環境(勾配ブースティング、ニューラルネット含む)を30分で構築する - python, Mecab, LightGBM, xgboost, TensorFlow, keras, Pytorch, etc... -

こんにちは。takapy(@takapy0210)です。 今日はDockerで機械学習の環境を作成したのでそれの備忘です。 はじめに できること Dockerって何 Dockerのインストール 環境構築方法 Dockerイメージのpull コンテナの起動 補足 mecab-ipadic-neologdの使用方法 D…

ランダムフォレストはなぜ「ランダム」なのか

こんにちは。takapy(@takapy0210)です。 本記事は、転職カウントダウンカレンダー 6日目の記事です。 www.takapy.work はじめに ランダムフォレストとは 異なる決定木を作るための2つの乱数選択 ブーストラップサンプリング 特徴量選択 簡単に図で説明 pyt…

AWS Lambdaを利用してpythonでslack通知を実装する

こんにちは。takapy(@takapy0210)です。 本記事は、転職カウントダウンカレンダー 4日目の記事です。リフレッシュを兼ねてDocker以外の記事を挟みます。 www.takapy.work はじめに SlackのWorkspaceにIncoming Webhookを登録 AWS Simple Queue Serviceの作…

Mac環境構築備忘録(Python・Chrome拡張・アプリ)

こんばんは。takapyです。 本記事は、転職カウントダウンカレンダーの1日目の記事です。 www.takapy.work 3月より入社する職場からMacを支給されたので、環境構築がてら手順の備忘をまとめておこうと思います。 python関連 Homebrew pyenv pyenvでpythonをイ…

Python用VSCode拡張機能まとめ

こんばんは。takapyです。 本記事はVSCode拡張機能の備忘です。 python関連 Git関連 その他 python関連 marketplace.visualstudio.com marketplace.visualstudio.com marketplace.visualstudio.com Git関連 marketplace.visualstudio.com marketplace.visual…

pyenvでBUILD FAILED Inspect or clean up the working tree エラーが出た時の対処方法(macOS Mojava 10.14.2)

こんにちは。こんばんは。takapy(@takapy0210)です。 環境構築で少しつまづいたので、備忘です。例のごとく、$で始まる行はコマンドです。 環境 pyenvのインストール python3.6.0のインストールでエラー 解決方法 環境 モデル:Mac book Pro 15インチ OS:…

主成分分析(PCA)の累積寄与率で見る特徴量エンジニアリング【python】

はじめに 主成分分析(PCA)とは 固有値と寄与率と累積寄与率 固有値 寄与率 累積寄与率 cancerデータセットで主成分分析 ロジスティック回帰でテスト 標準化 学習 主成分分析で寄与率を確認 2次元まで圧縮してプロット PCAの欠点 主成分分析後のデータでロ…

単変量解析で見る特徴量エンジニアリング【python】

本日は特徴量エンジニアリングの重要性について、scikit-learnでの簡単な実装を交えながら書いてみようと思います。 はじめに 特徴量エンジニアリング 単変量統計 検証の概要 検証 cancerデータの読み込み ノイズデータの生成 単変量特徴量選択 ロジスティッ…