Building Machine Learning System with Python ch.2.2
평가 : 홀드아웃 데이터와 교차 검증 우리가 정말 하고 싶은 작업은 새로운 데이터에 대해 일반화하는 모델의 능력을 측정하는 것이다. 알고리즘이 훈련 시 보지 못한 인스턴스에 대한 성능을 측정해야한다. 이를 테스트하기 위해 두 부분으로 나누어, 하나는 모델을 훈련시키고 다른 하나는 데스트에 사용했다. 이상적으로는 훈련할 때와 테스트할 때 모든 데이터를 사용하는 것이 좋다. 이를 교차 검증이라하며, 단순한 교차 검증의 형태는 단일 잔류라 한다. 하나의 예제를 제외한 모든 데이터로 모델을 학습하고, 이 모델로 남은 하나의 예제를 잘 분류하는 지 보는 것이다. from threshold import fit_model, predict correct = 0.0 for ei in range(len(features)): training = np.ones(len(features), bool) training[ei] = False testing = ~training model = fit_model(features[training], is_virginica[training]) predict(model, features[testing]) predictions = predict(model, features[testing]) correct += np.sum(predictions == is_virginica[testing]) acc = correct/float(len(features)) print('Accuracy: {0:.1%}'.format(acc)) fit_model 과 predit 함수들을 통해 단일 잔류로 검증을 할 수 있었다. 하지만 단일 잔류의 중요한 문제점은 몇 배 ...