빅데이터 분석기사 실기 작업형 2 체험문제(분류) 풀기
빅데이터 분석기사 실기 공부를 시작하면서 어떤거부터 해야하는지 감이 잡히지 않았다.
이것 저것(퇴근후딴짓, 기타 강의) 들을 찾아보다가
작업형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)
이 분류 예제 이외에 회귀분석 예제도 추가 하겠습니다.