인공지능, 머신러닝, 딥러닝
- 인공지능: 인간의 뇌를 모방하는 모든 프로그램
- 머신러닝: 데이터를 기반으로 학습해 무언가를 예측하거나, 데이터 자체의 어떤 특성을 찾아내는 프로그램
- 딥러닝: 머신러닝 알고리즘 중 하나로, 인공 신경망에서 진화한 형태. 주로 이미지, 비디오, 자연어 분석에 쓰임
머신러닝(Machine Learning; ML)
1) 머신러닝 알고리즘으로 입력된 데이터(입력값과 정답값) 간의 관계를 밝혀내서 2) 그 관계를 새로운 프로그램(모델)으로 만들어 3) 새로운 데이터가 주어졌을 대 결과를 예측하는 일련의 과정
- 머신러닝 알고리즘에 입력값과 해당 정답값에 대한 결과값을 입력해 주면, 입력값과 정답값 간의 관계를 찾아 머신러닝 알고리즘이 새로운 프로그램(모델)을 만듦
- 그 후 새로운 프로그램에 데이터를 입력해서 값을 예측
딥러닝(Deep Learning)
인공 신경망을 기반으로 한 특수한 머신러닝 기법으로, 빅데이터 기술과 하드웨어 발전, 새로운 알고리즘 등장으로 각광받게 됨
- 주로, 자연어 처리나 이미지, 비디오 분석 같은 목적으로 사용
- 입력층과 출력층 사이 은닉층(하나 이상의 수많은 은닉층이 존재)을 두어 인간의 신경망처럼 작동
지도 학습, 비지도 학습, 강화 학습
지도 학습(supervised learning)
- 입력값과 그에 대한 정답을 사용해 이 둘의 관계를 분석하고 예측 모델을 만들어냄
- 자동차의 특성(연식, 주행거리, 배기량 등)과 가격을 입력해 중고차 가격을 예측하는 모델을 만들어, 해당 모델로 자동차의 특성이 입력되었을 때 가격을 예측하는 문제 풀이 과정
- 회귀(regression): 연속된 값을 측정하는 문제(ex. 매출액, 부동산 가격 등)
- 분류(classification): 범주형 값을 측정하는 문제(ex. 예/아니요)
비지도 학습(unsupervised learning)
- 정답이 없는 데이터만으로 학습하는 방법
- 군집화: 비슷한 데이터끼리 묶어주는 방법 (ex. 소비 패턴이 유사한 카드 고객 묶기)
- 변환: 목적에 따라 데이터를 다른 형태로 변환하는 방법
- 연관: 장바구니 분석이라고도 하며, 유사한 구매 목록을 가진 고객끼리 비교하여, 서로의 장바구니에 담기지 않은 새로운 아이템을 추천을 하는 목적 등으로 사용
강화 학습(reinforcement learning)
- 행동에 대한 보상/처벌을 기반으로 하는 방법
- 보상을 받는 행동을 유도하고, 처벌을 받는 행동을 피하게끔 함
머신러닝 프로세스
- 데이터 수집
- 데이터 전처리
- 모델 학습
- 모델 평가
- 모델 배포
피처 엔지니어링 기법
기법 | 설명 | 유용한 곳 |
결측치 처리 | 데이터가 누락된 부분을 평균, 특정값 등으로 채우는 기법 | 데이터 누락으로 인해 많은 데이터를 사용하지 못할 때 |
아웃라이어 처리 | 다른 데이터 무리들과는 크게 벗어나는 아웃라이어를 제거하거나 값을 조정해 튀는 데이터가 없도록 하는 기법 | 선형 모델과 같이 아웃라이어의 영향에 민감한 모델 |
바이닝(Bining) | 연속된 수치로 된 데이터를 특정 구간으로 묶는 기법, 예를 들어 나이를 10대, 20대, 30대 등으로 묶는 경우 | 오버피팅으로 인해 모델 성능이 문제될 때 |
로그 변환 | 데이터에 로그를 씌워 왜곡된 데이터를 정규화하는 방법 | 데이터 형태가 왜곡되어 변환이 필요한 경우, 특히 선형 모델에 유용 |
더미 변수(one-hot encoding) | 문자로 된 범주형 데이터를 0과 1을 이용하는 숫자형 데이터로 변경하는 기법 | 범주형 데이터 |
그룹핑 | 고윳값이 너무 많은 범주형 데이터를 특정 그룹으로 묶는 기법. 예를 들어 국가명을 유럽, 아시아, 북아메리카 등으로 그룹화 | 범주형 데이터에서 고윳값이 너무 많아 더미 변수를 쓰기 곤란할 때 |
스케일링 | 각 변수의 데이터 범위(스케일)가 다를 때, 이를 일정하게 맞춰주는 기법 | 거리 기반으로 작동하는 모델(KNN, K-means clustering) |
날짜 추출 | 날짜 데이터에서 연/월/일 혹은 요일 등을 추출해 필요한 정보만 사용하는 기법 | 날짜 데이터의 특정 속성이 중요한 역할을 할 때 |
텍스트 분할 | 텍스트로 된 변수에서 특정 부분의 단어를 빼오거나, 특정 기호가 들어간 부분을 기준으로 나누어, 필요한 항목만을 추출하는 기법 | 텍스트 변수에 불필요한 정보가 많이 뒤섞여 있을 때 |
새로운 변수 추출 | 주어진 변수들을 사용해 새로운 변수를 계산해내는 기법. 단순하게는 변수 간의 합과 곱 등을 활용할 수도 있음. 예를 들어 두 지점에 대한 위도/경도가 있는 경우 두 점 간의 거리를 계산하는 등 경우에 따라 다양하게 활용할 수 있음 | 데이터에 대한 백그라운드 지식이 있을 때 |
참고: 데싸노트의 실전에서 통하는 머신러닝
반응형