ML

<ML Model> Decision Forest(결정 포레스트) - YDF (Yggdrasil Decision Forest)

바건정 2024. 11. 11. 23:46

보통

  • RandomForestModel
  • GradientBoostedTreesModel
  • CartModel
  • DistributedGradientBoostedTreesModel

위와 같은 모델을 사용하기 위해 기존에는 TensorFlow의 TensorFlow Decision Forests (TF-DF)라는 라이브러리를 주로 사용해요.

 

# 라이브러리 불러오기
import tensorflow_decision_forests as tfdf
import pandas as pd

# 판다스 데이터프레임으로 데이터 불러오기
train_df = pd.read_csv("project/train.csv")
test_df = pd.read_csv("project/test.csv")

# 판다스 데이터프레임을 텐서플로우 데이터셋으로
train_ds = tfdf.keras.pd_dataframe_to_tf_dataset(train_df, label="my_label")
test_ds = tfdf.keras.pd_dataframe_to_tf_dataset(test_df, label="my_label")

# 예시로 랜덤 포레스트 모델 학습
model = tfdf.keras.RandomForestModel()
model.fit(train_ds)

# 모델 구조 요약
model.summary()

# 정확도 계산
model.compile(metrics=["accuracy"])
model.evaluate(test_ds, return_dict=True)

# 모델 저장
model.save("project/model")

 

위와 같은 형태로 모델 학습과 활용이 진행돼요.

 

하지만 이제 구글이 새로운 라이브러리인 YDF(Yggdrasil Decision Forest)를 소개했어요.

기능 추가 및 더 단순화된 API, 학습 시간 단축, 체계화된 문서와 향상된 호환성이라는 장점을 가지고 있죠.

 

이제 위의 TFDF 코드로 한 과정을 YDF를 사용한다면 다음과 같이 작성할 수 있어요.

pip install ydf # Install YDF

# 라이브러리 불러오기
import ydf
import pandas as pd

# 판다스로 데이터 불러오기
train_ds = pd.read_csv("train.csv")
test_ds = pd.read_csv("test.csv")

# 모델 학습
model = ydf.RandomForestLearner(label="my_label", num_trees=500).train(train_ds)

# 모델 구조 요약
model.describe()

# 모델 평가
model.evaluate(test_ds)

# 모델 저장
model.save("/tmp/my_model")