<사이킷런을 이용 붓꽃(Iris) 데이터 품종 예측하기>
-필요한 사이킷런 필요 모듈 로딩
from sklearn.datasets import load_iris #데이터 로드 모듈.
from sklearn.tree import DecisionTreeClassifier #의사결정 나무 분류기.
from sklearn.model_selection import train_test_split #학습 , 테스트 분리기.
import pandas as pd
1. 붓꽃, 데이터 로딩.
iris = load_iris() # 아이리스 데이터 로딩.
# iris.data는
iris_data = iris.data
iris_data
2. iris.target 변수 label로
iris_label = iris.target
iris_label
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])
3.iris.target name을 출력해 보겠습니다.
print(iris.target_names)
['setosa' 'versicolor' 'virginica'] # setosa = 0 versicolor = 0 , virginica = 0
4.붓꽃 데이터를 한 눈에 보기 쉽게 DataFrame으로 바꿔줍니다.
iris_df = pd.DataFrame(data = iris_data, columns = iris.feature_names)
iris_df['label'] = iris.target #iris_data #데이타프레임에 'label'칼럼을 추가
5. 학습데이터와 테스트 데이터 세트로 분리
X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_label,
test_size=0.2, random_state=11)
6. 학습 데이터 세트로 학습(train)수행
# DecisionTreeClassifier 객체 생성
dt_clf = DecisionTreeClassifier(random_state=11)
# 학습 수행
dt_clf.fit(X_train, y_train)
DecisionTreeClassifier(random_state=11) -학습이 완료됨-
7
7.테스트 데이터 세트로 예측 predict 수행
pred = dt_clf.predict(X_test)
#r pred 변수에 X_text를 넣어 predict을 진행한다.
학습이 완료된 객체에서 -------------> 테스트 데이터 세트로 예측 수행
8. 평가.
from sklearn.metrics import accuracy_score #예측 정확도 평가하는 모듈.
print('예측 정확도: {0:.4f}'.format(accuracy_score(y_test,pred)))
예측 정확도: 0.9333
x_test로 학습된 데이터를 예측 테스터 후 평가는 y_test 로 평가를 진행한다.
accuracy_score(y_text, pred) == # accuracy_score(테스트할 레이블, 테스트 데이터 예측수행)
댓글