머신러닝, 딥러닝 시 Scikit-learn에서 데이터 분할에 사용되는 train_test_split() 메서드를 pandas dataframe 또는 seires 형태의 데이터에 적용해보자. train_test_split은 sklearn.model_selection 모듈에 포함되어 있다.
우선 피쳐들로 데이터 프레임을 구성한 뒤 마지막 컬럼에 타겟을 덧붙여 dataframe으로 구성한다.
그 후 iloc 인덱싱을 통해 피쳐와 타겟을 정의한 뒤 train_test_split() 적용하면 끝.
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_iris # 사이킷런 아이리스 내장 데이터 로드
import pandas as pd
# iris 데이터 로드
iris = load_iris()
iris_df = pd.DataFrame(iris_data.data, columns=iris_data.feature_names) #iris 데이터로 df 구성
iris_df['target'] = iris_data.target
print(iris_df.shape)
iris_df.head()
# 피쳐 정의
ftr_df = iris_df.iloc[:, :-1] # 맨 뒷 컬럼인 타겟을 제외한 나머지 열로 피쳐 정의
ftr_df
# 타겟 정의
tgt_df = iris_df.iloc[:, -1] # 마지막 컬럼인 타겟 가져와서 타겟 정의
tgt_df
# train_test_split 함수 : 학습/테스트 데이터 나누기
X_train, X_test, y_train, y_test = train_test_split(ftr_df, tgt_df,
test_size=0.3, random_state=121)
# 피쳐데이터 셋 : ftr_df, 타겟데이터 셋 : tgt_df
# 머신러닝 모델 정의
dt_clf = DecisionTreeClassifier( ) # 결정트리 분류기
# 학습
dt_clf.fit(X_train, y_train)
# 테스트 데이터로 예측
pred = dt_clf.predict(X_test)
print('예측 정확도: {0:.4f}'.format(accuracy_score(y_test,pred)))
'Data Science > python' 카테고리의 다른 글
sklearn.model_selection.GridSearchCV 정리 (0) | 2022.01.30 |
---|---|
sklearn.model_selection.cross_val_score 인자 정리 (0) | 2022.01.30 |
데이터 인코딩 (Data encoding) (0) | 2022.01.23 |
SGD Classifier (0) | 2022.01.20 |
[머신러닝] 분류 개요 : 결정 트리 (Decision Tree) (0) | 2022.01.19 |