Git Product home page Git Product logo

decisiontreetool's Introduction

Decision Tree Tool

Overview

このツールは決定木分析の実行と可視化を行うためのツールです. 現在は回帰決定木分析のみに対応しています.

Requirement

python3

  • numpy

    $ pip install numpy
    
  • pandas

    $ pip3 install pandas
    
  • scikit-learn

    $ pip3 install scikit-learn
    

Instllation

$ git clone https://github.com/i10bucchi/DecisionTreeTool.git

Usage

Snypet

$ python3 tree.py [-p] [-o] [-c] [-d] [-p]

Command

  • [-h --help] コマンドオプションと使用例を表示します.

  • [-p --path_csv] 学習, テストデータとして使用するcsvファイルのパスを渡します. このオプションは必ず指定しなければなりません.

  • [-o --objective_variable] 目的変数を指定します. csvファイルのカラム名と同じものを指定する必要があります. このオプションは必ず指定しなければなりません.

  • [-c --categolical_variable] ダミー変数化を行いたい変数を指定します. 指定されない場合は自動でダミー変数化されます. 詳しくはpandas.get_dummyの使用を確認ください. 複数の変数を指定する場合は","を使用して繋げてください. csvファイルのカラム名と同じものを指定する必要があります.

  • [-d --depth] 決定木分析の深さを指定します. デフォルトは5となっています.

  • [-p --print] 分析結果の表示をブラウザで行うかhtmlファイルの出力で行うか指定します. このオプションを指定した場合, htmlファイルを標準出力で出力します. > などを使用して適宜htmlファイルへの流し込みをおこなってください.

Example

以下のコマンドはtree.pyがあるディレクトリ内での実行を想定しています.

$ python3 tree.py -p ./data.csv -o 変数名1 -c 変数名2,変数名3 -d 7
$ python3 tree.py -p ./data.csv -o 変数名2 -p > result.html

Data

csvファイルは1列目をインデックスとしてプログラムに読み込まれます. よって以下のように整形してください.

data.csv

index 変数名1 変数名2 変数名3 ...
... ... ... ... ...

View

決定木分析結果の見方を説明します. -pオプションを指定してhtmlファイルを作成した方はブラウザにてファイルを開いてください.

決定木

Tree

  • ノードの持つ条件はノード上部に表示されます.

  • ノードの色はノードの持つデータの平均値を表します. 高いほど暗く, 低いほど明るくなるように設定されています. ヒートマップと同様の見方となります.

  • 各ノードをクリックすることで, 対象のノードが持つデータのヒストグラムが確認可能です.

  • 各ノードに対してマウスオーバーすることでノードの以下の情報が表示されます.

    • サンプル数(sample)
    • 左子ノードへの分割サンプル数(sample_l)
    • 右子ノードへの分割サンプル数(sample_r)
    • 平均値(mu)
  • ノードをつなぐ線(リンク)は色によって以下の意味を持ちます.

    • 灰色: 未収束
    • 緑色: 収束しており, その結果が信頼できる
    • 赤色: 収束しているが, その結果が信頼できない

最優推定モデル(未実装)

ML

  • 決定木の下にある線グラフは収束し信頼できるノードのデータからガウス分布の最優推定を実行し得たガウス分布です.
  • 各線をクリックすることで対象のノード情報を表示することができます.

decisiontreetool's People

Contributors

i10bucchi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.