- 머신러닝의 7과정을 이해하자!
- 머신러닝의 학습과정을 이해하고 결과를 확인해보자!
- 온습도 데이터를 분석하여 결과를 예측하자!
1. 문제 정의
2. 데이터 수집
3. 데이터 전처리 (이상치, 결측치 정리)
4. EDA
5. Model 선택, Hyper Parameter 조절
6. Training (model.fit(X_Train,y_test))
7. Evaluation
온도, 습도에 따른 상쾌(1), 불쾌(0) 를 판단하는 이진분류 실습

| Column Name | 컬럼명 | 설명 |
|---|---|---|
| T(temperature) | 온도 | 주변 환경의 온도 (섭씨) |
| RH(relative humidity) | 상대습도 | 공기 중 습도의 비율 (%) |
| AH(absolute humidity) | 절대습도 | 공기 중 실제 수증기량 |
| Comfortable | 쾌적 여부 | 환경이 쾌적한지 나타내는 이진값 - 0(불쾌), 1(상쾌) |
df.info()
# 머신러닝 학습을 위해 확인 !!
# 1. Non-null count: 결측치 여부 확인
# 2. Dtype: 데이터 타입 확인

→ 해당 실습에서는 이상치, 전처리 작업 X
count: 데이터 개수
mean: 평균
median: 중앙값
std: 표준편차 -> 데이터 분포 파악할 때 사용 (분산의 루트 값)
min, max: 최솟값, 최댓값
25%, 50%(중위값, 중위수), 75%: 4분위수 -> 데이터의 분포를 4등분해서 확인
대푯값: 평균, 중앙값, 최빈값
보통 확인하는 값
df.describe().T

# 상관계수
# -1 ~ 1 사이의 값을 가지며 "절댓값"이 1에 가까울수록 연관성이 높다!
df.corr()

→ Comfortable과 가장 연관성이 높은 피쳐는 RH !
# 1. 머신러닝 학습을 위한 데이터 분리
# 문제데이터 (X): T, RH, AH
# 정답데이터 (y): Comfortable
X = df.drop(['Comfortable'], axis=1)
y = df['Comfortable']
X, y
# 2. # 학습용 vs 평가용
# 데이터 분할 도구 활용하기 (train_test_split())
from sklearn.model_selection import train_test_split
# 문제와 정답을 넣으면 4개의 변수에 대입 -> 변수명 고정!
X_train, X_test, y_train, y_test = train_test_split(X, y, train_size=0.7, stratify=y, random_state=42)
# 데이터 확인
X_train.shape, y_train.shape, X_test.shape, y_test.shape
문제와 정답의 개수가 동일해야 한다!
입력 특성의 개수가 동일해야 한다!
train_test_split 옵션
# 분류 모델 도구 불러오기
from sklearn.neighbors import KNeighborsClassifier# 모델 객체 생성
knn_model = KNeighborsClassifier(n_neighbors=1)# 모델 학습 (학습용 문제, 학습용 전달)
knn_model.fit(X_train, y_train)
from sklearn.metrics import accuracy_score
### 예측
pred = knn_model.predict(X_test)
# 방법 1
accu = accuracy_score(y_test, pred) # 순서 상관 없음
accu
# 방법 2
# sklearn 모델이 제공하는 기능
# 예측 단계를 건너뛰고 바로 정확도만 확인하고 싶을 때 사용 (예측과 평가를 동시에 진행 -> 결과값(정확도)만 출력)
knn_model.score(X_test, y_test)