본문 바로가기
BigData

빅데이터분석기사) 빅분기 실기 체험 제2유형

by Lcoding 2024. 11. 1.
반응형

 

 

안녕하세요 오늘은 빅데이터분석기사 실기시험에 대비하여 빅분기 실기 체험 제2유형을 풀어보겠습니다.

 

 

https://dataq.goorm.io/exam/3/%EB%B9%85%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B6%84%EC%84%9D%EA%B8%B0%EC%82%AC-%EC%8B%A4%EA%B8%B0-%EC%B2%B4%ED%97%98/quiz/4

 

구름EDU - 모두를 위한 맞춤형 IT교육

구름EDU는 모두를 위한 맞춤형 IT교육 플랫폼입니다. 개인/학교/기업 및 기관 별 최적화된 IT교육 솔루션을 경험해보세요. 기초부터 실무 프로그래밍 교육, 전국 초중고/대학교 온라인 강의, 기업/

edu.goorm.io

 

 

위 URL로 접속하여 체험이 가능합니다.

 

문제 풀이 및 주석은 아래와 같습니다.

 

 


import pandas as pd

train = pd.read_csv("data/customer_train.csv")
test = pd.read_csv("data/customer_test.csv")

# 사용자 코딩 영역

### 데이터 형식 및 값 체크
# print(train.info())
# print(train.describe())
# print(train['환불금액'].value_counts())

### id, target[y]값 확보 및 필요없는 컬럼 제거
tid = test['회원ID'].copy()
y = train['성별'].copy()
train = train.drop(columns=['회원ID','성별'])
test = test.drop(columns=['회원ID'])

### 결측치 확인 및 처리
# print(train['환불금액'].isna().sum())
# print(test['환불금액'].isna().sum())
train['환불금액'] = train['환불금액'].fillna(train['환불금액'].mode()[0])
test['환불금액'] = test['환불금액'].fillna(test['환불금액'].mode()[0])
# print(train.info())


### 수치형 데이터 스케일 MinMaxScaler / StandardScaler
from sklearn.preprocessing import MinMaxScaler

mms = MinMaxScaler()
mmsCol = train.select_dtypes(exclude='object').columns
train[mmsCol] = mms.fit_transform(train[mmsCol])
test[mmsCol] = mms.transform(test[mmsCol])
# print(train[mmsCol])
# print(test[mmsCol])


### 오브젝트형 데이터 스케일 LabelEncoder
from sklearn.preprocessing import LabelEncoder

le = LabelEncoder()
train['주구매지점'] = le.fit_transform(train['주구매지점'])
test['주구매지점'] = le.transform(test['주구매지점'])
train['주구매상품'] = le.fit_transform(train['주구매상품'])
test['주구매상품'] = le.transform(test['주구매상품'])


### 데이터 분할
from sklearn.model_selection import train_test_split

x_train,x_val,y_train,y_val = train_test_split(train,y,test_size=0.2,random_state=2025,stratify=y)

# print(x_train.shape)
# print(x_val.shape)
# print(y_train.shape)
# print(y_val.shape)


### 모델링 및 학습
from sklearn.ensemble import RandomForestClassifier

rf = RandomForestClassifier()
rf.fit(x_train,y_train)
tmpPred = rf.predict(x_val)

# 모델 성능 평가
from sklearn.metrics import roc_auc_score, accuracy_score

roc = roc_auc_score(y_val, tmpPred)
acc = accuracy_score(y_val, tmpPred)

# print(roc) 0.56
# print(acc) 0.62

# 테스트 모델 예측
pred = rf.predict(test)

#결과 제출
result = pd.DataFrame({'pred':pred})
result.to_csv("result.csv", index=False)

#제출한 데이터 확인
chx = pd.read_csv("result.csv")
print(chx)



 

 

 

 

반응형

# 로딩 화면 동작 코드(Code) 설정하기
loading