Python/빅데이터분석기사 실기

빅데이터 분석기사 실기 작업형 2 체험문제(분류) 풀기

mm대장 2025. 6. 4. 00:08

 

빅데이터 분석기사 실기 공부를 시작하면서 어떤거부터 해야하는지 감이 잡히지 않았다.

이것 저것(퇴근후딴짓, 기타 강의) 들을 찾아보다가

작업형2번을 가장 잘 설명해주고 베이스라인도 깔끔한 강의를 만났다.

 

강의 코드를 기록하면서 링크도 남깁니다.

다른 분들도 도움이 많이 되었으면 합니다.

 

빅분기 실기 작업형 2유형(분류) 이 영상 하나로 끝내세요!

 

 

 

분류 : 종속(목표변스)

   - ex)남,여 / 생존,사망, - accuracy_score, f1_score, roc_auc_score

회귀 : 종속(목표변수) 

   - ex) 가격, 수치, -RMSE, 결정계수

 

독립변수(x), 종속변수(y)

x_train, y_train

x_test, y_test

 

문제  풀이 순서 요약 (확 -> 라 -> 모 -> 학 -> 평 -> 예 -> 제)

1. 데이터 로드 및 확인

2. 결측값 또는 라벨인코딩(문자열 -> 수치형)

3. 모델링 및 학습 (데이터 분할)

4. 모델의 성능평가

5. 테스트 모델 예측

6. 테스트 결과 제출 및 확인

풀이 순서

1. 데이터 로드 및 확인

 

import pandas as pd

 

train = pd.read_csv('')

test = pd.read_csv('')

 

print(train.info())

print(test.info())

 

#, Column, non-null Count(결측값 확인 가능), Dtype

 

데이터 타입

- int (정수형)

- floar (실수형, 수소 형태 데이터)

- object (문자형, 문자열 데이터) -> 라벨인코딩 필요

 

2. 결측값 또는 라벨인코딩(문자열 -> 수치형)

  • 결측값 제거

train.fillna(train['환불금액'].mode()[0], inplace=True)

test.fillna(test['환불금액'].mode()[0], inplace = True)

#fillna : 결측치를 지정된 값으로 채우는 역할

#mode() : 선택된 열의 최빈값을 Series 형태로 반환

#inplace : 메서드의 결과를 새로운 DataFrame으로 변환, 수정

 

  • 라벨인코더

from sklearn.preprocessing import LabelEncoder

 

le = LabelEncoder()

train['주구매상품'] = le.fit_transform(train['주구매상품'])

train['주구매지점'] = le.fit_transform(train['주구매지점'])

 

test['주구매상품'] = le.fit_transform(test['주구매상품'])

test['주구매지점'] = le.fit_transform(test['주구매지점'])

 

print(train.info())

print(test.info())

 

3. 모델링 및 학습

#데이터분할

from sklearn.model_selection import train_test_split

x = train.drop(columns=['성별', '회원ID'])

y = train['성별']

 

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=2024 )

 

#모델링(분류)

from sklearn.ensemble import RandomForestClassifier

rfc = RandomForestClassifier(n_estimators = 150, max_depth = 20, random_state=2024)

 

rfc.fit(x_train, y_train) #모델 학습

pred1 = rfc.predict(x_test)   #pred1 : train 데이터에 대한 예측 값, #rfc 는 이미 학습된 모델임

 

4. 모델의 성능평가

from sklearn.metrics import roc_auc_score, accuracy_score

roc = roc_auc_score(y_test, pred1) #실제값 다음에 예측값 넣어준다.

auc= accuracy_score(y_test, pred1)

print('roc', roc)

print('acc', acc)

 

5. 테스트 모델 예측

test_x = test.drop(columns=['회원ID'])

pred2 = rfc.predict(test_x)

#print(pred2)

 

6. 테스트 결과 제출 및 확인

pd.DataFrame({'pred':pred2}).to_csv('result.csv', index=False)

result = pd.read_csv("result.csv")
#print(result)

 

이 분류 예제 이외에 회귀분석 예제도 추가 하겠습니다.