인프런 커뮤니티 질문&답변

류한민님의 프로필 이미지

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

4회 기출 유형(작업형2)

4회 작업형 2번 풀이 질문있습니다.

해결된 질문

23.11.24 12:02 작성

·

384

0

  • 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!

  • 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요

  • 먼저 유사한 질문이 있었는지 검색해보세요

import pandas as pd

train = pd.read_csv("train.csv")

test = pd.read_csv("test.csv")

# EDA

# train.shape,test.shape

# train.head()

# train.info()

# train.describe()

# train.isnull().sum()

# test.isnull().sum()

# train['Segmentation'].value_counts()

# train.describe(include='object')

 

# 피쳐링

# from sklearn.preprocessing import MinMaxScaler

# cols = ['Age','Work_Experience','Family_Size']

# scaler = MinMaxScaler()

# train[cols] = scaler.fit_transform(train[cols])

# test[cols] = scaler.transform(test[cols])

# train[cols].head()

 

train = pd.get_dummies(train)

test = pd.get_dummies(test)

 

train = train.drop('ID',axis=1)

test_id = test.pop('ID')

# train.head()

 

# 검증데이터

from sklearn.model_selection import train_test_split

X_tr,X_val,y_tr,y_val = train_test_split(train.drop('Segmentation',axis=1),train['Segmentation'],test_size=0.15,random_state=2023)

# X_tr.shape,X_val.shape,y_tr.shape,y_val.shape

 

# 랜덤포레스트

from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier(random_state=2023,max_depth=8,n_estimators=800)

model.fit(X_tr,y_tr)

pred = model.predict(X_val)

 

# 예측 및 평가

from sklearn.metrics import f1_score

print(f1_score(y_val,pred,average='macro'))

 

# 제출

pred = model.predict(test)

submit = pd.DataFrame({

    'ID':test_id,

    'Segmentation':pred

})

submit.to_csv("submission.csv",index=False)

# pd.read_csv("submission.csv")

 

  1. 수치형 데이터를 스케일링 하는 경우는 언제인가요?(minmaxscaler등을 이용하는 것)

  2. 범주형 데이터 라벨 인코딩이나, 원핫인코딩 둘 중 아무거나 써도 상관없을까요?

  3. 예측할 때 값이 0.7이상은 나와야 했던거 같은데 너무 작게 나오는데 괜찮나요?

  4. 급하게 공부하느라 전체적인 틀을 외워서 작성하고 있는데 이정도 작성할 수 있으면 괜찮을까요?

  5. 제출하기 전에 csv생성하는 것을 제외한 모든 print문은 주석처리 해야되나요?

답변 1

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

2023. 11. 25. 06:36

  1. 수치형 데이터가 있다면 적용할 수 있습니다. 그렇지만 반드시 해야하는 것은 아니라서 초초초보자에게는 생략을 권하고 있어요! 할 수 있음 더 좋고요 🙂 기준은 검증데이터를 활용한 성능 비교입니다 !! 흔히 사용하는 트리계열의 랜덤포레스트에서는 효과가 크지 않아요~

  2. 네, 아무거나 사용하셔도 상관없습니다. 기준은 검증데이터를 활용한 성능 비교입니다 🙂

  3. 데이터에 따라 성능은 달라집니다. 실제시험에서도 0.5대가 나오기도 했고 0.9대가 나오기도 했습니다.

  4. 7회 시험에서는 id제출은 없습니다 예측 컬럼만 제출하면 됩니다. 또한 분류와 회귀 문제에 따라 모델을 달리 사용해주셔야 해요 !! 현재 작성된 코드는 분류모델입니다. 그리고 만약에 범주형 컬럼에서 train과 test가 다르다면 합쳐서 인코딩 하는 방식이 필요할 것 같아요!

  5. 주석처리 하지 않아도 됩니다. 코드로 평가하지 않고 csv로만 평가합니다.

 

화이팅 입니다,