- pandas DataFrame 은 모든 컬럼의 길이가 동일해야만 생성됩니다.
- 길이가 다르면 에러(ValueError)가 발생합니다.
- 모델 입력(X)과 라벨(y) 의 개수도 반드시 동일해야 합니다. 다르면 학습 자체가 불가능합니다.
예를 들어 age 가 8개, income 이 7개라면:
ValueError: arrays must all be same length
즉, DataFrame 조차 만들어지지 않습니다.
예시:
X.shape → (8, 2)
y.shape → (7,)
이렇게 되면 모델에 fit 할 때:
ValueError: Found input variables with inconsistent numbers of samples
이라는 에러가 납니다.
일반적으로 아래 방법 중 하나를 사용합니다.
데이터 길이가 달라진 이유가 결측치 때문이면:
df = df.dropna()
X = df[['age', 'income']]
y = df['label']
예:
age 가 비었으면 평균/중앙값으로 채워 넣기
income 이 비었으면 0 또는 평균/중앙값
df['income'] = df['income'].fillna(df['income'].median())
라벨이 없는 행은 모델 학습에 사용할 수 없으므로 제거
또는 라벨링 오류라면 데이터 팀에 요청해서 누락된 라벨 채워 넣기
print(len(df))
print(len(X))
print(len(y))