강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Seongwan Son님의 프로필 이미지
Seongwan Son

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

사용자 행동 인식 데이터를 이용한 결정 트리 실습 - 01

새로운 데이터 입력

작성

·

232

0

안녕하세요 강의 잘 보고 있습니다.

새로운 행동입력 데이터 혹은 꽃잎 데이터를 추가하고자하면

지금 강의하신 코드에서 데이터만 추가해서 진행하면 되는거가요? 즉 새로운 데이터에 대한 y target값이 정해져 있지 않은 상태에서는 어떻게 진행해야하는지 궁금합니다.

답변 2

1

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

새로운 행동입력 데이터 혹은 꽃잎 데이터를 추가하고자하면 feature 데이터와 거기에 상응하는 target 데이터를 만들어서 추가해 주시면 됩니다.

numpy의 경우는 concatenate( ) 메소드를 사용하시면 두개의 numpy ndarray를 더해 줍니다.

아래는 예시 코드 입니다. 원본 iris 데이터는 150개의 데이터를 가지는 데 추가로 100개의 feature 데이터와 target 데이터를 추출해서 최종적으로 250개의 feature 데이터와 target 데이터를 만들고 이를 이용하여 학습을 시키는 예제 입니다.

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
import numpy as np

iris = load_iris()
# iris.data는 Iris 데이터 세트에서 피처(feature)만으로 된 데이터를 numpy로 가지고 있습니다.
iris_data = iris.data
# iris.target은 붓꽃 데이터 세트에서 레이블(결정 값) 데이터를 numpy로 가지고 있습니다.
iris_label = iris.target

print('원본 iris feature data shape:', iris_data.shape)
print('원본 iris target data shape:', iris_label.shape)

iris_data_new = iris.data[:100]
iris_label_new = iris_label[:100]
print('신규 추가되는 iris feature data shape:',iris_data_new.shape)
print('신규 추가되는 iris target data shape:',iris_label_new.shape)

iris_data_total = np.concatenate((iris_data, iris_data_new))
iris_label_total = np.concatenate((iris_label, iris_label_new))
print('원본 iris feature에 신규 iris feature 추가된 결과 shape:', iris_data_total.shape)
print('원본 iris target에 신규 iris target 추가된 결과 shape:', iris_label_total.shape)

X_train, X_test, y_train, y_test = train_test_split(iris_data_total, iris_label_total,
                                                    test_size=0.2, random_state=11)
print('train_test_split 된 결과 shape:',X_train.shape, X_test.shape)
# DecisionTreeClassifier 객체 생성
dt_clf = DecisionTreeClassifier(random_state=11)

# 학습 수행
dt_clf.fit(X_train, y_train)

감사합니다.

0

Seongwan Son님의 프로필 이미지
Seongwan Son
질문자

감사합니다. 그럼 적정한 타켓값을 모를때는 임의로 구성된 타겟값을 입력하여 여러번 테스트 후 그 중 가장 정확도가 높은것을 택하는 방식인가요?

Seongwan Son님의 프로필 이미지
Seongwan Son

작성한 질문수

질문하기