u++の備忘録

python

言語処理100本ノック 2020「00. 文字列の逆順」

問題文 nlp100.github.io 問題の概要 第1章では、基本的な文字列操作を扱います。この問題では、文字列を逆順に並び替えます。 Pythonでは、文字列の「スライス」を用いることで、この処理を実現できます*1。 text = 'stressed' print(text[::-1]) *1:qiita.…

「言語処理100本ノック 2020」をPythonで解く

「言語処理100本ノック 2020」が4月6日に公開されました。2015年以来、5年ぶりの改訂です。昨今の自然言語処理の研究動向を鑑み、深層ニューラルネットワークに関する問題追加などの変更があります。 nlp100.github.io 実装のためのプログラミング言語として…

「AutoGluon-Tabular」を試してみる

AutoML「AutoGluon-Tabular」が、少なくとも私の観測範囲の中で局所的に話題になっています。 構造化データに対するAutoMLとしてAutoGluon-Tabularは基本モデルを積み重ねる多層スタックアンサンブルを利用。各層は前層の予測結果と入力を受け取り、過学習を…

【書籍メモ】『PythonではじめるKaggleスタートブック』(講談社)

共著で執筆した、3月17日発売の『PythonではじめるKaggleスタートブック』(講談社)が手元に届きました。 本記事では、本書の関連リンクをまとめました。以前に書いた告知記事については、補足情報も付与します。 Amazon www.amazon.co.jp サンプルコード g…

AtCoder「日立製作所 社会システム事業部 プログラミングコンテスト2020」をPythonで解く

