[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

ブックマーク / blog.amedama.jp (8)

  • Python: XGBoost を使ってみる - CUBE SUGAR CONTAINER

    XGBoost (eXtreme Gradient Boosting) は勾配ブースティング決定木 (Gradient Boosting Decision Tree) のアルゴリズムを実装したオープンソースのライブラリ。 最近は、同じ GBDT 系のライブラリである LightGBM にややお株を奪われつつあるものの、依然として機械学習コンペティションの一つである Kaggle でよく使われている。 今回は、そんな XGBoost の Python バインディングを使ってみることにする。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.14.2 BuildVersion: 18C54 $ python -V Python 3.7.2 もくじ もくじ 下準備 乳がんデータセットを分類してみる 学習過程を可視化する

    Python: XGBoost を使ってみる - CUBE SUGAR CONTAINER
  • Python: ERAlchemy を使って ER 図を描く - CUBE SUGAR CONTAINER

    今回は ERAlchemy という ER 図を描くツールを使ってみる。 このツールは erd という Haskell で書かれた同様のツールにインスパイアされて作られたものらしい。 ただ、機能的にできることは ERAlchemy の方が多いみたいだ。 ERAlchemy が提供する基的な機能は次の通り。 ER フォーマットのテキストファイルから ER 図を生成する SQLAlchemy 経由で既存のデータベースから ER 図を生成する 後者の既存データベースから ER 図を生成するところなんかは、これまでだと MySQL Workbench を使ったりしてた。 ただ、このやり方だと文字通り MySQL でしか使えないのに対して ERAlchemy はそれ以外のデータベースにも対応している。 今回も試しに SQLite3 のデータベースから ER 図を生成してみている。 ただ、この機能が出

    Python: ERAlchemy を使って ER 図を描く - CUBE SUGAR CONTAINER
    cartman0
    cartman0 2019/12/14
    こりゃ便利だ
  • Python: ベイズ最適化で機械学習モデルのハイパーパラメータを選ぶ - CUBE SUGAR CONTAINER

    機械学習モデルにおいて、人間によるチューニングが必要なパラメータをハイパーパラメータと呼ぶ。 ハイパーパラメータをチューニングするやり方は色々とある。 例えば、良さそうなパラメータの組み合わせを全て試すグリッドサーチや、無作為に試すランダムサーチなど。 今回は、それとはちょっと違ったベイズ最適化というやり方を試してみる。 ベイズ最適化では、過去の試行結果から次に何処を調べれば良いかを確率分布と獲得関数にもとづいて決める。 これにより、比較的少ない試行回数でより優れたハイパーパラメータが選べるとされる。 Python でベイズ最適化をするためのパッケージとしては Bayesian Optimization や skopt、GPyOpt などがある。 今回は、その中でも Bayesian Optimization を使ってみることにした。 使った環境は次の通り。 $ sw_vers Produ

    Python: ベイズ最適化で機械学習モデルのハイパーパラメータを選ぶ - CUBE SUGAR CONTAINER
    cartman0
    cartman0 2019/06/16
    どこにベイズが出てくるのかわからんのよね
  • Python: パラメータ選択を伴う機械学習モデルの交差検証について - CUBE SUGAR CONTAINER

    今回は、ハイパーパラメータ選びを含む機械学習モデルの交差検証について書いてみる。 このとき、交差検証のやり方がまずいと汎化性能を来よりも高く見積もってしまう恐れがある。 汎化性能というのは、未知のデータに対処する能力のことを指す。 ようするに、いざモデルを実環境に投入してみたら想定よりも性能が出ない (Underperform) ということが起こる。 これを防ぐには、交差検証の中でも Nested Cross Validation (Nested CV) あるいは Double Cross Validation と呼ばれる手法を使う。 ハイパーパラメータの選び方としては、色々な組み合わせをとにかく試すグリッドサーチという方法を例にする。 また、モデルのアルゴリズムにはサポートベクターマシンを使った。 これは、サポートベクターマシンはハイパーパラメータの変更に対して敏感な印象があるため。

    Python: パラメータ選択を伴う機械学習モデルの交差検証について - CUBE SUGAR CONTAINER
  • CUBE SUGAR CONTAINER

    今回は、以下の記事の続きとして PyTorch で RMSProp のオプティマイザを実装してみる。 blog.amedama.jp 上記では PyTorch で Adagrad のオプティマイザを実装した。 Adagrad は学習率の調整に過去の勾配の平方和の累積を使っている。 このやり方には、イテレーションが進むと徐々に学習が進みにくくなってしまう問題がある。 そこで、RMSProp では学習率の調整に過去の勾配の平方和の指数移動平均を使っている。 これによって、徐々に学習が進みにくくなる問題を解決した。 使った環境は次のとおり。 $ sw_vers ProductName: macOS ProductVersion: 15.1 BuildVersion: 24B83 $ python -V Python 3.12.7 $ pip list | egrep -i "(torch|mat

    CUBE SUGAR CONTAINER
  • Python: 勾配法で関数の最小値を探す - CUBE SUGAR CONTAINER

    勾配法はニューラルネットワークなどの機械学習アルゴリズムの中で、学習するときに使われているアルゴリズム。 このアルゴリズムを使うと、与えられた関数の最小値 (または最大値) を探すことができる。 例えば教師データと現在の出力の誤差を計算する損失関数を与えれば、その最小値を探すことで教師データに出力を近づけることができる。 ただし、真の最小値 (または最大値) が見つかることが保証されているわけではなく、局所的な最適解に陥る恐れはある。 今回は Python を使って単純な勾配法を実装してみることにする。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.11.6 BuildVersion: 15G1108 $ python --version Python 3.5.2 パッケージのインストール まずは可視化のための

    cartman0
    cartman0 2019/04/27
  • Python: Selenium + Headless Chrome で Web ページ全体のスクリーンショットを撮る - CUBE SUGAR CONTAINER

    スクレイピングした Web サイトからページ全体のスクリーンショットを撮影したい機会があった。 そこで Selenium の Python バインディングと Headless Chrome を使ったところ実現できたのでメモしておく。 ちなみに、ページ全体でなければ Headless Chrome 単体でも撮れる。 その方法についても末尾に補足として記載しておいた。 使った環境は次の通り。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.13.5 BuildVersion: 17F77 $ python -V Python 3.6.5 $ pip list --format=columns | grep -i selenium selenium 3.13.0 $ chromedriver --version ChromeDriver 2.

    Python: Selenium + Headless Chrome で Web ページ全体のスクリーンショットを撮る - CUBE SUGAR CONTAINER
    cartman0
    cartman0 2018/07/28
    headlessだけだとこれできないぽいのよね
  • Python: doctest を書いてみよう - CUBE SUGAR CONTAINER

    今回は Python が標準で提供しているテスト機構の一つである doctest について書いてみる。 doctest というのは docstring という Python のドキュメンテーション機構を使って一緒にテストもしちゃおうという発想の代物。 docstring については以前にもこのブログで詳しく書いたことがある。 blog.amedama.jp docstring のおさらい ひとまず docstring のおさらいから入ろう。 docstring はモジュールや関数などを解説するための特殊なコメント。 例えば次の FizzBuzz を実装した関数 fizzbuzz() に対して docstring を書いてみることにしよう。 # -*- coding: utf-8 -*- def fizzbuzz(n): if n % 3 == 0 and n % 5 == 0: retur

    Python: doctest を書いてみよう - CUBE SUGAR CONTAINER
  • 1