フリーランチ食べたい

Python/機械学習/データ解析/ソフトウェア開発などなど

【Selenium】 UnexpectedAlertPresentExceptionが出るケースとその対応

Seleniumで思わぬエラーが発生したのでメモとして残しておきます。

TL;DR

  • UnexpectedAlertPresentExceptionはalertに処理がブロックされているときに起きます。
  • seleniumのalertオブジェクトを操作することで解消します。

こんなケースで発生

自分の場合では、JSのコードを実行する処理でこのエラーが発生しました。

driver.get(url)
js = "console.log('hello');"
driver.execute_script(js)
# => UnexpectedAlertPresentException Error!
続きを読む

【Coursera】 実践的な機械学習の知識が得られる「How to Win a Data Science Competition」「Bayesian Methods for Machine Learning」がオススメ

f:id:mergyi:20190114152007p:plain

業務で機械学習する方にオススメなCourseraの2コース

オンライン学習サービスのCourseraで下の2つのコースを去年末から受講しており、最終課題に少し時間がかかってしまったのですが、無事どちらも修了することができました。

せっかく受けたので、どんなコースだったか、何がオススメかを簡単に書こうと思います。

続きを読む

【JupyerHub】アカウント作成時/ログイン時に処理を行う、ログインユーザーの環境変数を設定する

f:id:mergyi:20190105234225p:plain

JupyterHubの日本語記事が少ないので書いていこうと思います。

TL;DR

  • アカウント作成時は c.LocalAuthenticator.add_user_cmd で設定
  • ログイン時は c.Spawner.pre_spawn_hook で設定
  • 環境変数c.Spawner.environment で設定
続きを読む

Serverlessを使って簡単にAWS Lambda Layers上でHeadless Chromeを動かす

この記事は Serverless2 Advent Calendar 2018 - Qiita20日目です。

f:id:mergyi:20181222231323p:plain

  • 今年開催された re:Invent2018でAWS Lambda Layersが発表されました。
  • このアップデートによってC拡張のライブラリや容量の大きいライブラリの利用がより便利になりました。
  • その中でも特に自分が最初に「使ってみたい!」と思ったHeadless Chrome on Seleniumの使い方を解説します。
  • 自分が普段使っているServerless Frameworkは既にAWS Lambda Layersに対応しており、これを使ったやり方になります。
続きを読む

Chrome/Firefox/SafariでResource(JS/CSSなど)をキャッシュからロードしないようにする方法

小ネタです。Safariがわかりにくかったので調べたんですが、ついでにChrome/Firefoxも。

Resourceのキャッシュとは

  • JSやCSS、画像などをブラウザはキャッシュしていて、サイトにアクセスした際、そちらから読めるときは優先的にロードするようになっています
  • 普段はとても便利な機能なのですが、開発時には不便なのでdisableにしたくなります。
  • キャッシュからロードされているかはDeveloperToolのNetworkタブから確認することが出来ます。

f:id:mergyi:20181218111347p:plain
Resourceがキャッシュからロードされている

続きを読む

Kaggleでよく使われるStacking/Blendingをheamy、Stacknetをpystacknetで高速に実装する

この記事は 機械学習工学 / MLSE Advent Calendar 2018 - Qiita の15日目です。

Stacking/Blendingは実装が面倒

  • Kaggleなどでよく使われるアンサンブル手法にStacking/Blendingがありますが自分で実装すると結構面倒です
  • またモデルの精度を測る際にK-Fold Validationを行うこともありますが、同じpredictを何度も発生してしまい、単純に行うと無駄な処理が多くなってしまいます。
  • 今回紹介するライブラリheamyでは、それらの問題点が解決されており、 抽象化されたAPIで簡単にStacking/Blendingを実装でき 、かつ、 内部でpredictされた結果がキャッシュされており、高速に計算を行うことができます
  • またheamyではWeighted Averageも簡単に実装できる仕組みがあります。
  • また、Stacking/Blendingに比べると浸透度は低いかもしれませんが、StacknetというStackingを複数階層に渡って行い、モデルでニューラルネットワークを作るような手法もあり、このStacknetもpystacknetというライブラリで簡単に実装することができます。
  • Stacking/Blendingに関しては下記のKaggleのドキュメントに詳しいです。

Kaggle Ensembling Guide | MLWave

  • 今回使ったコードは末尾に貼っています。
続きを読む

「rebuild.fmの統計学」という発表をしました。コードと簡単な解説(requests_html/pandas/matplotlib/seaborn)

「rebuild.fmの統計学」というタイトルで発表しました。

  • 資料はSpeakerDecからご覧ください!

speakerdeck.com

  • LIFULLさんで開催された「Ltech#3 【podcast × IT】LT Night !」で話しました。

lifull.connpass.com

  • 使ったコードは全Githubに上げましたが、簡単にどんなことをしたのか解説したいと思います。

python-sandbox/rebuild.fmの統計学.ipynb at master · ikedaosushi/python-sandbox · GitHub

  • そして、この内容を今週土曜日の勉強会で話そうと思ってます。まだ参加申し込みできますので興味ある方は是非!

tskubapy.connpass.com

続きを読む