본문 바로가기
개발 공부/빅데이터분석기사

빅데이터 분석기사 실기 Tip

by momo'sdad 2023. 12. 1.

빅데이터 분석기사 실기 Tip

 

화면설정

 

오른쪽 상단의 톱니바퀴 모양의 버튼을 누르면 화면 확대/축소, 줄간격, 다크모드등 화면설정을 할 수 있다.

 

 


컬럼 또는 행이 다 나오지 않을때 

 

행 모두 보기:

pd.set_option('display.max_rows', None)

열(컬럼) 모두 보기:

pd.set_option('display.max_columns', None)

None에는 자기가 보고 싶은 행이나 컬럼수를 입력하면 됨.

 

아래처럼 모든 컬럼이 다나오는 것을 볼 수 있다.


.__all__  /  dir  /  help

 

sklearn의 하위 모듈 찾을때 

# 가장 상위 모듈인 sklean의 바로 하위 항목을 확인하기 위헤서는 아래와 같이 입력
import sklearn
print(sklearn.__all__)

# 중요하게 기억할 하위 모듈은 ensemble, linear_model, metrics, model_selection, preprocessing이다.

 

 

2차 하위 모듈을 찾을때

# 2차 하위 모듈을 찾기 위해서는 dir 이용
from sklearn import preprocessing
print(dir(sklearn.preprocessing))

# 최종 하위 모듈 찾았다면 from ~ import 구문을 이용해서 해당 모듈을 불러온다

 

 

모듈이나 함수에 대한 설명을 보고 싶을때

from sklearn.preprocessing import LabelEncoder
print(help(LabelEncoder))

# 이런식으로 입력하면 LabelEncoder의
# 기본형태, 파라미터, 반환값 이런 설명이 나온다

 

 

 

작업형 제 2유형

순서: 결측치 - 이상치- 라벨링 - 데이터분할 - 모델링, 하이파라미터 튜 - 예상 - 결과확인

 

결측

결측치가 너무 많으면 그냥 제거나 0으로 하고,

데이터의 10% 정도면 수치형은 중앙값, 범주형은 최빈값으로 대체

 

or 결측치가 적으면 제거, 많으면 평균채우기

 

하이퍼파라미터 튜닝

# 디폴트값
 . n_estimators 100
 . min_sample_leaf 1   작으면 과적합 위험
 . min_sample_split 2  작으면 과적합 위험
# max_depth             너무 크면 과적합 위험)

=> train / validation set을 나눈 후

n_estimators와 max_depth만 조정해 가면서(나머지는 그냥 디폴트로 사용) 과적합 피라기

 

하이퍼 파라미터 튜닝 시 이런식으로 조절

n_estimators=100
max_depth=3,5,7,9,10...
min_samples_leaf=1,2,3,4,5 
rf_hp = {
   'max_depth' : [6, 8, 12],
   'min_samples_leaf' : [6, 8, 12],
   'min_samples_split' : [6, 8, 10]
}

 

정확도 확인

# 모델 학습
model = RandomForestClassifier(n_estimators=10, random_state=0,
​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​max_features=4, oob_score=True)
model.fit(X_train, y_train)

# 평가
print("훈련 세트 정확도: {:.3f}".format(model.score(X_train, y_train)) )
print("테스트 세트 정확도: {:.3f}".format(model.score(X_test, y_test)) )
print("OOB 샘플의 정확도: {:.3f}".format(model.oob_score_) )
==결과==
훈련 세트 정확도: 0.992
테스트 세트 정확도: 0.933
OOB 샘플의 정확도: 0.958

 

예측

특정 클래스로 분류될 "확률" 예측할 때 사용
a클래스(첫번째)로 분류될 확률을 구하라 하면
y = model.predict_proba(x_test)
print(y[:, 0]) -> 첫번째 클래스로 분류될 확률

 

predict() 메소드는 범주를 예측하여 반환하고,
predict_praba() 메소드는 확률(probability)을 반환합니다.

 

반응형