決定ツリー-モデル構造
1.決定木決定木
特定の問題(例えば20の問題)を通じて答えを探すモデル
最上位のルートノードから最後のターミナルノードへのルーティング
予測可能な質問を作成し、これらの質問に答えることで予測を行います.
問題が使用できない場合は、中間セクションの内部ノードを追加します.
つまり、すべてのデータを共有するために問題を追加します.
複数のフィーチャーデータの場合:
X 1,X 2は変数ごとに1つ(質問)を追加し,順次回答する.
最後は終了ノード、最後はカテゴリです.
2.実習
単純な意思決定ツリーの作成
今回の実験では,理論データのフライト遅延データに基づいて簡単な決定ツリーを実施する.
フライト遅延データは以下の通りです.
遅延が風速で変化するかどうかを決定するために,決定ツリーbinary treeのしきい値を変更し,遅延を完全に分離するモデルを作成することができる.
説明
binary tree関数は,入力した閾値風速に応じて予測遅延の結果をDataFrame形式で出力する.決定ツリーの成果物をdata predに格納し、データ遅延が予想遅延と等しいことを確認します.
しきい値に値を入れて結果を確認します.(ex) 1, 2, 3.5, …)
import numpy as np
import pandas as pd
# 풍속을 threshold 값에 따라 분리하는 의사결정나무 모델 함수
def binary_tree(data, threshold):
yes = []
no = []
# data로부터 풍속 값마다 비교를 하기 위한 반복문
for wind in data['풍속']:
# threshold 값과 비교하여 분리합니다.
if wind > threshold:
yes.append(wind)
else:
no.append(wind)
# 예측한 결과를 DataFrame 형태로 저장합니다.
data_yes = pd.DataFrame({'풍속': yes, '예상 지연 여부': ['Yes']*len(yes)})
data_no = pd.DataFrame({'풍속': no, '예상 지연 여부': ['No']*len(no)})
return data_no.append(data_yes,ignore_index=True)
# 풍속에 따른 항공 지연 여부 데이터
Wind = [1, 1.5, 2.5, 5, 5.5, 6.5]
Delay = ['No', 'No', 'No', 'Yes', 'Yes', 'Yes']
# 위 데이터를 DataFrame 형태로 저장합니다.
data = pd.DataFrame({'풍속': Wind, '지연 여부': Delay})
print(data,'\n')
"""
1. binary_tree 모델을 사용하여 항공 지연 여부를 예측합니다.
"""
data_pred = binary_tree(data, threshold = 4)
print(data_pred,'\n')
Reference
この問題について(決定ツリー-モデル構造), 我々は、より多くの情報をここで見つけました https://velog.io/@danceintherain/의사결정나무-모델-구조テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol