u++の備忘録

TF-IDFを用いた「Kaggle流行語大賞2020」

Kaggle Advent Calendar の8日目の記事です。 2018年、2019年に引き続き、今年もTF-IDFを用いた「Kaggle流行語大賞」を算出します。具体的には、2020年に公開されたNotebookのタイトル情報から、頻繁に登場した単語をランキング形式でまとめました。 2018年*…

ニュースメディアでの機械学習活用事例について「Google Developers ML Summit」で登壇(12月3日)

12月3日に「Google Developers ML Summit」に登壇します。もう1年近く経ってしまった「Kaggle Days Tokyo」の話も含めて、会社での機械学習の活用事例を紹介する予定です。17:10-18:00の枠で、質問も受け付ける予定です。ご興味ある方はぜひご覧ください。 …

Basketball Behavior Challenge 1st Place Solution

本記事について 「スポーツアナリティクス Advent Calendar 2020」*1の1日目の記事です。 12月13日開催の「Sports Analyst Meetup #9」*2で発表予定の内容をまとめました。 概要 2019年12月〜2020年9月に開催されていた「Basketball Behavior Challenge: BBC…

M-1グランプリ2020の2回戦動画を観た

M-1グランプリ2020の2回戦動画がGyaoとYouTubeで全公開されていたので、合格者を中心にザッと目を通しました。 gyao.yahoo.co.jp 昨年の準決勝を観に行くくらいには以前からお笑い好きでしたが、今年は在宅の時間が増えたことも相まって、その傾向が加速しま…

データサイエンティスト協会シンポジウムのKaggleセッションに登壇(11月10日)

11月10日にデータサイエンティスト協会シンポジウムで、毎年恒例のKaggleセッションを実施します。 11月10日にデータサイエンティスト協会シンポジウムで、毎年恒例のKaggleセッションを実施します。今年のテーマは「Kaggler枠」で、企業によるKaggler支援を…

日本語BERTを用いた会社名の埋め込み

以前に参加したNishika「財務・非財務情報を活用した株主価値予測」コンペ*1で検討していたタイトルの技術について、別コンペで使う可能性があったので改めてコードを整理していました。結局使わなかったですが、せっかくまとめたのでブログ記事として供養し…

「SciPy Japan 2020」で Kaggle チュートリアルを担当(10月30日)

10月30日からオンライン開催される「SciPy Japan 2020」にて、初日朝9:00〜12:30のチュートリアル講座を担当します。本記事では「SciPy Japan」の紹介と、参加される方向けのご案内を掲載します。 Tutorial: Pythonで機械学習コンペティション「Kaggle」をは…

「AWS DEV DAY ONLINE JAPAN」のKaggleセッションに登壇(10月21日)

「AWS DEV DAY ONLINE JAPAN」のKaggleセッションに登壇します。10月21日15:50〜16:20のブレイクアウトセッションです。 E-9 : kagglerが語る「コンペとキャリアとビジネスと私」 aws.amazon.com 元「専業Kaggler」の currypurinさん と、AWSの atfujitaさん…

Podcast「白金鉱業FM」に出演しました #白金鉱業fm

BrainPad社のデータサイエンティスト有志によるPodcast「白金鉱業FM」に出演しました。先日公開された「keep-alive.fm」*1と合わせて、お楽しみください。 shirokane-kougyou.fm 話題 以下が今回のお品書きです。興味のある部分だけでも、ぜひ聴いてみてくだ…

生存戦略を語るPodcast「keep-alive.fm」に出演しました #keepalivefm

広義のソフトウェアエンジニアが生存戦略を語るPodcast「keep-alive.fm」に出演しました。 anchor.fm 話題 以下が今回のお品書きです。以前から親交のあった@guiltydammyさんと@crcrparさんと一緒に、楽しくお喋りしました。 興味のある部分だけでも、ぜひ聴…

Kaggle「OpenVaccine: COVID-19 mRNA Vaccine Degradation Prediction」コンペ参加録

Kaggle「OpenVaccine: COVID-19 mRNA Vaccine Degradation Prediction」コンペ*1に参加し、銀メダルの77位でした。 解法はdiscussion*2に簡単にまとめましたが、公開Notebookからの派生でモデルを作り、CVの良い8つのモデルの平均を取りました。 1位相当の提…

SIGNATE「ひろしまQuest2020#stayhome【アイデア部門】」提出資料

以前に参加していたSIGNATE「ひろしまQuest2020#stayhome【アイデア部門】」*1について、自分の提出資料を公開しました。残念ながら入賞はできませんでしたが、興味関心のある野球のデータを分析できて非常に楽しいコンペでした。入賞者以外の成果物共有を許…

山手線を徒歩で一周した(3年ぶり2回目)

コロナ禍でしばらく外出自体を控えていましたが、年始以来の久々の徒歩企画です。 upura.hatenablog.com 今回はマスクを装着し、山手線を徒歩で一周しました。3年前の学生時代以来、人生2度目の挑戦です。前回とは逆方向で周ってみました。 upura.hatenablog…

Google Cloud「Ask the Expert」に出演しました

Google Cloudのインタビュー企画「Ask the Expert」に出演しました。会社での取り組みやKaggleの楽しさなどを話しました。 developers-jp.googleblog.com togetter でのまとめはこちら。 togetter.com

非負値行列因子分解を用いたKaggleコンペ推薦

