Corgi Dog Bark

ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Train_Test_Split 함수 사용Train_Test_Split 함수 사용
    머신러닝(MACHINE LEARNING) 2021. 4. 13. 17:34
    반응형

    Model Selection 모듈 소개

    from sklearn.datasets import load_iris
    from sklearn.tree import DecisionTreeRegressor
    from sklearn.metrics import accuracy_score
    
    iris = load_iris()
    dt_clf = DecisionTreeRegressor()
    train_data = iris.data
    train_label = iris.target
    dt_clf.fit(train_data, train_label)
    
    print(' 예측 정확도 : {0:.2f}'.format(accuracy_score(train_label,dt_clf.predict(train_data))))
     예측 정확도 : 1.00

    여기서 학습데이터로만 학습하게 되면, 예측정확도가 1 이 나오게되는데 , 이는 학습한 학습 데이터 세트를 기반으로 예측했기 때문에 잘못된 결과이다.
    train_test_split 모듈을 통한 train set , test set 을 분리해줘야 한다.

    from sklearn.model_selection import train_test_split
    
    iris_data = load_iris()
    
    X_train, X_test, Y_train, Y_test = train_test_split(iris_data.data, iris_data.target, test_size = 0.3, random_state = 11)
    dt_clf.fit(X_train,Y_train)
    print(' 예측 정확도 : {0:.2f}'.format(accuracy_score(Y_test,dt_clf.predict(X_test))))
     예측 정확도 : 0.91

    여기서 test_size 는 test에 얼마만큼의 양을 할당할 것인지를 나타내고 random_state 는 random한 값을 넣어 섞어주는 난수값을 말한다. 주의 할 점은 동일한 데이터를 학습시킬 때, random_state 를 모두 다르게 써주면, fit이 이상하게 될 수 있으니, random_state 를 일정하게 유지해주는 것이 좋다.

    반응형

    댓글

Designed by Tistory.