defrag Trees 괜찮은 것 같아요.

단검
이번에는 defrag Trees라는 기계 학습 라이브러리를 소개합니다.

이른바 defragTrees


RandomForest와 XGBoost 등에 대해 정밀도와 커버를 최대한 낮추지 않고 모델(규칙 감소) 기법을 간단하게 표현하는 라이브러리를 사용했다.
규칙이 적기 때문에 사람들이 볼 때 이해하기 쉬운 부분.

예를 들어 간단한 데이터(Figure 1의 a)라도 합성기 학습은 헛되이 복잡해지는 경우(Figure 1의 b)가 있다.따라서 defragTrees를 사용하면 원래와 같이 간단해진다(Figure1c).
  • 코드: https://github.com/sato9hara/defragTrees
  • 논문: https://arxiv.org/abs/1606.09066
  • 사용법

    
    from defragTrees import DefragModel
    
    Kmax = 10 # uppder-bound number of rules to be fitted
    mdl = DefragModel(modeltype='regression') # change to 'classification' if necessary.
    mdl.fit(y, X, splitter, Kmax)
    
    splitter R의 RandomForest, XGBoost, scikit-learn 데이터를 사용할 수 있습니다.

    scikit-learn으로 아이리스를 분류해서 defrag 해주세요.

    from sklearn.datasets import load_iris
    from sklearn.ensemble import GradientBoostingClassifier
    from defragTrees import DefragModel
    
    iris = load_iris()
    tree = GradientBoostingClassifier()
    tree.fit(iris.data, iris.target)
    
    splitter = DefragModel.parseSLtrees(tree)
    mdl = DefragModel(modeltype='classification')
    mdl.fit(iris.target, iris.data, splitter, 10, fittype='FAB')
    
    여기print(mdl)에서 규칙을 볼 수 있습니다.
    [Rule  1]
    y = 0 when
         x_4 < 0.800000
    
    [Rule  2]
    y = 1 when
         x_2 < 3.150000
         x_3 < 4.750000
         x_4 >= 0.800000
    
    [Rule  3]
    y = 2 when
         x_1 >= 4.950000
         x_3 >= 3.900000
         x_4 >= 1.350000
    
    [Otherwise]
    y = 0
    
    나는 간단한 규칙으로 아이리스를 분류할 수 있다는 것을 알았다.

    좋은 웹페이지 즐겨찾기