train_features와train_labels를 합해 단일 소스로부터 학습을 진행하도록 함 (artifact/train_table.csv)→ 학습 과정을 용이하게 한다
fold 컬럼 만들기 (✅)
test데이터는train데이터와 완전히 분리된 site 정보를 가지고 있기 때문에 만약 일반 K-Fold ㅊCross Validation을 진행하게 된다면 train과정과 valid 과정에서 동일한 site 정보를 공유할 수 있다는 위험성이 있다.→ 따라서 우선 site 별로 조각 (fold)을 낸 뒤에 site 별로 순환하며 validation을 진행한다
<aside> ❓
Validation vs. Cross Validation
1) 일반 validation(hold-out)
장점
단점
2) K-fold cross validation
장점
단점
<aside> ❓
loc vs iloc
loc : 라벨(label) 기준
id)이나 컬럼명으로 선택df.loc["ZJ000001", "fold"] (인덱스가 id일 때)iloc : 위치(position) 기준
df.iloc[0, 3] (0번째 행, 3번째 열)
</aside>모델에 넣기 좋은 픽셀 형태로 만드는 작업
<aside> ❓
이미지를 규격화할때 최적의 image size는 무엇인가
결론은 “데이터와 분석 목적에 따라 다르다”


따라서 이상적으로는 16:9 사이즈로 모두 규격화한뒤에 진행하는게 맞지만 우선 빠르게 베이스라인을 만들기 위해 코드를 단순화해야하고, 그러기 위해서는 1:1 비율의 직사각형이 맞다고 판단함
그렇기 때문에 최소 크기에 맞춰 120~160 사이의 크기로 resize하는게 필요했고,
HOG의 경우 아래와 같이 데이터 처리를 시작하기 때문에
pixels_per_cell = (8, 8)cells_per_block = (2, 2) → 블록 크기 = 16×16 픽셀이때 입력 크기가 8이나 16의 배수면 격자가 깔끔하게 떨어진다.
128은
8의 배수(128/8=16)
16의 배수(128/16=8)
라서 가장 깔끔
</aside>
<aside> ❓
Grayscale 기반 전처리 (H, W) vs. RGB 기반 전처리 (H, W, 3)
1) 흑백(grayscale)이 유리한 경우
2) 컬러(RGB)가 유리한 경우
이번 프로젝트에서는 주야 사진이 섞여있기 때문에 grayscale로 처리할 예정
</aside>
HOG feature 추출(이미지 → 벡터)
표준화(StandardScaler) 등
→ scikit-learn 모델이 다루기 좋은 수치 벡터로 만드는 작업