반응형
Index
개요
- 머신러닝은 크게 지도학습(Supervised) 과 비지도학습(Unspervised) 으로 구분된다. 지도학습은 Label(=Target) 즉, 정답이 있는 데이터를 학습하는 과정이고, 비지도 학습은 반대로 Label 이 없는 데이터로 학습/예측을 진행하는 과정
- 지도학습은 Target 데이터의 형식에 따라, Categorical 데이터를 학습할때는 Classification(분류) / Continuous 데이터를 학습할때는 Regression(회귀) 문제로 구분한다. (분류이든, 회귀이든 학습모델을 Estimator 라고 부른다)
- 머신러닝의 구현은 주로 Python 의 Scikit Learn (sklearn) 라이브러리를 활용한다.
- 머신러닝에 사용되는 데이터는 크게 두가지 ①예측대상(Target=Label) 과 ②예측변수(Feature=Factor) 로 구분한다
- 이렇게 구성된 데이터는 학습/검증/테스트 목적으로 분리하여 사용된다.
- 학습 데이터는 가중치,편향등 네트워크의 파라미터를 조절하고, 검증 데이터는 learning rate, 배치크기, 노드 및 레이어 개수와 같은 하이퍼파라미터를 조절하는데 사용한다. 최종 테스트 데이터는 성능 보고에 사용한다.
데이터셋의 (학습/테스트)분리 , 학습/예측/평가 방법
- 아래와 같이 model_selection 모듈의 train_test_split 클래스를 이용해 DataFrame 형식의 데이터를 train, test 용도로 분리한다. train_test_split 의 파라미터를 통해 test-train 분리 비율을 정할 수 있다.
from sklearn.model_selection import train_test_split
iris = load_iris()
iris_df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
iris_df['label']=iris.target
x_train, x_test, y_train, y_test = train_test_split(iris_data, iris_label,
test_size = 0.2, random_state=11)
- 데이터셋의 분리 이후에는, train 데이터를 fit()함수를 통해 학습한뒤 test 데이터를 predict() 함수를 통해 예측한다. 예측이후 평가는 아래 예시에서는 가장기본적으로 사용되는 metrics 모듈의 accuracy_score 로 단순 정확도를 지표로 평가했다.
# 의사결정트리(Decision Tree)생성 및 학습
dt_clf = DecisionTreeClassifier(random_state=11) #random 변수는 수행마다 동일결과 출력하기 위함
dt_clf.fit(x_train,y_train) # 여기까지하면 학습완료.
#예측진행
pred = dt_clf.predict(x_test) #test 셋의 피쳐값 넣으면 예측결과 레이블 값 반환
#성능평가
from sklearn.metrics import accuracy_score
print('예측 정확도 : ' ,accuracy_score(y_test,pred)) #실제 레이블데이터, 예측 레이블데이터
print('예측 정확도: {0:.4f}'.format(accuracy_score(y_test,pred)))
반응형
'Study > ML' 카테고리의 다른 글
6. 앙상블(Ensemble) - 보팅(Voting),배깅(Bagging) (0) | 2023.05.28 |
---|---|
5. 분류(Classification) - Decision Tree (0) | 2023.05.27 |
4. 성능 평가 (Evaluation) - Classification 평가방법 (0) | 2023.05.27 |
3. 데이터의 전처리 (Pre-processing) (1) | 2023.05.27 |
2. 교차검증 (Cross-Validation) (1) | 2023.05.26 |
댓글