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")