(Scikit-learn) Decision tree

dcafplz·2022년 11월 13일
0

Scikit-learn

목록 보기
4/10

독립 변수의 조건에 따라 종속 변수를 분리하는 모델

  1. 기본 구현 방식

    from sklearn.tree import DecisionTreeClassifier
    
    # 객체생성
    tree = DecisionTreeClassifier()
    
    # 학습
    tree.fit(x, y)
    
    # 새로운 데이터 예측
    print(tree.predict(new_data))
  1. 데이터 셋 분할 및 결과 평가

    from sklearn.model_selection import train_test_split
    
    # 분할
    x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2,
                                                       stratify=y,
                                                       random_state=0)
    
    # 학습
    tree = DecisionTreeClassifier()
    tree.fit(x_train, y_train)
    
    # 예측
    pred_train = tree.predict(X_train)
    pred_test = tree.predict(X_test)
    
    # 평가
    acc_train = accuracy_score(y_train, pred_train)
    acc_test = accuracy_score(y_test, pred_test)
    
    print(acc_train, acc_test)
  2. 혼동 행렬을 통한 평가

    from sklearn.metrics import confusion_matrix
    
    print(confusion_matrix(y_train, pred_train))
    print(confusion_matrix(y_test, pred_test))
  3. 복잡도 제어

    • max_depth: 트리의 최대 깊이
    • max_leaf_nodes : 리프노드의 최대 개수
    • max_features: 최대 사용할 Feature의 개수
    • min_samples_leaf : leaf 노드가 되기위한 최소 샘플수
    • min_samples_split : 나누는 최소 샘플수
    • criterion: 불순도 계산방식 정의
    • min_impurity_decrease: 최소 불순도 감소량 정의

0개의 댓글