본문 바로가기
데이터 커리어 in US

Python과 여러 AutoML 라이브러리를 이용한 Titanic 데이터셋 예측

by Glavine 2023. 3. 8.
728x90

 

 

1. AutoML

 

AutoML은 Automated Machine Learning의 줄임말로, 기계 학습의 여러 단계를 자동화하여 모델링 작업을 단순화하는 기술입니다. AutoML을 사용하면 데이터 전처리, 특성 공학, 알고리즘 선택, 하이퍼파라미터 튜닝 등을 자동으로 수행하여 최적의 모델을 만들 수 있습니다. 이를 통해 데이터 과학자가 모델링 작업에 더 많은 시간을 할애하여 문제 해결 능력을 향상시킬 수 있습니다.

AutoML은 다양한 분야에서 사용됩니다. 예를 들어, 비즈니스 분야에서는 고객 유치, 유지 관리, 상품 추천 및 예측 분석과 같은 다양한 문제를 해결하는 데 사용됩니다. 또한 의학 분야에서는 암 진단, 의료 영상 분석, 약물 발견 등의 문제를 해결하는 데 사용됩니다. AutoML은 머신 러닝을 보다 폭넓게 사용할 수 있도록 하며, 데이터 과학의 발전을 촉진하는 데 중요한 역할을 합니다.

 

2. AutoML이 통계 분석가 (모델링) 를 대체할까?

 

AutoML은 통계 분석가를 대체하지 않을 것으로 보입니다. AutoML은 기계 학습 파이프라인의 여러 단계를 자동화하여 모델링 작업을 단순화하는 기술입니다. 그러나 이러한 자동화된 프로세스는 분석가의 역할을 보조하는 데 도움이 되지만, 분석가의 전문성과 경험은 여전히 필요합니다.

분석가는 비즈니스 문제나 문제 도메인을 이해하고 데이터를 분석하는 데 필요한 전문적인 지식을 갖추고 있습니다. 이러한 지식은 AutoML이 제공하는 자동화된 기술로 대체할 수 없습니다. 분석가는 AutoML이 생성한 모델을 평가하고 개선하며, 비즈니스 목표에 맞게 적용할 수 있도록 해야 합니다.

따라서 AutoML은 분석가의 역할을 대체하지 않고, 분석가와 함께 일하는 도구로 사용됩니다. AutoML은 분석가가 문제 해결 능력을 강화하고 더 많은 시간을 분석에 할애할 수 있도록 도와줍니다.

 

 

3. Example: Titanic

 

1) PyCaret

우선, PyCaret을 설치하고 타이타닉 데이터셋을 로드합니다.

!pip install pycaret
from pycaret.classification import *

titanic_df = pd.read_csv("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv")

 

다음으로, PyCaret 환경을 설정하고 일부 기본 데이터 전처리 작업을 수행합니다. 이 과정에서 "Survived"를 결과 변수로 지정하고 numerical variable에 대한 평균 대체, categorical variable에 대한 최빈 대체, 정규화 및 특성 변환과 같은 일부 기본 데이터 전처리 단계를 수행했습니다.

setup(data=titanic_df, target='Survived', session_id=1, silent=True,
      numeric_imputation='mean', categorical_imputation='mode',
      normalize=True, transformation=True, ignore_features=['Name', 'Ticket', 'Cabin'])

 

이제 compare_models() 함수를 사용하여 다양한 머신 러닝 모델을 학습하고 평가할 수 있습니다.

best_model = compare_models(fold=5, sort='Accuracy')

 

이렇게 하면 교차 검증을 사용하여 다양한 모델을 학습하고 평가하고, 지정된 지표인 정확도에 기반하여 최고 성능 모델을 반환합니다.

최고 모델을 선택한 후 tune_model() 함수를 사용하여 하이퍼파라미터를 조정할 수 있습니다.

tuned_model = tune_model(best_model, fold=5, optimize='Accuracy')

 

마지막으로 predict_model() 함수를 사용하여 새 데이터에 대한 예측을 수행할 수 있습니다.

predictions = predict_model(tuned_model, data=titanic_df)

 

 

2) H2O

우선, H2O를 설치하고 라이브러리를 로드합니다.

!pip install h2o
import h2o

 

다음으로, H2O 클러스터를 시작합니다.

h2o.init()

 

이제 타이타닉 데이터셋을 로드하고, H2O 데이터 프레임으로 변환합니다. 그리고 outcome variable을 지정합니다.

titanic_df = h2o.import_file("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv")
titanic_df["Survived"] = titanic_df["Survived"].asfactor()

 

