$30 off During Our Annual Pro Sale. View Details »

異常検知パッケージを作ってみたお話 / Create Python package for anomaly detection

Kon
June 29, 2018

異常検知パッケージを作ってみたお話 / Create Python package for anomaly detection

Kon

June 29, 2018
Tweet

More Decks by Kon

Other Decks in Programming

Transcript

  1. 異常検知パッケージを作ってみたお話
    Netadashi Meetup #6
    Jun 29, 2018

    View Slide

  2. Yu Ohori (a.k.a. Kon)
    ML Researcher at NSSOL (2017-)
    ● semi-supervised learning
    ● anomaly detection
    PyCon JP Staff (2018-)
    @Y_oHr_N
    @Y-oHr-N
    2

    View Slide

  3. 我々は通常と異なる挙動(異常)に関心がある
    サーバに対する不正アクセス
    (intrusion detection)
    クレジットカードの不正利用
    (fraud detection)
    医療誤診
    (medical anomaly detection)
    設備故障
    (industrial damage detection)
    3

    View Slide

  4. 4
    異常は大きく 3 種類に分けられる
    Chandola, V., et al., "Anomaly detection: A survey," ACM computing surveys, 41(3), 2009.
    point anomaly contextual anomaly collective anomaly

    View Slide

  5. kenchi
    is a scikit-learn compatible library for anomaly detection
    5
    https://github.com/HazureChi/kenchi

    View Slide

  6. これからのお話
    異常検知パッケージ
    kenchi について
    開発時に利用した
    サービスについて
    6

    View Slide

  7. 7
    https://github.com/scikit-learn-contrib/project-template
    利用サービス一覧
    Travis CI
    Coveralls
    Read the Docs AppVeyor Code Climate
    Anaconda Cloud
    binder GitHub PyPI
    build
    push, pull request upload
    hook

    View Slide

  8. GitHub
    ソースコードをホスティングするサービス
    ● Issue, Label, MileStone で進捗管理
    ● Redmine? JIRA? 知らない子ですね
    8

    View Slide

  9. Travis CI
    Linux, macOS に対応した CI サービス
    push, pull request 時に hook で起動
    ● テストに失敗すると通知
    ● Coveralls を起動
    9

    View Slide

  10. AppVeyor
    Windows に対応した CI サービス
    push, pull request 時に hook で起動
    ● テスト,ビルドに失敗すると通知
    10

    View Slide

  11. Coveralls
    テストカバレッジを計測するサービス(16 言語対応)
    ● 最近は Codecov が優勢?
    push, pull request 時に Travis CI から起動
    11

    View Slide

  12. Code Climate
    ソースコードの品質を検査するサービス(8 言語対応)
    ● テストカバレッジを計測可能
    ● PEP8, Radon プラグインの追加を推奨
    push, pull request 時に hook で起動
    12

    View Slide

  13. Read the Docs
    Sphinx ドキュメントをホスティングするサービス
    push, pull request 時に hook で起動
    ● ドキュメントのビルドを実行
    13

    View Slide

  14. PyPI
    Python パッケージを管理するサービス
    $ python setup.py sdist bdist_wheel
    $ twine upload dist/*
    $ pip install
    14
    https://packaging.python.org/tutorials/packaging-projects/

    View Slide

  15. Anaconda Cloud
    Python パッケージや環境の諸々を管理するサービス
    $ conda skelton pypi
    $ conda build
    $ anaconda login
    $ anaconda upload \
    > ~/miniconda/conda-bld//kenchi--.tar.bz2
    $ conda install -c
    15
    https://conda.io/docs/user-guide/tutorials/build-pkgs-skeleton.html

    View Slide

  16. binder
    Git リポジトリから Jupyter サーバを構築するサービス
    https://mybinder.org/v2/gh///?filepath=
    ● Project Jupyter が 2016 年にリリース
    ● 誰でも,いつでも,どこでも,環境を再現可能
    ● 内部で repo2docker を利用
    16
    Freeman J., and Osheroff, A., "Toward publishing reproducible computation with binder," eLife, 2016.

    View Slide