[TIL]_20.10.27

·2020년 10월 27일
0

til

목록 보기
7/10

기억하기

🚀 conda env(+추가)

💾 env.yaml 파일로 환경 생성은 비추~

  • 현재 사용하는 환경을 추출하여 .yaml, .yml 파일로 저장이 가능하고,
    그 파일을 활용해 환경 생성도 가능하다.

    ❔ 왜 비추???
    설치되야하는..? 여러 모듈들 사이에 버전 관계가 어긋나면
    그 환경 자체를 못쓸 수 있음..(안정적이지 못한..느낌..)

    마지막 .뒤 버전 업그레이드 되서 어긋나는 경우도 더러 있다고 함...

  • 복제 하는 방법이 더 안정적임~!!
    $ conda create --name (new env) --clone (myenv)

🚀 EDA, ML이 자동화가 된다고...??

그렇다... 왜 허탈한지는 잘 모르겠다💬

💾 EDA 자동화 ➡ sweetviz

https://github.com/fbdesignpro/sweetviz

$ pip install sweetviz : 매우 심플

  • 간단한 이용 후기
import sweetviz as sv
import pandas as pd
DF_1 = pd.read_csv('..(path)..')
DF_2 = pd.read_csv('..(path)..')

# case 1 : 1개 데이터프레임 그냥 분석
result = sv.analyze(DF_1)
result.show_html() # default가 "SWEETVIZ_REPORT.html"이란다.

# case 2 : 1개 데이터프레임 2개로 나눠서 분석
result = sv.compare_intra(DF_1, DF_1[(column)] == "  ", ["A", "B"])
result.show_html("compare_intra_DF.html")

# case 3 : 2개 데이터 프레임 target value로 분석
result = sv.compare([DF_1, "A"], [DF_2, "B"], "(target value)")
result.show_html("compare_DF_1_2.html")
  • 참고
    sv.compare() or sv.compare_intra() 에서 오류가 날 수도 있음.
    feat_cfg 관련된 오류라면 아래의 코드를 위 함수 안에 추가 해줘야할수도...
feature_config = sv.FeatureConfig(skip="(column)", 
force_text=["(columns)"], force_cat=..., force_num=...)
  • 컬럼들의 형식을 정해주는 코드라고 이해했다.
    skip 할 컬럼명을 지정해주거나
    force_cat category 데이터가 0, 1, 2 등 숫자로 표현되었을 수도 있고,
    force_num 10, 20, 30 등 숫자를 숫자로 인식해야할 때,
    force_num text를 text로 인식시키게 하는 코드인듯 하다...

이렇게 해도 결국 데이터를 자세히 뜯어봐야한다~ 휴.. 안심...?

💾 ML 자동화 ➡ pycaret

https://pycaret.org/setup/

$ pip install pycaret : 매우 간단

  • 이용 후기
import pandas as pd
DF = pd.read_csv('..(path)..')

# 예로 분류 문제일 때
from pycaret.classification import *
clf_models = setup(DF, target='(target value)', ...)
# setup의 경우 옵션이 많아 참고 사이트로 가는게 빠르다.
  • 참고
moduleimport
classificationfrom pycaret.classification import *
regressionfrom pycaret.regression import *
clusteringfrom pycaret.clustering import *
anomaly detectionfrom pycaret.anomaly import *
natural language processingfrom pycaret.nlp import *
association rule miningfrom pycaret.arules import *

clustering 밑으로는 생소하다... 아직 한참 공부해야되겠다..

# setup 후

compare_models(n_select=..(int).., fold=10, sort='Accuracy' ) 
  • n_select : 여러 분류 모델 중 best 모델 1개(default, > 1)을 알려줌,
    sort : best의 기준은 default는 'accuracy',
    (Accuracy, AUC, Recall, Precision, F1, Kappa, MCC 중 선택가능)
    whitelist/blacklist : 옵션에 모델들을 선정해서 넣을 수 있다..

  • model_clf = create_model('model의 ID') : best model을 생성할 수 있고, 몇가지 모델에 해당하는 옵션을 바꿀 수도 있다.(ex max_depth..)
    tuned_model = tune_model(model_clf, ...)해당 모델의 하이퍼마라미터도 추가/수정 할 수 있고, for문을 이용해 GridSearch하듯 사용도 가능한 듯 하다...(wow)
    en_models = ensemble_model((model), method=' ') : 앙상블로도 만들 수 있다. method'Bagging','Boosting'이 있다..

  • 그리고 다른 모델들을 조합해 앙상블을 만들수 있으며
    그 방법은 2가지가 있다.. blend_models(),stack_models()
    같은 점은 estimator_list=[ ... ], method='soft'/'hard'
    다른 점은 stack_models()에는 meta_model의 옵션이 있다..

이 부분은 좀더 공부 해서 추가 해야한다... 새로운 모듈을 사용하면서 몰랐던 개념들을 찾고 공부하면서 추가해야겠다.
그리고 plot을 그려주는 부분이 남아있으나...시도해보고 추가로 작성할 예정이다..!!! 사실 참고 사이트 보는게 최고.....

profile
매일 코딩하기 & 기록하기

0개의 댓글