본문 바로가기

classifier5

머신러닝 분류 - 사이킷런을 활용한 나이브 베이즈 분류 사이킷런을 활용한 나이브 베이즈 분류 이전 실습에서는 메일 내에서 스팸 및 정상 메일을 분류할 때, X = ‘확인’ 키워드 유무(O or X) Y = 메일 결과 (스팸 or 정상) 로, 입력값 X의 개수가 1개였습니다. 하지만, 만약 이메일에서 ‘확인’ 키워드 말고도 ‘.exe 첨부파일’을 보냈는지, 안보냈는지 혹은 메일 제목에 대괄호가 쓰였는지/안쓰였는지 등의 다양한 입력값이 추가되어 스팸메일을 분류한다면, 문제가 좀 더 복잡해 질 것 같습니다. 이러한 복잡한 문제 해결을 위하여 사이킷런에는 나이브 베이즈 분류 모델을 구현하여, 모듈 호출을 통해 간단히 나이브 베이즈 분류를 사용할 수 있도록 하였습니다. 이번 실습에서는 Wine 데이터를 활용하여 나이브 베이즈 분류 방법 중 하나인 가우시안 나이브 베이.. 2022. 5. 24.
머신러닝 분류 - 나이브 베이즈 분류 베이즈 정리로 나이브 베이즈 분류 구현하기 나이브 베이즈 분류는 데이터의 확률적 속성을 가지고 클래스를 판단하는, 꽤 높은 성능을 가지는 머신러닝 알고리즘입니다. 이를 이해하기 위해서 Bayes’ Theorem에 친숙해 질 필요가 있습니다. 간단한 나이브 베이즈 분류 구현을 통해 베이즈 정리에 대해 이해해보도록 하겠습니다. data set 내에서 X와 Y의 빈도수를 활용하여 연산에 필요한 각각의 확률값을 계산 할 수 있습니다. 엘리스의 이메일을 한 번 들여다 보면서 Bayes’ theorem을 이해해 볼까요? 엘리스의 이메일은 다음과 같은 텍스트 목록을 가지고 있습니다. 타입텍스트 Spam “(광고) XXX 지금 확인 해보세요.” 첨부파일 : exe Ham “[긴급]엘리스님, 확인 부탁드립니다.” 첨부파.. 2022. 5. 24.
머신러닝 Decision tree - 앙상블(Ensemble) 기법 - Voting 앙상블(Ensemble) 기법 - Voting 이번 실습에서는 다양한 앙상블 기법 중 Voting을 사용한 분류기(VotingClassifier)를 구현하는 방법을 알아보도록 하겠습니다. Voting Voting은 의미 그대로 투표를 통해 값을 결정하는 것입니다. Voting의 종류에는 Hard voting과 Soft voting이 있습니다. Hard Voting : 다수의 분류기가 예측한 값을 최종 값으로 선택 Soft Voting : 각 레이블 별로 예측 확률을 낸 후 평균을 내어 최종 값으로 선택 일반적으로 Soft voting이 성능이 더 좋아 더 많이 사용됩니다. VotingClassifier를 위한 사이킷런 함수/라이브러리 from sklearn.ensemble import VotingClas.. 2022. 5. 24.
머신러닝 의사결정 나무(DecisionTree Classifier) - 분류 의사결정 나무(DecisionTree Classifier) - 분류 이번 실습에서는 분류 문제 해결을 위해 Iris 데이터를 사용합니다. Iris 데이터는 꽃받침 길이, 꽃받침 넓이, 꽃잎 길이, 꽃잎 넓이 네 가지 변수와 세 종류의 붓꽃 클래스로 구성되어 있습니다. iris 데이터에 대해 분류 의사결정 나무 모델을 사용하여 예측 문제를 수행해보도록 하겠습니다. 분류를 위한 의사결정 나무 예시 사진 분류 의사결정 나무를 위한 사이킷런 함수/라이브러리 from sklearn.tree import DecisionTreeClassifier : 사이킷런에 구현되어 있는 분류 의사결정 나무 모델을 불러옵니다. DecisionTreeClassifier(): 분류를 위한 의사결정 나무 모델을 정의합니다. [Model.. 2022. 5. 24.
머신러닝 - 이진트리 분류기 만들기 간단한 이진트리 분류기 만들기 이번 실습에서는 연예인들의 직업, 성별, 키 데이터를 기반으로 간단한 이진트리 분류기를 구현한 후, 이를 통해 그들의 이름을 구분해보겠습니다. job, height, sex : 분류를 위한 변수 name : 분류 클래스 위의 그림과 같은 트리구조를 만들어 데이터를 분류해보겠습니다. import numpy as np import pandas as pd # 직업, 키, 성별로 이름을 구분하는 간단한 이진트리 분류기를 만들어보겠습니다. name = ['하하', '김범수', '다현', '아이유', '최민식', '김혜수'] job = ['가수', '가수' , '가수', '가수' , '배우' , '배우'] height = [171, 182, 158, 160, 177, 170] sex .. 2022. 5. 24.