캐글에서 제공하는 타이타닉 생존자 데이터로 사이킷런 생존자 예측 모델을 학습하고 평가해봅시다. 타이타닉 생존자 데이터 세트의 피처는 다음과 같습니다. Passengerid, survived(0 : 사망), pclass(1, 2, 3), sex, name, Age, sibsp(동반 형제자매 or 배우자 수), parch(동반 부모님 or 어린이 수), ticket(번호), fare, cabin(선실 번호), embarked(중간 정착 항구) 타이타닉 탑승자 데이터를 판다스 DataFrame 객체로 받아왔습니다. 데이터 세트의 칼럼 타입을 확인해보기 위해, df.info() 메서드를 호출합시다. RangeIndex가 891entries이므로, 총 891개의 로우가 있습니다. 칼럼의 수는 12개이며, 5개의 ..
데이터 전처리(Preprocessing)은 머신러닝 알고리즘만큼 중요합니다. 사실 더 중요하다고 할 수 있습니다. 알고리즘이 아무리 뛰어나도 Garbage In, Garbage Out은 불변의 법칙이기 때문입니다. 무작정 머신러닝 알고리즘을 이용하기 전에, 데이터에 대해 미리 처리해야 할 기본 사항이 있습니다. 첫 번째로, 결손값(NaN, Null)은 허용되지 않습니다. 어떤 피처에 Null 개수가 얼마 없다면 피처의 평균값 등으로 Null을 간단히 대체해도 되지만, Null이 대부분이라면 오히려 해당 피처를 드랍하는 것이 좋습니다. Null의 개수가 애매모호하다면 해당 피처의 중요도 등을 고려하여 더 정밀한 대체값을 선정해야 합니다. 두 번째로, 사이킷런 알고리즘 모델은 문자열을 입력값으로 허용하지 않..
사이킷런의 model_selection 모듈은 학습/테스트 데이터 세트를 분리하거나 교차 검증 분할 및 평가, Estimator의 하이퍼 파라미터를 튜닝하는 다양한 API를 제공합니다. model_selection이 제공하는 API를 알아봅시다. 이전에도 설명했듯이, train_test_split() 메서드는 학습/테스트 데이터를 분리합니다. shuffle 파라미터가 있는데, 이는 데이터를 분리하기 전에 데이터를 미리 섞을지에 대한 파라미터입니다. 디폴트는 True이며, 데이터를 분산시켜 효율적인 분리를 위해 사용됩니다. iris 데이터 세트의 테스트 데이터는 총 45개입니다. 이러한 적은 수의 테스트 데이터로 모델의 예측 성능을 판단하는 것은 적절하지 않습니다. 학습 데이터의 양을 보장하는 것도 중요하..