u++の備忘録

python

LightGBMでdownsampling+bagging

はじめに データセットの作成 LightGBM downsampling downsampling+bagging おわりに はじめに 新年初の技術系の記事です。年末年始から最近にかけては、PyTorchの勉強などインプット重視で過ごしています。その一環で不均衡データの扱いも勉強しました。ク…

2018年のKaggleの"leak"を眺めてみる

はじめに 2018年のKaggleでは、何かと "leak" という単語が話題になった印象があります。https://www.kaggle.com/docs/competitions#leakage今回は、Meta Kaggleのデータを分析し、2018年のコンペで話題になった "leak" を眺めてみました。Meta Kaggle 分析…

【Kaggleのフォルダ構成や管理方法】タイタニック用のGitHubリポジトリを公開しました

はじめに Kaggleのタイタニック GitHubリポジトリ 執筆の経緯 大まかな方針 参考にした情報 フォルダ構成 configs data input output features logs models notebook scripts utils 計算の実行 Git管理 おわりに はじめに 本記事では、Kaggle用フォルダ構成…

日付のフォーマットが混在するDataFrameを扱う

はじめに 今回は日付のフォーマットに関する試行錯誤のメモです。 "Zuerich monthly sunspot numbers 1749-1983" データセット 時系列データで遊びたくて "Zuerich monthly sunspot numbers 1749-1983" というデータセットをcsvでダウンロードしてみました。…

Christmas Tree Drawn with LightGBM

It is Christmas, so I painted Christmas tree with LightGBM.This post is highly inspired by the following post:tjo.hatenablog.comThe data was downloaded from the author's Github. And I added new data containing a new label representing the …

LightGBMでクリスマスツリーを描く

本記事は、kaggle Advent Calendar 2018 その2の25日目の記事です。意図的にフライングして前日の24日、クリスマスイブに投稿します。qiita.comクリスマス用の記事として、LightGBMでクリスマスツリーを描いてみました。なお「決定境界を用いて絵を描く」と…

第43回阪大AIメディカル研究会にて「野球データ分析ハッカソン準優勝解法と特徴量重要度」の題目で発表しました

はじめに 12月22日に開催された「第43回阪大AIメディカル研究会」にて「野球データ分析ハッカソン準優勝解法と特徴量重要度」の題目で発表しました。下記の記事で取り上げたハッカソンのについての発表です。upura.hatenablog.com12月21〜23日に京都・大阪に…

pandas.DataFrameに祝日の特徴量を作る

はじめに 昨日公開した下記の記事で、以下のような感想を書きました。 祝日フラグは、手動で作成したので地味に辛かった思い出があります。 upura.hatenablog.com何となく書いたボヤキだったのですが、ありがたいことに次のリプライを頂きました。休日フラグ…

signate「国立公園の観光宿泊者数予測」コンペで10位でした

本記事は、kaggle Advent Calendar 2018 その2の21日目の記事です。qiita.com はじめに 但し書き コンペの概要 関連コンペ 特徴 日付に関する特徴 公共交通検索ログデータに関する特徴 カテゴリ変数 気象データに関する特徴 使わなかったデータ モデル その…

redashのpythonデータソースでカラム名を指定する時に使える型

BIツールのredashでpythonデータソースを使う際、カラム名を指定するために以下の関数を用いる。 add_result_column(result, column_name, friendly_name, column_type) redash.ioここで4つ目の引数 "column_type" を指定した際に「この型はサポートしていま…

TF-IDFを用いた「Kaggle流行語大賞2018」【kaggle Advent Calendar 14日目】

本記事は、kaggle Advent Calendar 2018の14日目の記事です。12日目で最後の予定でしたが、穴が空いていたので2日ぶり6回目の投稿です。qiita.com はじめに 本記事では、年の瀬ということで「Kaggle流行語大賞2018」という題材に取り組みます。具体的には、…

遺伝的プログラミングによる特徴量生成でLightGBMの精度向上【kaggle Advent Calendar 11日目】

本記事は、kaggle Advent Calendar 2018の11日目の記事です。qiita.com 執筆のきっかけ 先日参加したKaggle Tokyo Meetup #5 の ikiri_DS の発表「Home Credit Default Risk - 2nd place solutions -」にて、遺伝的プログラミングで生成した特徴がLocal CV、…

『Kaggle Ensembling Guide』はいいぞ【kaggle Advent Calendar 7日目】

本記事は、kaggle Advent Calendar 2018の7日目の記事です。qiita.comTwitterでこのAdvent Calendarに書く話題を募集したところ、次のようなリプを頂きました。あと Kaggle で多用される Ensemble のテクニックに関する記事も読んでみたいです。特に Stackin…

validationの切り方いろいろ(sklearnの関数まとめ)【kaggle Advent Calendar 4日目】

本記事は、kaggle Advent Calendar 2018の4日目の記事です。qiita.com はじめに 重要な視点 scikit-learnに用意されている関数 KFold StratifiedKFold GroupKFold ShuffleSplit GroupShuffleSplit StratifiedShuffleSplit TimeSeriesSplit 回帰問題の場合 必…

Cross Validationはなぜ重要なのか【kaggle Advent Calendar 3日目】

本記事は、kaggle Advent Calendar 2018の3日目の記事ということにします。本日、このAdvent Calendarに空きがあると気付いたので、穴埋めの形で急遽記事を執筆しました。僕が遅刻したわけではありません。qiita.comTwitterでこのAdvent Calendarに書く話題…

Kaggle Tokyo Meetup #5 にて「kaggler-ja driven learning」の題目で発表しました

