Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- rnn
- 삽입정렬
- 재귀함수
- 정렬
- 다이나믹 프로그래밍
- 이진 탐색
- 딥러닝
- 머신러닝
- 선형대수
- AI
- BFS
- 선택정렬
- 인공지능
- 큐
- 계수정렬
- 최단 경로
- 퀵정렬
- pytorch
- 스택
- RESNET
- GRU
- 캐치카페신촌점 #캐치카페 #카페대관 #대학생 #진학사 #취준생
- Machine Learning
- DFS
- LSTM
- 그리디
- 알고리즘
Archives
- Today
- Total
hyeonzzz's Tech Blog
[파머완 2장] 1. 사이킷런 소개와 특징 2. 붓꽃 품종 예측하기 본문
2. 사이킷런으로 시작하는 머신러닝 - 사이킷런 소개와 특징
1) 사이킷런(scikit-learn)
파이썬 머신러닝 라이브러리 중 가장 많이 사용되는 라이브러리이다
2. 사이킷런으로 시작하는 머신러닝 - 붓꽃 품종 예측하기
지도학습 : 정답이 주어진 데이터를 학습한 뒤 정답을 예측하는 방식
분류(Classification) : 대표적인 지도학습 방법의 하나
데이터 세트
- 학습 데이터 세트 : 학습에 이용
- 테스트 데이터 세트 : 모델의 예측 성능을 평가
하이퍼 파라미터 : 최적의 학습을 위해 직접 입력하는 파라미터들
<붓꽃 데이터 세트를 이용한 프로세스>
1. 데이터 세트 분리 - 데이터를 학습 데이터와 테스트 데이터로 분리
2. 모델 학습 - 학습 데이터릴 기반으로 ML 알고리즘을 적용해 모델을 학습시킴
3. 예측 수행 - 학습된 ML 모델을 이용해 테스트 데이터의 분류를 예측
4. 평가 - 예측된 결괏값과 테스트 데이터의 실제 결괏값을 비교해 ML 모델 성능 평가
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
- sklearn.datasets : 사이킷런에서 자체적으로 제공하는 데이터 세트를 생성하는 모듈의 모임
- sklearn.tree : 트리 기반 ML 알고리즘을 구현한 클래스의 모임
- sklearn.model_selection : 학습 데이터와 검증 데이터, 예측 데이터로 데이터를 분리 / 최적의 하이퍼 파라미터로 평가하기 위한 다양한 모듈의 모임
- load_iris( ) : 붓꽃 데이터 세트 생성
- DecisionTreeClassifier : Decision Tree 알고리즘을 구현
- train_test_split( ) : 데이터 세트를 학습 데이터와 테스트 데이터로 분리
1) 붓꽃 데이터 세트 로딩, DataFrame으로 변환
import pandas as pd
# 붓꽃 데이터 세트를 로딩합니다.
iris = load_iris()
# iris.data는 Iris 데이터 세트에서 피처(feature)만으로 된 데이터를 numpy로 가지고 있습니다.
iris_data = iris.data
# iris.target은 붓꽃 데이터 세트에서 레이블(결정 값) 데이터를 numpy로 가지고 있습니다.
iris_label = iris.target
print('iris target값:', iris_label)
print('iris target명:', iris.target_names)
# 붓꽃 데이터 세트를 자세히 보기 위해 DataFrame으로 변환합니다.
iris_df = pd.DataFrame(data=iris_data, columns=iris.feature_names)
iris_df['label'] = iris.target
iris_df.head(3)
2) 학습용 데이터와 테스트용 데이터 분리
train_test_split( )
X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_label,
test_size=0.2, random_state=11)
- iris_data : 피처 데이터 세트
- iris_label : Label 데이터 세트
- test_size = 0.2 : 테스트 데이터 20%, 학습 데이터 80%
- random_state : 같은 학습/테스트 용 데이터 세트를 생성하기 위해 주어지는 난수 발생 값
3) DecisionTreeClassifier(의사 결정 트리 클래스) 객체로 생성 + fit( ) 이용한 학습 수행
# DecisionTreeClassifier 객체 생성
dt_clf = DecisionTreeClassifier(random_state=11)
# 학습 수행
dt_clf.fit(X_train, y_train)
- random_state = 11 역시 동일한 학습/예측 결과를 출력하기 위함이다
4) predict( ) 이용한 예측 수행
# 학습이 완료된 DecisionTreeClassifier 객체에서 테스트 데이터 세트로 예측 수행.
pred = dt_clf.predict(X_test)
- 예측은 학습 데이터가 아닌 다른 데이터를 이용해야 한다
5) accuracy_score( ) 이용한 예측 성능 평가
from sklearn.metrics import accuracy_score
print('예측 정확도: {0:.4f}'.format(accuracy_score(y_test,pred)))
예측 정확도: 0.9333
- 정확도 : 예측 결과가 실제 레이블 값과 얼마나 정확하게 맞는지
- 첫 번째 파라미터 : 실제 레이블 데이터 세트
- 두 번째 파라미터 : 예측 레이블 데이터 세트
'Machine Learning' 카테고리의 다른 글
[파머완 2장] 4. Model Selection 모듈 소개 (1) | 2024.01.09 |
---|---|
[파머완 2장] 3. 사이킷런의 기반 프레임워크 익히기 (0) | 2024.01.04 |
[파머완 1장] 4. 판다스 (Pandas) (1) | 2024.01.04 |
[파머완 1장] 3. 넘파이 (NumPy) (0) | 2024.01.02 |
[파머완 1장] 1. 머신러닝의 개념 (0) | 2024.01.02 |