머신러닝

[머신러닝] 데이터 분석의 과정 - 머신러닝 모델의 구축

서노리 2022. 4. 22. 00:51
반응형

이전 포스팅 데이터 분석의 과정 - 개요에 이어지는 내용입니다. 

5. 머신러닝 모델의 구축

사이킷런의 KNeighborsClassifier 클래스를 불러와 머신러닝 모델 객체를 생성한다.

KNeighborsClassifier 클래스 동작원리에 대한 포스팅 : K-최근접 이웃 알고리즘(K-NN)

각 머신러닝 알고리즘에 해당하는 hyper parameter 제어가 필수적이다.

from sklearn.neighbors import KNeighborsClassifier

model = KNeighborsClassifier(n_neighbors=11, n_jobs=-1)

 

※ 머신러닝 모델 객체 학습

- fit 메소드를 사용

- 사이킷런의 모든 머신러닝 클래스는 fit 메소드의 매개변수로 X, y를 입력 받음

- X는 반드시 2차원 데이터 셋 ex) pandas의 DataFrame, 파이썬의 2차원 list

- y는 반드시 1차원 데이터 셋 ex)pandas의 Series, 파이썬의 1차원 list

model.fit(X_train, y_train)

 

※ 학습이 완료된 머신러닝 모델 객체 평가

- score 메소드 사용

- 입력된 X를 사용해 예측을 수행하고 예측된 값을 입력된 y와 비교하여 평가 결과를 반환

 

※ score 메소드

- 머신러닝 클래스가 분류형인경우 score는 정확도를 반환

(정확도 = 전체 데이터에서 정답의 비율)

- 머신러닝 클래스가 회귀형인경우 score는 결정계수(R2)를 반환

(결정계수 = 음의 값부터 1 사이의 값을 가지며 1인 경우 100% 예측 일치)

score = model.score(X_train, y_train)
print(f'Train = {score}')

score = model.score(X_test, y_test)
print(f'Test = {score}')

 

※ 학습된 머신러닝 모델 사용하여 예측 수행

- predict 메소드 사용

- 예측할 데이터 X는 반드시 2차원으로 입력되어야 함

pred = model.predict(X_train[:2])
print(pred)         # 예측값 : [0 1]

 

만약 학습된 머신러닝 모델이 분류형인 경우 확률 값으로 예측할 수 있다.

- predict_proba 메소드 사용

proba = model.predict_proba(X_test)
print(proba)

# [[0. 1.]
#  [0. 1.]]

예측 확률의 기준선을 도입하여 일정 확률 이상으로 예측하는 경우에만 수용하는 방법을 사용해야 한다.


 

반응형