inflearn logo
Course

Course

Instructor

roadmap's Posts

roadmap roadmap

@roadmap

Students
7,592
Reviews
1,316
Course Rating
4.9

Posts 4002

Q&A

데이터 전처리 순서 관련

강의 잘 듣고 계시다니 감사합니다 😊 순서가 정해진 건 아니고, 순서가 달라져도 됩니다. 저도 코딩때마다 다르나 자격증을 준비하는 수험생에게는 한 두 가지 방법을 알려드리고 있어요. 만약 더 깊이 공부한다면 순서를 외우기 보다 각 작업의 이해가 필요합니다. 순서는 자격증 시험을 위한 용도입니다. 예를 들어 타겟을 꼭 먼저 분리해야하는 것도 아니에요! 그런데 타겟이 분리되지 않은채로 인코딩이나 스케일링을 하게 되면 타겟 데이터가 달라질 수 있는데 이를 처리하는 코드가 더 늘어나게 되어 최대한 코드를 적게 쓰면서 작업하는 방식으로 설명드리고 있어요! 검증 데이터 분리 → 인코딩 으로 진행하면 코드가 더 많아집니다. train, val, test 세 가지를 모두 인코딩해야 해요. 데이터 누수에 대해서도 잘 알고 계시네요! 말씀하신 방식(학습 데이터에만 fit, 검증 데이터에는 transform)이 실무에서는 필요하지만, 시험은 시험으로 접근하시는 게 좋습니다. 복잡하거나 코드가 더 늘어나는 방식은 설명하지 않고 있는 점 양해 부탁드립니다. 스케일링은 우리가 사용하는 트리 계열 모델(랜덤포레스트, LightGBM)이 스케일링에 크게 영향을 받지 않기 때문에 시험에서는 생략하셔도 괜찮습니다. 정리하면 시험에서는 타겟 분리 → (결측치 처리) → (스케일링) → 인코딩 → 검증 데이터 분리 → 모델 학습 순서를 추천드려요! 그 외 작업은 가능한 만큼 시도해 주시면 되겠습니다. train과 test의 범주가 다를 때: 각각 따로 get_dummies 를 하면 컬럼 수가 달라져서 예측할 때 에러가 납니다. 이때는 train과 test를 합쳐서 인코딩한 뒤 다시 나눠 주세요. (이 또한 데이터 리키지 문제는 있지만 코드는 평가하지 않고 있습니다) 선형 계열 모델을 쓸 때: 로지스틱 회귀, 선형 회귀, KNN, SVM 같은 모델은 스케일링 영향을 크게 받기 때문에 스케일링을 꼭 해주시는 게 좋습니다. 스케일링 대상: 스케일링은 수치형 컬럼에만 적용합니다. 인코딩 전에 스케일링을 하는 이유도 원-핫 인코딩으로 만들어진 0/1 컬럼까지 스케일링되지 않게 하기 위해서예요. 화이팅입니다.

Likes
0
Comments
2
Viewcount
13

Q&A

object 컬럼이 여러 개인 경우 인코딩 전처리 방법

네, 잘알고 계신 것 같습니다. 반복문으로 확인합니다. 다만 시험문제에서 오브젝트 컬럼이 많았던 적은 없어 확인에 큰 문제는 없었어요. 그냥 합치는 것도 방법중 하나 입니다. 아직까진 기출해서 카테고리가 달라진적은 없으나 예시문제 데이터가 그렇게 나오고 있어 준비할 필요는 있습니다

Likes
0
Comments
2
Viewcount
9

Q&A

작업형2 모의문제 데이터 불러오기

크롬 브라우저가 맞죠? 그래도 안되면 재부팅 후 다시 한번 부탁드리겠습니다. 압축을 풀면 3개 파일이 있습니다. 이 파일을 코랩에서 업로드 버튼을 통해 업로드 하고 보통은 바로 뜨나 안뜨면 "새로고침" 버튼 한번 눌르면 보일거에요!

Likes
0
Comments
2
Viewcount
16

Q&A

2회 기출유형(작업형1) Warning

안녕하세요! 우선 에러가 아니라 Warning은 무시하셔도 됩니다. (시험에서도 동일함) FutureWarning 미래 판다스 버전에서는 이렇게 코드 작성하면 안될 수 있다. 단 현재 버전에서는 현재에서는 아무런 문제가 없습니다. SettingWithCopyWarning 지금 수정하는 대상이 copy일 수도 있어서, 원본 df 가 바뀌지 않을 수 있다"는 뜻 만약 수정한다면 df.loc[:9, 'views'] 이런식으로 작성이 필요합니다. df = df.sort_values('views', ascending=False).reset_index(drop=True) df.loc[:9, 'views'] = ref # loc은 끝 라벨 포함 → 0~9, 총 10개 경고(워닝) 자체는 채점에 영향을 주지 않습니다. 경고는 에러가 아니므로 코드는 끝까지 실행되고, print 로 출력된 값이 정답이면 문제없습니다.

Likes
0
Comments
2
Viewcount
57

Q&A

describe()

안녕하세요! 테스트 해봤는데 그대로 맞습니다. 아마도 describe() 를 출력하기 전 코드가 다른게 아닐까 싶어요! 데이터프레임 생성 코드도 동일하게 작성된 것이 맞는지 확인 한번 부탁드립니다.

Likes
0
Comments
2
Viewcount
43

Q&A

수강기간 연장문의

메일 발송하였습니다. 화이팅입니다!!

Likes
0
Comments
2
Viewcount
67

Q&A

빅데이터분석기사 실기 인코딩

컬럼 삭제는 추천하지 않습니다. 작업형2 40점이 굉장히 타이트해졌어요. 컬럼(변수)를 버려야 하는 케이스는 없었습니다. 아래와 같이 합쳐서 인코딩 하는 방식을 추천합니다. target = train.pop('target') df = pd.concat([train, test]) df = pd.get_dummies(df) X_train = df.iloc[:len(train)] X_test = df.iloc[len(train):] 인코딩방식은 다양하며 아래 처럼도 가능합니다. from sklearn.preprocessing import OrdinalEncoder y = train.pop('target') df = pd.concat([train, test]) cols = df.select_dtypes(include='object').columns df[cols] = OrdinalEncoder().fit_transform(df[cols].fillna('missing')) X = df.iloc[:len(train)] X_test = df.iloc[len(train):]

Likes
0
Comments
2
Viewcount
63