codestates / codestates/ds-TIL
[TIL] 오예은_210118
- Dominant language
- No language data
- Stars
- 2
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
### 키워드
`파이썬` `자료형` `컬렉션` `주석` `들여쓰기`
### 배운 것
- 코드를 보면서 해석하고 최적화시킬 수 있을지 고민, 효율성을 위해 반복문/조건문 최소화 필요
- 프로그래밍 : 입력, 조건, 반복, 출력의 연속
- 주석: 협업, 재사용을 위함
- 내장함수(Built-in functions)와 표준 라이브러리의 차이: 라이브러리는 import해서 사용
### 느낀 점
- 파이썬을 제대로 공부하면 그동안 배웠던 section1~4의 내용에서 내가 할 수 있는 영역이 확장될 것 같다. 그리고 그동안 답답했던 부분(에러 등)이 조금씩 해소될 수 있을거라는 희망이 생겼다.
- 예전에 코딩을 하면서 잘 이해되지 않았던 부분을 다시 보면 더 쉽지 않을까?! 하고 예상해본다. 스프린트 리뷰 때는 예전 코드들을 보면서 더 쉽게 할 수 있는 부분들을 찾아서 보완해봐도 좋을 것 같다.
---
### ★ 데이터 전처리할 때 '처리 순서'도 중요하다.
* N424 과제 중, 케라스 튜너를 이용해 하이퍼파라미터를 찾는 부분이 있었는데 계속 Input이 잘못 들어갔다고 오류가 나서 왜 그런지 구글링해보고, 헬프데스크에 올릴까 고민하고 다른 동기들의 과제도 살펴보면서 한참을 헤맸다.
> input값이 6900개인데 2284개만 넣었다고? validation feature data가 2284개가 맞는데, 어디서 잘못된거지?
```py
tuner.search(X_train, y_train, epochs = 10, validation_data = (X_val, y_val), callbacks = [ClearTrainingOutput()])
```
```
ValueError: Input 0 of layer sequential is incompatible with the layer: expected axis -1 of input shape to have value 6900 but received input with shape (None, 2284)
```
```py
print(X_train.shape, X_val.shape)
print(y_train.shape, y_val.shape)
```
```
(5634, 6900) (1409, 2284)
(5634,) (1409,)
```
알고보니, 데이터 전처리 과정 순서가 잘못되어서였다.
feature에 카테고리컬 데이터가 있어서 one hot encoding을 수행했는데, 그 부분이 문제였다.
학습/검증데이터를 나눈 후에 인코딩을 했더니 feature개수가 달라져버린 것이다.
랜덤하게 데이터셋을 나눴기 때문에 상대적으로 더 적은 검증데이터 셋에 들어가지 않은 값이 존재할 수 있기 때문이다.
**따라서, 인코딩을 수행해야 하는 경우 데이터셋을 분리하기 전에 먼저 수행해줘야 한다!!**
다음번엔 헤매지 말고 전처리에 영향을 받는 데이터 생각도 하면서 순서에 맞게 전처리를 해야겠다.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.