pgm構建貝葉斯網絡架構(Bayesian Network Structure)

import pandas as pd
import numpy as np
from pgmpy.estimators import ExhaustiveSearch, HillClimbSearch, BicScore

def build_structure(data):
    df = pd.DataFrame(data)
    est = HillClimbSearch(df, scoring_method=BicScore(df))
    model = est.estimate()
    DAG = np.zeros((data.shape[1], data.shape[1]), np.int64)

    for edge in model.edges():
        DAG[edge[0], edge[1]] = 1

    np.save('prepare_data/DAG.npy', DAG)
    return DAG

if __name__=='__main__':
    data = np.load('prepare_data/data.npy')
    build_structure(data)

pgmpy接口說明網站http://pgmpy.org/estimators.html
此處data爲numpy數據,每一行數據爲一個實例,每一列爲一個類別,之後輸出類別依賴關係

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章