inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

예시문제 작업형 2유형 질문있습니다

해결된 질문

310

gkswltn2747

작성한 질문수 1

0

import pandas as pd

train = pd.read_csv("data/customer_train.csv")
test = pd.read_csv("data/customer_test.csv")
pd.set_option('display.max_columns',None)

# EDA
# print(train.shape, test.shape)
# print(train.describe(include='O'))
# print(test.describe(include='O'))
# print(train.isnull().sum()) # 결측치: 환불금액
# print(train.isnull().sum())
# print(train.info())
# print(train.describe(include = 'O'))
# print(sorted(list(train['주구매상품'].unique())))
# print(sorted(list(test['주구매상품'].unique())))

a = set(train['주구매상품'].unique())
b = set(test['주구매상품'].unique())

print(a - b)
print(b - a)

# 데이터 전처리
train['환불금액'] = train['환불금액'].fillna(train['환불금액'].mean()) 
test['환불금액'] = test['환불금액'].fillna(test['환불금액'].mean()) 
# print(train.isnull().sum())
# print(test.isnull().sum())

# 원핫인코딩
df = pd.concat([train,test])
df = pd.get_dummies(df)
train = df.iloc[:len(train)]
test = df.iloc[len(train):]
print(train.shape, test.shape)

# 검증데이터 분리
from sklearn.model_selection import train_test_split
x_tr,x_val,y_tr, y_val = train_test_split(train.drop('성별',axis =1), train['성별'], test_size=0.2, random_state=2022)
# print(x_tr.shape,x_val.shape,y_tr.shape, y_val.shape)

# 모델 및 평가
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import roc_auc_score
model = RandomForestClassifier(random_state = 2022, max_depth=4, n_estimators=500)
model.fit(x_tr, y_tr)
pred_proba = model.predict_proba(x_val)
print(roc_auc_score(y_val, pred_proba[:,1]))

# # 0.6759

# # print(test.shape)
# # print(test.isnull().sum())


# 예측 및 제출
pred_proba = model.predict_proba(test)

train이 test를 포함할 경우 train + test 를 합쳐서 원핫인코딩을 진행했습니다.

모델 및 평가까지는 에러 없이 진행하였는 데 test 데이터를 예측하는 pred_proba = model.predict_proba(test) 부분에서 아래와 같은 에러가 발생했습니다. 어떤게 문제였는지 궁금하여 질문글 올립니다.

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

답변 1

0

퇴근후딴짓

NaN 값 그러니깐 결측치를 포함한 데이터를 모델에 넣었어요

데이터를 합치고 분리하고나면 샘플을 확인해보세요

train에는 성별이 있고, test는 성별이 없어요!

합치면 성별이 없는 데이터에는 NaN이 들어가고 다시 분리 시켜도 성별 컬럼이 남아 있습니다.

test 데이터에서 target(성별) 컬럼 제거(drop)가 필요해요

작업형2 모의문제1 (30강)

0

18

1

수강 기간 연장 문의 드립니다.

0

21

1

수강 계획과 관련해 문의 드립니다.

0

19

1

작업형1 - 연습문제 16~39 풀이는 몇강을 보면 되나요?

0

44

2

작업형 1 -연습문제 4-6

0

32

2

작업형 1 유형 부분

0

39

2

작업형 1 (삭제예정, 구 버전)

0

50

2

수강기간 연장 문의드립니다.

0

35

1

2유형 레이블 인코딩 VS 원핫 인코딩

0

36

3

수강기간 연장 문의드립니다.

0

38

1

인덱스 슬라이싱

0

35

2

질문 드립니다.

0

49

2

강의 내용 관련 질문드립니다~

0

46

2

수강 연장 문의

0

63

2

강의자료 일괄 다운로드

0

58

2

수강기간 연장 문의드립니다

0

47

2

list 문제 질문드립니다~

0

38

2

빅분기 실기 12회 재도전

0

62

2

강의 기간 연장 가능여부 검토 요청건

0

49

2

수강기간 연장 문의 드립니다

0

45

2

수강기간 연장 문의드립니다

0

52

2

질문이요

0

57

2

수강기간 연장 문의드립니다.

0

60

2

문제 3-2 질문드립니다

0

47

2