728x90
지도학습
7

나이브 베이즈(Naive Bayes)

나이브 베이즈 알고리즘은 대표적인 확률 기반 머신러닝 분류 알고리즘이다. 나이브 베이즈는 데이터를 독립적인 사건으로 보고 이 사건들을 베이즈 이론에 대입시켜 가장 높은 확률의 레이블을 분류해낸다. 베이즈 이론은 다음과 같은 공식으로 표현된다. P(A|B) : 어떤 사건 B가 일어났을 때 사건 A가 일어날 확률 P(B|A) : 어떤 사건 A가 일어났을 때 사건 B가 일어날 확률 P(A) : 어떤 사건 A가 일어날 확률 P(A|B)와 같이 어떤 사건 B가 일어났을 때 사건 A가 일어날 확률을 조건부 확률이라고 한다. 조건부 확률의 공식은 다음과 같다. 머신러닝에서의 나이브 베이즈 공식 P(레이블 | 데이터 특징) = P(데이터 특징 | 레이블) * P(레이블) / P(데이터 특징) 어떤 데이터가 있을 때 그..

[실습]의사결정 트리(Decision Tree)

의사결정 트리를 사용하여 데이터 분류를 수행할 것이다. 데이터는 서울의 시군구, 읍면동을 사용하였고 강서, 강동, 강북, 강남으로 분류하는 작업을 실습해보았다. 데이터 불러오기 서울의 시군구 데이터는 시군구 데이터, 읍면동 데이터는 읍면동 데이터에서 가져올 수 있다. 2021.07.16부터 제공되지 않는다고 한다. import pandas as pd train_df = pd.read_csv('./drive/MyDrive/district_dict_list.csv') test_df = pd.read_csv('./drive/MyDrive/dong_dict_list.csv') train_df.head() [출력] district_dict_list.csv, dong_dict_list.csv 파일은 미리 정제(cl..

의사결정 트리(decision tree)

의사결정 트리는 데이터 분류 및 회귀에 사용되는 지도학습 알고리즘이다. 간단하게 의사결정 트리가 무엇인지 비유하자면 스무고개 놀이와 비슷하다고 말할 수 있다. 즉, 여러 질문을 하여 답을 도출해내는 방법이라고도 할 수 있다. 다음과 같은 데이터를 예시로 설명을 이어가겠다. 이름 군대를 다녀왔는가 긴 생머리인가 성별 김덕수 네 아니요 남자 이쁜이 아니요 아니요 여자 박장군 네 아니요 남자 최빛나 아니요 네 여자 최강민 네 아니요 남자 지화자 아니요 아니요 여자 위 데이터를 바탕으로 각 사람이 남자인지 여자인지를 구별하는 질문을 만든다고 해보자. 먼저 군대를 다녀왔는지를 먼저 물어보면 한 번에 남자와 여자가 분류된다. 하지만 긴 생머리인지 먼저 물어보게되면 정확하게 남자와 여자를 구분할 수 없으므로 이후 군..

[실습]SVM(Support Vector Machine)

먼저 csv파일을 불러오고 train 데이터와 test 데이터를 나눠주겠다. 데이터 불러오기 import pandas as pd df = pd.read_csv("./drive/MyDrive/basketball_stat.csv") #구글 드라이브 내에 있는 파일을 불러옴 df.head() 데이터 분리 from sklearn.model_selection import train_test_split #80%는 학습 데이터, 20%는 테스트 데이터로 분리 train, test = train_test_split(df, test_size=0.2) #학습 데이터, 테스트 데이터 개수 확인 print(train.shape[0]) print(test.shape[0]) 최적의 SVM 파라미터 찾기 이제 불러온 데이터를 RB..

SVM(Support Vector Machine)

우선 SVM에 대해서 간략하게 설명하자면 SVM은 '마진'이라는 값을 최대로 하는 결정 경계선을 찾는 것을 목표로하는 분류 알고리즘이다. 결정 경계선이라는 것은 예를 들어서 한강을 기준으로 강북과 강남으로 나뉘어진다고 했을 때 한강이 결정 경계선이 되는 것이다. 이제 다음과 같은 용어들의 개념을 하나씩 알아보겠다. 서포트 벡터(support vector) 마진(margin) 비용(cost) 커널 트릭(kernel trick) 서포트 벡터 서포트 벡터는 결정 경계선과 가장 가까이 맞닿은 데이터 포인트를 의미한다. 결정 경계선하고 가장 가까운 데이터의 위치라고도 할 수 있겠다. 마진 서포트 벡터와 결정 경계 사이의 거리를 마진이라고 한다. 위에서도 언급했듯이 이 '마진'을 최대로..

[실습] k-최근접 이웃(k-Nearest Neighbor, kNN)

[https://github.com/wikibook/machine-learning]에서 다운로드 받은 농구선수에 대한 데이터를 사용하여 kNN 알고리즘을 적용해보는 실습을 하였다. 목표는 임의의 농구선수의 포지션을 예측하는 것이다. 데이터 획득 import pandas as pd df = pd.read_csv(./data/basketball_stat.csv) df.head() colab에서 실행하였고 파일을 드라이브에 넣었기 때문에 경로를 "./data/basketball_stat.csv"로 지정해준 것이다. [출력] 각 데이터 속성 값의 의미는 다음과 같다. Player = 선수 이름 Pos = 포지션 3P = 한 경기 평균 3점슛 성공 횟수 2P = 한 경기 평균 2점슛 성공 횟수 TRB = 한 경기..

지도학습과 비지도학습

지도학습 지도학습(supervised learning)이란 정답을 알려주면서 진행되는 학습이다. 출처: [https://opentutorials.org/module/4916/28897] 위처럼 학습 데이터와 함께 정답을 항상 제공해줘야 한다. 여기서 정답을 "레이블"이라고 한다. 이외에도 실제값, 타깃, 클래스, y값 등 많은 단어가 정답과 같은 의미로 쓰인다. 그리고 머신러닝 모델을 통해 예측된 값은 예측값, 분류값, y hat 등으로 많이 표현한다. 지도학습은 학습할 데이터와 레이블을 제공하기 때문에 모델의 성능을 손쉽게 평가할 수 있지만 데이터마다 레이블을 달기 위해 시간을 많이 투자해야한다. 대표적으로 분류(classification)와 회귀(regression)이 있는데 간단하게 설명하면 분류는..

728x90