inflearn logo
강의

Course

Instructor

[Side Project After Work] Big Data Analysis Certification Practical Exam (Type 1, 2, 3)

[Practical Type 1] Practice Problems Section 1 ~ 10

103강 작업2형 전처리(레이블인코딩 부분) 오류

Resolved

2

kshwin77

2 asked

0

import pandas as pd
train = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p2/hr_train.csv")
test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p2/hr_test.csv")


# 4. 데이터 전처리

target = train.pop('target')


train = train.fillna('X')
test = test.fillna('X')

com = pd.concat([train, test])


from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
cols = train.select_dtypes(include='object').columns
for col in cols:
  # com[col] = le.fit.transform(com[col])

# n_train = len(train)

# train = com[:n_train]
# test = com[n_train:]

# # 5. 검증 데이터 나누기
# from sklearn.model_selection import train_test_split
# X_tr, X_val, y_tr, y_val = train_test_split(train, target, test_size=0.2, random_state=0)
# print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape)


# # 6. 학습 및 평가
# from sklearn.ensemble import RandomForestClassifier
# rf = RandomForestClassifier(random_state=0)
# rf.fit(X_tr, y_tr)
# pred = rf.predict_proba(X_val)

# from sklearn.metrics import roc_auc_score
# ras = roc_auc_score(y_val, pred[:,1])
# print("랜덤ras:", ras)

# import lightgbm as lgb
# lg = lgb.LGBMClassifier(random_state=0, verbose=-1)
# lg.fit(X_tr, y_tr)
# pred = lg.predict_proba(X_val)

# from sklearn.metrics import roc_auc_score
# ras = roc_auc_score(y_val, pred[:,1])
# print("엘지비ras:", ras)

# # 7. 제출파일 생성
# pred = rf.predict_proba(test)
# result = pd.DataFrame({"pred":pred[:,1]})
# result.to_csv("result.csv", index=False)




**레이블인코딩 부분이 오류가 계속 나는데 어디가 잘못 됐는지 찾지를 못합니다.

python 머신러닝 빅데이터 pandas 빅데이터분석기사

Answer 2

0

roadmap

fit.transform

대부분의 오류는 오타입니다.

fit_transform가 올바른 표기입니다.


0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. kshwin77님.

레이블 인코딩 부분에서 오류가 발생하는 이유는 주석 처리된 라인에서 le.fit 대신 le.fit_transform을 사용해야 하는 점 때문일 수 있습니다. 주석을 풀고 아래의 코드로 수정해 보세요:

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
cols = train.select_dtypes(include='object').columns
for col in cols:
    com[col] = le.fit_transform(com[col])

이렇게 하면 데이터 프레임의 모든 범주형 열을 라벨 인코딩 하게 됩니다. fit_transform은 데이터에 맞춰 LabelEncoder를 학습시키고 변환된 데이터를 반환하는 메소드입니다.

이와 관련된 자세한 설명과 유사한 문제 해결 방법들은 다음 답변에서 확인할 수 있습니다.

레이블 인코딩 작업은 데이터를 수치형으로 변환하여 모델이 학습할 수 있도록 하기 때문에 중요한 전처리 단계인데, com과 같은 데이터를 범주형 컬럼들이 올바르게 변환되었는지 확인하는 것이 중요합니다.

추가적으로, traintest 데이터 프레임의 구조가 변하지 않도록 전처리 시 항상 반영 범위를 정확히 지정해 주시기 바랍니다. com[col]와 같이 데이타프레임에 직접적으로 변환을 적용할 때는 traintest 데이터를 분할하여 다시 사용하는 로직도 주의해야 합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

34강 평가지표

0

3

2

작업형1_section14 문의

0

3

1

작업형1_연습문제 7번 관련입니다.

0

7

1

데이터 프레임 슬라이싱 혹은 데이터 선택하기가 어렵습니다.

0

7

1

크로스 밸리데이션 질문

0

13

2

로지스틱 회귀분석 질문

0

14

2

수치형 데이터만 선택하여 푸는 경우에 오답확률이 높아질까요?

0

22

2

2유형 object 컬럼 인코딩 관련 질문

0

31

2

하이퍼파라미터 변수

0

28

2

52강 이원분산분석

0

25

2

실제시험환경에서 작업형1,2,3의 문제풀이 순서

0

29

2

독립표본검정

0

25

2

tranform을 쓰라는 힌트는 어디서 얻을 수 있나요??

0

35

2

df.describe() 사용을 자제해야할까요?

0

33

2

shape 결과에 대한 문의

0

37

2

자료 문의

0

31

2

8 회귀 11번

0

26

2

심화 강의 관련 질문

0

35

2

빈도수 구하는 것 질문

0

26

2

커리큘럼을 따로 인쇄할 수 있는 방법이 있을까요?

0

38

1

작업형2 머신러닝 문제풀이 중 test 데이터 에러 문의

0

34

2

수강연장가능문의

0

44

2

59. 11회 기출 유형 작업형 1 - 문제2 관련

0

37

2

원핫인코딩 슬라이싱 결과

0

33

2