## 교과목 정보
- 세종대학교 AI로봇학과 기계학습 중간고사

## 문항 정보
### 병원 개/폐업 예측 
병원 개/폐업 예측은 지역 사회의 의료 수요와 공급을 파악하고, 해당 지역에서의 의료 시설의 필요성을 평가하는데 도움이 된다. 여러분은 지금부터 수업시간에 배운 <머신러닝 기술>을 활용하여, test.csv 파일로 제공된 병원 개/폐업 여부를 예측하는 인공지능 SW를 작성해주길 바란다.

### 시작하기에 앞서
* Description, Data를 반드시 잘 읽어보세요. **잘 읽지 않으면 베이스라인 달성이 매우 어려울 수 있습니다.**
* 데이터 설명은 데이터 탭에 있습니다.

## 평가 기준 
- 베이스라인 이상의 점수를 부여받아야 PASS
- 반드시 랜덤시드를 고정하세요. (미고정시 10% 감점)
- 모듈별 코드에 주석을 반드시 달아주세요. 특히, 어떤 목적으로 API를 호출했는지 작성되어야 합니다. (미제출시 10% 감점)

##랜덤시드
- 특정 알고리즘에 들어가는 `random_state` 역시 고정해주어야 합니다.
```python
import random
import os
seed = 42
random.seed(seed)
np.random.seed(seed)
os.environ["PYTHONHASHSEED"] = str(seed)
```
---

## 문제 풀이를 위한 안내사항 (데이터 전처리 가이드라인)
본 문제의 데이터에는 nan값이 포함되어 있습니다. 아래에서 설명할 내용은 문제의 베이스라인 점수를 달성하기 위한 데이터 전처리 가이드라인이며, 아래와 다른 전처리 방법을 통해 베이스라인을 통과하여도 점수는 인정됩니다.
본 문제의 목적은 아직 배우지 않은 전처리 내용을 시험에 포함시키려는 것이 아닌, **처음 접하는 함수에 대해 공식 API를 보고 적용 가능한지를 평가하기 위함**입니다.

아래 안내사항을 한 단계씩 따라가며 문제를 해결하시기 바랍니다. 각 함수 이름을 누르면 공식 문서로 이동할 수 있습니다.

1.  pandas 라이브러리의 **'[info()](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.info.html)'** 함수를 통해 우선 데이터의 속성이 어떤 자료형을 갖는지 알아볼 수 있습니다. 
2. 이를 통해 열 별 자료형을 확인하시고, **'object'로 지정되어 있는 모든 열을 pandas 라이브러리의 '[drop()](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.drop.html)' 함수를 통해 모두 제거**해주세요.
3. 다시 'info()' 함수를 사용하여 'object' 자료형을 갖던 열들이 모두 제거됐는지 확인해주시기 바랍니다.
4. 학습 데이터에 대한 'info()' 함수의 결과를 보면, 총 244개의 샘플을 가지는 것을 알 수 있습니다. 다만 출력에 보이는  'Non-Null Count' 수를 확인하면, 열 별로 정상 측정치가 아닌 결측치가 적게는 4개, 많게는 10개까지 들어가있음을 알 수 있습니다. 이제 sklearn 라이브러리의 [SimpleImputer()](https://scikit-learn.org/stable/modules/generated/sklearn.impute.SimpleImputer.html) 함수를 통해 해당 결측치를 제거하겠습니다.
5. 아래 함수와 같이 [SimpleImputer](https://scikit-learn.org/stable/modules/generated/sklearn.impute.SimpleImputer.html)를 import 해올 수 있습니다.
```
from sklearn.impute import SimpleImputer
```

위 SimpleImputer 문서에서 함수의 사용법을 잘 읽어보신 뒤, **데이터에 존재하는 결측치 'np.nan'을 해당 열의 '평균' 값으로 대체**해주세요.
이 때, 테스트 데이터의 평균 값은 알 수 없다는 가정 하에(StandardScaler 사용 원리와 동일) SimpleImputer는 학습 데이터에 대해서만 fit 해주시기 바랍니다. (위반 시 10% 감점)

6. 위 방식으로 전처리된 데이터를 이제 여러분들이 배운 기계학습 방법론으로 분류해주시기 바랍니다.
예측 파일 제출 시 **예측값은 'Open' 또는 'Close'가 아닌 각각 1, 0으로 맵핑**해 제출해주시기 바랍니다. (LabelEncoder 활용 가능)