본문 바로가기

분류 전체보기141

14. Python - 모델 세부 튜닝 여기서는 가능성 있는 모델들을 추렸다고 가정합니다. 이제 이 모델들의 세부 튜닝방법을 살펴봅니다.가장 단순한 방법은, 만족할 만한 하이퍼파라미터 조합을 찾을 때까지 수동으로 조정하는 것입니다.하지만 이는 매우 지루하고, 많은 경우의 수를 탐색하기에는 시간이 부족할 수 있습니다. 대신, 사이킷런의 GridSearchCV를 사용하는 것이 좋습니다. 탐색하고자 하는 하이퍼파라미터와 시도해볼만한 값을 지정해주기만 하면 됩니다. 그러면 가능한 모든 하이퍼파라미터 조합에 대해 교차 검증을 사용해 평가하게 됩니다.예를 들어 다음 코드는 우리가 저번에 했던 RandomForestRegressor에 대한 최적의 하이퍼파라미터 조합을 탐색합니다. param_grid 설정에 따라 사이킷런이 먼저 첫 번째 dict에 있는 n.. 2018. 11. 25.
13. Python - 모델 선택과 훈련 여태 데이터를 읽고, 탐색하고, 훈련세트와 테스트 세트로 나누며 준비를 해왔습니다.이제, 모델 선택과 훈련을 해보겠습니다. sklearn의 LinearRegression을 통해 파이프라인을 적용합니다. 레이블을 살펴보면, 첫 번째 예측은 40%도 넘게 빗나간 것을 알 수 있습니다.그래서, 사이킷런의 mean_square_error 함수를 이용해 전체 훈련 세트에 대해 이 회귀모델의 RMSE를 측정해봅니다. 대부분의 중간 주택 가격은 $120,000에서, $265,000인데, 예측 오차가 $68,628이란 것은 문제가 있죠. 이 모델은 훈련 데이터에 과소 적합된 사례입니다. 이런 상황은, 특성들이 좋은 예측을 만들만큼 충분한 정보를 제공하지 못했거나 모델이 충분이 강력하지 않다는 것입니다. 과소적합을 해결.. 2018. 11. 25.
12. Python - 변환기, 특성 스케일링 오늘은 특성 스케일링에 앞서 나만의 변환기에 대해 먼저 볼텐데요. 앞서서 조합했던 특성들을 추가하는 간단한 변환기입니다.사이킷런은 상속이 아닌 덕 타이핑(duck typing)을 지원하므로, fit() (self를 반환) , transform(), fit_transform() 메서드를 구현한 파이썬 클래스를 만들면 됩니다. 또한 BaseEstimator를 상속하고, 생성자에 *args, **kargs를 사용하지 않으면, 하이퍼파라미터 튜닝에 필요한 두 메서드(get_param()과 set_param())을 추가로 얻게 됩니다. 이 경우, 변환기가 add_bedrooms_per_room 하이퍼파라미터 하나를 가지고 있고 기본값은 True로 지정합니다.(합리적 기본값이 좋습니다.) BaseEstimator는.. 2018. 11. 24.
11. Python - 데이터 탐색과 시각화 저번에 테스트 셋과 훈련셋으로 나누었습니다. 이제 테스트 셋 확인 후 훈련 세트에 대해서만 탐색을 합니다. 이 그림은 캘리포니아 지역을 잘 나타내지만, 어떤 특별한 패턴을 찾기는 힘듭니다.alpha 옵션을 0.1로 주면 데이터 포인트가 밀집된 영역을 잘 보여줍니다. housing.plot(kind="scatter", x="longitude", y="latitude", alpha=0.1) 이렇게 보면, Bay Area와 Los Angeles 근처, San Diego 같이 밀집된 지역이 눈에 잘 띄고, Central Valley 특히 Sacramento와 Fresno 근처를 따라 밀집된 지역이 긴 띠를 이루고 있다고 하네요. (미국 지리는 잘..ㅠ) 이제 이 그림에다가, 주택 가격을 나타내봅니다. 원의 반지.. 2018. 11. 23.