久しぶりにAtCoderのコンテストに参加しました。A, B問題の2完でした。 atcoder.jp A - Hitachi String(100点) 「Sの長さは1以上10以下」なので、hitachi文字列は高々5通りです S = input() hitachi = [ 'hi', 'hihi', 'hihihi', 'hihihihi', 'hihihihihi'…

「無観客試合」となる「R-1ぐらんぷり2020」に関する仮説と可視化

今夜のピン芸人ナンバーワン決定戦「R-1ぐらんぷり」は、流行する新型コロナウイルスの影響を受け、史上初めて無観客で開催されます*1。 この異例の事態を受けて、自分の中で「会場のウケ量が分かりづらく審査員が判断に困るのでは」という仮説が浮かびまし…

CatBoostのテキストカラム指定機能を試す

CatBoostの(カテゴリカラム指定ならぬ)テキストカラム指定機能を試してみました。本記事の内容は、discussion*1に投稿済です。 Kaggle「Real or Not? NLP with Disaster Tweets」*2コンペのデータセットを利用しました。 target_col = 'target' text_cols …

「Linear Quiz Blending」の概説

"Linear Quiz Blending" や "Netflix Blending" と呼ばれる技法について、少し前にまとめたスライドを公開しました。 少し前からKaggleをやっている方だと「Kaggle Tokyo Meetup #5」*1での、Kaggle Grandmasterのsmlyさんの発表が印象的かもしれません。 Ka…

【書籍メモ】『機械学習・深層学習による自然言語処理入門 scikit-learnとTensorFlowを使った実践プログラミング』

2月26日に刊行された『機械学習・深層学習による自然言語処理入門 scikit-learnとTensorFlowを使った実践プログラミング』を読みました。 「日本語」のデータで、「今の自然言語処理」をイチから学ぶ! 公式サイトの宣言文句が、本書の特徴を言い得ています…

「NLPコンペの知見を実務に活かすために」の題目で発表しました

本日開催された「Kaggle Google Quest Q&A Labeling 反省会」*1にて「NLPコンペの知見を実務に活かすために」の題目で発表しました。自作のPythonライブラリ「Ayniy」について、設計思想や具体例を紹介しました。 詳細な内容については然るべきタイミングで…

イベント参加者用の名札をPythonで自動生成

先日開催した「Sports Analyst Meetup #6」*1では、イベント参加者の方々全員に名札を配布する試みを実施しました。 今日はここから! #spoana 名札が用意されてる!ありがとうございます(もっとまともな写真のアイコンにしよう) (@ 汐留ビルディング in 港…

「Sports Analyst Meetup #6」開催報告&発表まとめ

「Sports Analyst Meetup #6」を開催しました。 新型コロナウイルス感染症の影響を勘案し、直前に懇親会の中止を決定しての開催となりました。参加者の方々にご了承いただいた上、当日は運営に温かいお声がけをいただきましたこと、心よりお礼申し上げます。…

XGBoostやCNNを用いた「Data Journalism Awards 2019」受賞作

「Data Journalism Awards 2019」を受賞した全12作の中で、特に機械学習など高度なデータサイエンスを活用した事例があったので、簡単に概要を紹介します。 Radmesser 作品URL 受賞概要 概要 課題背景 目的 データ収集 データ分析 追い越しイベントの検出 地…

Kaggle PetFinderコンペで優勝しました

Kaggleで開催されていた「PetFinder.my Adoption Prediction」コンペ*1で優勝しました*2。素晴らしいチームメイトに恵まれた思い出深いコンペです。開催から1年近く経過した今でもチーム「Wodori」のSlackでは活発に議論が交わされており、常に互いに刺激を…

RData形式のデータセットをPythonで読み込む

Tl;DR rdataパッケージ*1を用いて、次のようにRData形式のデータセットを読み込める。 import rdata parsed = rdata.parser.parse_file('../data/vouchers.rda') converted = rdata.conversion.convert(parsed) vouchers = converted['vouchers'] 『効果検証…

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

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

小数点以下を取り出す特徴量エンジニアリングの解釈と実装

Couseraの「How to Win a Data Science Competition: Learn from Top Kagglers」*1などで紹介されている特徴量エンジニアリングのアイディアの一つとして「数値データの小数点以下を取り出す」という技法があります。本記事では簡単な解釈を述べ、Pythonによ…

Pythonを用いたKaggle入門書を2020年3月に講談社から出版します

このたびご縁があり、Pythonを用いたKaggle入門書を講談社から出版する運びとなりました*1。現在デザインや校正などを進めている段階で、発売開始は2020年3月17日を予定しています。https://www.amazon.co.jp/dp/4065190061同人誌ながら累計2500部以上を売り…

J2降格からJ1復帰にかかった年数をまとめた

諸事情*1でJ2降格に関する情報が気になっている今日このごろ、J2降格からJ1復帰にかかった年数をまとめてみました。降格・昇格チームの一覧*2を見ながら、手作業で処理しました。良い可視化方法が思いつかなかったので、一旦は表形式です。元データはGitHub*…

「第二回全国統一プログラミング王決定戦予選」参加録

「第二回全国統一プログラミング王決定戦予選」に参加してA, Bの2完でした。約7カ月ぶりのRated参加だったこともあり、「あまりを計算し忘れる」という初歩的な見落としで爆死しました。。。atcoder.jp A - Sum of Two Integers(100点) 偶数と奇数で場合分…

「Sports Analyst Meetup #5」を開催しました #spoana

はじめに 発表資料 togetter ロングトーク①「batter pitcher 2 vec」 ロングトーク②「野球界でのシステム導入事例~IT企業としてのサポート~」 LT ご協力いただいた企業 おわりに はじめに 「Sports Analyst Meetup #5」を開催しました。spoana.connpass.co…

弊ブログの「Techブログスコア」を算出した

とある記事を見て、自分のブログも執筆数はそこそこあるので良い線行くのではないかと思って集計してみました。僕の個人ブログも、そこそこ良いところ行くんじゃなかろうか。===150社のTechブログを分析して見えた、エンジニアが今転職するべき企業ランキン…

「初手LightGBM」をする7つの理由

Kaggleなどのデータ分析コンペでテーブルデータを扱う場合、最近は取りあえずLightGBMを利用する場合が多いです。本記事では、初手の機械学習アルゴリズムとして「LightGBM」*1を採用する理由を紹介します。あくまで2019年10月末時点での個人の主観なので、…

Adversarial Validationを用いた特徴量選択

先日公開した「IEEE-CIS Fraud Detection」コンペの解法*1の中で、Adversarial Validationの考え方を用いた特徴量選択について何回か質問がありました。本記事では、Adversarial Validationの考え方を用いた特徴量選択を解説します。 Adversarial Validation…

AI×愛知の「AIchi勉強会」でKaggleの魅力について発表しました

愛知県名古屋市で開催された「AIchi勉強会」で、Kaggleの魅力について発表しました。愛知県出身という縁でお声がけいただいた形です。 愛知県の製造業の異なる会社で働く、AI・機械学習に興味を持つメンバー3人中心に「愛知県で会社を越えてAIに興味ある人、…

csv化で文字列になったlistやdictを元に戻す

配列が格納されているレコードを含む csv を df で呼び出すと配列の部分が str に変換されてしまうのですが、解決手段ないですか。。— かえるるる | krrr (@kaeru_nantoka) September 3, 2019csv化すると文字列になってしまう仕様があるのでpickle形式などで…

Poincaré Embeddings でJ1リーグのチーム・選手を可視化

ふと「Poincaré Embeddings」*1で遊んでみたいと思い立ち、サッカーJ1リーグのデータで試してみました。 Poincaré Embeddings gensimでの実装とデータセット Poincaré Embeddingsの学習 活用方法 おわりに Poincaré Embeddings Poincaré Embeddingsに関する…

テーブルデータ向けのGAN(TGAN)で、titanicのデータを増やす

はじめに ynktk さんのツイート*1を見て、テーブルデータ向けの GAN の存在を知りました。本記事では、TGAN を用いて titanic のデータを拡張してみます。 TGANとは テーブルデータに対応した GAN (Generative Adversarial Network, 敵対的生成ネットワーク)…

scikit-learn-contrib の Metric Learning を試す

Metric Learning について Metric Learning は、データの教師情報を基にデータ間の距離や類似度などの Metric を学習する手法です。日本語で手軽に読める記事だと、*1, *2 などが詳しいです。このたび、phalanx さんの tweet *3で、 Metric Learning の基礎…

【特徴量の追加編】機械学習を用いた大相撲千秋楽の勝敗予想

はじめに 「連勝・連敗」特徴量の追加 tsfresh特徴量の追加 おわりに はじめに 前回は、「Sports Analyst Meetup #4」でのLTに向けて、ベンチマークとなる機械学習モデルを構築しました。新しい特徴量を追加することで、予測モデルの性能が向上することも確…