本記事は、kaggle その2 Advent Calendar 2018の1日目の記事だったことにしました(2018年12月11日付)。qiita.com12月1日に開催された「Kaggle Tokyo Meetup #5」にて「kaggler-ja driven learning なぜ質問に答え、どう学んでいるか」の題目でLTをしました…

AtCoderのレートが1000になりました

昨日のABC113に参加し、A〜Cの3完でレートが1018になりました。 https://beta.atcoder.jp/users/upura競技プログラミングを始めた当初、記事では明示していませんでしたがレート1000が一つの目標だったので、ひとまず嬉しいです。upura.hatenablog.com本記事…

仮説と可視化から新しい特徴量を作る Kaggleのタイタニックを例に

本記事では、Kaggleのタイタニックを例に、仮説と可視化から新しい特徴量を作る過程についてまとめます。 仮説と可視化から新しい特徴量を作る 予測精度に寄与する新しい特徴量を作成するに当たっては、仮説と可視化を繰り返す過程が大事です。 予測精度に寄…

Jリーグ2018年シーズンの勝ち点推移を可視化 pythonでデータ取得から可視化まで

2018年シーズンのJ1リーグでは、序盤にサンフレッチェ広島が独走していましたが、7月のW杯中断明けごろから失速。後半になって追い上げた昨年王者の川崎フロンターレに首位を譲る展開になっています。川崎フロンターレの驚異的な追い上げがどの程度か気にな…

「ベースボールデータハッカソン」エンジニアリング部門で準優勝しました

昨日と本日の2日間にわたって開催された「パ・リーグ×パーソル ベースボールデータハッカソン」にて、エンジニアリング部門で準優勝しました。techplay.jp賞品として、パリーグ6球団タオルセットを頂きました。ありがとうございました。本記事では、ハッカソ…

技術書典5で弊社の機械学習活用事例を紹介します

2018年10月8日に池袋サンシャインシティで開催される技術書典5に、弊社のエンジニア有志で執筆した書籍を頒布します。techbookfest.org私は第1章「機械学習を用いた日経電子版Proのユーザ分析」を担当しました。私は弊社にて、営業・マーケティング向け…

Pythonで動く形態素解析ツール「nagisa」を使ってみた

はじめに nagisaとは 使ってみた nagisaの利点 文字単位の双方向LSTMを採用しており、URLや顔文字に頑健 単語分割の方法を調整できる nagisaの課題 おわりに はじめに PyCon2018でポスター展示があったらしく、フォロワーさんの投稿で存在を知りました。形態…

ランダムフォレストなど木系のアンサンブルモデルの解釈性を高める「Feature Tweaking」

はじめに GitHub 手法の概要 論文 著者による紹介動画 日本語文献 「featureTweakPy」の使い方 Requirements Download Package import Random Forest Prediction Using function() Hyper Parameters Setting Cost Function Setting Sample Data for Demonstr…

阪神タイガース、今季初の八回から逆転勝利 昨日までの「0勝50敗」は他チームと比べ酷い数字か検証する

はじめに データの取得 データの前処理 データの分析 まとめ はじめに 本日朝、サンスポに次の記事が掲載されました。阪神タイガースは今季、「七回終了時にリードを許している試合で0勝50敗」という少し衝撃的なデータです。www.sanspo.comこの記事に刺激さ…

Kaggle APIとLINE APIを用いたKernelの新規投稿を通知する仕組みの構築

はじめに システムの概要 launchdによる定期実行 Kaggle APIの実行 前回実行時からKernelの情報に差分があるか確認 LINE APIでの通知 デモンストレーション おわりに 脚注 はじめに Kaggle*1において、上位の成績を収めるためには日々投稿されるDiscussionや…

KaggleのSantander Value Prediction Challengeで銀メダルを取るためにしたこと(85th place solution)

注釈 初回公開時から89→90→85位に順位変動しました。Santander Value Prediction Challengeが本日終わり、順位は8985位で銀メダルでした。既にdiscussionに解法を投稿していますが、ブログにも日本語で共有します。 85th place solution 主な戦略は、以下の…

【Pandas】ある条件の列名の列を足し合わせる

業務で書いた。いろいろググったのでメモ。 要件 以下のようなテーブルがあったときに、2018年6月の合計を計算したい、つまり"201806"から始まる列の値を足し合わせたい。 user id 20180601 20180601 20180601 20180601 … 20180807 aaaaa 0 500 0 500 … 1000…

Jリーグの戦評、「1秒あまり」で自動作成 Jリーグ公式サイトからテキスト速報をスクレイピングして試合を要約する

はじめに 神戸新聞社が開発した「経過戦評ロボットくん」 Jリーグ版を作った 生成した戦評 アルゴリズムの概要 テキスト速報のスクレイピング ゴールが入ったプレーか否かの判定 文言を微調整して戦評を作成 おわりに はじめに 先日(2018年7月24日)公開さ…

pythonのunittestでコマンドライン引数をテストする方法と注意点

以下の記事で作ったプログラムにおいて、コマンドライン引数をテストするケースがありました。少なくとも日本語ではまともな記事が存在しなかったので、本記事ではその手法をまとめます。upura.hatenablog.com テストする関数 テストコード 解説 コマンドラ…

遺伝的アルゴリズムでAIに自分の誕生日を祝ってもらう

突然ですが、本日7月25日は僕の誕生日です。とはいえ、特に誰かが祝ってくれるわけでもないので「無いなら作る」というエンジニア精神で、誕生日を祝ってくれるプログラムを実装しました。GitHub github.com システム要件 システムの実装 [要件1] コマンドラ…