[英]How to build a hidden markov model
我正在嘗試構建一個隱藏的馬爾可夫 model 用於根據操作碼(基本上只是告訴惡意軟件做什么的詞)對惡意軟件進行分類。 我的數據包含 10 種類型的惡意軟件,每種類型大約有 1000 個操作碼文件。 在每個文件中,我有一個隨機數的操作碼和 27 個唯一值,所以我將設置 M = 27。我想知道是否有人有我可以參考或查看的代碼
def train_hmm_random_restarts(obs_seq):
len_o = len(obs_seq[0])
if len_o>30000:
random_restarts = 10
elif len_o>10000:
random_restarts = 30
elif len_o>=5000:
random_restarts = 50
else:
random_restarts = 100
model= hmm.MultinomialHMM(n_components=2, n_iter=500, tol=0.5)
# model.verbose=True
model.fit(X=obs_seq)
prev_model = model
prev_log_prob = model.monitor_.history.pop()
#random_restarts = 0
while(random_restarts!=0):
model= hmm.MultinomialHMM(n_components=2, n_iter=500, tol=0.5)
# model.verbose=True
model.fit(X=obs_seq)
log_prob = model.monitor_.history.pop()
if (prev_log_prob < log_prob):
prev_model = model
prev_log_prob = log_prob
random_restarts -= 1
return prev_model
mymodel = train_hmm_random_restarts(np.array([[0,1,3,0,0,0,1,2,2,2,2]]))
#mymodel = train_hmm_random_restarts(X_train)
print(mymodel.emissionprob_)
print(mymodel.transmat_)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.