Machine learning (ML) 머신러닝을 활용하기에 좋은 분야에 대하여 알아보겠습니다.
분류(classification)
정해진 카테고리 중 어디에 속하는지 알아내는 경우
종류
KNN(k-nearest neighbor)
k-nearest neighbor는 데이터를 분류하고 새로운 데이터 포인트의 카테고리를 결정할 때 K 개의 가장 가까운 포인트를 선점하고 그중 가장 많이 선택된 포인트의 카테고리로 이 새로운 데이터를 분류하는 방법이다.
중요 개념
좌표와 같이 데이터의 위치를 특정할 수 있게 변환
🤔 왜 .fit() 한 뒤에 train, test data를 .transform()할까? 결론은 .fit()을 통해 학습데이터(train)의 경향을 파악 및 저장하고 이 경향을 train, test data를 적용해 조정해주기 위함입니다.
minmaxScaler를 대표로 .fit()한 결과를 출력해보면 .fit()이 어떤 역할을 하는지 알 수 없습니다. 그냥 MinMaxScaler()라는 객체가 할당된 것만 알 수 있습니다.
공식문서를 살펴보면
fit(X, y=None)
Compute the minimum and maximum to be used for later scaling.
* StandardScale()의 경우 Compute the mean and std to be used for later scaling.
데이터 스케일링(Data Scaling) 이란? 데이터의 값의 범위를 조정하는 것
🤔 왜 데이터 스케일링을 하는가? 데이터의 경향, feature의 영향, 상관관계 등 데이터를 분석하는데 활용할 수 있으며, 인공지능 개발 중 학습단계에서 여러 feature의 영향도를 비슷한 수준으로 맞추기 위해 범위를 조정.
아래 그림을 보면서 이해해보겠습니다.
과제 여러 feature(성별, 나이, 몸무게, 자산현황)의 특성을 보고 Label을 예측하는 모델을 만든다고 가정 문제점 값의 범위를 보면 성별 0, 1 나이 0~100, 몸무게 0~120, 자산현황 0~700,000,000, Label은 0~800,000,000의 값을 갖는다고 가정한다면,
What is ‘train_test_split()’? AI 모델링을 위해 X_train, X_test, y_train, y_test로 나누는 작업은 필수적입니다. 저는 train과 test를 나누는 코드를 직접 짜서 사용했었는데 scikit learn에서 제공되는 함수가 있었습니다. “train_test_split()"이를 알아보겠습니다.
직접 사용되는 모습을 보며 이해해보겠습니다.
1 2 3 4 import numpy as np from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(data, label, test_size=0.3, random_state=29)
train_test_split() 함수안에 사용되는 인자에 대하여 하나씩 알아보겠습니다.