데이터셋을 Train / Test로 나눠 줍니다.

train, test = titanic_df.split_frame(ratios=[0.8], seed=1)

 

이제 H2O AutoML을 실행하여 최상의 모델을 생성합니다.

from h2o.automl import H2OAutoML

aml = H2OAutoML(max_runtime_secs=30, seed=1)
aml.train(y="Survived", training_frame=train)

 

모델링이 완료되면, AutoML 리더보드를 확인하여 모델의 성능을 비교할 수 있습니다.

aml.leaderboard.head()

 

가장 성능이 좋은 모델을 선택하고 test 데이터셋에서 모델의 성능을 평가합니다.

best_model = aml.leader
predictions = best_model.predict(test)

 

 

3) Auto-sklearn

우선, Auto-sklearn을 설치하고 라이브러리를 로드합니다.

!pip install auto-sklearn
import autosklearn.classification as asc

 

다음으로, 타이타닉 데이터셋을 로드합니다. 그리고 outcome variable을 지정합니다.

titanic_df = pd.read_csv("https://raw.githubusercontent.com/datasciencedojo/datasets/master/titanic.csv")
titanic_df["Survived"] = titanic_df["Survived"].astype('category')

 

데이터셋을 Train / Test로 나눠 줍니다.

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(titanic_df.drop("Survived", axis=1), titanic_df["Survived"], test_size=0.2, random_state=1)

 

Auto-sklearn을 사용하여 최적의 모델을 생성합니다.

automl = asc.AutoSklearnClassifier(time_left_for_this_task=30, per_run_time_limit=10)
automl.fit(X_train, y_train)

 

Auto-sklearn에서 생성된 모델을 사용하여 test 데이터셋에서 성능을 평가합니다.

from sklearn.metrics import accuracy_score

y_pred = automl.predict(X_test)
print("Accuracy score:", accuracy_score(y_test, y_pred))

 

이 밖에 AutoML을 할 수 있는 라이브러리들은 다양하게 존재합니다:

- TPOT
- FLAML
- EvalML
- AutoKeras
- Auto-ViML
- AutoGluon
- MLBox

등등

 

마무리하며

 

데이터 과학 분야에서는 AutoML이 빠르게 발전하고 있으며, 새로운 기술과 도구가 지속적으로 출시되고 있습니다. 이러한 발전으로 인해 AutoML은 머신 러닝 모델링 작업의 생산성과 효율성을 크게 향상시키며, 데이터 과학의 발전을 가속화하는 데 중요한 역할을 합니다.

AutoML은 데이터 사이언티스트가 모델링 작업에 더 많은 시간을 할애하지 않고도 문제를 해결할 수 있도록 도움을 주는데 기여하고 있습니다. AutoML은 데이터 전처리, 특성 공학, 알고리즘 선택 및 하이퍼파라미터 튜닝과 같은 여러 작업을 자동화해주니까요. 이를 통해 머신 러닝 모델링을 단순화하고, 비즈니스 문제를 해결하는 데 필요한 시간을 절약할 수 있겠다고 정리할 수 있을 것 같습니다.

 

➡️ 이제 직접 미국 대학원과 현지 취업을 경험해 본 멘토들과 함께 대학원 진학과 미국 취업을 준비해 보세요.

https://www.datakorlab.com/

 

Data KorLab

Featured Courses

www.datakorlab.com

 

 

 

#영어이력서 #영문이력서 #이력서 #Cover #coverletter #resume #레주메 #데이터분석 #데이터애널리스트 #미국데이터분석석사 #미국석사 #데이터과학자 #네트워킹이벤트 #GMAT #링크드인 #미국데이터분석 #데이터사이언스 #미국 #GRE #해외취업 #데이터사이언티스트 #미국현지취업 #데이터분석석사 #글래빈 #미국데이터사이언티스트 #글래빈미국 #글래빈미국데이터사이언티스트 #브라이언 #브라이언미국데이터사이언티스트 #스테이시미국데이터사이언티스트 #미국대학원 #해외취업마스터 #미국생활 #데이터사이언스석사 #미국유학생 #유학생 #미국데이터 #애널리틱스석사 #데이터석사 #미국데이터석사유학 #뉴욕직딩 #미국유학 #미국직장인 #미국취업 #미국현지취업 #prerequisites #선수과목 #미국대학원선수과목 #리트코드 #테크니컬인터뷰 #코딩인터뷰 #leetcode #커피챗 #대학원진학컨설팅 #데이터분석대학원 #데이터사이언스인터뷰 #데이터분석가인터뷰 #datascientistinterview #datascientisttechnicalinterview 

728x90

댓글