• 티스토리 홈
  • 프로필사진
    SiJun-Park
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
SiJun-Park
  • 프로필사진
    SiJun-Park
    • 분류 전체보기 (121)
      • Unity (80)
        • RPG Project (39)
        • FPS Project (30)
        • 기타 - 개발 (11)
      • 개발 (35)
        • 임베디드 소프트웨어 (7)
        • 컴파일러 (6)
        • 기계학습 (8)
        • 보안 (8)
        • 그래픽스 (2)
        • 그 외 (4)
      • 코딩문제 (5)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • Decision Tree, Gini index
        2024년 10월 01일
        • SiJun-Park
        • 작성자
        • 2024.10.01.:00

        -Decision Tree: 분류 규칙을 이용하여 데이터를 분류, 회귀하는 지도 학습 모델 중 하나이다.

        즉 의사 결정 규칙을 나무 구조로 나타내어 전체 자료를 몇몇 개의 소집단으로 분류하거나 예측을 수

        행하는 분석방법이다. 목표 변수가 이산형인 경우의 분류나무와 목표변수가 연속형인 경우 회귀나무

        로 구분된다. 장점으로는 결과를 해석하고 이해하기가 쉽고, 자료를 가공할 필요가 거의 없으며 수치

        자료와 범주 자료 모두에 적용이 될 수 있고 안정적이다. 대규모의 데이터 set에도 잘 동작을 하지만

        단점으로는 각 노드에서의 완전한 최적값을 알아낸다고는 보장을 하지 못한다. 훈련 데이터를 제대로

        일반화 하지 못하면 복잡한 트리를 만들 수 있다.

        ​

        -Gini index: 불순도를 측정하는 지표로서, 데이터의 통계적 분산 정도를 정량화해서 표현한 값이다.

        이 Gini index값이 높을수록 데이터의 분산이 되어있음을 나타낸다.

        가장 먼저 tictactoe.csv를 불러오면서 마지막 칼럼을 index로 가져왔습니다.

        그 후 안에 정보들이 o, x, b, positive, negative가 되어있어 정수로 바꾸어주었습니다.

        그 결과로는 b = 0, o = 1, x = 2, positive = 1, negative = 0 이 되었습니다.

        라이브러리를 사용하지 않고 순수 작성

        각각의 x, o, b를 돌면서 Label을 참고해 positive인 개수를 세주었습니다.

        그다음 그 수를 세어둔 걸로 b가 얼마나 뽑히는지, x가 얼마나 뽑히는지, o가 얼마나 뽑히는지를 하였

        습니다

        이 와 같은 공식을 이용하여 B 같은 경우를 구해본다면 B/전체 * ( 1 B/전체 ) + (B가 아닌 전체/ 전체) *(1 B가 아닌 전체/전체) 를 하여서 B가 전체 중 얼마나 뽑히는지를 계산을 하였습니다.

        돌려준 결과는 이렇게 나왔고 여기서 가장 0에 가까운 것은 middlemiddlesquare를 B로 시작할 경우 지니가 0에 수렴한다는 걸 발견하였습니다.

        그러면 이 특징을 루트 노드로 정해서 positive인 경우를 세주기 위해

        이제 샘플에 대한 positive와 negative 수를 카운트를 한 뒤 결론을 도출 하였습니다.

        테스트 전체 케이스에서 나눠준 후 *100을 해준 결과 68.42105%이 나왔습니다.

        ​

        사용을 할려고한 알고리즘은 cart 알고리즘을 이용하여서 하려고 하였습니다.

        Cart 알고리즘은 ID3 알고리즘에 비해 덜 복잡한 알고리즘입니다. 지니 불순도를 이용하여 사용하는

        방법이며, 어떤 그룹의 데이터를 두개로 쪼갤 때 불순도를 최대로 낮추는 속성과 해당 속성의 값을

        찾아 트리를 만들어 결정 트리를 만드는 방식입니다.

        저 같은 경우는 B와 O, X , O와 B, X , X와 O, B로 나누어 계산을 하였었습니다.

        ​

        하지만 구해진 확률이 뭔가 정답과 다른 것 같어, 얼마나 틀렸을까 궁금하여 싶어

        sklearn.tree를 이용해서 예측을 해본 결과는

        이렇게 68%가 나오는 걸 확인이 가능했습니다

         

        '개발 > 기계학습' 카테고리의 다른 글

        Perceptron AND  (0) 2024.10.01
        Clustering  (0) 2024.10.01
        Support vector machine  (0) 2024.10.01
        K-NN Classifier  (0) 2024.09.30
        Ensemble Model  (0) 2024.09.30
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바