非負値行列因子分解を用いて、Kaggleコンペを推薦する仕組みを考えました。 手法 実験 データセット 実装 デモアプリ 今後の展望 コールドスタート デプロイ おわりに 手法 いくらでも高度なやり方はあり得ますが、手っ取り早い方法として行列分解を試しまし…

「Basketball Behavior Challenge BBC2020」で4チーム中1位に

9月1日まで開催されていた「Basketball Behavior Challenge BBC2020」*1というコンペで1位になりました*2。選手とボールの座標推移からスクリーンプレイの有無を判定するタスクで、分析していて楽しいコンペでした。 解法の概要とスコアの推移は下図の通りで…

自分のTwitter投稿内のURLを分析してみた

これは何? 次の記事に着想を得て、自分のデータでやってみました。具体的には、2015年6月から現在までの自分のTwitter投稿から、全部のURLを抽出し、ドメイン単位で集計しました。 www.buzzfeed.com データの取得 twilog*1に自分の投稿データが保存されてい…

Kaggleの「おすすめコンペは何?」への答えを考えた

「Rist主催 Kaggle Workshop #1」にてLT発表しました。テーマは「おすすめコンペは何?」という質問への答え方です。発表資料やプレゼンテーション動画を掲載したので、ご興味あらばご覧いただければと思います。 最近Kaggle系のイベントに飢えていたので、…

Pandasのパイプラインを作る「pdpipe」を使ってみた

Pandasのパイプラインを作る「pdpipe」というライブラリを知ったので、少し触ってみました。本記事では、簡単な使い方および良かった点・悪かった点をまとめます。 Pandas処理の「パイプライン」を作るライブラリがあるらしいBuild pipelines with Pandas us…

streamlitでwebアプリ作成

少し前に話題になっていた「streamlit」を用いて、簡単なwebアプリを作ってみました。デザイン部分をほとんど意識せず、お手軽にwebアプリを作成できます。公式ドキュメントも充実しており、分かりやすかったです。細かいデザインに手を入れる必要がない場合…

「リングフィットアドベンチャー」をクリアした

2月末ごろに完全在宅勤務に移行した後に購入した「リングフィットアドベンチャー」を(一旦)クリアしました。 なんか運よく調達できた(switchがまだ無い) pic.twitter.com/idv0Dk4rmv— u++ (@upura0) March 11, 2020 リングフィットアドベンチャーとは? …

言語処理100本ノック 2020「59. ハイパーパラメータの探索」

問題文 nlp100.github.io 問題の概要 学習アルゴリズムとして「RandomForestClassifier()」も利用し「max_depth」の値を調整します。 import pandas as pd from sklearn.linear_model import LogisticRegression from sklearn.ensemble import RandomForestC…

言語処理100本ノック 2020「58. 正則化パラメータの変更」

問題文 nlp100.github.io 問題の概要 学習時の「C」の値を調整することで、学習・予測結果が変わります。 import matplotlib.pyplot as plt import pandas as pd from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy…

言語処理100本ノック 2020「57. 特徴量の重みの確認」

問題文 nlp100.github.io 問題の概要 ロジスティック回帰を用いた場合は「.coef_」で特徴量の重みを確認できます。今回は値の絶対値に興味があるので、事前にソートした上で上位・下位10個の特徴量を出力します。 import joblib clf = joblib.load('ch06/mod…

言語処理100本ノック 2020「56. 適合率,再現率,F1スコアの計測」

問題文 nlp100.github.io 問題の概要 適合率,再現率,F1スコアはそれぞれ「precision_score()」「recall_score()」「f1_score()」で計算できます。「average」には「'micro'」「'macro'」などが指定可能*1です。 import pandas as pd import joblib from sk…

言語処理100本ノック 2020「55. 混同行列の作成」

問題文 nlp100.github.io 問題の概要 混同行列は「confusion_matrix()」で作成できます。 import pandas as pd import joblib from sklearn.metrics import confusion_matrix X_train = pd.read_table('ch06/train.feature.txt', header=None) X_test = pd.r…

言語処理100本ノック 2020「54. 正解率の計測」

問題文 nlp100.github.io 問題の概要 正答率は「accuracy_score()」で計算できます。 import pandas as pd import joblib from sklearn.metrics import accuracy_score X_train = pd.read_table('ch06/train.feature.txt', header=None) X_test = pd.read_ta…

言語処理100本ノック 2020「53. 予測」

問題文 nlp100.github.io 問題の概要 学習を終えたモデルは、予測値が未知の特徴量(X_test)を与えて予測させることができます。 import pandas as pd from sklearn.linear_model import LogisticRegression X_train = pd.read_table('ch06/train.feature.t…

言語処理100本ノック 2020「52. 学習」

問題文 nlp100.github.io 問題の概要 用意した特徴量と予測の対象のペアから、機械学習アルゴリズムを用いて予測器を学習させましょう。 import pandas as pd import joblib from sklearn.linear_model import LogisticRegression X_train = pd.read_table('…

言語処理100本ノック 2020「51. 特徴量抽出」

問題文 nlp100.github.io 問題の概要 カテゴリ分類に有用そうな特徴量を抽出します。ここでは、問題文の指示通りの最低限の特徴量を作ります。sklearnに用意されている「CountVectorizer()」が利用可能です。 記事の見出しを単語列に変換したものが最低限の…